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