finally caved and removed my redundant color scheme definition in the flake.nix file to use stylix's built-in color scheme definition

This commit is contained in:
pagedmov
2024-11-03 15:55:36 -05:00
parent 62bbbfa71d
commit e4369939f4
11 changed files with 65 additions and 79 deletions

View File

@@ -41,31 +41,6 @@
} @ inputs: let } @ inputs: let
system = "x86_64-linux"; system = "x86_64-linux";
username = "pagedmov"; username = "pagedmov";
wallpaper = "${self}/assets/wallpapers/sleeping-blackmetal.png";
base16scheme = "black-metal-immortal"; # can be easily changed with the chscheme script
# Map colors from yaml to attribute set
# Extracting colors into a set here allows them to be propagated across the entire config, with or without stylix
lib = nixpkgs.lib;
pkgs = import nixpkgs {system = "x86_64-linux";};
scheme_path = "${pkgs.base16-schemes}/share/themes/${base16scheme}.yaml";
scheme_string = builtins.readFile scheme_path;
scheme_list = lib.splitString "\n" "${scheme_string}";
colors = lib.filter (line: builtins.match "^ *base[0-9A-F]{2}: .*" line != null) scheme_list;
scheme =
lib.lists.foldl' (
acc: line: let
splitLine = lib.splitString ": " line;
key = builtins.elemAt splitLine 0;
value = builtins.elemAt splitLine 1;
trimmedKey = lib.trim key;
cleanValue_step1 = lib.splitString " " value;
cleanValue_step2 = builtins.elemAt cleanValue_step1 0;
cleanValue_final = builtins.substring 1 (builtins.stringLength cleanValue_step2 - 2) cleanValue_step2;
in
acc // {"${trimmedKey}" = cleanValue_final;}
) {}
colors;
in { in {
homeManagerModules.default = ./modules/home; homeManagerModules.default = ./modules/home;
@@ -73,7 +48,7 @@
oganesson = nixpkgs.lib.nixosSystem { oganesson = nixpkgs.lib.nixosSystem {
specialArgs = { specialArgs = {
host = "oganesson"; host = "oganesson";
inherit self inputs scheme wallpaper username; inherit self inputs username;
}; };
inherit system; inherit system;
modules = [ modules = [
@@ -88,7 +63,7 @@
mercury = nixpkgs.lib.nixosSystem { mercury = nixpkgs.lib.nixosSystem {
specialArgs = { specialArgs = {
host = "mercury"; host = "mercury";
inherit self inputs scheme wallpaper username; inherit self inputs username;
}; };
modules = [ modules = [
./hosts/laptop/config.nix ./hosts/laptop/config.nix
@@ -102,7 +77,7 @@
xenon = nixpkgs.lib.nixosSystem { xenon = nixpkgs.lib.nixosSystem {
specialArgs = { specialArgs = {
host = "xenon"; host = "xenon";
inherit self inputs scheme username; inherit self inputs username;
}; };
modules = [ modules = [
./hosts/server/config.nix ./hosts/server/config.nix

View File

@@ -4,9 +4,7 @@
self, self,
inputs, inputs,
username, username,
wallpaper,
lib, lib,
scheme ? {},
config, config,
... ...
}: let }: let
@@ -17,7 +15,7 @@ in {
useUserPackages = true; useUserPackages = true;
useGlobalPkgs = true; useGlobalPkgs = true;
backupFileExtension = "backup"; backupFileExtension = "backup";
extraSpecialArgs = {inherit self inputs host wallpaper scheme username nur;}; extraSpecialArgs = {inherit self inputs host username nur;};
users = { users = {
${username} = { ${username} = {
programs.home-manager.enable = true; programs.home-manager.enable = true;

View File

@@ -4,9 +4,7 @@
self, self,
inputs, inputs,
username, username,
wallpaper,
lib, lib,
scheme ? {},
config, config,
... ...
}: let }: let
@@ -17,7 +15,7 @@ in {
useUserPackages = true; useUserPackages = true;
useGlobalPkgs = true; useGlobalPkgs = true;
backupFileExtension = "backup"; backupFileExtension = "backup";
extraSpecialArgs = {inherit self inputs host wallpaper scheme username nur;}; extraSpecialArgs = {inherit self inputs host username nur;};
users = { users = {
${username} = { ${username} = {
programs.home-manager.enable = true; programs.home-manager.enable = true;

View File

@@ -4,7 +4,6 @@
self, self,
inputs, inputs,
lib, lib,
scheme,
username, username,
config, config,
... ...
@@ -17,7 +16,7 @@ in {
useUserPackages = true; useUserPackages = true;
useGlobalPkgs = true; useGlobalPkgs = true;
backupFileExtension = "backup"; backupFileExtension = "backup";
extraSpecialArgs = { inherit self inputs scheme host username nur; }; extraSpecialArgs = { inherit self inputs host username nur; };
users = { users = {
${username} = { ${username} = {
programs.home-manager.enable = true; programs.home-manager.enable = true;

View File

@@ -1,5 +1,6 @@
{lib, config, pkgs, inputs, scheme ? {}, ... }: let {lib, config, pkgs, inputs, ... }: let
spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.system}; spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.system};
scheme = config.lib.stylix.colors;
in { in {
imports = [inputs.spicetify-nix.homeManagerModules.default]; imports = [inputs.spicetify-nix.homeManagerModules.default];
options = { options = {

View File

@@ -1,4 +1,4 @@
{lib, config, pkgs, scheme ? {}, wallpaper, ... }: { {lib, config, pkgs, ... }: {
options = { options = {
stylixHomeConfig.enable = lib.mkEnableOption "enables my stylix Home-Manager options"; stylixHomeConfig.enable = lib.mkEnableOption "enables my stylix Home-Manager options";
}; };

View File

@@ -1,4 +1,4 @@
{pkgs, scheme ? {}, host, lib, config, ...}: {pkgs, host, lib, config, ...}:
let let
desktop = host == "oganesson"; desktop = host == "oganesson";
@@ -22,6 +22,8 @@ let
"eDP-1" = [1 2 3 4]; "eDP-1" = [1 2 3 4];
}; };
}; };
scheme = config.lib.stylix.colors;
bg = { bg = {
darkester = scheme.base00; darkester = scheme.base00;
darkest = scheme.base01; darkest = scheme.base01;
@@ -435,7 +437,7 @@ in {
} }
#custom-power { #custom-power {
color: #${colors.color0}; color: #${colors.color2};
font-size: 18px; font-size: 18px;
} }
@@ -445,7 +447,7 @@ in {
} }
#custom-reboot { #custom-reboot {
color: #${colors.color2}; color: #${colors.color0};
font-size: 18px; font-size: 18px;
} }

View File

@@ -1,10 +1,11 @@
{pkgs, scheme, lib, self, config, ... }: {pkgs, lib, self, config, ... }:
# This folder is for programs that do not have existing configuration modules in NixOS. # This folder is for programs that do not have existing configuration modules in NixOS.
# Basically a to-do list for stuff I need to write my own modules for. # Basically a to-do list for stuff I need to write my own modules for.
let let
# Custom theme that activates in ssh # Custom theme that activates in ssh
ssh_base16 = "atelier-cave"; ssh_base16 = "atelier-cave";
def_scheme = config.lib.stylix.colors;
scheme_path = "${pkgs.base16-schemes}/share/themes/${ssh_base16}.yaml"; scheme_path = "${pkgs.base16-schemes}/share/themes/${ssh_base16}.yaml";
scheme_string = builtins.readFile scheme_path; scheme_string = builtins.readFile scheme_path;
@@ -140,39 +141,39 @@ in
''; '';
".config/kitty/default-theme.conf".text = '' ".config/kitty/default-theme.conf".text = ''
background #${scheme.base00} background #${def_scheme.base00}
foreground #${scheme.base05} foreground #${def_scheme.base05}
selection_background #${scheme.base05} selection_background #${def_scheme.base05}
selection_foreground #${scheme.base00} selection_foreground #${def_scheme.base00}
url_color #${scheme.base04} url_color #${def_scheme.base04}
cursor #${scheme.base05} cursor #${def_scheme.base05}
active_border_color #${scheme.base03} active_border_color #${def_scheme.base03}
inactive_border_color #${scheme.base01} inactive_border_color #${def_scheme.base01}
active_tab_background #${scheme.base00} active_tab_background #${def_scheme.base00}
active_tab_foreground #${scheme.base05} active_tab_foreground #${def_scheme.base05}
inactive_tab_background #${scheme.base01} inactive_tab_background #${def_scheme.base01}
inactive_tab_foreground #${scheme.base04} inactive_tab_foreground #${def_scheme.base04}
tab_bar_background #${scheme.base01} tab_bar_background #${def_scheme.base01}
# normal # normal
color0 #${scheme.base01} color0 #${def_scheme.base01}
color1 #${scheme.base08} color1 #${def_scheme.base08}
color2 #${scheme.base0B} color2 #${def_scheme.base0B}
color3 #${scheme.base0A} color3 #${def_scheme.base0A}
color4 #${scheme.base0D} color4 #${def_scheme.base0D}
color5 #${scheme.base0E} color5 #${def_scheme.base0E}
color6 #${scheme.base0C} color6 #${def_scheme.base0C}
color7 #${scheme.base05} color7 #${def_scheme.base05}
# bright # bright
color8 #${scheme.base03} color8 #${def_scheme.base03}
color9 #${scheme.base09} color9 #${def_scheme.base09}
color10 #${scheme.base01} color10 #${def_scheme.base01}
color11 #${scheme.base02} color11 #${def_scheme.base02}
color12 #${scheme.base04} color12 #${def_scheme.base04}
color13 #${scheme.base06} color13 #${def_scheme.base06}
color14 #${scheme.base0F} color14 #${def_scheme.base0F}
color15 #${scheme.base07} color15 #${def_scheme.base07}
''; '';
".config/kitty/ssh-theme.conf".text = '' ".config/kitty/ssh-theme.conf".text = ''
background #${ssh_scheme.base00} background #${ssh_scheme.base00}

View File

@@ -1,4 +1,4 @@
{lib, config, pkgs, scheme ? {}, ... }: { {lib, config, pkgs, ... }: {
options = { options = {
kittyConfig.enable = lib.mkEnableOption "enables my kitty configuration"; kittyConfig.enable = lib.mkEnableOption "enables my kitty configuration";
}; };

View File

@@ -1,19 +1,27 @@
{ {
pkgs, pkgs,
scheme ? {}, self,
wallpaper,
lib, lib,
config, config,
... ...
}: { }:
let
scheme = "black-metal-venom";
in
{
options = { options = {
stylixConfig.enable = lib.mkEnableOption "enables custom stylix options"; stylixConfig.enable = lib.mkEnableOption "enables custom stylix options";
}; };
config = lib.mkIf config.stylixConfig.enable { config = lib.mkIf config.stylixConfig.enable {
stylix = { stylix = {
enable = true; enable = true;
base16Scheme = scheme; base16Scheme = "${pkgs.base16-schemes}/share/themes/${scheme}.yaml";
image = wallpaper; image = "${self}/assets/wallpapers/sleeping-blackmetal.png";
homeManagerIntegration = {
autoImport = true;
followSystem = true;
};
polarity = "dark"; polarity = "dark";
autoEnable = true; autoEnable = true;
opacity.terminal = 0.5; opacity.terminal = 0.5;

View File

@@ -1,8 +1,12 @@
{ {
scheme ? {},
config, config,
... ...
}: { }:
let
scheme = config.lib.stylix.colors;
in
{
programs.nixvim = { programs.nixvim = {
colorschemes.base16 = { colorschemes.base16 = {
enable = true; enable = true;