theme edits

This commit is contained in:
mjallen18
2025-10-24 09:58:33 -05:00
parent 1b125aecd0
commit 9582ca5392
26 changed files with 1488 additions and 726 deletions

View File

@@ -2,7 +2,7 @@
with lib;
let
cfg = config.mjallen.programs.btop;
nord = import (lib.snowfall.fs.get-file "modules/home/desktop/theme/nord.nix");
palette = import cfg.theme.file;
in
{
imports = [ ./options.nix ];
@@ -10,7 +10,7 @@ in
programs.btop = {
enable = true;
settings = {
color_theme = "nord"; # todo
color_theme = "global";
theme_background = true;
truecolor = true;
force_tty = false;
@@ -76,49 +76,49 @@ in
log_level = "WARNING";
};
themes = {
nord = ''
theme[main_bg]="${nord.polarNight.nord0}"
theme[main_fg]="${nord.snowStorm.nord6}"
theme[title]="${nord.snowStorm.nord6}"
theme[hi_fg]="${nord.frost.nord7}"
theme[selected_bg]="${nord.polarNight.nord1}"
theme[selected_fg]="${nord.frost.nord7}"
theme[inactive_fg]="${nord.polarNight.nord2}"
theme[graph_text]="${nord.snowStorm.nord6}"
theme[meter_bg]="${nord.polarNight.nord1}"
theme[proc_misc]="${nord.snowStorm.nord6}"
theme[cpu_box]="${nord.aurora.nord15}"
theme[mem_box]="${nord.aurora.nord14}"
theme[net_box]="${nord.aurora.nord12}"
theme[proc_box]="${nord.aurora.nord11}"
theme[div_line]="${nord.polarNight.nord1}"
theme[temp_start]="${nord.aurora.nord14}"
theme[temp_mid]="${nord.aurora.nord13}"
theme[temp_end]="${nord.aurora.nord11}"
theme[cpu_start]="${nord.aurora.nord15}"
theme[cpu_mid]="${nord.aurora.nord12}"
theme[cpu_end]="${nord.aurora.nord11}"
theme[free_start]="${nord.aurora.nord14}"
theme[free_mid]="${nord.aurora.nord13}"
theme[free_end]="${nord.aurora.nord12}"
theme[cached_start]="${nord.aurora.nord14}"
theme[cached_mid]="${nord.aurora.nord13}"
theme[cached_end]="${nord.aurora.nord12}"
theme[available_start]="${nord.snowStorm.nord6}"
theme[available_mid]="${nord.aurora.nord11}"
theme[available_end]="${nord.aurora.nord11}"
theme[used_start]="${nord.aurora.nord14}"
theme[used_mid]="${nord.aurora.nord13}"
theme[used_end]="${nord.aurora.nord11}"
theme[download_start]="${nord.frost.nord8}"
theme[download_mid]="${nord.frost.nord8}"
theme[download_end]="${nord.aurora.nord12}"
theme[upload_start]="${nord.frost.nord7}"
theme[upload_mid]="${nord.frost.nord7}"
theme[upload_end]="${nord.aurora.nord12}"
theme[process_start]="${nord.aurora.nord15}"
theme[process_mid]="${nord.aurora.nord12}"
theme[process_end]="${nord.aurora.nord11}"
global = ''
theme[main_bg]="${palette.colors.bg}"
theme[main_fg]="${palette.colors.text}"
theme[title]="${palette.colors.text}"
theme[hi_fg]="${palette.colors.info}"
theme[selected_bg]="${palette.colors.bgAlt}"
theme[selected_fg]="${palette.colors.info}"
theme[inactive_fg]="${palette.colors.surfaceAlt}"
theme[graph_text]="${palette.colors.text}"
theme[meter_bg]="${palette.colors.bgAlt}"
theme[proc_misc]="${palette.colors.text}"
theme[cpu_box]="${palette.colors.accent}"
theme[mem_box]="${palette.colors.success}"
theme[net_box]="${palette.colors.warning}"
theme[proc_box]="${palette.colors.danger}"
theme[div_line]="${palette.colors.bgAlt}"
theme[temp_start]="${palette.colors.success}"
theme[temp_mid]="${palette.colors.warning}"
theme[temp_end]="${palette.colors.danger}"
theme[cpu_start]="${palette.colors.accent}"
theme[cpu_mid]="${palette.colors.warning}"
theme[cpu_end]="${palette.colors.danger}"
theme[free_start]="${palette.colors.success}"
theme[free_mid]="${palette.colors.warning}"
theme[free_end]="${palette.colors.warning}"
theme[cached_start]="${palette.colors.success}"
theme[cached_mid]="${palette.colors.warning}"
theme[cached_end]="${palette.colors.warning}"
theme[available_start]="${palette.colors.text}"
theme[available_mid]="${palette.colors.danger}"
theme[available_end]="${palette.colors.danger}"
theme[used_start]="${palette.colors.success}"
theme[used_mid]="${palette.colors.warning}"
theme[used_end]="${palette.colors.danger}"
theme[download_start]="${palette.colors.info}"
theme[download_mid]="${palette.colors.info}"
theme[download_end]="${palette.colors.warning}"
theme[upload_start]="${palette.colors.info}"
theme[upload_mid]="${palette.colors.info}"
theme[upload_end]="${palette.colors.warning}"
theme[process_start]="${palette.colors.accent}"
theme[process_mid]="${palette.colors.warning}"
theme[process_end]="${palette.colors.danger}"
'';
};
};

View File

@@ -3,5 +3,19 @@ with lib;
{
options.mjallen.programs.btop = {
enable = mkEnableOption "enable btop";
theme = mkOption {
type = types.submodule {
options = {
file = mkOption {
type = types.path;
default = lib.snowfall.fs.get-file "modules/home/desktop/theme/palettes/nord.nix";
description = "Nix file exporting a palette attrset.";
};
};
};
default = { };
description = "btop theme palette configuration.";
};
};
}

View File

@@ -8,7 +8,7 @@
}:
let
isArm = ("aarch64-linux" == system) || ("aarch64-darwin" == system);
x86_only = with pkgs; [
vscode-extensions.redhat.vscode-xml
];

View File

@@ -7,7 +7,7 @@
with lib;
let
cfg = config.mjallen.programs.hyprland;
drawer = "nwg-drawer -fm nautilus -term kitty -mb 10 -mt 10 -ml 10 -mr 10 -pbuseicontheme -i ${cfg.iconThemeName}";
drawer = "nwg-drawer -fm nautilus -term kitty -mb 10 -mt 10 -ml 10 -mr 10 -pbuseicontheme -i ${config.gtk.iconTheme.name}";
in
{
imports = [
@@ -80,9 +80,9 @@ in
CLUTTER_BACKEND = "wayland";
EDITOR = "${cfg.defaultApps.editor.pname}";
VISUAL = "${cfg.defaultApps.visual.pname}";
ICON_THEME = cfg.iconThemeName;
ICON_THEME = config.gtk.iconTheme.name;
GTK_CSD = "0";
GTK_THEME = cfg.gtkThemeName;
GTK_THEME = config.gtk.theme.name;
GTK_USE_PORTAL = "1";
HYPRCURSOR_THEME = config.home.pointerCursor.name;
HYPRCURSOR_SIZE = config.home.pointerCursor.size;
@@ -354,30 +354,31 @@ in
]
++ cfg.keybinds.bindl;
monitor = cfg.monitor;
monitorv2 = map (
m:
if m.disabled then
"${m.name}, disable"
else if m.mirrorOf != null then
"${m.name}, mirror, ${m.mirrorOf}"
else
let
mode = if m.mode == null then "preferred" else m.mode;
position = if m.position == null then "auto" else m.position;
scale = if m.scale == null then "1" else (toString m.scale);
transform = if m.transform == null then "auto" else m.transform;
base = [
m.name
mode
position
scale
transform
];
line = builtins.concatStringsSep ", " (base ++ m.extra);
in
line
) cfg.monitorv2;
monitor =
cfg.monitor
++ map (
m:
if m.disabled then
"${m.name}, disable"
else if m.mirrorOf != null then
"${m.name}, mirror, ${m.mirrorOf}"
else
let
mode = if m.mode == null then "preferred" else m.mode;
position = if m.position == null then "0x0" else m.position;
scale = if m.scale == null then "1" else (toString m.scale);
parts = [
m.name
mode
position
scale
];
# Append transform only when set, as "transform, <value>"
transformTokens = if m.transform == null then [ ] else [ "transform" m.transform ];
tokens = parts ++ transformTokens ++ m.extra;
in
builtins.concatStringsSep ", " tokens
) cfg.monitorv2;
render = {
cm_fs_passthrough = 1;

View File

@@ -2,18 +2,20 @@
config,
lib,
pkgs,
mjallenThemeComputed,
...
}:
with lib;
let
cfg = config.mjallen.programs.hyprland;
themeSize = "compact"; # [ "standard" "compact" ]
themeAccent = "all"; # [ "default" "purple" "pink" "red" "orange" "yellow" "green" "teal" "grey" "all" ]
themeVariant = "nord"; # [ "nord" "dracula" "gruvbox" "everforest" "catppuccin" "all" "black" "rimless" "normal" "float" ]
themeColor = "dark"; # [ "standard" "light" "dark" ]
iconThemeVariant = "all"; # [ "default" "purple" "pink" "red" "orange" "yellow" "green" "teal" "grey" "all" ]
iconScheme = "nord"; # [ "default" "nord" "dracula" "gruvbox" "everforest" "catppuccin" "all" ]
# Pull from global theme options
themeSize = config.mjallen.theme.gtk.size; # "standard" | "compact"
themeAccent = config.mjallen.theme.gtk.accent; # "default" | ... | "all"
themeTweak = config.mjallen.theme.gtk.tweak; # "normal" | "rimless" | "float" | "black"
themeColor = config.mjallen.theme.gtk.color; # "light" | "dark"
iconThemeVariant = config.mjallen.theme.icons.variant; # "default" | ... | "all"
iconScheme = config.mjallen.theme.icons.scheme; # "default" | "nord" | "dracula" | ...
# Cursor
cursorTheme = "macOS";
@@ -21,16 +23,16 @@ let
cursorSize = 24;
# GTK
gtkTheme = "Colloid-Dark-Compact-Nord";
gtkTheme = mjallenThemeComputed.gtkTheme;
gtkThemePkg = pkgs.colloid-gtk-theme.override {
sizeVariants = [ themeSize ];
colorVariants = [ themeColor ];
themeVariants = [ themeAccent ];
tweaks = [ themeVariant ];
tweaks = [ themeTweak ];
};
# Icons
iconTheme = "Colloid-Nord-Dark";
iconTheme = mjallenThemeComputed.iconTheme;
iconThemePkg = pkgs.colloid-icon-theme.override {
schemeVariants = [ iconScheme ];
colorVariants = [ iconThemeVariant ];

View File

@@ -2,7 +2,7 @@
with lib;
let
cfg = config.mjallen.programs.kitty;
nord = import (lib.snowfall.fs.get-file "modules/home/desktop/theme/nord.nix");
palette = import cfg.theme.file;
in
{
imports = [ ./options.nix ];
@@ -29,77 +29,77 @@ in
background_opacity = "0.85";
# The basic colors
foreground = nord.snowStorm.nord6;
background = nord.polarNight.nord0;
selection_foreground = nord.polarNight.nord0;
selection_background = nord.aurora.nord15;
foreground = palette.colors.text;
background = palette.colors.bg;
selection_foreground = palette.colors.bg;
selection_background = palette.colors.accent;
# Cursor colors
cursor = nord.aurora.nord15;
cursor_text_color = nord.polarNight.nord0;
cursor = palette.colors.accent;
cursor_text_color = palette.colors.bg;
# URL underline color when hovering with mouse
url_color = nord.aurora.nord15;
url_color = palette.colors.accent;
# Kitty window border colors
active_border_color = nord.frost.nord10;
inactive_border_color = nord.polarNight.nord1;
bell_border_color = nord.aurora.nord13;
active_border_color = palette.colors.primary;
inactive_border_color = palette.colors.bgAlt;
bell_border_color = palette.colors.warning;
# OS Window titlebar colors
wayland_titlebar_color = nord.polarNight.nord0;
macos_titlebar_color = nord.polarNight.nord0;
wayland_titlebar_color = palette.colors.bg;
macos_titlebar_color = palette.colors.bg;
# Tab bar colors
active_tab_foreground = nord.polarNight.nord3;
active_tab_background = nord.aurora.nord15;
inactive_tab_foreground = nord.snowStorm.nord6;
inactive_tab_background = nord.polarNight.nord1;
tab_bar_background = nord.polarNight.nord3;
active_tab_foreground = palette.colors.border;
active_tab_background = palette.colors.accent;
inactive_tab_foreground = palette.colors.text;
inactive_tab_background = palette.colors.bgAlt;
tab_bar_background = palette.colors.border;
# Colors for marks (marked text in the terminal)
mark1_foreground = nord.polarNight.nord0;
mark1_background = nord.frost.nord10;
mark2_foreground = nord.polarNight.nord0;
mark2_background = nord.aurora.nord15;
mark3_foreground = nord.polarNight.nord0;
mark3_background = nord.frost.nord8;
mark1_foreground = palette.colors.bg;
mark1_background = palette.colors.primary;
mark2_foreground = palette.colors.bg;
mark2_background = palette.colors.accent;
mark3_foreground = palette.colors.bg;
mark3_background = palette.colors.info;
# The 16 terminal colors
# black
color0 = nord.polarNight.nord0;
color0 = palette.colors.bg;
# Autosuggestion
color8 = nord.frost.nord10;
color8 = palette.colors.primary;
# red
color1 = nord.aurora.nord11;
color9 = nord.aurora.nord11;
color1 = palette.colors.danger;
color9 = palette.colors.danger;
# green
color2 = nord.aurora.nord14;
color10 = nord.aurora.nord14;
color2 = palette.colors.success;
color10 = palette.colors.success;
# yellow
color3 = nord.aurora.nord13;
color11 = nord.aurora.nord13;
color3 = palette.colors.warning;
color11 = palette.colors.warning;
# blue
color4 = nord.frost.nord10;
color12 = nord.frost.nord10;
color4 = palette.colors.primary;
color12 = palette.colors.primary;
# magenta
color5 = nord.aurora.nord15;
color13 = nord.aurora.nord15;
color5 = palette.colors.accent;
color13 = palette.colors.accent;
# cyan
color6 = nord.frost.nord8;
color14 = nord.frost.nord8;
color6 = palette.colors.info;
color14 = palette.colors.info;
# white
color7 = nord.snowStorm.nord5;
color15 = nord.snowStorm.nord4;
color7 = palette.colors.textMuted;
color15 = palette.colors.text;
};
};
};

View File

@@ -22,8 +22,18 @@ in
};
theme = mkOption {
type = types.attrs;
default = import (lib.snowfall.fs.get-file "modules/home/desktop/theme/nord.nix");
type = types.submodule {
options = {
file = mkOption {
type = types.path;
# Fallback default; global theme module sets this via mkDefault
default = lib.snowfall.fs.get-file "modules/home/desktop/theme/palettes/nord.nix";
description = "Nix file exporting a palette attrset.";
};
};
};
default = { };
description = "Kitty theme palette configuration.";
};
};
}

View File

@@ -2,7 +2,7 @@
with lib;
let
cfg = config.mjallen.programs.mako;
nord = import (lib.snowfall.fs.get-file "modules/home/desktop/theme/nord.nix");
palette = import cfg.theme.file;
in
{
imports = [ ./options.nix ];
@@ -22,10 +22,10 @@ in
max-icon-size = 64;
default-timeout = 5000;
background-color = nord.polarNight.nord0;
text-color = nord.snowStorm.nord6;
border-color = nord.frost.nord10;
progress-color = "over ${nord.frost.nord8}";
background-color = palette.colors.bg;
text-color = palette.colors.text;
border-color = palette.colors.primary;
progress-color = "over ${palette.colors.info}";
};
};
};

View File

@@ -8,5 +8,19 @@ with lib;
type = types.str;
default = "DejaVu Sans";
};
theme = mkOption {
type = types.submodule {
options = {
file = mkOption {
type = types.path;
default = lib.snowfall.fs.get-file "modules/home/desktop/theme/palettes/nord.nix";
description = "Nix file exporting a palette attrset.";
};
};
};
default = { };
description = "Mako theme palette configuration.";
};
};
}

View File

@@ -7,7 +7,7 @@
with lib;
let
cfg = config.mjallen.programs.nwg-dock;
nord = import (lib.snowfall.fs.get-file "modules/home/desktop/theme/nord.nix");
palette = import cfg.theme.file;
in
{
imports = [ ./options.nix ];
@@ -18,11 +18,11 @@ in
home.file = {
".config/nwg-dock-hyprland/drawer.css".text = ''
window {
background: ${nord.polarNight.nord0};
background: ${palette.colors.bg};
border-radius: 10px;
border-style: none;
border-width: 1px;
border-color: ${nord.aurora.nord15}b0
border-color: ${palette.colors.accent}b0
}
#box {
@@ -33,14 +33,14 @@ in
active {
/* This is to underline the button representing the currently active window */
border-bottom: solid 1px;
border-color: ${nord.aurora.nord14}1a
border-color: ${palette.colors.success}1a
}
button, image {
background: none;
border-style: none;
box-shadow: none;
color: ${nord.frost.nord10}
color: ${palette.colors.primary}
}
button {
@@ -52,7 +52,7 @@ in
}
button:hover {
background-color: ${nord.polarNight.nord0}1a;
background-color: ${palette.colors.bg}1a;
border-radius: 2px;
}

View File

@@ -3,5 +3,19 @@ with lib;
{
options.mjallen.programs.nwg-dock = {
enable = mkEnableOption "enable nwg-dock";
theme = mkOption {
type = types.submodule {
options = {
file = mkOption {
type = types.path;
default = lib.snowfall.fs.get-file "modules/home/desktop/theme/palettes/nord.nix";
description = "Nix file exporting a palette attrset.";
};
};
};
default = { };
description = "nwg-dock theme palette configuration.";
};
};
}

View File

@@ -7,7 +7,7 @@
with lib;
let
cfg = config.mjallen.programs.nwg-drawer;
nord = import (lib.snowfall.fs.get-file "modules/home/desktop/theme/nord.nix");
palette = import cfg.theme.file;
in
{
imports = [ ./options.nix ];
@@ -18,13 +18,13 @@ in
home.file = {
".config/nwg-drawer/drawer.css".text = ''
window {
background-color: ${nord.polarNight.nord0}bf;
color: ${nord.snowStorm.nord5}00
background-color: ${palette.colors.bg}bf;
color: ${palette.colors.textMuted}00
}
/* search entry */
entry {
background-color: ${nord.polarNight.nord1}0f
background-color: ${palette.colors.bgAlt}0f
}
button, image {
@@ -33,7 +33,7 @@ in
}
button:hover {
background-color: ${nord.frost.nord10}1a
background-color: ${palette.colors.primary}1a
}
/* in case you wanted to give category buttons a different look */
@@ -43,12 +43,12 @@ in
#pinned-box {
padding-bottom: 5px;
border-bottom: 1px dotted ${nord.polarNight.nord3}
border-bottom: 1px dotted ${palette.colors.border}
}
#files-box {
padding: 5px;
border: 1px dotted ${nord.polarNight.nord3};
border: 1px dotted ${palette.colors.border};
border-radius: 15px
}
'';

View File

@@ -3,5 +3,19 @@ with lib;
{
options.mjallen.programs.nwg-drawer = {
enable = mkEnableOption "enable nwg-drawer";
theme = mkOption {
type = types.submodule {
options = {
file = mkOption {
type = types.path;
default = lib.snowfall.fs.get-file "modules/home/desktop/theme/palettes/nord.nix";
description = "Nix file exporting a palette attrset.";
};
};
};
default = { };
description = "nwg-drawer theme palette configuration.";
};
};
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,69 +1,264 @@
{ lib, ... }:
with lib;
let
inherit (types) str int bool listOf attrs path nullOr submodule;
in
{
options.mjallen.programs.waybar = {
enable = mkEnableOption "enable waybar";
enable = mkEnableOption "Waybar status bar";
# Legacy/compat options (kept for backwards compatibility)
layer = mkOption {
type = types.str;
type = str;
default = "top";
description = "Waybar layer (compat). Prefer layout + feature flags.";
};
modules-right = mkOption {
type = with types; listOf str;
type = listOf str;
default = [ ];
description = "DEPRECATED: use layout.right.";
};
networkInterface = mkOption {
type = types.str;
type = str;
default = "wlan0";
description = "DEPRECATED: use network.interface.";
};
extraModules = mkOption {
type = types.attrs;
type = attrs;
default = { };
description = "Extra settings bars at top-level (compat with older module).";
};
extraModulesStyle = mkOption {
type = types.str;
type = str;
default = "";
description = "Extra CSS appended (compat). Prefer extra.style.";
};
windowOffset = mkOption {
type = types.int;
type = int;
default = 4;
description = "Right margin offset for the hyprland/window module (in rem).";
};
# Waybar modules config
# modules = mkOption {
# type = types.submodule {
# options = {
# # Modules
# window = mkOption {
# type = types.submodule {
# options = {
# # Waybar Module CSS
# margin-right = mkOption {
# type = types.str;
# default = "4";
# };
# };
# };
# };
# temperature = mkOption {
# type = types.submodule {
# options = {
# # Waybar Module CSS
# margin-right = mkOption {
# type = types.str;
# default = "4";
# };
# };
# };
# };
# };
# };
# default = { };
# };
# Theme
theme = mkOption {
type = submodule {
options = {
file = mkOption {
type = path;
default = lib.snowfall.fs.get-file "modules/home/desktop/theme/palettes/nord.nix";
description = "Nix file exporting a palette attrset (e.g., Nord).";
};
};
};
default = { };
description = "Theme configuration.";
};
# Layout
layout = mkOption {
type = submodule {
options = {
left = mkOption {
type = listOf str;
default = [ "hyprland/workspaces" ];
description = "Modules shown on the left.";
};
center = mkOption {
type = listOf str;
default = [ "hyprland/window" ];
description = "Modules shown in the center.";
};
right = mkOption {
type = listOf str;
default = [
"tray"
"custom/left-end"
"temperature"
"temperature#gpu"
"keyboard-state#capslock"
"keyboard-state#numlock"
"wireplumber#sink"
"bluetooth"
"network"
"idle_inhibitor"
"custom/right-end"
"custom/left-end"
"clock"
"battery"
"custom/weather"
"custom/right-end"
];
description = "Modules shown on the right.";
};
};
};
default = { };
description = "Waybar module layout.";
};
# Network
network = mkOption {
type = submodule {
options = {
interface = mkOption {
type = str;
default = "wlan0";
description = "Primary network interface name.";
};
};
};
default = { };
description = "Network configuration.";
};
# Temperatures
temperature = mkOption {
type = submodule {
options = {
cpu = mkOption {
type = submodule {
options = {
hwmonPath = mkOption {
type = str;
default = "/sys/class/hwmon/hwmon4/temp1_input";
description = "CPU temperature hwmon path.";
};
};
};
default = { };
};
gpu = mkOption {
type = submodule {
options = {
enable = mkOption {
type = bool;
default = true;
description = "Enable GPU temperature module.";
};
hwmonPath = mkOption {
type = str;
default = "/sys/class/hwmon/hwmon0/temp1_input";
description = "GPU temperature hwmon path.";
};
};
};
default = { };
};
};
};
default = { };
description = "Temperature module configuration.";
};
# Features
features = mkOption {
type = submodule {
options = {
tray = mkOption {
type = submodule { options = { enable = mkOption { type = bool; default = true; }; }; };
default = { };
};
bluetooth = mkOption {
type = submodule { options = { enable = mkOption { type = bool; default = true; }; }; };
default = { };
};
idleInhibitor = mkOption {
type = submodule { options = { enable = mkOption { type = bool; default = true; }; }; };
default = { };
};
keyboardIndicators = mkOption {
type = submodule { options = { enable = mkOption { type = bool; default = true; }; }; };
default = { };
};
audio = mkOption {
type = submodule {
options = {
sink = mkOption {
type = submodule { options = { enable = mkOption { type = bool; default = true; }; }; };
default = { };
};
source = mkOption {
type = submodule { options = { enable = mkOption { type = bool; default = false; }; }; };
default = { };
};
};
};
default = { };
};
weather = mkOption {
type = submodule { options = { enable = mkOption { type = bool; default = true; }; }; };
default = { };
};
hass = mkOption {
type = submodule { options = { enable = mkOption { type = bool; default = false; }; }; };
default = { };
};
clock = mkOption {
type = submodule { options = { enable = mkOption { type = bool; default = true; }; }; };
default = { };
};
battery = mkOption {
type = submodule { options = { enable = mkOption { type = bool; default = true; }; }; };
default = { };
};
};
};
default = { };
description = "Toggle optional Waybar features.";
};
# Styling
style = mkOption {
type = submodule {
options = {
file = mkOption {
type = nullOr path;
default = null;
description = "Optional external CSS file to use instead of the inline style.";
};
fragmentsDir = mkOption {
type = nullOr path;
default = null;
description = "Optional directory of CSS fragments to append.";
};
};
};
default = { };
description = "Styling configuration.";
};
# Extra overrides
extra = mkOption {
type = submodule {
options = {
settings = mkOption {
type = attrs;
default = { };
description = "Extra settings merged into settings.mainBar.";
};
style = mkOption {
type = str;
default = "";
description = "Extra CSS appended to the computed style.";
};
};
};
default = { };
description = "Extra settings/style hooks.";
};
};
}

View File

@@ -2,7 +2,7 @@
with lib;
let
cfg = config.mjallen.programs.wlogout;
nord = import (lib.snowfall.fs.get-file "modules/home/desktop/theme/nord.nix");
palette = import cfg.theme.file;
in
{
imports = [ ./options.nix ];
@@ -53,13 +53,13 @@ in
}
window {
background-color: ${nord.polarNight.nord0}f0
background-color: ${palette.colors.bg}f0
}
button {
margin: 8px;
color: ${nord.frost.nord7};
background-color: ${nord.polarNight.nord1};
color: ${palette.colors.info};
background-color: ${palette.colors.bgAlt};
border-style: solid;
border-width: 2px;
background-repeat: no-repeat;
@@ -70,8 +70,8 @@ in
button:active,
button:focus,
button:hover {
color: ${nord.frost.nord8};
background-color: ${nord.polarNight.nord2};
color: ${palette.colors.info};
background-color: ${palette.colors.surfaceAlt};
outline-style: none;
}

View File

@@ -8,5 +8,19 @@ with lib;
type = types.str;
default = "Deja Vu Sans";
};
theme = mkOption {
type = types.submodule {
options = {
file = mkOption {
type = types.path;
default = lib.snowfall.fs.get-file "modules/home/desktop/theme/palettes/nord.nix";
description = "Nix file exporting a palette attrset.";
};
};
};
default = { };
description = "wlogout theme palette configuration.";
};
};
}

View File

@@ -2,7 +2,7 @@
with lib;
let
cfg = config.mjallen.programs.wofi;
nord = import (lib.snowfall.fs.get-file "modules/home/desktop/theme/nord.nix");
palette = import cfg.theme.file;
in
{
imports = [ ./options.nix ];
@@ -20,9 +20,9 @@ in
window {
margin: 0px;
padding: 10px;
border: 0.16em solid ${nord.aurora.nord15};
border: 0.16em solid ${palette.colors.accent};
border-radius: 0.1em;
background-color: ${nord.polarNight.nord0};
background-color: ${palette.colors.bg};
}
/* Inner Box */
@@ -30,7 +30,7 @@ in
margin: 5px;
padding: 10px;
border: none;
background-color: ${nord.polarNight.nord0};
background-color: ${palette.colors.bg};
}
/* Outer Box */
@@ -38,7 +38,7 @@ in
margin: 5px;
padding: 10px;
border: none;
background-color: ${nord.polarNight.nord0};
background-color: ${palette.colors.bg};
}
/* Scroll */
@@ -46,7 +46,7 @@ in
margin: 0px;
padding: 10px;
border: none;
background-color: ${nord.polarNight.nord0};
background-color: ${palette.colors.bg};
}
/* Input */
@@ -55,46 +55,46 @@ in
padding: 10px;
border: none;
border-radius: 0.1em;
color: ${nord.snowStorm.nord6};
background-color: ${nord.polarNight.nord0};
color: ${palette.colors.text};
background-color: ${palette.colors.bg};
}
#input image {
border: none;
color: ${nord.aurora.nord11};
color: ${palette.colors.danger};
}
#input * {
outline: 4px solid ${nord.aurora.nord11}!important;
outline: 4px solid ${palette.colors.danger}!important;
}
/* Text */
#text {
margin: 5px;
border: none;
color: ${nord.snowStorm.nord6};
color: ${palette.colors.text};
}
#entry {
background-color: ${nord.polarNight.nord0};
background-color: ${palette.colors.bg};
}
#entry arrow {
border: none;
color: ${nord.aurora.nord15};
color: ${palette.colors.accent};
}
/* Selected Entry */
#entry:selected {
border: 0.11em solid ${nord.aurora.nord15};
border: 0.11em solid ${palette.colors.accent};
}
#entry:selected #text {
color: ${nord.frost.nord7};
color: ${palette.colors.info};
}
#entry:drop(active) {
background-color: ${nord.aurora.nord15}!important;
background-color: ${palette.colors.accent}!important;
}
'';
};

View File

@@ -8,5 +8,19 @@ with lib;
type = types.str;
default = "Deja Vu Sans";
};
theme = mkOption {
type = types.submodule {
options = {
file = mkOption {
type = types.path;
default = lib.snowfall.fs.get-file "modules/home/desktop/theme/palettes/nord.nix";
description = "Nix file exporting a palette attrset.";
};
};
};
default = { };
description = "Wofi theme palette configuration.";
};
};
}