# Edit this configuration file to define what should be installed on # your system. Help is available in the configuration.nix(5) man page, on # https://search.nixos.org/options and in the NixOS manual (`nixos-help`). { pkgs, inputs, config, catppuccinFlavor, ... }: { imports = [ ./hardware-configuration.nix ]; services.flatpak.enable = true; environment.variables.HYPRCURSOR_THEME = "McMojave"; 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; }; catppuccin.flavor = catppuccinFlavor; catppuccin.enable = true; programs.dconf.enable = true; # Use the systemd-boot EFI boot loader. boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; networking.hostName = "hp-laptop-lho"; # Define your hostname. networking.networkmanager.enable = true; # Easiest to use and most distros use this by default. # Set your time zone. time.timeZone = "Europe/Zurich"; console = { useXkbConfig = true; # use xkb.options in tty. }; environment.pathsToLink = ["/libexec"]; # Enable the X11 windowing system services = { displayManager = { sddm = { enable = true; wayland.enable = true; package = pkgs.kdePackages.sddm; }; }; }; programs.hyprland = { enable = true; xwayland.enable = true; }; # git freeze fix programs.ssh = { enableAskPassword = true; askPassword = "${pkgs.lxqt.lxqt-openssh-askpass}/bin/lxqt-openssh-askpass"; }; # Configure keymap in X11 services.xserver.xkb.layout = "ch"; services.displayManager.defaultSession = "hyprland"; # services.xserver.xkb.options = "eurosign:e,caps:escape"; # Enable CUPS to print documents. # services.printing.enable = true; # Enable sound. services.pulseaudio = { enable = true; support32Bit = true; }; nixpkgs.config.pulseaudio = true; # OR services.pipewire.enable = false; #services.pipewire = { # enable = true; # pulse.enable = true; #}; # Enable touchpad support (enabled default in most desktopManager). # services.libinput.enable = true; # Define a user account. Don't forget to set a password with ‘passwd’. programs.zsh.enable = true; nixpkgs.config.allowUnfree = true; hardware.bluetooth.enable = true; # enables support for Bluetooth hardware.bluetooth.powerOnBoot = true; # powers up the default Bluetooth controller on boot services.blueman.enable = true; services.libinput.touchpad.naturalScrolling = true; services.auto-cpufreq.enable = true; services.gnome.gnome-keyring.enable = true; security.pam.services.sddm.enableGnomeKeyring = true; virtualisation.docker.enable = true; virtualisation.docker.rootless = { enable = true; setSocketVariable = true; }; users.users.lorenz = { shell = pkgs.zsh; isNormalUser = true; extraGroups = [ "wheel" # Enable ‘sudo’ for the user. "docker" "libvirtd" ]; }; fonts.packages = with pkgs; [ pkgs.nerd-fonts.jetbrains-mono ]; programs.streamdeck-ui = { enable = true; autoStart = true; # optional }; # List packages installed in system profile. To search, run: # $ nix search wget environment.shells = with pkgs; [ zsh ]; users.defaultUserShell = pkgs.zsh; environment.systemPackages = [ pkgs.auto-cpufreq pkgs.killall pkgs.neovim pkgs.neofetch pkgs.wget # for neovim pkgs.gcc pkgs.nodejs_22 pkgs.python314 pkgs.cargo pkgs.go pkgs.networkmanager_dmenu pkgs.dmenu pkgs.brave pkgs.kitty # terminal pkgs.nitrogen # wallpapers pkgs.tmux # multiplexer pkgs.steam pkgs.gitFull # git, git gui, gitk pkgs.tk # for git ui pkgs.lxqt.lxqt-openssh-askpass # git freeze fix pkgs.pavucontrol pkgs.dunst pkgs.i3lock-color # locksreen pkgs.arandr # manager monitor pkgs.lxqt.lxqt-sudo #hyprland pkgs.rofi-wayland pkgs.waybar pkgs.hyprlock pkgs.hypridle pkgs.hyprpaper pkgs.kanshi inputs.mcmojave-hyprcursor.packages.${pkgs.stdenv.hostPlatform.system}.default (pkgs.steam.override { # Workaround for embedded browser not working. # # https://github.com/NixOS/nixpkgs/issues/137279 extraPkgs = pkgs: with pkgs; [ pango harfbuzz libthai ]; # Workaround for an issue with VK_ICD_FILENAMES on nvidia hardware: # # - https://github.com/NixOS/nixpkgs/issues/126428 (bug) # - https://github.com/NixOS/nixpkgs/issues/108598#issuecomment-858095726 (workaround) extraProfile = '' export VK_ICD_FILENAMES=${config.hardware.nvidia.package}/share/vulkan/icd.d/nvidia_icd.json:${config.hardware.nvidia.package.lib32}/share/vulkan/icd.d/nvidia_icd32.json:$VK_ICD_FILENAMES ''; }) pkgs.virt-manager pkgs.virt-viewer pkgs.spice pkgs.spice-gtk pkgs.spice-protocol ]; programs.nix-ld = { libraries = [ pkgs.lua-language-server pkgs.lua ]; }; # Some programs need SUID wrappers, can be configured further or are # started in user sessions. # programs.mtr.enable = true; # programs.gnupg.agent = { # enable = true; # enableSSHSupport = true; # }; # List services that you want to enable: # Enable the OpenSSH daemon. services.openssh.enable = true; networking.firewall = { enable = true; allowedTCPPorts = [ 53317 ]; allowedUDPPorts = [ 53317 ]; }; virtualisation = { spiceUSBRedirection.enable = true; libvirtd = { enable = true; qemu = { swtpm.enable = true; ovmf.enable = true; ovmf.packages = [ pkgs.OVMFFull.fd ]; }; }; }; programs.virt-manager.enable = true; # Copy the NixOS configuration file and link it from the resulting system # (/run/current-system/configuration.nix). This is useful in case you # accidentally delete configuration.nix. # system.copySystemConfiguration = true; # This option defines the first version of NixOS you have installed on this particular machine, # and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions. # # Most users should NEVER change this value after the initial install, for any reason, # even if you've upgraded your system to a new NixOS release. # # This value does NOT affect the Nixpkgs version your packages and OS are pulled from, # so changing it will NOT upgrade your system - see https://nixos.org/manual/nixos/stable/#sec-upgrading for how # to actually do that. # # This value being lower than the current NixOS release does NOT mean your system is # out of date, out of support, or vulnerable. # # Do NOT change this value unless you have manually inspected all the changes it would make to your configuration, # and migrated your data accordingly. # # For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion . system.stateVersion = "24.11"; # Did you read the comment? nix.settings.experimental-features = [ "nix-command" "flakes" ]; services.gvfs.enable = true; # automount usb to pcmanfm }