| Age | Commit message (Collapse) | Author | Files | Lines |
|
The prompt is lifted onto the card as a left-aligned "Screenshot:"
header with a camera glyph. confirm.rasi sets its own card children, so
the power menu's confirm step keeps its centred question and no header.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
rofi's ssh mode shows the alias only. blackpearl-sshmenu.sh now reads
~/.ssh/config itself and feeds dmenu two-line cards: the alias, then
"user · address" with the user only where the config sets one. ssh.rasi
lays them out 4x3 under an "SSH:" header lifted out of the inputbar.
The script moves into bin/ under the name hypr-theme's keybinding calls,
and install.sh links it and the theme like the other menus.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
The listview cycles along its flow. With the default vertical flow,
Left and Right move between columns and stop at the ends. Horizontal
flow, as the confirm and screenshot menus already use, makes them step
through the row and wrap.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
The confirm and screenshot menus split the monitor into two half-screen
buttons with a glyph sized from the monitor height. They are now a fixed
368px card centred on the scrim, two 150px buttons at 72pt, so the
scripts no longer compute a glyph size.
Glyphs in all three menus sat right of centre: common.rasi's element
spacing still reserved a gap for the hidden icon. Elements now hold
element-text only. The power menu's greeting ignored horizontal-align,
so spacers either side centre it.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G6aeE37K4GHBsaM51yLTTq
|
|
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
|
|
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G6aeE37K4GHBsaM51yLTTq
|
|
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
|
|
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G6aeE37K4GHBsaM51yLTTq
|