# nixosConfigurations.th0nkpad-nixos = nixpkgs.lib.nixosSystem { { # Snowfall Lib provides a customized `lib` instance with access to your flake's library # as well as the libraries available from your flake's inputs. lib, # An instance of `pkgs` with your overlays and packages applied is also available. pkgs, # You also have access to your flake's inputs. inputs, # Additional metadata is provided by Snowfall Lib. # The namespace used for your flake, defaulting to "internal" if not set. namespace, # The system architecture for this host (eg. `x86_64-linux`). system, # The Snowfall Lib target for this system (eg. `x86_64-iso`). target, # A normalized name for the system target (eg. `iso`). format, # A boolean to determine whether this system is a virtual target using nixos-generators. virtual, # An attribute map of your defined hosts. systems, # All other arguments come from the system system. config , ... }: let inherit pkgs; installedPackages = lib.my-namespace.mkPackages pkgs; in { # inherit system; imports = [ ./configuration.nix ]; config = { system.stateVersion = "24.05"; nix.settings.experimental-features = [ "nix-command" "flakes" ]; # Define a user account. Don't forget to set a password with ‘passwd’. users.users.andreas = { isNormalUser = true; description = "Andreas Schaafsma"; extraGroups = [ "networkmanager" "wheel" ]; packages = with pkgs; [ flatpak gnome-software soundwireserver vscode spotify appimage-run inputs.game-of-life.packages.x86_64-linux.default inputs.nixos-cosmic # thunderbird ]; }; # lib.my-namespace.home.stream-tools.enable = true; programs.gamescope.enable = true; programs.steam = { enable = true; remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server localNetworkGameTransfers.openFirewall = true; # Open ports in the firewall for Steam Local Network Game Transfers gamescopeSession = { enable = true; env = { # WLR_RENDERER = "vulkan"; # DXVK_HDR = "1"; ENABLE_GAMESCOPE_WSI = "1"; WINE_FULLSCREEN_FSR = "1"; # Games allegedly prefer X11 SDL_VIDEODRIVER = "x11"; }; args = [ "--xwayland-count 2" "--expose-wayland" "-e" # Enable steam integration "--steam" # "--adaptive-sync" # "--hdr-enabled" # "--hdr-itm-enable" # External monitor "--prefer-output DP-3" "--output-width 1920" "--output-height 1080" "-r 172" # Laptop display # "--prefer-output eDP-1" # "--output-width 2560" # "--output-height 1600" # "-r 120" "--prefer-vk-device 10de:1b81" # lspci -nn | grep VGA ]; }; }; # Open ports in the firewall. networking.firewall.allowedTCPPorts = [ 59010 #SoundWireServer 3389 #RDP ]; networking.firewall.allowedUDPPorts = [ 59010 #SoundWireServer 3389 #RDP ]; # Or disable the firewall altogether. # networking.firewall.enable = false; # Install firefox. programs.firefox.enable = true; # Set up system Packages environment.systemPackages = with pkgs; [ git pkgs.wine pkgs.bottles pkgs.gparted pkgs.ntfs3g pkgs.ntfsprogs pkgs.my-namespace.udev-steelseries pkgs.my-namespace.hello # vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. # wget ] ++ installedPackages.packages; programs.nix-ld = { enable = true; package = pkgs.nix-ld-rs; }; services.flatpak.enable = true; systemd.services.flatpak-repo = { wantedBy = [ "multi-user.target" ]; path = [ pkgs.flatpak ]; script = '' flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo ''; }; services.openssh = { enable = true; settings.PasswordAuthentication = true; # settings = { # # passwordAuthentication = true; # }; }; # services.xrdp.enable = true; # services.xrdp.defaultWindowManager = "${pkgs.gnome-session}/bin/gnome-session"; # services.xrdp.openFirewall = true; # Disable the GNOME3/GDM auto-suspend feature that cannot be disabled in GUI! # If no user is logged in, the machine will power down after 20 minutes. systemd.targets.sleep.enable = false; systemd.targets.suspend.enable = false; systemd.targets.hibernate.enable = false; systemd.targets.hybrid-sleep.enable = false; }; }