170 lines
4.6 KiB
Nix
170 lines
4.6 KiB
Nix
{ config, pkgs, ... }:
|
|
|
|
# TODO: Make this more generic / reusable
|
|
let
|
|
username = config.modules.other.system.username;
|
|
gitPath = config.modules.other.system.gitPath;
|
|
|
|
variant = "frappe";
|
|
|
|
|
|
catpuccin-rofi = pkgs.stdenv.mkDerivation {
|
|
pname = "catppuccin-rofi";
|
|
version = "0";
|
|
src = pkgs.fetchFromGitHub {
|
|
owner = "catppuccin";
|
|
repo = "rofi";
|
|
rev = "5350da41a11814f950c3354f090b90d4674a95ce";
|
|
sha256 = "sha256-DNorfyl3C4RBclF2KDgwvQQwixpTwSRu7fIvihPN8JY=";
|
|
};
|
|
installPhase = ''
|
|
mkdir -p $out/share/
|
|
mkdir -p $out/.config/
|
|
|
|
cp -r $src/basic/.config/rofi/* $out/.config/
|
|
cp -r $src/basic/.local/share/rofi/themes/* $out/share/
|
|
'';
|
|
};
|
|
grub-theme = pkgs.stdenv.mkDerivation {
|
|
pname = "catppuccin-grub";
|
|
version = "0";
|
|
src = pkgs.fetchFromGitHub {
|
|
owner = "catppuccin";
|
|
repo = "grub";
|
|
rev = "803c5df0e83aba61668777bb96d90ab8f6847106";
|
|
sha256 = "sha256-/bSolCta8GCZ4lP0u5NVqYQ9Y3ZooYCNdTwORNvR7M0=";
|
|
};
|
|
installPhase = ''
|
|
# runHook preInstall
|
|
|
|
|
|
mkdir -p $out/
|
|
|
|
cp -r $src/src/catppuccin-mocha-grub-theme/* $out/
|
|
|
|
|
|
|
|
# runHook postInstall
|
|
'';
|
|
|
|
};
|
|
# catppuccin-sddm-corners-patched = pkgs.catppuccin-sddm-corners.overrideAttrs (prevAttrs: {
|
|
|
|
# postInstall = (prevAttrs.postInstall or "") + ''
|
|
# sed -i -E "s/passwordMaskDelay: [0-9]+/passwordMaskDelay: 0/" $out/share/sddm/themes/catppuccin-sddm-corners/components/PasswordPanel.qml
|
|
# '';
|
|
# });
|
|
catppuccin-sddm = pkgs.stdenv.mkDerivation rec {
|
|
pname="catppuccin-sddm";
|
|
version="1.0.0";
|
|
dontBuild = true;
|
|
src = pkgs.fetchFromGitHub {
|
|
owner = "catppuccin";
|
|
repo = "sddm";
|
|
rev = "v${version}";
|
|
sha256 = "sha256-SdpkuonPLgCgajW99AzJaR8uvdCPi4MdIxS5eB+Q9WQ=";
|
|
};
|
|
# nativeBuildInputs = with pkgs; [ qt6.qtsvg qt6.qtdeclarative ];
|
|
installPhase = ''
|
|
runHook preInstall
|
|
theme_dir="$out/share/sddm/themes/";
|
|
mkdir -p $theme_dir
|
|
|
|
for variant in "latte" "frappe" "macchiato" "mocha"; do
|
|
this_theme="$theme_dir/catppuccin-$variant"
|
|
mkdir "$this_theme"
|
|
cp -r $src/src/* $this_theme
|
|
# replace the theme name in the metadata file
|
|
sed -i -e "s/%%THEME%%/$variant/g" "$this_theme/metadata.desktop"
|
|
|
|
|
|
# handle items that are different per theme
|
|
cp "$src/pertheme/$variant.png" "$this_theme/preview.png"
|
|
cp "$src/pertheme/$variant.conf" "$this_theme/theme.conf"
|
|
done
|
|
|
|
runHook postInstall
|
|
'';
|
|
|
|
|
|
};
|
|
catppuccin-wallpapers = pkgs.stdenv.mkDerivation {
|
|
pname="catppuccin-wallpapers";
|
|
version = "0";
|
|
src = pkgs.fetchFromGitHub {
|
|
owner = "zhichaoh";
|
|
repo = "catppuccin-wallpapers";
|
|
rev = "1023077979591cdeca76aae94e0359da1707a60e";
|
|
sha256 = "sha256-h+cFlTXvUVJPRMpk32jYVDDhHu1daWSezFcvhJqDpmU=";
|
|
};
|
|
installPhase = ''
|
|
mkdir -p $out/
|
|
cp -r $src/* $out/
|
|
'';
|
|
};
|
|
|
|
catppuccin = (pkgs.catppuccin.override {
|
|
inherit variant;
|
|
});
|
|
catppuccin-waybar = pkgs.stdenv.mkDerivation rec {
|
|
name = "catppuccin-waybar";
|
|
version = "1.1";
|
|
src = pkgs.fetchFromGitHub {
|
|
owner = "catppuccin";
|
|
repo = "waybar";
|
|
rev = "v${version}";
|
|
hash = "sha256-9lY+v1CTbpw2lREG/h65mLLw5KuT8OJdEPOb+NNC6Fo=";
|
|
};
|
|
installPhase = ''
|
|
runHook preInstall
|
|
mkdir -p $out
|
|
cp $src/themes/* $out/
|
|
|
|
runHook postInstall
|
|
'';
|
|
|
|
};
|
|
|
|
in
|
|
{
|
|
home-manager.users.${username} = {
|
|
xdg.configFile."rofi".source = "${catpuccin-rofi}/.config";
|
|
xdg.dataFile."rofi/themes".source = "${catpuccin-rofi}/share";
|
|
|
|
programs.waybar.style = ./waybar-style.css;
|
|
# add catppuccin theme to waybar
|
|
xdg.configFile."waybar/catppuccin.css".source = "${catppuccin-waybar}/${variant}.css";
|
|
|
|
wayland.windowManager.hyprland.settings.exec-once = [
|
|
"hyprshade auto"
|
|
"dunst"
|
|
"hyprpaper"
|
|
];
|
|
|
|
xdg.configFile."hypr/hyprpaper.conf" = { #TODO: generic path
|
|
text = ''
|
|
preload = ${catppuccin-wallpapers}/landscapes/Rainnight.jpg
|
|
wallpaper = ,${catppuccin-wallpapers}/landscapes/Rainnight.jpg
|
|
'';
|
|
};
|
|
};
|
|
environment.systemPackages = with pkgs; [
|
|
# catppuccin-sddm-corners-patched
|
|
catppuccin
|
|
catppuccin-sddm
|
|
|
|
# deps of catppuccin-sddm-corners-patched
|
|
libsForQt5.qt5.qtgraphicaleffects
|
|
libsForQt5.qt5.qtsvg
|
|
libsForQt5.qt5.qtquickcontrols
|
|
qt6.qtsvg qt6.qtdeclarative
|
|
qt6.qtwayland
|
|
];
|
|
services.displayManager.sddm = {
|
|
theme = "catppuccin-${variant}";
|
|
package = pkgs.kdePackages.sddm; # NEEDED for the catppuccin theme
|
|
};
|
|
|
|
boot.loader.grub.theme = grub-theme;
|
|
|
|
}
|