From 389fe5ed489d98d1c9eb02c086943a96eade91f7 Mon Sep 17 00:00:00 2001 From: Peder Bergebakken Sundt Date: Sun, 18 Jun 2023 22:17:36 +0200 Subject: [PATCH] Add Sopp --- .gitignore | 1 + flake.nix | 1 + hosts/sopp/default.nix | 111 ++++++++++++++++++++++++++ hosts/sopp/hardware-configuration.nix | 39 +++++++++ users/pbsds/home/profiles/ssh.nix | 1 + 5 files changed, 153 insertions(+) create mode 100644 hosts/sopp/default.nix create mode 100644 hosts/sopp/hardware-configuration.nix diff --git a/.gitignore b/.gitignore index ee55ffa..473fb9e 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ result /hardware-configuration.nix .direnv .remote.toml +_* diff --git a/flake.nix b/flake.nix index 537088e..8bba91b 100644 --- a/flake.nix +++ b/flake.nix @@ -104,6 +104,7 @@ noximilien = mkConfig "noximilien" "x86_64-linux" (with nm; [ common-pc common-pc-ssd common-cpu-intel ]); bolle = mkConfig "bolle" "x86_64-linux" (with nm; [ common-pc common-pc-ssd common-cpu-intel ]); nord = mkConfig "nord" "x86_64-linux" (with nm; [ common-pc common-pc-ssd common-cpu-intel-cpu-only common-gpu-amd ]); + sopp = mkConfig "sopp" "x86_64-linux" (with nm; [ common-pc common-pc-ssd common-cpu-intel ]); # TODO: common-gpu-nvidia }; homeConfigurations = forAllSystems (system: let diff --git a/hosts/sopp/default.nix b/hosts/sopp/default.nix new file mode 100644 index 0000000..9f9410b --- /dev/null +++ b/hosts/sopp/default.nix @@ -0,0 +1,111 @@ +{ config, pkgs, lib, ... }: +{ + # Bootloader + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + + services.xserver.displayManager.autoLogin.enable = true; + services.xserver.displayManager.autoLogin.user = "pbsds"; + # tmp: https://github.com/NixOS/nixpkgs/issues/103746#issuecomment-945091229 + systemd.services."getty@tty1".enable = false; + systemd.services."autovt@tty1".enable = false; + + boot.kernelPackages = pkgs.linuxPackages_latest; # amdgpu audio fix when at 4k@60fps + + imports = [ + ./hardware-configuration.nix + #../../hardware/rocm.nix # TODO: CUDA + ../../hardware/opengl-intel.nix + + ../../users # home-manager + ../../users/pbsds + + ../../profiles/mounts/reidun-nfs.nix + + ../../profiles/shell/base.nix + ../../profiles/shell/archives.nix + ../../profiles/shell/nix-utils.nix + #../../profiles/shell/binfmt-emu.nix + + ../../profiles/desktop/gnome # configures gdm + #../../profiles/desktop/sound/alsa.nix + #../../profiles/desktop/sound/pulseaudio.nix + ../../profiles/desktop/sound/pipewire.nix + + ../../profiles/desktop/steam.nix + ../../profiles/desktop/flatpak.nix + + ../../profiles/remote-builders + #../../profiles/autossh-reverse-tunnels + #../../profiles/domeneshop-dyndns # handled by noximilien + ]; + + networking.firewall.allowedTCPPorts = [ 57621 ]; # spotify local discovery + + services.thermald.enable = true; + + # Virtualization + #virtualisation.podman.enable = true; + #virtualisation.podman.dockerCompat = true; # alias docker to podman + #virtualisation.oci-containers.backend = "podman"; # default + + # Networking + networking.networkmanager.enable = true; + #networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. + networking.interfaces.eno1.ipv4.addresses = [ + { address = "192.168.1.7"; prefixLength = 24; } + ]; + networking.defaultGateway.address = "192.168.1.254"; + networking.defaultGateway.interface = "enp3s0"; + networking.nameservers = [ + "192.168.1.254" + "8.8.8.8" + "1.1.1.1" + ]; + #networking.useDHCP = true; + #TODO: avahi? resolved? https://git.pvv.ntnu.no/Drift/pvv-nixos-config/src/main/base.nix#L15-L18 + + # Installed system packages + environment.systemPackages = with pkgs; [ + cage + weston + dialog + zenith + vimix-gtk-themes + flat-remix-icon-theme + feh + + zotero + + firefox + ]; + + # TODO: remove? Move? + programs.dconf.enable = true; + + # OpenSSH + services.openssh.enable = true; + services.openssh.settings.X11Forwarding = true; + + # System fonts + fonts.fontDir.enable = true; # creates /run/current-system/sw/share/X11/fonts + fonts.enableDefaultFonts = true; # dejavu, freefont, gyre, liberation, unifont, noto-fonts-emoji + fonts.fonts = with pkgs; [ + noto-fonts # includes Cousine + noto-fonts-cjk + noto-fonts-emoji + noto-fonts-extra + ]; + + + # Enable touchpad support (enabled default in most desktopManager). + # services.xserver.libinput.enable = true; + + # This value determines the NixOS release from which the default + # settings for stateful data, like file locations and database versions + # on your system were taken. It's perfectly fine and recommended to leave + # this value at the release version of the first install of this system. + # Before changing this value read the documentation for this option + # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). + system.stateVersion = "23.05"; # Did you read the comment? +} diff --git a/hosts/sopp/hardware-configuration.nix b/hosts/sopp/hardware-configuration.nix new file mode 100644 index 0000000..3f24246 --- /dev/null +++ b/hosts/sopp/hardware-configuration.nix @@ -0,0 +1,39 @@ +# Do not modify this file! It was generated by ‘nixos-generate-config’ +# and may be overwritten by future invocations. Please make changes +# to /etc/nixos/configuration.nix instead. +{ config, lib, pkgs, modulesPath, ... }: + +{ + imports = + [ (modulesPath + "/installer/scan/not-detected.nix") + ]; + + boot.initrd.availableKernelModules = [ "xhci_pci" "ehci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" "sr_mod" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-intel" "wl" ]; + boot.extraModulePackages = [ config.boot.kernelPackages.broadcom_sta ]; + + fileSystems."/" = + { device = "/dev/disk/by-uuid/4bdb8a48-2493-4043-80fa-254fbf910643"; + fsType = "ext4"; + }; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/D961-06AD"; + fsType = "vfat"; + }; + + swapDevices = + [ { device = "/dev/disk/by-uuid/e9b56879-e406-44c7-ab60-fcd374fdf0ea"; } + ]; + + # 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 + # still possible to use this option, but it's recommended to use it in conjunction + # with explicit per-interface declarations with `networking.interfaces..useDHCP`. + networking.useDHCP = lib.mkDefault true; + # networking.interfaces.enp3s0.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} diff --git a/users/pbsds/home/profiles/ssh.nix b/users/pbsds/home/profiles/ssh.nix index 880375e..6612a5d 100644 --- a/users/pbsds/home/profiles/ssh.nix +++ b/users/pbsds/home/profiles/ssh.nix @@ -35,6 +35,7 @@ "bolle.pbsds.net".proxyJump = "isvegg.pvv.ntnu.no"; "knut.pbsds.net".port = 23; "nord.pbsds.net".port = 24; + "sopp.pbsds.net".port = 25; "noximilien.pbsds.net" = {}; "rocm.pbsds.net".proxyJump = "isvegg.pvv.ntnu.no";