Author a designed rofi.rasi whole-swap for the four remaining identity
themes, so all six now carry a distinct menu look (summer-day/night
already shipped their legacy ports). Each is built from the theme's
character rather than a legacy layout (their waybar overrides are
palette-only, so there was nothing to port):
- nord: soft rounded "frost panel" — frost border, brighter-frost
selection, aurora-purple prompt
- retro-82: sharp CRT terminal — square corners, amber-on-navy, a teal
scanline underline, mono
- lumon: clinical cyan "bezel" — thick cyan frame, a framed-not-filled
readout inputbar, mono
- kanagawa: ink & paper — warm washi-paper frame, deep ink-well inputbar,
crystal-blue wave selection
Each file is self-contained (it replaces the generated theme) and keeps
the element structure the theme-grid picker's per-invocation -theme-str
layers onto. rofi.nix needs no change — its existing themes/<slug>/
rofi.rasi probe whole-swaps when the file is present. All four parse
clean under `rofi -dump-theme`.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
111 lines
2.4 KiB
Plaintext
111 lines
2.4 KiB
Plaintext
/**
|
|
* Nomarchy Lumon — rofi whole-swap (themes/<slug>/rofi.rasi).
|
|
* Clinical-terminal identity (the MDR readout): a thick cyan bezel around a
|
|
* cold teal screen, the inputbar FRAMED rather than filled (a data field,
|
|
* not a button), near-white headings, cyan selection. Faintly softened
|
|
* corners keep it boxy without going razor-sharp like Retro 82.
|
|
* The `configuration {}` block is omitted on purpose — modi/terminal/
|
|
* show-icons come from modules/home/rofi.nix.
|
|
*/
|
|
|
|
* {
|
|
base: #16242d;
|
|
surface: #1b2d40;
|
|
overlay: #304860;
|
|
text: #d6e2ee;
|
|
ice: #f2fcff; /* near-white — the prompt */
|
|
cyan: #8bc9eb; /* the Lumon glow — bezel + select */
|
|
|
|
font: "JetBrainsMono Nerd Font 13";
|
|
background-color: transparent;
|
|
text-color: @text;
|
|
}
|
|
|
|
window {
|
|
background-color: @base;
|
|
border: 3px; /* a screen bezel */
|
|
border-color: @cyan;
|
|
border-radius: 4px; /* boxy, faintly softened */
|
|
width: 40%;
|
|
location: center;
|
|
anchor: center;
|
|
padding: 10px;
|
|
}
|
|
|
|
mainbox {
|
|
background-color: transparent;
|
|
children: [ inputbar, message, listview ];
|
|
spacing: 0px;
|
|
}
|
|
|
|
/* Framed, not filled — a readout field rather than a button. */
|
|
inputbar {
|
|
children: [ prompt, entry ];
|
|
background-color: transparent;
|
|
text-color: @text;
|
|
border: 1px;
|
|
border-color: @overlay;
|
|
border-radius: 4px;
|
|
padding: 10px 12px;
|
|
spacing: 8px;
|
|
margin: 0px 0px 8px 0px;
|
|
}
|
|
|
|
prompt { text-color: @ice; }
|
|
|
|
entry {
|
|
text-color: @text;
|
|
cursor: text;
|
|
placeholder: "refine…";
|
|
placeholder-color: @overlay;
|
|
}
|
|
|
|
listview {
|
|
background-color: transparent;
|
|
columns: 1;
|
|
lines: 8;
|
|
dynamic: true;
|
|
scrollbar: false;
|
|
spacing: 4px;
|
|
padding: 8px 0px 0px 0px;
|
|
}
|
|
|
|
element {
|
|
background-color: transparent;
|
|
text-color: @text;
|
|
orientation: horizontal;
|
|
border-radius: 4px;
|
|
padding: 10px 14px;
|
|
spacing: 12px;
|
|
}
|
|
|
|
element alternate.normal {
|
|
background-color: @surface;
|
|
}
|
|
element selected.normal {
|
|
background-color: @cyan;
|
|
text-color: @base;
|
|
}
|
|
|
|
element-icon {
|
|
background-color: transparent;
|
|
size: 36px;
|
|
cursor: inherit;
|
|
}
|
|
element-text {
|
|
background-color: transparent;
|
|
text-color: inherit;
|
|
highlight: bold;
|
|
vertical-align: 0.5;
|
|
}
|
|
|
|
message { padding: 8px 0px 0px 0px; }
|
|
textbox {
|
|
background-color: @surface;
|
|
text-color: @text;
|
|
border-radius: 4px;
|
|
padding: 8px 12px;
|
|
}
|
|
|
|
scrollbar { width: 0px; }
|