Noctalia theme migration: Niri IPC, GTK palette, alacritty import

- Switch Niri keybinds from qs-wrapped IPC calls to direct 'noctalia msg'
- Add noctalia.kdl include to niri config
- Replace alacritty theme with import of noctalia.toml
- Ghostty: Retro Legends → noctalia theme
- GTK3/4: accent palette shift from lavender (#bfc2ff) to purple (#b267e4)
- systemd swayidle-lock.service updated
This commit is contained in:
Frank
2026-09-11 00:26:56 -07:00
parent d0c90fccbd
commit 49afdfeda4
13 changed files with 337 additions and 101 deletions
@@ -1,4 +1,5 @@
[general]
import = ["~/.config/alacritty/themes/noctalia.toml"]
working_directory = "None"
live_config_reload = true
@@ -2,7 +2,7 @@
# Clean, simplified config for Terminess Nerd Font Mono with Catppuccin Mocha
# ── Theme ──────────────────────────────────────────────────────────────────────
theme = "Retro Legends"
theme = noctalia
# ── Font ───────────────────────────────────────────────────────────────────────
font-family = "Terminess Nerd Font Mono"
+29 -25
View File
@@ -4,45 +4,49 @@
* stylelint-disable at-rule-no-unknown
*/
@define-color accent_color #bfc2ff;
@define-color accent_bg_color #bfc2ff;
@define-color accent_fg_color #23276f;
@define-color accent_color #b267e4;
@define-color accent_bg_color #b267e4;
@define-color accent_fg_color #201825;
@define-color destructive_bg_color #ffb4ab;
@define-color destructive_fg_color #690005;
@define-color destructive_bg_color #fd4663;
@define-color destructive_fg_color #201825;
@define-color error_bg_color #ffb4ab;
@define-color error_fg_color #690005;
@define-color error_bg_color #fd4663;
@define-color error_fg_color #201825;
@define-color window_bg_color #131318;
@define-color window_fg_color #e4e1e8;
@define-color window_bg_color #220f2e;
@define-color window_fg_color #f2f2f3;
@define-color view_bg_color #131318;
@define-color view_fg_color #e4e1e8;
@define-color view_bg_color #220f2e;
@define-color view_fg_color #f2f2f3;
@define-color headerbar_bg_color #131318;
@define-color headerbar_fg_color #e4e1e8;
@define-color headerbar_bg_color #38194d;
@define-color headerbar_fg_color #f2f2f3;
@define-color headerbar_backdrop_color @window_bg_color;
@define-color popover_bg_color #1f1f24;
@define-color popover_fg_color #e4e1e8;
@define-color popover_bg_color #38194d;
@define-color popover_fg_color #f2f2f3;
@define-color card_bg_color #1f1f24;
@define-color card_fg_color #e4e1e8;
@define-color card_bg_color #38194d;
@define-color card_fg_color #f2f2f3;
@define-color dialog_bg_color #131318;
@define-color dialog_fg_color #e4e1e8;
@define-color dialog_bg_color #220f2e;
@define-color dialog_fg_color #f2f2f3;
@define-color overview_bg_color #1f1f24;
@define-color overview_fg_color #e4e1e8;
@define-color overview_bg_color #38194d;
@define-color overview_fg_color #f2f2f3;
@define-color sidebar_bg_color #1f1f24;
@define-color sidebar_fg_color #e4e1e8;
@define-color sidebar_bg_color #38194d;
@define-color sidebar_fg_color #f2f2f3;
@define-color sidebar_backdrop_color @window_bg_color;
@define-color sidebar_border_color @window_bg_color;
@define-color secondary_sidebar_bg_color #131318;
@define-color secondary_sidebar_fg_color #e4e1e8;
@define-color secondary_sidebar_bg_color #220f2e;
@define-color secondary_sidebar_fg_color #f2f2f3;
/* Focused selection states */
@define-color theme_selected_bg_color @accent_bg_color;
@define-color theme_selected_fg_color @accent_fg_color;
/* Backdrop/unfocused states */
@define-color theme_unfocused_fg_color @window_fg_color;
+59 -55
View File
@@ -4,45 +4,49 @@
* stylelint-disable at-rule-no-unknown
*/
@define-color accent_color #bfc2ff;
@define-color accent_bg_color #bfc2ff;
@define-color accent_fg_color #23276f;
@define-color accent_color #b267e4;
@define-color accent_bg_color #b267e4;
@define-color accent_fg_color #201825;
@define-color destructive_bg_color #ffb4ab;
@define-color destructive_fg_color #690005;
@define-color destructive_bg_color #fd4663;
@define-color destructive_fg_color #201825;
@define-color error_bg_color #ffb4ab;
@define-color error_fg_color #690005;
@define-color error_bg_color #fd4663;
@define-color error_fg_color #201825;
@define-color window_bg_color #131318;
@define-color window_fg_color #e4e1e8;
@define-color window_bg_color #220f2e;
@define-color window_fg_color #f2f2f3;
@define-color view_bg_color #131318;
@define-color view_fg_color #e4e1e8;
@define-color view_bg_color #220f2e;
@define-color view_fg_color #f2f2f3;
@define-color headerbar_bg_color #131318;
@define-color headerbar_fg_color #e4e1e8;
@define-color headerbar_bg_color #220f2e;
@define-color headerbar_fg_color #f2f2f3;
@define-color headerbar_backdrop_color @window_bg_color;
@define-color popover_bg_color #1f1f24;
@define-color popover_fg_color #e4e1e8;
@define-color popover_bg_color #38194d;
@define-color popover_fg_color #f2f2f3;
@define-color card_bg_color #1f1f24;
@define-color card_fg_color #e4e1e8;
@define-color card_bg_color #38194d;
@define-color card_fg_color #f2f2f3;
@define-color dialog_bg_color #131318;
@define-color dialog_fg_color #e4e1e8;
@define-color dialog_bg_color #220f2e;
@define-color dialog_fg_color #f2f2f3;
@define-color overview_bg_color #1f1f24;
@define-color overview_fg_color #e4e1e8;
@define-color overview_bg_color #38194d;
@define-color overview_fg_color #f2f2f3;
@define-color sidebar_bg_color #1f1f24;
@define-color sidebar_fg_color #e4e1e8;
@define-color sidebar_bg_color #38194d;
@define-color sidebar_fg_color #f2f2f3;
@define-color sidebar_backdrop_color @window_bg_color;
@define-color sidebar_border_color @window_bg_color;
@define-color secondary_sidebar_bg_color #131318;
@define-color secondary_sidebar_fg_color #e4e1e8;
@define-color secondary_sidebar_bg_color #220f2e;
@define-color secondary_sidebar_fg_color #f2f2f3;
/* Focused selection states */
@define-color theme_selected_bg_color @accent_bg_color;
@define-color theme_selected_fg_color @accent_fg_color;
/* Backdrop/unfocused states */
@define-color theme_unfocused_fg_color @window_fg_color;
@@ -53,51 +57,51 @@
@define-color theme_unfocused_selected_fg_color @accent_fg_color;
:root {
--accent-color: #bfc2ff;
--accent-bg-color: #bfc2ff;
--accent-fg-color: #23276f;
--accent-color: #b267e4;
--accent-bg-color: #b267e4;
--accent-fg-color: #201825;
--destructive-bg-color: #ffb4ab;
--destructive-fg-color: #690005;
--destructive-bg-color: #fd4663;
--destructive-fg-color: #201825;
--error-bg-color: #ffb4ab;
--error-fg-color: #690005;
--error-color: #ffb4ab;
--error-bg-color: #fd4663;
--error-fg-color: #201825;
--error-color: #fd4663;
--window-bg-color: #131318;
--window-fg-color: #e4e1e8;
--window-bg-color: #220f2e;
--window-fg-color: #f2f2f3;
--view-bg-color: #131318;
--view-fg-color: #e4e1e8;
--view-bg-color: #220f2e;
--view-fg-color: #f2f2f3;
--headerbar-bg-color: #131318;
--headerbar-fg-color: #e4e1e8;
--headerbar-bg-color: #220f2e;
--headerbar-fg-color: #f2f2f3;
--headerbar-backdrop-color: @window_bg_color;
--popover-bg-color: #1f1f24;
--popover-fg-color: #e4e1e8;
--popover-bg-color: #38194d;
--popover-fg-color: #f2f2f3;
--card-bg-color: #1f1f24;
--card-fg-color: #e4e1e8;
--card-bg-color: #38194d;
--card-fg-color: #f2f2f3;
--dialog-bg-color: #131318;
--dialog-fg-color: #e4e1e8;
--dialog-bg-color: #220f2e;
--dialog-fg-color: #f2f2f3;
--overview-bg-color: #1f1f24;
--overview-fg-color: #e4e1e8;
--overview-bg-color: #38194d;
--overview-fg-color: #f2f2f3;
--sidebar-bg-color: #1f1f24;
--sidebar-fg-color: #e4e1e8;
--sidebar-bg-color: #38194d;
--sidebar-fg-color: #f2f2f3;
--sidebar-backdrop-color: @window_bg_color;
--sidebar-border-color: @window_bg_color;
--warning-bg-color: #6d2f65;
--warning-fg-color: #ffd7f3;
--warning-color: #fcadeb;
--warning-bg-color: #651a38;
--warning-fg-color: #f3d8e3;
--warning-color: #ce648e;
--success-color: #c3c4e7;
--success-bg-color: #434462;
--success-fg-color: #e0e0ff;
--success-color: #d65cce;
--success-bg-color: #6a1664;
--success-fg-color: #f3d8f1;
--shade-color: rgba(0, 0, 0, 0.36);
}
+1 -1
View File
@@ -1,4 +1,4 @@
// ────────────── Startup Applications ──────────────
// https://github.com/YaLTeR/niri/wiki/Configuration:-Miscellaneous#spawn-sh-at-startup
spawn-sh-at-startup "qs -c noctalia-shell"
spawn-at-startup "noctalia"
+13 -13
View File
@@ -10,27 +10,27 @@ binds {
// ─── Applications ───
Mod+Return hotkey-overlay-title="Open Terminal: Ghostty" { spawn "ghostty"; }
Mod+CTRL+Return hotkey-overlay-title="Open App Launcher: noctalia launcher" { spawn-sh "qs -c noctalia-shell ipc call launcher toggle"; }
Mod+CTRL+Return hotkey-overlay-title="Open App Launcher: noctalia launcher" { spawn-sh "noctalia msg panel-toggle launcher"; }
Mod+B hotkey-overlay-title="Open Browser: firefox" { spawn "firefox"; }
Mod+ALT+L hotkey-overlay-title="Lock Screen: noctalia lock" { spawn-sh "qs -c noctalia-shell ipc call lockScreen lock"; }
Mod+Shift+Q hotkey-overlay-title="Session Menu: noctalia sessionMenu" { spawn-sh "qs -c noctalia-shell ipc call sessionMenu toggle"; }
Mod+ALT+L hotkey-overlay-title="Lock Screen: noctalia lock" { spawn-sh "noctalia msg session lock"; }
Mod+Shift+Q hotkey-overlay-title="Session Menu: noctalia session" { spawn-sh "noctalia msg panel-toggle session"; }
// Please choose your own file manager.
Mod+E hotkey-overlay-title="File Manager: Nautilus" { spawn "nautilus"; }
// ─── Media Controls ───
XF86AudioRaiseVolume allow-when-locked=true { spawn-sh "qs -c noctalia-shell ipc call volume increase"; }
XF86AudioLowerVolume allow-when-locked=true { spawn-sh "qs -c noctalia-shell ipc call volume decrease"; }
XF86AudioMute allow-when-locked=true { spawn-sh "qs -c noctalia-shell ipc call volume muteOutput"; }
XF86AudioMicMute allow-when-locked=true { spawn-sh "qs -c noctalia-shell ipc call volume muteInput"; }
XF86AudioNext allow-when-locked=true { spawn-sh "qs -c noctalia-shell ipc call media next"; }
XF86AudioPrev allow-when-locked=true { spawn-sh "qs -c noctalia-shell ipc call media previous"; }
XF86AudioPlay allow-when-locked=true { spawn-sh "qs -c noctalia-shell ipc call media playPause"; }
XF86AudioPause allow-when-locked=true { spawn-sh "qs -c noctalia-shell ipc call media playPause"; }
XF86AudioRaiseVolume allow-when-locked=true { spawn-sh "noctalia msg volume-up"; }
XF86AudioLowerVolume allow-when-locked=true { spawn-sh "noctalia msg volume-down"; }
XF86AudioMute allow-when-locked=true { spawn-sh "noctalia msg volume-mute"; }
XF86AudioMicMute allow-when-locked=true { spawn-sh "noctalia msg mic-mute"; }
XF86AudioNext allow-when-locked=true { spawn-sh "noctalia msg media next"; }
XF86AudioPrev allow-when-locked=true { spawn-sh "noctalia msg media previous"; }
XF86AudioPlay allow-when-locked=true { spawn-sh "noctalia msg media playPause"; }
XF86AudioPause allow-when-locked=true { spawn-sh "noctalia msg media playPause"; }
// ─── Brightness Controls ───
XF86MonBrightnessUp allow-when-locked=true { spawn-sh "qs -c noctalia-shell ipc call brightness increase"; }
XF86MonBrightnessDown allow-when-locked=true { spawn-sh "qs -c noctalia-shell ipc call brightness decrease"; }
XF86MonBrightnessUp allow-when-locked=true { spawn-sh "noctalia msg brightness-up"; }
XF86MonBrightnessDown allow-when-locked=true { spawn-sh "noctalia msg brightness-down"; }
// ─── Window Movement and Focus ───
Mod+Q { close-window; }
+2
View File
@@ -6,3 +6,5 @@ include "./cfg/display.kdl"
include "./cfg/layout.kdl"
include "./cfg/rules.kdl"
include "./cfg/misc.kdl"
include "noctalia.kdl"
@@ -4,13 +4,13 @@ Documentation=https://github.com/swaywm/swayidle
After=graphical-session.target
[Service]
# qs exists on dankware, bare noctalia CLI on blankpad; the fallback chain makes
# this one unit correct on both hosts. deploy.sh enables it only where the
# ExecStart binary resolves, so it stays inert until swayidle is installed.
# Locks via the noctalia v5 shell; `noctalia msg` resolves the running instance
# through the D-Bus session bus, so no WAYLAND_DISPLAY pinning is needed in unit context.
# deploy.sh enables it only where the ExecStart binary resolves, so it stays inert until swayidle is installed.
ExecStart=/usr/bin/swayidle -w \
timeout 300 'qs -c noctalia-shell ipc call lockScreen lock || noctalia msg session lock' \
before-sleep 'qs -c noctalia-shell ipc call lockScreen lock || noctalia msg session lock' \
after-resume 'qs -c noctalia-shell ipc call lockScreen lock || noctalia msg session lock'
timeout 300 '/usr/bin/noctalia msg session lock' \
before-sleep '/usr/bin/noctalia msg session lock' \
after-resume '/usr/bin/noctalia msg session lock'
Restart=on-failure
RestartSec=5s