linux appimage build with docker, egl fallback, and webkitgtk fixes
This commit is contained in:
+14
-2
@@ -526,6 +526,11 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Linux app tracking notice -->
|
||||
<p v-if="platform === 'linux'" class="text-[0.6875rem] text-text-tertiary -mt-1">
|
||||
On Linux, window visibility cannot be detected. The timer will only pause when the tracked app's process exits entirely.
|
||||
</p>
|
||||
|
||||
<!-- Check Interval -->
|
||||
<div class="flex items-center justify-between">
|
||||
<div>
|
||||
@@ -547,7 +552,7 @@
|
||||
<div class="border-t border-border-subtle" />
|
||||
|
||||
<!-- Timeline Recording -->
|
||||
<div class="flex items-center justify-between">
|
||||
<div :class="['flex items-center justify-between', platform === 'linux' && 'opacity-50 pointer-events-none']">
|
||||
<div>
|
||||
<p class="text-[0.8125rem] text-text-primary">Record app timeline</p>
|
||||
<p class="text-[0.6875rem] text-text-tertiary mt-0.5">Capture which apps and windows are active while the timer runs. Data stays local.</p>
|
||||
@@ -556,6 +561,7 @@
|
||||
@click="toggleTimelineRecording"
|
||||
role="switch"
|
||||
:aria-checked="timelineRecording"
|
||||
:disabled="platform === 'linux'"
|
||||
aria-label="Record app timeline"
|
||||
:class="[
|
||||
'relative inline-flex h-5 w-9 items-center rounded-full transition-colors duration-150',
|
||||
@@ -570,6 +576,10 @@
|
||||
/>
|
||||
</button>
|
||||
</div>
|
||||
<!-- Linux timeline notice -->
|
||||
<p v-if="platform === 'linux'" class="text-[0.6875rem] text-text-tertiary -mt-1">
|
||||
Timeline recording is not available on Linux - Wayland's security model prevents detecting the foreground window.
|
||||
</p>
|
||||
|
||||
<!-- Divider -->
|
||||
<div class="border-t border-border-subtle" />
|
||||
@@ -1674,6 +1684,7 @@ const shortcutToggleTimer = ref('CmdOrCtrl+Shift+T')
|
||||
const shortcutShowApp = ref('CmdOrCtrl+Shift+Z')
|
||||
const shortcutQuickEntry = ref('CmdOrCtrl+Shift+N')
|
||||
const timelineRecording = ref(false)
|
||||
const platform = ref('')
|
||||
const timerFont = ref('JetBrains Mono')
|
||||
const timerFontOptions = TIMER_FONTS
|
||||
const reduceMotion = ref('system')
|
||||
@@ -2495,6 +2506,7 @@ async function clearAllData() {
|
||||
|
||||
// Load settings on mount
|
||||
onMounted(async () => {
|
||||
try { platform.value = await invoke('get_platform') } catch { /* non-critical */ }
|
||||
await settingsStore.fetchSettings()
|
||||
|
||||
hourlyRate.value = parseFloat(settingsStore.settings.hourly_rate) || 0
|
||||
@@ -2524,7 +2536,7 @@ onMounted(async () => {
|
||||
businessEmail.value = settingsStore.settings.business_email || ''
|
||||
businessPhone.value = settingsStore.settings.business_phone || ''
|
||||
businessLogo.value = settingsStore.settings.business_logo || ''
|
||||
timelineRecording.value = settingsStore.settings.timeline_recording === 'on'
|
||||
timelineRecording.value = platform.value !== 'linux' && settingsStore.settings.timeline_recording === 'on'
|
||||
timerFont.value = settingsStore.settings.timer_font || 'JetBrains Mono'
|
||||
reduceMotion.value = settingsStore.settings.reduce_motion || 'system'
|
||||
dyslexiaMode.value = settingsStore.settings.dyslexia_mode === 'true'
|
||||
|
||||
Reference in New Issue
Block a user