homeManagerModules: simplify and refactor options into options.nix

This commit is contained in:
Aly Raffauf 2024-06-11 17:49:50 -04:00
parent b01e8ebadb
commit b3b04a9e41
38 changed files with 839 additions and 859 deletions

View file

@ -4,28 +4,24 @@
config, config,
... ...
}: { }: {
options = {
alyraffauf.apps.alacritty.enable = lib.mkEnableOption "Enables alacritty.";
};
config = lib.mkIf config.alyraffauf.apps.alacritty.enable { config = lib.mkIf config.alyraffauf.apps.alacritty.enable {
programs.alacritty = { programs.alacritty = {
enable = true; enable = true;
settings = { settings = {
colors = { colors = {
primary = { primary = {
background = "${config.alyraffauf.desktop.theme.colors.background}"; background = "${config.alyraffauf.theme.colors.background}";
foreground = "${config.alyraffauf.desktop.theme.colors.text}"; foreground = "${config.alyraffauf.theme.colors.text}";
}; };
transparent_background_colors = true; transparent_background_colors = true;
draw_bold_text_with_bright_colors = true; draw_bold_text_with_bright_colors = true;
}; };
font = { font = {
normal = { normal = {
family = "${config.alyraffauf.desktop.theme.terminalFont.name}"; family = "${config.alyraffauf.theme.terminalFont.name}";
style = "Regular"; style = "Regular";
}; };
size = config.alyraffauf.desktop.theme.terminalFont.size; size = config.alyraffauf.theme.terminalFont.size;
}; };
selection.save_to_clipboard = true; selection.save_to_clipboard = true;
window = { window = {

View file

@ -4,8 +4,6 @@
config, config,
... ...
}: { }: {
options = {alyraffauf.apps.bash.enable = lib.mkEnableOption "Enables bash.";};
config = lib.mkIf config.alyraffauf.apps.bash.enable { config = lib.mkIf config.alyraffauf.apps.bash.enable {
programs.bash = { programs.bash = {
enable = true; enable = true;

View file

@ -4,17 +4,6 @@
config, config,
... ...
}: { }: {
options = {
alyraffauf.apps.chromium = {
enable = lib.mkEnableOption "Chromium-based browser with default extensions.";
package = lib.mkOption {
description = "Chromium-based browser (Brave by default).";
default = pkgs.brave;
type = lib.types.package;
};
};
};
config = lib.mkIf config.alyraffauf.apps.chromium.enable { config = lib.mkIf config.alyraffauf.apps.chromium.enable {
programs.chromium = { programs.chromium = {
enable = true; enable = true;

View file

@ -4,8 +4,6 @@
config, config,
... ...
}: { }: {
options = {alyraffauf.apps.emacs.enable = lib.mkEnableOption "Enables emacs.";};
config = lib.mkIf config.alyraffauf.apps.emacs.enable { config = lib.mkIf config.alyraffauf.apps.emacs.enable {
programs.emacs = { programs.emacs = {
enable = true; enable = true;

View file

@ -4,8 +4,6 @@
config, config,
... ...
}: { }: {
options = {alyraffauf.apps.eza.enable = lib.mkEnableOption "Enables eza.";};
config = lib.mkIf config.alyraffauf.apps.eza.enable { config = lib.mkIf config.alyraffauf.apps.eza.enable {
programs.eza = { programs.eza = {
enable = true; enable = true;

View file

@ -4,10 +4,6 @@
config, config,
... ...
}: { }: {
options = {
alyraffauf.apps.fastfetch.enable = lib.mkEnableOption "Enable fastfetch.";
};
config = lib.mkIf config.alyraffauf.apps.fastfetch.enable { config = lib.mkIf config.alyraffauf.apps.fastfetch.enable {
home.packages = [pkgs.fastfetch]; home.packages = [pkgs.fastfetch];
xdg.configFile."fastfetch/config.jsonc".source = ./config.jsonc; xdg.configFile."fastfetch/config.jsonc".source = ./config.jsonc;

View file

@ -4,8 +4,6 @@
config, config,
... ...
}: { }: {
options = {alyraffauf.apps.firefox.enable = lib.mkEnableOption "Enables Firefox.";};
config = lib.mkIf config.alyraffauf.apps.firefox.enable { config = lib.mkIf config.alyraffauf.apps.firefox.enable {
programs.firefox = {enable = true;}; programs.firefox = {enable = true;};
}; };

View file

@ -4,18 +4,16 @@
config, config,
... ...
}: { }: {
options = {alyraffauf.apps.fuzzel.enable = lib.mkEnableOption "Enables fuzzel.";};
config = lib.mkIf config.alyraffauf.apps.fuzzel.enable { config = lib.mkIf config.alyraffauf.apps.fuzzel.enable {
programs.fuzzel = { programs.fuzzel = {
enable = true; enable = true;
settings = { settings = {
main = { main = {
font = "${config.alyraffauf.desktop.theme.terminalFont.name}:size=${toString config.alyraffauf.desktop.theme.terminalFont.size}"; font = "${config.alyraffauf.theme.terminalFont.name}:size=${toString config.alyraffauf.theme.terminalFont.size}";
icon-theme = "${config.alyraffauf.desktop.theme.iconTheme.name}"; icon-theme = "${config.alyraffauf.theme.iconTheme.name}";
layer = "overlay"; layer = "overlay";
lines = 3; lines = 3;
terminal = config.alyraffauf.desktop.defaultApps.terminal.exe; terminal = config.alyraffauf.defaultApps.terminal.exe;
width = 36; width = 36;
}; };
border = { border = {
@ -23,12 +21,12 @@
width = 2; width = 2;
}; };
colors = { colors = {
background = "${config.alyraffauf.desktop.theme.colors.background}CC"; background = "${config.alyraffauf.theme.colors.background}CC";
border = "${config.alyraffauf.desktop.theme.colors.primary}EE"; border = "${config.alyraffauf.theme.colors.primary}EE";
selection = "${config.alyraffauf.desktop.theme.colors.background}FF"; selection = "${config.alyraffauf.theme.colors.background}FF";
selection-match = "#e78284FF"; selection-match = "#e78284FF";
selection-text = "#f4b8e4FF"; selection-text = "#f4b8e4FF";
text = "${config.alyraffauf.desktop.theme.colors.text}FF"; text = "${config.alyraffauf.theme.colors.text}FF";
}; };
}; };
}; };

View file

@ -4,8 +4,6 @@
config, config,
... ...
}: { }: {
options = {alyraffauf.apps.fzf.enable = lib.mkEnableOption "Enables fzf.";};
config = lib.mkIf config.alyraffauf.apps.fzf.enable { config = lib.mkIf config.alyraffauf.apps.fzf.enable {
programs.fzf = { programs.fzf = {
enable = true; enable = true;

View file

@ -4,10 +4,6 @@
config, config,
... ...
}: { }: {
options = {
alyraffauf.apps.librewolf.enable = lib.mkEnableOption "Enables librewolf.";
};
config = lib.mkIf config.alyraffauf.apps.librewolf.enable { config = lib.mkIf config.alyraffauf.apps.librewolf.enable {
programs.librewolf = { programs.librewolf = {
enable = true; enable = true;

View file

@ -4,22 +4,20 @@
config, config,
... ...
}: { }: {
options = {alyraffauf.apps.mako.enable = lib.mkEnableOption "Mako notification daemon.";};
config = lib.mkIf config.alyraffauf.apps.mako.enable { config = lib.mkIf config.alyraffauf.apps.mako.enable {
services.mako = { services.mako = {
enable = true; enable = true;
anchor = "top-center"; anchor = "top-center";
backgroundColor = "${config.alyraffauf.desktop.theme.colors.background}CC"; backgroundColor = "${config.alyraffauf.theme.colors.background}CC";
borderColor = "${config.alyraffauf.desktop.theme.colors.primary}EE"; borderColor = "${config.alyraffauf.theme.colors.primary}EE";
borderSize = 2; borderSize = 2;
borderRadius = 10; borderRadius = 10;
defaultTimeout = 10000; defaultTimeout = 10000;
font = "${config.alyraffauf.desktop.theme.font.name} Regular ${toString config.alyraffauf.desktop.theme.font.size}"; font = "${config.alyraffauf.theme.font.name} Regular ${toString config.alyraffauf.theme.font.size}";
height = 300; height = 300;
layer = "top"; layer = "top";
padding = "15"; padding = "15";
textColor = "${config.alyraffauf.desktop.theme.colors.text}"; textColor = "${config.alyraffauf.theme.colors.text}";
width = 400; width = 400;
margin = "20,0"; margin = "20,0";
extraConfig = '' extraConfig = ''

View file

@ -4,10 +4,6 @@
config, config,
... ...
}: { }: {
options = {
alyraffauf.apps.neofetch.enable = lib.mkEnableOption "Enable neofetch.";
};
config = lib.mkIf config.alyraffauf.apps.neofetch.enable { config = lib.mkIf config.alyraffauf.apps.neofetch.enable {
home.packages = [pkgs.neofetch]; home.packages = [pkgs.neofetch];
xdg.configFile."neofetch/config.conf".source = ./config.conf; xdg.configFile."neofetch/config.conf".source = ./config.conf;

View file

@ -4,8 +4,6 @@
config, config,
... ...
}: { }: {
options = {alyraffauf.apps.neovim.enable = lib.mkEnableOption "Enables neovim.";};
config = lib.mkIf config.alyraffauf.apps.neovim.enable { config = lib.mkIf config.alyraffauf.apps.neovim.enable {
programs.neovim = { programs.neovim = {
enable = true; enable = true;

View file

@ -4,8 +4,6 @@
config, config,
... ...
}: { }: {
options = {alyraffauf.apps.swaylock.enable = lib.mkEnableOption "Enable Swaylock.";};
config = lib.mkIf config.alyraffauf.apps.swaylock.enable { config = lib.mkIf config.alyraffauf.apps.swaylock.enable {
home.packages = with pkgs; [swaylock]; home.packages = with pkgs; [swaylock];
@ -17,8 +15,8 @@
caps-lock-key-hl-color=e78284 caps-lock-key-hl-color=e78284
color=303446 color=303446
daemonize daemonize
font="${config.alyraffauf.desktop.theme.terminalFont.name}-Regular" font="${config.alyraffauf.theme.terminalFont.name}-Regular"
image=${config.alyraffauf.desktop.theme.wallpaper} image=${config.alyraffauf.theme.wallpaper}
indicator-caps-lock indicator-caps-lock
indicator-idle-visible indicator-idle-visible
indicator-radius=120 indicator-radius=120
@ -29,17 +27,17 @@
inside-ver-color=303446cc inside-ver-color=303446cc
inside-wrong-color=303446cc inside-wrong-color=303446cc
key-hl-color=a6d189 key-hl-color=a6d189
line-caps-lock-color=${config.alyraffauf.desktop.theme.colors.background}CC line-caps-lock-color=${config.alyraffauf.theme.colors.background}CC
line-clear-color=${config.alyraffauf.desktop.theme.colors.background}CC line-clear-color=${config.alyraffauf.theme.colors.background}CC
line-color=${config.alyraffauf.desktop.theme.colors.background}CC line-color=${config.alyraffauf.theme.colors.background}CC
line-ver-color=${config.alyraffauf.desktop.theme.colors.background}CC line-ver-color=${config.alyraffauf.theme.colors.background}CC
line-wrong-color=${config.alyraffauf.desktop.theme.colors.background}CC line-wrong-color=${config.alyraffauf.theme.colors.background}CC
ring-caps-lock-color=e78284cc ring-caps-lock-color=e78284cc
ring-clear-color=85c1dccc ring-clear-color=85c1dccc
ring-color=${config.alyraffauf.desktop.theme.colors.primary}CC ring-color=${config.alyraffauf.theme.colors.primary}CC
ring-ver-color=a6d189cc ring-ver-color=a6d189cc
ring-wrong-color=e78284cc ring-wrong-color=e78284cc
separator-color=${config.alyraffauf.desktop.theme.colors.background}CC separator-color=${config.alyraffauf.theme.colors.background}CC
text-caps-lock-color=c6d0f5 text-caps-lock-color=c6d0f5
text-clear-color=c6d0f5 text-clear-color=c6d0f5
text-ver-color=c6d0f5 text-ver-color=c6d0f5

View file

@ -4,8 +4,6 @@
config, config,
... ...
}: { }: {
options = {alyraffauf.apps.thunar.enable = lib.mkEnableOption "Enable thunar.";};
config = lib.mkIf config.alyraffauf.apps.thunar.enable { config = lib.mkIf config.alyraffauf.apps.thunar.enable {
home.packages = with pkgs; [ home.packages = with pkgs; [
xfce.thunar xfce.thunar

View file

@ -4,8 +4,6 @@
config, config,
... ...
}: { }: {
options = {alyraffauf.apps.tmux.enable = lib.mkEnableOption "Enables tmux.";};
config = lib.mkIf config.alyraffauf.apps.tmux.enable { config = lib.mkIf config.alyraffauf.apps.tmux.enable {
programs.tmux = { programs.tmux = {
enable = true; enable = true;

View file

@ -4,10 +4,6 @@
config, config,
... ...
}: { }: {
options = {
alyraffauf.apps.vsCodium.enable = lib.mkEnableOption "Enables VSCodium.";
};
config = lib.mkIf config.alyraffauf.apps.vsCodium.enable { config = lib.mkIf config.alyraffauf.apps.vsCodium.enable {
alyraffauf.apps.alacritty.enable = lib.mkDefault true; alyraffauf.apps.alacritty.enable = lib.mkDefault true;
@ -18,22 +14,22 @@
enableExtensionUpdateCheck = false; enableExtensionUpdateCheck = false;
userSettings = { userSettings = {
"diffEditor.ignoreTrimWhitespace" = false; "diffEditor.ignoreTrimWhitespace" = false;
"editor.fontFamily" = "'NotoSansM Nerd Font','${config.alyraffauf.desktop.theme.terminalFont.name}', 'monospace', monospace"; "editor.fontFamily" = "'NotoSansM Nerd Font','${config.alyraffauf.theme.terminalFont.name}', 'monospace', monospace";
"explorer.confirmDelete" = false; "explorer.confirmDelete" = false;
"files.autoSave" = "afterDelay"; "files.autoSave" = "afterDelay";
"git.autofetch" = true; "git.autofetch" = true;
"git.confirmSync" = false; "git.confirmSync" = false;
"nix.formatterPath" = lib.getExe pkgs.alejandra; "nix.formatterPath" = lib.getExe pkgs.alejandra;
"terminal.external.linuxExec" = config.alyraffauf.desktop.defaultApps.terminal.exe; "terminal.external.linuxExec" = config.alyraffauf.defaultApps.terminal.exe;
"update.mode" = "none"; "update.mode" = "none";
"window.menuBarVisibility" = "hidden"; "window.menuBarVisibility" = "hidden";
"window.zoomPerWindow" = false; "window.zoomPerWindow" = false;
"workbench.colorTheme" = "workbench.colorTheme" =
if config.alyraffauf.desktop.theme.colors.preferDark if config.alyraffauf.theme.colors.preferDark
then "Catppuccin Frappé" then "Catppuccin Frappé"
else "Catppuccin Latte"; else "Catppuccin Latte";
"workbench.iconTheme" = "workbench.iconTheme" =
if config.alyraffauf.desktop.theme.colors.preferDark if config.alyraffauf.theme.colors.preferDark
then "catppuccin-frappe" then "catppuccin-frappe"
else "catppuccin-latte"; else "catppuccin-latte";
"workbench.preferredDarkColorTheme" = "Catppuccin Frappé"; "workbench.preferredDarkColorTheme" = "Catppuccin Frappé";

View file

@ -4,32 +4,30 @@
config, config,
... ...
}: { }: {
options = {alyraffauf.apps.waybar.enable = lib.mkEnableOption "Enables waybar.";};
config = lib.mkIf config.alyraffauf.apps.waybar.enable { config = lib.mkIf config.alyraffauf.apps.waybar.enable {
xdg.configFile."waybar/style.css".text = '' xdg.configFile."waybar/style.css".text = ''
* { * {
border: none; border: none;
border-radius: 0; border-radius: 0;
font-family: "${config.alyraffauf.desktop.theme.terminalFont.name}"; font-family: "${config.alyraffauf.theme.terminalFont.name}";
font-size: 14px; font-size: 14px;
font-weight: 600; font-weight: 600;
} }
window#waybar { window#waybar {
background: rgba (35, 38, 52, 0.0); background: rgba (35, 38, 52, 0.0);
color: ${config.alyraffauf.desktop.theme.colors.text}; color: ${config.alyraffauf.theme.colors.text};
} }
#workspaces button { #workspaces button {
padding: 0px 5px; padding: 0px 5px;
margin: 0 0px; margin: 0 0px;
color: ${config.alyraffauf.desktop.theme.colors.text}; color: ${config.alyraffauf.theme.colors.text};
} }
#workspaces button.active, #workspaces button.active,
#workspaces button.focused { #workspaces button.focused {
color: ${config.alyraffauf.desktop.theme.colors.primary}; color: ${config.alyraffauf.theme.colors.primary};
} }
#submap, #submap,
@ -42,11 +40,11 @@
#tags button { #tags button {
padding: 0px 5px; padding: 0px 5px;
margin: 0 0px; margin: 0 0px;
color: ${config.alyraffauf.desktop.theme.colors.text}; color: ${config.alyraffauf.theme.colors.text};
} }
#tags button.focused { #tags button.focused {
color: ${config.alyraffauf.desktop.theme.colors.primary}; color: ${config.alyraffauf.theme.colors.primary};
} }
#clock, #clock,
@ -66,11 +64,11 @@
} }
#battery { #battery {
color: ${config.alyraffauf.desktop.theme.colors.text}; color: ${config.alyraffauf.theme.colors.text};
} }
#battery.charging { #battery.charging {
color: ${config.alyraffauf.desktop.theme.colors.primary}; color: ${config.alyraffauf.theme.colors.primary};
} }
#battery.critical:not(.charging) { #battery.critical:not(.charging) {
@ -89,7 +87,7 @@
#hardware { #hardware {
border-radius: 10; border-radius: 10;
background: rgba ${ background: rgba ${
if config.alyraffauf.desktop.theme.colors.preferDark if config.alyraffauf.theme.colors.preferDark
then "(35, 38, 52, 0.8);" then "(35, 38, 52, 0.8);"
else "(220, 224, 232, 0.8);" else "(220, 224, 232, 0.8);"
} }
@ -103,7 +101,7 @@
#submap, #submap,
#mode { #mode {
color: ${config.alyraffauf.desktop.theme.colors.text}; color: ${config.alyraffauf.theme.colors.text};
background: rgba(231, 130, 132, 0.8); background: rgba(231, 130, 132, 0.8);
} }
''; '';
@ -232,7 +230,7 @@
"tooltip-format-wifi" = "{essid} ({signalStrength}%) {icon}"; "tooltip-format-wifi" = "{essid} ({signalStrength}%) {icon}";
"tooltip-format-ethernet" = "{ifname} "; "tooltip-format-ethernet" = "{ifname} ";
"tooltip-format-disconnected" = "Disconnected"; "tooltip-format-disconnected" = "Disconnected";
"on-click" = "${config.alyraffauf.desktop.defaultApps.terminalEditor.exe} --class nmtui -e ${pkgs.networkmanager}/bin/nmtui"; "on-click" = "${config.alyraffauf.defaultApps.terminalEditor.exe} --class nmtui -e ${pkgs.networkmanager}/bin/nmtui";
}; };
"tray" = {"spacing" = 15;}; "tray" = {"spacing" = 15;};
"custom/logout" = { "custom/logout" = {

View file

@ -4,8 +4,6 @@
config, config,
... ...
}: { }: {
options = {alyraffauf.apps.wlogout.enable = lib.mkEnableOption "Enables wlogout.";};
config = lib.mkIf config.alyraffauf.apps.wlogout.enable { config = lib.mkIf config.alyraffauf.apps.wlogout.enable {
programs.wlogout = { programs.wlogout = {
enable = true; enable = true;
@ -31,7 +29,7 @@
]; ];
style = '' style = ''
* { * {
font-family: "${config.alyraffauf.desktop.theme.font.name}", sans-serif; font-family: "${config.alyraffauf.theme.font.name}", sans-serif;
background-image: none; background-image: none;
box-shadow: none; box-shadow: none;
transition: 20ms; transition: 20ms;
@ -44,7 +42,7 @@
button { button {
text-decoration-color: #FAFAFA; text-decoration-color: #FAFAFA;
color: #FAFAFA; color: #FAFAFA;
background-color: ${config.alyraffauf.desktop.theme.colors.background}; background-color: ${config.alyraffauf.theme.colors.background};
background-color: rgba(12, 12, 12, 0.0); background-color: rgba(12, 12, 12, 0.0);
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: 10%; background-size: 10%;
@ -52,7 +50,7 @@
} }
button:active, button:hover { button:active, button:hover {
background-color: ${config.alyraffauf.desktop.theme.colors.primary}; background-color: ${config.alyraffauf.theme.colors.primary};
outline-style: none; outline-style: none;
} }

View file

@ -4,7 +4,15 @@ inputs: self: {
lib, lib,
... ...
}: { }: {
imports = [./apps ./desktop ./services ./scripts]; imports = [
./apps
./defaultApps.nix
./desktop
./options.nix
./scripts
./services
./theme.nix
];
nixpkgs = { nixpkgs = {
config = { config = {

View file

@ -0,0 +1,48 @@
{
pkgs,
lib,
config,
...
}: {
config = lib.mkIf config.alyraffauf.defaultApps.enable {
home.packages = with config.alyraffauf.defaultApps; [
audioPlayer.package
editor.package
imageViewer.package
pdfEditor.package
terminalEditor.package
videoPlayer.package
webBrowser.package
];
xdg.mimeApps = {
enable = true;
defaultApplications = {
"application/pdf" = config.alyraffauf.defaultApps.pdfEditor.desktop;
"application/x-shellscript" = config.alyraffauf.defaultApps.editor.desktop;
"application/xhtml+xml" = config.alyraffauf.defaultApps.webBrowser.desktop;
"audio/flac" = config.alyraffauf.defaultApps.audioPlayer.desktop;
"audio/mpeg" = config.alyraffauf.defaultApps.audioPlayer.desktop;
"audio/opus" = config.alyraffauf.defaultApps.audioPlayer.desktop;
"image/jpeg" = config.alyraffauf.defaultApps.imageViewer.desktop;
"image/png" = config.alyraffauf.defaultApps.imageViewer.desktop;
"text/html" = config.alyraffauf.defaultApps.webBrowser.desktop;
"text/plain" = config.alyraffauf.defaultApps.editor.desktop;
"text/x-python" = config.alyraffauf.defaultApps.editor.desktop;
"text/xml" = config.alyraffauf.defaultApps.webBrowser.desktop;
"video/H264" = config.alyraffauf.defaultApps.videoPlayer.desktop;
"video/mp4" = config.alyraffauf.defaultApps.videoPlayer.desktop;
"video/mpeg" = config.alyraffauf.defaultApps.videoPlayer.desktop;
"video/ogg" = config.alyraffauf.defaultApps.videoPlayer.desktop;
"video/x-matroska" = config.alyraffauf.defaultApps.videoPlayer.desktop;
"x-scheme-handler/ftp" = config.alyraffauf.defaultApps.webBrowser.desktop;
"x-scheme-handler/http" = config.alyraffauf.defaultApps.webBrowser.desktop;
"x-scheme-handler/https" = config.alyraffauf.defaultApps.webBrowser.desktop;
};
};
home.sessionVariables = {
BROWSER = "${config.alyraffauf.defaultApps.webBrowser.exe}";
EDITOR = "${config.alyraffauf.defaultApps.terminalEditor.exe}";
TERMINAL = "${config.alyraffauf.defaultApps.terminal.exe}";
};
};
}

View file

@ -4,35 +4,30 @@
config, config,
... ...
}: { }: {
options = {
alyraffauf.desktop.cinnamon.enable =
lib.mkEnableOption "Cinnamon with sane defaults.";
};
config = lib.mkIf config.alyraffauf.desktop.cinnamon.enable { config = lib.mkIf config.alyraffauf.desktop.cinnamon.enable {
dconf.enable = true; dconf.enable = true;
dconf.settings = { dconf.settings = {
"org/cinnamon/desktop/background".picture-uri = "file://${config.alyraffauf.desktop.theme.wallpaper}"; "org/cinnamon/desktop/background".picture-uri = "file://${config.alyraffauf.theme.wallpaper}";
"org/cinnamon/desktop/interface".cursor-size = config.alyraffauf.desktop.theme.cursorTheme.size; "org/cinnamon/desktop/interface".cursor-size = config.alyraffauf.theme.cursorTheme.size;
"org/cinnamon/desktop/interface".cursor-theme = config.alyraffauf.desktop.theme.cursorTheme.name; "org/cinnamon/desktop/interface".cursor-theme = config.alyraffauf.theme.cursorTheme.name;
"org/cinnamon/desktop/interface".font-name = "${config.alyraffauf.desktop.theme.font.name} Regular ${toString config.alyraffauf.desktop.theme.font.size}"; "org/cinnamon/desktop/interface".font-name = "${config.alyraffauf.theme.font.name} Regular ${toString config.alyraffauf.theme.font.size}";
"org/cinnamon/desktop/interface".gtk-theme = config.alyraffauf.desktop.theme.gtk.name; "org/cinnamon/desktop/interface".gtk-theme = config.alyraffauf.theme.gtk.name;
"org/cinnamon/desktop/interface".icon-theme = config.alyraffauf.desktop.theme.iconTheme.name; "org/cinnamon/desktop/interface".icon-theme = config.alyraffauf.theme.iconTheme.name;
"org/cinnamon/desktop/wm/preferences".titlebar-font = "${config.alyraffauf.desktop.theme.font.name} ${toString config.alyraffauf.desktop.theme.font.size}"; "org/cinnamon/desktop/wm/preferences".titlebar-font = "${config.alyraffauf.theme.font.name} ${toString config.alyraffauf.theme.font.size}";
"org/cinnamon/gestures".enabled = true; "org/cinnamon/gestures".enabled = true;
"org/cinnamon/muffin".workspace-cycle = true; "org/cinnamon/muffin".workspace-cycle = true;
"org/cinnamon/muffin".workspaces-only-on-primary = true; "org/cinnamon/muffin".workspaces-only-on-primary = true;
"org/cinnamon/settings-daemon/peripherals/touchscreen".orientation-lock = false; "org/cinnamon/settings-daemon/peripherals/touchscreen".orientation-lock = false;
"org/cinnamon/theme".name = config.alyraffauf.desktop.theme.gtk.name; "org/cinnamon/theme".name = config.alyraffauf.theme.gtk.name;
"org/gnome/desktop/interface".gtk-theme = config.alyraffauf.desktop.theme.gtk.name; "org/gnome/desktop/interface".gtk-theme = config.alyraffauf.theme.gtk.name;
"org/gnome/desktop/interface".cursor-size = config.alyraffauf.desktop.theme.cursorTheme.size; "org/gnome/desktop/interface".cursor-size = config.alyraffauf.theme.cursorTheme.size;
"org/gnome/desktop/interface".cursor-theme = config.alyraffauf.desktop.theme.cursorTheme.name; "org/gnome/desktop/interface".cursor-theme = config.alyraffauf.theme.cursorTheme.name;
"org/gnome/desktop/interface".icon-theme = config.alyraffauf.desktop.theme.iconTheme.name; "org/gnome/desktop/interface".icon-theme = config.alyraffauf.theme.iconTheme.name;
"org/gnome/desktop/interface".monospace-font-name = "${config.alyraffauf.desktop.theme.terminalFont.name} Regular ${toString config.alyraffauf.desktop.theme.terminalFont.size}"; "org/gnome/desktop/interface".monospace-font-name = "${config.alyraffauf.theme.terminalFont.name} Regular ${toString config.alyraffauf.theme.terminalFont.size}";
"org/gnome/desktop/peripherals/touchpad".natural-scroll = true; "org/gnome/desktop/peripherals/touchpad".natural-scroll = true;
"org/gnome/desktop/peripherals/touchpad".tap-to-click = true; "org/gnome/desktop/peripherals/touchpad".tap-to-click = true;
"org/gnome/desktop/wm/preferences".titlebar-font = "${config.alyraffauf.desktop.theme.font.name} ${toString config.alyraffauf.desktop.theme.font.size}"; "org/gnome/desktop/wm/preferences".titlebar-font = "${config.alyraffauf.theme.font.name} ${toString config.alyraffauf.theme.font.size}";
"org/nemo/desktop".font = "${config.alyraffauf.desktop.theme.font.name} ${toString config.alyraffauf.desktop.theme.font.size}"; "org/nemo/desktop".font = "${config.alyraffauf.theme.font.name} ${toString config.alyraffauf.theme.font.size}";
}; };
}; };
} }

View file

@ -6,11 +6,9 @@
}: { }: {
imports = [ imports = [
./cinnamon ./cinnamon
./defaultApps.nix
./gnome ./gnome
./hyprland ./hyprland
./sway ./sway
./theme.nix
./waylandComp.nix ./waylandComp.nix
]; ];
} }

View file

@ -1,191 +0,0 @@
{
pkgs,
lib,
config,
...
}: {
options = {
alyraffauf.desktop.defaultApps = {
enable =
lib.mkEnableOption "GTK and Qt themes.";
webBrowser = {
exe = lib.mkOption {
description = "Default web browser executable name.";
default = lib.getExe config.alyraffauf.desktop.defaultApps.webBrowser.package;
type = lib.types.str;
};
desktop = lib.mkOption {
description = "Default web browser desktop file name.";
default = "firefox.desktop";
type = lib.types.str;
};
package = lib.mkOption {
description = "Default web browser package.";
default = config.programs.firefox.package;
type = lib.types.package;
};
};
editor = {
exe = lib.mkOption {
description = "Default editor executable name.";
default = lib.getExe config.alyraffauf.desktop.defaultApps.editor.package;
type = lib.types.str;
};
desktop = lib.mkOption {
description = "Default editor desktop file name.";
default = "codium.desktop";
type = lib.types.str;
};
package = lib.mkOption {
description = "Default editor package.";
default = config.programs.vscode.package;
type = lib.types.package;
};
};
terminalEditor = {
exe = lib.mkOption {
description = "Default terminal editor executable name.";
default = lib.getExe config.alyraffauf.desktop.defaultApps.terminalEditor.package;
type = lib.types.str;
};
desktop = lib.mkOption {
description = "Default terminal editor desktop file name.";
default = "nvim.desktop";
type = lib.types.str;
};
package = lib.mkOption {
description = "Default terminal editor package.";
default = config.programs.neovim.package;
type = lib.types.package;
};
};
terminal = {
exe = lib.mkOption {
description = "Default terminal executable name.";
default = lib.getExe config.alyraffauf.desktop.defaultApps.terminal.package;
type = lib.types.str;
};
desktop = lib.mkOption {
description = "Default terminal desktop file name.";
default = "alacritty.desktop";
type = lib.types.str;
};
package = lib.mkOption {
description = "Default terminal package.";
default = config.programs.alacritty.package;
type = lib.types.package;
};
};
pdfEditor = {
exe = lib.mkOption {
description = "Default PDF editor executable name.";
default = lib.getExe config.alyraffauf.desktop.defaultApps.pdfEditor.package;
type = lib.types.str;
};
desktop = lib.mkOption {
description = "Default PDF Editor desktop file name.";
default = "org.gnome.Evince.desktop";
type = lib.types.str;
};
package = lib.mkOption {
description = "Default PDF Editor package.";
default = pkgs.evince;
type = lib.types.package;
};
};
imageViewer = {
exe = lib.mkOption {
description = "Default image viewer executable name.";
default = lib.getExe config.alyraffauf.desktop.defaultApps.imageViewer.package;
type = lib.types.str;
};
desktop = lib.mkOption {
description = "Default image viewer desktop file name.";
default = "org.gnome.eog.desktop";
type = lib.types.str;
};
package = lib.mkOption {
description = "Default image viewer package.";
default = pkgs.gnome.eog;
type = lib.types.package;
};
};
videoPlayer = {
exe = lib.mkOption {
description = "Default video player executable name.";
default = lib.getExe config.alyraffauf.desktop.defaultApps.videoPlayer.package;
type = lib.types.str;
};
desktop = lib.mkOption {
description = "Default video player desktop file name.";
default = "io.github.celluloid_player.Celluloid.desktop";
type = lib.types.str;
};
package = lib.mkOption {
description = "Default video player package.";
default = pkgs.celluloid;
type = lib.types.package;
};
};
audioPlayer = {
exe = lib.mkOption {
description = "Default audio player executable name.";
default = lib.getExe config.alyraffauf.desktop.defaultApps.audioPlayer.package;
type = lib.types.str;
};
desktop = lib.mkOption {
description = "Default audio player desktop file name.";
default = config.alyraffauf.desktop.defaultApps.videoPlayer.desktop;
type = lib.types.str;
};
package = lib.mkOption {
description = "Default audio player package.";
default = config.alyraffauf.desktop.defaultApps.videoPlayer.package;
type = lib.types.package;
};
};
};
};
config = lib.mkIf config.alyraffauf.desktop.defaultApps.enable {
home.packages = with config.alyraffauf.desktop.defaultApps; [
audioPlayer.package
editor.package
imageViewer.package
pdfEditor.package
terminalEditor.package
videoPlayer.package
webBrowser.package
];
xdg.mimeApps = {
enable = true;
defaultApplications = {
"application/pdf" = config.alyraffauf.desktop.defaultApps.pdfEditor.desktop;
"application/x-shellscript" = config.alyraffauf.desktop.defaultApps.editor.desktop;
"application/xhtml+xml" = config.alyraffauf.desktop.defaultApps.webBrowser.desktop;
"audio/flac" = config.alyraffauf.desktop.defaultApps.audioPlayer.desktop;
"audio/mpeg" = config.alyraffauf.desktop.defaultApps.audioPlayer.desktop;
"audio/opus" = config.alyraffauf.desktop.defaultApps.audioPlayer.desktop;
"image/jpeg" = config.alyraffauf.desktop.defaultApps.imageViewer.desktop;
"image/png" = config.alyraffauf.desktop.defaultApps.imageViewer.desktop;
"text/html" = config.alyraffauf.desktop.defaultApps.webBrowser.desktop;
"text/plain" = config.alyraffauf.desktop.defaultApps.editor.desktop;
"text/x-python" = config.alyraffauf.desktop.defaultApps.editor.desktop;
"text/xml" = config.alyraffauf.desktop.defaultApps.webBrowser.desktop;
"video/H264" = config.alyraffauf.desktop.defaultApps.videoPlayer.desktop;
"video/mp4" = config.alyraffauf.desktop.defaultApps.videoPlayer.desktop;
"video/mpeg" = config.alyraffauf.desktop.defaultApps.videoPlayer.desktop;
"video/ogg" = config.alyraffauf.desktop.defaultApps.videoPlayer.desktop;
"video/x-matroska" = config.alyraffauf.desktop.defaultApps.videoPlayer.desktop;
"x-scheme-handler/ftp" = config.alyraffauf.desktop.defaultApps.webBrowser.desktop;
"x-scheme-handler/http" = config.alyraffauf.desktop.defaultApps.webBrowser.desktop;
"x-scheme-handler/https" = config.alyraffauf.desktop.defaultApps.webBrowser.desktop;
};
};
home.sessionVariables = {
BROWSER = "${config.alyraffauf.desktop.defaultApps.webBrowser.exe}";
EDITOR = "${config.alyraffauf.desktop.defaultApps.terminalEditor.exe}";
TERMINAL = "${config.alyraffauf.desktop.defaultApps.terminal.exe}";
};
};
}

View file

@ -4,11 +4,6 @@
config, config,
... ...
}: { }: {
options = {
alyraffauf.desktop.gnome.enable =
lib.mkEnableOption "Enables GNOME with basic settings configuration.";
};
config = lib.mkIf config.alyraffauf.desktop.gnome.enable { config = lib.mkIf config.alyraffauf.desktop.gnome.enable {
dconf.enable = true; dconf.enable = true;
dconf.settings = { dconf.settings = {

View file

@ -4,46 +4,6 @@
config, config,
... ...
}: { }: {
options = {
alyraffauf.desktop.hyprland = {
enable =
lib.mkEnableOption "Enables hyprland with extra apps.";
autoSuspend = lib.mkOption {
description = "Whether to autosuspend on idle.";
default = config.alyraffauf.desktop.hyprland.enable;
type = lib.types.bool;
};
randomWallpaper = lib.mkOption {
description = "Whether to enable random wallpaper script.";
default = config.alyraffauf.desktop.hyprland.enable;
type = lib.types.bool;
};
redShift = lib.mkOption {
description = "Whether to redshift display colors at night.";
default = config.alyraffauf.desktop.hyprland.enable;
type = lib.types.bool;
};
tabletMode = {
enable = lib.mkEnableOption "Tablet mode for hyprland.";
autoRotate = lib.mkOption {
description = "Whether to autorotate screen.";
default = config.alyraffauf.desktop.hyprland.tabletMode.enable;
type = lib.types.bool;
};
menuButton = lib.mkOption {
description = "Whether to add menu button for waybar.";
default = config.alyraffauf.desktop.hyprland.tabletMode.enable;
type = lib.types.bool;
};
virtKeyboard = lib.mkOption {
description = "Whether to enable dynamic virtual keyboard.";
default = config.alyraffauf.desktop.hyprland.tabletMode.enable;
type = lib.types.bool;
};
};
};
};
config = lib.mkIf config.alyraffauf.desktop.hyprland.enable { config = lib.mkIf config.alyraffauf.desktop.hyprland.enable {
alyraffauf = { alyraffauf = {
desktop = { desktop = {
@ -79,14 +39,14 @@
# Default apps # Default apps
defaultApps = { defaultApps = {
browser = config.alyraffauf.desktop.defaultApps.webBrowser.exe; browser = config.alyraffauf.defaultApps.webBrowser.exe;
editor = config.alyraffauf.desktop.defaultApps.editor.exe; editor = config.alyraffauf.defaultApps.editor.exe;
fileManager = lib.getExe pkgs.xfce.thunar; fileManager = lib.getExe pkgs.xfce.thunar;
launcher = lib.getExe pkgs.fuzzel; launcher = lib.getExe pkgs.fuzzel;
lock = lib.getExe pkgs.swaylock; lock = lib.getExe pkgs.swaylock;
logout = lib.getExe pkgs.wlogout; logout = lib.getExe pkgs.wlogout;
passwordManager = lib.getExe' pkgs.keepassxc "keepassxc"; passwordManager = lib.getExe' pkgs.keepassxc "keepassxc";
terminal = config.alyraffauf.desktop.defaultApps.terminal.exe; terminal = config.alyraffauf.defaultApps.terminal.exe;
virtKeyboard = lib.getExe' pkgs.squeekboard "squeekboard"; virtKeyboard = lib.getExe' pkgs.squeekboard "squeekboard";
}; };
@ -119,7 +79,7 @@
done done
fi fi
'' ''
else "${lib.getExe pkgs.swaybg} -i ${config.alyraffauf.desktop.theme.wallpaper}"; else "${lib.getExe pkgs.swaybg} -i ${config.alyraffauf.theme.wallpaper}";
startupApps = startupApps =
[ [
@ -268,7 +228,7 @@
env = GDK_SCALE,${gdk_scale} env = GDK_SCALE,${gdk_scale}
# Some default env vars. # Some default env vars.
env = XCURSOR_SIZE,${toString config.alyraffauf.desktop.theme.cursorTheme.size} env = XCURSOR_SIZE,${toString config.alyraffauf.theme.cursorTheme.size}
env = QT_QPA_PLATFORMTHEME,qt6ct env = QT_QPA_PLATFORMTHEME,qt6ct
# Execute necessary apps # Execute necessary apps
@ -303,8 +263,8 @@
gaps_in = 5 gaps_in = 5
gaps_out = 6 gaps_out = 6
border_size = 2 border_size = 2
col.active_border = rgba(${lib.strings.removePrefix "#" config.alyraffauf.desktop.theme.colors.secondary}EE) rgba(${lib.strings.removePrefix "#" config.alyraffauf.desktop.theme.colors.primary}EE) 45deg col.active_border = rgba(${lib.strings.removePrefix "#" config.alyraffauf.theme.colors.secondary}EE) rgba(${lib.strings.removePrefix "#" config.alyraffauf.theme.colors.primary}EE) 45deg
col.inactive_border = rgba(${lib.strings.removePrefix "#" config.alyraffauf.desktop.theme.colors.inactive}AA) col.inactive_border = rgba(${lib.strings.removePrefix "#" config.alyraffauf.theme.colors.inactive}AA)
layout = dwindle layout = dwindle
@ -321,7 +281,7 @@
drop_shadow = yes drop_shadow = yes
shadow_range = 4 shadow_range = 4
shadow_render_power = 3 shadow_render_power = 3
col.shadow = rgba(${lib.strings.removePrefix "#" config.alyraffauf.desktop.theme.colors.shadow}EE) col.shadow = rgba(${lib.strings.removePrefix "#" config.alyraffauf.theme.colors.shadow}EE)
dim_special = 0.5 dim_special = 0.5

View file

@ -48,7 +48,7 @@
wayland.windowManager.sway.wrapperFeatures.gtk = true; wayland.windowManager.sway.wrapperFeatures.gtk = true;
wayland.windowManager.sway.checkConfig = false; wayland.windowManager.sway.checkConfig = false;
alyraffauf.desktop.theme.gtk.hideTitleBar = alyraffauf.theme.gtk.hideTitleBar =
if config.wayland.windowManager.sway.package == pkgs.sway if config.wayland.windowManager.sway.package == pkgs.sway
then true then true
else false; else false;
@ -58,10 +58,10 @@
swaymsg = lib.getExe' config.wayland.windowManager.sway.package "swaymsg"; swaymsg = lib.getExe' config.wayland.windowManager.sway.package "swaymsg";
# Default apps # Default apps
browser = config.alyraffauf.desktop.defaultApps.webBrowser.exe; browser = config.alyraffauf.defaultApps.webBrowser.exe;
fileManager = lib.getExe pkgs.xfce.thunar; fileManager = lib.getExe pkgs.xfce.thunar;
editor = config.alyraffauf.desktop.defaultApps.editor.exe; editor = config.alyraffauf.defaultApps.editor.exe;
terminal = config.alyraffauf.desktop.defaultApps.terminal.exe; terminal = config.alyraffauf.defaultApps.terminal.exe;
brightness = lib.getExe' pkgs.swayosd "swayosd-client"; brightness = lib.getExe' pkgs.swayosd "swayosd-client";
brightness_up = "${brightness} --brightness=raise"; brightness_up = "${brightness} --brightness=raise";
@ -80,7 +80,7 @@
bar = lib.getExe pkgs.waybar; bar = lib.getExe pkgs.waybar;
launcher = lib.getExe pkgs.fuzzel; launcher = lib.getExe pkgs.fuzzel;
notifyd = lib.getExe pkgs.mako; notifyd = lib.getExe pkgs.mako;
wallpaperd = "${lib.getExe pkgs.swaybg} -i ${config.alyraffauf.desktop.theme.wallpaper}"; wallpaperd = "${lib.getExe pkgs.swaybg} -i ${config.alyraffauf.theme.wallpaper}";
logout = lib.getExe pkgs.wlogout; logout = lib.getExe pkgs.wlogout;
lock = lib.getExe pkgs.swaylock; lock = lib.getExe pkgs.swaylock;
idled = pkgs.writeShellScript "sway-idled" '' idled = pkgs.writeShellScript "sway-idled" ''
@ -121,27 +121,27 @@
in { in {
bars = [{command = "${bar}";}]; bars = [{command = "${bar}";}];
modifier = "${modifier}"; modifier = "${modifier}";
colors.background = "${config.alyraffauf.desktop.theme.colors.primary}EE"; colors.background = "${config.alyraffauf.theme.colors.primary}EE";
colors.focused = { colors.focused = {
background = "${config.alyraffauf.desktop.theme.colors.primary}EE"; background = "${config.alyraffauf.theme.colors.primary}EE";
border = "${config.alyraffauf.desktop.theme.colors.primary}EE"; border = "${config.alyraffauf.theme.colors.primary}EE";
childBorder = "${config.alyraffauf.desktop.theme.colors.primary}EE"; childBorder = "${config.alyraffauf.theme.colors.primary}EE";
indicator = "${config.alyraffauf.desktop.theme.colors.primary}EE"; indicator = "${config.alyraffauf.theme.colors.primary}EE";
text = "${config.alyraffauf.desktop.theme.colors.text}"; text = "${config.alyraffauf.theme.colors.text}";
}; };
colors.focusedInactive = { colors.focusedInactive = {
background = "${config.alyraffauf.desktop.theme.colors.inactive}AA"; background = "${config.alyraffauf.theme.colors.inactive}AA";
border = "${config.alyraffauf.desktop.theme.colors.inactive}AA"; border = "${config.alyraffauf.theme.colors.inactive}AA";
childBorder = "${config.alyraffauf.desktop.theme.colors.inactive}AA"; childBorder = "${config.alyraffauf.theme.colors.inactive}AA";
indicator = "${config.alyraffauf.desktop.theme.colors.inactive}AA"; indicator = "${config.alyraffauf.theme.colors.inactive}AA";
text = "${config.alyraffauf.desktop.theme.colors.text}"; text = "${config.alyraffauf.theme.colors.text}";
}; };
colors.unfocused = { colors.unfocused = {
background = "${config.alyraffauf.desktop.theme.colors.inactive}AA"; background = "${config.alyraffauf.theme.colors.inactive}AA";
border = "${config.alyraffauf.desktop.theme.colors.inactive}AA"; border = "${config.alyraffauf.theme.colors.inactive}AA";
childBorder = "${config.alyraffauf.desktop.theme.colors.inactive}AA"; childBorder = "${config.alyraffauf.theme.colors.inactive}AA";
indicator = "${config.alyraffauf.desktop.theme.colors.inactive}AA"; indicator = "${config.alyraffauf.theme.colors.inactive}AA";
text = "${config.alyraffauf.desktop.theme.colors.text}"; text = "${config.alyraffauf.theme.colors.text}";
}; };
defaultWorkspace = "workspace number 1"; defaultWorkspace = "workspace number 1";
focus = { focus = {
@ -150,9 +150,9 @@
# mouseWarping = "container"; # mouseWarping = "container";
}; };
fonts = { fonts = {
names = ["${config.alyraffauf.desktop.theme.font.name}"]; names = ["${config.alyraffauf.theme.font.name}"];
style = "Bold"; style = "Bold";
size = config.alyraffauf.desktop.theme.font.size + 0.0; size = config.alyraffauf.theme.font.size + 0.0;
}; };
gaps.inner = 5; gaps.inner = 5;
gaps.outer = 5; gaps.outer = 5;
@ -459,7 +459,7 @@
corner_radius 10 corner_radius 10
shadows enable shadows enable
shadows_on_csd enable shadows_on_csd enable
shadow_color ${config.alyraffauf.desktop.theme.colors.shadow} shadow_color ${config.alyraffauf.theme.colors.shadow}
default_dim_inactive 0.05 default_dim_inactive 0.05

View file

@ -1,242 +0,0 @@
{
pkgs,
lib,
config,
...
}: {
options = {
alyraffauf.desktop.theme = {
enable =
lib.mkEnableOption "GTK and Qt themes.";
gtk = {
name = lib.mkOption {
description = "GTK theme name.";
default = "Catppuccin-Frappe-Compact-Mauve-Dark";
type = lib.types.str;
};
package = lib.mkOption {
description = "GTK theme package.";
default = pkgs.catppuccin-gtk;
type = lib.types.package;
};
hideTitleBar = lib.mkOption {
description = "Whether to hide GTK3/4 titlebars (useful for some window managers).";
default = false;
type = lib.types.bool;
};
};
qt = {
name = lib.mkOption {
description = "Qt Kvantum theme name.";
default = "Catppuccin-Frappe-Mauve";
type = lib.types.str;
};
package = lib.mkOption {
description = "Qt Kvantum theme package.";
default = pkgs.catppuccin-kvantum;
type = lib.types.package;
};
};
iconTheme = {
name = lib.mkOption {
description = "Icon theme name.";
default = "Papirus-Dark";
type = lib.types.str;
};
package = lib.mkOption {
description = "Icon theme package.";
default = pkgs.catppuccin-papirus-folders;
type = lib.types.package;
};
};
cursorTheme = {
name = lib.mkOption {
description = "Cursor theme name.";
default = "Catppuccin-Frappe-Dark-Cursors";
type = lib.types.str;
};
size = lib.mkOption {
description = "Cursor size.";
default = 24;
type = lib.types.int;
};
package = lib.mkOption {
description = "Cursor theme package.";
default = pkgs.catppuccin-cursors.frappeDark;
type = lib.types.package;
};
};
font = {
name = lib.mkOption {
description = "Font name.";
default = "NotoSans Nerd Font";
type = lib.types.str;
};
size = lib.mkOption {
description = "Font size.";
default = 11;
type = lib.types.int;
};
package = lib.mkOption {
description = "Font package.";
default = pkgs.nerdfonts;
type = lib.types.package;
};
};
terminalFont = {
name = lib.mkOption {
description = "Font name.";
default = "NotoSansM Nerd Font";
type = lib.types.str;
};
size = lib.mkOption {
description = "Font size.";
default = 11;
type = lib.types.int;
};
package = lib.mkOption {
description = "Font package.";
default = pkgs.nerdfonts;
type = lib.types.package;
};
};
colors = {
preferDark = lib.mkOption {
description = "Whether to prefer dark mode apps or not.";
default = config.alyraffauf.desktop.theme.enable;
type = lib.types.bool;
};
text = lib.mkOption {
description = "Text color.";
default = "#FAFAFA";
type = lib.types.str;
};
background = lib.mkOption {
description = "Background color.";
default = "#232634";
type = lib.types.str;
};
primary = lib.mkOption {
description = "Primary color.";
default = "#CA9EE6";
type = lib.types.str;
};
secondary = lib.mkOption {
description = "Secondary color.";
default = "#99D1DB";
type = lib.types.str;
};
inactive = lib.mkOption {
description = "Inactive color.";
default = "#626880";
type = lib.types.str;
};
shadow = lib.mkOption {
description = "Drop shadow color.";
default = "#1A1A1A";
type = lib.types.str;
};
};
wallpaper = lib.mkOption {
description = "Default wallpaper.";
default = "${config.xdg.dataHome}/backgrounds/jr-korpa-9XngoIpxcEo-unsplash.jpg";
type = lib.types.str;
};
};
};
config = lib.mkIf config.alyraffauf.desktop.theme.enable {
home.pointerCursor = {
gtk.enable = true;
x11 = {
enable = true;
defaultCursor = config.alyraffauf.desktop.theme.cursorTheme.name;
};
name = config.alyraffauf.desktop.theme.cursorTheme.name;
package = config.alyraffauf.desktop.theme.cursorTheme.package;
size = config.alyraffauf.desktop.theme.cursorTheme.size;
};
qt = {
enable = true;
platformTheme.name = "qtct";
style.name = "kvantum";
};
xdg.configFile = {
"Kvantum/${config.alyraffauf.desktop.theme.qt.name}".source = "${config.alyraffauf.desktop.theme.qt.package}/share/Kvantum/${config.alyraffauf.desktop.theme.qt.name}";
"Kvantum/kvantum.kvconfig".source = (pkgs.formats.ini {}).generate "kvantum.kvconfig" {
General.theme = config.alyraffauf.desktop.theme.qt.name;
};
};
fonts.fontconfig = {
enable = true;
defaultFonts = {
monospace = [config.alyraffauf.desktop.theme.terminalFont.name];
serif = ["NotoSerif Nerd Font"];
sansSerif = [config.alyraffauf.desktop.theme.font.name];
};
};
gtk = {
enable = true;
theme = {
package = config.alyraffauf.desktop.theme.gtk.package;
name = config.alyraffauf.desktop.theme.gtk.name;
};
iconTheme = {
package = config.alyraffauf.desktop.theme.iconTheme.package;
name = config.alyraffauf.desktop.theme.iconTheme.name;
};
font = {
name = "${config.alyraffauf.desktop.theme.font.name} Regular";
package = config.alyraffauf.desktop.theme.font.package;
size = config.alyraffauf.desktop.theme.font.size;
};
gtk3.extraConfig = lib.attrsets.optionalAttrs (config.alyraffauf.desktop.theme.colors.preferDark) {gtk-application-prefer-dark-theme = 1;};
gtk4.extraConfig = lib.attrsets.optionalAttrs (config.alyraffauf.desktop.theme.colors.preferDark) {gtk-application-prefer-dark-theme = 1;};
gtk3.extraCss =
if config.alyraffauf.desktop.theme.gtk.hideTitleBar
then ''
/* No (default) title bar on wayland */
headerbar.default-decoration {
/* You may need to tweak these values depending on your GTK theme */
margin-bottom: 50px;
margin-top: -100px;
background: transparent;
padding: 0;
border: 0;
min-height: 0;
font-size: 0;
box-shadow: none;
}
/* rm -rf window shadows */
window.csd, /* gtk4? */
window.csd decoration { /* gtk3 */
box-shadow: none;
}
''
else "/* */";
gtk4.extraCss = config.gtk.gtk3.extraCss;
};
dconf.settings = {
"org/gnome/desktop/interface" = {
gtk-theme = config.alyraffauf.desktop.theme.gtk.name;
color-scheme = "prefer-dark";
cursor-theme = config.alyraffauf.desktop.theme.cursorTheme.name;
cursor-size = config.alyraffauf.desktop.theme.cursorTheme.size;
};
};
};
}

View file

@ -4,11 +4,6 @@
config, config,
... ...
}: { }: {
options = {
alyraffauf.desktop.waylandComp =
lib.mkEnableOption "Shared configuration for wayland compositors.";
};
config = lib.mkIf config.alyraffauf.desktop.waylandComp { config = lib.mkIf config.alyraffauf.desktop.waylandComp {
home.packages = with pkgs; [ home.packages = with pkgs; [
swayosd swayosd
@ -23,10 +18,8 @@
waybar.enable = lib.mkDefault true; waybar.enable = lib.mkDefault true;
wlogout.enable = lib.mkDefault true; wlogout.enable = lib.mkDefault true;
}; };
desktop = { theme.enable = lib.mkDefault true;
theme.enable = lib.mkDefault true; defaultApps.enable = lib.mkDefault true;
defaultApps.enable = lib.mkDefault true;
};
}; };
dconf = { dconf = {

View file

@ -0,0 +1,386 @@
{
pkgs,
lib,
config,
...
}: {
options = {
alyraffauf = {
apps = {
alacritty.enable = lib.mkEnableOption "Alacritty terminal.";
bash.enable = lib.mkEnableOption "Bash defaults.";
chromium = {
enable = lib.mkEnableOption "Chromium-based browser with default extensions.";
package = lib.mkOption {
description = "Package for Chromium.";
default = pkgs.brave;
type = lib.types.package;
};
};
emacs.enable = lib.mkEnableOption "Emacs text editor.";
eza.enable = lib.mkEnableOption "Eza ls alternative.";
fastfetch.enable = lib.mkEnableOption "Fastfetch.";
firefox.enable = lib.mkEnableOption "Firefox web browser.";
fuzzel.enable = lib.mkEnableOption "Fuzzel app launcher.";
fzf.enable = lib.mkEnableOption "Fzf fuzzy file finder.";
librewolf.enable = lib.mkEnableOption "Librewolf web browser.";
mako.enable = lib.mkEnableOption "Mako notification daemon.";
neofetch.enable = lib.mkEnableOption "Neofetch.";
neovim.enable = lib.mkEnableOption "Neovim text editor.";
swaylock.enable = lib.mkEnableOption "Swaylock screen locker.";
thunar.enable = lib.mkEnableOption "Thunar file manager.";
tmux.enable = lib.mkEnableOption "Tmux shell session manager.";
vsCodium.enable = lib.mkEnableOption "VSCodium text editor.";
waybar.enable = lib.mkEnableOption "Waybar wayland panel.";
wlogout.enable = lib.mkEnableOption "Wlogout session prompt.";
};
defaultApps = {
enable =
lib.mkEnableOption "GTK and Qt themes.";
webBrowser = {
exe = lib.mkOption {
description = "Default web browser executable name.";
default = lib.getExe config.alyraffauf.defaultApps.webBrowser.package;
type = lib.types.str;
};
desktop = lib.mkOption {
description = "Default web browser desktop file name.";
default = "firefox.desktop";
type = lib.types.str;
};
package = lib.mkOption {
description = "Default web browser package.";
default = config.programs.firefox.package;
type = lib.types.package;
};
};
editor = {
exe = lib.mkOption {
description = "Default editor executable name.";
default = lib.getExe config.alyraffauf.defaultApps.editor.package;
type = lib.types.str;
};
desktop = lib.mkOption {
description = "Default editor desktop file name.";
default = "codium.desktop";
type = lib.types.str;
};
package = lib.mkOption {
description = "Default editor package.";
default = config.programs.vscode.package;
type = lib.types.package;
};
};
terminalEditor = {
exe = lib.mkOption {
description = "Default terminal editor executable name.";
default = lib.getExe config.alyraffauf.defaultApps.terminalEditor.package;
type = lib.types.str;
};
desktop = lib.mkOption {
description = "Default terminal editor desktop file name.";
default = "nvim.desktop";
type = lib.types.str;
};
package = lib.mkOption {
description = "Default terminal editor package.";
default = config.programs.neovim.package;
type = lib.types.package;
};
};
terminal = {
exe = lib.mkOption {
description = "Default terminal executable name.";
default = lib.getExe config.alyraffauf.defaultApps.terminal.package;
type = lib.types.str;
};
desktop = lib.mkOption {
description = "Default terminal desktop file name.";
default = "alacritty.desktop";
type = lib.types.str;
};
package = lib.mkOption {
description = "Default terminal package.";
default = config.programs.alacritty.package;
type = lib.types.package;
};
};
pdfEditor = {
exe = lib.mkOption {
description = "Default PDF editor executable name.";
default = lib.getExe config.alyraffauf.defaultApps.pdfEditor.package;
type = lib.types.str;
};
desktop = lib.mkOption {
description = "Default PDF Editor desktop file name.";
default = "org.gnome.Evince.desktop";
type = lib.types.str;
};
package = lib.mkOption {
description = "Default PDF Editor package.";
default = pkgs.evince;
type = lib.types.package;
};
};
imageViewer = {
exe = lib.mkOption {
description = "Default image viewer executable name.";
default = lib.getExe config.alyraffauf.defaultApps.imageViewer.package;
type = lib.types.str;
};
desktop = lib.mkOption {
description = "Default image viewer desktop file name.";
default = "org.gnome.eog.desktop";
type = lib.types.str;
};
package = lib.mkOption {
description = "Default image viewer package.";
default = pkgs.gnome.eog;
type = lib.types.package;
};
};
videoPlayer = {
exe = lib.mkOption {
description = "Default video player executable name.";
default = lib.getExe config.alyraffauf.defaultApps.videoPlayer.package;
type = lib.types.str;
};
desktop = lib.mkOption {
description = "Default video player desktop file name.";
default = "io.github.celluloid_player.Celluloid.desktop";
type = lib.types.str;
};
package = lib.mkOption {
description = "Default video player package.";
default = pkgs.celluloid;
type = lib.types.package;
};
};
audioPlayer = {
exe = lib.mkOption {
description = "Default audio player executable name.";
default = lib.getExe config.alyraffauf.defaultApps.audioPlayer.package;
type = lib.types.str;
};
desktop = lib.mkOption {
description = "Default audio player desktop file name.";
default = config.alyraffauf.defaultApps.videoPlayer.desktop;
type = lib.types.str;
};
package = lib.mkOption {
description = "Default audio player package.";
default = config.alyraffauf.defaultApps.videoPlayer.package;
type = lib.types.package;
};
};
};
desktop = {
cinnamon.enable =
lib.mkEnableOption "Cinnamon with sane defaults.";
gnome.enable =
lib.mkEnableOption "GNOME with sane defaults.";
hyprland = {
enable =
lib.mkEnableOption "Hyprland with full desktop session components.";
autoSuspend = lib.mkOption {
description = "Whether to autosuspend on idle.";
default = config.alyraffauf.desktop.hyprland.enable;
type = lib.types.bool;
};
randomWallpaper = lib.mkOption {
description = "Whether to enable random wallpaper script.";
default = config.alyraffauf.desktop.hyprland.enable;
type = lib.types.bool;
};
redShift = lib.mkOption {
description = "Whether to redshift display colors at night.";
default = config.alyraffauf.desktop.hyprland.enable;
type = lib.types.bool;
};
tabletMode = {
enable = lib.mkEnableOption "Tablet mode for hyprland.";
autoRotate = lib.mkOption {
description = "Whether to autorotate screen.";
default = config.alyraffauf.desktop.hyprland.tabletMode.enable;
type = lib.types.bool;
};
menuButton = lib.mkOption {
description = "Whether to add menu button for waybar.";
default = config.alyraffauf.desktop.hyprland.tabletMode.enable;
type = lib.types.bool;
};
virtKeyboard = lib.mkOption {
description = "Whether to enable dynamic virtual keyboard.";
default = config.alyraffauf.desktop.hyprland.tabletMode.enable;
type = lib.types.bool;
};
};
};
waylandComp =
lib.mkEnableOption "Shared configuration for wayland compositors.";
};
scripts = {
pp-adjuster.enable = lib.mkEnableOption "pp-adjuster script.";
};
services = {
mpd = {
enable =
lib.mkEnableOption "MPD user service.";
musicDirectory = lib.mkOption {
description = "Name of music directory";
default = config.xdg.userDirs.music;
type = lib.types.str;
};
};
easyeffects = {
enable =
lib.mkEnableOption "EasyEffects user service.";
preset = lib.mkOption {
description = "Name of preset to start with.";
default = "";
type = lib.types.str;
};
};
};
theme = {
enable =
lib.mkEnableOption "GTK and Qt themes.";
gtk = {
name = lib.mkOption {
description = "GTK theme name.";
default = "Catppuccin-Frappe-Compact-Mauve-Dark";
type = lib.types.str;
};
package = lib.mkOption {
description = "GTK theme package.";
default = pkgs.catppuccin-gtk;
type = lib.types.package;
};
hideTitleBar = lib.mkOption {
description = "Whether to hide GTK3/4 titlebars (useful for some window managers).";
default = false;
type = lib.types.bool;
};
};
qt = {
name = lib.mkOption {
description = "Qt Kvantum theme name.";
default = "Catppuccin-Frappe-Mauve";
type = lib.types.str;
};
package = lib.mkOption {
description = "Qt Kvantum theme package.";
default = pkgs.catppuccin-kvantum;
type = lib.types.package;
};
};
iconTheme = {
name = lib.mkOption {
description = "Icon theme name.";
default = "Papirus-Dark";
type = lib.types.str;
};
package = lib.mkOption {
description = "Icon theme package.";
default = pkgs.catppuccin-papirus-folders;
type = lib.types.package;
};
};
cursorTheme = {
name = lib.mkOption {
description = "Cursor theme name.";
default = "Catppuccin-Frappe-Dark-Cursors";
type = lib.types.str;
};
size = lib.mkOption {
description = "Cursor size.";
default = 24;
type = lib.types.int;
};
package = lib.mkOption {
description = "Cursor theme package.";
default = pkgs.catppuccin-cursors.frappeDark;
type = lib.types.package;
};
};
font = {
name = lib.mkOption {
description = "Font name.";
default = "NotoSans Nerd Font";
type = lib.types.str;
};
size = lib.mkOption {
description = "Font size.";
default = 11;
type = lib.types.int;
};
package = lib.mkOption {
description = "Font package.";
default = pkgs.nerdfonts;
type = lib.types.package;
};
};
terminalFont = {
name = lib.mkOption {
description = "Font name.";
default = "NotoSansM Nerd Font";
type = lib.types.str;
};
size = lib.mkOption {
description = "Font size.";
default = 11;
type = lib.types.int;
};
package = lib.mkOption {
description = "Font package.";
default = pkgs.nerdfonts;
type = lib.types.package;
};
};
colors = {
preferDark = lib.mkOption {
description = "Whether to prefer dark mode apps or not.";
default = config.alyraffauf.theme.enable;
type = lib.types.bool;
};
text = lib.mkOption {
description = "Text color.";
default = "#FAFAFA";
type = lib.types.str;
};
background = lib.mkOption {
description = "Background color.";
default = "#232634";
type = lib.types.str;
};
primary = lib.mkOption {
description = "Primary color.";
default = "#CA9EE6";
type = lib.types.str;
};
secondary = lib.mkOption {
description = "Secondary color.";
default = "#99D1DB";
type = lib.types.str;
};
inactive = lib.mkOption {
description = "Inactive color.";
default = "#626880";
type = lib.types.str;
};
shadow = lib.mkOption {
description = "Drop shadow color.";
default = "#1A1A1A";
type = lib.types.str;
};
};
wallpaper = lib.mkOption {
description = "Default wallpaper.";
default = "${config.xdg.dataHome}/backgrounds/jr-korpa-9XngoIpxcEo-unsplash.jpg";
type = lib.types.str;
};
};
};
};
}

View file

@ -19,8 +19,6 @@
${lib.getExe pkgs.libnotify} "Power profile set to $new_profile." ${lib.getExe pkgs.libnotify} "Power profile set to $new_profile."
''; '';
in { in {
options = {alyraffauf.scripts.pp-adjuster.enable = lib.mkEnableOption "Enable pp-adjuster script.";};
config = lib.mkIf config.alyraffauf.scripts.pp-adjuster.enable { config = lib.mkIf config.alyraffauf.scripts.pp-adjuster.enable {
home.packages = [pp-adjuster]; home.packages = [pp-adjuster];
}; };

View file

@ -4,22 +4,14 @@
config, config,
... ...
}: { }: {
options = {
alyraffauf.services.easyeffects.enable =
lib.mkEnableOption "EasyEffects user service.";
alyraffauf.services.easyeffects.preset = lib.mkOption {
description = "Name of preset to start with.";
default = "";
type = lib.types.str;
};
};
config = lib.mkIf config.alyraffauf.services.easyeffects.enable { config = lib.mkIf config.alyraffauf.services.easyeffects.enable {
xdg.configFile."easyeffects/output/framework13.json".source = xdg.configFile = {
./framework13.json; "easyeffects/output/framework13.json".source =
./framework13.json;
xdg.configFile."easyeffects/output/LoudnessEqualizer.json".source = "easyeffects/output/LoudnessEqualizer.json".source =
./LoudnessEqualizer.json; ./LoudnessEqualizer.json;
};
services.easyeffects = { services.easyeffects = {
enable = true; enable = true;

View file

@ -4,16 +4,6 @@
config, config,
... ...
}: { }: {
options = {
alyraffauf.services.mpd.enable =
lib.mkEnableOption "MPD user service.";
alyraffauf.services.mpd.musicDirectory = lib.mkOption {
description = "Name of music directory";
default = config.xdg.userDirs.music;
type = lib.types.str;
};
};
config = lib.mkIf config.alyraffauf.services.mpd.enable { config = lib.mkIf config.alyraffauf.services.mpd.enable {
services.mpd = { services.mpd = {
enable = true; enable = true;

View file

@ -0,0 +1,101 @@
{
pkgs,
lib,
config,
...
}: {
config = lib.mkIf config.alyraffauf.theme.enable {
home.pointerCursor = {
gtk.enable = true;
x11 = {
enable = true;
defaultCursor = config.alyraffauf.theme.cursorTheme.name;
};
name = config.alyraffauf.theme.cursorTheme.name;
package = config.alyraffauf.theme.cursorTheme.package;
size = config.alyraffauf.theme.cursorTheme.size;
};
qt = {
enable = true;
platformTheme.name = "qtct";
style.name = "kvantum";
};
xdg.configFile = {
"Kvantum/${config.alyraffauf.theme.qt.name}".source = "${config.alyraffauf.theme.qt.package}/share/Kvantum/${config.alyraffauf.theme.qt.name}";
"Kvantum/kvantum.kvconfig".source = (pkgs.formats.ini {}).generate "kvantum.kvconfig" {
General.theme = config.alyraffauf.theme.qt.name;
};
};
fonts.fontconfig = {
enable = true;
defaultFonts = {
monospace = [config.alyraffauf.theme.terminalFont.name];
serif = ["NotoSerif Nerd Font"];
sansSerif = [config.alyraffauf.theme.font.name];
};
};
gtk = {
enable = true;
theme = {
package = config.alyraffauf.theme.gtk.package;
name = config.alyraffauf.theme.gtk.name;
};
iconTheme = {
package = config.alyraffauf.theme.iconTheme.package;
name = config.alyraffauf.theme.iconTheme.name;
};
font = {
name = "${config.alyraffauf.theme.font.name} Regular";
package = config.alyraffauf.theme.font.package;
size = config.alyraffauf.theme.font.size;
};
gtk3.extraConfig = lib.attrsets.optionalAttrs (config.alyraffauf.theme.colors.preferDark) {gtk-application-prefer-dark-theme = 1;};
gtk4.extraConfig = lib.attrsets.optionalAttrs (config.alyraffauf.theme.colors.preferDark) {gtk-application-prefer-dark-theme = 1;};
gtk3.extraCss =
if config.alyraffauf.theme.gtk.hideTitleBar
then ''
/* No (default) title bar on wayland */
headerbar.default-decoration {
/* You may need to tweak these values depending on your GTK theme */
margin-bottom: 50px;
margin-top: -100px;
background: transparent;
padding: 0;
border: 0;
min-height: 0;
font-size: 0;
box-shadow: none;
}
/* rm -rf window shadows */
window.csd, /* gtk4? */
window.csd decoration { /* gtk3 */
box-shadow: none;
}
''
else "/* */";
gtk4.extraCss = config.gtk.gtk3.extraCss;
};
dconf.settings = {
"org/gnome/desktop/interface" = {
gtk-theme = config.alyraffauf.theme.gtk.name;
color-scheme = "prefer-dark";
cursor-theme = config.alyraffauf.theme.cursorTheme.name;
cursor-size = config.alyraffauf.theme.cursorTheme.size;
};
};
};
}

View file

@ -56,12 +56,12 @@
hyprland.extraConfig = '' hyprland.extraConfig = ''
# Workspace - Browser # Workspace - Browser
workspace = 1, defaultName:web, on-created-empty:${config.alyraffauf.desktop.defaultApps.webBrowser.exe} workspace = 1, defaultName:web, on-created-empty:${config.alyraffauf.defaultApps.webBrowser.exe}
windowrulev2 = workspace 1,class:(firefox) windowrulev2 = workspace 1,class:(firefox)
windowrulev2 = workspace 1,class:(brave-browser) windowrulev2 = workspace 1,class:(brave-browser)
# Workspace - Coding # Workspace - Coding
workspace = 2, defaultName:code, on-created-empty:${config.alyraffauf.desktop.defaultApps.editor.exe} workspace = 2, defaultName:code, on-created-empty:${config.alyraffauf.defaultApps.editor.exe}
windowrulev2 = workspace 2,class:(codium-url-handler) windowrulev2 = workspace 2,class:(codium-url-handler)
# Workspace - Chrome # Workspace - Chrome
@ -89,69 +89,6 @@
}; };
alyraffauf = { alyraffauf = {
desktop = {
defaultApps = {
enable = true;
webBrowser = {
package = config.programs.chromium.package;
desktop = "brave-browser.desktop";
};
};
hyprland = {
enable = true;
randomWallpaper = true;
};
theme = {
enable = true;
gtk = {
name = "Catppuccin-Frappe-Compact-Mauve-Dark";
package = pkgs.catppuccin-gtk.override {
accents = ["mauve"];
size = "compact";
variant = "frappe";
tweaks = ["normal"];
};
};
qt = {
name = "Catppuccin-Frappe-Mauve";
package = pkgs.catppuccin-kvantum.override {
accent = "Mauve";
variant = "Frappe";
};
};
iconTheme = {
name = "Papirus-Dark";
package = pkgs.catppuccin-papirus-folders.override {
flavor = "frappe";
accent = "mauve";
};
};
cursorTheme = {
name = "Catppuccin-Frappe-Dark-Cursors";
size = 24;
package = pkgs.catppuccin-cursors.frappeDark;
};
font = {
name = "NotoSans Nerd Font";
size = 11;
package = pkgs.nerdfonts.override {fonts = ["Noto"];};
};
terminalFont = {
name = "NotoSansM Nerd Font";
size = 11;
package = pkgs.nerdfonts.override {fonts = ["Noto"];};
};
colors = {
text = "#FAFAFA";
background = "#232634";
primary = "#CA9EE6";
secondary = "#99D1DB";
inactive = "#626880";
shadow = "#1A1A1A";
};
wallpaper = "${config.xdg.dataHome}/backgrounds/jr-korpa-9XngoIpxcEo-unsplash.jpg";
};
};
apps = { apps = {
alacritty.enable = true; alacritty.enable = true;
bash.enable = true; bash.enable = true;
@ -169,8 +106,72 @@
tmux.enable = true; tmux.enable = true;
vsCodium.enable = true; vsCodium.enable = true;
}; };
defaultApps = {
enable = true;
webBrowser = {
package = config.programs.chromium.package;
desktop = "brave-browser.desktop";
};
};
desktop = {
hyprland = {
enable = true;
randomWallpaper = true;
};
};
scripts = { scripts = {
pp-adjuster.enable = true; pp-adjuster.enable = true;
}; };
theme = {
enable = true;
gtk = {
name = "Catppuccin-Frappe-Compact-Mauve-Dark";
package = pkgs.catppuccin-gtk.override {
accents = ["mauve"];
size = "compact";
variant = "frappe";
tweaks = ["normal"];
};
};
qt = {
name = "Catppuccin-Frappe-Mauve";
package = pkgs.catppuccin-kvantum.override {
accent = "Mauve";
variant = "Frappe";
};
};
iconTheme = {
name = "Papirus-Dark";
package = pkgs.catppuccin-papirus-folders.override {
flavor = "frappe";
accent = "mauve";
};
};
cursorTheme = {
name = "Catppuccin-Frappe-Dark-Cursors";
size = 24;
package = pkgs.catppuccin-cursors.frappeDark;
};
font = {
name = "NotoSans Nerd Font";
size = 11;
package = pkgs.nerdfonts.override {fonts = ["Noto"];};
};
terminalFont = {
name = "NotoSansM Nerd Font";
size = 11;
package = pkgs.nerdfonts.override {fonts = ["Noto"];};
};
colors = {
text = "#FAFAFA";
background = "#232634";
primary = "#CA9EE6";
secondary = "#99D1DB";
inactive = "#626880";
shadow = "#1A1A1A";
};
wallpaper = "${config.xdg.dataHome}/backgrounds/jr-korpa-9XngoIpxcEo-unsplash.jpg";
};
}; };
} }

View file

@ -25,68 +25,6 @@
programs.home-manager.enable = true; programs.home-manager.enable = true;
alyraffauf = { alyraffauf = {
desktop = {
defaultApps.enable = true;
hyprland = {
enable = true;
randomWallpaper = false;
};
sway = {
enable = true;
randomWallpaper = false;
};
theme = {
enable = true;
gtk = {
name = "Catppuccin-Frappe-Compact-Mauve-Dark";
package = pkgs.catppuccin-gtk.override {
accents = ["mauve"];
size = "compact";
variant = "frappe";
tweaks = ["normal"];
};
};
qt = {
name = "Catppuccin-Frappe-Mauve";
package = pkgs.catppuccin-kvantum.override {
accent = "Mauve";
variant = "Frappe";
};
};
iconTheme = {
name = "Papirus-Dark";
package = pkgs.catppuccin-papirus-folders.override {
flavor = "frappe";
accent = "mauve";
};
};
cursorTheme = {
name = "Catppuccin-Frappe-Dark-Cursors";
size = 24;
package = pkgs.catppuccin-cursors.frappeDark;
};
font = {
name = "NotoSans Nerd Font";
size = 11;
package = pkgs.nerdfonts.override {fonts = ["Noto"];};
};
terminalFont = {
name = "NotoSansM Nerd Font";
size = 11;
package = pkgs.nerdfonts.override {fonts = ["Noto"];};
};
colors = {
text = "#FAFAFA";
background = "#232634";
primary = "#CA9EE6";
secondary = "#99D1DB";
inactive = "#626880";
shadow = "#1A1A1A";
};
wallpaper = "${config.xdg.dataHome}/backgrounds/jr-korpa-9XngoIpxcEo-unsplash.jpg";
};
};
apps = { apps = {
alacritty.enable = true; alacritty.enable = true;
bash.enable = true; bash.enable = true;
@ -96,5 +34,66 @@
fzf.enable = true; fzf.enable = true;
vsCodium.enable = true; vsCodium.enable = true;
}; };
defaultApps.enable = true;
desktop = {
hyprland = {
enable = true;
randomWallpaper = false;
};
sway = {
enable = true;
randomWallpaper = false;
};
};
theme = {
enable = true;
gtk = {
name = "Catppuccin-Frappe-Compact-Mauve-Dark";
package = pkgs.catppuccin-gtk.override {
accents = ["mauve"];
size = "compact";
variant = "frappe";
tweaks = ["normal"];
};
};
qt = {
name = "Catppuccin-Frappe-Mauve";
package = pkgs.catppuccin-kvantum.override {
accent = "Mauve";
variant = "Frappe";
};
};
iconTheme = {
name = "Papirus-Dark";
package = pkgs.catppuccin-papirus-folders.override {
flavor = "frappe";
accent = "mauve";
};
};
cursorTheme = {
name = "Catppuccin-Frappe-Dark-Cursors";
size = 24;
package = pkgs.catppuccin-cursors.frappeDark;
};
font = {
name = "NotoSans Nerd Font";
size = 11;
package = pkgs.nerdfonts.override {fonts = ["Noto"];};
};
terminalFont = {
name = "NotoSansM Nerd Font";
size = 11;
package = pkgs.nerdfonts.override {fonts = ["Noto"];};
};
colors = {
text = "#FAFAFA";
background = "#232634";
primary = "#CA9EE6";
secondary = "#99D1DB";
inactive = "#626880";
shadow = "#1A1A1A";
};
wallpaper = "${config.xdg.dataHome}/backgrounds/jr-korpa-9XngoIpxcEo-unsplash.jpg";
};
}; };
} }

View file

@ -12,56 +12,60 @@
"editor.fontSize" = "16"; "editor.fontSize" = "16";
}; };
xdg.userDirs.music = "/mnt/Media/Music"; xdg.userDirs.music = "/mnt/Media/Music";
alyraffauf.desktop.hyprland.autoSuspend = false; alyraffauf = {
alyraffauf.desktop.sway.autoSuspend = false; desktop = {
alyraffauf.desktop.theme = lib.mkForce { hyprland.autoSuspend = false;
enable = true; sway.autoSuspend = false;
gtk = { };
name = "Catppuccin-Latte-Compact-Mauve-Light"; theme = lib.mkForce {
package = pkgs.catppuccin-gtk.override { enable = true;
accents = ["mauve"]; gtk = {
size = "compact"; name = "Catppuccin-Latte-Compact-Mauve-Light";
variant = "latte"; package = pkgs.catppuccin-gtk.override {
tweaks = ["normal"]; accents = ["mauve"];
size = "compact";
variant = "latte";
tweaks = ["normal"];
};
}; };
}; qt = {
qt = { name = "Catppuccin-Latte-Mauve";
name = "Catppuccin-Latte-Mauve"; package = pkgs.catppuccin-kvantum.override {
package = pkgs.catppuccin-kvantum.override { accent = "Mauve";
accent = "Mauve"; variant = "Latte";
variant = "Latte"; };
}; };
}; iconTheme = {
iconTheme = { name = "Papirus-Light";
name = "Papirus-Light"; package = pkgs.catppuccin-papirus-folders.override {
package = pkgs.catppuccin-papirus-folders.override { flavor = "latte";
flavor = "latte"; accent = "mauve";
accent = "mauve"; };
};
cursorTheme = {
name = "Catppuccin-Latte-Dark-Cursors";
size = 32;
package = pkgs.catppuccin-cursors.latteDark;
};
font = {
name = "NotoSans Nerd Font";
size = 14;
package = pkgs.nerdfonts.override {fonts = ["Noto"];};
};
terminalFont = {
name = "NotoSansM Nerd Font";
size = 14;
package = pkgs.nerdfonts.override {fonts = ["Noto"];};
};
colors = {
preferDark = false;
text = "#4c4f69";
background = "#eff1f5";
primary = "#8839ef";
secondary = "#04a5e5";
inactive = "#626880";
shadow = "#1A1A1A";
}; };
};
cursorTheme = {
name = "Catppuccin-Latte-Dark-Cursors";
size = 32;
package = pkgs.catppuccin-cursors.latteDark;
};
font = {
name = "NotoSans Nerd Font";
size = 14;
package = pkgs.nerdfonts.override {fonts = ["Noto"];};
};
terminalFont = {
name = "NotoSansM Nerd Font";
size = 14;
package = pkgs.nerdfonts.override {fonts = ["Noto"];};
};
colors = {
preferDark = false;
text = "#4c4f69";
background = "#eff1f5";
primary = "#8839ef";
secondary = "#04a5e5";
inactive = "#626880";
shadow = "#1A1A1A";
}; };
}; };
} }

View file

@ -11,25 +11,27 @@
programs.vscode.userSettings = { programs.vscode.userSettings = {
"editor.fontSize" = "16"; "editor.fontSize" = "16";
}; };
alyraffauf.services.easyeffects = { alyraffauf = {
enable = true; services.easyeffects = {
preset = "LoudnessEqualizer"; enable = true;
}; preset = "LoudnessEqualizer";
alyraffauf.desktop.theme = {
cursorTheme = lib.mkForce {
name = "Catppuccin-Latte-Dark-Cursors";
size = 32;
package = pkgs.catppuccin-cursors.latteDark;
}; };
font = lib.mkForce { theme = {
name = "NotoSans Nerd Font"; cursorTheme = lib.mkForce {
size = 14; name = "Catppuccin-Latte-Dark-Cursors";
package = pkgs.nerdfonts.override {fonts = ["Noto"];}; size = 32;
}; package = pkgs.catppuccin-cursors.latteDark;
terminalFont = lib.mkForce { };
name = "NotoSansM Nerd Font"; font = lib.mkForce {
size = 14; name = "NotoSans Nerd Font";
package = pkgs.nerdfonts.override {fonts = ["Noto"];}; size = 14;
package = pkgs.nerdfonts.override {fonts = ["Noto"];};
};
terminalFont = lib.mkForce {
name = "NotoSansM Nerd Font";
size = 14;
package = pkgs.nerdfonts.override {fonts = ["Noto"];};
};
}; };
}; };
} }