diff --git a/flake.nix b/flake.nix index 275f6c07..f075b716 100644 --- a/flake.nix +++ b/flake.nix @@ -233,5 +233,54 @@ { home-manager.users.xenia = xenia.pc; } ]; }; + + nixosConfigurations.gender-station = + let + system = "x86_64-linux"; + pkgs = mkPkgs system; + pkgs-unstable = mkPkgsUnstable system; + base = mkNixOsBase { + inherit system pkgs; + hostname = "gender-station"; + }; + networking = mkNixOsNetworking { + inherit pkgs; + use-iwd = false; + }; + graphical = mkNixOsGraphical { + inherit pkgs pkgs-unstable niri; + background = "pan-wire-3.png"; + use-display-manager = true; + }; + xenia = + let + pkgs = mkPkgs system; + home = mkHome { + username = "xenia"; + home-dir = "/home/xenia"; + prompt-color = 205; + inherit system pkgs; + }; + pc = mkPC { inherit system pkgs; }; + in { home = home; pc = pc; }; + in + nixpkgs.lib.nixosSystem { + inherit system; + modules = [ + niri.nixosModules.niri + ./nixos/machines/gender-station/hardware.nix + (import ./nixos/machines/gender-station/machine.nix { inherit pkgs pkgs-unstable; }) + base + networking + graphical + home-manager.nixosModules.home-manager + { + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.users.xenia = xenia.home; + } + { home-manager.users.xenia = xenia.pc; } + ]; + }; }; } diff --git a/home/extras.nix b/home/extras.nix index 5848ccf9..c36cb54d 100644 --- a/home/extras.nix +++ b/home/extras.nix @@ -122,7 +122,7 @@ rec { mv $downloadedFile $out/share/fonts/opentype ''; - sha256 = "sha256-k2qpSSydBKUJGIqSC7Wb0maO/z6YYB29vgBCBuvBlYg="; + sha256 = "sha256-45bvwKEGWIJVr5QNbaXjdVqXs31HsZgj4NYlV+5BXKM"; }; diff --git a/home/graphical.nix b/home/graphical.nix index 84f2ce5d..c9e79468 100644 --- a/home/graphical.nix +++ b/home/graphical.nix @@ -117,7 +117,10 @@ in rec { input.mouse = { accel-speed = -0.6; }; - outputs."eDP-1" = { + outputs."eDP-1" = { # laptop + scale = 1.0; + }; + outputs."DP-2" = { # monitor scale = 1.0; }; binds = with config.lib.niri.actions; { diff --git a/nixos/base.nix b/nixos/base.nix index a30387a8..9fc1ad9c 100644 --- a/nixos/base.nix +++ b/nixos/base.nix @@ -44,22 +44,6 @@ programs.mosh.enable = true; - # TODO: Options for more users - users.users.coral = { # hi # hi - isNormalUser = true; - extraGroups = [ "wheel" "docker" ]; - shell = pkgs.zsh; - uid = 1000; - }; - - users.users.guest = { - isNormalUser = true; - extraGroups = [ ]; - home = "/home/guest"; - shell = pkgs.zsh; - uid = 1001; - }; - security.sudo.wheelNeedsPassword = false; environment.systemPackages = with pkgs; [ diff --git a/nixos/machines/gender-station/hardware.nix b/nixos/machines/gender-station/hardware.nix new file mode 100644 index 00000000..c99cb54c --- /dev/null +++ b/nixos/machines/gender-station/hardware.nix @@ -0,0 +1,41 @@ +# 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 = [ "nvme" "xhci_pci" "ahci" "usbhid" "uas" "sd_mod" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-amd" ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = + { device = "/dev/disk/by-uuid/bf6406df-1da6-4855-92c9-8a5f77c7adad"; + fsType = "ext4"; + }; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/4BA2-6AF1"; + fsType = "vfat"; + options = [ "fmask=0077" "dmask=0077" ]; + }; + + swapDevices = [ ]; + + # 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.enp6s0.useDHCP = lib.mkDefault true; + # networking.interfaces.wlp5s0.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; + +} diff --git a/nixos/machines/gender-station/machine.nix b/nixos/machines/gender-station/machine.nix new file mode 100644 index 00000000..7c06c568 --- /dev/null +++ b/nixos/machines/gender-station/machine.nix @@ -0,0 +1,101 @@ +{ pkgs, pkgs-unstable, ... }: +{ config, ... }: + +{ + # TODO: should this be moved to ./boot.nix ? + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + + environment.systemPackages = (with pkgs-unstable; [ + # renoise + # signal-desktop + # wireguard-tools + # cifs-utils + sshfs + # rmapi + transmission_4-qt + # vlc + # mitmproxy + ]) ++ (with pkgs; [ + prismlauncher + ]); + + # services.auto-cpufreq.enable = true; + # services.auto-cpufreq.settings = { + # battery = { + # governor = "ondemand"; + # turbo = "never"; + # }; + # charger = { + # governor = "performance"; + # turbo = "auto"; + # }; + # }; + + + # networking.firewall.allowedUDPPorts = [ 51821 51820 ]; + # networking.wireguard = { + # enable = true; + # interfaces.eta = { + # ips = [ "10.69.3.13/32" ]; + # privateKeyFile = "/home/xenia/wireguard-keys/eta.new.private"; + # peers = [ { + # publicKey = "xAHheRS7WfS62TrnCd0neOzR9yaNdr9zkViSaa+AyWA="; + # allowedIPs = [ "10.30.0.0/16" "10.250.0.0/16" "10.254.0.0/16" "192.168.30.0/24" "192.168.40.0/24" "192.168.50.0/24" "192.168.51.0/24" "192.168.250.0/24" ]; + # endpoint = "129.16.13.37:13233"; + # persistentKeepalive = 25; + # } ]; + # }; + # interfaces.cave = { + # ips = [ "10.234.0.40/32" ]; + # privateKeyFile = "/home/xenia/wireguard-keys/förråd.private"; + # peers = [ { + # publicKey = "yD4kMmoV0wF6H6aI/aQYUwyGKEBdEb7zx4kCq3Ax/D0="; + # allowedIPs = [ "10.200.0.0/15" ]; + # endpoint = "129.16.13.194:42069"; + # persistentKeepalive = 25; + # } ]; + # }; + # interfaces.bnuy = { + # ips = [ "10.100.1.1/32" ]; + # privateKeyFile = "/home/xenia/wireguard-keys/local-network.private"; + # peers = [ { + # publicKey = "Qa3saFnPTlGbxLnoyhsczczBMUGA8F/tlGsH8wnMTWY="; # https://github.com/xeniagda/cluster-config/tree/main/keys/catboy-cafe.public + # allowedIPs = [ "10.100.0.0/16" ]; + # endpoint = "hem.60.nu:51820"; + # persistentKeepalive = 25; + # } ]; + # }; + # }; + + + # services.pipewire.wireplumber.extraConfig."10-bluez" = { + # "monitor.bluez.properties" = { + # "bluez5.enable-sbc-xq" = true; + # "bluez5.enable-msbc" = false; + # "bluez5.enable-hw-volume" = true; + # "bluez5.codecs" = [ + # "sbc" "sbc_xq" "aac" + # ]; + # }; + # }; + + # fileSystems."/mnt/eta" = { + # device = "//10.30.12.6/users"; + # fsType = "cifs"; + # options = [ "username=eta" "password=eta" "uid=1002" "gid=1002" "x-systemd.automount" "noauto" "x-systemd.idle-timeout=60" ]; + # }; + + # fileSystems."/mnt/media" = { + # device = "xenia@10.100.100.254:/media"; + # fsType = "fuse.sshfs"; + # options = [ "IdentityFile=/home/xenia/.ssh/id_ed25519" "allow_other" "uid=1002" "gid=1002" "x-systemd.automount" "noauto" ]; + # }; + boot.supportedFilesystems."fuse.sshfs" = true; + + # services.printing.enable = true; + services.avahi.enable = true; + + # virtualisation.docker.enable = true; +} +