Personal Nix setup

Extract desktop theme

Changed files
+52 -43
home
desktop
lib
modules
desktop
+6 -41
home/desktop/theme.nix
···
-
{ lib, config, pkgs, ... }:
+
{ lib, config, pkgs, ... } @ inputs:
with lib;
let
+
inherit (import ../../lib/theme.nix inputs) cursorTheme defaultFont iconTheme gtkTheme kvantumTheme;
cfg = config.modules.desktop;
-
-
cursorTheme = {
-
name = "macOS";
-
package = pkgs.apple-cursor;
-
};
-
-
iconTheme = {
-
name = "WhiteSur";
-
package = pkgs.whitesur-icon-theme.override {
-
boldPanelIcons = true;
-
alternativeIcons = true;
-
};
-
};
-
-
gtkTheme = {
-
name = "WhiteSur-Dark-solid";
-
package = pkgs.whitesur-gtk-theme;
-
};
-
-
kvantumTheme = rec {
-
name = "WhiteSur-opaqueDark";
-
package = pkgs.stdenv.mkDerivation {
-
pname = "whitesur-kde";
-
version = pkgs.whitesur-kde.version;
-
src = pkgs.whitesur-kde.src;
-
installPhase = /*sh*/''
-
mkdir -p "$out/share/Kvantum/${name}"
-
cp -R Kvantum/**/* "$out/share/Kvantum/${name}"
-
'';
-
};
-
};
in {
options.modules.desktop.theme = {
enable = mkOption {
···
};
home.packages = with pkgs; [
-
catppuccin-kvantum
libsForQt5.qtstyleplugin-kvantum
libsForQt5.qt5ct
];
···
enable = true;
inherit iconTheme;
theme = gtkTheme;
-
font = {
-
name = "SF Pro Display";
-
package = pkgs.sf-pro;
-
size = 11;
-
};
+
font = defaultFont;
gtk2.configLocation = "${config.xdg.configHome}/gtk-2.0/gtkrc";
gtk3.extraConfig.gtk-application-prefer-dark-theme = 1;
gtk4.extraConfig.gtk-application-prefer-dark-theme = 1;
···
fonts.fontconfig = {
enable = true;
defaultFonts = {
-
serif = [ "Noto Serif" "Noto Color Emoji" ];
-
sansSerif = [ "Inter" "Noto Color Emoji" ];
-
monospace = [ "Dank Mono" "Roboto Mono" "Noto Color Emoji" ];
+
serif = [ "New York" "Noto Serif" "Noto Color Emoji" ];
+
sansSerif = [ "SF Pro Display" "Inter" "Noto Color Emoji" ];
+
monospace = [ "Dank Mono" "SF Mono" "Noto Color Emoji" ];
emoji = [ "Noto Color Emoji" ];
};
};
+36
lib/theme.nix
···
+
{ pkgs, ... }:
+
+
{
+
cursorTheme = {
+
name = "macOS";
+
package = pkgs.apple-cursor;
+
};
+
defaultFont = {
+
name = "SF Pro Display";
+
package = pkgs.sf-pro;
+
size = 11;
+
};
+
iconTheme = {
+
name = "WhiteSur";
+
package = pkgs.whitesur-icon-theme.override {
+
boldPanelIcons = true;
+
alternativeIcons = true;
+
};
+
};
+
gtkTheme = {
+
name = "WhiteSur-Dark-solid";
+
package = pkgs.whitesur-gtk-theme;
+
};
+
kvantumTheme = rec {
+
name = "WhiteSur-opaqueDark";
+
package = pkgs.stdenv.mkDerivation {
+
pname = "whitesur-kde";
+
version = pkgs.whitesur-kde.version;
+
src = pkgs.whitesur-kde.src;
+
installPhase = /*sh*/''
+
mkdir -p "$out/share/Kvantum/${name}"
+
cp -R Kvantum/**/* "$out/share/Kvantum/${name}"
+
'';
+
};
+
};
+
}
+10 -2
modules/desktop/session.nix
···
-
{ lib, config, pkgs, user, ... }:
+
{ lib, config, pkgs, user, ... } @ inputs:
with lib;
let
+
inherit (import ../../lib/theme.nix inputs) cursorTheme defaultFont iconTheme gtkTheme kvantumTheme;
cfg = config.modules.desktop;
in {
options.modules.desktop.session = {
···
};
programs = {
-
regreet.enable = true;
+
regreet = {
+
enable = true;
+
cageArgs = [ "-s" "-mlast" ];
+
inherit cursorTheme iconTheme;
+
font = defaultFont;
+
theme = gtkTheme;
+
settings.GTK.application_prefer_dark_theme = true;
+
};
hyprlock.enable = true;
hyprland = {
enable = true;