aboutsummaryrefslogtreecommitdiffstats
path: root/desktop/shell.qml
AgeCommit message (Collapse)AuthorFilesLines
10 hoursfeat(desktop): add the status page and register the moduleDanilo M.1-0/+2
One row per mode. Adding a mode is one file in the singleton and one row here, which is what a registry buys over two separate toggles.
10 hoursfeat(desktop): add presentation mode and its effectsDanilo M.1-0/+4
Presentation mode sets DND, asserts a Wayland idle inhibitor and pauses breaktimer. The effects hang off the mode property rather than the setter, so a mode set with statusctl while the drawer is closed asserts them too. DND has two writers once presentation mode exists, so turning presentation off restores the value DND had before rather than clearing it, or an afternoon of hand-set DND would vanish when a talk ends. That prior value lives in the singleton, not in a file: it means nothing once presentation mode is off, and presentation mode does not survive a reboot. breaktimer owns its own state file and is driven only through its verbs. Two writers on that file would race with its daemon loop.
10 hoursrefactor(desktop): name the keepalive windowDanilo M.1-0/+5
IdleInhibitor needs a non-null window and this is the only one that lives for the whole session, so presentation mode attaches to it. Naming it is a prerequisite for that and changes nothing else.
27 hoursfeat(desktop): KDE Connect module, tile and pageDanilo M.1-0/+2
State is polled from kdeconnect-state.sh because there is no D-Bus module to subscribe with. The poll runs only while the drawer is open: the tile is created when the panel loads and destroyed when it unloads, and it flips the module's polling flag. The laptop reports no battery plugin, so an absent charge is an empty field and renders as nothing, never as a zero.
32 hoursfeat(desktop): bluetooth module, tile and pageDanilo M.1-0/+2
Native Quickshell.Bluetooth for adapter power, discoverable, scan, connect, disconnect, trust and forget. Pairing is separate, because quickshell ships no BlueZ agent. The adapter is null for the first ~2s, so every access is navigated safely rather than assuming a first paint.
32 hoursfeat(desktop): network module, live tile and wired pageDanilo M.1-0/+2
Wired first because it is the simpler half and proves the module wiring. Native Quickshell.Networking, no polling: the singletons push, and alwaysActive is true with no Service.qml because there is nothing to gate. The tile shows one line per active link rather than picking a primary, since the API exposes no route metric and guessing wrong would be worse than showing both.
34 hoursfeat(desktop): move vm-manager in as the vm moduleDanilo M.1-0/+2
Virsh.qml is unchanged; VmPanel's body becomes the page and the stat row becomes a Flow, because four stats with 150px bars do not fit a 600px drawer as one row. The page starts and stops Virsh.sampling, so the 2s poll runs only while something is looking at it; the lifecycle event stream still runs always, which is what keeps the tile's dots current.
34 hoursfeat(desktop): move mail-overview in as the mail moduleDanilo M.1-0/+2
Accounts.qml is unchanged and MailPanel's body becomes the page. The three scripts move with it, which changes the absolute paths in autostart and in the waybar module; both are outside this repo and listed in the plan's final task. Button.qml, byte-identical here and in vm-manager, lands at the shell root as the single copy.
34 hoursfeat(desktop): move volume-osd in as the sound moduleDanilo M.1-0/+2
VolumeOsd.qml did three jobs in one file: PipeWire tracking, the OSD surface and the player transport. They become Service, Osd and the page. The OSD keeps its namespace so the existing Hyprland blur rule still matches, and the service stays always-active because the OSD has to answer a keypress with no drawer open.
34 hoursfeat(desktop): the appearance tileDanilo M.1-1/+4
A tile with no page: appearance stays its own process because a wallpaper picker needs more room than a 600px drawer, so the tile only fires its existing IPC. This is the case the contract's activate() exists for.
34 hoursfeat(desktop): the drawer, with the top reservedDanilo M.1-4/+23
Left of DP-1 because conky holds the right; ExclusionMode.Normal so the bar the drawer is reached from stays visible and clickable. The top is an empty Item claiming the space the notification engine will fill, so the grid already sits where it will sit once that lands.
35 hoursfeat(desktop): skeleton shell with the keepalive windowDanilo M.1-0/+29
The window draws nothing and catches nothing; it exists because a quickshell config with no visible window exits silently, and this shell's drawer is closed most of the time. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01We9zcHEH8ZWHPcQwMaJRNv