aboutsummaryrefslogtreecommitdiffstats
path: root/desktop
AgeCommit message (Collapse)AuthorFilesLines
3 hoursfix(settings): island bar hints above the control they explainDanilo M.2-14/+14
A page's explanation line sat under its control, read after the thing it was meant to explain. On the Calendar and Pills pages it now comes first, as on the new Date and time page. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
4 hoursfeat(island): configurable pill order, dragged on a settings pageDanilo M.4-14/+168
The pills' x positions were written per pill around a fixed centre gap. They now come from one pillX() over Prefs.island.pills: the first two sit left of the screen's centre and the last two right, each a gap past the visible pills nearer the centre, so a hidden player or OBS pill leaves no hole and a panel still widens a pill away from the centre. The default order is the previous layout. The Island bar group gains a Pills page: four fixed slots with the centre marked, a pill dragged takes the nearest slot and the others step aside while it moves. The drag holds the pointer (preventStealing) so the page does not scroll under it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
4 hoursfeat(calendar): end time follows the start, default length settingDanilo M.7-11/+135
Moving an event's start now moves its end by the island's default event length, whether the start is typed, wheeled or picked, rolling into the next day past midnight. A multi-day timed event keeps its end, since snapping it to the start's day would drop the other days. Typing follows on every edit that normalises to a valid time, so Save without leaving the field still sees the moved end. A new event gets the same length. The length lives in Prefs as island.eventMinutes (5 to 1440, default 60) and is set on a new Island bar group in the settings window, which the island's other settings will join. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
4 hoursfeat(calendar): click-to-pick event times, loose time typingDanilo M.4-7/+108
The month grid was already the editor's date picker, but times could only be typed or wheeled. While a time field has focus the month now gives way to an hour grid and a :00/:15/:30/:45 row: an hour keeps the minutes, a minute moves on from start to end, then out of the fields. The picker replaces the grid rather than growing the editor, because the island's layer surface is a fixed 480px and the editor nearly fills it. The field keeps focus throughout, so typing and the wheel still work. Typed times are normalised: "9.30", "9:30", "930", "9" and "14h15" become HH:MM on leaving the field and again in toPayload, instead of failing with "Times are HH:MM". Impossible values still fail, unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
18 hoursfeat(perf): show GPU render and compute loadDanilo M.7-23/+103
xe exposes no busy percentage, but its DRM fdinfo carries per-engine cycle counters. vram.sh becomes gpu.sh: the same scan also sums drm-cycles-rcs/ccs per client and prints them with the GPU's cycle counter, and Perf.js turns two scans into a percentage per engine. The GPU card's headline is now the busier engine, with render (games) and compute (local LLMs) as bars, then VRAM, temperature and fan. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
26 hoursfeat(assistant): deck-it's chat look on the canvasDanilo M.4-76/+303
The canvas takes the deck-it Assistant tab's look: the backdrop picture faded in behind the chat through a soft elliptic mask (stronger while the chat is empty), and chat bubbles, the question on the right in an accent bubble with the user's avatar, the reply on the left with the assistant's face cropped from the backdrop. Thinking, tool chips and errors sit in the reply bubble; three dots bounce while it has no words yet. The pictures come from deck-it's config ([assistant] background, user_avatar, face), read once at startup with the system python3, so both follow one setting. MultiEffect's mask needs maskSpreadAtMin for a gradient to fade; the default thresholds cut it to a hard oval. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
41 hoursfeat(deckit): tablet screen dimming settingsDanilo M.3-3/+11
The Dashboard page gains a Tablet screen section for deck-it's new [tablet] dim_after and dim_brightness, and both are searchable. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2 daysfix(network): list NFS traffic on the drawer's network pageDanilo M.2-4/+13
A pcmanfm-qt copy of 8GB from an NFS share never appeared among the busiest processes. The copy's bytes travel on the kernel NFS client's TCP socket to port 2049, which ss reports with no users:(()) owner, and sockets() skipped every ownerless socket. The file manager itself owns no socket for the transfer at all. Ownerless sockets whose peer port is 2049 are now kept and named "NFS <server>". Which process drives the traffic is not knowable from ss, so the row names the share's server instead. Other ownerless sockets (other users', without root) are still skipped. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2 daysfeat(deckit): new-window peek time, General page renamed ServerDanilo M.5-9/+14
The Windows page gains "Show on new window", deck-it's [windows] peek: seconds the tablet shows its Windows tab when a window opens, 0 off. The first page is now "Server": the sidebar group is already deck-it, so the page name no longer repeats it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 daysfix(perf): NFS shares no longer raise the tile's dotDanilo M.2-4/+6
A nearly full file server lit the drawer tile's dot while CPU, RAM and every local disk were fine. Shares stay in the panel with their fill; only local disks count toward the dot. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 daysfeat(deckit): tabs and dashboard parts in separate listsDanilo M.6-10/+50
deck-it's [modules] were one list mixing tabs and dashboard parts. The General page now lists the tabs (Windows, OBS, K1C printer, Assistant) and the Dashboard page the parts, each under a readable name; Modules.js holds the split. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 daysfeat(deckit): split the settings into a deck-it group of four pagesDanilo M.12-309/+549
The single long deck-it page becomes its own sidebar group: General (status, Restart, Start, Display, Advanced), Dashboard (Modules, action icons, Hardware), Windows (launchers, workspaces) and Services (OBS, LLM, K1C, build VM). All four share DeckIt.store, so Save on any page writes the whole draft, as the Mail pages do. Each module lists its own fields, so a search jumps to the page holding the field. The small-print text moves to a shared Small.qml. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 daysfeat(deckit): toggles for the dashboard's action iconsDanilo M.1-0/+34
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
3 daysfeat(assistant): catalog IPC for deck-it, presets sent as writtenDanilo M.6-15/+52
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 daysfeat(settings): motherboard row on the info pageDanilo M.1-0/+3
Read from /sys/class/dmi/id/board_vendor and board_name, which are world-readable, so no root and no dmidecode. The vendor's legal suffix ("Technology Co., Ltd.", "Inc.") is trimmed to the brand, as the GPU row drops " Corporation". Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 daysfeat(deckit): status and Restart in the page headerDanilo M.4-44/+36
Move the deck-it status line from the page body to the header, beside Save, as the Wallpaper engine page does, and send a Restart's outcome to the window's snackbar instead of a line under it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 daysdeckit: K1C Moonraker address fieldDanilo M.2-2/+4
deck-it gained a K1C printer tab, read through Moonraker at [k1c] url. The page edits that key, and its module switch appears with the others from deck-it's defaults. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 daysfeat(deckit): settings page for deck-it, the tablet dashboardDanilo M.9-5/+588
A page under Desktop for deck-it's ~/.config/deck-it/config.toml and its login line. deck-it now merges that file over its shipped config key by key, so the page writes only what differs and takes its placeholders from `deck-it defaults` rather than copying them. - Start at login edits hypr-theme's autostart.lua at once, as the Autostart page does, through Autostart.js: it re-enables a commented deck-it line or adds `deck-it wifi --wait`; off comments them out. - Every config key, with launchers picked from the installed apps (desktop ids, reorderable) and module switches built from the defaults. - A status line polls `deck-it status` every 2s while the page is open; Restart runs `deck-it stop` and the login command, then reports "Restarted" once the server runs with a tablet tunnelled, or what it saw after 30s. Shared helpers it needed: Toml.js reads plain decimals (the display scale), Store keeps a list of numbers numeric (the workspaces), and ChoiceSetting takes a store as Setting and BoolSetting already do. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 daysmonitors: leave virtual outputs such as deck-it's TAB aloneDanilo M.4-3/+23
deck-it creates a headless TAB output at runtime and places it itself, centred under DP-1. Listed on the Monitors page, Apply would reposition it and Keep would pin it into monitors.lua, where it would outlive the tablet. Mon.js's UNMANAGED drops it from the page entirely. The list is fixed: deck-it's display.name can rename the output, and a renamed one shows up here again (a ponytail ceiling, noted in Mon.js). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 daysfix(autostart): add entries to the start hook, not the last end)Danilo M.2-3/+13
Autostart.add inserted before the file's last `end)`. Since autostart.lua gained a hyprland.shutdown hook after the start hook, a command added from the Autostart page landed in the shutdown hook and would have run at logout instead of login. It now inserts before the `end)` that closes `hl.on("hyprland.start", ...)`, and returns null when there is no start hook. The test covers a file with both hooks; it fails on the old code. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
4 daystheme: schemes as a wrapping grid, not one long columnDanilo M.1-3/+6
With 23 schemes the page was a long scroll. Cards now flow into as many columns as fit at 380px, the width the mock and seven swatches need. Search still finds a card by objectName and scrolls via mapToItem, which a Flow does not change. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
6 dayssonix: say why a folder of non-music files looks emptyDanilo M.2-1/+22
SonixLink's browse lists only folders and playable files, so Bootlogo or Ebook read as empty. The Folders tab now says so and links to Wi-Fi transfer. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
6 dayssettings: one snackbar for every page's messagesDanilo M.7-25/+146
Save, apply and upload results went to the page header, one line capped at 420px and cut with an ellipsis. They now go to a snackbar at the foot of the settings window, wrapped in full: green fades after 6s, yellow and red stay until dismissed or replaced, and changing page clears it. Snack.qml is the singleton pages call (ok, wait, error); Snackbar.qml draws it once in Settings.qml. SaveBar forwards its notice and error, so the 24 pages using it change nothing; the header keeps only the draft's state. The boot logo page calls Snack directly. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
6 dayssonix: boot logo status in the page, wrapped, not cut in the headerDanilo M.2-8/+10
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
6 dayssonix: upload a boot logo saved earlierDanilo M.2-3/+19
Upload saved... picks a PNG or JPEG from the output folder and sends it through the same path as Upload, waiting for Wi-Fi transfer as well. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
6 dayssonix: folders breadcrumbs read as a path from "SD card /"Danilo M.3-5/+7
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
6 daysisland: shuffle and repeat as two Sonix buttonsDanilo M.4-14/+50
The one mode button cycled all five SonixLink modes and showed repeat-off as its first state, so shuffle looked missing. Shuffle is now a toggle on the left and repeat a cycle on the right. SonixLink has no shuffle with repeat one, so with shuffle on repeat goes off and all only. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
6 dayssonix: final review fixes: header, stale state, curl errors, plain textDanilo M.7-3/+21
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
6 dayssonix: boot logo fixes from review, own HiBy R1 groupDanilo M.3-24/+32
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
6 daysdocs: the Sonix playerDanilo M.3-2/+75
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
6 dayssonix: the boot logo page in the settings windowDanilo M.2-0/+55
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
6 dayssonix: the boot logo editor's controls, save and uploadDanilo M.1-0/+338
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
6 dayssonix: the boot logo canvas: picture, duotone text, grabDanilo M.1-0/+139
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
6 dayssonix: folders tab fixes from reviewDanilo M.1-2/+7
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
6 daysprefs: the Sonix boot logo editor's settingsDanilo M.1-1/+16
6 dayssonix: playlists tab fixes from reviewDanilo M.1-4/+4
6 dayssonix: the Folders tab, with add to playlistDanilo M.2-1/+195
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
6 dayssonix: the Playlists tabDanilo M.2-1/+152
6 dayssonix: no undefined in the Device tabDanilo M.1-2/+2
6 dayssonix: drawer tile and the Device tabDanilo M.6-0/+308
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
6 daysisland: keep the Sonix heart and volume until the player agreesDanilo M.1-6/+20
6 daysisland: retry the Sonix cover per trackDanilo M.1-1/+2
6 dayssonix: SonixLink's bitrate is in bits per secondDanilo M.2-3/+3
6 daysisland: the Sonix player's icon and controls panelDanilo M.3-5/+341
6 daysisland: the panel slider as its own file, for the Sonix panel tooDanilo M.2-94/+110
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
6 dayssonix: service fixes from reviewDanilo M.1-6/+15
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
6 dayssonix: the player service: beacon presence, polling, commands, uploadDanilo M.2-0/+149
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
6 dayssonix: the four boot logo faces and Bungee Inline, SIL OFLDanilo M.10-0/+465
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
6 dayssonix: relay the player's UDP beacon to stdoutDanilo M.2-0/+66
6 dayssonix: pure helpers for the player, with their testDanilo M.2-0/+214
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>