From 2c5a115bf9bfb6e22aab056233fc116ee62d2694 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' --- dots/.config/kitty/kitty.conf | 1 - .../.config/kitty/themes/zenwritten_dark.conf | 49 --- .../kitty/themes/zenwritten_light.conf | 49 --- dots/.config/ncspot/config.toml | 21 -- dots/.config/tmux/hooks/tmux.regular.conf | 1 - dots/.config/tmux/hooks/tmux.ssh.conf | 2 +- dots/.config/tmux/themes/zenwritten_dark.tmux | 22 -- .../.config/tmux/themes/zenwritten_light.tmux | 22 -- dots/.config/tmux/tmux.conf | 13 +- flake.lock | 298 +++++++++++++++++- flake.nix | 4 + home/hosts/work/default.nix | 3 +- home/modules/browser/firefox-base.nix | 2 + home/modules/fuzzel/default.nix | 13 - home/modules/kitty.nix | 14 +- home/modules/mako/default.nix | 5 + home/modules/music/default.nix | 6 +- home/modules/stylix.nix | 43 +++ home/modules/tmux.nix | 11 +- home/modules/waybar/config.jsonc | 57 ---- home/modules/waybar/default.nix | 66 +++- home/modules/waybar/style.css | 14 +- hosts/andromache/default.nix | 1 + hosts/astyanax/default.nix | 1 + modules/stylix/default.nix | 37 +++ modules/stylix/zenwritten-dark.yaml | 18 ++ 26 files changed, 494 insertions(+), 279 deletions(-) delete mode 100644 dots/.config/kitty/themes/zenwritten_dark.conf delete mode 100644 dots/.config/kitty/themes/zenwritten_light.conf delete mode 100644 dots/.config/tmux/hooks/tmux.regular.conf delete mode 100644 dots/.config/tmux/themes/zenwritten_dark.tmux delete mode 100644 dots/.config/tmux/themes/zenwritten_light.tmux create mode 100644 home/modules/stylix.nix delete mode 100644 home/modules/waybar/config.jsonc create mode 100644 modules/stylix/default.nix create mode 100644 modules/stylix/zenwritten-dark.yaml diff --git a/dots/.config/kitty/kitty.conf b/dots/.config/kitty/kitty.conf index 17b787a..886183c 100644 --- a/dots/.config/kitty/kitty.conf +++ b/dots/.config/kitty/kitty.conf @@ -163,5 +163,4 @@ map cmd+q #: }}} -include ./themes/zenwritten_dark.conf include ./nvim.conf diff --git a/dots/.config/kitty/themes/zenwritten_dark.conf b/dots/.config/kitty/themes/zenwritten_dark.conf deleted file mode 100644 index 97a7b68..0000000 --- a/dots/.config/kitty/themes/zenwritten_dark.conf +++ /dev/null @@ -1,49 +0,0 @@ -# This file is auto-generated by shipwright.nvim -# vim:ft=kitty -## name: zenwritten_dark -## author: Michael Chris Lopez -## license: MIT -## upstream: https://github.com/mcchrish/zenbones.nvim/raw/main/extras/kitty/zenwritten_dark.conf -## blurb: A zenbones variant with zero hue and saturation. -foreground #BBBBBB -background #191919 -selection_foreground #BBBBBB -selection_background #404040 -# Cursor colors -cursor #C9C9C9 -cursor_text_color #191919 -# URL underline color when hovering with mouse -# kitty window border colors -# OS Window titlebar colors -# Tab bar colors -active_tab_foreground #BBBBBB -active_tab_background #65435E -inactive_tab_foreground #BBBBBB -inactive_tab_background #303030 -# Colors for marks (marked text in the terminal) -# The basic 16 colors -# black -color0 #191919 -color8 #3D3839 -# red -color1 #DE6E7C -color9 #E8838F -# green -color2 #819B69 -color10 #8BAE68 -# yellow -color3 #B77E64 -color11 #D68C67 -# blue -color4 #6099C0 -color12 #61ABDA -# magenta -color5 #B279A7 -color13 #CF86C1 -# cyan -color6 #66A5AD -color14 #65B8C1 -# white -color7 #BBBBBB -color15 #8E8E8E -# You can set the remaining 240 colors as color16 to color255. diff --git a/dots/.config/kitty/themes/zenwritten_light.conf b/dots/.config/kitty/themes/zenwritten_light.conf deleted file mode 100644 index cb10be0..0000000 --- a/dots/.config/kitty/themes/zenwritten_light.conf +++ /dev/null @@ -1,49 +0,0 @@ -# This file is auto-generated by shipwright.nvim -# vim:ft=kitty -## name: zenwritten_light -## author: Michael Chris Lopez -## license: MIT -## upstream: https://github.com/mcchrish/zenbones.nvim/raw/main/extras/kitty/zenwritten_light.conf -## blurb: A zenbones variant with zero hue and saturation. -foreground #353535 -background #EEEEEE -selection_foreground #353535 -selection_background #D7D7D7 -# Cursor colors -cursor #353535 -cursor_text_color #EEEEEE -# URL underline color when hovering with mouse -# kitty window border colors -# OS Window titlebar colors -# Tab bar colors -active_tab_foreground #353535 -active_tab_background #DEB9D6 -inactive_tab_foreground #353535 -inactive_tab_background #CFCFCF -# Colors for marks (marked text in the terminal) -# The basic 16 colors -# black -color0 #EEEEEE -color8 #C6C3C3 -# red -color1 #A8334C -color9 #94253E -# green -color2 #4F6C31 -color10 #3F5A22 -# yellow -color3 #944927 -color11 #803D1C -# blue -color4 #286486 -color12 #1D5573 -# magenta -color5 #88507D -color13 #7B3B70 -# cyan -color6 #3B8992 -color14 #2B747C -# white -color7 #353535 -color15 #5C5C5C -# You can set the remaining 240 colors as color16 to color255. diff --git a/dots/.config/ncspot/config.toml b/dots/.config/ncspot/config.toml index 975782d..cd154b4 100644 --- a/dots/.config/ncspot/config.toml +++ b/dots/.config/ncspot/config.toml @@ -41,26 +41,5 @@ flip_status_indicators = true "Y" = "share selected" "U" = "update" -[theme] -primary="#aaaaaa" -secondary="#555555" -background="1a1a1a" -title="#cccccc" -title_secondary="#aaaaaa" -playing="#ffffff" -playing_bg="1a1a1a" -playing_selected="#ffffff" -highlight="#cccccc" -highlight_bg="#333333" -error="#ffffff" -error_bg="#333333" -statusbar="#cccccc" -statusbar_bg="#1a1a1a" -statusbar_progress="#cccccc" -statusbar_progress_bg="#1a1a1a" -cmdline="#cccccc" -cmdline_bg="#1a1a1a" -search_match="#ffffff" - backend="pipe" notify="false" diff --git a/dots/.config/tmux/hooks/tmux.regular.conf b/dots/.config/tmux/hooks/tmux.regular.conf deleted file mode 100644 index aab40e6..0000000 --- a/dots/.config/tmux/hooks/tmux.regular.conf +++ /dev/null @@ -1 +0,0 @@ -set -g status-style bg=default diff --git a/dots/.config/tmux/hooks/tmux.ssh.conf b/dots/.config/tmux/hooks/tmux.ssh.conf index 78df0bc..d1bb7d2 100644 --- a/dots/.config/tmux/hooks/tmux.ssh.conf +++ b/dots/.config/tmux/hooks/tmux.ssh.conf @@ -1 +1 @@ -set -g status-style bg=blue,fg=black; +set -g status-style bg=colour12,fg=colour0 diff --git a/dots/.config/tmux/themes/zenwritten_dark.tmux b/dots/.config/tmux/themes/zenwritten_dark.tmux deleted file mode 100644 index 16cd368..0000000 --- a/dots/.config/tmux/themes/zenwritten_dark.tmux +++ /dev/null @@ -1,22 +0,0 @@ -# This file is based on the one provided by shipwright.nvim -set -g @FG '#dddddd' -set -g @BG '#111111' - -set -g status-left ' #[fg=#{@FG},bold]#{s/root//:client_key_table} ' -set -g status-right '#[fg=#{@FG},bold] [#S]#[fg=#{@FG},bold] [%d/%m] #[fg=#{@FG},bold][%I:%M%p] ' -set -g status-style fg='#{@FG}',bg='#{@BG}' - -set -g window-status-current-style fg='#{@FG}',bg='#{@BG}',bold - -set -g pane-border-style fg='#{@FG}' -set -g pane-active-border-style fg='#{@FG}' - -set -g message-style fg='#{@FG}',bg='#{@FG}' - -set -g display-panes-active-colour '#{@FG}' -set -g display-panes-colour '#{@FG}' - -set -g clock-mode-colour '#{@FG}' - -set -g mode-style fg='#{@FG}',bg='#{@FG}' - diff --git a/dots/.config/tmux/themes/zenwritten_light.tmux b/dots/.config/tmux/themes/zenwritten_light.tmux deleted file mode 100644 index 9ecc682..0000000 --- a/dots/.config/tmux/themes/zenwritten_light.tmux +++ /dev/null @@ -1,22 +0,0 @@ -# This file is based on the one provided by shipwright.nvim -set -g @FG '#111111' -set -g @BG '#dddddd' - -set -g status-left ' #[fg=#{@FG},bold]#{s/root//:client_key_table} ' -set -g status-right '#[fg=#{@FG},bold] [#S]#[fg=#{@FG},bold] [%d/%m] #[fg=#{@FG},bold][%I:%M%p] ' -set -g status-style fg='#{@FG}',bg='#{@BG}' - -set -g window-status-current-style fg='#{@FG}',bg='#{@BG}',bold - -set -g pane-border-style fg='#{@FG}' -set -g pane-active-border-style fg='#{@FG}' - -set -g message-style fg='#{@FG}',bg='#{@FG}' - -set -g display-panes-active-colour '#{@FG}' -set -g display-panes-colour '#{@FG}' - -set -g clock-mode-colour '#{@FG}' - -set -g mode-style fg='#{@FG}',bg='#{@FG}' - diff --git a/dots/.config/tmux/tmux.conf b/dots/.config/tmux/tmux.conf index 9ca1cfa..b44c2e0 100644 --- a/dots/.config/tmux/tmux.conf +++ b/dots/.config/tmux/tmux.conf @@ -68,18 +68,7 @@ set -g status-left '#h ' set -g status-right '#(uptime | cut -f 4-5 -d " " | cut -f 1 -d ",") %a %l:%M:%S %p %Y-%m-%d' %endif -# theming -%if "#{==:#{host},desktop-arch}" -set -g default-terminal "tmux-256color" -setw -g window-status-style fg=colour244,bg=default -setw -g window-status-current-style fg=colour232,bg=default,bold -set -g message-style fg=colour232,bg=default -setw -g clock-mode-colour colour235 -set -g status-style bg=default -set -g pane-border-style fg=#cccccc -set -g pane-active-border-style fg=#555555 -set -g message-style bg=#cccccc,fg=#000000 -%endif +set -g default-terminal "tmux-256color" set-hook -g after-new-session 'if -F "#{==:#{session_name},ssh}" "source ${XDG_CONFIG_HOME}/tmux/hooks/tmux.ssh.conf" "source ${XDG_CONFIG_HOME}/tmux/hooks/tmux.regular.conf"' 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/browser/firefox-base.nix b/home/modules/browser/firefox-base.nix index 048909b..a116ee0 100644 --- a/home/modules/browser/firefox-base.nix +++ b/home/modules/browser/firefox-base.nix @@ -23,8 +23,10 @@ in "extensions.autoDisableScopes" = 0; }; extensions = { + force = true; packages = with inputs.firefox-addons.packages.${pkgs.system}; [ duckduckgo-privacy-essentials + firefox-color istilldontcareaboutcookies libredirect keepassxc-browser diff --git a/home/modules/fuzzel/default.nix b/home/modules/fuzzel/default.nix index 0d3d8f6..ee6bc20 100644 --- a/home/modules/fuzzel/default.nix +++ b/home/modules/fuzzel/default.nix @@ -3,22 +3,9 @@ enable = true; settings = { main = { - font = "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/kitty.nix b/home/modules/kitty.nix index 7f80f22..9be6dff 100644 --- a/home/modules/kitty.nix +++ b/home/modules/kitty.nix @@ -7,18 +7,16 @@ { config = { - home.packages = [ (config.nixgl.wrap pkgs.kitty) ]; programs.bash.shellAliases = { icat = "kitty +kitten icat"; }; - home.file = { - ".config/kitty/kitty.conf".source = dotsPath + "/.config/kitty/kitty.conf"; - ".config/kitty/nvim.conf".source = dotsPath + "/.config/kitty/nvim.conf"; - ".config/kitty/themes/zenwritten_light.conf".source = - dotsPath + "/.config/kitty/themes/zenwritten_light.conf"; - ".config/kitty/themes/zenwritten_dark.conf".source = - dotsPath + "/.config/kitty/themes/zenwritten_dark.conf"; + programs.kitty = { + enable = true; + package = config.nixgl.wrap pkgs.kitty; + extraConfig = builtins.readFile (dotsPath + "/.config/kitty/kitty.conf"); }; + + home.file.".config/kitty/nvim.conf".source = dotsPath + "/.config/kitty/nvim.conf"; }; } diff --git a/home/modules/mako/default.nix b/home/modules/mako/default.nix index 880838e..b443621 100644 --- a/home/modules/mako/default.nix +++ b/home/modules/mako/default.nix @@ -1,5 +1,10 @@ +{ lib, ... }: + { services.mako = { enable = true; + settings = { + border-color = lib.mkForce "#bbbbbb"; + }; }; } diff --git a/home/modules/music/default.nix b/home/modules/music/default.nix index b36c9d0..e5dbdb9 100644 --- a/home/modules/music/default.nix +++ b/home/modules/music/default.nix @@ -17,11 +17,11 @@ let in { home.packages = with pkgs; [ - ncspot spotifyWithWayland ]; - home.file = { - ".config/ncspot/config.toml".source = dotsPath + "/.config/ncspot/config.toml"; + programs.ncspot = { + enable = true; + settings = builtins.fromTOML (builtins.readFile (dotsPath + "/.config/ncspot/config.toml")); }; } diff --git a/home/modules/stylix.nix b/home/modules/stylix.nix new file mode 100644 index 0000000..ac0235d --- /dev/null +++ b/home/modules/stylix.nix @@ -0,0 +1,43 @@ +{ + config, + inputs, + pkgs, + ... +}: + +{ + imports = [ inputs.stylix.homeModules.stylix ]; + + stylix = { + enable = true; + polarity = "dark"; + base16Scheme = ../../modules/stylix/zenwritten-dark.yaml; + override = { + base04 = "8E8E8E"; # improved contrast + }; + 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 = config.stylix.fonts.monospace; + sansSerif = config.stylix.fonts.monospace; + emoji = config.stylix.fonts.monospace; + }; + targets = { + firefox = { + profileNames = [ "default" ]; + colorTheme.enable = true; + }; + gnome.enable = false; + gtk.enable = false; + kitty = { + variant256Colors = true; + }; + nixvim.enable = false; + }; + }; +} diff --git a/home/modules/tmux.nix b/home/modules/tmux.nix index 7624f02..03d51e3 100644 --- a/home/modules/tmux.nix +++ b/home/modules/tmux.nix @@ -6,18 +6,17 @@ { config = { home.packages = with pkgs; [ - tmux tmuxp reptyr ]; + programs.tmux = { + enable = true; + extraConfig = builtins.readFile (dotsPath + "/.config/tmux/tmux.conf"); + }; + home.file = { - ".config/tmux/tmux.conf".source = dotsPath + "/.config/tmux/tmux.conf"; ".config/tmux/tmux.regular.conf".source = dotsPath + "/.config/tmux/tmux.regular.conf"; - ".config/tmux/themes/zenwritten_light.tmux".source = - dotsPath + "/.config/tmux/themes/zenwritten_light.tmux"; - ".config/tmux/themes/zenwritten_dark.tmux".source = - dotsPath + "/.config/tmux/themes/zenwritten_dark.tmux"; ".config/tmux/hooks/tmux.ssh.conf".source = dotsPath + "/.config/tmux/hooks/tmux.ssh.conf"; ".config/tmux/hooks/tmux.regular.conf".source = dotsPath + "/.config/tmux/hooks/tmux.regular.conf"; }; diff --git a/home/modules/waybar/config.jsonc b/home/modules/waybar/config.jsonc deleted file mode 100644 index 7f845b4..0000000 --- a/home/modules/waybar/config.jsonc +++ /dev/null @@ -1,57 +0,0 @@ -[ - { - "height": 16, - "spacing": 4, - "modules-left": ["niri/workspaces"], - "modules-right": [ - "pulseaudio", - "memory", - "cpu", - "network", - "clock", - "battery", - ], - "clock": { - "format": "W{:%V %d %b %H:%M}", - "tooltip-format": "{calendar}", - "format-alt": "{:%Y-%m-%d %H:%M:%S}", - }, - "battery": { - "bat": "BAT0", - "adapter": "ADP1", - "interval": 5, - "full-at": 99, - "states": { - "good": 80, - "warning": 20, - "critical": 10, - }, - "format": "{capacity}%--", - "format-charging": "{capacity}%++", - "format-plugged": "{capacity}%", - "format-alt": "{time} {power}W", - }, - "pulseaudio": { - "format": "VOL {volume}%", - "format-muted": "muted", - "on-click": "pavucontrol", - }, - "memory": { - "interval": 2, - "format": "RAM {percentage}%", - "format-alt": "RAM {used:0.1f}G/{total:0.1f}G", - }, - "cpu": { - "interval": 2, - "format": "CPU {usage}%", - "format-alt": "CPU {avg_frequency}GHz", - }, - "network": { - "interval": 5, - "format-wifi": "{ifname} {ipaddr} {essid}", - "format-ethernet": "{ifname} {ipaddr}", - "format-disconnected": "{ifname} disconnected", - "tooltip-format": "{ifname}: {ipaddr}/{cidr}", - }, - }, -] diff --git a/home/modules/waybar/default.nix b/home/modules/waybar/default.nix index 1368331..c5c5fc9 100644 --- a/home/modules/waybar/default.nix +++ b/home/modules/waybar/default.nix @@ -1,8 +1,68 @@ +{ + lib, + ... +}: + { programs.waybar = { enable = true; + settings = [ + { + height = 16; + spacing = 4; + modules-left = [ "niri/workspaces" ]; + modules-right = [ + "pulseaudio" + "memory" + "cpu" + "network" + "clock" + "battery" + ]; + clock = { + format = "W{:%V %d %b %H:%M}"; + tooltip-format = "{calendar}"; + format-alt = "{:%Y-%m-%d %H:%M:%S}"; + }; + battery = { + bat = "BAT0"; + adapter = "ADP1"; + interval = 5; + full-at = 99; + states = { + good = 80; + warning = 20; + critical = 10; + }; + format = "{capacity}%--"; + format-charging = "{capacity}%++"; + format-plugged = "{capacity}%"; + format-alt = "{time} {power}W"; + }; + pulseaudio = { + format = "VOL {volume}%"; + format-muted = "muted"; + on-click = "pavucontrol"; + }; + memory = { + interval = 2; + format = "RAM {percentage}%"; + format-alt = "RAM {used:0.1f}G/{total:0.1f}G"; + }; + cpu = { + interval = 2; + format = "CPU {usage}%"; + format-alt = "CPU {avg_frequency}GHz"; + }; + network = { + interval = 5; + format-wifi = "{ifname} {ipaddr} {essid}"; + format-ethernet = "{ifname} {ipaddr}"; + format-disconnected = "{ifname} disconnected"; + tooltip-format = "{ifname}: {ipaddr}/{cidr}"; + }; + } + ]; + style = lib.readFile ./style.css; }; - - home.file.".config/waybar/config.jsonc".source = ./config.jsonc; - home.file.".config/waybar/style.css".source = ./style.css; } diff --git a/home/modules/waybar/style.css b/home/modules/waybar/style.css index e7b2f8d..5aa373f 100644 --- a/home/modules/waybar/style.css +++ b/home/modules/waybar/style.css @@ -1,8 +1,4 @@ * { - font-family: - Iosevka Term SS08, - monospace; - font-size: 12px; border-radius: 0px; } @@ -27,16 +23,16 @@ window#waybar.hidden { } #workspaces button:hover { - background: #000000; + background: @base00; } #workspaces button.focused, #workspaces button.active { - background-color: #111111; + background-color: @base01; } #workspaces button.urgent { - background-color: #eb4d4b; + background-color: @base08; } #clock, @@ -46,8 +42,8 @@ window#waybar.hidden { #cpu, #network { padding: 0 4px; - color: #ffffff; - background-color: #111111; + color: @base07; + background-color: @base01; } #window, diff --git a/hosts/andromache/default.nix b/hosts/andromache/default.nix index 41ffbb8..ba8582a 100644 --- a/hosts/andromache/default.nix +++ b/hosts/andromache/default.nix @@ -35,6 +35,7 @@ in ../../modules/localization ../../modules/fonts ../../modules/ssh/hardened-openssh.nix + ../../modules/stylix (import ../../modules/secrets { inherit lib inputs config; }) ../../modules/docker ../../modules/syncthing diff --git a/hosts/astyanax/default.nix b/hosts/astyanax/default.nix index b474402..57b9bf9 100644 --- a/hosts/astyanax/default.nix +++ b/hosts/astyanax/default.nix @@ -36,6 +36,7 @@ in ../../modules/localization ../../modules/fonts ../../modules/ssh/hardened-openssh.nix + ../../modules/stylix # ../../modules/vpn/wireguard.nix (import ../../modules/secrets { inherit lib inputs config; }) ../../modules/docker diff --git a/modules/stylix/default.nix b/modules/stylix/default.nix new file mode 100644 index 0000000..03e6fcb --- /dev/null +++ b/modules/stylix/default.nix @@ -0,0 +1,37 @@ +{ + config, + 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 = config.stylix.fonts.monospace; + sansSerif = config.stylix.fonts.monospace; + emoji = config.stylix.fonts.monospace; + }; + autoEnable = true; + }; + + home-manager.sharedModules = [ + { + stylix.targets = { + firefox.profileNames = [ "default" ]; + }; + } + ]; +} diff --git a/modules/stylix/zenwritten-dark.yaml b/modules/stylix/zenwritten-dark.yaml new file mode 100644 index 0000000..8bfe5c9 --- /dev/null +++ b/modules/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)