diff --git a/.gitignore b/.gitignore index 1aa0388..e5915f6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,7 @@ * +!devirations/ + !machines/ !machines/enka/ !machines/enka/bat/ @@ -26,8 +28,6 @@ !machines/enka/steck/ !machines/enka/waybar/ -!themes/ - !.gitignore !flake.lock diff --git a/devirations/gruvbox-icons.nix b/devirations/gruvbox-icons.nix new file mode 100644 index 0000000..16fbeec --- /dev/null +++ b/devirations/gruvbox-icons.nix @@ -0,0 +1,22 @@ +{ stdenvNoCC, fetchFromGitHub }: + +stdenvNoCC.mkDerivation { + pname = "gruvbox-plus-icons"; + version = "2023-11-30"; + + src = fetchFromGitHub { + owner = "SylEleuth"; + repo = "gruvbox-plus-icon-pack"; + rev = "5ce3ef1ae9d8360e4aadfcf73842df9a417dd53b"; + hash = "sha256-xS6ijyRhc9CaZVERLjqebbNsSbPoFUVTAutOjWiOUKc="; + }; + + installPhase = '' + runHook preInstall + + mkdir -p $out/share/icons + cp -r Gruvbox-Plus-Dark $out/share/icons/ + + runHook postInstall + ''; +} diff --git a/devirations/material-cursors.nix b/devirations/material-cursors.nix new file mode 100644 index 0000000..e004c62 --- /dev/null +++ b/devirations/material-cursors.nix @@ -0,0 +1,35 @@ +{ pkgs, stdenvNoCC, fetchFromGitHub }: + +stdenvNoCC.mkDerivation { + pname = "material-cursors"; + version = "2023-11-30"; + + src = fetchFromGitHub { + owner = "varlesh"; + repo = "material-cursors"; + rev = "2a5f302fefe04678c421473bed636b4d87774b4a"; + hash = "sha256-uC2qx3jF4d2tGLPnXEpogm0vyC053MvDVVdVXX8AZ60="; + }; + + nativeBuildInputs = with pkgs; [ + inkscape + xorg.xcursorgen + ]; + + buildPhase = '' + runHook preBuild + + HOME=$(pwd) bash build.sh 2> /dev/null + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + mkdir -p $out/share/icons/material-cursors + cp -r dist/* $out/share/icons/material-cursors + + runHook postInstall + ''; +} diff --git a/flake.nix b/flake.nix index 3519854..591b05e 100644 --- a/flake.nix +++ b/flake.nix @@ -66,8 +66,13 @@ "RobotoMono" ]; }); + + icons.name = "Gruvbox-Plus-Dark"; + icons.package = pkgs.callPackage (import ./devirations/gruvbox-icons.nix) {}; }); + material-cursors = pkgs.callPackage (import ./devirations/material-cursors.nix) {}; + hyprland = inputs.hyprland.packages.${system}.default; hyprpicker = inputs.hyprpicker.packages.${system}.default; }; diff --git a/machines/enka/dunst/default.nix b/machines/enka/dunst/default.nix index a260b73..4cdf2b6 100644 --- a/machines/enka/dunst/default.nix +++ b/machines/enka/dunst/default.nix @@ -1,11 +1,8 @@ -{ pkgs, upkgs, homeConfiguration, enabled, ... }: +{ upkgs, homeConfiguration, enabled, ... }: homeConfiguration "nixos" { services.dunst = with upkgs.theme.withHashtag; enabled { - iconTheme = { - name = "Gruvbox-Dark"; - package = pkgs.gruvbox-dark-icons-gtk; - }; + iconTheme = upkgs.theme.icons; settings.global = with upkgs.theme; { width = "(300, 900)"; diff --git a/machines/enka/fuzzel/default.nix b/machines/enka/fuzzel/default.nix index de821c8..33be028 100644 --- a/machines/enka/fuzzel/default.nix +++ b/machines/enka/fuzzel/default.nix @@ -2,9 +2,11 @@ homeConfiguration "nixos" { programs.fuzzel = enabled { - settings.main = with upkgs.theme.font; { - font = "${sans.name}:size=${toString size.big}"; - dpi-aware = false; + settings.main = with upkgs.theme; { + dpi-aware = false; + font = "${font.sans.name}:size=${toString font.size.big}"; + icon-theme = icons.name; + layer = "overlay"; prompt = ''"❯ "''; diff --git a/machines/enka/gtk/default.nix b/machines/enka/gtk/default.nix index 7832e02..43579c6 100644 --- a/machines/enka/gtk/default.nix +++ b/machines/enka/gtk/default.nix @@ -12,10 +12,7 @@ size = size.normal; }; - iconTheme = { - name = "Gruvbox-Dark"; - package = pkgs.gruvbox-dark-icons-gtk; - }; + iconTheme = upkgs.theme.icons; theme = { name = "Adwaita-dark"; diff --git a/machines/enka/hyprland/default.nix b/machines/enka/hyprland/default.nix index d836b8e..0d1af09 100644 --- a/machines/enka/hyprland/default.nix +++ b/machines/enka/hyprland/default.nix @@ -19,6 +19,8 @@ exec-once = wl-paste --type text --watch cliphist store exec-once = wl-paste --type image --watch cliphist store + exec-once = hyprctl sercursor material_dark_cursors ${toString font.size.big} + exec = pkill --signal SIGUSR2 waybar '' + @@ -217,6 +219,7 @@ slurp swappy upkgs.hyprpicker + upkgs.material-cursors wl-clipboard xdg-utils xwaylandvideobridge