aboutsummaryrefslogtreecommitdiffstats
path: root/desktop/modules/autostart/AutostartPage.qml
AgeCommit message (Collapse)AuthorFilesLines
2 daysSwitch: never set checked itself, report the new state insteadDanilo M.1-1/+1
The shared Switch flipped its own checked on click, which replaced the caller's binding with a constant. Every use binds checked, so after a click the switch stopped following its source: Discard on a settings draft reverted the value and left the switch showing the click. Four status rows and the headphones panel each carried a resync workaround for it. toggled now carries the new state and the switch moves only when the caller's binding does. Handlers that read checked as the new value take the argument instead; the workarounds are gone. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
5 daysdesktop: Tab moves between the hand-rolled text fieldsDanilo M.1-0/+1
A bare TextInput defaults activeFocusOnTab to false, unlike the Controls TextField some pages use, so Tab skipped every field built from one: the settings search, Field, the qtmaildir, git, autostart, assistant, OBS, user, VM and network rows, and the calendar editor. Multi-line TextEdits stay out of the chain. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
6 daysdesktop: settings search finds rows, and a hit reveals its rowDanilo M.1-2/+5
Search used to stop at the page: clicking a result opened it at the top and left the setting to be found by eye. Now each settings module keeps its rows as searchItems, {text, key}, reread on every window open since the page itself is not loaded until shown: git runs gitcfg list, and autostart watches its file. A row hit opens the page, and Page.reveal() finds the row whose objectName is the key, waiting up to 3s for the page's own data, scrolls to it and flashes it in the accent. The reveal lives in Page, so a page only names its rows. Git's long keyword list was a stand-in for exactly this and is cut to "gitconfig". The autostart page takes its path from the module now that both read the file. Also corrects the AGENTS note on missed hot reloads: it blamed sed -i replacing the file, but the Edit tool writes a new inode too and usually reloads. The cause is unknown; the note now says how to detect it and that a process that stops watching needs a restart. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
6 daysdesktop: a settings window, and autostart as its first pageDanilo M.1-0/+444
The drawer's tiles were turning into a full settings app. The drawer stays the quick area, live state and things toggled often; pages set once and left alone go to a settings window, a normal Hyprland toplevel listing them down the left. A module joins with settings: true, which also drops its tile. A gear tile and ipc call settings open|toggle reach it. Autostart edits hypr-theme's autostart.lua directly, line by line: an hl.exec_cmd line is an entry, behind -- it is disabled, everything else passes through. Edits refuse when their line moved since the parse, and writes are atomic because Hyprland reloads on every change. A wrong entry only shows at the next login, so adding is guided rather than a free text field: pick an installed app or type a command whose program must resolve on PATH before Add enables, then a workspace and silent, composed into a [workspace X silent] rule. Try runs the line through hyprctl dispatch so the rule applies as at login. Existing rows get no Try: they ran at login, and a second start stacks an instance. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>