ran statix linter

This commit is contained in:
Leyla Becker 2024-09-17 16:49:59 -05:00
parent 11603852f4
commit 0b1309dd0f
16 changed files with 376 additions and 329 deletions

View file

@ -4,32 +4,33 @@
../common ../common
]; ];
# Enable CUPS to print documents. services = {
services.printing.enable = true;
# Enable CUPS to print documents.
printing.enable = true;
xserver = {
# Enable the X11 windowing system. # Enable the X11 windowing system.
services.xserver.enable = true; enable = true;
# Enable the GNOME Desktop Environment. # Enable the GNOME Desktop Environment.
services.xserver.displayManager.gdm.enable = true; displayManager.gdm.enable = true;
services.xserver.desktopManager.gnome.enable = true; desktopManager = {
services.xserver.desktopManager.xterm.enable = false; gnome.enable = true;
xterm.enable = false;
};
# Get rid of xTerm # Get rid of xTerm
services.xserver.excludePackages = [ pkgs.xterm ]; excludePackages = [ pkgs.xterm ];
# Configure keymap in X11 # Configure keymap in X11
services.xserver = {
xkb = { xkb = {
layout = "us,it,de"; layout = "us,it,de";
variant = ""; variant = "";
}; };
}; };
# Enable sound with pipewire. pipewire = {
hardware.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
enable = true; enable = true;
alsa.enable = true; alsa.enable = true;
alsa.support32Bit = true; alsa.support32Bit = true;
@ -41,6 +42,12 @@
# no need to redefine it in your config for now) # no need to redefine it in your config for now)
#media-session.enable = true; #media-session.enable = true;
}; };
};
# Enable sound with pipewire.
hardware.pulseaudio.enable = false;
security.rtkit.enable = true;
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
# helvetica font # helvetica font

View file

@ -23,38 +23,33 @@
virtualisation.docker.enable = true; virtualisation.docker.enable = true;
users.extraGroups.docker.members = [ "leyla" ]; users.extraGroups.docker.members = [ "leyla" ];
boot.supportedFilesystems = [ "zfs" ];
boot.zfs.extraPools = [ "zroot" ];
services.zfs.autoScrub.enable = true;
services.zfs.autoSnapshot.enable = true;
# this might need to match the hostId of the installation medium? `head -c 8 /etc/machine-id` NOPE
networking.hostId = "c51763d6";
networking.hostName = "defiant"; # Define your hostname.
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
services = {
zfs = {
autoScrub.enable = true;
autoSnapshot.enable = true;
};
# temp enable desktop enviroment for setup # temp enable desktop enviroment for setup
# Enable the X11 windowing system. # Enable the X11 windowing system.
services.xserver.enable = true; xserver = {
enable = true;
# Enable the GNOME Desktop Environment. # Enable the GNOME Desktop Environment.
services.xserver.displayManager.gdm.enable = true; services.xserver.displayManager = {
services.xserver.desktopManager.gnome.enable = true; gdm.enable = true;
services.xserver.desktopManager.xterm.enable = false; };
services.xserver.desktopManager = {
gnome.enable = true;
desktopManager.xterm.enable = false;
};
# Get rid of xTerm # Get rid of xTerm
services.xserver.excludePackages = [ pkgs.xterm ]; excludePackages = [ pkgs.xterm ];
};
# disable computer sleeping openssh = {
systemd.targets.sleep.enable = false;
systemd.targets.suspend.enable = false;
systemd.targets.hibernate.enable = false;
systemd.targets.hybrid-sleep.enable = false;
services.openssh = {
enable = true; enable = true;
ports = [ 22 ]; ports = [ 22 ];
settings = { settings = {
@ -65,28 +60,9 @@
}; };
}; };
fileSystems."/srv/nfs4/docker" = { nfs.server = {
device = "/home/docker"; enable = true;
options = [ "bind" ]; exports = ''
};
fileSystems."/srv/nfs4/users" = {
device = "/home/users";
options = [ "bind" ];
};
fileSystems."/srv/nfs4/leyla" = {
device = "/home/leyla";
options = [ "bind" ];
};
fileSystems."/srv/nfs4/eve" = {
device = "/home/eve";
options = [ "bind" ];
};
services.nfs.server.enable = true;
services.nfs.server.exports = ''
/srv/nfs4/docker 192.168.1.0/24(rw,sync,crossmnt,no_subtree_check) /srv/nfs4/docker 192.168.1.0/24(rw,sync,crossmnt,no_subtree_check)
/srv/nfs4/leyla 192.168.1.0/22(rw,sync,no_subtree_check,nohide) /srv/nfs4/leyla 192.168.1.0/22(rw,sync,no_subtree_check,nohide)
@ -99,6 +75,38 @@
# /export/sen 192.168.1.10(rw,nohide,insecure,no_subtree_check) 192.168.1.15(rw,nohide,insecure,no_subtree_check) # /export/sen 192.168.1.10(rw,nohide,insecure,no_subtree_check) 192.168.1.15(rw,nohide,insecure,no_subtree_check)
# /export/tomoyo 192.168.1.10(rw,nohide,insecure,no_subtree_check) 192.168.1.15(rw,nohide,insecure,no_subtree_check) # /export/tomoyo 192.168.1.10(rw,nohide,insecure,no_subtree_check) 192.168.1.15(rw,nohide,insecure,no_subtree_check)
''; '';
};
};
# disable computer sleeping
systemd.targets = {
sleep.enable = false;
suspend.enable = false;
hibernate.enable = false;
hybrid-sleep.enable = false;
};
fileSystems = {
"/srv/nfs4/docker" = {
device = "/home/docker";
options = [ "bind" ];
};
"/srv/nfs4/users" = {
device = "/home/users";
options = [ "bind" ];
};
"/srv/nfs4/leyla" = {
device = "/home/leyla";
options = [ "bind" ];
};
"/srv/nfs4/eve" = {
device = "/home/eve";
options = [ "bind" ];
};
};
# This value determines the NixOS release from which the default # This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions # settings for stateful data, like file locations and database versions

View file

@ -8,10 +8,18 @@
[ (modulesPath + "/installer/scan/not-detected.nix") [ (modulesPath + "/installer/scan/not-detected.nix")
]; ];
boot.initrd.availableKernelModules = [ "xhci_pci" "aacraid" "ahci" "usbhid" "usb_storage" "sd_mod" ]; boot = {
boot.initrd.kernelModules = [ ]; initrd = {
boot.kernelModules = [ "kvm-amd" ]; availableKernelModules = [ "xhci_pci" "aacraid" "ahci" "usbhid" "usb_storage" "sd_mod" ];
boot.extraModulePackages = [ ]; kernelModules = [ ];
};
kernelModules = [ "kvm-amd" ];
extraModulePackages = [ ];
supportedFilesystems = [ "zfs" ];
zfs.extraPools = [ "zroot" ];
};
# fileSystems."/" = # fileSystems."/" =
# { device = "/dev/disk/by-uuid/dc6a9664-80f2-4988-afd7-fee5bd3ee2ca"; # { device = "/dev/disk/by-uuid/dc6a9664-80f2-4988-afd7-fee5bd3ee2ca";
@ -20,13 +28,17 @@
swapDevices = [ ]; swapDevices = [ ];
networking = {
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's # (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction # still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`. # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true; useDHCP = lib.mkDefault true;
# networking.interfaces.eno1.useDHCP = lib.mkDefault true; # networking.interfaces.eno1.useDHCP = lib.mkDefault true;
# networking.interfaces.eno2.useDHCP = lib.mkDefault true; # networking.interfaces.eno2.useDHCP = lib.mkDefault true;
hostId = "c51763d6";
hostName = "defiant"; # Define your hostname.
};
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;

View file

@ -1,5 +0,0 @@
# eve desktop
{}:
{
}

View file

@ -1,5 +0,0 @@
# nas
{}:
{
}

View file

@ -11,9 +11,11 @@
../../enviroments/client ../../enviroments/client
]; ];
users.leyla.isFullUser = true; users = {
users.ester.isFullUser = true; leyla.isFullUser = true;
users.eve.isFullUser = true; ester.isFullUser = true;
eve.isFullUser = true;
};
# enabled virtualisation for docker # enabled virtualisation for docker
virtualisation.docker = { virtualisation.docker = {

View file

@ -8,62 +8,73 @@
[ (modulesPath + "/installer/scan/not-detected.nix") [ (modulesPath + "/installer/scan/not-detected.nix")
]; ];
boot.initrd.availableKernelModules = [ "xhci_pci" "thunderbolt" "nvme" "usb_storage" "sd_mod" ]; boot = {
boot.initrd.kernelModules = [ ]; initrd = {
boot.kernelModules = [ "kvm-intel" "sg" ]; availableKernelModules = [ "xhci_pci" "thunderbolt" "nvme" "usb_storage" "sd_mod" ];
boot.extraModulePackages = [ ]; kernelModules = [ ];
};
kernelModules = [ "kvm-intel" "sg" ];
extraModulePackages = [ ];
# Bootloader. # Bootloader.
boot.loader.systemd-boot.enable = true; loader = {
boot.loader.efi.canTouchEfiVariables = true; systemd-boot.enable = true;
efi.canTouchEfiVariables = true;
};
};
hardware.graphics.enable = true; hardware.graphics.enable = true;
fileSystems."/" = fileSystems = {
"/" =
{ device = "/dev/disk/by-uuid/866d422b-f816-4ad9-9846-791839cb9337"; { device = "/dev/disk/by-uuid/866d422b-f816-4ad9-9846-791839cb9337";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/boot" = "/boot" =
{ device = "/dev/disk/by-uuid/E138-65B5"; { device = "/dev/disk/by-uuid/E138-65B5";
fsType = "vfat"; fsType = "vfat";
}; };
services.cachefilesd.enable = true; "/mnt/leyla_home" =
fileSystems."/mnt/leyla_home" =
{ {
device = "server.arpa:/home/leyla"; device = "server.arpa:/home/leyla";
fsType = "nfs"; fsType = "nfs";
options = [ "x-systemd.automount" "user" "nofail" "soft" "x-systemd.idle-timeout=600" "fsc" ]; options = [ "x-systemd.automount" "user" "nofail" "soft" "x-systemd.idle-timeout=600" "fsc" ];
}; };
fileSystems."/mnt/share_home" = "/mnt/share_home" =
{ {
device = "server.arpa:/home/share"; device = "server.arpa:/home/share";
fsType = "nfs"; fsType = "nfs";
options = [ "x-systemd.automount" "user" "nofail" "soft" "x-systemd.idle-timeout=600" "fsc" ]; options = [ "x-systemd.automount" "user" "nofail" "soft" "x-systemd.idle-timeout=600" "fsc" ];
}; };
fileSystems."/mnt/docker_home" = "/mnt/docker_home" =
{ {
device = "server.arpa:/home/docker"; device = "server.arpa:/home/docker";
fsType = "nfs"; fsType = "nfs";
options = [ "x-systemd.automount" "noauto" "x-systemd.idle-timeout=600" ]; options = [ "x-systemd.automount" "noauto" "x-systemd.idle-timeout=600" ];
}; };
};
services.cachefilesd.enable = true;
swapDevices = swapDevices =
[ { device = "/dev/disk/by-uuid/be98e952-a072-4c3a-8c12-69500b5a2fff"; } [ { device = "/dev/disk/by-uuid/be98e952-a072-4c3a-8c12-69500b5a2fff"; }
]; ];
networking = {
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's # (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction # still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`. # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true; useDHCP = lib.mkDefault true;
# networking.interfaces.enp0s20f0u1.useDHCP = lib.mkDefault true; # networking.interfaces.enp0s20f0u1.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp170s0.useDHCP = lib.mkDefault true; # networking.interfaces.wlp170s0.useDHCP = lib.mkDefault true;
networking.hostName = "horizon"; # Define your hostname. hostName = "horizon"; # Define your hostname.
};
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave"; powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";

View file

@ -1,5 +0,0 @@
# eve laptop
{}:
{
}

View file

@ -11,15 +11,17 @@
../../enviroments/client ../../enviroments/client
]; ];
users.leyla = { users = {
leyla = {
isFullUser = true; isFullUser = true;
hasPiperMouse = true; hasPiperMouse = true;
hasOpenRGBHardware = true; hasOpenRGBHardware = true;
hasViaKeyboard = true; hasViaKeyboard = true;
hasGPU = true; hasGPU = true;
}; };
users.ester.isFullUser = true; ester.isFullUser = true;
users.eve.isFullUser = true; eve.isFullUser = true;
};
# enabled virtualisation for docker # enabled virtualisation for docker
# virtualisation.docker.enable = true; # virtualisation.docker.enable = true;

View file

@ -8,26 +8,35 @@
[ (modulesPath + "/installer/scan/not-detected.nix") [ (modulesPath + "/installer/scan/not-detected.nix")
]; ];
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ]; boot = {
boot.initrd.kernelModules = [ ]; initrd = {
boot.kernelModules = [ "kvm-amd" "sg" ]; availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ];
boot.extraModulePackages = [ ]; kernelModules = [ ];
};
kernelModules = [ "kvm-amd" "sg" ];
extraModulePackages = [ ];
# Bootloader. # Bootloader.
boot.loader.systemd-boot.enable = true; loader = {
boot.loader.efi.canTouchEfiVariables = true; systemd-boot.enable = true;
efi.canTouchEfiVariables = true;
# Enable OpenGL };
hardware.graphics.enable = true; };
services.xserver = {
# Load nvidia driver for Xorg and Wayland # Load nvidia driver for Xorg and Wayland
services.xserver.videoDrivers = ["nvidia"]; videoDrivers = ["nvidia"];
# Use X instead of wayland for gaming reasons # Use X instead of wayland for gaming reasons
services.xserver.displayManager.gdm.wayland = false; displayManager.gdm.wayland = false;
};
hardware = {
# Enable OpenGL
graphics.enable = true;
# install graphics drivers # install graphics drivers
hardware.nvidia = { nvidia = {
# Modesetting is required. # Modesetting is required.
modesetting.enable = true; modesetting.enable = true;
@ -57,49 +66,54 @@
# Optionally, you may need to select the appropriate driver version for your specific GPU. # Optionally, you may need to select the appropriate driver version for your specific GPU.
package = config.boot.kernelPackages.nvidiaPackages.production; package = config.boot.kernelPackages.nvidiaPackages.production;
}; };
};
fileSystems."/" = fileSystems = {
"/" =
{ device = "/dev/disk/by-uuid/8be49c65-2b57-48f1-b74d-244d26061adb"; { device = "/dev/disk/by-uuid/8be49c65-2b57-48f1-b74d-244d26061adb";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/boot" = "/boot" =
{ device = "/dev/disk/by-uuid/3006-3867"; { device = "/dev/disk/by-uuid/3006-3867";
fsType = "vfat"; fsType = "vfat";
options = [ "fmask=0022" "dmask=0022" ]; options = [ "fmask=0022" "dmask=0022" ];
}; };
fileSystems."/mnt/leyla_home" = "/mnt/leyla_home" =
{ {
device = "server.arpa:/home/leyla"; device = "server.arpa:/home/leyla";
fsType = "nfs"; fsType = "nfs";
options = [ "x-systemd.automount" "user" "nofail" "soft" "x-systemd.idle-timeout=600" "fsc" ]; options = [ "x-systemd.automount" "user" "nofail" "soft" "x-systemd.idle-timeout=600" "fsc" ];
}; };
fileSystems."/mnt/share_home" = "/mnt/share_home" =
{ {
device = "server.arpa:/home/share"; device = "server.arpa:/home/share";
fsType = "nfs"; fsType = "nfs";
options = [ "x-systemd.automount" "user" "nofail" "soft" "x-systemd.idle-timeout=600" "fsc" ]; options = [ "x-systemd.automount" "user" "nofail" "soft" "x-systemd.idle-timeout=600" "fsc" ];
}; };
fileSystems."/mnt/docker_home" = "/mnt/docker_home" =
{ {
device = "server.arpa:/home/docker"; device = "server.arpa:/home/docker";
fsType = "nfs"; fsType = "nfs";
options = [ "x-systemd.automount" "noauto" "x-systemd.idle-timeout=600" ]; options = [ "x-systemd.automount" "noauto" "x-systemd.idle-timeout=600" ];
}; };
};
swapDevices = [ ]; swapDevices = [ ];
networking = {
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's # (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction # still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`. # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true; useDHCP = lib.mkDefault true;
# networking.interfaces.enp42s0.useDHCP = lib.mkDefault true; # networking.interfaces.enp42s0.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp5s0.useDHCP = lib.mkDefault true; # networking.interfaces.wlp5s0.useDHCP = lib.mkDefault true;
networking.hostName = "twilight"; # Define your hostname. hostName = "twilight"; # Define your hostname.
};
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;

View file

@ -1,4 +1,4 @@
{ ... }: _:
{ {
nixpkgs.overlays = [ nixpkgs.overlays = [
(self: super: { (self: super: {

View file

@ -1,4 +1,4 @@
{ ... }: _:
{ {
nixpkgs.overlays = [ nixpkgs.overlays = [
(self: super: { (self: super: {

View file

@ -0,0 +1,2 @@
_:
{}

View file

@ -3,8 +3,9 @@
{ {
# Home Manager needs a bit of information about you and the paths it should # Home Manager needs a bit of information about you and the paths it should
# manage. # manage.
home.username = "leyla"; home = {
home.homeDirectory = "/home/leyla"; username = "leyla";
homeDirectory = "/home/leyla";
# This value determines the Home Manager release that your configuration is # This value determines the Home Manager release that your configuration is
# compatible with. This helps avoid breakage when a new Home Manager release # compatible with. This helps avoid breakage when a new Home Manager release
@ -13,11 +14,11 @@
# You should not change this value, even if you update Home Manager. If you do # You should not change this value, even if you update Home Manager. If you do
# want to update the value, then make sure to first check the Home Manager # want to update the value, then make sure to first check the Home Manager
# release notes. # release notes.
home.stateVersion = "23.11"; # Please read the comment before changing. stateVersion = "23.11"; # Please read the comment before changing.
# The home.packages option allows you to install Nix packages into your # The home.packages option allows you to install Nix packages into your
# environment. # environment.
home.packages = [ packages = [
# # Adds the 'hello' command to your environment. It prints a friendly # # Adds the 'hello' command to your environment. It prints a friendly
# # "Hello, world!" when run. # # "Hello, world!" when run.
# pkgs.hello # pkgs.hello
@ -38,7 +39,7 @@
# Home Manager is pretty good at managing dotfiles. The primary way to manage # Home Manager is pretty good at managing dotfiles. The primary way to manage
# plain files is through 'home.file'. # plain files is through 'home.file'.
home.file = { file = {
# # Building this configuration will create a copy of 'dotfiles/screenrc' in # # Building this configuration will create a copy of 'dotfiles/screenrc' in
# # the Nix store. Activating the configuration will then make '~/.screenrc' a # # the Nix store. Activating the configuration will then make '~/.screenrc' a
# # symlink to the Nix store copy. # # symlink to the Nix store copy.
@ -66,9 +67,10 @@
# #
# /etc/profiles/per-user/leyla/etc/profile.d/hm-session-vars.sh # /etc/profiles/per-user/leyla/etc/profile.d/hm-session-vars.sh
# #
home.sessionVariables = { sessionVariables = {
# EDITOR = "emacs"; # EDITOR = "emacs";
}; };
};
programs = { programs = {
# Let Home Manager install and manage itself. # Let Home Manager install and manage itself.

View file

@ -8,19 +8,21 @@ in
../../overlays/vscodium.nix ../../overlays/vscodium.nix
]; ];
programs.bash.shellAliases = lib.mkIf cfg.isFullUser ({ programs = {
bash.shellAliases = lib.mkIf cfg.isFullUser {
code = "codium"; code = "codium";
}); };
programs.steam = lib.mkIf cfg.isFullUser ({ steam = lib.mkIf cfg.isFullUser {
enable = true; enable = true;
remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
}); };
programs.noisetorch.enable = cfg.isFullUser; noisetorch.enable = cfg.isFullUser;
programs.adb.enable = cfg.isFullUser; adb.enable = cfg.isFullUser;
};
users.users.leyla.packages = lib.mkIf (cfg.isFullUser || cfg.isThinUser) ( users.users.leyla.packages = lib.mkIf (cfg.isFullUser || cfg.isThinUser) (
lib.mkMerge [ lib.mkMerge [

View file

@ -1,8 +1,8 @@
{ lib, ... }: _:
{ {
mkUnless = condition: then: (mkIf (!condition) then); # mkUnless = condition: then: (mkIf (!condition) then);
mkIfElse = condition: then: else: lib.mkMerge [ # mkIfElse = condition: then: else: lib.mkMerge [
(mkIf condition then) # (mkIf condition then)
(mkUnless condition else) # (mkUnless condition else)
]; # ];
} }