From 193c665aa4e5adfcc90adcd9d3dd624f9839fa7b Mon Sep 17 00:00:00 2001 From: Nikolaos Karaolidis Date: Tue, 25 Jun 2024 11:10:32 +0300 Subject: [PATCH] Update flake, theme gtk, add vscode cache Signed-off-by: Nikolaos Karaolidis --- flake.lock | 272 ++---------------- flake.nix | 16 +- hosts/common/scripts/cleanup/cleanup.sh | 10 +- hosts/eirene/base/default.nix | 9 +- .../options/home-manager/matugen/default.nix | 2 +- .../options/home-manager/theme/default.nix | 5 +- users/configs/git/default.nix | 8 +- users/configs/gtk/default.nix | 44 ++- users/configs/gtk/theme.css | 48 ++++ users/configs/kitty/theme.conf | 12 +- users/configs/vscode/default.nix | 31 +- 11 files changed, 160 insertions(+), 297 deletions(-) create mode 100644 users/configs/gtk/theme.css diff --git a/flake.lock b/flake.lock index c1d4ecc..1d717c4 100644 --- a/flake.lock +++ b/flake.lock @@ -1,119 +1,5 @@ { "nodes": { - "base16": { - "inputs": { - "fromYaml": "fromYaml" - }, - "locked": { - "lastModified": 1708890466, - "narHash": "sha256-LlrC09LoPi8OPYOGPXegD72v+//VapgAqhbOFS3i8sc=", - "owner": "SenchoPens", - "repo": "base16.nix", - "rev": "665b3c6748534eb766c777298721cece9453fdae", - "type": "github" - }, - "original": { - "owner": "SenchoPens", - "repo": "base16.nix", - "type": "github" - } - }, - "base16-fish": { - "flake": false, - "locked": { - "lastModified": 1622559957, - "narHash": "sha256-PebymhVYbL8trDVVXxCvZgc0S5VxI7I1Hv4RMSquTpA=", - "owner": "tomyun", - "repo": "base16-fish", - "rev": "2f6dd973a9075dabccd26f1cded09508180bf5fe", - "type": "github" - }, - "original": { - "owner": "tomyun", - "repo": "base16-fish", - "type": "github" - } - }, - "base16-foot": { - "flake": false, - "locked": { - "lastModified": 1696725948, - "narHash": "sha256-65bz2bUL/yzZ1c8/GQASnoiGwaF8DczlxJtzik1c0AU=", - "owner": "tinted-theming", - "repo": "base16-foot", - "rev": "eedbcfa30de0a4baa03e99f5e3ceb5535c2755ce", - "type": "github" - }, - "original": { - "owner": "tinted-theming", - "repo": "base16-foot", - "type": "github" - } - }, - "base16-helix": { - "flake": false, - "locked": { - "lastModified": 1696727917, - "narHash": "sha256-FVrbPk+NtMra0jtlC5oxyNchbm8FosmvXIatkRbYy1g=", - "owner": "tinted-theming", - "repo": "base16-helix", - "rev": "dbe1480d99fe80f08df7970e471fac24c05f2ddb", - "type": "github" - }, - "original": { - "owner": "tinted-theming", - "repo": "base16-helix", - "type": "github" - } - }, - "base16-kitty": { - "flake": false, - "locked": { - "lastModified": 1665001328, - "narHash": "sha256-aRaizTYPpuWEcvoYE9U+YRX+Wsc8+iG0guQJbvxEdJY=", - "owner": "kdrag0n", - "repo": "base16-kitty", - "rev": "06bb401fa9a0ffb84365905ffbb959ae5bf40805", - "type": "github" - }, - "original": { - "owner": "kdrag0n", - "repo": "base16-kitty", - "type": "github" - } - }, - "base16-tmux": { - "flake": false, - "locked": { - "lastModified": 1696725902, - "narHash": "sha256-wDPg5elZPcQpu7Df0lI5O8Jv4A3T6jUQIVg63KDU+3Q=", - "owner": "tinted-theming", - "repo": "base16-tmux", - "rev": "c02050bebb60dbb20cb433cd4d8ce668ecc11ba7", - "type": "github" - }, - "original": { - "owner": "tinted-theming", - "repo": "base16-tmux", - "type": "github" - } - }, - "base16-vim": { - "flake": false, - "locked": { - "lastModified": 1716150083, - "narHash": "sha256-ZMhnNmw34ogE5rJZrjRv5MtG3WaqKd60ds2VXvT6hEc=", - "owner": "tinted-theming", - "repo": "base16-vim", - "rev": "6e955d704d046b0dc3e5c2d68a2a6eeffd2b5d3d", - "type": "github" - }, - "original": { - "owner": "tinted-theming", - "repo": "base16-vim", - "type": "github" - } - }, "disko": { "inputs": { "nixpkgs": [ @@ -121,11 +7,11 @@ ] }, "locked": { - "lastModified": 1718588625, - "narHash": "sha256-8ZbrJq1jcmyzJ4SDkvd8JOZD4/fNUHpL4cpqVe4w3CU=", + "lastModified": 1719236180, + "narHash": "sha256-VZAfBk2Lo8hQy/NQ4XVSpTICT0ownXBUi1QvGfdlxaM=", "owner": "nix-community", "repo": "disko", - "rev": "8262659fc990cecdf6a8de74c3de7b6ec58c2276", + "rev": "dd4d1663ccf7fbdb32361b9afe9e71206584cd4c", "type": "github" }, "original": { @@ -134,55 +20,6 @@ "type": "github" } }, - "flake-compat": { - "flake": false, - "locked": { - "lastModified": 1673956053, - "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", - "type": "github" - }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, - "fromYaml": { - "flake": false, - "locked": { - "lastModified": 1689549921, - "narHash": "sha256-iX0pk/uB019TdBGlaJEWvBCfydT6sRq+eDcGPifVsCM=", - "owner": "SenchoPens", - "repo": "fromYaml", - "rev": "11fbbbfb32e3289d3c631e0134a23854e7865c84", - "type": "github" - }, - "original": { - "owner": "SenchoPens", - "repo": "fromYaml", - "type": "github" - } - }, - "gnome-shell": { - "flake": false, - "locked": { - "lastModified": 1713702291, - "narHash": "sha256-zYP1ehjtcV8fo+c+JFfkAqktZ384Y+y779fzmR9lQAU=", - "owner": "GNOME", - "repo": "gnome-shell", - "rev": "0d0aadf013f78a7f7f1dc984d0d812971864b934", - "type": "github" - }, - "original": { - "owner": "GNOME", - "ref": "46.1", - "repo": "gnome-shell", - "type": "github" - } - }, "home-manager": { "inputs": { "nixpkgs": [ @@ -190,32 +27,11 @@ ] }, "locked": { - "lastModified": 1718788307, - "narHash": "sha256-SqiOz0sljM0GjyQEVinPXQxaGcbOXw5OgpCWGPgh/vo=", + "lastModified": 1719180626, + "narHash": "sha256-vZAzm5KQpR6RGple1dzmSJw5kPivES2heCFM+ZWkt0I=", "owner": "nix-community", "repo": "home-manager", - "rev": "d7830d05421d0ced83a0f007900898bdcaf2a2ca", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "home-manager", - "type": "github" - } - }, - "home-manager_2": { - "inputs": { - "nixpkgs": [ - "stylix", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1715930644, - "narHash": "sha256-W9pyM3/vePxrffHtzlJI6lDS3seANQ+Nqp+i58O46LI=", - "owner": "nix-community", - "repo": "home-manager", - "rev": "e3ad5108f54177e6520535768ddbf1e6af54b59d", + "rev": "6b1f90a8ff92e81638ae6eb48cd62349c3e387bb", "type": "github" }, "original": { @@ -226,26 +42,27 @@ }, "impermanence": { "locked": { - "lastModified": 1717932370, - "narHash": "sha256-7C5lCpiWiyPoIACOcu2mukn/1JRtz6HC/1aEMhUdcw0=", - "owner": "nix-community", + "lastModified": 1719246738, + "narHash": "sha256-3mrMMLLBugRJoBE+vbRJ+YghjT8ssf7egkEyixMeb44=", + "owner": "karaolidis", "repo": "impermanence", - "rev": "27979f1c3a0d3b9617a3563e2839114ba7d48d3f", + "rev": "bf6e93779c9e23da96b2e73839d7a9bf1965fc8c", "type": "github" }, "original": { - "owner": "nix-community", + "owner": "karaolidis", + "ref": "home-manager-ordering", "repo": "impermanence", "type": "github" } }, "nixpkgs": { "locked": { - "lastModified": 1718530797, - "narHash": "sha256-pup6cYwtgvzDpvpSCFh1TEUjw2zkNpk8iolbKnyFmmU=", + "lastModified": 1719075281, + "narHash": "sha256-CyyxvOwFf12I91PBWz43iGT1kjsf5oi6ax7CrvaMyAo=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "b60ebf54c15553b393d144357375ea956f89e9a9", + "rev": "a71e967ef3694799d0c418c98332f7ff4cc5f6af", "type": "github" }, "original": { @@ -257,11 +74,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1718478900, - "narHash": "sha256-v43N1gZLcGkhg3PdcrKUNIZ1L0FBzB2JqhIYEyKAHEs=", + "lastModified": 1719099622, + "narHash": "sha256-YzJECAxFt+U5LPYf/pCwW/e1iUd2PF21WITHY9B/BAs=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "c884223af91820615a6146af1ae1fea25c107005", + "rev": "5e8e3b89adbd0be63192f6e645e0a54080004924", "type": "github" }, "original": { @@ -271,30 +88,13 @@ "type": "github" } }, - "nixpkgs_2": { - "locked": { - "lastModified": 1714912032, - "narHash": "sha256-clkcOIkg8G4xuJh+1onLG4HPMpbtzdLv4rHxFzgsH9c=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "ee4a6e0f566fe5ec79968c57a9c2c3c25f2cf41d", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, "root": { "inputs": { "disko": "disko", "home-manager": "home-manager", "impermanence": "impermanence", "nixpkgs": "nixpkgs", - "sops-nix": "sops-nix", - "stylix": "stylix" + "sops-nix": "sops-nix" } }, "sops-nix": { @@ -305,11 +105,11 @@ "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1718506969, - "narHash": "sha256-Pm9I/BMQHbsucdWf6y9G3xBZh3TMlThGo4KBbeoeczg=", + "lastModified": 1719111739, + "narHash": "sha256-kr2QzRrplzlCP87ddayCZQS+dhGW98kw2zy7+jUXtF4=", "owner": "Mic92", "repo": "sops-nix", - "rev": "797ce4c1f45a85df6dd3d9abdc53f2691bea9251", + "rev": "5e2e9421e9ed2b918be0a441c4535cfa45e04811", "type": "github" }, "original": { @@ -317,34 +117,6 @@ "repo": "sops-nix", "type": "github" } - }, - "stylix": { - "inputs": { - "base16": "base16", - "base16-fish": "base16-fish", - "base16-foot": "base16-foot", - "base16-helix": "base16-helix", - "base16-kitty": "base16-kitty", - "base16-tmux": "base16-tmux", - "base16-vim": "base16-vim", - "flake-compat": "flake-compat", - "gnome-shell": "gnome-shell", - "home-manager": "home-manager_2", - "nixpkgs": "nixpkgs_2" - }, - "locked": { - "lastModified": 1718789425, - "narHash": "sha256-YJvgBThIUPeywoTjnFk+F73c0l2oaAENIrz2uldqb5A=", - "owner": "danth", - "repo": "stylix", - "rev": "7dcab0711bfc103a1fb05ba643ee7a3bd309fbe4", - "type": "github" - }, - "original": { - "owner": "danth", - "repo": "stylix", - "type": "github" - } } }, "root": "root", diff --git a/flake.nix b/flake.nix index aa30e85..7a38990 100644 --- a/flake.nix +++ b/flake.nix @@ -8,22 +8,18 @@ }; impermanence = { - url = "github:nix-community/impermanence"; - }; - - home-manager = { - url = "github:nix-community/home-manager"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - - stylix = { - url = "github:danth/stylix"; + url = "github:karaolidis/impermanence/?ref=home-manager-ordering"; }; sops-nix = { url = "github:Mic92/sops-nix"; inputs.nixpkgs.follows = "nixpkgs"; }; + + home-manager = { + url = "github:nix-community/home-manager"; + inputs.nixpkgs.follows = "nixpkgs"; + }; }; outputs = { self, nixpkgs, ... } @ inputs: { diff --git a/hosts/common/scripts/cleanup/cleanup.sh b/hosts/common/scripts/cleanup/cleanup.sh index 8176006..8f76d83 100644 --- a/hosts/common/scripts/cleanup/cleanup.sh +++ b/hosts/common/scripts/cleanup/cleanup.sh @@ -20,9 +20,13 @@ mkdir -p /mnt/btrfs mount /dev/mapper/luks /mnt/btrfs if [[ -e /mnt/btrfs/root.bak ]]; then - for i in /mnt/btrfs/root.bak/*; do - delete_subvolume_recursively "$i" - done + if [ "$(ls -A /mnt/btrfs/root.bak)" ]; then + for i in /mnt/btrfs/root.bak/*; do + delete_subvolume_recursively "$i" + done + else + echo "/mnt/btrfs/root.bak is empty. Nothing to delete." + fi fi umount /mnt/btrfs diff --git a/hosts/eirene/base/default.nix b/hosts/eirene/base/default.nix index 4c6f7c0..0501280 100644 --- a/hosts/eirene/base/default.nix +++ b/hosts/eirene/base/default.nix @@ -29,9 +29,8 @@ }; }; - opengl = { - driSupport = true; - driSupport32Bit = true; + graphics = { + enable32Bit = true; extraPackages = with pkgs; [ amdvlk driversi686Linux.amdvlk @@ -65,6 +64,10 @@ ]; }; + theme = { + cursor.size = 24; + }; + programs.zsh.loginExtra = lib.mkBefore '' AMD=/dev/dri/by-path/pci-0000:06:00.0-card NVIDIA=/dev/dri/by-path/pci-0000:01:00.0-card diff --git a/users/common/options/home-manager/matugen/default.nix b/users/common/options/home-manager/matugen/default.nix index 60c78a4..a68fb42 100644 --- a/users/common/options/home-manager/matugen/default.nix +++ b/users/common/options/home-manager/matugen/default.nix @@ -9,7 +9,7 @@ in enable = mkEnableOption "matugen"; package = mkPackageOption pkgs "matugen" { }; settings = mkOption { - type = attrs; + type = attrsOf anything; description = "Settings to write to config.toml."; }; }; diff --git a/users/common/options/home-manager/theme/default.nix b/users/common/options/home-manager/theme/default.nix index b08ace5..ec88b19 100644 --- a/users/common/options/home-manager/theme/default.nix +++ b/users/common/options/home-manager/theme/default.nix @@ -153,10 +153,7 @@ in }; mode = mkOption { - type = enum [ - "dark" - "light" - ]; + type = enum [ "dark" "light" ]; default = "dark"; description = "The default mode of the theme."; }; diff --git a/users/configs/git/default.nix b/users/configs/git/default.nix index cbbb145..8e38b7f 100644 --- a/users/configs/git/default.nix +++ b/users/configs/git/default.nix @@ -10,11 +10,17 @@ in lfs.enable = true; userName = user.fullName; userEmail = user.email; + signing = { signByDefault = true; key = null; }; - extraConfig.credential.helper = "store"; + + extraConfig = { + credential.helper = "store"; + push.autoSetupRemote = true; + }; + hooks = { commit-msg = let name = "git-commit-msg-hook"; in "${pkgs.writeShellApplication { diff --git a/users/configs/gtk/default.nix b/users/configs/gtk/default.nix index 793c685..5de26c0 100644 --- a/users/configs/gtk/default.nix +++ b/users/configs/gtk/default.nix @@ -1,10 +1,50 @@ -{ user ? throw "user argument is required" }: { config, ... }: +{ user ? throw "user argument is required" }: { config, pkgs, ... }: let hmConfig = config.home-manager.users."${user.name}"; in { home-manager.users."${user.name}" = { - gtk.gtk2.configLocation = "${hmConfig.xdg.configHome}/gtk-2.0/gtkrc"; + gtk = { + enable = true; + + theme = { + package = pkgs.adw-gtk3; + name = "adw-gtk3-dark"; + }; + + gtk2.configLocation = "${hmConfig.xdg.configHome}/gtk-2.0/gtkrc"; + gtk3.extraCss = "@import './theme.css';"; + gtk4.extraCss = "@import './theme.css';"; + }; + + programs.matugen.settings.templates = { + gtk3 = { + input_path = ./theme.css; + output_path = "${hmConfig.xdg.configHome}/gtk-3.0/theme.css"; + }; + gtk4 = { + input_path = ./theme.css; + output_path = "${hmConfig.xdg.configHome}/gtk-4.0/theme.css"; + }; + }; + + theme.extraConfig = let name = "theme-gtk"; in + "${pkgs.writeShellApplication { + inherit name; + runtimeInputs = with pkgs; [ glib ]; + text = '' + MODE=$(cat "${hmConfig.theme.configDir}/mode") + + if [ "$MODE" = "light" ]; then + GTK_THEME="adw-gtk3" + else + GTK_THEME="adw-gtk3-dark" + fi + + gsettings set org.gnome.desktop.interface gtk-theme "$GTK_THEME" + gsettings set org.gnome.desktop.interface color-scheme "prefer-$MODE" + ''; + }}/bin/${name} &"; }; } diff --git a/users/configs/gtk/theme.css b/users/configs/gtk/theme.css new file mode 100644 index 0000000..f90d9df --- /dev/null +++ b/users/configs/gtk/theme.css @@ -0,0 +1,48 @@ +@define-color window_bg_color alpha({{colors.surface.default.hex}}, {{custom.opacity}}); +@define-color window_fg_color {{colors.on_surface.default.hex}}; + +@define-color view_bg_color @window_bg_color; +@define-color view_fg_color @window_fg_color; + +@define-color accent_bg_color {{colors.primary_container.default.hex}}; +@define-color accent_fg_color {{colors.on_primary.default.hex}}; +@define-color accent_color @accent_bg_color; + +@define-color headerbar_bg_color @window_bg_color; +@define-color headerbar_fg_color @window_fg_color; +@define-color headerbar_backdrop_color alpha({{colors.surface_variant.default.hex}}, {{custom.opacity}}); +@define-color headerbar_shade_color {{colors.shadow.default.hex}}; + +@define-color card_bg_color alpha({{colors.surface_container.default.hex}}, {{custom.opacity}}); +@define-color card_fg_color {{colors.on_surface.default.hex}}; +@define-color card_shade_color {{colors.shadow.default.hex}}; + +@define-color popover_bg_color @window_bg_color; +@define-color popover_fg_color @window_fg_color; + +@define-color dialog_bg_color @window_bg_color; +@define-color dialog_fg_color @window_fg_color; + +@define-color sidebar_bg_color @card_bg_color; +@define-color sidebar_fg_color @card_fg_color; +@define-color sidebar_backdrop_color alpha({{colors.surface_variant.default.hex}}, {{custom.opacity}}); +@define-color sidebar_shade_color @card_shade_color; + +@define-color warning_bg_color {{colors.warning_container.default.hex}}; +@define-color warning_fg_color {{colors.on_warning.default.hex}}; +@define-color warning_color @warning_bg_color; + +@define-color error_bg_color {{colors.error_container.default.hex}}; +@define-color error_fg_color {{colors.on_error.default.hex}}; +@define-color error_color @error_bg_color; + +@define-color success_bg_color {{colors.success_container.default.hex}}; +@define-color success_fg_color {{colors.on_success.default.hex}}; +@define-color success_color @success_bg_color; + +@define-color destructive_bg_color {{colors.danger_container.default.hex}}; +@define-color destructive_fg_color {{colors.on_danger.default.hex}}; +@define-color destructive_color @destructive_bg_color; + +@panel_bg_color @window_bg_color +@panel_fg_color @window_fg_color diff --git a/users/configs/kitty/theme.conf b/users/configs/kitty/theme.conf index d9c0f98..86ec310 100644 --- a/users/configs/kitty/theme.conf +++ b/users/configs/kitty/theme.conf @@ -20,10 +20,10 @@ color6 {{colors.cyan.default.hex}} color7 {{colors.on_surface.default.hex}} color8 {{colors.outline_variant.default.hex}} -color9 {{colors.red.default.hex}} -color10 {{colors.green.default.hex}} -color11 {{colors.yellow.default.hex}} -color12 {{colors.blue.default.hex}} -color13 {{colors.magenta.default.hex}} -color14 {{colors.cyan.default.hex}} +color9 {{ colors.red.default.hex | set_lightness: 5.0 }} +color10 {{ colors.green.default.hex | set_lightness: 5.0 }} +color11 {{ colors.yellow.default.hex | set_lightness: 5.0 }} +color12 {{ colors.blue.default.hex | set_lightness: 5.0 }} +color13 {{ colors.magenta.default.hex | set_lightness: 5.0 }} +color14 {{ colors.cyan.default.hex | set_lightness: 5.0 }} color15 {{colors.on_surface_variant.default.hex}} diff --git a/users/configs/vscode/default.nix b/users/configs/vscode/default.nix index e2377e9..2468fbc 100644 --- a/users/configs/vscode/default.nix +++ b/users/configs/vscode/default.nix @@ -62,23 +62,20 @@ home.persistence = { "/persist${user.home}".directories = [ ".config/Code" ]; - # Bastard: - # - https://github.com/microsoft/vscode/issues/3884 - # - https://github.com/nix-community/impermanence/issues/22 - # - https://github.com/nix-community/impermanence/pull/97 - # "/cache${user.home}".directories = [ - # ".config/Code/Cache" - # ".config/Code/CachedConfigurations" - # ".config/Code/CachedData" - # ".config/Code/CachedExtensionVSIXs" - # ".config/Code/CachedExtensions" - # ".config/Code/CachedProfilesData" - # ".config/Code/Code Cache" - # ".config/Code/DawnCache" - # ".config/Code/GPUCache" - # ".config/Code/Service Worker/CacheStorage" - # ".config/Code/Service Worker/ScriptCache" - # ]; + # Bastard: https://github.com/microsoft/vscode/issues/3884 + "/cache${user.home}".directories = [ + ".config/Code/Cache" + ".config/Code/CachedConfigurations" + ".config/Code/CachedData" + ".config/Code/CachedExtensionVSIXs" + ".config/Code/CachedExtensions" + ".config/Code/CachedProfilesData" + ".config/Code/Code Cache" + ".config/Code/DawnCache" + ".config/Code/GPUCache" + ".config/Code/Service Worker/CacheStorage" + ".config/Code/Service Worker/ScriptCache" + ]; }; }; }