Files
Nomarchy/themes/summer-day/rofi.rasi
Bernardo Magri 994025f0c8 feat(rofi): real icons, zebra rows, content-fit menus across all themes
Reworked the menu look, palette-driven so it lands on every theme:

  - Real Papirus icons in place of Nerd Font glyphs: a row() helper emits
    rofi's per-row icon protocol, and the five static menus (root, Tools,
    System, Power, Capture) map each entry to a freedesktop icon name
    (verified present in Papirus). Entry text is now clean ("Apps"), the
    case-matching is unchanged.
  - Larger icons via a new t.ui.iconSize knob (36px, generated theme); the
    summer whole-swaps keep their 40px identity.
  - Rounded, roomy rows with subtle zebra striping: alternate rows lift to
    @surface (a faint bg0 wash on the summer cream/slate windows), the
    selected row to @accent — using rofi's normal/alternate/selected row
    parities.
  - Content-fit windows: fixed-num-lines=false so a 6-entry menu stops
    reserving 8 rows of empty space (the launcher still fills + scrolls).
    Dropped the fixed height:50% from the summer .rasi so they size to
    content too — which also unhid their clipped Power/Keybindings rows.
  - Title-cased the menu prompts.

Verified by building the HM config and rendering the generated theme plus
both summer whole-swaps headlessly (sway + grim): icons resolve, zebra
shows, every menu hugs its rows.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 22:11:25 +01:00

139 lines
2.7 KiB
Plaintext

/**
* Nomarchy Summer Day — rofi whole-swap (themes/<slug>/rofi.rasi).
* Ported from the legacy branch. The `configuration {}` block is omitted
* on purpose: modi/terminal/show-icons come from modules/home/rofi.nix.
* Iosevka 17 → a shipped Nerd Font.
*/
* {
bg0: #fdf6e3;
fg: #5c6a72;
red: #f85552;
yellow: #dfa000;
green: #8da101;
aqua: #35a77c;
blue: #3a94c5;
purple: #df69ba;
grey0: #a6b0a0;
font: "JetBrainsMono Nerd Font 14";
background-color: transparent;
text-color: @fg;
}
window {
transparency: "real";
background-color: @fg;
text-color: @bg0;
border-bottom: 5px;
border-color: @yellow;
border-radius: 15px;
width: 40%;
/* No fixed height — size to content (fixed-num-lines:false) so every
* entry shows without scrolling and there's no empty space below. */
location: center;
anchor: center;
x-offset: 0;
y-offset: 0;
}
mainbox {
background-color: transparent;
children: [ inputbar, listview ];
spacing: 0px;
padding: 0px;
}
inputbar {
children: [ prompt, entry ];
background-color: @green;
text-color: @bg0;
expand: false;
border-bottom: 5px;
border-color: @grey0;
border-radius: 10px;
margin: 15px;
padding: 10px;
spacing: 15px;
}
prompt {
enabled: true;
background-color: inherit;
text-color: inherit;
}
entry {
background-color: inherit;
text-color: inherit;
cursor: text;
placeholder: "Type to search...";
placeholder-color: @bg0;
}
listview {
background-color: transparent;
columns: 1;
lines: 8;
spacing: 0px;
cycle: true;
dynamic: true;
layout: vertical;
padding: 20px;
}
element {
background-color: transparent;
text-color: @bg0;
orientation: horizontal;
border-radius: 10px;
padding: 10px;
spacing: 15px;
}
/* Zebra striping: every other row lifts with a faint light wash over the
* dark window (bg0 at ~12% alpha). The selected row below still wins. */
element alternate.normal {
background-color: #fdf6e31f;
}
element-icon {
background-color: transparent;
text-color: inherit;
size: 40px;
cursor: inherit;
}
element-text {
background-color: transparent;
text-color: inherit;
highlight: bold;
cursor: inherit;
vertical-align: 0.5;
horizontal-align: 0.0;
}
element selected {
background-color: @bg0;
text-color: @fg;
border-bottom: 5px;
border-color: #bdc3af;
border-radius: 10px;
}
element-text selected {
text-color: @fg;
}
element-icon selected {
text-color: @fg;
}
scrollbar {
width: 0px;
background-color: transparent;
handle-width: 0px;
handle-color: transparent;
border: 0px;
}