ran statix linter
This commit is contained in:
parent
f68a46c46a
commit
9706360841
|
@ -4,43 +4,50 @@
|
||||||
../common
|
../common
|
||||||
];
|
];
|
||||||
|
|
||||||
# Enable CUPS to print documents.
|
services = {
|
||||||
services.printing.enable = true;
|
|
||||||
|
|
||||||
# Enable the X11 windowing system.
|
# Enable CUPS to print documents.
|
||||||
services.xserver.enable = true;
|
printing.enable = true;
|
||||||
|
|
||||||
# Enable the GNOME Desktop Environment.
|
xserver = {
|
||||||
services.xserver.displayManager.gdm.enable = true;
|
# Enable the X11 windowing system.
|
||||||
services.xserver.desktopManager.gnome.enable = true;
|
enable = true;
|
||||||
services.xserver.desktopManager.xterm.enable = false;
|
|
||||||
|
|
||||||
# Get rid of xTerm
|
# Enable the GNOME Desktop Environment.
|
||||||
services.xserver.excludePackages = [ pkgs.xterm ];
|
displayManager.gdm.enable = true;
|
||||||
|
desktopManager = {
|
||||||
|
gnome.enable = true;
|
||||||
|
xterm.enable = false;
|
||||||
|
};
|
||||||
|
|
||||||
# Configure keymap in X11
|
# Get rid of xTerm
|
||||||
services.xserver = {
|
excludePackages = [ pkgs.xterm ];
|
||||||
xkb = {
|
|
||||||
layout = "us,it,de";
|
# Configure keymap in X11
|
||||||
variant = "";
|
xkb = {
|
||||||
|
layout = "us,it,de";
|
||||||
|
variant = "";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
pipewire = {
|
||||||
|
enable = true;
|
||||||
|
alsa.enable = true;
|
||||||
|
alsa.support32Bit = true;
|
||||||
|
pulse.enable = true;
|
||||||
|
# If you want to use JACK applications, uncomment this
|
||||||
|
#jack.enable = true;
|
||||||
|
|
||||||
|
# use the example session manager (no others are packaged yet so this is enabled by default,
|
||||||
|
# no need to redefine it in your config for now)
|
||||||
|
#media-session.enable = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
# Enable sound with pipewire.
|
# Enable sound with pipewire.
|
||||||
hardware.pulseaudio.enable = false;
|
hardware.pulseaudio.enable = false;
|
||||||
security.rtkit.enable = true;
|
security.rtkit.enable = true;
|
||||||
services.pipewire = {
|
|
||||||
enable = true;
|
|
||||||
alsa.enable = true;
|
|
||||||
alsa.support32Bit = true;
|
|
||||||
pulse.enable = true;
|
|
||||||
# If you want to use JACK applications, uncomment this
|
|
||||||
#jack.enable = true;
|
|
||||||
|
|
||||||
# use the example session manager (no others are packaged yet so this is enabled by default,
|
|
||||||
# no need to redefine it in your config for now)
|
|
||||||
#media-session.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
# helvetica font
|
# helvetica font
|
||||||
|
|
|
@ -23,83 +23,91 @@
|
||||||
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;
|
||||||
|
|
||||||
# temp enable desktop enviroment for setup
|
services = {
|
||||||
# Enable the X11 windowing system.
|
zfs = {
|
||||||
services.xserver.enable = true;
|
autoScrub.enable = true;
|
||||||
|
autoSnapshot.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
# Enable the GNOME Desktop Environment.
|
# temp enable desktop enviroment for setup
|
||||||
services.xserver.displayManager.gdm.enable = true;
|
# Enable the X11 windowing system.
|
||||||
services.xserver.desktopManager.gnome.enable = true;
|
xserver = {
|
||||||
services.xserver.desktopManager.xterm.enable = false;
|
enable = true;
|
||||||
|
|
||||||
# Get rid of xTerm
|
# Enable the GNOME Desktop Environment.
|
||||||
services.xserver.excludePackages = [ pkgs.xterm ];
|
services.xserver.displayManager = {
|
||||||
|
gdm.enable = true;
|
||||||
|
};
|
||||||
|
services.xserver.desktopManager = {
|
||||||
|
gnome.enable = true;
|
||||||
|
desktopManager.xterm.enable = false;
|
||||||
|
};
|
||||||
|
|
||||||
# disable computer sleeping
|
# Get rid of xTerm
|
||||||
systemd.targets.sleep.enable = false;
|
excludePackages = [ pkgs.xterm ];
|
||||||
systemd.targets.suspend.enable = false;
|
};
|
||||||
systemd.targets.hibernate.enable = false;
|
|
||||||
systemd.targets.hybrid-sleep.enable = false;
|
|
||||||
|
|
||||||
services.openssh = {
|
openssh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
ports = [ 22 ];
|
ports = [ 22 ];
|
||||||
settings = {
|
settings = {
|
||||||
PasswordAuthentication = false;
|
PasswordAuthentication = false;
|
||||||
AllowUsers = [ "leyla" ]; # Allows all users by default. Can be [ "user1" "user2" ]
|
AllowUsers = [ "leyla" ]; # Allows all users by default. Can be [ "user1" "user2" ]
|
||||||
UseDns = true;
|
UseDns = true;
|
||||||
X11Forwarding = false;
|
X11Forwarding = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
nfs.server = {
|
||||||
|
enable = true;
|
||||||
|
exports = ''
|
||||||
|
/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/eve 192.168.1.0/22(rw,sync,no_subtree_check,crossmnt)
|
||||||
|
/srv/nfs4/share 192.168.1.0/22(rw,sync,no_subtree_check,crossmnt)
|
||||||
|
|
||||||
|
# /export 192.168.1.10(rw,fsid=0,no_subtree_check) 192.168.1.15(rw,fsid=0,no_subtree_check)
|
||||||
|
# /export/kotomi 192.168.1.10(rw,nohide,insecure,no_subtree_check) 192.168.1.15(rw,nohide,insecure,no_subtree_check)
|
||||||
|
# /export/mafuyu 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)
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/srv/nfs4/docker" = {
|
# disable computer sleeping
|
||||||
device = "/home/docker";
|
systemd.targets = {
|
||||||
options = [ "bind" ];
|
sleep.enable = false;
|
||||||
|
suspend.enable = false;
|
||||||
|
hibernate.enable = false;
|
||||||
|
hybrid-sleep.enable = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/srv/nfs4/users" = {
|
fileSystems = {
|
||||||
device = "/home/users";
|
"/srv/nfs4/docker" = {
|
||||||
options = [ "bind" ];
|
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" ];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
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/leyla 192.168.1.0/22(rw,sync,no_subtree_check,nohide)
|
|
||||||
/srv/nfs4/eve 192.168.1.0/22(rw,sync,no_subtree_check,crossmnt)
|
|
||||||
/srv/nfs4/share 192.168.1.0/22(rw,sync,no_subtree_check,crossmnt)
|
|
||||||
|
|
||||||
# /export 192.168.1.10(rw,fsid=0,no_subtree_check) 192.168.1.15(rw,fsid=0,no_subtree_check)
|
|
||||||
# /export/kotomi 192.168.1.10(rw,nohide,insecure,no_subtree_check) 192.168.1.15(rw,nohide,insecure,no_subtree_check)
|
|
||||||
# /export/mafuyu 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)
|
|
||||||
'';
|
|
||||||
|
|
||||||
# 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
|
||||||
# on your system were taken. It‘s perfectly fine and recommended to leave
|
# on your system were taken. It‘s perfectly fine and recommended to leave
|
||||||
|
|
|
@ -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 = [ ];
|
||||||
|
|
||||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
networking = {
|
||||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||||
# still possible to use this option, but it's recommended to use it in conjunction
|
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
# still possible to use this option, but it's recommended to use it in conjunction
|
||||||
networking.useDHCP = lib.mkDefault true;
|
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||||
# networking.interfaces.eno1.useDHCP = lib.mkDefault true;
|
useDHCP = lib.mkDefault true;
|
||||||
# networking.interfaces.eno2.useDHCP = lib.mkDefault true;
|
# networking.interfaces.eno1.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;
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
# eve desktop
|
|
||||||
{}:
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,5 +0,0 @@
|
||||||
# nas
|
|
||||||
{}:
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
|
@ -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 = {
|
||||||
|
|
|
@ -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.
|
||||||
|
loader = {
|
||||||
|
systemd-boot.enable = true;
|
||||||
|
efi.canTouchEfiVariables = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
# Bootloader.
|
|
||||||
boot.loader.systemd-boot.enable = true;
|
|
||||||
boot.loader.efi.canTouchEfiVariables = true;
|
|
||||||
|
|
||||||
hardware.graphics.enable = true;
|
hardware.graphics.enable = true;
|
||||||
|
|
||||||
fileSystems."/" =
|
fileSystems = {
|
||||||
{ device = "/dev/disk/by-uuid/866d422b-f816-4ad9-9846-791839cb9337";
|
"/" =
|
||||||
fsType = "ext4";
|
{ device = "/dev/disk/by-uuid/866d422b-f816-4ad9-9846-791839cb9337";
|
||||||
};
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
|
||||||
fileSystems."/boot" =
|
"/boot" =
|
||||||
{ device = "/dev/disk/by-uuid/E138-65B5";
|
{ device = "/dev/disk/by-uuid/E138-65B5";
|
||||||
fsType = "vfat";
|
fsType = "vfat";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
"/mnt/leyla_home" =
|
||||||
|
{
|
||||||
|
device = "server.arpa:/home/leyla";
|
||||||
|
fsType = "nfs";
|
||||||
|
options = [ "x-systemd.automount" "user" "nofail" "soft" "x-systemd.idle-timeout=600" "fsc" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"/mnt/share_home" =
|
||||||
|
{
|
||||||
|
device = "server.arpa:/home/share";
|
||||||
|
fsType = "nfs";
|
||||||
|
options = [ "x-systemd.automount" "user" "nofail" "soft" "x-systemd.idle-timeout=600" "fsc" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"/mnt/docker_home" =
|
||||||
|
{
|
||||||
|
device = "server.arpa:/home/docker";
|
||||||
|
fsType = "nfs";
|
||||||
|
options = [ "x-systemd.automount" "noauto" "x-systemd.idle-timeout=600" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
services.cachefilesd.enable = true;
|
services.cachefilesd.enable = true;
|
||||||
|
|
||||||
fileSystems."/mnt/leyla_home" =
|
|
||||||
{
|
|
||||||
device = "server.arpa:/home/leyla";
|
|
||||||
fsType = "nfs";
|
|
||||||
options = [ "x-systemd.automount" "user" "nofail" "soft" "x-systemd.idle-timeout=600" "fsc" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/mnt/share_home" =
|
|
||||||
{
|
|
||||||
device = "server.arpa:/home/share";
|
|
||||||
fsType = "nfs";
|
|
||||||
options = [ "x-systemd.automount" "user" "nofail" "soft" "x-systemd.idle-timeout=600" "fsc" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/mnt/docker_home" =
|
|
||||||
{
|
|
||||||
device = "server.arpa:/home/docker";
|
|
||||||
fsType = "nfs";
|
|
||||||
options = [ "x-systemd.automount" "noauto" "x-systemd.idle-timeout=600" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
swapDevices =
|
swapDevices =
|
||||||
[ { device = "/dev/disk/by-uuid/be98e952-a072-4c3a-8c12-69500b5a2fff"; }
|
[ { device = "/dev/disk/by-uuid/be98e952-a072-4c3a-8c12-69500b5a2fff"; }
|
||||||
];
|
];
|
||||||
|
|
||||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
networking = {
|
||||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||||
# still possible to use this option, but it's recommended to use it in conjunction
|
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
# still possible to use this option, but it's recommended to use it in conjunction
|
||||||
networking.useDHCP = lib.mkDefault true;
|
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||||
# networking.interfaces.enp0s20f0u1.useDHCP = lib.mkDefault true;
|
useDHCP = lib.mkDefault true;
|
||||||
# networking.interfaces.wlp170s0.useDHCP = lib.mkDefault true;
|
# networking.interfaces.enp0s20f0u1.useDHCP = lib.mkDefault true;
|
||||||
networking.hostName = "horizon"; # Define your hostname.
|
# networking.interfaces.wlp170s0.useDHCP = lib.mkDefault true;
|
||||||
|
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";
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
# eve laptop
|
|
||||||
{}:
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
|
@ -11,15 +11,17 @@
|
||||||
../../enviroments/client
|
../../enviroments/client
|
||||||
];
|
];
|
||||||
|
|
||||||
users.leyla = {
|
users = {
|
||||||
isFullUser = true;
|
leyla = {
|
||||||
hasPiperMouse = true;
|
isFullUser = true;
|
||||||
hasOpenRGBHardware = true;
|
hasPiperMouse = true;
|
||||||
hasViaKeyboard = true;
|
hasOpenRGBHardware = true;
|
||||||
hasGPU = true;
|
hasViaKeyboard = true;
|
||||||
|
hasGPU = true;
|
||||||
|
};
|
||||||
|
ester.isFullUser = true;
|
||||||
|
eve.isFullUser = true;
|
||||||
};
|
};
|
||||||
users.ester.isFullUser = true;
|
|
||||||
users.eve.isFullUser = true;
|
|
||||||
|
|
||||||
# enabled virtualisation for docker
|
# enabled virtualisation for docker
|
||||||
# virtualisation.docker.enable = true;
|
# virtualisation.docker.enable = true;
|
||||||
|
|
|
@ -8,98 +8,112 @@
|
||||||
[ (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;
|
|
||||||
|
|
||||||
# Load nvidia driver for Xorg and Wayland
|
|
||||||
services.xserver.videoDrivers = ["nvidia"];
|
|
||||||
|
|
||||||
# Use X instead of wayland for gaming reasons
|
|
||||||
services.xserver.displayManager.gdm.wayland = false;
|
|
||||||
|
|
||||||
# install graphics drivers
|
|
||||||
hardware.nvidia = {
|
|
||||||
# Modesetting is required.
|
|
||||||
modesetting.enable = true;
|
|
||||||
|
|
||||||
# Nvidia power management. Experimental, and can cause sleep/suspend to fail.
|
|
||||||
# Enable this if you have graphical corruption issues or application crashes after waking
|
|
||||||
# up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead
|
|
||||||
# of just the bare essentials.
|
|
||||||
powerManagement.enable = false;
|
|
||||||
|
|
||||||
# Fine-grained power management. Turns off GPU when not in use.
|
|
||||||
# Experimental and only works on modern Nvidia GPUs (Turing or newer).
|
|
||||||
powerManagement.finegrained = false;
|
|
||||||
|
|
||||||
# Use the NVidia open source kernel module (not to be confused with the
|
|
||||||
# independent third-party "nouveau" open source driver).
|
|
||||||
# Support is limited to the Turing and later architectures. Full list of
|
|
||||||
# supported GPUs is at:
|
|
||||||
# https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus
|
|
||||||
# Only available from driver 515.43.04+
|
|
||||||
# Currently alpha-quality/buggy, so false is currently the recommended setting.
|
|
||||||
open = false;
|
|
||||||
|
|
||||||
# Enable the Nvidia settings menu,
|
|
||||||
# accessible via `nvidia-settings`.
|
|
||||||
nvidiaSettings = true;
|
|
||||||
|
|
||||||
# Optionally, you may need to select the appropriate driver version for your specific GPU.
|
|
||||||
package = config.boot.kernelPackages.nvidiaPackages.production;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/" =
|
services.xserver = {
|
||||||
{ device = "/dev/disk/by-uuid/8be49c65-2b57-48f1-b74d-244d26061adb";
|
# Load nvidia driver for Xorg and Wayland
|
||||||
fsType = "ext4";
|
videoDrivers = ["nvidia"];
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/boot" =
|
# Use X instead of wayland for gaming reasons
|
||||||
{ device = "/dev/disk/by-uuid/3006-3867";
|
displayManager.gdm.wayland = false;
|
||||||
fsType = "vfat";
|
};
|
||||||
options = [ "fmask=0022" "dmask=0022" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/mnt/leyla_home" =
|
hardware = {
|
||||||
{
|
# Enable OpenGL
|
||||||
device = "server.arpa:/home/leyla";
|
graphics.enable = true;
|
||||||
fsType = "nfs";
|
|
||||||
options = [ "x-systemd.automount" "user" "nofail" "soft" "x-systemd.idle-timeout=600" "fsc" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/mnt/share_home" =
|
# install graphics drivers
|
||||||
{
|
nvidia = {
|
||||||
device = "server.arpa:/home/share";
|
# Modesetting is required.
|
||||||
fsType = "nfs";
|
modesetting.enable = true;
|
||||||
options = [ "x-systemd.automount" "user" "nofail" "soft" "x-systemd.idle-timeout=600" "fsc" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/mnt/docker_home" =
|
# Nvidia power management. Experimental, and can cause sleep/suspend to fail.
|
||||||
{
|
# Enable this if you have graphical corruption issues or application crashes after waking
|
||||||
device = "server.arpa:/home/docker";
|
# up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead
|
||||||
fsType = "nfs";
|
# of just the bare essentials.
|
||||||
options = [ "x-systemd.automount" "noauto" "x-systemd.idle-timeout=600" ];
|
powerManagement.enable = false;
|
||||||
|
|
||||||
|
# Fine-grained power management. Turns off GPU when not in use.
|
||||||
|
# Experimental and only works on modern Nvidia GPUs (Turing or newer).
|
||||||
|
powerManagement.finegrained = false;
|
||||||
|
|
||||||
|
# Use the NVidia open source kernel module (not to be confused with the
|
||||||
|
# independent third-party "nouveau" open source driver).
|
||||||
|
# Support is limited to the Turing and later architectures. Full list of
|
||||||
|
# supported GPUs is at:
|
||||||
|
# https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus
|
||||||
|
# Only available from driver 515.43.04+
|
||||||
|
# Currently alpha-quality/buggy, so false is currently the recommended setting.
|
||||||
|
open = false;
|
||||||
|
|
||||||
|
# Enable the Nvidia settings menu,
|
||||||
|
# accessible via `nvidia-settings`.
|
||||||
|
nvidiaSettings = true;
|
||||||
|
|
||||||
|
# Optionally, you may need to select the appropriate driver version for your specific GPU.
|
||||||
|
package = config.boot.kernelPackages.nvidiaPackages.production;
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems = {
|
||||||
|
"/" =
|
||||||
|
{ device = "/dev/disk/by-uuid/8be49c65-2b57-48f1-b74d-244d26061adb";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
|
||||||
|
"/boot" =
|
||||||
|
{ device = "/dev/disk/by-uuid/3006-3867";
|
||||||
|
fsType = "vfat";
|
||||||
|
options = [ "fmask=0022" "dmask=0022" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"/mnt/leyla_home" =
|
||||||
|
{
|
||||||
|
device = "server.arpa:/home/leyla";
|
||||||
|
fsType = "nfs";
|
||||||
|
options = [ "x-systemd.automount" "user" "nofail" "soft" "x-systemd.idle-timeout=600" "fsc" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"/mnt/share_home" =
|
||||||
|
{
|
||||||
|
device = "server.arpa:/home/share";
|
||||||
|
fsType = "nfs";
|
||||||
|
options = [ "x-systemd.automount" "user" "nofail" "soft" "x-systemd.idle-timeout=600" "fsc" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"/mnt/docker_home" =
|
||||||
|
{
|
||||||
|
device = "server.arpa:/home/docker";
|
||||||
|
fsType = "nfs";
|
||||||
|
options = [ "x-systemd.automount" "noauto" "x-systemd.idle-timeout=600" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
swapDevices = [ ];
|
swapDevices = [ ];
|
||||||
|
|
||||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
networking = {
|
||||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||||
# still possible to use this option, but it's recommended to use it in conjunction
|
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
# still possible to use this option, but it's recommended to use it in conjunction
|
||||||
networking.useDHCP = lib.mkDefault true;
|
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||||
# networking.interfaces.enp42s0.useDHCP = lib.mkDefault true;
|
useDHCP = lib.mkDefault true;
|
||||||
# networking.interfaces.wlp5s0.useDHCP = lib.mkDefault true;
|
# networking.interfaces.enp42s0.useDHCP = lib.mkDefault true;
|
||||||
networking.hostName = "twilight"; # Define your hostname.
|
# networking.interfaces.wlp5s0.useDHCP = lib.mkDefault true;
|
||||||
|
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;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ ... }:
|
_:
|
||||||
{
|
{
|
||||||
nixpkgs.overlays = [
|
nixpkgs.overlays = [
|
||||||
(self: super: {
|
(self: super: {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ ... }:
|
_:
|
||||||
{
|
{
|
||||||
nixpkgs.overlays = [
|
nixpkgs.overlays = [
|
||||||
(self: super: {
|
(self: super: {
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
_:
|
||||||
|
{}
|
|
@ -3,71 +3,73 @@
|
||||||
{
|
{
|
||||||
# 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
|
||||||
# introduces backwards incompatible changes.
|
# introduces backwards incompatible changes.
|
||||||
#
|
#
|
||||||
# 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
|
||||||
|
|
||||||
# # It is sometimes useful to fine-tune packages, for example, by applying
|
# # It is sometimes useful to fine-tune packages, for example, by applying
|
||||||
# # overrides. You can do that directly here, just don't forget the
|
# # overrides. You can do that directly here, just don't forget the
|
||||||
# # parentheses. Maybe you want to install Nerd Fonts with a limited number of
|
# # parentheses. Maybe you want to install Nerd Fonts with a limited number of
|
||||||
# # fonts?
|
# # fonts?
|
||||||
# (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; })
|
# (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; })
|
||||||
|
|
||||||
# # You can also create simple shell scripts directly inside your
|
# # You can also create simple shell scripts directly inside your
|
||||||
# # configuration. For example, this adds a command 'my-hello' to your
|
# # configuration. For example, this adds a command 'my-hello' to your
|
||||||
# # environment:
|
# # environment:
|
||||||
# (pkgs.writeShellScriptBin "my-hello" ''
|
# (pkgs.writeShellScriptBin "my-hello" ''
|
||||||
# echo "Hello, ${config.home.username}!"
|
# echo "Hello, ${config.home.username}!"
|
||||||
# '')
|
# '')
|
||||||
];
|
];
|
||||||
|
|
||||||
# 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.
|
||||||
# ".screenrc".source = dotfiles/screenrc;
|
# ".screenrc".source = dotfiles/screenrc;
|
||||||
|
|
||||||
# # You can also set the file content immediately.
|
# # You can also set the file content immediately.
|
||||||
# ".gradle/gradle.properties".text = ''
|
# ".gradle/gradle.properties".text = ''
|
||||||
# org.gradle.console=verbose
|
# org.gradle.console=verbose
|
||||||
# org.gradle.daemon.idletimeout=3600000
|
# org.gradle.daemon.idletimeout=3600000
|
||||||
# '';
|
# '';
|
||||||
};
|
};
|
||||||
|
|
||||||
# Home Manager can also manage your environment variables through
|
# Home Manager can also manage your environment variables through
|
||||||
# 'home.sessionVariables'. If you don't want to manage your shell through Home
|
# 'home.sessionVariables'. If you don't want to manage your shell through Home
|
||||||
# Manager then you have to manually source 'hm-session-vars.sh' located at
|
# Manager then you have to manually source 'hm-session-vars.sh' located at
|
||||||
# either
|
# either
|
||||||
#
|
#
|
||||||
# ~/.nix-profile/etc/profile.d/hm-session-vars.sh
|
# ~/.nix-profile/etc/profile.d/hm-session-vars.sh
|
||||||
#
|
#
|
||||||
# or
|
# or
|
||||||
#
|
#
|
||||||
# ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh
|
# ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh
|
||||||
#
|
#
|
||||||
# or
|
# or
|
||||||
#
|
#
|
||||||
# /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 = {
|
||||||
|
|
|
@ -8,19 +8,21 @@ in
|
||||||
../../overlays/vscodium.nix
|
../../overlays/vscodium.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
programs.bash.shellAliases = lib.mkIf cfg.isFullUser ({
|
programs = {
|
||||||
code = "codium";
|
bash.shellAliases = lib.mkIf cfg.isFullUser {
|
||||||
});
|
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 [
|
||||||
|
|
|
@ -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)
|
||||||
];
|
# ];
|
||||||
}
|
}
|
Loading…
Reference in a new issue