stylix: add accent color

I spent an hour just to add one f*ing option
This commit is contained in:
2026-06-08 03:24:54 +03:00
parent c8b5900985
commit 98434b79cf
9 changed files with 56 additions and 14 deletions
+1
View File
@@ -9,6 +9,7 @@
./user/neofetch.nix ./user/neofetch.nix
./user/qt.nix ./user/qt.nix
./user/quickshell.nix ./user/quickshell.nix
./user/stylix.nix
./user/sops.nix ./user/sops.nix
./user/ssh.nix ./user/ssh.nix
./user/walker.nix ./user/walker.nix
+2 -6
View File
@@ -1,15 +1,11 @@
{ stdenv, lib, config, colors, username, ... }: { stdenv, colors, accent ? colors.base0B, ... }:
stdenv.mkDerivation { stdenv.mkDerivation {
name = "AGS theme"; name = "AGS theme";
src = ./ags; src = ./ags;
dontUnpack = true; dontUnpack = true;
patchPhase = let patchPhase = ''
accent = if username == "chest"
then colors.base0E
else colors.base0B;
in ''
echo \$bg: \#${colors.base00}\; > colors.scss echo \$bg: \#${colors.base00}\; > colors.scss
echo \$surface0: \#${colors.base02}\; >> colors.scss echo \$surface0: \#${colors.base02}\; >> colors.scss
echo \$fg: \#${colors.base05}\; >> colors.scss echo \$fg: \#${colors.base05}\; >> colors.scss
+40
View File
@@ -0,0 +1,40 @@
{ config, lib, ... }: let
inherit (lib) mkOption types;
base16Names = [
"base00"
"base01"
"base02"
"base03"
"base04"
"base05"
"base06"
"base07"
"base08"
"base09"
"base0A"
"base0B"
"base0C"
"base0D"
"base0E"
"base0F"
];
in {
options.stylix.accent = mkOption {
type = types.enum base16Names;
default = "base0B";
description = ''
Base16 colour used as the user accent.
Use it as:
config.lib.stylix.colors.${config.stylix.accent}
config.lib.stylix.colors.withHashtag.${config.stylix.accent}
This module deliberately does not extend config.lib.stylix.colors: Stylix
exports that value as a generated base16 attrset/functor, and replacing or
partially extending it can break Stylix targets which expect metadata such
as `scheme` to be present.
'';
};
}
+2 -1
View File
@@ -1,13 +1,14 @@
{ pkgs, lib, config, inputs, ... }: { { pkgs, lib, config, inputs, ... }: {
wayland.windowManager.hyprland = let wayland.windowManager.hyprland = let
colors = config.lib.stylix.colors; colors = config.lib.stylix.colors;
accent = colors.${config.stylix.accent};
in { in {
settings = { settings = {
general = { general = {
gaps_in = 5; gaps_in = 5;
gaps_out = 5; gaps_out = 5;
border_size = 2; border_size = 2;
"col.active_border" = "rgba(${colors.base0E}ee) rgba(${colors.base0C}ee) 45deg"; "col.active_border" = "rgba(${accent}ee) rgba(${colors.base0C}ee) 45deg";
"col.inactive_border" = "rgba(${colors.base05}aa)"; "col.inactive_border" = "rgba(${colors.base05}aa)";
layout = "dwindle"; layout = "dwindle";
+1
View File
@@ -89,6 +89,7 @@ in {
}; };
base16Scheme = "${pkgs.base16-schemes}/share/themes/eris.yaml"; base16Scheme = "${pkgs.base16-schemes}/share/themes/eris.yaml";
accent = "base0E";
polarity = "dark"; polarity = "dark";
image = pkgs.fetchurl { image = pkgs.fetchurl {
+1 -1
View File
@@ -175,7 +175,7 @@
style = let style = let
colors = config.lib.stylix.colors.withHashtag; colors = config.lib.stylix.colors.withHashtag;
accent = colors.base0E; accent = colors.${config.stylix.accent};
scssFile = pkgs.writeText "waybar.scss" /*scss*/ '' scssFile = pkgs.writeText "waybar.scss" /*scss*/ ''
window#waybar { window#waybar {
background: transparent; background: transparent;
+2 -1
View File
@@ -1,6 +1,7 @@
{ pkgs, lib, config, osConfig, inputs, ... }: { { pkgs, lib, config, osConfig, inputs, ... }: {
wayland.windowManager.hyprland = let wayland.windowManager.hyprland = let
colors = config.lib.stylix.colors; colors = config.lib.stylix.colors;
accent = colors.${config.stylix.accent};
wallpaper_changer = pkgs.writers.writePython3Bin "wallpaper_changer" { wallpaper_changer = pkgs.writers.writePython3Bin "wallpaper_changer" {
libraries = [ pkgs.python3Packages.requests ]; libraries = [ pkgs.python3Packages.requests ];
@@ -57,7 +58,7 @@
gaps_in = 2; gaps_in = 2;
gaps_out = 10; gaps_out = 10;
border_size = 3; border_size = 3;
"col.active_border" = lib.mkForce "rgba(${colors.base0C}aa) rgba(${colors.base0B}aa) 45deg"; "col.active_border" = lib.mkForce "rgba(${colors.base0C}aa) rgba(${accent}aa) 45deg";
layout = "dwindle"; layout = "dwindle";
}; };
+1
View File
@@ -105,6 +105,7 @@ in {
}; };
base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-mocha.yaml"; base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-mocha.yaml";
accent = "base0B";
polarity = "dark"; polarity = "dark";
image = pkgs.fetchurl { image = pkgs.fetchurl {
+6 -5
View File
@@ -155,6 +155,7 @@
style = let style = let
colors = config.lib.stylix.colors.withHashtag; colors = config.lib.stylix.colors.withHashtag;
accent = colors.${config.stylix.accent};
radius = "6px"; radius = "6px";
scssFile = pkgs.writeText "waybar.scss" /*scss*/ '' scssFile = pkgs.writeText "waybar.scss" /*scss*/ ''
window#waybar { window#waybar {
@@ -199,13 +200,13 @@
&:hover { background: ${colors.base01}; } &:hover { background: ${colors.base01}; }
&.active { &.active {
background: ${colors.base0B}; background: ${accent};
color: ${colors.base00}; color: ${colors.base00};
&:hover { &:hover {
border-color: ${colors.base0B}; border-color: ${accent};
background: ${colors.base01}; background: ${colors.base01};
color: ${colors.base0B}; color: ${accent};
} }
} }
} }
@@ -259,7 +260,7 @@
#battery { #battery {
&.plugged { color: ${colors.base0D}; } &.plugged { color: ${colors.base0D}; }
&.charging { color: ${colors.base0B}; } &.charging { color: ${accent}; }
&:not(.charging) { &:not(.charging) {
&.warning { &.warning {
color: ${colors.base00}; color: ${colors.base00};
@@ -277,7 +278,7 @@
} }
&.full { &.full {
color: ${colors.base00}; color: ${colors.base00};
background: ${colors.base0B}; background: ${accent};
} }
} }