aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
12 hoursfeat: make the power menu overlay slightly translucentDanilo M.1-1/+10
The fullscreen ground drops to 88% opacity so the desktop stays faintly visible behind it, which keeps the menu reading as a layer over the session rather than a screen that replaced it. Written as an explicit rgba of the same colour rather than @base, since the palette entries carry a hard ff alpha. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G6aeE37K4GHBsaM51yLTTq
12 hoursdocs: record the confirm dialog migration and glyph changeDanilo M.1-5/+11
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G6aeE37K4GHBsaM51yLTTq
12 hoursfeat: bring the power menu confirmation dialog into the themeDanilo M.2-1/+62
The yes/no gate in front of shutdown was still on the old adi1090x theme, so every shutdown showed a Macchiato power menu followed by a dialog that did not match it. Its glyphs now come from the theme's own Nerd Font rather than `feather`. That meant changing the codepoints the script sends, since the originals were Private Use Area points that only feather carries: they are now the Material circled check and close (U+F05E0, U+F0159), which Inconsolata Nerd Font Mono contains. Sized 42 to match the power menu, since the Material glyphs carry a lot of internal padding and render small. Worth knowing for future glyph choices: ClearlyU is installed and claims large parts of the Private Use Area, so it can win fontconfig's fallback and draw a blank where another font actually has the glyph. The U+F0xxx Nerd Font ranges avoid that. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G6aeE37K4GHBsaM51yLTTq
13 hoursfix: widen the emoji grid so entry names fitDanilo M.1-11/+13
Each row is a glyph followed by its name, and five columns in a 680px window left cells too narrow for the name to survive. Three columns in a 1500px window gives about 485px a cell. Names are also left-aligned now rather than centred, since a row is a label rather than a lone symbol, and the glyph font drops from 20 to 16 so the name carries the row. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G6aeE37K4GHBsaM51yLTTq
13 hoursfix: make the power menu avatar a centred circleDanilo M.1-11/+21
The widget only honours its margin. An explicit width with expand:false collapses it to a line, and a percentage margin resolves against the whole window rather than the padded column, which tiled the image across a 2560px screen. So the width comes from a pixel margin derived from the content column, and it has to equal the height the row gives the widget (220px) for the 100% radius to draw a circle instead of an ellipse. Also bounds the content column, which was previously full screen width: four options spread across ~640px cells read as scattered glyphs and the selection highlight became a slab. Measured from screenshots rather than guessed: the avatar renders 220x220, ratio 1.000, centred within a pixel. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G6aeE37K4GHBsaM51yLTTq
13 hoursfix: draw the power menu avatar againDanilo M.2-8/+15
Sizing the widget with an explicit width and height collapsed it, so nothing was drawn. The original type-4 theme sized it with a horizontal margin instead, letting the widget expand to the window and squeezing it back to a square, so do that. The margin is computed with calc() from 50% rather than the original's hardcoded 710px, which assumed one screen width and would sit off-center on a second monitor. The tilde path was never the problem: rofi does expand it inside a url(). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G6aeE37K4GHBsaM51yLTTq
13 hoursfix: restore message widget, fullscreen power menu, and emoji gridDanilo M.4-2/+144
Three regressions from collapsing five theme systems into three layouts. The layouts hardcoded `children`, which silently dropped any -mesg a script passed. rofipass lost its keybinding cheatsheet and the power menu lost its uptime line. list.rasi now lists the message widget; rofi hides it when there is no message, so it costs nothing when unused. The power menu was never a small menu. It is a deliberate fullscreen prompt with a greeting, an avatar and one row of four large glyphs, and menu.rasi flattened all of it. It gets its own layout, the one place where a prompt earns its keep. The glyphs are drawn in Inconsolata Nerd Font Mono, which was verified to contain all four; the old theme asked for `feather`, which contains none of them and was relying on fallback. The emoji picker is a dense grid of glyphs, not a list, and wasted most of a single-column window. It gets grid.rasi, sized near the launcher's icons. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G6aeE37K4GHBsaM51yLTTq
13 hoursdocs: record phase 1 migration of rofi call sitesDanilo M.2-0/+68
Twelve call sites repointed, backups in /data/udt-backup. Also records three things found during the migration: rofipass was passing a -width flag that rofi 2.0.0 no longer has, the type-4 power menu reuses one directory variable for two different themes, and ddgr_search.py is a rofi script-mode plugin rather than a call site. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G6aeE37K4GHBsaM51yLTTq
13 hoursfeat: drop the prompt label from the input barDanilo M.1-6/+4
The mode label ("Apps", "power") is noise on a desktop utility: it is always obvious which one was just opened. Removed in common.rasi so every layout inherits it, and the placeholder text is cleared for the same reason. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G6aeE37K4GHBsaM51yLTTq
13 hoursfeat: anchor the launcher top-center and add a wallpaper bannerDanilo M.2-14/+42
Matches the launcher position already in use (north-anchored, 600px, single column) rather than the centered grid, and restores the wallpaper banner behind the input area from the old darknix theme. The wallpaper path cannot be committed: rofi does not expand a tilde inside a url(), and an absolute path would bake in a home directory. So launcher.rasi carries a placeholder and the installer generates the real file. The entry sits on a solid plate so it stays legible over a bright wallpaper. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G6aeE37K4GHBsaM51yLTTq
13 hoursfeat: add symlink installerDanilo M.1-0/+28
Installs by symlink so the repo stays canonical and the working config cannot drift from it. accent.rasi is the exception: it points at the generated file in the wal cache, seeded with the committed placeholder on a fresh install. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G6aeE37K4GHBsaM51yLTTq
13 hoursfeat: add udt launcher layoutDanilo M.1-0/+32
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G6aeE37K4GHBsaM51yLTTq
13 hoursfeat: add udt menu layoutDanilo M.1-0/+28
No search bar: with a handful of fixed options, typing to filter is pointless and the bar only adds bulk. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G6aeE37K4GHBsaM51yLTTq
13 hoursfeat: add udt list layoutDanilo M.1-0/+24
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G6aeE37K4GHBsaM51yLTTq
13 hoursfeat: add shared rofi styling common to all udt layoutsDanilo M.2-0/+117
Holds the identity every layout inherits: Noto Sans for UI text, Inconsolata Nerd Font Mono for monospace (both matching the existing Qt and GTK settings), one border radius, and one selected-element treatment of accent background with base-colored text. accent.rasi is committed as a mauve placeholder so the imports resolve before any wallpaper has been processed. On install it is replaced by a symlink to the generated file. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G6aeE37K4GHBsaM51yLTTq
13 hoursfeat: extract wallpaper accent without touching the pywal cacheDanilo M.1-0/+58
Calls pywal.backends.colorz.get() directly rather than running `wal -i`. That function returns a list and writes nothing, so the preset-driven cache that kitty, dunst and neovim read is left alone. `wal -i` has no isolation flag and would rewrite all of ~/.cache/wal, reintroducing the unreadable-terminal problem the preset was adopted to fix. Writes atomically, so a rofi launch concurrent with a wallpaper change cannot read a half-written theme. A missing or broken image falls back to mauve rather than leaving no accent at all. Verified across six wallpapers with colors.json byte-identical afterward. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G6aeE37K4GHBsaM51yLTTq
13 hoursfeat: add perceptual hue matching for Macchiato accentsDanilo M.1-0/+101
Matches in CIELAB rather than HLS: HLS hue is not perceptually uniform and mismatched obvious cases during prototyping, snapping orange to yellow and saturated red to flamingo. The candidate set is nine, not all fourteen. rosewater and flamingo are near-neutral tints that carry a hue angle but almost no chroma, so they captured saturated inputs; maroon, sapphire and lavender duplicate the hues of red, sky and mauve without adding visible range. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G6aeE37K4GHBsaM51yLTTq
13 hoursfeat: add Catppuccin Macchiato palette for rofiDanilo M.1-0/+41
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G6aeE37K4GHBsaM51yLTTq
13 hourschore: add GPLv2 license, README and gitignoreDanilo M.3-0/+378
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G6aeE37K4GHBsaM51yLTTq
13 hoursdocs: add headless parse checks and correct the rofi versionDanilo M.1-17/+52
The plan claimed rofi 1.7.3, taken from a stale comment header in the user's config.rasi. The installed version is 2.0.0. Adds a `-dump-theme` parse check to the palette and each layout task. This catches syntax errors without a display, which the plan previously treated as impossible and deferred entirely to visual inspection. Every theme file in the plan was verified to parse cleanly on 2.0.0. Replaces the palette verification step, which built a throwaway wrapper theme via printf just to have something that draws. A palette defines variables and renders nothing, so there was nothing to look at; parsing is the real check. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G6aeE37K4GHBsaM51yLTTq
13 hoursdocs: correct accent pipeline premise and add implementation planDanilo M.2-39/+1217
Investigation while planning showed the spec's accent model could not work as written. wallp invokes pywal with --theme, not -i, so colors come from a fixed preset and never track the wallpaper: snapping would have mapped a constant to a constant. The obvious fix, switching to wallpaper-derived pywal, would have regressed a problem the user had already solved. Wallpaper colors land in kitty's sixteen ANSI slots, where nothing guarantees color4 stays legible against color0, which is what made neovim comments disappear. Rofi is not exposed to that, since it uses one accent against a fixed base. So extraction now calls pywal.backends.colorz.get() directly. It returns a list and writes nothing, leaving the preset cache that kitty, dunst and neovim read untouched. Verified across six wallpapers with colors.json byte-identical after. Also replaces HLS hue matching with CIELAB, after prototyping showed HLS snapping orange to yellow and red to flamingo, and narrows the candidate set to nine accents, dropping near-neutral tints and duplicate hues that captured saturated inputs. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G6aeE37K4GHBsaM51yLTTq
14 hoursdocs: add unified desktop theme design specDanilo M.1-0/+200
Catppuccin Macchiato base with a pywal-driven accent snapped to the nearest named Macchiato accent. Phase 1 scope is rofi: collapse five theme systems into three shared layouts over one palette, covering eleven call sites. Records the four brainstorming decisions and the alternatives rejected, so later phases (waybar, dunst, kitty, conky, hyprland, quickshell) reuse the mechanism rather than relitigate it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G6aeE37K4GHBsaM51yLTTq