All checks were successful
Check / eval (push) Successful in 3m1s
Boreal — a Nord × Everforest × Dracula dark theme: a boreal forest at night under the aurora. Nord's frost bones, Everforest's comfort, Dracula's jewel-tone violet/cyan as the aurora light. Palette (WCAG-checked, all 24 themes × 7 pairings pass): frost-slate base, soft-vivid violet accent (#B79BE8, 6.35 on base) + frost-cyan accentAlt (#86C7C0, 7.84 AAA), sage-green/gold/coral semantics, text 10.66 AAA. Bespoke, non-standard surfaces: - Waybar whole-swap (jsonc + css): a floating "aurora frost" bar of three frosted-glass pills; launcher+clock left, workspaces centre, and the whole right side is ONE continuous pill — the system tray shares its glass with the status modules, no separators (the seamless-tray requirement). Full module set (parity). GeistMono. - Rofi: a frosted list base (used by every menu), plus a 4×3 large-icon grid for the app launcher only. - Typography GeistMono Nerd Font (57 MB, new); Iosevka was rejected at 1.1 GB. Per-theme appearance (new): a preset now carries a full fonts+ui block, like border, so a theme can ship a bespoke font / terminal opacity / border thickness / rounding and a switch always replaces it — no leak into the next theme (verified: boreal→everforest resets mono/rounding/opacity). All 23 other presets get the current defaults (idempotent — zero visual change). Boreal runs GeistMono + 0.90 terminal opacity + 3px borders + 12px rounding. Grid launcher (new, backward-compatible): drun renders via `-theme launcher`; HM writes ~/.local/share/rofi/themes/launcher.rasi which defaults to `@import "custom.rasi"` (every other theme's launcher = its list, unchanged), and a theme may override it (Boreal's grid). Text menus keep the base list. Wallpaper: an original procedurally-generated aurora-over-treeline (ImageMagick), palette-matched. V1: nix flake check --no-build green; strict JSON on every preset; contrast checker green; the real rofi binary parses the base rasi and resolves `-theme launcher` + @import + grid overlay; end-to-end eval with boreal active resolves the waybar whole-swap (tray in the right cluster), the rofi grid launcher, and the bespoke fonts/opacity/geometry reaching nomarchy.theme, with no cross-theme contamination. NOT done: on-screen render of the desktop (V2/V3) and preview.png (deferred to on-hardware capture). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
161 lines
3.8 KiB
JSON
161 lines
3.8 KiB
JSON
{
|
|
"margin-top": 8,
|
|
"margin-left": 14,
|
|
"margin-right": 14,
|
|
"margin-bottom": 0,
|
|
"height": 38,
|
|
"layer": "top",
|
|
"position": "top",
|
|
"spacing": 4,
|
|
"reload_style_on_change": true,
|
|
|
|
"modules-left": ["custom/nomarchy", "clock", "clock#date"],
|
|
"modules-center": ["hyprland/workspaces"],
|
|
"modules-right": ["custom/recording", "custom/updates", "custom/doctor", "idle_inhibitor", "custom/nightlight", "hyprland/language", "custom/vpn", "pulseaudio", "battery", "custom/powerprofile", "tray", "custom/notification", "custom/powermenu"],
|
|
|
|
"custom/nomarchy": {
|
|
"interval": "once",
|
|
"format": "",
|
|
"on-click": "nomarchy-menu",
|
|
"tooltip-format": "Nomarchy menu"
|
|
},
|
|
|
|
"clock": {
|
|
"format": "{:%H:%M}",
|
|
"tooltip": true,
|
|
"tooltip-format": "{:%Z (UTC%z)}\n<tt><small>{calendar}</small></tt>"
|
|
},
|
|
|
|
"clock#date": {
|
|
"format": "{:%a %d %b}",
|
|
"tooltip": false
|
|
},
|
|
|
|
"hyprland/workspaces": {
|
|
"disable-scroll": true,
|
|
"all-outputs": true,
|
|
"on-click": "activate",
|
|
"on-scroll-up": "hyprctl dispatch workspace r+1",
|
|
"on-scroll-down": "hyprctl dispatch workspace r-1"
|
|
},
|
|
|
|
"custom/recording": {
|
|
"return-type": "json",
|
|
"interval": 10,
|
|
"signal": 8,
|
|
"exec": "nomarchy-record status",
|
|
"on-click": "nomarchy-record stop"
|
|
},
|
|
|
|
"custom/updates": {
|
|
"return-type": "json",
|
|
"interval": 1800,
|
|
"signal": 9,
|
|
"exec": "nomarchy-updates status",
|
|
"on-click": "sh -c '$TERMINAL -e nomarchy-updates upgrade'"
|
|
},
|
|
|
|
"custom/doctor": {
|
|
"return-type": "json",
|
|
"interval": 300,
|
|
"exec": "nomarchy-doctor-status",
|
|
"on-click": "nomarchy-menu doctor"
|
|
},
|
|
|
|
"idle_inhibitor": {
|
|
"format": "{icon}",
|
|
"format-icons": {
|
|
"activated": "",
|
|
"deactivated": ""
|
|
}
|
|
},
|
|
|
|
"custom/nightlight": {
|
|
"return-type": "json",
|
|
"interval": 3,
|
|
"exec": "nomarchy-nightlight status",
|
|
"on-click": "nomarchy-nightlight toggle"
|
|
},
|
|
|
|
"hyprland/language": {
|
|
"format": " {short}",
|
|
"tooltip": false
|
|
},
|
|
|
|
"custom/vpn": {
|
|
"return-type": "json",
|
|
"interval": 5,
|
|
"exec": "nomarchy-vpn-status",
|
|
"on-click": "nomarchy-vpn"
|
|
},
|
|
|
|
"pulseaudio": {
|
|
"scroll-step": 5,
|
|
"format": "{icon} {volume}%",
|
|
"format-bluetooth": "{icon} {volume}%",
|
|
"format-bluetooth-muted": "{icon} muted",
|
|
"format-muted": " muted",
|
|
"format-icons": {
|
|
"headphone": "",
|
|
"hands-free": "",
|
|
"headset": "",
|
|
"phone": "",
|
|
"portable": "",
|
|
"car": "",
|
|
"default": ["", "", ""]
|
|
},
|
|
"on-click": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle",
|
|
"tooltip-format": "{desc} | {volume}%"
|
|
},
|
|
|
|
"battery": {
|
|
"interval": 30,
|
|
"states": { "warning": 25, "critical": 10 },
|
|
"format": "{icon} {capacity}%",
|
|
"format-charging": " {capacity}%",
|
|
"format-plugged": " {capacity}%",
|
|
"format-icons": ["", "", "", "", ""],
|
|
"on-click": "nomarchy-menu power",
|
|
"tooltip-format": "Battery status"
|
|
},
|
|
|
|
"custom/powerprofile": {
|
|
"return-type": "json",
|
|
"interval": 5,
|
|
"exec": "nomarchy-powerprofile-status",
|
|
"on-click": "nomarchy-powerprofile-cycle"
|
|
},
|
|
|
|
"tray": {
|
|
"icon-size": 15,
|
|
"spacing": 10
|
|
},
|
|
|
|
"custom/notification": {
|
|
"format": "{icon}",
|
|
"return-type": "json",
|
|
"exec": "swaync-client -swb",
|
|
"exec-if": "which swaync-client",
|
|
"escape": true,
|
|
"tooltip": true,
|
|
"on-click": "swaync-client -t -sw",
|
|
"on-click-right": "swaync-client -d -sw",
|
|
"format-icons": {
|
|
"none": "",
|
|
"notification": "",
|
|
"dnd-none": "",
|
|
"dnd-notification": "",
|
|
"inhibited-none": "",
|
|
"inhibited-notification": "",
|
|
"dnd-inhibited-none": "",
|
|
"dnd-inhibited-notification": ""
|
|
}
|
|
},
|
|
|
|
"custom/powermenu": {
|
|
"format": "",
|
|
"on-click": "nomarchy-menu power",
|
|
"tooltip": false
|
|
}
|
|
}
|