mirror of
https://github.com/alyraffauf/nixcfg.git
synced 2024-11-21 15:13:55 -05:00
move duplicated hardware configuration to config.ar.hardware module
This commit is contained in:
parent
b0f9144bb7
commit
575149a3a0
|
@ -92,6 +92,9 @@
|
|||
nixosModules.default =
|
||||
import ./nixosModules inputs;
|
||||
|
||||
nixosModules.hardware =
|
||||
import ./hardwareModules inputs;
|
||||
|
||||
nixosConfigurations =
|
||||
inputs.nixpkgs.lib.genAttrs [
|
||||
"fallarbor"
|
||||
|
@ -108,11 +111,12 @@
|
|||
./hosts/${host}
|
||||
inputs.agenix.nixosModules.default
|
||||
inputs.disko.nixosModules.disko
|
||||
inputs.home-manager.nixosModules.home-manager
|
||||
inputs.hyprland.nixosModules.default
|
||||
inputs.nixvim.nixosModules.nixvim
|
||||
inputs.nur.nixosModules.nur
|
||||
inputs.home-manager.nixosModules.home-manager
|
||||
self.nixosModules.default
|
||||
self.nixosModules.hardware
|
||||
{
|
||||
home-manager = {
|
||||
backupFileExtension = "backup";
|
||||
|
|
20
hardwareModules/cpu/amd/default.nix
Normal file
20
hardwareModules/cpu/amd/default.nix
Normal file
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf config.ar.hardware.cpu.amd {
|
||||
boot = {
|
||||
kernelModules = ["kvm-amd"];
|
||||
kernelParams =
|
||||
lib.optional (config.ar.hardware.laptop) "amd_pstate=active";
|
||||
};
|
||||
|
||||
hardware = {
|
||||
cpu.amd.updateMicrocode = true;
|
||||
};
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
};
|
||||
}
|
12
hardwareModules/cpu/default.nix
Normal file
12
hardwareModules/cpu/default.nix
Normal file
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
config,
|
||||
inputs,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
./amd
|
||||
./intel
|
||||
];
|
||||
}
|
14
hardwareModules/cpu/intel/default.nix
Normal file
14
hardwareModules/cpu/intel/default.nix
Normal file
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf config.ar.hardware.cpu.intel {
|
||||
boot.kernelModules = ["kvm-intel"];
|
||||
hardware.cpu.intel.updateMicrocode = true;
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
powerManagement.powertop.enable = config.ar.hardware.laptop;
|
||||
services.thermald.enable = config.ar.hardware.laptop;
|
||||
};
|
||||
}
|
13
hardwareModules/default.nix
Normal file
13
hardwareModules/default.nix
Normal file
|
@ -0,0 +1,13 @@
|
|||
inputs: {
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
./cpu
|
||||
./gpu
|
||||
./options.nix
|
||||
./ssd
|
||||
];
|
||||
}
|
28
hardwareModules/gpu/amd/default.nix
Normal file
28
hardwareModules/gpu/amd/default.nix
Normal file
|
@ -0,0 +1,28 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf config.ar.hardware.gpu.amd {
|
||||
boot = {
|
||||
initrd.kernelModules = ["amdgpu"];
|
||||
|
||||
kernelModules = ["amdgpu"];
|
||||
# Disable AMD Backlight Management.
|
||||
# ABM severely degrades display quality for miniscule power efficiency gains.
|
||||
kernelParams = ["amdgpu.abmlevel=0"];
|
||||
};
|
||||
|
||||
hardware.amdgpu = {
|
||||
initrd.enable = true;
|
||||
|
||||
amdvlk = {
|
||||
enable = true;
|
||||
support32Bit.enable = true;
|
||||
};
|
||||
|
||||
opencl.enable = true;
|
||||
};
|
||||
};
|
||||
}
|
12
hardwareModules/gpu/default.nix
Normal file
12
hardwareModules/gpu/default.nix
Normal file
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
config,
|
||||
inputs,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
./amd
|
||||
./intel
|
||||
];
|
||||
}
|
41
hardwareModules/gpu/intel/default.nix
Normal file
41
hardwareModules/gpu/intel/default.nix
Normal file
|
@ -0,0 +1,41 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf config.ar.hardware.gpu.intel {
|
||||
boot.initrd.kernelModules = ["i915"];
|
||||
|
||||
environment.sessionVariables = {
|
||||
LIBVA_DRIVER_NAME = "iHD";
|
||||
VDPAU_DRIVER = "va_gl";
|
||||
};
|
||||
|
||||
hardware = {
|
||||
enableAllFirmware = true;
|
||||
|
||||
opengl = {
|
||||
enable = true;
|
||||
driSupport = true;
|
||||
driSupport32Bit = true;
|
||||
|
||||
extraPackages = with pkgs; [
|
||||
intel-media-driver # LIBVA_DRIVER_NAME=iHD
|
||||
intel-vaapi-driver # LIBVA_DRIVER_NAME=i965 (older but works better for Firefox/Chromium)
|
||||
libvdpau-va-gl
|
||||
];
|
||||
|
||||
extraPackages32 = with pkgs.driversi686Linux; [
|
||||
intel-media-driver # LIBVA_DRIVER_NAME=iHD
|
||||
intel-vaapi-driver # LIBVA_DRIVER_NAME=i965 (older but works better for Firefox/Chromium)
|
||||
libvdpau-va-gl
|
||||
];
|
||||
};
|
||||
|
||||
sensor.iio.enable = true; # Enable auto-rotate and tablet mode.
|
||||
};
|
||||
|
||||
services.xserver.videoDrivers = ["modesetting"];
|
||||
};
|
||||
}
|
21
hardwareModules/options.nix
Normal file
21
hardwareModules/options.nix
Normal file
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
config,
|
||||
inputs,
|
||||
lib,
|
||||
pkgs,
|
||||
self,
|
||||
...
|
||||
}: {
|
||||
options.ar.hardware = {
|
||||
cpu = {
|
||||
amd = lib.mkEnableOption "AMD CPU support.";
|
||||
intel = lib.mkEnableOption "Intel CPU support.";
|
||||
};
|
||||
gpu = {
|
||||
amd = lib.mkEnableOption "AMD GPU support.";
|
||||
intel = lib.mkEnableOption "Intel GPU support.";
|
||||
};
|
||||
laptop = lib.mkEnableOption "Laptop optimizations.";
|
||||
ssd = lib.mkEnableOption "SSD optimizations.";
|
||||
};
|
||||
}
|
10
hardwareModules/ssd/default.nix
Normal file
10
hardwareModules/ssd/default.nix
Normal file
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf config.ar.hardware.ssd {
|
||||
services.fstrim.enable = true;
|
||||
};
|
||||
}
|
|
@ -4,24 +4,24 @@
|
|||
config,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf config.alyraffauf.apps.alacritty.enable {
|
||||
config = lib.mkIf config.ar.home.apps.alacritty.enable {
|
||||
programs.alacritty = {
|
||||
enable = true;
|
||||
settings = {
|
||||
colors = {
|
||||
primary = {
|
||||
background = "${config.alyraffauf.theme.colors.background}";
|
||||
foreground = "${config.alyraffauf.theme.colors.text}";
|
||||
background = "${config.ar.home.theme.colors.background}";
|
||||
foreground = "${config.ar.home.theme.colors.text}";
|
||||
};
|
||||
transparent_background_colors = true;
|
||||
draw_bold_text_with_bright_colors = true;
|
||||
};
|
||||
font = {
|
||||
normal = {
|
||||
family = "${config.alyraffauf.theme.terminalFont.name}";
|
||||
family = "${config.ar.home.theme.terminalFont.name}";
|
||||
style = "Regular";
|
||||
};
|
||||
size = config.alyraffauf.theme.terminalFont.size;
|
||||
size = config.ar.home.theme.terminalFont.size;
|
||||
};
|
||||
selection.save_to_clipboard = true;
|
||||
window = {
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
config,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf config.alyraffauf.apps.bash.enable {
|
||||
config = lib.mkIf config.ar.home.apps.bash.enable {
|
||||
home.shellAliases = {
|
||||
cat = lib.getExe pkgs.bat;
|
||||
grep = lib.getExe config.programs.ripgrep.package;
|
||||
|
|
|
@ -4,10 +4,10 @@
|
|||
config,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf config.alyraffauf.apps.chromium.enable {
|
||||
config = lib.mkIf config.ar.home.apps.chromium.enable {
|
||||
programs.chromium = {
|
||||
enable = true;
|
||||
package = config.alyraffauf.apps.chromium.package;
|
||||
package = config.ar.home.apps.chromium.package;
|
||||
extensions = [
|
||||
{id = "enamippconapkdmgfgjchkhakpfinmaj";} # dearrow
|
||||
{id = "jldhpllghnbhlbpcmnajkpdmadaolakh";} # todoist
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
config,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf config.alyraffauf.apps.emacs.enable {
|
||||
config = lib.mkIf config.ar.home.apps.emacs.enable {
|
||||
programs.emacs = {
|
||||
enable = true;
|
||||
extraPackages = epkgs: (with epkgs; [
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
config,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf config.alyraffauf.apps.fastfetch.enable {
|
||||
config = lib.mkIf config.ar.home.apps.fastfetch.enable {
|
||||
home.packages = [pkgs.fastfetch];
|
||||
xdg.configFile."fastfetch/config.jsonc".source = ./config.jsonc;
|
||||
};
|
||||
|
|
|
@ -4,12 +4,12 @@
|
|||
config,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf config.alyraffauf.apps.firefox.enable {
|
||||
config = lib.mkIf config.ar.home.apps.firefox.enable {
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
nativeMessagingHosts =
|
||||
lib.optionals (config.alyraffauf.apps.keepassxc.enable) [pkgs.keepassxc]
|
||||
++ lib.optionals (config.alyraffauf.desktop.gnome.enable) [pkgs.gnome-browser-connector];
|
||||
lib.optionals (config.ar.home.apps.keepassxc.enable) [pkgs.keepassxc]
|
||||
++ lib.optionals (config.ar.home.desktop.gnome.enable) [pkgs.gnome-browser-connector];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -4,16 +4,16 @@
|
|||
config,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf config.alyraffauf.apps.fuzzel.enable {
|
||||
config = lib.mkIf config.ar.home.apps.fuzzel.enable {
|
||||
programs.fuzzel = {
|
||||
enable = true;
|
||||
settings = {
|
||||
main = {
|
||||
font = "${config.alyraffauf.theme.terminalFont.name}:size=${toString config.alyraffauf.theme.terminalFont.size}";
|
||||
icon-theme = "${config.alyraffauf.theme.iconTheme.name}";
|
||||
font = "${config.ar.home.theme.terminalFont.name}:size=${toString config.ar.home.theme.terminalFont.size}";
|
||||
icon-theme = "${config.ar.home.theme.iconTheme.name}";
|
||||
layer = "overlay";
|
||||
lines = 3;
|
||||
terminal = config.alyraffauf.defaultApps.terminal.exe;
|
||||
terminal = config.ar.home.defaultApps.terminal.exe;
|
||||
width = 36;
|
||||
};
|
||||
border = {
|
||||
|
@ -21,12 +21,12 @@
|
|||
width = 2;
|
||||
};
|
||||
colors = {
|
||||
background = "${config.alyraffauf.theme.colors.background}CC";
|
||||
border = "${config.alyraffauf.theme.colors.primary}EE";
|
||||
selection = "${config.alyraffauf.theme.colors.background}FF";
|
||||
background = "${config.ar.home.theme.colors.background}CC";
|
||||
border = "${config.ar.home.theme.colors.primary}EE";
|
||||
selection = "${config.ar.home.theme.colors.background}FF";
|
||||
selection-match = "#e78284FF";
|
||||
selection-text = "#f4b8e4FF";
|
||||
text = "${config.alyraffauf.theme.colors.text}FF";
|
||||
text = "${config.ar.home.theme.colors.text}FF";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
@ -4,10 +4,10 @@
|
|||
config,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf config.alyraffauf.apps.keepassxc.enable {
|
||||
config = lib.mkIf config.ar.home.apps.keepassxc.enable {
|
||||
home.packages = [pkgs.keepassxc];
|
||||
|
||||
alyraffauf.apps.keepassxc.settings = lib.mkDefault {
|
||||
ar.home.apps.keepassxc.settings = lib.mkDefault {
|
||||
Browser = {
|
||||
AlwaysAllowAccess = true;
|
||||
Enabled = true;
|
||||
|
@ -47,6 +47,6 @@
|
|||
|
||||
xdg.configFile."keepassxc/keepassxc.ini".text =
|
||||
lib.generators.toINI {}
|
||||
config.alyraffauf.apps.keepassxc.settings;
|
||||
config.ar.home.apps.keepassxc.settings;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
config,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf config.alyraffauf.apps.librewolf.enable {
|
||||
config = lib.mkIf config.ar.home.apps.librewolf.enable {
|
||||
programs.librewolf = {
|
||||
enable = true;
|
||||
settings = {
|
||||
|
|
|
@ -4,20 +4,20 @@
|
|||
config,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf config.alyraffauf.apps.mako.enable {
|
||||
config = lib.mkIf config.ar.home.apps.mako.enable {
|
||||
services.mako = {
|
||||
enable = true;
|
||||
anchor = "top-center";
|
||||
backgroundColor = "${config.alyraffauf.theme.colors.background}CC";
|
||||
borderColor = "${config.alyraffauf.theme.colors.primary}EE";
|
||||
backgroundColor = "${config.ar.home.theme.colors.background}CC";
|
||||
borderColor = "${config.ar.home.theme.colors.primary}EE";
|
||||
borderSize = 2;
|
||||
borderRadius = 10;
|
||||
defaultTimeout = 10000;
|
||||
font = "${config.alyraffauf.theme.font.name} Regular ${toString config.alyraffauf.theme.font.size}";
|
||||
font = "${config.ar.home.theme.font.name} Regular ${toString config.ar.home.theme.font.size}";
|
||||
height = 300;
|
||||
layer = "top";
|
||||
padding = "15";
|
||||
textColor = "${config.alyraffauf.theme.colors.text}";
|
||||
textColor = "${config.ar.home.theme.colors.text}";
|
||||
width = 400;
|
||||
margin = "20,0";
|
||||
extraConfig = ''
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
config,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf config.alyraffauf.apps.nemo.enable {
|
||||
config = lib.mkIf config.ar.home.apps.nemo.enable {
|
||||
home.packages = with pkgs; [
|
||||
cinnamon.nemo
|
||||
];
|
||||
|
@ -14,9 +14,9 @@
|
|||
settings = {
|
||||
"org/nemo/preferences".show-image-thumbnails = "always";
|
||||
"org/nemo/preferences/menu-config".background-menu-open-as-root =
|
||||
!(config.alyraffauf.desktop.hyprland.enable || config.alyraffauf.desktop.sway.enable);
|
||||
!(config.ar.home.desktop.hyprland.enable || config.ar.home.desktop.sway.enable);
|
||||
"org/nemo/preferences/menu-config".selection-menu-open-as-root =
|
||||
!(config.alyraffauf.desktop.hyprland.enable || config.alyraffauf.desktop.sway.enable);
|
||||
!(config.ar.home.desktop.hyprland.enable || config.ar.home.desktop.sway.enable);
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
config,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf config.alyraffauf.apps.neovim.enable {
|
||||
config = lib.mkIf config.ar.home.apps.neovim.enable {
|
||||
programs.nixvim = {
|
||||
enable = true;
|
||||
viAlias = true;
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
config,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf config.alyraffauf.apps.swaylock.enable {
|
||||
config = lib.mkIf config.ar.home.apps.swaylock.enable {
|
||||
home.packages = with pkgs; [swaylock];
|
||||
|
||||
programs.swaylock.enable = true;
|
||||
|
@ -15,8 +15,8 @@
|
|||
caps-lock-key-hl-color=e78284
|
||||
color=303446
|
||||
daemonize
|
||||
font="${config.alyraffauf.theme.terminalFont.name}-Regular"
|
||||
image=${config.alyraffauf.theme.wallpaper}
|
||||
font="${config.ar.home.theme.terminalFont.name}-Regular"
|
||||
image=${config.ar.home.theme.wallpaper}
|
||||
indicator-caps-lock
|
||||
indicator-idle-visible
|
||||
indicator-radius=120
|
||||
|
@ -27,17 +27,17 @@
|
|||
inside-ver-color=303446cc
|
||||
inside-wrong-color=303446cc
|
||||
key-hl-color=a6d189
|
||||
line-caps-lock-color=${config.alyraffauf.theme.colors.background}CC
|
||||
line-clear-color=${config.alyraffauf.theme.colors.background}CC
|
||||
line-color=${config.alyraffauf.theme.colors.background}CC
|
||||
line-ver-color=${config.alyraffauf.theme.colors.background}CC
|
||||
line-wrong-color=${config.alyraffauf.theme.colors.background}CC
|
||||
line-caps-lock-color=${config.ar.home.theme.colors.background}CC
|
||||
line-clear-color=${config.ar.home.theme.colors.background}CC
|
||||
line-color=${config.ar.home.theme.colors.background}CC
|
||||
line-ver-color=${config.ar.home.theme.colors.background}CC
|
||||
line-wrong-color=${config.ar.home.theme.colors.background}CC
|
||||
ring-caps-lock-color=e78284cc
|
||||
ring-clear-color=85c1dccc
|
||||
ring-color=${config.alyraffauf.theme.colors.primary}CC
|
||||
ring-color=${config.ar.home.theme.colors.primary}CC
|
||||
ring-ver-color=a6d189cc
|
||||
ring-wrong-color=e78284cc
|
||||
separator-color=${config.alyraffauf.theme.colors.background}CC
|
||||
separator-color=${config.ar.home.theme.colors.background}CC
|
||||
text-caps-lock-color=c6d0f5
|
||||
text-clear-color=c6d0f5
|
||||
text-ver-color=c6d0f5
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
config,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf config.alyraffauf.apps.thunar.enable {
|
||||
config = lib.mkIf config.ar.home.apps.thunar.enable {
|
||||
home.packages = with pkgs; [
|
||||
xfce.thunar
|
||||
xfce.thunar-archive-plugin
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
config,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf config.alyraffauf.apps.tmux.enable {
|
||||
config = lib.mkIf config.ar.home.apps.tmux.enable {
|
||||
programs.tmux = {
|
||||
enable = true;
|
||||
mouse = true;
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
config,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf config.alyraffauf.apps.vsCodium.enable {
|
||||
config = lib.mkIf config.ar.home.apps.vsCodium.enable {
|
||||
programs.vscode = {
|
||||
enable = true;
|
||||
package = pkgs.vscodium;
|
||||
|
@ -12,7 +12,7 @@
|
|||
enableExtensionUpdateCheck = false;
|
||||
userSettings = {
|
||||
"diffEditor.ignoreTrimWhitespace" = false;
|
||||
"editor.fontFamily" = "'NotoSansM Nerd Font','${config.alyraffauf.theme.terminalFont.name}', 'monospace', monospace";
|
||||
"editor.fontFamily" = "'NotoSansM Nerd Font','${config.ar.home.theme.terminalFont.name}', 'monospace', monospace";
|
||||
"editor.fontSize" = lib.mkDefault 14;
|
||||
"terminal.integrated.fontSize" = lib.mkDefault 14;
|
||||
"explorer.confirmDelete" = false;
|
||||
|
@ -20,20 +20,20 @@
|
|||
"git.autofetch" = true;
|
||||
"git.confirmSync" = false;
|
||||
"nix.formatterPath" = lib.getExe pkgs.alejandra;
|
||||
"terminal.external.linuxExec" = config.alyraffauf.defaultApps.terminal.exe;
|
||||
"terminal.external.linuxExec" = config.ar.home.defaultApps.terminal.exe;
|
||||
"update.mode" = "none";
|
||||
"window.menuBarVisibility" = "hidden";
|
||||
"window.titleBarStyle" =
|
||||
if config.alyraffauf.desktop.gnome.enable
|
||||
if config.ar.home.desktop.gnome.enable
|
||||
then "custom"
|
||||
else "native";
|
||||
"window.zoomPerWindow" = false;
|
||||
"workbench.colorTheme" =
|
||||
if config.alyraffauf.theme.colors.preferDark
|
||||
if config.ar.home.theme.colors.preferDark
|
||||
then "Catppuccin Frappé"
|
||||
else "Catppuccin Latte";
|
||||
"workbench.iconTheme" =
|
||||
if config.alyraffauf.theme.colors.preferDark
|
||||
if config.ar.home.theme.colors.preferDark
|
||||
then "catppuccin-frappe"
|
||||
else "catppuccin-latte";
|
||||
"workbench.preferredDarkColorTheme" = "Catppuccin Frappé";
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
config,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf config.alyraffauf.apps.waybar.enable {
|
||||
config = lib.mkIf config.ar.home.apps.waybar.enable {
|
||||
programs.waybar = {
|
||||
enable = true;
|
||||
settings = {
|
||||
|
@ -14,11 +14,11 @@
|
|||
output = ["*"];
|
||||
position = "top";
|
||||
modules-left =
|
||||
lib.optionals (config.alyraffauf.desktop.hyprland.enable)
|
||||
lib.optionals (config.ar.home.desktop.hyprland.enable)
|
||||
["hyprland/workspaces" "hyprland/submap"]
|
||||
++ lib.optionals (config.alyraffauf.desktop.sway.enable)
|
||||
++ lib.optionals (config.ar.home.desktop.sway.enable)
|
||||
["sway/workspaces" "sway/scratchpad" "sway/mode"]
|
||||
++ lib.optionals (config.alyraffauf.desktop.hyprland.tabletMode.menuButton)
|
||||
++ lib.optionals (config.ar.home.desktop.hyprland.tabletMode.menuButton)
|
||||
["custom/menu" "custom/hyprland-close"];
|
||||
modules-center = ["clock"];
|
||||
modules-right = [
|
||||
|
@ -138,7 +138,7 @@
|
|||
"tooltip-format-wifi" = "{essid} ({signalStrength}%) {icon}";
|
||||
"tooltip-format-ethernet" = "{ifname} ";
|
||||
"tooltip-format-disconnected" = "Disconnected";
|
||||
"on-click" = "${config.alyraffauf.defaultApps.terminalEditor.exe} --class nmtui -e ${pkgs.networkmanager}/bin/nmtui";
|
||||
"on-click" = "${config.ar.home.defaultApps.terminalEditor.exe} --class nmtui -e ${pkgs.networkmanager}/bin/nmtui";
|
||||
};
|
||||
"tray" = {"spacing" = 15;};
|
||||
"custom/logout" = {
|
||||
|
@ -174,25 +174,25 @@
|
|||
* {
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
font-family: "${config.alyraffauf.theme.terminalFont.name}";
|
||||
font-family: "${config.ar.home.theme.terminalFont.name}";
|
||||
font-size: 14px;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
background: rgba (35, 38, 52, 0.0);
|
||||
color: ${config.alyraffauf.theme.colors.text};
|
||||
color: ${config.ar.home.theme.colors.text};
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
padding: 0px 5px;
|
||||
margin: 0 0px;
|
||||
color: ${config.alyraffauf.theme.colors.text};
|
||||
color: ${config.ar.home.theme.colors.text};
|
||||
}
|
||||
|
||||
#workspaces button.active,
|
||||
#workspaces button.focused {
|
||||
color: ${config.alyraffauf.theme.colors.primary};
|
||||
color: ${config.ar.home.theme.colors.primary};
|
||||
}
|
||||
|
||||
#submap,
|
||||
|
@ -205,11 +205,11 @@
|
|||
#tags button {
|
||||
padding: 0px 5px;
|
||||
margin: 0 0px;
|
||||
color: ${config.alyraffauf.theme.colors.text};
|
||||
color: ${config.ar.home.theme.colors.text};
|
||||
}
|
||||
|
||||
#tags button.focused {
|
||||
color: ${config.alyraffauf.theme.colors.primary};
|
||||
color: ${config.ar.home.theme.colors.primary};
|
||||
}
|
||||
|
||||
#clock,
|
||||
|
@ -229,11 +229,11 @@
|
|||
}
|
||||
|
||||
#battery {
|
||||
color: ${config.alyraffauf.theme.colors.text};
|
||||
color: ${config.ar.home.theme.colors.text};
|
||||
}
|
||||
|
||||
#battery.charging {
|
||||
color: ${config.alyraffauf.theme.colors.primary};
|
||||
color: ${config.ar.home.theme.colors.primary};
|
||||
}
|
||||
|
||||
#battery.critical:not(.charging) {
|
||||
|
@ -252,7 +252,7 @@
|
|||
#hardware {
|
||||
border-radius: 10;
|
||||
background: rgba ${
|
||||
if config.alyraffauf.theme.colors.preferDark
|
||||
if config.ar.home.theme.colors.preferDark
|
||||
then "(35, 38, 52, 0.8);"
|
||||
else "(220, 224, 232, 0.8);"
|
||||
}
|
||||
|
@ -266,7 +266,7 @@
|
|||
|
||||
#submap,
|
||||
#mode {
|
||||
color: ${config.alyraffauf.theme.colors.text};
|
||||
color: ${config.ar.home.theme.colors.text};
|
||||
background: rgba(231, 130, 132, 0.8);
|
||||
}
|
||||
'';
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
config,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf config.alyraffauf.apps.wlogout.enable {
|
||||
config = lib.mkIf config.ar.home.apps.wlogout.enable {
|
||||
programs.wlogout = {
|
||||
enable = true;
|
||||
layout = [
|
||||
|
@ -29,7 +29,7 @@
|
|||
];
|
||||
style = ''
|
||||
* {
|
||||
font-family: "${config.alyraffauf.theme.font.name}", sans-serif;
|
||||
font-family: "${config.ar.home.theme.font.name}", sans-serif;
|
||||
background-image: none;
|
||||
box-shadow: none;
|
||||
transition: 20ms;
|
||||
|
@ -42,7 +42,7 @@
|
|||
button {
|
||||
text-decoration-color: #FAFAFA;
|
||||
color: #FAFAFA;
|
||||
background-color: ${config.alyraffauf.theme.colors.background};
|
||||
background-color: ${config.ar.home.theme.colors.background};
|
||||
background-color: rgba(12, 12, 12, 0.0);
|
||||
background-repeat: no-repeat;
|
||||
background-size: 10%;
|
||||
|
@ -50,7 +50,7 @@
|
|||
}
|
||||
|
||||
button:active, button:hover {
|
||||
background-color: ${config.alyraffauf.theme.colors.primary};
|
||||
background-color: ${config.ar.home.theme.colors.primary};
|
||||
outline-style: none;
|
||||
}
|
||||
|
||||
|
|
|
@ -4,8 +4,8 @@
|
|||
config,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf config.alyraffauf.defaultApps.enable {
|
||||
home.packages = with config.alyraffauf.defaultApps; [
|
||||
config = lib.mkIf config.ar.home.defaultApps.enable {
|
||||
home.packages = with config.ar.home.defaultApps; [
|
||||
audioPlayer.package
|
||||
editor.package
|
||||
fileManager.package
|
||||
|
@ -20,42 +20,42 @@
|
|||
dconf = {
|
||||
enable = true;
|
||||
settings = {
|
||||
"org/cinnamon/desktop/applications/terminal".exec = "${config.alyraffauf.defaultApps.terminal.exe}";
|
||||
"org/cinnamon/desktop/default-applications/terminal".exec = "${config.alyraffauf.defaultApps.terminal.exe}";
|
||||
"org/cinnamon/desktop/applications/terminal".exec = "${config.ar.home.defaultApps.terminal.exe}";
|
||||
"org/cinnamon/desktop/default-applications/terminal".exec = "${config.ar.home.defaultApps.terminal.exe}";
|
||||
};
|
||||
};
|
||||
|
||||
xdg.mimeApps = {
|
||||
enable = true;
|
||||
defaultApplications = {
|
||||
"application/json" = config.alyraffauf.defaultApps.editor.desktop;
|
||||
"application/pdf" = config.alyraffauf.defaultApps.pdfViewer.desktop;
|
||||
"application/x-extension-htm" = config.alyraffauf.defaultApps.webBrowser.desktop;
|
||||
"application/x-extension-html" = config.alyraffauf.defaultApps.webBrowser.desktop;
|
||||
"application/x-extension-shtml" = config.alyraffauf.defaultApps.webBrowser.desktop;
|
||||
"application/x-extension-xht" = config.alyraffauf.defaultApps.webBrowser.desktop;
|
||||
"application/x-extension-xhtml" = config.alyraffauf.defaultApps.webBrowser.desktop;
|
||||
"application/x-shellscript" = config.alyraffauf.defaultApps.editor.desktop;
|
||||
"application/xhtml+xml" = config.alyraffauf.defaultApps.webBrowser.desktop;
|
||||
"audio/*" = config.alyraffauf.defaultApps.audioPlayer.desktop;
|
||||
"image/*" = config.alyraffauf.defaultApps.imageViewer.desktop;
|
||||
"inode/directory" = config.alyraffauf.defaultApps.fileManager.desktop;
|
||||
"text/html" = config.alyraffauf.defaultApps.webBrowser.desktop;
|
||||
"text/markdown" = config.alyraffauf.defaultApps.editor.desktop;
|
||||
"text/plain" = config.alyraffauf.defaultApps.editor.desktop;
|
||||
"text/x-python" = config.alyraffauf.defaultApps.editor.desktop;
|
||||
"text/xml" = config.alyraffauf.defaultApps.webBrowser.desktop;
|
||||
"video/*" = config.alyraffauf.defaultApps.videoPlayer.desktop;
|
||||
"x-scheme-handler/chrome" = config.alyraffauf.defaultApps.webBrowser.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;
|
||||
"application/json" = config.ar.home.defaultApps.editor.desktop;
|
||||
"application/pdf" = config.ar.home.defaultApps.pdfViewer.desktop;
|
||||
"application/x-extension-htm" = config.ar.home.defaultApps.webBrowser.desktop;
|
||||
"application/x-extension-html" = config.ar.home.defaultApps.webBrowser.desktop;
|
||||
"application/x-extension-shtml" = config.ar.home.defaultApps.webBrowser.desktop;
|
||||
"application/x-extension-xht" = config.ar.home.defaultApps.webBrowser.desktop;
|
||||
"application/x-extension-xhtml" = config.ar.home.defaultApps.webBrowser.desktop;
|
||||
"application/x-shellscript" = config.ar.home.defaultApps.editor.desktop;
|
||||
"application/xhtml+xml" = config.ar.home.defaultApps.webBrowser.desktop;
|
||||
"audio/*" = config.ar.home.defaultApps.audioPlayer.desktop;
|
||||
"image/*" = config.ar.home.defaultApps.imageViewer.desktop;
|
||||
"inode/directory" = config.ar.home.defaultApps.fileManager.desktop;
|
||||
"text/html" = config.ar.home.defaultApps.webBrowser.desktop;
|
||||
"text/markdown" = config.ar.home.defaultApps.editor.desktop;
|
||||
"text/plain" = config.ar.home.defaultApps.editor.desktop;
|
||||
"text/x-python" = config.ar.home.defaultApps.editor.desktop;
|
||||
"text/xml" = config.ar.home.defaultApps.webBrowser.desktop;
|
||||
"video/*" = config.ar.home.defaultApps.videoPlayer.desktop;
|
||||
"x-scheme-handler/chrome" = config.ar.home.defaultApps.webBrowser.desktop;
|
||||
"x-scheme-handler/ftp" = config.ar.home.defaultApps.webBrowser.desktop;
|
||||
"x-scheme-handler/http" = config.ar.home.defaultApps.webBrowser.desktop;
|
||||
"x-scheme-handler/https" = config.ar.home.defaultApps.webBrowser.desktop;
|
||||
};
|
||||
};
|
||||
home.sessionVariables = {
|
||||
BROWSER = "${config.alyraffauf.defaultApps.webBrowser.exe}";
|
||||
EDITOR = "${config.alyraffauf.defaultApps.terminalEditor.exe}";
|
||||
TERMINAL = "${config.alyraffauf.defaultApps.terminal.exe}";
|
||||
BROWSER = "${config.ar.home.defaultApps.webBrowser.exe}";
|
||||
EDITOR = "${config.ar.home.defaultApps.terminalEditor.exe}";
|
||||
TERMINAL = "${config.ar.home.defaultApps.terminal.exe}";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
config,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf config.alyraffauf.desktop.cinnamon.enable {
|
||||
config = lib.mkIf config.ar.home.desktop.cinnamon.enable {
|
||||
dconf = {
|
||||
enable = true;
|
||||
settings = {
|
||||
|
@ -56,7 +56,7 @@
|
|||
"org/cinnamon/desktop/keybindings/custom-keybindings/custom0" = {
|
||||
binding = ["<Super>e"];
|
||||
name = "Open Editor";
|
||||
command = "${config.alyraffauf.defaultApps.editor.exe}";
|
||||
command = "${config.ar.home.defaultApps.editor.exe}";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
./waylandComp.nix
|
||||
];
|
||||
|
||||
config = lib.mkIf config.alyraffauf.desktop.enable {
|
||||
config = lib.mkIf config.ar.home.desktop.enable {
|
||||
dconf = {
|
||||
enable = true;
|
||||
settings = {
|
||||
|
@ -37,8 +37,8 @@
|
|||
"file://${config.home.homeDirectory}/src"
|
||||
]
|
||||
++ lib.optional (
|
||||
osConfig.alyraffauf.services.syncthing.enable
|
||||
&& (osConfig.alyraffauf.services.syncthing.user == config.home.username)
|
||||
osConfig.ar.services.syncthing.enable
|
||||
&& (osConfig.ar.services.syncthing.user == config.home.username)
|
||||
) "file://${config.home.homeDirectory}/sync";
|
||||
|
||||
xdg = {
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
config,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf config.alyraffauf.desktop.gnome.enable {
|
||||
config = lib.mkIf config.ar.home.desktop.gnome.enable {
|
||||
dconf.enable = true;
|
||||
dconf.settings = {
|
||||
"org/gnome/desktop/datetime".automatic-timezone = true;
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
config,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf config.alyraffauf.desktop.hyprland.enable {
|
||||
config = lib.mkIf config.ar.home.desktop.hyprland.enable {
|
||||
wayland.windowManager.hyprland.enable = true;
|
||||
|
||||
wayland.windowManager.hyprland.extraConfig = let
|
||||
|
@ -16,19 +16,19 @@
|
|||
|
||||
# Default apps
|
||||
defaultApps = {
|
||||
browser = config.alyraffauf.defaultApps.webBrowser.exe;
|
||||
editor = config.alyraffauf.defaultApps.editor.exe;
|
||||
fileManager = config.alyraffauf.defaultApps.fileManager.exe;
|
||||
browser = config.ar.home.defaultApps.webBrowser.exe;
|
||||
editor = config.ar.home.defaultApps.editor.exe;
|
||||
fileManager = config.ar.home.defaultApps.fileManager.exe;
|
||||
launcher = lib.getExe pkgs.fuzzel;
|
||||
lock = lib.getExe pkgs.swaylock;
|
||||
logout = lib.getExe pkgs.wlogout;
|
||||
passwordManager = lib.getExe' pkgs.keepassxc "keepassxc";
|
||||
terminal = config.alyraffauf.defaultApps.terminal.exe;
|
||||
terminal = config.ar.home.defaultApps.terminal.exe;
|
||||
virtKeyboard = lib.getExe' pkgs.squeekboard "squeekboard";
|
||||
};
|
||||
|
||||
wallpaperd =
|
||||
if config.alyraffauf.desktop.hyprland.randomWallpaper
|
||||
if config.ar.home.desktop.hyprland.randomWallpaper
|
||||
then
|
||||
pkgs.writers.writeRuby "hyprland-randomWallpaper" {} ''
|
||||
require 'fileutils'
|
||||
|
@ -66,7 +66,7 @@
|
|||
end
|
||||
end
|
||||
''
|
||||
else "${lib.getExe pkgs.swaybg} -i ${config.alyraffauf.theme.wallpaper}";
|
||||
else "${lib.getExe pkgs.swaybg} -i ${config.ar.home.theme.wallpaper}";
|
||||
|
||||
startupApps =
|
||||
[
|
||||
|
@ -80,7 +80,7 @@
|
|||
(lib.getExe pkgs.mako)
|
||||
"${pkgs.mate.mate-polkit}/libexec/polkit-mate-authentication-agent-1"
|
||||
]
|
||||
++ lib.lists.optionals (config.alyraffauf.desktop.hyprland.redShift) [
|
||||
++ lib.lists.optionals (config.ar.home.desktop.hyprland.redShift) [
|
||||
# "${pkgs.geoclue2}/libexec/geoclue-2.0/demos/agent"
|
||||
"${lib.getExe pkgs.gammastep} -l 33.74:-84.38"
|
||||
];
|
||||
|
@ -185,7 +185,7 @@
|
|||
timeout 330 '${hyprctl} dispatch dpms off' \
|
||||
resume '${hyprctl} dispatch dpms on' \
|
||||
${
|
||||
if config.alyraffauf.desktop.hyprland.autoSuspend
|
||||
if config.ar.home.desktop.hyprland.autoSuspend
|
||||
then ''timeout 900 'sleep 2 && ${lib.getExe' pkgs.systemd "systemctl"} suspend' \''
|
||||
else ''\''
|
||||
}
|
||||
|
@ -216,7 +216,7 @@
|
|||
env = GDK_SCALE,${gdk_scale}
|
||||
|
||||
# Some default env vars.
|
||||
env = XCURSOR_SIZE,${toString config.alyraffauf.theme.cursorTheme.size}
|
||||
env = XCURSOR_SIZE,${toString config.ar.home.theme.cursorTheme.size}
|
||||
env = QT_QPA_PLATFORMTHEME,qt6ct
|
||||
|
||||
# Execute necessary apps
|
||||
|
@ -257,8 +257,8 @@
|
|||
gaps_in = 5
|
||||
gaps_out = 6
|
||||
border_size = 2
|
||||
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.theme.colors.inactive}AA)
|
||||
col.active_border = rgba(${lib.strings.removePrefix "#" config.ar.home.theme.colors.secondary}EE) rgba(${lib.strings.removePrefix "#" config.ar.home.theme.colors.primary}EE) 45deg
|
||||
col.inactive_border = rgba(${lib.strings.removePrefix "#" config.ar.home.theme.colors.inactive}AA)
|
||||
|
||||
layout = dwindle
|
||||
|
||||
|
@ -275,7 +275,7 @@
|
|||
drop_shadow = yes
|
||||
shadow_range = 4
|
||||
shadow_render_power = 3
|
||||
col.shadow = rgba(${lib.strings.removePrefix "#" config.alyraffauf.theme.colors.shadow}EE)
|
||||
col.shadow = rgba(${lib.strings.removePrefix "#" config.ar.home.theme.colors.shadow}EE)
|
||||
|
||||
dim_special = 0.5
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
lib.strings.concatMapStringsSep
|
||||
"\n"
|
||||
(app: "exec-once = sleep 1 && ${app}")
|
||||
config.alyraffauf.desktop.startupApps
|
||||
config.ar.home.desktop.startupApps
|
||||
}
|
||||
'';
|
||||
|
||||
|
|
|
@ -6,14 +6,14 @@
|
|||
}: {
|
||||
imports = [./randomWallpaper.nix ./redShift.nix];
|
||||
|
||||
config = lib.mkIf config.alyraffauf.desktop.sway.enable {
|
||||
config = lib.mkIf config.ar.home.desktop.sway.enable {
|
||||
wayland.windowManager.sway = {
|
||||
enable = true;
|
||||
wrapperFeatures.gtk = true;
|
||||
checkConfig = false;
|
||||
};
|
||||
|
||||
alyraffauf.theme.gtk.hideTitleBar =
|
||||
ar.home.theme.gtk.hideTitleBar =
|
||||
if config.wayland.windowManager.sway.package == pkgs.sway
|
||||
then true
|
||||
else false;
|
||||
|
@ -23,10 +23,10 @@
|
|||
swaymsg = lib.getExe' config.wayland.windowManager.sway.package "swaymsg";
|
||||
|
||||
# Default apps
|
||||
browser = config.alyraffauf.defaultApps.webBrowser.exe;
|
||||
fileManager = config.alyraffauf.defaultApps.fileManager.exe;
|
||||
editor = config.alyraffauf.defaultApps.editor.exe;
|
||||
terminal = config.alyraffauf.defaultApps.terminal.exe;
|
||||
browser = config.ar.home.defaultApps.webBrowser.exe;
|
||||
fileManager = config.ar.home.defaultApps.fileManager.exe;
|
||||
editor = config.ar.home.defaultApps.editor.exe;
|
||||
terminal = config.ar.home.defaultApps.terminal.exe;
|
||||
|
||||
brightness = lib.getExe' pkgs.swayosd "swayosd-client";
|
||||
brightness_up = "${brightness} --brightness=raise";
|
||||
|
@ -45,7 +45,7 @@
|
|||
bar = lib.getExe pkgs.waybar;
|
||||
launcher = lib.getExe pkgs.fuzzel;
|
||||
notifyd = lib.getExe pkgs.mako;
|
||||
wallpaperd = "${lib.getExe pkgs.swaybg} -i ${config.alyraffauf.theme.wallpaper}";
|
||||
wallpaperd = "${lib.getExe pkgs.swaybg} -i ${config.ar.home.theme.wallpaper}";
|
||||
logout = lib.getExe pkgs.wlogout;
|
||||
lock = lib.getExe pkgs.swaylock;
|
||||
idled = pkgs.writeShellScript "sway-idled" ''
|
||||
|
@ -58,7 +58,7 @@
|
|||
timeout 330 '${swaymsg} "output * dpms off"' \
|
||||
resume '${swaymsg} "output * dpms on"' \
|
||||
${
|
||||
if config.alyraffauf.desktop.sway.autoSuspend
|
||||
if config.ar.home.desktop.sway.autoSuspend
|
||||
then ''timeout 900 '${lib.getExe' pkgs.systemd "systemctl"} suspend' \''
|
||||
else ''\''
|
||||
}
|
||||
|
@ -86,27 +86,27 @@
|
|||
in {
|
||||
bars = [{command = "${bar}";}];
|
||||
modifier = "${modifier}";
|
||||
colors.background = "${config.alyraffauf.theme.colors.primary}EE";
|
||||
colors.background = "${config.ar.home.theme.colors.primary}EE";
|
||||
colors.focused = {
|
||||
background = "${config.alyraffauf.theme.colors.primary}EE";
|
||||
border = "${config.alyraffauf.theme.colors.primary}EE";
|
||||
childBorder = "${config.alyraffauf.theme.colors.primary}EE";
|
||||
indicator = "${config.alyraffauf.theme.colors.primary}EE";
|
||||
text = "${config.alyraffauf.theme.colors.text}";
|
||||
background = "${config.ar.home.theme.colors.primary}EE";
|
||||
border = "${config.ar.home.theme.colors.primary}EE";
|
||||
childBorder = "${config.ar.home.theme.colors.primary}EE";
|
||||
indicator = "${config.ar.home.theme.colors.primary}EE";
|
||||
text = "${config.ar.home.theme.colors.text}";
|
||||
};
|
||||
colors.focusedInactive = {
|
||||
background = "${config.alyraffauf.theme.colors.inactive}AA";
|
||||
border = "${config.alyraffauf.theme.colors.inactive}AA";
|
||||
childBorder = "${config.alyraffauf.theme.colors.inactive}AA";
|
||||
indicator = "${config.alyraffauf.theme.colors.inactive}AA";
|
||||
text = "${config.alyraffauf.theme.colors.text}";
|
||||
background = "${config.ar.home.theme.colors.inactive}AA";
|
||||
border = "${config.ar.home.theme.colors.inactive}AA";
|
||||
childBorder = "${config.ar.home.theme.colors.inactive}AA";
|
||||
indicator = "${config.ar.home.theme.colors.inactive}AA";
|
||||
text = "${config.ar.home.theme.colors.text}";
|
||||
};
|
||||
colors.unfocused = {
|
||||
background = "${config.alyraffauf.theme.colors.inactive}AA";
|
||||
border = "${config.alyraffauf.theme.colors.inactive}AA";
|
||||
childBorder = "${config.alyraffauf.theme.colors.inactive}AA";
|
||||
indicator = "${config.alyraffauf.theme.colors.inactive}AA";
|
||||
text = "${config.alyraffauf.theme.colors.text}";
|
||||
background = "${config.ar.home.theme.colors.inactive}AA";
|
||||
border = "${config.ar.home.theme.colors.inactive}AA";
|
||||
childBorder = "${config.ar.home.theme.colors.inactive}AA";
|
||||
indicator = "${config.ar.home.theme.colors.inactive}AA";
|
||||
text = "${config.ar.home.theme.colors.text}";
|
||||
};
|
||||
defaultWorkspace = "workspace number 1";
|
||||
focus = {
|
||||
|
@ -115,9 +115,9 @@
|
|||
# mouseWarping = "container";
|
||||
};
|
||||
fonts = {
|
||||
names = ["${config.alyraffauf.theme.font.name}"];
|
||||
names = ["${config.ar.home.theme.font.name}"];
|
||||
style = "Bold";
|
||||
size = config.alyraffauf.theme.font.size + 0.0;
|
||||
size = config.ar.home.theme.font.size + 0.0;
|
||||
};
|
||||
gaps.inner = 5;
|
||||
gaps.outer = 5;
|
||||
|
@ -279,7 +279,7 @@
|
|||
startup = [
|
||||
{
|
||||
command =
|
||||
if config.alyraffauf.desktop.sway.randomWallpaper
|
||||
if config.ar.home.desktop.sway.randomWallpaper
|
||||
then "true"
|
||||
else "${wallpaperd}";
|
||||
}
|
||||
|
@ -423,7 +423,7 @@
|
|||
corner_radius 10
|
||||
shadows enable
|
||||
shadows_on_csd enable
|
||||
shadow_color ${config.alyraffauf.theme.colors.shadow}
|
||||
shadow_color ${config.ar.home.theme.colors.shadow}
|
||||
|
||||
default_dim_inactive 0.05
|
||||
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
fi
|
||||
'';
|
||||
in {
|
||||
config = lib.mkIf config.alyraffauf.desktop.sway.randomWallpaper {
|
||||
config = lib.mkIf config.ar.home.desktop.sway.randomWallpaper {
|
||||
# Packages that should be installed to the user profile.
|
||||
home.packages = with pkgs; [swaybg sway-randomWallpaper];
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
config,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf config.alyraffauf.desktop.sway.redShift {
|
||||
config = lib.mkIf config.ar.home.desktop.sway.redShift {
|
||||
home.packages = with pkgs; [gammastep];
|
||||
wayland.windowManager.sway.config.startup = [
|
||||
# {command = "${pkgs.geoclue2}/libexec/geoclue-2.0/demos/agent";}
|
||||
|
|
|
@ -4,15 +4,13 @@
|
|||
config,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf (config.alyraffauf.desktop.hyprland.enable || config.alyraffauf.desktop.sway.enable) {
|
||||
alyraffauf = {
|
||||
apps = {
|
||||
fuzzel.enable = lib.mkDefault true;
|
||||
mako.enable = lib.mkDefault true;
|
||||
swaylock.enable = lib.mkDefault true;
|
||||
waybar.enable = lib.mkDefault true;
|
||||
wlogout.enable = lib.mkDefault true;
|
||||
};
|
||||
config = lib.mkIf (config.ar.home.desktop.hyprland.enable || config.ar.home.desktop.sway.enable) {
|
||||
ar.home.apps = {
|
||||
fuzzel.enable = lib.mkDefault true;
|
||||
mako.enable = lib.mkDefault true;
|
||||
swaylock.enable = lib.mkDefault true;
|
||||
waybar.enable = lib.mkDefault true;
|
||||
wlogout.enable = lib.mkDefault true;
|
||||
};
|
||||
|
||||
dconf = {
|
||||
|
@ -34,9 +32,9 @@
|
|||
xdg.portal = {
|
||||
enable = true;
|
||||
configPackages =
|
||||
lib.optionals (config.alyraffauf.desktop.hyprland.enable) [pkgs.xdg-desktop-portal-hyprland];
|
||||
lib.optionals (config.ar.home.desktop.hyprland.enable) [pkgs.xdg-desktop-portal-hyprland];
|
||||
extraPortals =
|
||||
lib.optionals (config.alyraffauf.desktop.hyprland.enable) [pkgs.xdg-desktop-portal-hyprland];
|
||||
lib.optionals (config.ar.home.desktop.hyprland.enable) [pkgs.xdg-desktop-portal-hyprland];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -5,458 +5,456 @@
|
|||
pkgs,
|
||||
...
|
||||
}: {
|
||||
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;
|
||||
};
|
||||
options.ar.home = {
|
||||
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.";
|
||||
fastfetch.enable = lib.mkEnableOption "Fastfetch.";
|
||||
firefox.enable = lib.mkEnableOption "Firefox web browser.";
|
||||
fuzzel.enable = lib.mkEnableOption "Fuzzel app launcher.";
|
||||
keepassxc = {
|
||||
enable = lib.mkEnableOption "KeePassXC password manager.";
|
||||
settings = lib.mkOption {
|
||||
description = "KeePassXC settings.";
|
||||
default = {};
|
||||
type = lib.types.attrs;
|
||||
};
|
||||
};
|
||||
librewolf.enable = lib.mkEnableOption "Librewolf web browser.";
|
||||
mako.enable = lib.mkEnableOption "Mako notification daemon.";
|
||||
nemo.enable = lib.mkOption {
|
||||
description = "Cinnamon Nemo file manager.";
|
||||
default = config.alyraffauf.defaultApps.fileManager.package == pkgs.cinnamon.nemo;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
neovim.enable = lib.mkEnableOption "Neovim text editor.";
|
||||
swaylock.enable = lib.mkEnableOption "Swaylock screen locker.";
|
||||
thunar.enable = lib.mkOption {
|
||||
description = "Thunar file manager.";
|
||||
default = config.alyraffauf.defaultApps.fileManager.package == pkgs.xfce.thunar;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
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 = {
|
||||
emacs.enable = lib.mkEnableOption "Emacs text editor.";
|
||||
fastfetch.enable = lib.mkEnableOption "Fastfetch.";
|
||||
firefox.enable = lib.mkEnableOption "Firefox web browser.";
|
||||
fuzzel.enable = lib.mkEnableOption "Fuzzel app launcher.";
|
||||
keepassxc = {
|
||||
enable = lib.mkEnableOption "KeePassXC password manager.";
|
||||
settings = lib.mkOption {
|
||||
description = "KeePassXC settings.";
|
||||
default = {};
|
||||
type = lib.types.attrs;
|
||||
};
|
||||
};
|
||||
librewolf.enable = lib.mkEnableOption "Librewolf web browser.";
|
||||
mako.enable = lib.mkEnableOption "Mako notification daemon.";
|
||||
nemo.enable = lib.mkOption {
|
||||
description = "Cinnamon Nemo file manager.";
|
||||
default = config.ar.home.defaultApps.fileManager.package == pkgs.cinnamon.nemo;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
neovim.enable = lib.mkEnableOption "Neovim text editor.";
|
||||
swaylock.enable = lib.mkEnableOption "Swaylock screen locker.";
|
||||
thunar.enable = lib.mkOption {
|
||||
description = "Thunar file manager.";
|
||||
default = config.ar.home.defaultApps.fileManager.package == pkgs.xfce.thunar;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
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.mkOption {
|
||||
description = "Declaratively set default apps and file associations.";
|
||||
default = config.ar.home.desktop.enable;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
audioPlayer = {
|
||||
exe = lib.mkOption {
|
||||
description = "Default audio player executable.";
|
||||
default = lib.getExe config.ar.home.defaultApps.audioPlayer.package;
|
||||
type = lib.types.str;
|
||||
};
|
||||
desktop = lib.mkOption {
|
||||
description = "Default audio player desktop file.";
|
||||
default = config.ar.home.defaultApps.videoPlayer.desktop;
|
||||
type = lib.types.str;
|
||||
};
|
||||
package = lib.mkOption {
|
||||
description = "Default audio player package.";
|
||||
default = config.ar.home.defaultApps.videoPlayer.package;
|
||||
type = lib.types.package;
|
||||
};
|
||||
};
|
||||
editor = {
|
||||
exe = lib.mkOption {
|
||||
description = "Default editor executable.";
|
||||
default = lib.getExe config.ar.home.defaultApps.editor.package;
|
||||
type = lib.types.str;
|
||||
};
|
||||
desktop = lib.mkOption {
|
||||
description = "Default editor desktop file.";
|
||||
default = "codium.desktop";
|
||||
type = lib.types.str;
|
||||
};
|
||||
package = lib.mkOption {
|
||||
description = "Default editor package.";
|
||||
default = config.programs.vscode.package;
|
||||
type = lib.types.package;
|
||||
};
|
||||
};
|
||||
fileManager = {
|
||||
exe = lib.mkOption {
|
||||
description = "Default file manager executable.";
|
||||
default = lib.getExe config.ar.home.defaultApps.fileManager.package;
|
||||
type = lib.types.str;
|
||||
};
|
||||
desktop = lib.mkOption {
|
||||
description = "Default file manager desktop file.";
|
||||
default = "nemo.desktop";
|
||||
type = lib.types.str;
|
||||
};
|
||||
package = lib.mkOption {
|
||||
description = "Default file manager package.";
|
||||
default = pkgs.cinnamon.nemo;
|
||||
type = lib.types.package;
|
||||
};
|
||||
};
|
||||
imageViewer = {
|
||||
exe = lib.mkOption {
|
||||
description = "Default image viewer executable.";
|
||||
default = lib.getExe config.ar.home.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;
|
||||
};
|
||||
};
|
||||
pdfViewer = {
|
||||
exe = lib.mkOption {
|
||||
description = "Default PDF viewer executable.";
|
||||
default = lib.getExe config.ar.home.defaultApps.pdfEditor.package;
|
||||
type = lib.types.str;
|
||||
};
|
||||
desktop = lib.mkOption {
|
||||
description = "Default PDF viewer desktop file.";
|
||||
default = "org.gnome.Evince.desktop";
|
||||
type = lib.types.str;
|
||||
};
|
||||
package = lib.mkOption {
|
||||
description = "Default PDF viewer package.";
|
||||
default = pkgs.evince;
|
||||
type = lib.types.package;
|
||||
};
|
||||
};
|
||||
terminal = {
|
||||
exe = lib.mkOption {
|
||||
description = "Default terminal executable.";
|
||||
default = lib.getExe config.ar.home.defaultApps.terminal.package;
|
||||
type = lib.types.str;
|
||||
};
|
||||
desktop = lib.mkOption {
|
||||
description = "Default terminal desktop file.";
|
||||
default = "alacritty.desktop";
|
||||
type = lib.types.str;
|
||||
};
|
||||
package = lib.mkOption {
|
||||
description = "Default terminal package.";
|
||||
default = config.programs.alacritty.package;
|
||||
type = lib.types.package;
|
||||
};
|
||||
};
|
||||
terminalEditor = {
|
||||
exe = lib.mkOption {
|
||||
description = "Default terminal editor executable.";
|
||||
default = lib.getExe config.ar.home.defaultApps.terminalEditor.package;
|
||||
type = lib.types.str;
|
||||
};
|
||||
desktop = lib.mkOption {
|
||||
description = "Default terminal editor desktop file.";
|
||||
default = "nvim.desktop";
|
||||
type = lib.types.str;
|
||||
};
|
||||
package = lib.mkOption {
|
||||
description = "Default terminal editor package.";
|
||||
default = config.programs.nixvim.package;
|
||||
type = lib.types.package;
|
||||
};
|
||||
};
|
||||
videoPlayer = {
|
||||
exe = lib.mkOption {
|
||||
description = "Default video player executable.";
|
||||
default = lib.getExe config.ar.home.defaultApps.videoPlayer.package;
|
||||
type = lib.types.str;
|
||||
};
|
||||
desktop = lib.mkOption {
|
||||
description = "Default video player desktop file.";
|
||||
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;
|
||||
};
|
||||
};
|
||||
webBrowser = {
|
||||
exe = lib.mkOption {
|
||||
description = "Default web browser executable.";
|
||||
default = lib.getExe config.ar.home.defaultApps.webBrowser.package;
|
||||
type = lib.types.str;
|
||||
};
|
||||
desktop = lib.mkOption {
|
||||
description = "Default web browser desktop file.";
|
||||
default = "firefox.desktop";
|
||||
type = lib.types.str;
|
||||
};
|
||||
package = lib.mkOption {
|
||||
description = "Default web browser package.";
|
||||
default = config.programs.firefox.package;
|
||||
type = lib.types.package;
|
||||
};
|
||||
};
|
||||
};
|
||||
desktop = {
|
||||
enable = lib.mkOption {
|
||||
description = "Graphical desktop.";
|
||||
default = osConfig.ar.desktop.enable;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
cinnamon.enable = lib.mkOption {
|
||||
description = "Cinnamon with sane defaults";
|
||||
default = osConfig.ar.desktop.cinnamon.enable;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
gnome.enable = lib.mkOption {
|
||||
description = "GNOME with sane defaults.";
|
||||
default = osConfig.ar.desktop.gnome.enable;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
hyprland = {
|
||||
enable = lib.mkOption {
|
||||
description = "Declaratively set default apps and file associations.";
|
||||
default = config.alyraffauf.desktop.enable;
|
||||
description = "Hyprland with full desktop session components.";
|
||||
default = osConfig.ar.desktop.hyprland.enable;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
audioPlayer = {
|
||||
exe = lib.mkOption {
|
||||
description = "Default audio player executable.";
|
||||
default = lib.getExe config.alyraffauf.defaultApps.audioPlayer.package;
|
||||
type = lib.types.str;
|
||||
};
|
||||
desktop = lib.mkOption {
|
||||
description = "Default audio player desktop file.";
|
||||
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;
|
||||
};
|
||||
autoSuspend = lib.mkOption {
|
||||
description = "Whether to autosuspend on idle.";
|
||||
default = config.ar.home.desktop.hyprland.enable;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
editor = {
|
||||
exe = lib.mkOption {
|
||||
description = "Default editor executable.";
|
||||
default = lib.getExe config.alyraffauf.defaultApps.editor.package;
|
||||
type = lib.types.str;
|
||||
};
|
||||
desktop = lib.mkOption {
|
||||
description = "Default editor desktop file.";
|
||||
default = "codium.desktop";
|
||||
type = lib.types.str;
|
||||
};
|
||||
package = lib.mkOption {
|
||||
description = "Default editor package.";
|
||||
default = config.programs.vscode.package;
|
||||
type = lib.types.package;
|
||||
};
|
||||
randomWallpaper = lib.mkOption {
|
||||
description = "Whether to enable random wallpaper script.";
|
||||
default = config.ar.home.desktop.hyprland.enable;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
fileManager = {
|
||||
exe = lib.mkOption {
|
||||
description = "Default file manager executable.";
|
||||
default = lib.getExe config.alyraffauf.defaultApps.fileManager.package;
|
||||
type = lib.types.str;
|
||||
};
|
||||
desktop = lib.mkOption {
|
||||
description = "Default file manager desktop file.";
|
||||
default = "nemo.desktop";
|
||||
type = lib.types.str;
|
||||
};
|
||||
package = lib.mkOption {
|
||||
description = "Default file manager package.";
|
||||
default = pkgs.cinnamon.nemo;
|
||||
type = lib.types.package;
|
||||
};
|
||||
redShift = lib.mkOption {
|
||||
description = "Whether to redshift display colors at night.";
|
||||
default = config.ar.home.desktop.hyprland.enable;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
imageViewer = {
|
||||
exe = lib.mkOption {
|
||||
description = "Default image viewer executable.";
|
||||
default = lib.getExe config.alyraffauf.defaultApps.imageViewer.package;
|
||||
type = lib.types.str;
|
||||
tabletMode = {
|
||||
enable = lib.mkEnableOption "Tablet mode for hyprland.";
|
||||
autoRotate = lib.mkOption {
|
||||
description = "Whether to autorotate screen.";
|
||||
default = config.ar.home.desktop.hyprland.tabletMode.enable;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
desktop = lib.mkOption {
|
||||
description = "Default image viewer desktop file name.";
|
||||
default = "org.gnome.eog.desktop";
|
||||
type = lib.types.str;
|
||||
menuButton = lib.mkOption {
|
||||
description = "Whether to add menu button for waybar.";
|
||||
default = config.ar.home.desktop.hyprland.tabletMode.enable;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
package = lib.mkOption {
|
||||
description = "Default image viewer package.";
|
||||
default = pkgs.gnome.eog;
|
||||
type = lib.types.package;
|
||||
};
|
||||
};
|
||||
pdfViewer = {
|
||||
exe = lib.mkOption {
|
||||
description = "Default PDF viewer executable.";
|
||||
default = lib.getExe config.alyraffauf.defaultApps.pdfEditor.package;
|
||||
type = lib.types.str;
|
||||
};
|
||||
desktop = lib.mkOption {
|
||||
description = "Default PDF viewer desktop file.";
|
||||
default = "org.gnome.Evince.desktop";
|
||||
type = lib.types.str;
|
||||
};
|
||||
package = lib.mkOption {
|
||||
description = "Default PDF viewer package.";
|
||||
default = pkgs.evince;
|
||||
type = lib.types.package;
|
||||
};
|
||||
};
|
||||
terminal = {
|
||||
exe = lib.mkOption {
|
||||
description = "Default terminal executable.";
|
||||
default = lib.getExe config.alyraffauf.defaultApps.terminal.package;
|
||||
type = lib.types.str;
|
||||
};
|
||||
desktop = lib.mkOption {
|
||||
description = "Default terminal desktop file.";
|
||||
default = "alacritty.desktop";
|
||||
type = lib.types.str;
|
||||
};
|
||||
package = lib.mkOption {
|
||||
description = "Default terminal package.";
|
||||
default = config.programs.alacritty.package;
|
||||
type = lib.types.package;
|
||||
};
|
||||
};
|
||||
terminalEditor = {
|
||||
exe = lib.mkOption {
|
||||
description = "Default terminal editor executable.";
|
||||
default = lib.getExe config.alyraffauf.defaultApps.terminalEditor.package;
|
||||
type = lib.types.str;
|
||||
};
|
||||
desktop = lib.mkOption {
|
||||
description = "Default terminal editor desktop file.";
|
||||
default = "nvim.desktop";
|
||||
type = lib.types.str;
|
||||
};
|
||||
package = lib.mkOption {
|
||||
description = "Default terminal editor package.";
|
||||
default = config.programs.nixvim.package;
|
||||
type = lib.types.package;
|
||||
};
|
||||
};
|
||||
videoPlayer = {
|
||||
exe = lib.mkOption {
|
||||
description = "Default video player executable.";
|
||||
default = lib.getExe config.alyraffauf.defaultApps.videoPlayer.package;
|
||||
type = lib.types.str;
|
||||
};
|
||||
desktop = lib.mkOption {
|
||||
description = "Default video player desktop file.";
|
||||
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;
|
||||
};
|
||||
};
|
||||
webBrowser = {
|
||||
exe = lib.mkOption {
|
||||
description = "Default web browser executable.";
|
||||
default = lib.getExe config.alyraffauf.defaultApps.webBrowser.package;
|
||||
type = lib.types.str;
|
||||
};
|
||||
desktop = lib.mkOption {
|
||||
description = "Default web browser desktop file.";
|
||||
default = "firefox.desktop";
|
||||
type = lib.types.str;
|
||||
};
|
||||
package = lib.mkOption {
|
||||
description = "Default web browser package.";
|
||||
default = config.programs.firefox.package;
|
||||
type = lib.types.package;
|
||||
virtKeyboard = lib.mkOption {
|
||||
description = "Whether to enable dynamic virtual keyboard.";
|
||||
default = config.ar.home.desktop.hyprland.tabletMode.enable;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
};
|
||||
};
|
||||
desktop = {
|
||||
sway = {
|
||||
enable = lib.mkOption {
|
||||
description = "Graphical desktop.";
|
||||
default = osConfig.alyraffauf.desktop.enable;
|
||||
description = "Sway with full desktop session components.";
|
||||
default = osConfig.ar.desktop.sway.enable;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
cinnamon.enable = lib.mkOption {
|
||||
description = "Cinnamon with sane defaults";
|
||||
default = osConfig.alyraffauf.desktop.cinnamon.enable;
|
||||
autoSuspend = lib.mkOption {
|
||||
description = "Whether to autosuspend on idle.";
|
||||
default = config.ar.home.desktop.sway.enable;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
gnome.enable = lib.mkOption {
|
||||
description = "GNOME with sane defaults.";
|
||||
default = osConfig.alyraffauf.desktop.gnome.enable;
|
||||
randomWallpaper = lib.mkOption {
|
||||
description = "Whether to enable random wallpaper script.";
|
||||
default = config.ar.home.desktop.sway.enable;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
hyprland = {
|
||||
enable = lib.mkOption {
|
||||
description = "Hyprland with full desktop session components.";
|
||||
default = osConfig.alyraffauf.desktop.hyprland.enable;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
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;
|
||||
};
|
||||
};
|
||||
};
|
||||
sway = {
|
||||
enable = lib.mkOption {
|
||||
description = "Sway with full desktop session components.";
|
||||
default = osConfig.alyraffauf.desktop.sway.enable;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
autoSuspend = lib.mkOption {
|
||||
description = "Whether to autosuspend on idle.";
|
||||
default = config.alyraffauf.desktop.sway.enable;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
randomWallpaper = lib.mkOption {
|
||||
description = "Whether to enable random wallpaper script.";
|
||||
default = config.alyraffauf.desktop.sway.enable;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
redShift = lib.mkOption {
|
||||
description = "Whether to redshift display colors at night.";
|
||||
default = config.alyraffauf.desktop.sway.enable;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
};
|
||||
startupApps = lib.mkOption {
|
||||
description = "Apps to launch at startup";
|
||||
default = [];
|
||||
type = lib.types.listOf (lib.types.str);
|
||||
redShift = lib.mkOption {
|
||||
description = "Whether to redshift display colors at night.";
|
||||
default = config.ar.home.desktop.sway.enable;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
};
|
||||
scripts = {
|
||||
pp-adjuster.enable = lib.mkEnableOption "pp-adjuster script.";
|
||||
startupApps = lib.mkOption {
|
||||
description = "Apps to launch at startup";
|
||||
default = [];
|
||||
type = lib.types.listOf (lib.types.str);
|
||||
};
|
||||
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;
|
||||
};
|
||||
};
|
||||
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;
|
||||
};
|
||||
};
|
||||
theme = {
|
||||
enable = lib.mkOption {
|
||||
description = "Gtk, Qt, and application colors.";
|
||||
default = config.alyraffauf.desktop.enable;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
gtk = {
|
||||
name = lib.mkOption {
|
||||
description = "GTK theme name.";
|
||||
default = "catppuccin-frappe-mauve-compact+normal";
|
||||
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";
|
||||
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.mkOption {
|
||||
description = "Gtk, Qt, and application colors.";
|
||||
default = config.ar.home.desktop.enable;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
gtk = {
|
||||
name = lib.mkOption {
|
||||
description = "GTK theme name.";
|
||||
default = "catppuccin-frappe-mauve-compact+normal";
|
||||
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.ar.home.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;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
${lib.getExe pkgs.libnotify} "Power profile set to $new_profile."
|
||||
'';
|
||||
in {
|
||||
config = lib.mkIf config.alyraffauf.scripts.pp-adjuster.enable {
|
||||
config = lib.mkIf config.ar.home.scripts.pp-adjuster.enable {
|
||||
home.packages = [pp-adjuster];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
config,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf config.alyraffauf.services.easyeffects.enable {
|
||||
config = lib.mkIf config.ar.home.services.easyeffects.enable {
|
||||
xdg.configFile = {
|
||||
"easyeffects/output/framework13.json".source =
|
||||
./framework13.json;
|
||||
|
@ -15,7 +15,7 @@
|
|||
|
||||
services.easyeffects = {
|
||||
enable = true;
|
||||
preset = config.alyraffauf.services.easyeffects.preset;
|
||||
preset = config.ar.home.services.easyeffects.preset;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -4,10 +4,10 @@
|
|||
config,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf config.alyraffauf.services.mpd.enable {
|
||||
config = lib.mkIf config.ar.home.services.mpd.enable {
|
||||
services.mpd = {
|
||||
enable = true;
|
||||
musicDirectory = config.alyraffauf.services.mpd.musicDirectory;
|
||||
musicDirectory = config.ar.home.services.mpd.musicDirectory;
|
||||
};
|
||||
services.mpd-mpris = {
|
||||
enable = true;
|
||||
|
|
|
@ -4,16 +4,16 @@
|
|||
config,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf config.alyraffauf.theme.enable {
|
||||
config = lib.mkIf config.ar.home.theme.enable {
|
||||
home.pointerCursor = {
|
||||
gtk.enable = true;
|
||||
x11 = {
|
||||
enable = true;
|
||||
defaultCursor = config.alyraffauf.theme.cursorTheme.name;
|
||||
defaultCursor = config.ar.home.theme.cursorTheme.name;
|
||||
};
|
||||
name = config.alyraffauf.theme.cursorTheme.name;
|
||||
package = config.alyraffauf.theme.cursorTheme.package;
|
||||
size = config.alyraffauf.theme.cursorTheme.size;
|
||||
name = config.ar.home.theme.cursorTheme.name;
|
||||
package = config.ar.home.theme.cursorTheme.package;
|
||||
size = config.ar.home.theme.cursorTheme.size;
|
||||
};
|
||||
|
||||
qt = {
|
||||
|
@ -23,18 +23,18 @@
|
|||
};
|
||||
|
||||
xdg.configFile = {
|
||||
"Kvantum/${config.alyraffauf.theme.qt.name}".source = "${config.alyraffauf.theme.qt.package}/share/Kvantum/${config.alyraffauf.theme.qt.name}";
|
||||
"Kvantum/${config.ar.home.theme.qt.name}".source = "${config.ar.home.theme.qt.package}/share/Kvantum/${config.ar.home.theme.qt.name}";
|
||||
"Kvantum/kvantum.kvconfig".source = (pkgs.formats.ini {}).generate "kvantum.kvconfig" {
|
||||
General.theme = config.alyraffauf.theme.qt.name;
|
||||
General.theme = config.ar.home.theme.qt.name;
|
||||
};
|
||||
};
|
||||
|
||||
fonts.fontconfig = {
|
||||
enable = true;
|
||||
defaultFonts = {
|
||||
monospace = [config.alyraffauf.theme.terminalFont.name];
|
||||
monospace = [config.ar.home.theme.terminalFont.name];
|
||||
serif = ["NotoSerif Nerd Font"];
|
||||
sansSerif = [config.alyraffauf.theme.font.name];
|
||||
sansSerif = [config.ar.home.theme.font.name];
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -42,27 +42,27 @@
|
|||
enable = true;
|
||||
|
||||
theme = {
|
||||
package = config.alyraffauf.theme.gtk.package;
|
||||
name = config.alyraffauf.theme.gtk.name;
|
||||
package = config.ar.home.theme.gtk.package;
|
||||
name = config.ar.home.theme.gtk.name;
|
||||
};
|
||||
|
||||
iconTheme = {
|
||||
package = config.alyraffauf.theme.iconTheme.package;
|
||||
name = config.alyraffauf.theme.iconTheme.name;
|
||||
package = config.ar.home.theme.iconTheme.package;
|
||||
name = config.ar.home.theme.iconTheme.name;
|
||||
};
|
||||
|
||||
font = {
|
||||
name = "${config.alyraffauf.theme.font.name} Regular";
|
||||
package = config.alyraffauf.theme.font.package;
|
||||
size = config.alyraffauf.theme.font.size;
|
||||
name = "${config.ar.home.theme.font.name} Regular";
|
||||
package = config.ar.home.theme.font.package;
|
||||
size = config.ar.home.theme.font.size;
|
||||
};
|
||||
|
||||
gtk3.extraConfig = lib.attrsets.optionalAttrs (config.alyraffauf.theme.colors.preferDark) {gtk-application-prefer-dark-theme = 1;};
|
||||
gtk3.extraConfig = lib.attrsets.optionalAttrs (config.ar.home.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;};
|
||||
gtk4.extraConfig = lib.attrsets.optionalAttrs (config.ar.home.theme.colors.preferDark) {gtk-application-prefer-dark-theme = 1;};
|
||||
|
||||
gtk3.extraCss =
|
||||
if config.alyraffauf.theme.gtk.hideTitleBar
|
||||
if config.ar.home.theme.gtk.hideTitleBar
|
||||
then ''
|
||||
/* No (default) title bar on wayland */
|
||||
headerbar.default-decoration {
|
||||
|
@ -90,34 +90,34 @@
|
|||
};
|
||||
|
||||
dconf.settings = {
|
||||
"org/cinnamon/desktop/background".picture-uri = "file://${config.alyraffauf.theme.wallpaper}";
|
||||
"org/cinnamon/desktop/background".picture-uri = "file://${config.ar.home.theme.wallpaper}";
|
||||
|
||||
"org/cinnamon/desktop/interface" = {
|
||||
cursor-size = config.alyraffauf.theme.cursorTheme.size;
|
||||
cursor-theme = config.alyraffauf.theme.cursorTheme.name;
|
||||
font-name = "${config.alyraffauf.theme.font.name} Regular ${toString config.alyraffauf.theme.font.size}";
|
||||
gtk-theme = config.alyraffauf.theme.gtk.name;
|
||||
icon-theme = config.alyraffauf.theme.iconTheme.name;
|
||||
cursor-size = config.ar.home.theme.cursorTheme.size;
|
||||
cursor-theme = config.ar.home.theme.cursorTheme.name;
|
||||
font-name = "${config.ar.home.theme.font.name} Regular ${toString config.ar.home.theme.font.size}";
|
||||
gtk-theme = config.ar.home.theme.gtk.name;
|
||||
icon-theme = config.ar.home.theme.iconTheme.name;
|
||||
};
|
||||
|
||||
"org/cinnamon/theme".name = config.alyraffauf.theme.gtk.name;
|
||||
"org/cinnamon/desktop/wm/preferences".titlebar-font = "${config.alyraffauf.theme.font.name} ${toString config.alyraffauf.theme.font.size}";
|
||||
"org/cinnamon/theme".name = config.ar.home.theme.gtk.name;
|
||||
"org/cinnamon/desktop/wm/preferences".titlebar-font = "${config.ar.home.theme.font.name} ${toString config.ar.home.theme.font.size}";
|
||||
|
||||
"org/gnome/desktop/background".picture-uri = "file://${config.alyraffauf.theme.wallpaper}";
|
||||
"org/gnome/desktop/background".picture-uri-dark = "file://${config.alyraffauf.theme.wallpaper}";
|
||||
"org/gnome/desktop/background".picture-uri = "file://${config.ar.home.theme.wallpaper}";
|
||||
"org/gnome/desktop/background".picture-uri-dark = "file://${config.ar.home.theme.wallpaper}";
|
||||
"org/gnome/desktop/interface" = {
|
||||
color-scheme =
|
||||
if config.alyraffauf.theme.colors.preferDark
|
||||
if config.ar.home.theme.colors.preferDark
|
||||
then "prefer-dark"
|
||||
else "prefer-light";
|
||||
cursor-theme = config.alyraffauf.theme.cursorTheme.name;
|
||||
cursor-size = config.alyraffauf.theme.cursorTheme.size;
|
||||
gtk-theme = config.alyraffauf.theme.gtk.name;
|
||||
icon-theme = config.alyraffauf.theme.iconTheme.name;
|
||||
monospace-font-name = "${config.alyraffauf.theme.terminalFont.name} Regular ${toString config.alyraffauf.theme.terminalFont.size}";
|
||||
cursor-theme = config.ar.home.theme.cursorTheme.name;
|
||||
cursor-size = config.ar.home.theme.cursorTheme.size;
|
||||
gtk-theme = config.ar.home.theme.gtk.name;
|
||||
icon-theme = config.ar.home.theme.iconTheme.name;
|
||||
monospace-font-name = "${config.ar.home.theme.terminalFont.name} Regular ${toString config.ar.home.theme.terminalFont.size}";
|
||||
};
|
||||
|
||||
"org/gnome/desktop/wm/preferences".titlebar-font = "${config.alyraffauf.theme.font.name} ${toString config.alyraffauf.theme.font.size}";
|
||||
"org/gnome/desktop/wm/preferences".titlebar-font = "${config.ar.home.theme.font.name} ${toString config.ar.home.theme.font.size}";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -212,12 +212,12 @@
|
|||
|
||||
hyprland.extraConfig = ''
|
||||
# Workspace - Browser
|
||||
workspace = 1, defaultName:web, on-created-empty:${config.alyraffauf.defaultApps.webBrowser.exe}
|
||||
workspace = 1, defaultName:web, on-created-empty:${config.ar.home.defaultApps.webBrowser.exe}
|
||||
windowrulev2 = workspace 1,class:(firefox)
|
||||
windowrulev2 = workspace 1,class:(brave-browser)
|
||||
|
||||
# Workspace - Coding
|
||||
workspace = 2, defaultName:code, on-created-empty:${config.alyraffauf.defaultApps.editor.exe}
|
||||
workspace = 2, defaultName:code, on-created-empty:${config.ar.home.defaultApps.editor.exe}
|
||||
windowrulev2 = workspace 2,class:(codium-url-handler)
|
||||
|
||||
# Workspace - Chrome
|
||||
|
@ -244,7 +244,7 @@
|
|||
'';
|
||||
};
|
||||
|
||||
alyraffauf = {
|
||||
ar.home = {
|
||||
apps = {
|
||||
alacritty.enable = true;
|
||||
bash.enable = true;
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
};
|
||||
};
|
||||
|
||||
alyraffauf = {
|
||||
ar.home = {
|
||||
apps = {
|
||||
alacritty.enable = true;
|
||||
bash.enable = true;
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
};
|
||||
};
|
||||
|
||||
alyraffauf = {
|
||||
ar.home = {
|
||||
apps = {
|
||||
alacritty.enable = true;
|
||||
bash.enable = true;
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
|
||||
system.stateVersion = "24.05";
|
||||
|
||||
alyraffauf = {
|
||||
ar = {
|
||||
apps.steam.enable = true;
|
||||
base = {
|
||||
enable = true;
|
||||
|
|
|
@ -12,17 +12,12 @@
|
|||
framework-laptop-kmod
|
||||
];
|
||||
|
||||
initrd = {
|
||||
availableKernelModules = ["xhci_pci" "thunderbolt" "nvme" "usb_storage" "sd_mod"];
|
||||
kernelModules = ["i915"];
|
||||
};
|
||||
initrd.availableKernelModules = ["xhci_pci" "thunderbolt" "nvme" "usb_storage" "sd_mod"];
|
||||
|
||||
kernelModules = [
|
||||
# https://github.com/DHowett/framework-laptop-kmod?tab=readme-ov-file#usage
|
||||
"cros_ec_lpcs"
|
||||
"cros_ec"
|
||||
"i915"
|
||||
"kvm-intel"
|
||||
];
|
||||
|
||||
kernelPackages = pkgs.linuxPackages_latest;
|
||||
|
@ -32,55 +27,29 @@
|
|||
];
|
||||
};
|
||||
|
||||
environment = {
|
||||
sessionVariables = {
|
||||
LIBVA_DRIVER_NAME = "iHD"; # Force intel-media-driver
|
||||
VDPAU_DRIVER = "va_gl";
|
||||
};
|
||||
|
||||
systemPackages = [pkgs.framework-tool] ++ lib.optional (pkgs ? "fw-ectool") pkgs.fw-ectool;
|
||||
};
|
||||
environment.systemPackages = [pkgs.framework-tool] ++ lib.optional (pkgs ? "fw-ectool") pkgs.fw-ectool;
|
||||
|
||||
hardware = {
|
||||
acpilight.enable = true;
|
||||
cpu.intel.updateMicrocode = true;
|
||||
enableAllFirmware = true;
|
||||
|
||||
opengl = {
|
||||
enable = true;
|
||||
driSupport = true;
|
||||
driSupport32Bit = true;
|
||||
|
||||
extraPackages = with pkgs; [
|
||||
intel-media-driver # LIBVA_DRIVER_NAME=iHD
|
||||
intel-vaapi-driver # LIBVA_DRIVER_NAME=i965 (older but works better for Firefox/Chromium)
|
||||
libvdpau-va-gl
|
||||
];
|
||||
|
||||
extraPackages32 = with pkgs.driversi686Linux; [
|
||||
intel-media-driver # LIBVA_DRIVER_NAME=iHD
|
||||
intel-vaapi-driver # LIBVA_DRIVER_NAME=i965 (older but works better for Firefox/Chromium)
|
||||
libvdpau-va-gl
|
||||
];
|
||||
};
|
||||
|
||||
sensor.iio.enable = true;
|
||||
};
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
|
||||
# Save power/better manage heat & fans.
|
||||
powerManagement.powertop.enable = true;
|
||||
|
||||
services = {
|
||||
fprintd.enable = true;
|
||||
fstrim.enable = true;
|
||||
fwupd.enable = true;
|
||||
thermald.enable = true;
|
||||
|
||||
udev.extraRules = ''
|
||||
# Ethernet expansion card support
|
||||
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="0bda", ATTR{idProduct}=="8156", ATTR{power/autosuspend}="20"
|
||||
'';
|
||||
};
|
||||
|
||||
ar.hardware = {
|
||||
cpu.intel = true;
|
||||
gpu.intel = true;
|
||||
laptop = true;
|
||||
ssd = true;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
|
||||
system.stateVersion = "24.05";
|
||||
|
||||
alyraffauf = {
|
||||
ar = {
|
||||
apps = {
|
||||
steam.enable = true;
|
||||
podman.enable = true;
|
||||
|
|
|
@ -10,38 +10,21 @@
|
|||
framework-laptop-kmod
|
||||
];
|
||||
|
||||
initrd = {
|
||||
availableKernelModules = ["nvme" "sd_mod" "thunderbolt" "usb_storage" "xhci_pci"];
|
||||
kernelModules = ["amdgpu"];
|
||||
};
|
||||
initrd.availableKernelModules = ["nvme" "sd_mod" "thunderbolt" "usb_storage" "xhci_pci"];
|
||||
|
||||
kernelModules = ["amdgpu" "cros_ec" "cros_ec_lpcs" "kvm-amd"];
|
||||
kernelModules = ["cros_ec" "cros_ec_lpcs"];
|
||||
kernelPackages = pkgs.linuxPackages_latest;
|
||||
kernelParams = ["amdgpu.abmlevel=0" "amd_pstate=active"];
|
||||
};
|
||||
|
||||
environment.systemPackages = [pkgs.framework-tool];
|
||||
|
||||
hardware = {
|
||||
cpu.amd.updateMicrocode = true;
|
||||
enableAllFirmware = true;
|
||||
|
||||
opengl = {
|
||||
enable = true;
|
||||
driSupport = true;
|
||||
driSupport32Bit = true;
|
||||
extraPackages = [pkgs.rocmPackages.clr.icd pkgs.amdvlk];
|
||||
extraPackages32 = [pkgs.driversi686Linux.amdvlk];
|
||||
};
|
||||
|
||||
sensor.iio.enable = true;
|
||||
};
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
|
||||
services = {
|
||||
fprintd.enable = true;
|
||||
fstrim.enable = true;
|
||||
fwupd.enable = true;
|
||||
|
||||
udev.extraRules = ''
|
||||
|
@ -49,4 +32,11 @@
|
|||
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="0bda", ATTR{idProduct}=="8156", ATTR{power/autosuspend}="20"
|
||||
'';
|
||||
};
|
||||
|
||||
ar.hardware = {
|
||||
cpu.amd = true;
|
||||
gpu.amd = true;
|
||||
laptop = true;
|
||||
ssd = true;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
home-manager = {
|
||||
sharedModules = [
|
||||
{
|
||||
alyraffauf = {
|
||||
ar.home = {
|
||||
services.easyeffects = {
|
||||
enable = true;
|
||||
preset = "framework13";
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
|
||||
system.stateVersion = "24.05";
|
||||
|
||||
alyraffauf = {
|
||||
ar = {
|
||||
apps = {
|
||||
podman.enable = true;
|
||||
steam.enable = true;
|
||||
|
|
|
@ -6,30 +6,17 @@
|
|||
...
|
||||
}: {
|
||||
boot = {
|
||||
initrd = {
|
||||
availableKernelModules = ["nvme" "sd_mod" "usb_storage" "usbhid" "xhci_pci"];
|
||||
kernelModules = ["amdgpu"];
|
||||
};
|
||||
|
||||
kernelModules = ["kvm-amd" "amdgpu"];
|
||||
initrd.availableKernelModules = ["nvme" "sd_mod" "usb_storage" "usbhid" "xhci_pci"];
|
||||
|
||||
kernelPackages = pkgs.linuxPackages_latest;
|
||||
};
|
||||
|
||||
hardware = {
|
||||
cpu.amd.updateMicrocode = true;
|
||||
enableAllFirmware = true;
|
||||
hardware.enableAllFirmware = true;
|
||||
|
||||
opengl = {
|
||||
enable = true;
|
||||
driSupport = true;
|
||||
driSupport32Bit = true;
|
||||
extraPackages = with pkgs; [rocmPackages.clr.icd amdvlk];
|
||||
extraPackages32 = with pkgs; [driversi686Linux.amdvlk];
|
||||
};
|
||||
ar.hardware = {
|
||||
cpu.amd = true;
|
||||
gpu.amd = true;
|
||||
laptop = false;
|
||||
ssd = true;
|
||||
};
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
|
||||
services.fstrim.enable = true;
|
||||
}
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
home-manager = {
|
||||
sharedModules = [
|
||||
{
|
||||
alyraffauf = {
|
||||
ar.home = {
|
||||
desktop = {
|
||||
hyprland.autoSuspend = false;
|
||||
sway.autoSuspend = false;
|
||||
|
|
|
@ -33,11 +33,11 @@ in {
|
|||
allowedTCPPorts = [
|
||||
80
|
||||
443
|
||||
config.alyraffauf.containers.oci.transmission.port
|
||||
config.alyraffauf.containers.oci.transmission.bitTorrentPort
|
||||
config.ar.containers.oci.transmission.port
|
||||
config.ar.containers.oci.transmission.bitTorrentPort
|
||||
];
|
||||
|
||||
allowedUDPPorts = [config.alyraffauf.containers.oci.transmission.bitTorrentPort];
|
||||
allowedUDPPorts = [config.ar.containers.oci.transmission.bitTorrentPort];
|
||||
};
|
||||
|
||||
# My router doesn't expose settings for NAT loopback
|
||||
|
@ -104,7 +104,7 @@ in {
|
|||
forceSSL = true;
|
||||
|
||||
locations."/" = {
|
||||
proxyPass = "http://127.0.0.1:${toString config.alyraffauf.containers.oci.freshRSS.port}";
|
||||
proxyPass = "http://127.0.0.1:${toString config.ar.containers.oci.freshRSS.port}";
|
||||
proxyWebsockets = true; # needed if you need to use WebSocket
|
||||
|
||||
extraConfig = ''
|
||||
|
@ -131,7 +131,7 @@ in {
|
|||
forceSSL = true;
|
||||
|
||||
locations."/" = {
|
||||
proxyPass = "http://127.0.0.1:${toString config.alyraffauf.containers.oci.plexMediaServer.port}";
|
||||
proxyPass = "http://127.0.0.1:${toString config.ar.containers.oci.plexMediaServer.port}";
|
||||
proxyWebsockets = true;
|
||||
|
||||
extraConfig = ''
|
||||
|
@ -145,7 +145,7 @@ in {
|
|||
forceSSL = true;
|
||||
|
||||
locations."/" = {
|
||||
proxyPass = "http://127.0.0.1:${toString config.alyraffauf.containers.oci.audiobookshelf.port}";
|
||||
proxyPass = "http://127.0.0.1:${toString config.ar.containers.oci.audiobookshelf.port}";
|
||||
|
||||
extraConfig = ''
|
||||
client_max_body_size 500M;
|
||||
|
@ -195,7 +195,7 @@ in {
|
|||
};
|
||||
};
|
||||
|
||||
alyraffauf = {
|
||||
ar = {
|
||||
apps = {
|
||||
nicotine-plus.enable = true;
|
||||
podman.enable = true;
|
||||
|
@ -234,6 +234,7 @@ in {
|
|||
hyprland.enable = true;
|
||||
steam.enable = true;
|
||||
};
|
||||
|
||||
users = {
|
||||
aly = {
|
||||
enable = true;
|
||||
|
|
|
@ -5,30 +5,14 @@
|
|||
pkgs,
|
||||
...
|
||||
}: {
|
||||
boot = {
|
||||
initrd = {
|
||||
availableKernelModules = ["xhci_pci" "ahci" "nvme" "usbhid" "sd_mod"];
|
||||
kernelModules = ["amdgpu"];
|
||||
};
|
||||
boot.initrd.availableKernelModules = ["xhci_pci" "ahci" "nvme" "usbhid" "sd_mod"];
|
||||
|
||||
kernelModules = ["kvm-amd" "amdgpu"];
|
||||
hardware.enableAllFirmware = true;
|
||||
|
||||
ar.hardware = {
|
||||
cpu.amd = true;
|
||||
gpu.amd = true;
|
||||
laptop = false;
|
||||
ssd = true;
|
||||
};
|
||||
|
||||
hardware = {
|
||||
cpu.amd.updateMicrocode = true;
|
||||
|
||||
enableAllFirmware = true;
|
||||
|
||||
opengl = {
|
||||
enable = true;
|
||||
driSupport = true;
|
||||
driSupport32Bit = true;
|
||||
extraPackages = with pkgs; [rocmPackages.clr.icd amdvlk];
|
||||
extraPackages32 = with pkgs; [driversi686Linux.amdvlk];
|
||||
};
|
||||
};
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
|
||||
services.fstrim.enable = true;
|
||||
}
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
};
|
||||
|
||||
xdg.userDirs.music = "/mnt/Media/Music";
|
||||
alyraffauf = {
|
||||
ar.home = {
|
||||
desktop = {
|
||||
hyprland.autoSuspend = false;
|
||||
sway.autoSuspend = false;
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
|
||||
system.stateVersion = "24.05";
|
||||
|
||||
alyraffauf = {
|
||||
ar = {
|
||||
apps.steam.enable = true;
|
||||
|
||||
base.enable = true;
|
||||
|
|
|
@ -6,53 +6,20 @@
|
|||
...
|
||||
}: {
|
||||
boot = {
|
||||
initrd = {
|
||||
availableKernelModules = ["nvme" "sd_mod" "thunderbolt" "usb_storage" "xhci_pci"];
|
||||
kernelModules = ["i915"];
|
||||
};
|
||||
initrd.availableKernelModules = ["nvme" "sd_mod" "thunderbolt" "usb_storage" "xhci_pci"];
|
||||
|
||||
kernelModules = ["kvm-intel"];
|
||||
kernelPackages = pkgs.linuxPackages_latest;
|
||||
};
|
||||
|
||||
environment.sessionVariables = {
|
||||
LIBVA_DRIVER_NAME = "iHD";
|
||||
VDPAU_DRIVER = "va_gl";
|
||||
};
|
||||
|
||||
hardware = {
|
||||
cpu.intel.updateMicrocode = true;
|
||||
|
||||
enableAllFirmware = true;
|
||||
|
||||
opengl = {
|
||||
enable = true;
|
||||
driSupport = true;
|
||||
driSupport32Bit = true;
|
||||
|
||||
extraPackages = with pkgs; [
|
||||
intel-media-driver # LIBVA_DRIVER_NAME=iHD
|
||||
intel-vaapi-driver # LIBVA_DRIVER_NAME=i965 (older but works better for Firefox/Chromium)
|
||||
libvdpau-va-gl
|
||||
];
|
||||
|
||||
extraPackages32 = with pkgs.driversi686Linux; [
|
||||
intel-media-driver # LIBVA_DRIVER_NAME=iHD
|
||||
intel-vaapi-driver # LIBVA_DRIVER_NAME=i965 (older but works better for Firefox/Chromium)
|
||||
libvdpau-va-gl
|
||||
];
|
||||
};
|
||||
|
||||
sensor.iio.enable = true; # Enable auto-rotate and tablet mode.
|
||||
};
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
|
||||
# Save power/better manage heat & fans.
|
||||
powerManagement.powertop.enable = true;
|
||||
|
||||
services = {
|
||||
fstrim.enable = true;
|
||||
thermald.enable = true;
|
||||
ar.hardware = {
|
||||
cpu.intel = true;
|
||||
gpu.intel = true;
|
||||
laptop = true;
|
||||
ssd = true;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
home-manager = {
|
||||
sharedModules = [
|
||||
{
|
||||
alyraffauf.desktop.hyprland = {
|
||||
ar.home.desktop.hyprland = {
|
||||
tabletMode.enable = true;
|
||||
};
|
||||
wayland.windowManager.hyprland.extraConfig = ''
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
|
||||
system.stateVersion = "24.05";
|
||||
|
||||
alyraffauf = {
|
||||
ar = {
|
||||
base = {
|
||||
enable = true;
|
||||
zramSwap.size = 100;
|
||||
|
|
|
@ -11,57 +11,34 @@
|
|||
options thinkpad_acpi force_load=1 fan_control=1
|
||||
'';
|
||||
|
||||
initrd = {
|
||||
availableKernelModules = ["ahci" "ehci_pci" "i915" "rtsx_pci_sdmmc" "sd_mod" "sr_mod" "usb_storage" "xhci_pci"];
|
||||
kernelModules = ["i915"];
|
||||
};
|
||||
|
||||
kernelModules = ["i915" "kvm-intel"];
|
||||
initrd.availableKernelModules = [
|
||||
"ahci"
|
||||
"ehci_pci"
|
||||
"rtsx_pci_sdmmc"
|
||||
"sd_mod"
|
||||
"sr_mod"
|
||||
"usb_storage"
|
||||
"xhci_pci"
|
||||
];
|
||||
};
|
||||
|
||||
powerManagement = {
|
||||
cpuFreqGovernor = "ondemand"; # Otherwise, CPU doesn't automatically clock down.
|
||||
powertop.enable = true;
|
||||
};
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
powerManagement.cpuFreqGovernor = "ondemand"; # Otherwise, CPU doesn't automatically clock down.
|
||||
|
||||
hardware = {
|
||||
cpu.intel.updateMicrocode = true;
|
||||
enableAllFirmware = true;
|
||||
|
||||
opengl = {
|
||||
enable = true;
|
||||
|
||||
driSupport = true;
|
||||
driSupport32Bit = true;
|
||||
|
||||
extraPackages = with pkgs; [
|
||||
intel-media-driver # LIBVA_DRIVER_NAME=iHD
|
||||
intel-vaapi-driver # LIBVA_DRIVER_NAME=i965 (older but works better for Firefox/Chromium)
|
||||
libvdpau-va-gl
|
||||
];
|
||||
|
||||
extraPackages32 = with pkgs.driversi686Linux; [
|
||||
intel-media-driver # LIBVA_DRIVER_NAME=iHD
|
||||
intel-vaapi-driver # LIBVA_DRIVER_NAME=i965 (older but works better for Firefox/Chromium)
|
||||
libvdpau-va-gl
|
||||
];
|
||||
};
|
||||
|
||||
trackpoint = {
|
||||
enable = true;
|
||||
emulateWheel = true;
|
||||
};
|
||||
};
|
||||
|
||||
environment.sessionVariables = {
|
||||
LIBVA_DRIVER_NAME = "iHD";
|
||||
VDPAU_DRIVER = "va_gl";
|
||||
};
|
||||
services.fwupd.enable = true;
|
||||
|
||||
services = {
|
||||
fstrim.enable = true;
|
||||
fwupd.enable = true;
|
||||
ar.hardware = {
|
||||
cpu.intel = true;
|
||||
gpu.intel = true;
|
||||
laptop = true;
|
||||
ssd = true;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
programs.vscode.userSettings = {
|
||||
"editor.fontSize" = lib.mkForce "16";
|
||||
};
|
||||
alyraffauf = {
|
||||
ar.home = {
|
||||
services.easyeffects = {
|
||||
enable = true;
|
||||
preset = "LoudnessEqualizer";
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
pkgs,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf config.alyraffauf.apps.firefox.enable {
|
||||
config = lib.mkIf config.ar.apps.firefox.enable {
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
policies = {
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
config,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf config.alyraffauf.apps.nicotine-plus.enable {
|
||||
config = lib.mkIf config.ar.apps.nicotine-plus.enable {
|
||||
environment.systemPackages = [pkgs.nicotine-plus];
|
||||
networking = {
|
||||
firewall.allowedTCPPortRanges = [
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
config,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf config.alyraffauf.apps.podman.enable {
|
||||
config = lib.mkIf config.ar.apps.podman.enable {
|
||||
virtualisation = {
|
||||
oci-containers = {backend = "podman";};
|
||||
podman = {
|
||||
|
|
|
@ -4,10 +4,10 @@
|
|||
config,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf config.alyraffauf.apps.steam.enable {
|
||||
config = lib.mkIf config.ar.apps.steam.enable {
|
||||
hardware.steam-hardware.enable = true;
|
||||
programs = {
|
||||
gamescope.enable = config.alyraffauf.desktop.steam.enable;
|
||||
gamescope.enable = config.ar.desktop.steam.enable;
|
||||
|
||||
steam = {
|
||||
enable = true;
|
||||
|
@ -15,7 +15,7 @@
|
|||
extraCompatPackages = with pkgs; [
|
||||
proton-ge-bin
|
||||
];
|
||||
gamescopeSession.enable = config.alyraffauf.desktop.steam.enable;
|
||||
gamescopeSession.enable = config.ar.desktop.steam.enable;
|
||||
localNetworkGameTransfers.openFirewall = true;
|
||||
remotePlay.openFirewall = true;
|
||||
};
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
config,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf config.alyraffauf.apps.virt-manager.enable {
|
||||
config = lib.mkIf config.ar.apps.virt-manager.enable {
|
||||
programs.virt-manager.enable = true;
|
||||
|
||||
virtualisation = {libvirtd.enable = true;};
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
./zramSwap
|
||||
];
|
||||
|
||||
config = lib.mkIf config.alyraffauf.base.enable {
|
||||
config = lib.mkIf config.ar.base.enable {
|
||||
console = {
|
||||
colors = [
|
||||
"303446"
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
...
|
||||
}: {
|
||||
imports = [./sambaAutoMount.nix];
|
||||
config = lib.mkIf config.alyraffauf.base.enable {
|
||||
config = lib.mkIf config.ar.base.enable {
|
||||
age.secrets.wifi.file = ../../../secrets/wifi.age;
|
||||
|
||||
hardware = {
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
pkgs,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf config.alyraffauf.base.sambaAutoMount {
|
||||
config = lib.mkIf config.ar.base.sambaAutoMount {
|
||||
fileSystems = {
|
||||
"/mnt/Archive" = {
|
||||
device = "//mauville/Archive";
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
pkgs,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf config.alyraffauf.base.enable {
|
||||
config = lib.mkIf config.ar.base.enable {
|
||||
environment.variables = {
|
||||
FLAKE = "github:alyraffauf/nixcfg";
|
||||
};
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
pkgs,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf config.alyraffauf.base.enable {
|
||||
config = lib.mkIf config.ar.base.enable {
|
||||
nixpkgs = let
|
||||
unstable = import inputs.nixpkgsUnstable {
|
||||
system = pkgs.system;
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
pkgs,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf config.alyraffauf.base.plymouth.enable {
|
||||
config = lib.mkIf config.ar.base.plymouth.enable {
|
||||
boot = {
|
||||
consoleLogLevel = 0;
|
||||
initrd.verbose = false;
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
pkgs,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf config.alyraffauf.base.power-profiles-daemon.enable {
|
||||
config = lib.mkIf config.ar.base.power-profiles-daemon.enable {
|
||||
services = {
|
||||
power-profiles-daemon.enable = true;
|
||||
upower.enable = true;
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
pkgs,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf config.alyraffauf.base.enable {
|
||||
config = lib.mkIf config.ar.base.enable {
|
||||
hardware.pulseaudio = {
|
||||
enable = lib.mkForce false;
|
||||
package = pkgs.pulseaudioFull;
|
||||
|
|
|
@ -4,10 +4,10 @@
|
|||
pkgs,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf config.alyraffauf.base.zramSwap.enable {
|
||||
config = lib.mkIf config.ar.base.zramSwap.enable {
|
||||
zramSwap = {
|
||||
enable = true;
|
||||
memoryPercent = config.alyraffauf.base.zramSwap.size;
|
||||
memoryPercent = config.ar.base.zramSwap.size;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -4,15 +4,15 @@
|
|||
config,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf config.alyraffauf.containers.nixos.audiobookshelf.enable {
|
||||
config = lib.mkIf config.ar.containers.nixos.audiobookshelf.enable {
|
||||
containers.audiobookshelf = {
|
||||
autoStart = true;
|
||||
bindMounts."/Media" = {
|
||||
hostPath = config.alyraffauf.containers.nixos.audiobookshelf.mediaDirectory;
|
||||
hostPath = config.ar.containers.nixos.audiobookshelf.mediaDirectory;
|
||||
isReadOnly = false;
|
||||
};
|
||||
config = let
|
||||
port = config.alyraffauf.containers.nixos.audiobookshelf.port;
|
||||
port = config.ar.containers.nixos.audiobookshelf.port;
|
||||
in
|
||||
{
|
||||
config,
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
self,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf config.alyraffauf.containers.nixos.navidrome.enable {
|
||||
config = lib.mkIf config.ar.containers.nixos.navidrome.enable {
|
||||
age.secrets.lastFMApiKey.file = ../../../../secrets/lastFM/apiKey.age;
|
||||
age.secrets.lastFMSecret.file = ../../../../secrets/lastFM/secret.age;
|
||||
age.secrets.spotifyClientId.file = ../../../../secrets/spotify/clientId.age;
|
||||
|
@ -17,7 +17,7 @@
|
|||
Address = "0.0.0.0";
|
||||
DefaultTheme = "Auto";
|
||||
MusicFolder = "/Music";
|
||||
Port = config.alyraffauf.containers.nixos.navidrome.port;
|
||||
Port = config.ar.containers.nixos.navidrome.port;
|
||||
SubsonicArtistParticipations = true;
|
||||
UIWelcomeMessage = "Welcome to Navidrome @ RaffaufLabs.com";
|
||||
"Spotify.ID" = "@spotifyClientId@";
|
||||
|
@ -30,7 +30,7 @@
|
|||
in {
|
||||
autoStart = true;
|
||||
bindMounts = {
|
||||
"/Music".hostPath = config.alyraffauf.containers.nixos.navidrome.musicDirectory;
|
||||
"/Music".hostPath = config.ar.containers.nixos.navidrome.musicDirectory;
|
||||
"/var/lib/navidrome/rawNavidrome.json".hostPath = navidromeConfig;
|
||||
"${config.age.secrets.lastFMApiKey.path}".isReadOnly = true;
|
||||
"${config.age.secrets.lastFMSecret.path}".isReadOnly = true;
|
||||
|
|
|
@ -4,13 +4,13 @@
|
|||
config,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf config.alyraffauf.containers.oci.audiobookshelf.enable {
|
||||
config = lib.mkIf config.ar.containers.oci.audiobookshelf.enable {
|
||||
virtualisation.oci-containers.containers = {
|
||||
audiobookshelf = {
|
||||
ports = ["0.0.0.0:${toString config.alyraffauf.containers.oci.audiobookshelf.port}:80"];
|
||||
ports = ["0.0.0.0:${toString config.ar.containers.oci.audiobookshelf.port}:80"];
|
||||
image = "ghcr.io/advplyr/audiobookshelf:latest";
|
||||
environment = {TZ = "America/New_York";};
|
||||
volumes = ["abs_config:/config" "abs_metadata:/metadata" "${config.alyraffauf.containers.oci.audiobookshelf.mediaDirectory}:/Media"];
|
||||
volumes = ["abs_config:/config" "abs_metadata:/metadata" "${config.ar.containers.oci.audiobookshelf.mediaDirectory}:/Media"];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
@ -4,10 +4,10 @@
|
|||
config,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf config.alyraffauf.containers.oci.freshRSS.enable {
|
||||
config = lib.mkIf config.ar.containers.oci.freshRSS.enable {
|
||||
virtualisation.oci-containers.containers = {
|
||||
freshrss = {
|
||||
ports = ["0.0.0.0:${toString config.alyraffauf.containers.oci.freshRSS.port}:80"];
|
||||
ports = ["0.0.0.0:${toString config.ar.containers.oci.freshRSS.port}:80"];
|
||||
image = "freshrss/freshrss:latest";
|
||||
environment = {
|
||||
TZ = "America/New_York";
|
||||
|
|
|
@ -4,17 +4,17 @@
|
|||
config,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf config.alyraffauf.containers.oci.jellyfin.enable {
|
||||
config = lib.mkIf config.ar.containers.oci.jellyfin.enable {
|
||||
virtualisation.oci-containers.containers = {
|
||||
jellyfin = {
|
||||
ports = ["0.0.0.0:${toString config.alyraffauf.containers.oci.jellyfin.port}:8096"];
|
||||
ports = ["0.0.0.0:${toString config.ar.containers.oci.jellyfin.port}:8096"];
|
||||
image = "jellyfin/jellyfin";
|
||||
environment = {TZ = "America/New_York";};
|
||||
volumes = [
|
||||
"jellyfin_config:/config"
|
||||
"jellyfin_cache:/cache"
|
||||
"${config.alyraffauf.containers.oci.jellyfin.mediaDirectory}:/Media"
|
||||
"${config.alyraffauf.containers.oci.jellyfin.archiveDirectory}:/Archive"
|
||||
"${config.ar.containers.oci.jellyfin.mediaDirectory}:/Media"
|
||||
"${config.ar.containers.oci.jellyfin.archiveDirectory}:/Archive"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
|
|
@ -4,17 +4,17 @@
|
|||
pkgs,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf config.alyraffauf.containers.oci.plexMediaServer.enable {
|
||||
config = lib.mkIf config.ar.containers.oci.plexMediaServer.enable {
|
||||
virtualisation.oci-containers.containers = {
|
||||
plexMediaServer = {
|
||||
ports = ["0.0.0.0:${toString config.alyraffauf.containers.oci.plexMediaServer.port}:32400"];
|
||||
ports = ["0.0.0.0:${toString config.ar.containers.oci.plexMediaServer.port}:32400"];
|
||||
image = "plexinc/pms-docker:public";
|
||||
environment = {TZ = "America/New_York";};
|
||||
volumes = [
|
||||
"plex_config:/config"
|
||||
"plex_transcode:/transcode"
|
||||
"${config.alyraffauf.containers.oci.plexMediaServer.mediaDirectory}:/Media"
|
||||
"${config.alyraffauf.containers.oci.plexMediaServer.archiveDirectory}:/Archive"
|
||||
"${config.ar.containers.oci.plexMediaServer.mediaDirectory}:/Media"
|
||||
"${config.ar.containers.oci.plexMediaServer.archiveDirectory}:/Archive"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
|
|
@ -4,10 +4,10 @@
|
|||
config,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf config.alyraffauf.containers.oci.transmission.enable {
|
||||
config = lib.mkIf config.ar.containers.oci.transmission.enable {
|
||||
virtualisation.oci-containers.containers = {
|
||||
transmission = {
|
||||
ports = ["0.0.0.0:${toString config.alyraffauf.containers.oci.transmission.port}:9091" "0.0.0.0:${toString config.alyraffauf.containers.oci.transmission.bitTorrentPort}:51413"];
|
||||
ports = ["0.0.0.0:${toString config.ar.containers.oci.transmission.port}:9091" "0.0.0.0:${toString config.ar.containers.oci.transmission.bitTorrentPort}:51413"];
|
||||
image = "linuxserver/transmission:latest";
|
||||
environment = {
|
||||
PGID = "1000";
|
||||
|
@ -16,8 +16,8 @@
|
|||
};
|
||||
volumes = [
|
||||
"transmission_config:/config"
|
||||
"${config.alyraffauf.containers.oci.transmission.mediaDirectory}:/Media"
|
||||
"${config.alyraffauf.containers.oci.transmission.archiveDirectory}:/Archive"
|
||||
"${config.ar.containers.oci.transmission.mediaDirectory}:/Media"
|
||||
"${config.ar.containers.oci.transmission.archiveDirectory}:/Archive"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
config,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf config.alyraffauf.desktop.cinnamon.enable {
|
||||
config = lib.mkIf config.ar.desktop.cinnamon.enable {
|
||||
services = {
|
||||
xserver = {
|
||||
enable = true;
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
./waylandComp.nix
|
||||
];
|
||||
|
||||
config = lib.mkIf config.alyraffauf.desktop.enable {
|
||||
config = lib.mkIf config.ar.desktop.enable {
|
||||
environment.sessionVariables.NIXOS_OZONE_WL = "1";
|
||||
|
||||
fonts.packages = with pkgs; [
|
||||
|
|
|
@ -23,7 +23,7 @@ in {
|
|||
./fprintdFix.nix
|
||||
];
|
||||
|
||||
config = lib.mkIf config.alyraffauf.desktop.gnome.enable {
|
||||
config = lib.mkIf config.ar.desktop.gnome.enable {
|
||||
environment.systemPackages = with pkgs;
|
||||
[
|
||||
gnomeExtensions.appindicator
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
config,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf config.alyraffauf.desktop.gnome.fprintdFix.enable {
|
||||
config = lib.mkIf config.ar.desktop.gnome.fprintdFix.enable {
|
||||
# Need to change the order pam loads its modules
|
||||
# to get proper fingerprint behavior on GDM and the lockscreen.
|
||||
security.pam.services = {
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
pkgs,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf config.alyraffauf.desktop.greetd.enable {
|
||||
config = lib.mkIf config.ar.desktop.greetd.enable {
|
||||
security.pam.services.greetd = {
|
||||
enableGnomeKeyring = true;
|
||||
gnupg.enable = true;
|
||||
|
@ -15,19 +15,19 @@
|
|||
greetd = {
|
||||
enable = true;
|
||||
settings =
|
||||
if config.alyraffauf.desktop.greetd.autologin.enable
|
||||
if config.ar.desktop.greetd.autologin.enable
|
||||
then {
|
||||
default_session = {
|
||||
command = lib.mkDefault "${lib.getExe pkgs.greetd.tuigreet} --asterisks --user-menu -g 'Welcome to NixOS ${config.system.nixos.release}' --time --remember --cmd ${config.alyraffauf.desktop.greetd.session}";
|
||||
command = lib.mkDefault "${lib.getExe pkgs.greetd.tuigreet} --asterisks --user-menu -g 'Welcome to NixOS ${config.system.nixos.release}' --time --remember --cmd ${config.ar.desktop.greetd.session}";
|
||||
};
|
||||
initial_session = {
|
||||
command = config.alyraffauf.desktop.greetd.session;
|
||||
user = config.alyraffauf.desktop.greetd.autologin.user;
|
||||
command = config.ar.desktop.greetd.session;
|
||||
user = config.ar.desktop.greetd.autologin.user;
|
||||
};
|
||||
}
|
||||
else {
|
||||
default_session = {
|
||||
command = lib.mkDefault "${lib.getExe pkgs.greetd.tuigreet} --asterisks --user-menu -g 'Welcome to NixOS ${config.system.nixos.release}' --time --remember --cmd ${config.alyraffauf.desktop.greetd.session}";
|
||||
command = lib.mkDefault "${lib.getExe pkgs.greetd.tuigreet} --asterisks --user-menu -g 'Welcome to NixOS ${config.system.nixos.release}' --time --remember --cmd ${config.ar.desktop.greetd.session}";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
pkgs,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf config.alyraffauf.desktop.hyprland.enable {
|
||||
config = lib.mkIf config.ar.desktop.hyprland.enable {
|
||||
programs = {
|
||||
hyprland = {
|
||||
enable = true;
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
pkgs,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf config.alyraffauf.desktop.lightdm.enable {
|
||||
config = lib.mkIf config.ar.desktop.lightdm.enable {
|
||||
security.pam.services.lightdm = {
|
||||
enableGnomeKeyring = true;
|
||||
gnupg.enable = true;
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
fi
|
||||
'';
|
||||
in {
|
||||
config = lib.mkIf config.alyraffauf.desktop.plasma.enable {
|
||||
config = lib.mkIf config.ar.desktop.plasma.enable {
|
||||
environment.systemPackages = with pkgs;
|
||||
[
|
||||
kdePackages.kate
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
config,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf config.alyraffauf.desktop.sway.enable {
|
||||
config = lib.mkIf config.ar.desktop.sway.enable {
|
||||
programs = {
|
||||
sway = {
|
||||
enable = true;
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
config,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf (config.alyraffauf.desktop.hyprland.enable || config.alyraffauf.desktop.sway.enable) {
|
||||
config = lib.mkIf (config.ar.desktop.hyprland.enable || config.ar.desktop.sway.enable) {
|
||||
programs = {
|
||||
gnupg.agent.pinentryPackage = lib.mkForce pkgs.pinentry-gnome3;
|
||||
};
|
||||
|
|
|
@ -6,287 +6,285 @@
|
|||
self,
|
||||
...
|
||||
}: {
|
||||
options = {
|
||||
alyraffauf = {
|
||||
apps = {
|
||||
firefox.enable = lib.mkOption {
|
||||
description = "Firefox Web Browser.";
|
||||
default = config.alyraffauf.desktop.enable;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
nicotine-plus.enable =
|
||||
lib.mkEnableOption "Nicotine+ Soulseek client.";
|
||||
podman.enable =
|
||||
lib.mkEnableOption "Podman for OCI container support.";
|
||||
steam.enable = lib.mkOption {
|
||||
description = "Valve's Steam for video games.";
|
||||
default = config.alyraffauf.desktop.steam.enable;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
virt-manager.enable =
|
||||
lib.mkEnableOption "Virt-manager for virtual machines with TPM and EFI support.";
|
||||
};
|
||||
|
||||
containers = {
|
||||
nixos = {
|
||||
audiobookshelf = {
|
||||
enable =
|
||||
lib.mkEnableOption "audiobookshelf audiobook and podcast server in NixOS container.";
|
||||
mediaDirectory = lib.mkOption {
|
||||
description = "Media directory for audiobookshelf.";
|
||||
default = "/mnt/Media";
|
||||
type = lib.types.str;
|
||||
};
|
||||
port = lib.mkOption {
|
||||
description = "Port for audiobookshelf.";
|
||||
default = 13378;
|
||||
type = lib.types.int;
|
||||
};
|
||||
};
|
||||
navidrome = {
|
||||
enable =
|
||||
lib.mkEnableOption "Navidrome music server in NixOS container.";
|
||||
musicDirectory = lib.mkOption {
|
||||
description = "Music directory for Navidrome.";
|
||||
default = "/mnt/Media/Music";
|
||||
type = lib.types.str;
|
||||
};
|
||||
port = lib.mkOption {
|
||||
description = "Port for Navidrome.";
|
||||
default = 4533;
|
||||
type = lib.types.int;
|
||||
};
|
||||
};
|
||||
};
|
||||
oci = {
|
||||
audiobookshelf = {
|
||||
enable =
|
||||
lib.mkEnableOption "audiobookshelf podcast and audiobook server in OCI container.";
|
||||
mediaDirectory = lib.mkOption {
|
||||
description = "Media directory for audiobookshelf.";
|
||||
default = "/mnt/Media";
|
||||
type = lib.types.str;
|
||||
};
|
||||
port = lib.mkOption {
|
||||
description = "Port for audiobookshelf.";
|
||||
default = 13378;
|
||||
type = lib.types.int;
|
||||
};
|
||||
};
|
||||
freshRSS = {
|
||||
enable =
|
||||
lib.mkEnableOption "FreshRSS news client in OCI container.";
|
||||
port = lib.mkOption {
|
||||
description = "Port for FreshRSS.";
|
||||
default = 8080;
|
||||
type = lib.types.int;
|
||||
};
|
||||
};
|
||||
jellyfin = {
|
||||
enable =
|
||||
lib.mkEnableOption "Jellyfin media server in OCI container.";
|
||||
archiveDirectory = lib.mkOption {
|
||||
description = "Archive directory for Jellyfin.";
|
||||
default = "/mnt/Archive";
|
||||
type = lib.types.str;
|
||||
};
|
||||
mediaDirectory = lib.mkOption {
|
||||
description = "Media directory for Jellyfin.";
|
||||
default = "/mnt/Media";
|
||||
type = lib.types.str;
|
||||
};
|
||||
port = lib.mkOption {
|
||||
description = "Port for Jellyfin.";
|
||||
default = 8096;
|
||||
type = lib.types.int;
|
||||
};
|
||||
};
|
||||
plexMediaServer = {
|
||||
enable =
|
||||
lib.mkEnableOption "Plex Media Server in OCI container.";
|
||||
archiveDirectory = lib.mkOption {
|
||||
description = "Archive directory for Plex Media Server.";
|
||||
default = "/mnt/Archive";
|
||||
type = lib.types.str;
|
||||
};
|
||||
mediaDirectory = lib.mkOption {
|
||||
description = "Media directory for Plex Media Server.";
|
||||
default = "/mnt/Media";
|
||||
type = lib.types.str;
|
||||
};
|
||||
port = lib.mkOption {
|
||||
description = "Port for Plex Media Server.";
|
||||
default = 32400;
|
||||
type = lib.types.int;
|
||||
};
|
||||
};
|
||||
transmission = {
|
||||
enable =
|
||||
lib.mkEnableOption "Transmission Bittorrent client in OCI container.";
|
||||
archiveDirectory = lib.mkOption {
|
||||
description = "Archive directory for Transmission.";
|
||||
default = "/mnt/Archive";
|
||||
type = lib.types.str;
|
||||
};
|
||||
bitTorrentPort = lib.mkOption {
|
||||
description = "Port for BitTorrent p2p services..";
|
||||
default = 5143;
|
||||
type = lib.types.int;
|
||||
};
|
||||
mediaDirectory = lib.mkOption {
|
||||
description = "Media directory for Transmission.";
|
||||
default = "/mnt/Media";
|
||||
type = lib.types.str;
|
||||
};
|
||||
port = lib.mkOption {
|
||||
description = "Port for Transmission.";
|
||||
default = 9091;
|
||||
type = lib.types.int;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
desktop = {
|
||||
enable =
|
||||
lib.mkEnableOption "Enable basic GUI X11 and Wayland environment.";
|
||||
cinnamon.enable =
|
||||
lib.mkEnableOption "Cinnamon desktop session.";
|
||||
gnome = {
|
||||
enable =
|
||||
lib.mkEnableOption "GNOME desktop session.";
|
||||
fprintdFix.enable =
|
||||
lib.mkEnableOption
|
||||
"Fix fprintd & pam issues with GNOME Display Manager.";
|
||||
};
|
||||
greetd = {
|
||||
enable =
|
||||
lib.mkEnableOption "Greetd display manager.";
|
||||
|
||||
autologin = {
|
||||
enable = lib.mkOption {
|
||||
description = "Whether to enable autologin.";
|
||||
default = false;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
user = lib.mkOption {
|
||||
description = "User to autologin.";
|
||||
default = "aly";
|
||||
type = lib.types.str;
|
||||
};
|
||||
};
|
||||
session = lib.mkOption {
|
||||
description = "Default command to execute on login.";
|
||||
default = lib.getExe config.programs.hyprland.package;
|
||||
type = lib.types.str;
|
||||
};
|
||||
};
|
||||
hyprland.enable =
|
||||
lib.mkEnableOption "Hyprland wayland session.";
|
||||
lightdm.enable =
|
||||
lib.mkEnableOption
|
||||
"Lightdm and slick greeter with Catppuccin theme.";
|
||||
plasma.enable =
|
||||
lib.mkEnableOption "Plasma desktop session.";
|
||||
steam.enable =
|
||||
lib.mkEnableOption "Steam + Gamescope session.";
|
||||
sway.enable =
|
||||
lib.mkEnableOption "Sway wayland session.";
|
||||
};
|
||||
scripts.hoenn.enable = lib.mkOption {
|
||||
description = "Hoenn system configuration script";
|
||||
default = config.alyraffauf.base.enable;
|
||||
options.ar = {
|
||||
apps = {
|
||||
firefox.enable = lib.mkOption {
|
||||
description = "Firefox Web Browser.";
|
||||
default = config.ar.desktop.enable;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
services = {
|
||||
binaryCache.enable = lib.mkEnableOption "nixpkgs cache server.";
|
||||
flatpak.enable =
|
||||
lib.mkEnableOption "Flatpak support with GUI.";
|
||||
ollama = {
|
||||
enable = lib.mkEnableOption "Ollama interface for LLMs.";
|
||||
listenAddress = lib.mkOption {
|
||||
description = "Listen Address for Ollama.";
|
||||
default = "127.0.0.1:11434";
|
||||
type = lib.types.str;
|
||||
};
|
||||
gpu = lib.mkOption {
|
||||
description = "Type of GPU for enabling GPU acceleration.";
|
||||
default = null;
|
||||
type = lib.types.str;
|
||||
};
|
||||
};
|
||||
syncthing = {
|
||||
enable = lib.mkEnableOption "Syncthing sync service.";
|
||||
user = lib.mkOption {
|
||||
description = "Specify user Syncthing runs as.";
|
||||
default = "aly";
|
||||
type = lib.types.str;
|
||||
};
|
||||
syncMusic = lib.mkOption {
|
||||
description = "Whether to sync music folder.";
|
||||
default = config.alyraffauf.services.syncthing.enable;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
musicPath = lib.mkOption {
|
||||
description = "Whether to sync music folder.";
|
||||
default = "/home/${config.alyraffauf.services.syncthing.user}/music";
|
||||
type = lib.types.str;
|
||||
};
|
||||
};
|
||||
tailscale.enable = lib.mkEnableOption "Tailscale WireGuard VPN.";
|
||||
nicotine-plus.enable =
|
||||
lib.mkEnableOption "Nicotine+ Soulseek client.";
|
||||
podman.enable =
|
||||
lib.mkEnableOption "Podman for OCI container support.";
|
||||
steam.enable = lib.mkOption {
|
||||
description = "Valve's Steam for video games.";
|
||||
default = config.ar.desktop.steam.enable;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
base = {
|
||||
enable =
|
||||
lib.mkEnableOption "Basic system configuration and sane defaults.";
|
||||
sambaAutoMount = lib.mkOption {
|
||||
description = "Automounting of mauville Samba Shares.";
|
||||
default =
|
||||
config.alyraffauf.services.tailscale.enable && !(config.networking.hostName == "mauville");
|
||||
type = lib.types.bool;
|
||||
};
|
||||
plymouth.enable = lib.mkOption {
|
||||
description = "Plymouth boot screen with catppuccin theme.";
|
||||
default = config.alyraffauf.base.enable;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
power-profiles-daemon.enable = lib.mkOption {
|
||||
description = "Power Profiles Daemon for power management.";
|
||||
default = config.alyraffauf.base.enable;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
zramSwap = {
|
||||
enable = lib.mkOption {
|
||||
description = "zram swap.";
|
||||
default = config.alyraffauf.base.enable;
|
||||
type = lib.types.bool;
|
||||
virt-manager.enable =
|
||||
lib.mkEnableOption "Virt-manager for virtual machines with TPM and EFI support.";
|
||||
};
|
||||
|
||||
containers = {
|
||||
nixos = {
|
||||
audiobookshelf = {
|
||||
enable =
|
||||
lib.mkEnableOption "audiobookshelf audiobook and podcast server in NixOS container.";
|
||||
mediaDirectory = lib.mkOption {
|
||||
description = "Media directory for audiobookshelf.";
|
||||
default = "/mnt/Media";
|
||||
type = lib.types.str;
|
||||
};
|
||||
size = lib.mkOption {
|
||||
description = "Percent size of the zram swap relative to RAM.";
|
||||
default = 50;
|
||||
port = lib.mkOption {
|
||||
description = "Port for audiobookshelf.";
|
||||
default = 13378;
|
||||
type = lib.types.int;
|
||||
};
|
||||
};
|
||||
navidrome = {
|
||||
enable =
|
||||
lib.mkEnableOption "Navidrome music server in NixOS container.";
|
||||
musicDirectory = lib.mkOption {
|
||||
description = "Music directory for Navidrome.";
|
||||
default = "/mnt/Media/Music";
|
||||
type = lib.types.str;
|
||||
};
|
||||
port = lib.mkOption {
|
||||
description = "Port for Navidrome.";
|
||||
default = 4533;
|
||||
type = lib.types.int;
|
||||
};
|
||||
};
|
||||
};
|
||||
users = {
|
||||
aly = {
|
||||
enable = lib.mkEnableOption "Aly's user.";
|
||||
password = lib.mkOption {
|
||||
description = "Hashed password for aly.";
|
||||
oci = {
|
||||
audiobookshelf = {
|
||||
enable =
|
||||
lib.mkEnableOption "audiobookshelf podcast and audiobook server in OCI container.";
|
||||
mediaDirectory = lib.mkOption {
|
||||
description = "Media directory for audiobookshelf.";
|
||||
default = "/mnt/Media";
|
||||
type = lib.types.str;
|
||||
};
|
||||
port = lib.mkOption {
|
||||
description = "Port for audiobookshelf.";
|
||||
default = 13378;
|
||||
type = lib.types.int;
|
||||
};
|
||||
};
|
||||
freshRSS = {
|
||||
enable =
|
||||
lib.mkEnableOption "FreshRSS news client in OCI container.";
|
||||
port = lib.mkOption {
|
||||
description = "Port for FreshRSS.";
|
||||
default = 8080;
|
||||
type = lib.types.int;
|
||||
};
|
||||
};
|
||||
jellyfin = {
|
||||
enable =
|
||||
lib.mkEnableOption "Jellyfin media server in OCI container.";
|
||||
archiveDirectory = lib.mkOption {
|
||||
description = "Archive directory for Jellyfin.";
|
||||
default = "/mnt/Archive";
|
||||
type = lib.types.str;
|
||||
};
|
||||
mediaDirectory = lib.mkOption {
|
||||
description = "Media directory for Jellyfin.";
|
||||
default = "/mnt/Media";
|
||||
type = lib.types.str;
|
||||
};
|
||||
port = lib.mkOption {
|
||||
description = "Port for Jellyfin.";
|
||||
default = 8096;
|
||||
type = lib.types.int;
|
||||
};
|
||||
};
|
||||
plexMediaServer = {
|
||||
enable =
|
||||
lib.mkEnableOption "Plex Media Server in OCI container.";
|
||||
archiveDirectory = lib.mkOption {
|
||||
description = "Archive directory for Plex Media Server.";
|
||||
default = "/mnt/Archive";
|
||||
type = lib.types.str;
|
||||
};
|
||||
mediaDirectory = lib.mkOption {
|
||||
description = "Media directory for Plex Media Server.";
|
||||
default = "/mnt/Media";
|
||||
type = lib.types.str;
|
||||
};
|
||||
port = lib.mkOption {
|
||||
description = "Port for Plex Media Server.";
|
||||
default = 32400;
|
||||
type = lib.types.int;
|
||||
};
|
||||
};
|
||||
transmission = {
|
||||
enable =
|
||||
lib.mkEnableOption "Transmission Bittorrent client in OCI container.";
|
||||
archiveDirectory = lib.mkOption {
|
||||
description = "Archive directory for Transmission.";
|
||||
default = "/mnt/Archive";
|
||||
type = lib.types.str;
|
||||
};
|
||||
bitTorrentPort = lib.mkOption {
|
||||
description = "Port for BitTorrent p2p services..";
|
||||
default = 5143;
|
||||
type = lib.types.int;
|
||||
};
|
||||
mediaDirectory = lib.mkOption {
|
||||
description = "Media directory for Transmission.";
|
||||
default = "/mnt/Media";
|
||||
type = lib.types.str;
|
||||
};
|
||||
port = lib.mkOption {
|
||||
description = "Port for Transmission.";
|
||||
default = 9091;
|
||||
type = lib.types.int;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
desktop = {
|
||||
enable =
|
||||
lib.mkEnableOption "Enable basic GUI X11 and Wayland environment.";
|
||||
cinnamon.enable =
|
||||
lib.mkEnableOption "Cinnamon desktop session.";
|
||||
gnome = {
|
||||
enable =
|
||||
lib.mkEnableOption "GNOME desktop session.";
|
||||
fprintdFix.enable =
|
||||
lib.mkEnableOption
|
||||
"Fix fprintd & pam issues with GNOME Display Manager.";
|
||||
};
|
||||
greetd = {
|
||||
enable =
|
||||
lib.mkEnableOption "Greetd display manager.";
|
||||
|
||||
autologin = {
|
||||
enable = lib.mkOption {
|
||||
description = "Whether to enable autologin.";
|
||||
default = false;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
user = lib.mkOption {
|
||||
description = "User to autologin.";
|
||||
default = "aly";
|
||||
type = lib.types.str;
|
||||
};
|
||||
};
|
||||
dustin = {
|
||||
enable = lib.mkEnableOption "Dustin's user.";
|
||||
password = lib.mkOption {
|
||||
description = "Hashed password for dustin.";
|
||||
type = lib.types.str;
|
||||
};
|
||||
session = lib.mkOption {
|
||||
description = "Default command to execute on login.";
|
||||
default = lib.getExe config.programs.hyprland.package;
|
||||
type = lib.types.str;
|
||||
};
|
||||
morgan = {
|
||||
enable = lib.mkEnableOption "Morgan's user.";
|
||||
password = lib.mkOption {
|
||||
description = "Hashed password for morgan.";
|
||||
type = lib.types.str;
|
||||
};
|
||||
};
|
||||
hyprland.enable =
|
||||
lib.mkEnableOption "Hyprland wayland session.";
|
||||
lightdm.enable =
|
||||
lib.mkEnableOption
|
||||
"Lightdm and slick greeter with Catppuccin theme.";
|
||||
plasma.enable =
|
||||
lib.mkEnableOption "Plasma desktop session.";
|
||||
steam.enable =
|
||||
lib.mkEnableOption "Steam + Gamescope session.";
|
||||
sway.enable =
|
||||
lib.mkEnableOption "Sway wayland session.";
|
||||
};
|
||||
scripts.hoenn.enable = lib.mkOption {
|
||||
description = "Hoenn system configuration script";
|
||||
default = config.ar.base.enable;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
services = {
|
||||
binaryCache.enable = lib.mkEnableOption "nixpkgs cache server.";
|
||||
flatpak.enable =
|
||||
lib.mkEnableOption "Flatpak support with GUI.";
|
||||
ollama = {
|
||||
enable = lib.mkEnableOption "Ollama interface for LLMs.";
|
||||
listenAddress = lib.mkOption {
|
||||
description = "Listen Address for Ollama.";
|
||||
default = "127.0.0.1:11434";
|
||||
type = lib.types.str;
|
||||
};
|
||||
gpu = lib.mkOption {
|
||||
description = "Type of GPU for enabling GPU acceleration.";
|
||||
default = null;
|
||||
type = lib.types.str;
|
||||
};
|
||||
};
|
||||
syncthing = {
|
||||
enable = lib.mkEnableOption "Syncthing sync service.";
|
||||
user = lib.mkOption {
|
||||
description = "Specify user Syncthing runs as.";
|
||||
default = "aly";
|
||||
type = lib.types.str;
|
||||
};
|
||||
syncMusic = lib.mkOption {
|
||||
description = "Whether to sync music folder.";
|
||||
default = config.ar.services.syncthing.enable;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
musicPath = lib.mkOption {
|
||||
description = "Whether to sync music folder.";
|
||||
default = "/home/${config.ar.services.syncthing.user}/music";
|
||||
type = lib.types.str;
|
||||
};
|
||||
};
|
||||
tailscale.enable = lib.mkEnableOption "Tailscale WireGuard VPN.";
|
||||
};
|
||||
base = {
|
||||
enable =
|
||||
lib.mkEnableOption "Basic system configuration and sane defaults.";
|
||||
sambaAutoMount = lib.mkOption {
|
||||
description = "Automounting of mauville Samba Shares.";
|
||||
default =
|
||||
config.ar.services.tailscale.enable && !(config.networking.hostName == "mauville");
|
||||
type = lib.types.bool;
|
||||
};
|
||||
plymouth.enable = lib.mkOption {
|
||||
description = "Plymouth boot screen with catppuccin theme.";
|
||||
default = config.ar.base.enable;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
power-profiles-daemon.enable = lib.mkOption {
|
||||
description = "Power Profiles Daemon for power management.";
|
||||
default = config.ar.base.enable;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
zramSwap = {
|
||||
enable = lib.mkOption {
|
||||
description = "zram swap.";
|
||||
default = config.ar.base.enable;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
size = lib.mkOption {
|
||||
description = "Percent size of the zram swap relative to RAM.";
|
||||
default = 50;
|
||||
type = lib.types.int;
|
||||
};
|
||||
};
|
||||
};
|
||||
users = {
|
||||
aly = {
|
||||
enable = lib.mkEnableOption "Aly's user.";
|
||||
password = lib.mkOption {
|
||||
description = "Hashed password for aly.";
|
||||
type = lib.types.str;
|
||||
};
|
||||
};
|
||||
dustin = {
|
||||
enable = lib.mkEnableOption "Dustin's user.";
|
||||
password = lib.mkOption {
|
||||
description = "Hashed password for dustin.";
|
||||
type = lib.types.str;
|
||||
};
|
||||
};
|
||||
morgan = {
|
||||
enable = lib.mkEnableOption "Morgan's user.";
|
||||
password = lib.mkOption {
|
||||
description = "Hashed password for morgan.";
|
||||
type = lib.types.str;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
config,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf config.alyraffauf.scripts.hoenn.enable {
|
||||
config = lib.mkIf config.ar.scripts.hoenn.enable {
|
||||
environment.systemPackages = [
|
||||
(pkgs.writeShellScriptBin "hoenn" ''
|
||||
FLAKE=''${2:-"github:alyraffauf/nixcfg"}
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
config,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf config.alyraffauf.services.binaryCache.enable {
|
||||
config = lib.mkIf config.ar.services.binaryCache.enable {
|
||||
services.nix-serve = {
|
||||
enable = true;
|
||||
secretKeyFile = "/var/cache-priv-key.pem";
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
config,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf config.alyraffauf.services.flatpak.enable {
|
||||
config = lib.mkIf config.ar.services.flatpak.enable {
|
||||
environment.systemPackages = with pkgs; [gnome.gnome-software];
|
||||
|
||||
fileSystems = let
|
||||
|
|
|
@ -4,16 +4,16 @@
|
|||
config,
|
||||
...
|
||||
}: {
|
||||
config = lib.mkIf config.alyraffauf.services.ollama.enable {
|
||||
config = lib.mkIf config.ar.services.ollama.enable {
|
||||
services.ollama = {
|
||||
enable = true;
|
||||
acceleration =
|
||||
if config.alyraffauf.services.ollama.gpu == "amd"
|
||||
if config.ar.services.ollama.gpu == "amd"
|
||||
then "rocm"
|
||||
else if config.alyraffauf.services.ollama.gpu == "nvidia"
|
||||
else if config.ar.services.ollama.gpu == "nvidia"
|
||||
then "cuda"
|
||||
else null;
|
||||
listenAddress = config.alyraffauf.services.ollama.listenAddress;
|
||||
listenAddress = config.ar.services.ollama.listenAddress;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
}: {
|
||||
imports = [./syncMusic.nix];
|
||||
|
||||
config = lib.mkIf config.alyraffauf.services.syncthing.enable {
|
||||
config = lib.mkIf config.ar.services.syncthing.enable {
|
||||
age.secrets = {
|
||||
syncthingCert.file = ../../../secrets/syncthing + "/${config.networking.hostName}/cert.age";
|
||||
syncthingKey.file = ../../../secrets/syncthing + "/${config.networking.hostName}/key.age";
|
||||
|
@ -17,10 +17,10 @@
|
|||
services.syncthing = {
|
||||
enable = true;
|
||||
cert = config.age.secrets.syncthingCert.path;
|
||||
dataDir = "/home/${config.alyraffauf.services.syncthing.user}";
|
||||
dataDir = "/home/${config.ar.services.syncthing.user}";
|
||||
key = config.age.secrets.syncthingKey.path;
|
||||
openDefaultPorts = true;
|
||||
user = config.alyraffauf.services.syncthing.user;
|
||||
user = config.ar.services.syncthing.user;
|
||||
settings = {
|
||||
options = {
|
||||
localAnnounceEnabled = true;
|
||||
|
@ -43,7 +43,7 @@
|
|||
folders = {
|
||||
"sync" = {
|
||||
id = "default";
|
||||
path = "/home/${config.alyraffauf.services.syncthing.user}/sync";
|
||||
path = "/home/${config.ar.services.syncthing.user}/sync";
|
||||
devices = ["brawly" "fallarbor" "gsgmba" "iphone12" "lavaridge" "mauville" "petalburg" "rustboro" "mossdeep" "wallace" "winona"];
|
||||
versioning = {
|
||||
type = "staggered";
|
||||
|
@ -55,7 +55,7 @@
|
|||
};
|
||||
"camera" = {
|
||||
id = "fcsgh-dlxys";
|
||||
path = "/home/${config.alyraffauf.services.syncthing.user}/pics/camera";
|
||||
path = "/home/${config.ar.services.syncthing.user}/pics/camera";
|
||||
devices = ["brawly" "fallarbor" "lavaridge" "mauville" "petalburg" "rustboro" "wallace" "winona"];
|
||||
versioning = {
|
||||
params.cleanoutDays = "5";
|
||||
|
@ -64,7 +64,7 @@
|
|||
};
|
||||
"screenshots" = {
|
||||
id = "screenshots";
|
||||
path = "/home/${config.alyraffauf.services.syncthing.user}/pics/screenshots";
|
||||
path = "/home/${config.ar.services.syncthing.user}/pics/screenshots";
|
||||
devices = ["brawly" "fallarbor" "lavaridge" "mauville" "petalburg" "rustboro" "wallace" "winona"];
|
||||
versioning = {
|
||||
params.cleanoutDays = "5";
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue