From 6dc1213cb32ccc5977be848a5ee8d278a136b9e2 Mon Sep 17 00:00:00 2001 From: Hektor Misplon Date: Mon, 16 Feb 2026 20:07:52 +0100 Subject: [PATCH] feat: set up 'stylix' --- flake.lock | 298 +++++++++++++++++++++++++++++++- flake.nix | 4 + home/hosts/work/default.nix | 3 +- home/modules/fuzzel/default.nix | 16 +- home/modules/mako/default.nix | 6 + home/modules/stylix.nix | 40 +++++ modules/common/default.nix | 1 + modules/stylix.nix | 43 +++++ stylix/zenwritten-dark.yaml | 18 ++ 9 files changed, 414 insertions(+), 15 deletions(-) create mode 100644 home/modules/stylix.nix create mode 100644 modules/stylix.nix create mode 100644 stylix/zenwritten-dark.yaml diff --git a/flake.lock b/flake.lock index 86d7653..223e870 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,73 @@ { "nodes": { + "base16": { + "inputs": { + "fromYaml": "fromYaml" + }, + "locked": { + "lastModified": 1755819240, + "narHash": "sha256-qcMhnL7aGAuFuutH4rq9fvAhCpJWVHLcHVZLtPctPlo=", + "owner": "SenchoPens", + "repo": "base16.nix", + "rev": "75ed5e5e3fce37df22e49125181fa37899c3ccd6", + "type": "github" + }, + "original": { + "owner": "SenchoPens", + "repo": "base16.nix", + "type": "github" + } + }, + "base16-fish": { + "flake": false, + "locked": { + "lastModified": 1765809053, + "narHash": "sha256-XCUQLoLfBJ8saWms2HCIj4NEN+xNsWBlU1NrEPcQG4s=", + "owner": "tomyun", + "repo": "base16-fish", + "rev": "86cbea4dca62e08fb7fd83a70e96472f92574782", + "type": "github" + }, + "original": { + "owner": "tomyun", + "repo": "base16-fish", + "rev": "86cbea4dca62e08fb7fd83a70e96472f92574782", + "type": "github" + } + }, + "base16-helix": { + "flake": false, + "locked": { + "lastModified": 1760703920, + "narHash": "sha256-m82fGUYns4uHd+ZTdoLX2vlHikzwzdu2s2rYM2bNwzw=", + "owner": "tinted-theming", + "repo": "base16-helix", + "rev": "d646af9b7d14bff08824538164af99d0c521b185", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "base16-helix", + "type": "github" + } + }, + "base16-vim": { + "flake": false, + "locked": { + "lastModified": 1732806396, + "narHash": "sha256-e0bpPySdJf0F68Ndanwm+KWHgQiZ0s7liLhvJSWDNsA=", + "owner": "tinted-theming", + "repo": "base16-vim", + "rev": "577fe8125d74ff456cf942c733a85d769afe58b7", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "base16-vim", + "rev": "577fe8125d74ff456cf942c733a85d769afe58b7", + "type": "github" + } + }, "colmena": { "inputs": { "flake-compat": "flake-compat", @@ -67,6 +135,22 @@ "type": "gitlab" } }, + "firefox-gnome-theme": { + "flake": false, + "locked": { + "lastModified": 1764873433, + "narHash": "sha256-1XPewtGMi+9wN9Ispoluxunw/RwozuTRVuuQOmxzt+A=", + "owner": "rafaelmardojai", + "repo": "firefox-gnome-theme", + "rev": "f7ffd917ac0d253dbd6a3bf3da06888f57c69f92", + "type": "github" + }, + "original": { + "owner": "rafaelmardojai", + "repo": "firefox-gnome-theme", + "type": "github" + } + }, "flake-compat": { "flake": false, "locked": { @@ -121,6 +205,27 @@ "type": "github" } }, + "flake-parts_2": { + "inputs": { + "nixpkgs-lib": [ + "stylix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1767609335, + "narHash": "sha256-feveD98mQpptwrAEggBQKJTYbvwwglSbOv53uCfH9PY=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "250481aafeb741edfe23d29195671c19b36b6dca", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, "flake-utils": { "locked": { "lastModified": 1659877975, @@ -154,6 +259,22 @@ "type": "github" } }, + "fromYaml": { + "flake": false, + "locked": { + "lastModified": 1731966426, + "narHash": "sha256-lq95WydhbUTWig/JpqiB7oViTcHFP8Lv41IGtayokA8=", + "owner": "SenchoPens", + "repo": "fromYaml", + "rev": "106af9e2f715e2d828df706c386a685698f3223b", + "type": "github" + }, + "original": { + "owner": "SenchoPens", + "repo": "fromYaml", + "type": "github" + } + }, "git-hooks": { "inputs": { "flake-compat": "flake-compat_2", @@ -197,6 +318,25 @@ "type": "github" } }, + "gnome-shell": { + "flake": false, + "locked": { + "host": "gitlab.gnome.org", + "lastModified": 1767737596, + "narHash": "sha256-eFujfIUQDgWnSJBablOuG+32hCai192yRdrNHTv0a+s=", + "owner": "GNOME", + "repo": "gnome-shell", + "rev": "ef02db02bf0ff342734d525b5767814770d85b49", + "type": "gitlab" + }, + "original": { + "host": "gitlab.gnome.org", + "owner": "GNOME", + "ref": "gnome-49", + "repo": "gnome-shell", + "type": "gitlab" + } + }, "home-manager": { "inputs": { "nixpkgs": [ @@ -496,6 +636,31 @@ "type": "gitlab" } }, + "nur": { + "inputs": { + "flake-parts": [ + "stylix", + "flake-parts" + ], + "nixpkgs": [ + "stylix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1767810917, + "narHash": "sha256-ZKqhk772+v/bujjhla9VABwcvz+hB2IaRyeLT6CFnT0=", + "owner": "nix-community", + "repo": "NUR", + "rev": "dead29c804adc928d3a69dfe7f9f12d0eec1f1a4", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "NUR", + "type": "github" + } + }, "nvim": { "inputs": { "mcp-hub": "mcp-hub", @@ -646,7 +811,8 @@ "nixos-hardware": "nixos-hardware", "nixpkgs": "nixpkgs", "nvim": "nvim", - "sops-nix": "sops-nix" + "sops-nix": "sops-nix", + "stylix": "stylix" } }, "scss-reset": { @@ -701,6 +867,40 @@ "type": "github" } }, + "stylix": { + "inputs": { + "base16": "base16", + "base16-fish": "base16-fish", + "base16-helix": "base16-helix", + "base16-vim": "base16-vim", + "firefox-gnome-theme": "firefox-gnome-theme", + "flake-parts": "flake-parts_2", + "gnome-shell": "gnome-shell", + "nixpkgs": [ + "nixpkgs" + ], + "nur": "nur", + "systems": "systems_2", + "tinted-foot": "tinted-foot", + "tinted-kitty": "tinted-kitty", + "tinted-schemes": "tinted-schemes", + "tinted-tmux": "tinted-tmux", + "tinted-zed": "tinted-zed" + }, + "locked": { + "lastModified": 1770914701, + "narHash": "sha256-QHFYyngohNhih4w+3IqQty5DV+p1txsx1kkk6XJWar8=", + "owner": "danth", + "repo": "stylix", + "rev": "db03fed72e5ca02be34e1d24789345a943329738", + "type": "github" + }, + "original": { + "owner": "danth", + "repo": "stylix", + "type": "github" + } + }, "systems": { "locked": { "lastModified": 1681028828, @@ -715,6 +915,102 @@ "repo": "default", "type": "github" } + }, + "systems_2": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "tinted-foot": { + "flake": false, + "locked": { + "lastModified": 1726913040, + "narHash": "sha256-+eDZPkw7efMNUf3/Pv0EmsidqdwNJ1TaOum6k7lngDQ=", + "owner": "tinted-theming", + "repo": "tinted-foot", + "rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "tinted-foot", + "rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4", + "type": "github" + } + }, + "tinted-kitty": { + "flake": false, + "locked": { + "lastModified": 1735730497, + "narHash": "sha256-4KtB+FiUzIeK/4aHCKce3V9HwRvYaxX+F1edUrfgzb8=", + "owner": "tinted-theming", + "repo": "tinted-kitty", + "rev": "de6f888497f2c6b2279361bfc790f164bfd0f3fa", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "tinted-kitty", + "type": "github" + } + }, + "tinted-schemes": { + "flake": false, + "locked": { + "lastModified": 1767710407, + "narHash": "sha256-+W1EB79Jl0/gm4JqmO0Nuc5C7hRdp4vfsV/VdzI+des=", + "owner": "tinted-theming", + "repo": "schemes", + "rev": "2800e2b8ac90f678d7e4acebe4fa253f602e05b2", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "schemes", + "type": "github" + } + }, + "tinted-tmux": { + "flake": false, + "locked": { + "lastModified": 1767489635, + "narHash": "sha256-e6nnFnWXKBCJjCv4QG4bbcouJ6y3yeT70V9MofL32lU=", + "owner": "tinted-theming", + "repo": "tinted-tmux", + "rev": "3c32729ccae99be44fe8a125d20be06f8d7d8184", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "tinted-tmux", + "type": "github" + } + }, + "tinted-zed": { + "flake": false, + "locked": { + "lastModified": 1767488740, + "narHash": "sha256-wVOj0qyil8m+ouSsVZcNjl5ZR+1GdOOAooAatQXHbuU=", + "owner": "tinted-theming", + "repo": "base16-zed", + "rev": "11abb0b282ad3786a2aae088d3a01c60916f2e40", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "base16-zed", + "type": "github" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index 17f03b5..5b2b51c 100644 --- a/flake.nix +++ b/flake.nix @@ -3,6 +3,10 @@ nixpkgs = { url = "github:nixos/nixpkgs/nixos-unstable"; }; + stylix = { + url = "github:danth/stylix"; + inputs.nixpkgs.follows = "nixpkgs"; + }; nixos-hardware = { url = "github:NixOS/nixos-hardware/master"; }; diff --git a/home/hosts/work/default.nix b/home/hosts/work/default.nix index 6c7254e..efb78b3 100644 --- a/home/hosts/work/default.nix +++ b/home/hosts/work/default.nix @@ -11,6 +11,7 @@ in { imports = [ inputs.sops-nix.homeManagerModules.sops + ../../modules/stylix.nix ../../modules/lib.nix ../../modules/ai-tools.nix ../../modules/cloud @@ -20,7 +21,7 @@ in ../../modules/docker ../../modules/git ../../modules/k8s - ../../modules/k9s.nix + ../../modules/k8s/k9s.nix ../../modules/keepassxc.nix ../../modules/kitty.nix ../../modules/nvim.nix diff --git a/home/modules/fuzzel/default.nix b/home/modules/fuzzel/default.nix index 0d3d8f6..1eece2a 100644 --- a/home/modules/fuzzel/default.nix +++ b/home/modules/fuzzel/default.nix @@ -1,24 +1,14 @@ +{ lib, ... }: + { programs.fuzzel = { enable = true; settings = { main = { - font = "Iosevka Term SS08"; + font = lib.mkForce "Iosevka Term SS08"; horizontal-pad = 0; vertical-pad = 0; }; - colors = { - background = "ccccccff"; - text = "111111ff"; - prompt = "ccccccff"; - placeholder = "aaaaaaff"; - input = "111111ff"; - selection = "eeeeeeff"; - selection-text = "111111ff"; - selection-match = "333333ff"; - counter = "111111ff"; - border = "111111ff"; - }; border = { width = 2; radius = 0; diff --git a/home/modules/mako/default.nix b/home/modules/mako/default.nix index 880838e..6d33340 100644 --- a/home/modules/mako/default.nix +++ b/home/modules/mako/default.nix @@ -1,5 +1,11 @@ +{ lib, ... }: + { services.mako = { enable = true; + settings = { + border-color = lib.mkForce "#bbbbbb"; + font = lib.mkForce "Iosevka Term SS08 10"; + }; }; } diff --git a/home/modules/stylix.nix b/home/modules/stylix.nix new file mode 100644 index 0000000..94ce3ff --- /dev/null +++ b/home/modules/stylix.nix @@ -0,0 +1,40 @@ +{ + inputs, + pkgs, + ... +}: + +{ + imports = [ inputs.stylix.homeModules.stylix ]; + + stylix = { + enable = true; + polarity = "dark"; + base16Scheme = ../../stylix/zenwritten-dark.yaml; + image = pkgs.runCommand "solid-bg.png" { nativeBuildInputs = [ pkgs.imagemagick ]; } '' + magick -size 1x1 xc:#191919 $out + ''; + fonts = { + monospace = { + package = pkgs.iosevka-bin.override { variant = "SS08"; }; + name = "Iosevka Term SS08"; + }; + serif = { + package = pkgs.dejavu_fonts; + name = "DejaVu Serif"; + }; + sansSerif = { + package = pkgs.dejavu_fonts; + name = "DejaVu Sans"; + }; + }; + targets = { + firefox.profileNames = [ "default" ]; + gnome.enable = false; + gtk.enable = false; + kitty.enable = false; + nixvim.enable = false; + waybar.enable = false; + }; + }; +} diff --git a/modules/common/default.nix b/modules/common/default.nix index b2a34da..c877fa4 100644 --- a/modules/common/default.nix +++ b/modules/common/default.nix @@ -8,6 +8,7 @@ { imports = [ inputs.home-manager.nixosModules.default + ../stylix.nix ]; system.stateVersion = "25.05"; diff --git a/modules/stylix.nix b/modules/stylix.nix new file mode 100644 index 0000000..37705ea --- /dev/null +++ b/modules/stylix.nix @@ -0,0 +1,43 @@ +{ + inputs, + pkgs, + ... +}: + +{ + imports = [ inputs.stylix.nixosModules.stylix ]; + + stylix = { + enable = true; + polarity = "dark"; + base16Scheme = ../stylix/zenwritten-dark.yaml; + image = pkgs.runCommand "solid-bg.png" { nativeBuildInputs = [ pkgs.imagemagick ]; } '' + magick -size 1x1 xc:#191919 $out + ''; + fonts = { + monospace = { + package = pkgs.iosevka-bin.override { variant = "SS08"; }; + name = "Iosevka Term SS08"; + }; + serif = { + package = pkgs.dejavu_fonts; + name = "DejaVu Serif"; + }; + sansSerif = { + package = pkgs.dejavu_fonts; + name = "DejaVu Sans"; + }; + }; + autoEnable = true; + }; + + home-manager.sharedModules = [ + { + stylix.targets = { + firefox.profileNames = [ "default" ]; + kitty.enable = false; + # waybar.enable = false; + }; + } + ]; +} diff --git a/stylix/zenwritten-dark.yaml b/stylix/zenwritten-dark.yaml new file mode 100644 index 0000000..8bfe5c9 --- /dev/null +++ b/stylix/zenwritten-dark.yaml @@ -0,0 +1,18 @@ +scheme: "zenwritten-dark" +author: "derived from zenbones.nvim zenwritten_dark" +base00: "191919" # background +base01: "303030" # inactive tab bg +base02: "404040" # selection bg +base03: "8E8E8E" # bright white (comments) +base04: "3D3839" # bright black +base05: "BBBBBB" # foreground +base06: "C9C9C9" # cursor +base07: "EEEEEE" # light foreground +base08: "DE6E7C" # red +base09: "B77E64" # yellow (orange) +base0A: "D68C67" # bright yellow +base0B: "819B69" # green +base0C: "66A5AD" # cyan +base0D: "6099C0" # blue +base0E: "B279A7" # magenta +base0F: "65435E" # active tab bg (brown)