code cleanup

This commit is contained in:
Aly Raffauf 2024-05-27 21:39:30 -04:00
parent 730778f91d
commit 2ab53ed2b9
35 changed files with 207 additions and 211 deletions

View file

@ -9,7 +9,7 @@
}: { }: {
imports = [ imports = [
./disko.nix ./disko.nix
./hardware-configuration.nix ./hardware.nix
./home.nix ./home.nix
self.nixosModules.default self.nixosModules.default
]; ];

View file

@ -9,7 +9,7 @@
}: { }: {
imports = [ imports = [
./disko.nix ./disko.nix
./hardware-configuration.nix ./hardware.nix
./home.nix ./home.nix
self.nixosModules.default self.nixosModules.default
]; ];

View file

@ -14,7 +14,7 @@
archiveDirectory = "/mnt/Archive"; archiveDirectory = "/mnt/Archive";
in { in {
imports = [ imports = [
./hardware-configuration.nix ./hardware.nix
./home.nix ./home.nix
self.nixosModules.default self.nixosModules.default
]; ];
@ -72,7 +72,7 @@ in {
syncthing = { syncthing = {
enable = true; enable = true;
syncMusic = true; syncMusic = true;
syncMusicPath = "${mediaDirectory}/Music"; musicPath = "${mediaDirectory}/Music";
}; };
tailscale.enable = true; tailscale.enable = true;
}; };

View file

@ -9,7 +9,7 @@
}: { }: {
imports = [ imports = [
./disko.nix ./disko.nix
./hardware-configuration.nix ./hardware.nix
./home.nix ./home.nix
self.nixosModules.default self.nixosModules.default
inputs.jovian.nixosModules.default inputs.jovian.nixosModules.default

View file

@ -9,7 +9,7 @@
}: { }: {
imports = [ imports = [
./disko.nix ./disko.nix
./hardware-configuration.nix ./hardware.nix
./home.nix ./home.nix
self.nixosModules.default self.nixosModules.default
]; ];

View file

@ -9,7 +9,7 @@
}: { }: {
imports = [ imports = [
./disko.nix ./disko.nix
./hardware-configuration.nix ./hardware.nix
./home.nix ./home.nix
self.nixosModules.default self.nixosModules.default
]; ];

View file

@ -3,5 +3,13 @@ inputs: {
pkgs, pkgs,
... ...
}: { }: {
imports = [./apps ./containers ./desktop ./scripts ./services ./system ./user]; imports = [
./apps
./containers
./desktop
./scripts
./services
./system
./user
];
} }

View file

@ -10,7 +10,6 @@
}; };
config = lib.mkIf config.alyraffauf.desktop.cinnamon.enable { config = lib.mkIf config.alyraffauf.desktop.cinnamon.enable {
# Enable Cinnamon.
services = { services = {
xserver = { xserver = {
enable = true; enable = true;

View file

@ -23,24 +23,24 @@
config = lib.mkIf config.alyraffauf.desktop.enable { config = lib.mkIf config.alyraffauf.desktop.enable {
environment.sessionVariables.NIXOS_OZONE_WL = "1"; environment.sessionVariables.NIXOS_OZONE_WL = "1";
services = {
gnome.gnome-keyring.enable = true;
gvfs.enable = true; # Mount, trash, etc.
# Enable the X11 windowing system.
xserver = {
enable = true;
xkb.layout = "us";
xkb.variant = "altgr-intl";
excludePackages = with pkgs; [xterm];
};
};
# Install pretty fonts.
fonts.packages = with pkgs; [ fonts.packages = with pkgs; [
liberation_ttf liberation_ttf
(nerdfonts.override { (nerdfonts.override {
fonts = ["DroidSansMono" "Noto"]; fonts = ["DroidSansMono" "Noto"];
}) })
]; ];
services = {
gnome.gnome-keyring.enable = true;
gvfs.enable = true; # Mount, trash, etc.
xserver = {
enable = true;
xkb = {
layout = "us";
variant = "altgr-intl";
};
excludePackages = with pkgs; [xterm];
};
};
}; };
} }

View file

@ -20,9 +20,7 @@
''; '';
in { in {
imports = [ imports = [
# Include X settings.
./fprintdFix.nix ./fprintdFix.nix
./tripleBuffering.nix
]; ];
options = { options = {

View file

@ -7,31 +7,33 @@
options = { options = {
alyraffauf.desktop.gnome.fprintdFix.enable = alyraffauf.desktop.gnome.fprintdFix.enable =
lib.mkEnableOption lib.mkEnableOption
"Fixes fprintd and pam issues with GNOME Display Manager."; "Fix fprintd and pam issues with GNOME Display Manager.";
}; };
config = lib.mkIf config.alyraffauf.desktop.gnome.fprintdFix.enable { config = lib.mkIf config.alyraffauf.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.login.fprintAuth = false; security.pam.services = {
security.pam.services.gdm-fingerprint = lib.mkIf (config.services.fprintd.enable) { login.fprintAuth = false;
text = '' gdm-fingerprint = lib.mkIf (config.services.fprintd.enable) {
auth required pam_shells.so text = ''
auth requisite pam_nologin.so auth required pam_shells.so
auth requisite pam_faillock.so preauth auth requisite pam_nologin.so
auth required ${pkgs.fprintd}/lib/security/pam_fprintd.so auth requisite pam_faillock.so preauth
auth optional pam_permit.so auth required ${pkgs.fprintd}/lib/security/pam_fprintd.so
auth required pam_env.so auth optional pam_permit.so
auth [success=ok default=1] ${pkgs.gnome.gdm}/lib/security/pam_gdm.so auth required pam_env.so
auth optional ${pkgs.gnome.gnome-keyring}/lib/security/pam_gnome_keyring.so auth [success=ok default=1] ${pkgs.gnome.gdm}/lib/security/pam_gdm.so
auth optional ${pkgs.gnome.gnome-keyring}/lib/security/pam_gnome_keyring.so
account include login account include login
password required pam_deny.so password required pam_deny.so
session include login session include login
session optional ${pkgs.gnome.gnome-keyring}/lib/security/pam_gnome_keyring.so auto_start session optional ${pkgs.gnome.gnome-keyring}/lib/security/pam_gnome_keyring.so auto_start
''; '';
};
}; };
}; };
} }

View file

@ -1,30 +0,0 @@
{
pkgs,
lib,
config,
...
}: {
options = {
desktopConfig.desktopEnvironments.gnome.tripleBuffering.enable =
lib.mkEnableOption "Enables dynamic triple buffering for GNOME.";
};
config =
lib.mkIf
config.desktopConfig.desktopEnvironments.gnome.tripleBuffering.enable {
nixpkgs.overlays = [
(final: prev: {
gnome = prev.gnome.overrideScope (gnomeFinal: gnomePrev: {
mutter = gnomePrev.mutter.overrideAttrs (old: {
src = pkgs.fetchgit {
url = "https://gitlab.gnome.org/vanvugt/mutter.git";
# GNOME 45: triple-buffering-v4-45
rev = "0b896518b2028d9c4d6ea44806d093fd33793689";
sha256 = "sha256-mzNy5GPlB2qkI2KEAErJQzO//uo8yO0kPQUwvGDwR4w=";
};
});
});
})
];
};
}

View file

@ -6,22 +6,24 @@
... ...
}: { }: {
options = { options = {
alyraffauf.desktop.greetd.enable = alyraffauf.desktop.greetd = {
lib.mkEnableOption "Enable greetd."; enable =
alyraffauf.desktop.greetd.session = lib.mkOption { lib.mkEnableOption "Enable greetd.";
description = "Default command to execute on login."; session = lib.mkOption {
default = lib.getExe config.programs.hyprland.package; description = "Default command to execute on login.";
type = lib.types.str; default = lib.getExe config.programs.hyprland.package;
}; type = lib.types.str;
alyraffauf.desktop.greetd.autologin.enable = lib.mkOption { };
description = "Whether to enable autologin."; autologin.enable = lib.mkOption {
default = false; description = "Whether to enable autologin.";
type = lib.types.bool; default = false;
}; type = lib.types.bool;
alyraffauf.desktop.greetd.autologin.user = lib.mkOption { };
description = "User to autologin."; autologin.user = lib.mkOption {
default = "aly"; description = "User to autologin.";
type = lib.types.str; default = "aly";
type = lib.types.str;
};
}; };
}; };

View file

@ -11,7 +11,7 @@
}; };
config = lib.mkIf config.alyraffauf.desktop.hyprland.enable { config = lib.mkIf config.alyraffauf.desktop.hyprland.enable {
alyraffauf.desktop.waylandComp.enable = true; alyraffauf.desktop.waylandComp.enable = lib.mkDefault true;
programs = { programs = {
hyprland = { hyprland = {

View file

@ -11,33 +11,42 @@
}; };
config = lib.mkIf config.alyraffauf.desktop.lightdm.enable { config = lib.mkIf config.alyraffauf.desktop.lightdm.enable {
security.pam.services.lightdm.enableKwallet = true; security.pam.services.lightdm = {
security.pam.services.lightdm.enableGnomeKeyring = true; enableGnomeKeyring = true;
enableKwallet = true;
};
services.xserver.displayManager.lightdm = { services.xserver.displayManager.lightdm = {
enable = true; enable = true;
greeters.slick = { greeters.slick = {
enable = true; enable = true;
theme.name = "Catppuccin-Frappe-Compact-Mauve-Dark"; theme = {
theme.package = pkgs.catppuccin-gtk.override { name = "Catppuccin-Frappe-Compact-Mauve-Dark";
accents = ["mauve"]; package = pkgs.catppuccin-gtk.override {
size = "compact"; accents = ["mauve"];
variant = "frappe"; size = "compact";
tweaks = ["normal"]; variant = "frappe";
tweaks = ["normal"];
};
}; };
iconTheme.name = "Papirus-Dark"; iconTheme = {
iconTheme.package = pkgs.catppuccin-papirus-folders.override { name = "Papirus-Dark";
flavor = "frappe"; package = pkgs.catppuccin-papirus-folders.override {
accent = "mauve"; flavor = "frappe";
accent = "mauve";
};
}; };
font.name = "NotoSans Nerd Font Regular"; font = {
font.package = pkgs.nerdfonts.override {fonts = ["Noto"];}; name = "NotoSans Nerd Font Regular";
package = pkgs.nerdfonts.override {fonts = ["Noto"];};
};
cursorTheme.package = pkgs.catppuccin-cursors.frappeDark; cursorTheme = {
cursorTheme.name = "Catppuccin-Frappe-Dark-Cursors"; name = "Catppuccin-Frappe-Dark-Cursors";
cursorTheme.size = 24; size = 24;
};
extraConfig = '' extraConfig = ''
background=#303446 background=#303446

View file

@ -22,17 +22,6 @@ in {
}; };
config = lib.mkIf config.alyraffauf.desktop.plasma.enable { config = lib.mkIf config.alyraffauf.desktop.plasma.enable {
# Enable SDDM + Plasma Desktop.
services = {
desktopManager.plasma6.enable = true;
xserver = {
displayManager.sddm = {
enable = true;
wayland.enable = true;
};
};
};
environment.systemPackages = with pkgs; environment.systemPackages = with pkgs;
[ [
kdePackages.kate kdePackages.kate
@ -44,8 +33,15 @@ in {
++ [plasmaCsAdjuster]; ++ [plasmaCsAdjuster];
programs.kdeconnect.enable = true; programs.kdeconnect.enable = true;
# nixpkgs.config.firefox.enablePlasmaBrowserIntegration = true;
# nixpkgs.config.chromium.commandLineArgs = "--enable-features=UseOzonePlatform --ozone-platform=wayland --enable-features=WaylandWindowDecorations --ozone-platform-hint=auto";
security.pam.services.sddm.enableGnomeKeyring = true; security.pam.services.sddm.enableGnomeKeyring = true;
services = {
desktopManager.plasma6.enable = true;
xserver = {
displayManager.sddm = {
enable = true;
wayland.enable = true;
};
};
};
}; };
} }

View file

@ -11,7 +11,7 @@
}; };
config = lib.mkIf config.alyraffauf.desktop.sway.enable { config = lib.mkIf config.alyraffauf.desktop.sway.enable {
alyraffauf.desktop.waylandComp.enable = true; alyraffauf.desktop.waylandComp.enable = lib.mkDefault true;
programs = { programs = {
sway = { sway = {

View file

@ -11,6 +11,10 @@
}; };
config = lib.mkIf config.alyraffauf.desktop.waylandComp.enable { config = lib.mkIf config.alyraffauf.desktop.waylandComp.enable {
programs = {
gnupg.agent.pinentryPackage = lib.mkForce pkgs.pinentry-gnome3;
};
services = { services = {
blueman.enable = lib.mkDefault true; blueman.enable = lib.mkDefault true;
dbus.packages = [pkgs.gcr]; dbus.packages = [pkgs.gcr];
@ -44,9 +48,5 @@
''; '';
}; };
}; };
programs = {
gnupg.agent.pinentryPackage = lib.mkForce pkgs.pinentry-gnome3;
};
}; };
} }

View file

@ -3,34 +3,34 @@
lib, lib,
config, config,
... ...
}: let }: {
hoenn = pkgs.writeShellScriptBin "hoenn" ''
FLAKE=''${2:-"github:alyraffauf/nixcfg"}
HOST=''${HOST:-${config.networking.hostName}}
GIT=https://''${FLAKE//:/\.com\/}.git
if [ "$1" == "sync" ]; then
sudo ${lib.getExe pkgs.nixos-rebuild} switch --flake $FLAKE#$HOST
exit 0;
elif [ "$1" == "boot" ]; then
sudo ${lib.getExe pkgs.nixos-rebuild} boot --flake $FLAKE#$HOST
exit 0;
elif [ "$1" == "gc" ]; then
sudo ${lib.getExe' pkgs.nix "nix-collect-garbage"} -d
exit 0;
elif [ "$1" == "clone" ]; then
${lib.getExe pkgs.git} clone $GIT
cd nixcfg
exit 0;
fi
'';
in {
options = { options = {
alyraffauf.scripts.hoenn.enable = alyraffauf.scripts.hoenn.enable =
lib.mkEnableOption "Enable hoenn system configuration script"; lib.mkEnableOption "Enable hoenn system configuration script";
}; };
config = lib.mkIf config.alyraffauf.scripts.hoenn.enable { config = lib.mkIf config.alyraffauf.scripts.hoenn.enable {
environment.systemPackages = with pkgs; [hoenn]; environment.systemPackages = [
(pkgs.writeShellScriptBin "hoenn" ''
FLAKE=''${2:-"github:alyraffauf/nixcfg"}
HOST=''${HOST:-${config.networking.hostName}}
GIT=https://''${FLAKE//:/\.com\/}.git
if [ "$1" == "sync" ]; then
sudo ${lib.getExe pkgs.nixos-rebuild} switch --flake $FLAKE#$HOST
exit 0;
elif [ "$1" == "boot" ]; then
sudo ${lib.getExe pkgs.nixos-rebuild} boot --flake $FLAKE#$HOST
exit 0;
elif [ "$1" == "gc" ]; then
sudo ${lib.getExe' pkgs.nix "nix-collect-garbage"} -d
exit 0;
elif [ "$1" == "clone" ]; then
${lib.getExe pkgs.git} clone $GIT
cd nixcfg
exit 0;
fi
'')
];
}; };
} }

View file

@ -4,5 +4,11 @@
config, config,
... ...
}: { }: {
imports = [./binaryCache ./flatpak ./ollama ./syncthing ./tailscale]; imports = [
./binaryCache
./flatpak
./ollama
./syncthing
./tailscale
];
} }

View file

@ -10,13 +10,8 @@
}; };
config = lib.mkIf config.alyraffauf.services.flatpak.enable { config = lib.mkIf config.alyraffauf.services.flatpak.enable {
# Needed for Flatpaks environment.systemPackages = with pkgs; [gnome.gnome-software];
xdg.portal.enable = true;
services.flatpak.enable = true;
fonts.fontDir.enable = true;
# Allow access to system fonts.
system.fsPackages = [pkgs.bindfs];
fileSystems = let fileSystems = let
mkRoSymBind = path: { mkRoSymBind = path: {
device = path; device = path;
@ -33,6 +28,10 @@
"/usr/share/icons" = mkRoSymBind (config.system.path + "/share/icons"); "/usr/share/icons" = mkRoSymBind (config.system.path + "/share/icons");
"/usr/share/fonts" = mkRoSymBind (aggregatedFonts + "/share/fonts"); "/usr/share/fonts" = mkRoSymBind (aggregatedFonts + "/share/fonts");
}; };
environment.systemPackages = with pkgs; [gnome.gnome-software];
fonts.fontDir.enable = true;
services.flatpak.enable = true;
system.fsPackages = [pkgs.bindfs];
xdg.portal.enable = true;
}; };
} }

View file

@ -5,16 +5,18 @@
... ...
}: { }: {
options = { options = {
alyraffauf.services.ollama.enable = lib.mkEnableOption "Enable ollama interface for LLMs."; alyraffauf.services.ollama = {
alyraffauf.services.ollama.listenAddress = lib.mkOption { enable = lib.mkEnableOption "Enable ollama interface for LLMs.";
description = "Listen Address for Ollama."; listenAddress = lib.mkOption {
default = "127.0.0.1:11434"; description = "Listen Address for Ollama.";
type = lib.types.str; default = "127.0.0.1:11434";
}; type = lib.types.str;
alyraffauf.services.ollama.gpu = lib.mkOption { };
description = "Type of GPU for enabling GPU acceleration."; gpu = lib.mkOption {
default = null; description = "Type of GPU for enabling GPU acceleration.";
type = lib.types.str; default = null;
type = lib.types.str;
};
}; };
}; };

View file

@ -7,11 +7,23 @@
imports = [./syncMusic.nix]; imports = [./syncMusic.nix];
options = { options = {
alyraffauf.services.syncthing.enable = lib.mkEnableOption "Enable Syncthing"; alyraffauf.services.syncthing = {
alyraffauf.services.syncthing.user = lib.mkOption { enable = lib.mkEnableOption "Enable Syncthing";
description = "Specify user Syncthing runs as."; user = lib.mkOption {
default = "aly"; description = "Specify user Syncthing runs as.";
type = lib.types.str; default = "aly";
type = lib.types.str;
};
syncMusic = lib.mkOption {
description = "Whether to sync music folder.";
default = true;
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;
};
}; };
}; };
@ -19,7 +31,7 @@
services.syncthing = { services.syncthing = {
enable = true; enable = true;
openDefaultPorts = true; openDefaultPorts = true;
user = "${config.alyraffauf.services.syncthing.user}"; user = config.alyraffauf.services.syncthing.user;
dataDir = "/home/${config.alyraffauf.services.syncthing.user}"; dataDir = "/home/${config.alyraffauf.services.syncthing.user}";
settings = { settings = {
options = { options = {
@ -58,8 +70,8 @@
path = "/home/${config.alyraffauf.services.syncthing.user}/pics/camera"; path = "/home/${config.alyraffauf.services.syncthing.user}/pics/camera";
devices = ["brawly" "fallarbor" "lavaridge" "mauville" "petalburg" "rustboro" "wattson" "winona"]; devices = ["brawly" "fallarbor" "lavaridge" "mauville" "petalburg" "rustboro" "wattson" "winona"];
versioning = { versioning = {
type = "trashcan";
params.cleanoutDays = "15"; params.cleanoutDays = "15";
type = "trashcan";
}; };
}; };
}; };

View file

@ -4,30 +4,17 @@
config, config,
... ...
}: { }: {
options = {
alyraffauf.services.syncthing.syncMusic = lib.mkOption {
description = "Whether to sync music folder.";
default = true;
type = lib.types.bool;
};
alyraffauf.services.syncthing.syncMusicPath = lib.mkOption {
description = "Whether to sync music folder.";
default = "/home/${config.alyraffauf.services.syncthing.user}/music";
type = lib.types.str;
};
};
config = lib.mkIf config.alyraffauf.services.syncthing.syncMusic { config = lib.mkIf config.alyraffauf.services.syncthing.syncMusic {
services.syncthing = { services.syncthing = {
settings = { settings = {
folders = { folders = {
"music" = { "music" = {
id = "6nzmu-z9der"; id = "6nzmu-z9der";
path = config.alyraffauf.services.syncthing.syncMusicPath; path = config.alyraffauf.services.syncthing.musicPath;
devices = ["lavaridge" "mauville" "petalburg" "rustboro" "wattson"]; devices = ["lavaridge" "mauville" "petalburg" "rustboro" "wattson"];
versioning = { versioning = {
type = "trashcan";
params.cleanoutDays = "1"; params.cleanoutDays = "1";
type = "trashcan";
}; };
}; };
}; };

View file

@ -9,7 +9,6 @@
alyraffauf.system.power-profiles-daemon.enable = lib.mkDefault true; alyraffauf.system.power-profiles-daemon.enable = lib.mkDefault true;
console = { console = {
useXkbConfig = true;
colors = [ colors = [
"303446" "303446"
"e78284" "e78284"
@ -29,12 +28,13 @@
"81c8be" "81c8be"
"a5adce" "a5adce"
]; ];
useXkbConfig = true;
}; };
time.timeZone = "America/New_York"; time.timeZone = "America/New_York";
i18n = { i18n = {
defaultLocale = "en_US.UTF-8"; defaultLocale = lib.mkDefault "en_US.UTF-8";
extraLocaleSettings = { extraLocaleSettings = {
LC_ADDRESS = config.i18n.defaultLocale; LC_ADDRESS = config.i18n.defaultLocale;
LC_IDENTIFICATION = config.i18n.defaultLocale; LC_IDENTIFICATION = config.i18n.defaultLocale;

View file

@ -5,11 +5,13 @@
... ...
}: { }: {
options = { options = {
alyraffauf.system.zramSwap.enable = lib.mkEnableOption "Enables zram swap."; alyraffauf.system.zramSwap = {
alyraffauf.system.zramSwap.size = lib.mkOption { enable = lib.mkEnableOption "Enables zram swap.";
description = "Percent size of the zram swap."; size = lib.mkOption {
default = 50; description = "Percent size of the zram swap.";
type = lib.types.int; default = 50;
type = lib.types.int;
};
}; };
}; };

View file

@ -6,20 +6,22 @@
... ...
}: { }: {
options = { options = {
alyraffauf.user.aly.enable = lib.mkEnableOption "Enables Aly's user."; alyraffauf.user.aly = {
alyraffauf.user.aly.password = lib.mkOption { enable = lib.mkEnableOption "Enables Aly's user.";
description = "Hashed password for user aly."; password = lib.mkOption {
type = lib.types.str; description = "Hashed password for user aly.";
type = lib.types.str;
};
}; };
}; };
config = lib.mkIf config.alyraffauf.user.aly.enable { config = lib.mkIf config.alyraffauf.user.aly.enable {
users.users.aly = { users.users.aly = {
isNormalUser = true;
description = "Aly Raffauf"; description = "Aly Raffauf";
extraGroups = ["networkmanager" "wheel" "docker" "libvirtd" "video"]; extraGroups = ["networkmanager" "wheel" "docker" "libvirtd" "video"];
linger = true;
hashedPassword = config.alyraffauf.user.aly.password; hashedPassword = config.alyraffauf.user.aly.password;
isNormalUser = true;
linger = true;
openssh.authorizedKeys.keys = config.users.users.root.openssh.authorizedKeys.keys; openssh.authorizedKeys.keys = config.users.users.root.openssh.authorizedKeys.keys;
}; };
}; };

View file

@ -12,18 +12,18 @@
./dustin ./dustin
]; ];
home-manager.useGlobalPkgs = true; home-manager.backupFileExtension = "backup";
home-manager.useUserPackages = true;
home-manager.extraSpecialArgs = {inherit inputs unstable;}; home-manager.extraSpecialArgs = {inherit inputs unstable;};
home-manager.sharedModules = [{imports = [../../homeManagerModules];}]; home-manager.sharedModules = [{imports = [../../homeManagerModules];}];
home-manager.backupFileExtension = "backup"; home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
users.mutableUsers = false; users.mutableUsers = false;
users.users.root.openssh.authorizedKeys.keys = [ users.users.root.openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIA5xWjZIdMQaQE7vyPP7VRAKNHbrFeh0QtF3bAXni66V aly@lavaridge"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGcJBb7+ZxkDdk06A0csNsbgT9kARUN185M8k3Lq7E/d u0_a336@localhost" # termux on winona
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIXlNHLi7aWZ+4/P9TN1wYzFvw5R01GYF/YC1Dl6Z/VJ aly@rustboro"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJBK+QkM3C98BxnJtcEOuxjT7bbUG8gsUafrzW9uKuxz aly@petalburg" "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJBK+QkM3C98BxnJtcEOuxjT7bbUG8gsUafrzW9uKuxz aly@petalburg"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINHdpGTfjmnnau18CowChY4hPn/fzRkgJvXFs+yPy74I aly@mauville" "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINHdpGTfjmnnau18CowChY4hPn/fzRkgJvXFs+yPy74I aly@mauville"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIA5xWjZIdMQaQE7vyPP7VRAKNHbrFeh0QtF3bAXni66V aly@lavaridge"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIXlNHLi7aWZ+4/P9TN1wYzFvw5R01GYF/YC1Dl6Z/VJ aly@rustboro"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGcJBb7+ZxkDdk06A0csNsbgT9kARUN185M8k3Lq7E/d u0_a336@localhost" # termux on winona
]; ];
} }

View file

@ -6,19 +6,21 @@
... ...
}: { }: {
options = { options = {
alyraffauf.user.dustin.enable = lib.mkEnableOption "Enables Dustin's user."; alyraffauf.user.dustin = {
alyraffauf.user.dustin.password = lib.mkOption { enable = lib.mkEnableOption "Enables Dustin's user.";
description = "Hashed password."; password = lib.mkOption {
type = lib.types.str; description = "Hashed password.";
type = lib.types.str;
};
}; };
}; };
config = lib.mkIf config.alyraffauf.user.dustin.enable { config = lib.mkIf config.alyraffauf.user.dustin.enable {
users.users.dustin = { users.users.dustin = {
isNormalUser = true;
description = "Dustin Raffauf"; description = "Dustin Raffauf";
extraGroups = ["networkmanager" "wheel" "docker" "libvirtd" "video"]; extraGroups = ["networkmanager" "wheel" "docker" "libvirtd" "video"];
hashedPassword = config.alyraffauf.user.dustin.password; hashedPassword = config.alyraffauf.user.dustin.password;
isNormalUser = true;
}; };
}; };
} }