aboutsummaryrefslogtreecommitdiffstats
path: root/rofi
AgeCommit message (Collapse)AuthorFilesLines
5 daysfeat(rofi): fullscreen layout for the power menu's confirmationDanilo M.1-42/+10
The yes/no gate was a 500px box, small next to the fullscreen power menu in front of it. confirm.rasi now imports the screenshot menu's layout, two half-monitor buttons on the scrim, and adds the question above them. The glyph size arrives from the calling script with -theme-str, derived from the focused monitor, as it does there. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
5 daysfeat(rofi): fullscreen two-button layout for the screenshot menuDanilo M.1-0/+54
The screenshot menu (Mod+Shift+S) borrowed menu.rasi, a small list box, so its two options were small glyphs in a narrow column. screenshot.rasi gives each option half the monitor on the scrim, centred vertically by spacers because rofi sizes a row by its text. rofi cannot size a font by percentage, so the calling script passes the glyph size with -theme-str, derived from the focused monitor and aware of rotated outputs; the size in the theme is only a fallback. install.sh links the new file with the other layouts. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
5 daysfeat(palette): add a translucent scrim role for fullscreen overlaysDanilo M.1-3/+3
The power menu's ground was a hardcoded rgba(36, 39, 58, 0.88), Macchiato's base, so every other scheme drew its overlay with a Macchiato tint. Each roles file now defines scrim as its own background at 88% alpha, udt-palette emits it into palette.rasi, and powermenu.rasi uses @scrim. scrim is the first translucent palette entry, so udt-accent's QML palette no longer drops the alpha pair: an opaque colour still goes out as #rrggbb, a translucent one as QML's #aarrggbb. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-16refactor(cache): move the generated files to ~/.cache/udtDanilo M.1-1/+1
They lived in ~/.cache/wal because pywal owned that directory and udt-accent was written alongside a pywal run. Nothing on this desktop invokes pywal any more: the wal binary is unused, and udt-accent imports pywal.backends.colorz as a quantisation library, which writes nothing. Sharing the cache only left the ownership ambiguous. colors.json is the one file that cannot move. pywalfox hardcodes <cache>/wal/colors.json and honours only XDG_CACHE_HOME, which would relocate every cache on the system, so udt-accent writes the real file to ~/.cache/udt and install.sh symlinks the old path at it. ~/.cache/wal now holds that link and nothing else. Consumers repointed here: install.sh, udt-accent, launcher.rasi's @WPAPER@. Outside the repo, wallp, Hyprland's look_and_feel.lua and quickshell's shared/Theme.qml move with it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-11feat(palette): generate every themed config from one schemeDanilo M.1-41/+0
Colours were written down five times: rofi's palette.rasi, the waybar theme, the kitty theme, the conky and dunst templates, and a MACCHIATO dict inside udt-accent. Changing scheme meant finding all five, and they had already drifted: the active waybar theme was Macchiato while theme.css next to it was Mocha, and nothing imported the latter. Now a scheme is two files. palette/<scheme>.conf holds the colours under the scheme's own names, and palette/roles-<scheme>.conf says what each is for. palette/roles.conf is one `scheme =` line selecting the pair. bin/udt-palette renders that into each consumer's syntax and install.sh runs it first. The role map is per-scheme rather than shared because the palettes are genuinely different shapes: Nord has no `base`, Dracula no `surface0`, and forcing Catppuccin's names onto them would have meant either renaming their colours or inventing values. A role names a palette colour with two optional modifiers, `name/75` for alpha and `name*50` for brightness. The second exists because GTK's shade() has no palette name to point at. Ships macchiato, tokyo-night, nord and dracula. --selftest resolves every role in every scheme and asserts they define the same set, so a scheme that cannot satisfy a consumer fails at install rather than when someone switches to it. Verified against the live configs: all 46 waybar colours resolve identically to the previously active theme including its alpha() and shade() derivations, the kitty theme is colour-for-colour identical, and the rofi palette has the same 26 values. Generated files are gitignored; switching scheme and switching back reproduces the originals. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015gbjA2bmswN8jyPDKzrvqe
2026-09-11feat: 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
2026-09-11feat: bring the power menu confirmation dialog into the themeDanilo M.1-0/+61
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
2026-09-11fix: 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
2026-09-11fix: 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
2026-09-11fix: draw the power menu avatar againDanilo M.1-5/+12
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
2026-09-11fix: restore message widget, fullscreen power menu, and emoji gridDanilo M.3-1/+143
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
2026-09-11feat: 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
2026-09-11feat: anchor the launcher top-center and add a wallpaper bannerDanilo M.1-13/+34
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
2026-09-11feat: 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
2026-09-11feat: 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
2026-09-11feat: 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
2026-09-11feat: 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
2026-09-11feat: 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