Compare commits
2 Commits
175b877f95
...
907d3123ea
| Author | SHA1 | Date | |
|---|---|---|---|
| 907d3123ea | |||
| ddf9b186e4 |
@@ -23,8 +23,9 @@ let
|
|||||||
# Kept separate from the base theme so a theme can give the launcher its
|
# Kept separate from the base theme so a theme can give the launcher its
|
||||||
# own layout (e.g. Boreal's icon grid) WITHOUT that layout leaking into
|
# own layout (e.g. Boreal's icon grid) WITHOUT that layout leaking into
|
||||||
# the text menus, which share the base theme and need a list. The default
|
# the text menus, which share the base theme and need a list. The default
|
||||||
# just re-imports the active theme (custom.rasi, written by HM to the same
|
# just re-imports the active base theme (custom.rasi for generated themes,
|
||||||
# themes dir), so every other theme's launcher is byte-for-byte its list.
|
# rofi.rasi for whole-swaps — see the dataFile below), so every other
|
||||||
|
# theme's launcher is byte-for-byte its list.
|
||||||
launcherOverride = cfg.themesDir + "/${t.slug}/launcher.rasi";
|
launcherOverride = cfg.themesDir + "/${t.slug}/launcher.rasi";
|
||||||
hasLauncherOverride = builtins.pathExists launcherOverride;
|
hasLauncherOverride = builtins.pathExists launcherOverride;
|
||||||
|
|
||||||
@@ -855,13 +856,17 @@ in
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
# The launcher theme lives beside HM's generated theme
|
# The launcher theme lives beside HM's active base theme, which it
|
||||||
# (~/.local/share/rofi/themes/custom.rasi), so `@import "custom.rasi"`
|
# @imports so the default launcher is byte-for-byte that theme's list.
|
||||||
# in the default resolves to the active theme.
|
# HM names that base by its SOURCE: a generated (attrset) theme lands as
|
||||||
|
# custom.rasi, but a whole-swap theme (a path — themes/<slug>/rofi.rasi)
|
||||||
|
# keeps its basename, rofi.rasi. Import must match, or `-theme launcher`
|
||||||
|
# dies with "custom.rasi not found" (rofi resolves the missing import
|
||||||
|
# against $HOME) on every whole-swap theme.
|
||||||
xdg.dataFile."rofi/themes/launcher.rasi".text =
|
xdg.dataFile."rofi/themes/launcher.rasi".text =
|
||||||
if hasLauncherOverride
|
if hasLauncherOverride
|
||||||
then builtins.readFile launcherOverride
|
then builtins.readFile launcherOverride
|
||||||
else ''@import "custom.rasi"'';
|
else ''@import "${if hasRasiOverride then "rofi.rasi" else "custom.rasi"}"'';
|
||||||
|
|
||||||
programs.rofi = {
|
programs.rofi = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|||||||
@@ -158,12 +158,12 @@ let
|
|||||||
# Active keyboard layout (per focused device) — only placed in
|
# Active keyboard layout (per focused device) — only placed in
|
||||||
# modules-right when showLanguage (see above).
|
# modules-right when showLanguage (see above).
|
||||||
"hyprland/language" = {
|
"hyprland/language" = {
|
||||||
format = " {short}";
|
format = "<span size='${toString (t.fonts.size + 2)}pt'></span> {short}";
|
||||||
tooltip = false;
|
tooltip = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
pulseaudio = {
|
pulseaudio = {
|
||||||
format = "{icon} {volume}%";
|
format = "<span size='${toString (t.fonts.size + 2)}pt'>{icon}</span> {volume}%";
|
||||||
format-muted = "";
|
format-muted = "";
|
||||||
format-icons.default = [ "" "" "" ];
|
format-icons.default = [ "" "" "" ];
|
||||||
on-click = "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle";
|
on-click = "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle";
|
||||||
@@ -187,8 +187,8 @@ let
|
|||||||
|
|
||||||
battery = {
|
battery = {
|
||||||
states = { warning = 25; critical = 10; };
|
states = { warning = 25; critical = 10; };
|
||||||
format = "{icon} {capacity}%";
|
format = "<span size='${toString (t.fonts.size + 2)}pt'>{icon}</span> {capacity}%";
|
||||||
format-charging = " {capacity}%";
|
format-charging = "<span size='${toString (t.fonts.size + 2)}pt'></span> {capacity}%";
|
||||||
format-icons = [ "" "" "" "" "" ];
|
format-icons = [ "" "" "" "" "" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -361,9 +361,15 @@ let
|
|||||||
always the alert color. */
|
always the alert color. */
|
||||||
#custom-doctor { color: @bad; }
|
#custom-doctor { color: @bad; }
|
||||||
|
|
||||||
/* The power-profile speedometer glyph renders small in its em box —
|
/* Icon-only status modules carry no text, so they don't get the
|
||||||
size it up so it reads at a glance like the other indicators. */
|
(size+2)pt Pango icon span the icon+text modules use — bump their
|
||||||
#custom-powerprofile { font-size: ${toString (t.fonts.size + 3)}pt; }
|
font-size to match, or these glyphs read smaller than the volume /
|
||||||
|
battery / language icons beside them. */
|
||||||
|
#custom-recording, #custom-updates, #custom-vpn, #custom-nightlight, #custom-doctor, #custom-notification { font-size: ${toString (t.fonts.size + 2)}pt; }
|
||||||
|
|
||||||
|
/* The speedometer + caffeine glyphs render small in their em box —
|
||||||
|
size them up a touch more so they read at a glance. */
|
||||||
|
#custom-powerprofile, #idle_inhibitor { font-size: ${toString (t.fonts.size + 3)}pt; }
|
||||||
|
|
||||||
/* notifications waiting → accent; Do-Not-Disturb → muted bell-off */
|
/* notifications waiting → accent; Do-Not-Disturb → muted bell-off */
|
||||||
#custom-notification.notification { color: @accent; }
|
#custom-notification.notification { color: @accent; }
|
||||||
|
|||||||
@@ -2,12 +2,13 @@
|
|||||||
* Boreal — app-launcher override (themes/<slug>/launcher.rasi).
|
* Boreal — app-launcher override (themes/<slug>/launcher.rasi).
|
||||||
* Installed to ~/.local/share/rofi/themes/launcher.rasi and used only by
|
* Installed to ~/.local/share/rofi/themes/launcher.rasi and used only by
|
||||||
* `rofi -show drun` (the SUPER+Space / SUPER+D launcher). It inherits the
|
* `rofi -show drun` (the SUPER+Space / SUPER+D launcher). It inherits the
|
||||||
* frosted aurora panel from the sibling custom.rasi (the active theme),
|
* frosted aurora panel from the sibling rofi.rasi (this whole-swap theme,
|
||||||
|
* which HM deploys under its source basename — rofi.rasi — not custom.rasi),
|
||||||
* then reshapes the list into a 4×3 grid of large application icons.
|
* then reshapes the list into a 4×3 grid of large application icons.
|
||||||
* Text menus keep the list — they don't use this theme.
|
* Text menus keep the list — they don't use this theme.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@import "custom.rasi"
|
@import "rofi.rasi"
|
||||||
|
|
||||||
window { width: 780px; }
|
window { width: 780px; }
|
||||||
|
|
||||||
@@ -17,6 +18,10 @@ listview {
|
|||||||
fixed-columns: true;
|
fixed-columns: true;
|
||||||
spacing: 10px;
|
spacing: 10px;
|
||||||
padding: 6px 0px 0px 0px;
|
padding: 6px 0px 0px 0px;
|
||||||
|
/* Fill row-by-row so Down at a column's foot pages to the next screen
|
||||||
|
instead of jumping to the top of the next column (rofi's default
|
||||||
|
Vertical flow). Mirrors the theme-picker grid in rofi.nix. */
|
||||||
|
flow: horizontal;
|
||||||
}
|
}
|
||||||
|
|
||||||
element {
|
element {
|
||||||
|
|||||||
@@ -74,10 +74,13 @@ window#waybar {
|
|||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ── Launcher — the aurora-violet monogram opens the pill ─────────────*/
|
/* ── Launcher — the aurora-violet Nomarchy mark opens the pill ────────
|
||||||
|
The mark lives at U+F000 in the dedicated "Nomarchy" font; pin the
|
||||||
|
family or the Nerd Font's glass glyph at the same codepoint wins. */
|
||||||
#custom-nomarchy {
|
#custom-nomarchy {
|
||||||
color: @accent;
|
color: @accent;
|
||||||
font-size: 16px;
|
font-family: Nomarchy;
|
||||||
|
font-size: 18px;
|
||||||
padding: 0 12px 0 14px;
|
padding: 0 12px 0 14px;
|
||||||
}
|
}
|
||||||
#custom-nomarchy:hover { color: @accentAlt; }
|
#custom-nomarchy:hover { color: @accentAlt; }
|
||||||
@@ -126,8 +129,19 @@ window#waybar {
|
|||||||
#battery.warning:not(.charging) { color: @warn; }
|
#battery.warning:not(.charging) { color: @warn; }
|
||||||
#battery.critical:not(.charging) { color: @bad; }
|
#battery.critical:not(.charging) { color: @bad; }
|
||||||
|
|
||||||
/* Power-profile speedometer renders small in its em box — size it up. */
|
/* Icon-only status modules carry no text, so they don't get the 13pt
|
||||||
#custom-powerprofile { font-size: 16px; }
|
Pango icon span the icon+text modules (volume/battery/language) use —
|
||||||
|
bump their font-size to match, or these glyphs read noticeably smaller
|
||||||
|
than their neighbours. */
|
||||||
|
#custom-recording,
|
||||||
|
#custom-updates,
|
||||||
|
#custom-doctor,
|
||||||
|
#custom-nightlight,
|
||||||
|
#custom-vpn,
|
||||||
|
#custom-notification { font-size: 17px; }
|
||||||
|
/* Speedometer + caffeine cup render small in their em box — a touch more. */
|
||||||
|
#custom-powerprofile,
|
||||||
|
#idle_inhibitor { font-size: 18px; }
|
||||||
|
|
||||||
#custom-notification.notification { color: @accent; }
|
#custom-notification.notification { color: @accent; }
|
||||||
#custom-notification.dnd-none,
|
#custom-notification.dnd-none,
|
||||||
|
|||||||
@@ -87,7 +87,7 @@
|
|||||||
"on-click": "nomarchy-nightlight toggle"
|
"on-click": "nomarchy-nightlight toggle"
|
||||||
},
|
},
|
||||||
"hyprland/language": {
|
"hyprland/language": {
|
||||||
"format": " {short}",
|
"format": "<span size='13pt'></span> {short}",
|
||||||
"tooltip": false
|
"tooltip": false
|
||||||
},
|
},
|
||||||
"custom/vpn": {
|
"custom/vpn": {
|
||||||
@@ -98,10 +98,10 @@
|
|||||||
},
|
},
|
||||||
"pulseaudio": {
|
"pulseaudio": {
|
||||||
"scroll-step": 5,
|
"scroll-step": 5,
|
||||||
"format": "{icon} {volume}%",
|
"format": "<span size='13pt'>{icon}</span> {volume}%",
|
||||||
"format-bluetooth": "{icon} {volume}%",
|
"format-bluetooth": "<span size='13pt'>{icon}</span> {volume}%",
|
||||||
"format-bluetooth-muted": " {icon}",
|
"format-bluetooth-muted": " {icon}",
|
||||||
"format-muted": " muted",
|
"format-muted": "<span size='13pt'></span> muted",
|
||||||
"format-icons": {
|
"format-icons": {
|
||||||
"headphone": "",
|
"headphone": "",
|
||||||
"hands-free": "",
|
"hands-free": "",
|
||||||
@@ -124,9 +124,9 @@
|
|||||||
"warning": 25,
|
"warning": 25,
|
||||||
"critical": 10
|
"critical": 10
|
||||||
},
|
},
|
||||||
"format": "{icon} {capacity}%",
|
"format": "<span size='13pt'>{icon}</span> {capacity}%",
|
||||||
"format-charging": " {capacity}%",
|
"format-charging": "<span size='13pt'></span> {capacity}%",
|
||||||
"format-plugged": " {capacity}%",
|
"format-plugged": "<span size='13pt'></span> {capacity}%",
|
||||||
"format-icons": [
|
"format-icons": [
|
||||||
"",
|
"",
|
||||||
"",
|
"",
|
||||||
|
|||||||
@@ -72,10 +72,13 @@ window#waybar {
|
|||||||
#battery,
|
#battery,
|
||||||
#custom-vpn { margin-left: 6px; }
|
#custom-vpn { margin-left: 6px; }
|
||||||
|
|
||||||
/* ── Menu launcher — the one branded accent glyph ────────────────── */
|
/* ── Menu launcher — the branded Nomarchy mark ───────────────────────
|
||||||
|
The mark lives at U+F000 in the dedicated "Nomarchy" font; pin the
|
||||||
|
family or the Nerd Font's glass glyph at the same codepoint wins. */
|
||||||
#custom-nomarchy {
|
#custom-nomarchy {
|
||||||
color: @accent;
|
color: @accent;
|
||||||
font-size: 15px;
|
font-family: Nomarchy;
|
||||||
|
font-size: 16px;
|
||||||
padding: 0 14px;
|
padding: 0 14px;
|
||||||
}
|
}
|
||||||
#custom-nomarchy:hover {
|
#custom-nomarchy:hover {
|
||||||
@@ -126,8 +129,19 @@ window#waybar {
|
|||||||
|
|
||||||
#custom-updates.available { color: @accent; }
|
#custom-updates.available { color: @accent; }
|
||||||
|
|
||||||
/* Power-profile glyph renders small in its em box — size it up. */
|
/* Icon-only status modules carry no text, so they don't get the 13pt
|
||||||
#custom-powerprofile { font-size: 16px; }
|
Pango icon span the icon+text modules (volume/battery/language) use —
|
||||||
|
bump their font-size to match, or these glyphs read smaller than their
|
||||||
|
neighbours. */
|
||||||
|
#custom-recording,
|
||||||
|
#custom-nightlight,
|
||||||
|
#custom-updates,
|
||||||
|
#custom-vpn,
|
||||||
|
#custom-doctor,
|
||||||
|
#custom-notification { font-size: 17px; }
|
||||||
|
/* Speedometer + caffeine cup render small in their em box — a touch more. */
|
||||||
|
#custom-powerprofile,
|
||||||
|
#idle_inhibitor { font-size: 18px; }
|
||||||
|
|
||||||
#pulseaudio.muted { color: @muted; }
|
#pulseaudio.muted { color: @muted; }
|
||||||
|
|
||||||
|
|||||||
@@ -74,7 +74,7 @@
|
|||||||
"on-click": "nomarchy-nightlight toggle"
|
"on-click": "nomarchy-nightlight toggle"
|
||||||
},
|
},
|
||||||
"hyprland/language": {
|
"hyprland/language": {
|
||||||
"format": " {short}",
|
"format": "<span size='13pt'></span> {short}",
|
||||||
"tooltip": false
|
"tooltip": false
|
||||||
},
|
},
|
||||||
"custom/updates": {
|
"custom/updates": {
|
||||||
@@ -86,10 +86,10 @@
|
|||||||
},
|
},
|
||||||
"pulseaudio": {
|
"pulseaudio": {
|
||||||
"scroll-step": 5,
|
"scroll-step": 5,
|
||||||
"format": "{icon} {volume}%",
|
"format": "<span size='13pt'>{icon}</span> {volume}%",
|
||||||
"format-bluetooth": "{icon} {volume}%",
|
"format-bluetooth": "<span size='13pt'>{icon}</span> {volume}%",
|
||||||
"format-bluetooth-muted": " {icon}",
|
"format-bluetooth-muted": " {icon}",
|
||||||
"format-muted": " muted",
|
"format-muted": "<span size='13pt'></span> muted",
|
||||||
"format-icons": {
|
"format-icons": {
|
||||||
"headphone": "",
|
"headphone": "",
|
||||||
"hands-free": "",
|
"hands-free": "",
|
||||||
@@ -118,9 +118,9 @@
|
|||||||
"warning": 25,
|
"warning": 25,
|
||||||
"critical": 10
|
"critical": 10
|
||||||
},
|
},
|
||||||
"format": "{icon} {capacity}%",
|
"format": "<span size='13pt'>{icon}</span> {capacity}%",
|
||||||
"format-charging": " {capacity}%",
|
"format-charging": "<span size='13pt'></span> {capacity}%",
|
||||||
"format-plugged": " {capacity}%",
|
"format-plugged": "<span size='13pt'></span> {capacity}%",
|
||||||
"format-icons": [
|
"format-icons": [
|
||||||
"",
|
"",
|
||||||
"",
|
"",
|
||||||
|
|||||||
@@ -37,10 +37,10 @@
|
|||||||
},
|
},
|
||||||
|
|
||||||
"pulseaudio": {
|
"pulseaudio": {
|
||||||
"format": "{icon} {volume}%",
|
"format": "<span size='13pt'>{icon}</span> {volume}%",
|
||||||
"format-bluetooth": "{icon} {volume}%",
|
"format-bluetooth": "<span size='13pt'>{icon} </span> {volume}%",
|
||||||
"format-bluetooth-muted": " muted",
|
"format-bluetooth-muted": " muted",
|
||||||
"format-muted": " muted",
|
"format-muted": "<span size='13pt'></span> muted",
|
||||||
"format-icons": {
|
"format-icons": {
|
||||||
"headphone": "",
|
"headphone": "",
|
||||||
"hands-free": "",
|
"hands-free": "",
|
||||||
@@ -58,9 +58,9 @@
|
|||||||
"interval": 60,
|
"interval": 60,
|
||||||
"states": { "warning": 30, "critical": 15 },
|
"states": { "warning": 30, "critical": 15 },
|
||||||
"max-length": 10,
|
"max-length": 10,
|
||||||
"format": "{icon} {capacity}%",
|
"format": "<span size='13pt'>{icon}</span> {capacity}%",
|
||||||
"format-charging": " {capacity}%",
|
"format-charging": "<span size='13pt'></span> {capacity}%",
|
||||||
"format-plugged": " {capacity}%",
|
"format-plugged": "<span size='13pt'></span> {capacity}%",
|
||||||
"format-full": " 100%",
|
"format-full": " 100%",
|
||||||
"format-icons": ["", "", "", "", ""],
|
"format-icons": ["", "", "", "", ""],
|
||||||
"on-click": "nomarchy-menu power",
|
"on-click": "nomarchy-menu power",
|
||||||
@@ -110,7 +110,7 @@
|
|||||||
},
|
},
|
||||||
|
|
||||||
"hyprland/language": {
|
"hyprland/language": {
|
||||||
"format": " {short}",
|
"format": "<span size='13pt'></span> {short}",
|
||||||
"tooltip": false
|
"tooltip": false
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@@ -38,10 +38,10 @@
|
|||||||
|
|
||||||
"pulseaudio": {
|
"pulseaudio": {
|
||||||
"scroll-step": 5,
|
"scroll-step": 5,
|
||||||
"format": "{icon} {volume}%",
|
"format": "<span size='13pt'>{icon}</span> {volume}%",
|
||||||
"format-bluetooth": "{icon} {volume}%",
|
"format-bluetooth": "<span size='13pt'>{icon}</span> {volume}%",
|
||||||
"format-bluetooth-muted": " {icon}",
|
"format-bluetooth-muted": " {icon}",
|
||||||
"format-muted": " muted",
|
"format-muted": "<span size='13pt'></span> muted",
|
||||||
"format-icons": {
|
"format-icons": {
|
||||||
"headphone": "",
|
"headphone": "",
|
||||||
"hands-free": "",
|
"hands-free": "",
|
||||||
@@ -58,9 +58,9 @@
|
|||||||
"battery": {
|
"battery": {
|
||||||
"interval": 30,
|
"interval": 30,
|
||||||
"states": { "warning": 25, "critical": 10 },
|
"states": { "warning": 25, "critical": 10 },
|
||||||
"format": "{icon} {capacity}%",
|
"format": "<span size='13pt'>{icon}</span> {capacity}%",
|
||||||
"format-charging": " {capacity}%",
|
"format-charging": "<span size='13pt'></span> {capacity}%",
|
||||||
"format-plugged": " {capacity}%",
|
"format-plugged": "<span size='13pt'></span> {capacity}%",
|
||||||
"format-icons": ["", "", "", "", ""],
|
"format-icons": ["", "", "", "", ""],
|
||||||
"on-click": "nomarchy-menu power",
|
"on-click": "nomarchy-menu power",
|
||||||
"tooltip-format": "Battery status"
|
"tooltip-format": "Battery status"
|
||||||
@@ -109,7 +109,7 @@
|
|||||||
},
|
},
|
||||||
|
|
||||||
"hyprland/language": {
|
"hyprland/language": {
|
||||||
"format": " {short}",
|
"format": "<span size='13pt'></span> {short}",
|
||||||
"tooltip": false
|
"tooltip": false
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user