diff options
| author | Danilo M. <danix@danix.xyz> | 2026-09-11 09:53:54 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-09-11 09:53:54 +0200 |
| commit | c677049424d5fe57b4f68ef38d6d375b75efc08f (patch) | |
| tree | 34c2b3bb8e764b6d581434cbc8114d9e958d4a1b /rofi/udt/powermenu.rasi | |
| parent | af926ea2f588190c59a5436ed9c467b2f85d07aa (diff) | |
| download | unified-desktop-theme-c677049424d5fe57b4f68ef38d6d375b75efc08f.tar.gz unified-desktop-theme-c677049424d5fe57b4f68ef38d6d375b75efc08f.zip | |
fix: restore message widget, fullscreen power menu, and emoji grid
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
Diffstat (limited to 'rofi/udt/powermenu.rasi')
| -rw-r--r-- | rofi/udt/powermenu.rasi | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/rofi/udt/powermenu.rasi b/rofi/udt/powermenu.rasi new file mode 100644 index 0000000..6660e9f --- /dev/null +++ b/rofi/udt/powermenu.rasi @@ -0,0 +1,94 @@ +/* + * udt powermenu layout: a fullscreen overlay with a single row of big icons. + * Copyright (C) 2026 Danilo M. <danix@danix.xyz> + * Licensed under the GNU General Public License v2 only. + * + * The power menu is not a small menu. It is a deliberate, hard-to-mistake + * fullscreen prompt, and the script feeds it a greeting, a uptime message and + * a user avatar. All three are rendered here. + */ + +@import "common.rasi" + +window { + fullscreen: true; + background-color: @base; + border: 0; + border-radius: 0; + padding: 0; +} + +mainbox { + children: [ dummy, userimage, inputbar, listview, message, dummy ]; + spacing: 24px; + padding: 60px; +} + +/* Flexible spacers above and below push the content block to the middle. */ +dummy { + expand: true; +} + +/* The avatar. `both` fills the box, the radius makes it a circle. */ +userimage { + expand: false; + width: 120px; + height: 120px; + horizontal-align: 0.5; + background-image: url("~/.user-icon.jpg", both); + border: 2px; + border-color: @accent; + border-radius: 100%; +} + +/* This layout is the one place a prompt earns its keep: it carries the + * script's greeting, which is the human cue for a destructive menu. */ +inputbar { + expand: false; + background-color: transparent; + padding: 0; + children: [ prompt ]; +} + +prompt { + font: "Noto Sans Bold 28"; + text-color: @text; + horizontal-align: 0.5; +} + +/* Four options in one row: shutdown, reboot, sleep, logout. */ +listview { + expand: false; + columns: 4; + lines: 1; + fixed-height: true; + fixed-columns: true; + spacing: 24px; +} + +element { + padding: 40px; + border-radius: 12px; +} + +/* The entries are single glyphs from a Nerd Font, so they are sized large and + * centered rather than laid out as text. */ +element-text { + font: "Inconsolata Nerd Font Mono 42"; + horizontal-align: 0.5; + vertical-align: 0.5; + text-color: inherit; +} + +/* The uptime line the script passes with -mesg. */ +message { + expand: false; + background-color: transparent; + padding: 0; +} + +textbox { + font: "Noto Sans 12"; + text-color: @subtext0; + horizontal-align: 0.5; +} |
