aboutsummaryrefslogtreecommitdiffstats
path: root/desktop/README.md
AgeCommit message (Collapse)AuthorFilesLines
7 daysdesktop: centred About, and a resizable settings sidebarDanilo M.1-0/+3
The About text sat in the top-left corner of an otherwise empty page; it is now centred both ways in the space beside the sidebar. The sidebar's edge, the rule between it and the page, drags to resize it between 160 and 420px, lit in the accent while hovered. The width lives in Prefs, written once on release rather than on every pixel of the drag, so it survives a restart without a file to edit by hand. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
7 daysdesktop: settings search finds rows, and a hit reveals its rowDanilo M.1-5/+10
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>
7 daysdesktop: settings search, and an About landing pageDanilo M.1-2/+10
The landing page's tiles repeated the sidebar. It now says what the shell is and where things live, which is what a landing page is for. The sidebar gains a search. A page is a Component loaded only when opened, so its contents cannot be indexed without loading every page; instead a module lists keywords for the settings buried in its page, and the search matches those and the label. An entry matched by a keyword shows which one, Enter opens the first match, Escape clears and then steps out as before. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
7 daysdesktop: the settings window gets a landing pageDanilo M.1-1/+3
The page header's back arrow closed the whole window, which reads wrong for a back button. The window now opens on a landing page, a tile per settings page in the drawer's own Tile, and back and Escape step out to it; Escape there closes the window, as on the drawer's grid. An empty or unknown name opens it, so the gear tile and ipc toggle land there. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
7 daysdesktop: git config moves to the settings windowDanilo M.1-1/+1
The global git config is set once and left alone, which is what the settings window is for. The user row and its page stay in the drawer; "More git settings" there now closes the drawer and opens git in the window: Drawer.show hands any settings module to the window, so every deep link, IPC included, lands in the right place. Git was the only user of Module.up, the page back() returned to, so up goes with it and back from a drawer page is always the grid. Also gives autostart its rocket glyph, which the first commit wrote as an empty string. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
7 daysdesktop: a settings window, and autostart as its first pageDanilo M.1-0/+16
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>
7 dayschore(assistant): retire the voice overlayDanilo M.1-1/+2
desktop-assistant is a text daemon now (its voice version is the tag voice-v1), and the canvas in desktop/assistant/ is its front end. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
7 daysdocs(git): the git config page, and replace-all appending on no matchDanilo M.1-0/+1
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
8 daysdocs(user): the module's README and the busctl escaping noteDanilo M.1-0/+1
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
8 daysfeat(perf): the performance page moves to the drawer, with ~/.cacheDanilo M.1-1/+1
The island's performance icon and panel are gone: the drawer page covers them. With only one host left, the panel drops its three-column grid for one card per row at a larger size, since the page scrolls; temperatures get a card of their own as tiles. The files move from island/perf to modules/perf. A cache card ports conky's: ~/.cache and its five largest children, measured with du each time the page opens (28ms over 2 GiB here) rather than read from conky's 15-minute sampler file. The largest is yellow, red past half the total, as conky had it. The warning dot now shows only on the drawer tile. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
8 daysfeat(desktop): performance and clipboard pages, a scrolling tile gridDanilo M.1-4/+12
The tile grid sits in a Flickable capped at three rows, so the fourth row the new modules bring scrolls inside that box instead of eating the notification space; a thin accent bar in the margin shows only when a row is hidden. Tiles are reordered with the everyday ones first. Performance shows the island's PerfPanel in a Page, with a tile line of CPU and RAM and the warning dot. Perf.detailed is now a count of live PerfPanel instances instead of a binding in the status pill: the island and the drawer both host the panel, and a bool with two writers would let one clear it under the other. Clipboard reads cliphist when its page opens: search, copy on click or Enter, delete per row, clear all behind a 3 second confirm, image entries as thumbnails decoded once onto tmpfs. Entries reach sh as $1, never inside a command string. A copy closes the drawer through a new Page.dismiss signal the drawer connects like back. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07docs: the island, and waybar goneDanilo M.1-27/+18
AGENTS.md describes the hybrid model (desktop/ hosts drawer and island) and gains the gotchas found while building the island: UseQApplication for tray menus, WheelHandler vs MouseArea, accent colliding with green, xkb layout switching, and the tray popup un-hovering the island. The Blur waybar measurement becomes history. READMEs drop their present-tense waybar references. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05docs(ai): module README, drawer module listDanilo M.1-1/+2
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-14docs: record the KDE Connect trapsDanilo M.1-0/+5
No D-Bus module means shell-outs and no push; the daemon and the indicator are separate; the battery plugin is not on every device; and qdbus reads properties and methods through one call shape.
2026-09-14docs(desktop): document the kdeconnect moduleDanilo M.1-7/+8
Records that the phone-to-PC clipboard is the daemon's plugin and not the indicator's, so removing the indicator does not break it, and that polling stops when the drawer closes.
2026-09-14fix(desktop): wire tile active state and clear connect errorsDanilo M.1-2/+3
2026-09-14docs: record the network and bluetooth trapsDanilo M.1-0/+3
The native backends start empty for about two seconds, device lists are ObjectModels, NMSettings is not in QML scope, and quickshell has no BlueZ agent. Each one cost a probe to learn; writing them down is cheaper than re-learning them.
2026-09-14docs(desktop): document the bluetooth moduleDanilo M.1-6/+8
2026-09-14docs(desktop): keep the network module docs self-consistentDanilo M.1-8/+7
2026-09-14docs(desktop): document the network moduleDanilo M.1-1/+4
2026-09-14fix(desktop): honest alwaysActive docs and working Escape in confirmDanilo M.1-13/+17
2026-09-14docs: correct drawer exit behaviour and dead module commandsDanilo M.1-3/+4
The README claimed a click outside returns to the grid; it closes the drawer, and only Escape-with-a-page or the back arrow return to the grid. The three moved module READMEs' run and IPC commands still named the deleted volume-osd, mail-overview and vm-manager paths, so point them at qs -p desktop and ipc call drawer open sound|mail|vm.
2026-09-14docs: the desktop shell and what the merge changedDanilo M.1-0/+133
Five components become three, and the Theme symlink count with them. Two new notes: a pragma Singleton in a subdirectory resolves through a plain directory import with no qmldir, and Virsh.sampling gates only the stats poll, not the lifecycle stream that keeps the tile correct while the page is closed.