# Edit this configuration file to define what should be installed on # your system. Help is available in the configuration.nix(5) man page # and in the NixOS manual (accessible by running ‘nixos-help’). { config, pkgs, lib, ... }: { imports = [ # Include the results of the hardware scan. ./hardware-configuration.nix ]; # VM virtualisation.vmVariant = { # following configuration is added only when building VM with build-vm virtualisation = { memorySize = 2048; # Use 2048MiB memory. cores = 3; }; }; # optimize power usage powerManagement.enable = true; # optimize storage nix.optimise.automatic = true; # Bootloader. boot.loader.efi.canTouchEfiVariables = true; boot.loader.efi.efiSysMountPoint = "/boot"; boot.loader.systemd-boot.enable = true; networking.hostName = "gunther"; networking.networkmanager.enable = true; # Set your time zone. time.timeZone = "Europe/Berlin"; i18n.supportedLocales = [ "en_US.UTF-8/UTF-8" "de_DE.UTF-8/UTF-8" ]; # Select internationalisation properties. i18n.defaultLocale = "en_US.UTF-8"; i18n.extraLocaleSettings = { LANG = "en_US.UTF-8"; LC_ALL = "en_US.UTF-8"; LANGUAGE = "en_US.UTF-8"; LC_ADDRESS = "de_DE.UTF-8"; LC_IDENTIFICATION = "de_DE.UTF-8"; LC_MEASUREMENT = "de_DE.UTF-8"; LC_MONETARY = "de_DE.UTF-8"; LC_NAME = "de_DE.UTF-8"; LC_NUMERIC = "de_DE.UTF-8"; LC_PAPER = "de_DE.UTF-8"; LC_TELEPHONE = "de_DE.UTF-8"; LC_TIME = "de_DE.UTF-8"; }; services.greetd = { enable = true; settings = { default_session = { command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --remember --cmd Hyprland"; user = "greeter"; }; }; }; # Configure console keymap console.keyMap = "us"; # Enable CUPS to print documents. services.avahi = { enable = true; nssmdns4 = true; openFirewall = true; publish.enable = true; publish.userServices = true; }; services.printing = { enable = true; drivers = [ pkgs.splix ]; browsing = true; listenAddresses = [ "*:631" ]; allowFrom = [ "all" ]; defaultShared = true; extraConf = '' BrowseLocalProtocols all ''; openFirewall = true; }; # bluetooth hardware.bluetooth.enable = true; hardware.bluetooth.powerOnBoot = true; services.blueman.enable = true; # Enable sound with pipewire. sound.enable = true; hardware.pulseaudio.enable = false; security.rtkit.enable = true; services.pipewire = { enable = true; alsa.enable = true; alsa.support32Bit = true; pulse.enable = true; }; # Define a user account. users.users.leonv = { isNormalUser = true; description = "Leon Vatthauer"; extraGroups = [ "networkmanager" "wheel" ]; initialPassword = "leonv"; # just for setup }; # Allow unfree packages nixpkgs.config.allowUnfree = true; # List packages installed in system profile. environment.systemPackages = with pkgs; let catp-gtk = pkgs.catppuccin-gtk.override { accents = [ "flamingo" ]; # You can specify multiple accents here to output multiple themes size = "compact"; tweaks = [ "rimless" "black" ]; # You can also specify multiple tweaks here variant = "macchiato"; }; in [ # for connecting to nas nfs-utils # some standards for convenience vim parted os-prober qpdfview swww # greeter greetd.gtkgreet catp-gtk # deps for hyprland / eww socat texliveFull ]; system.stateVersion = "24.05"; # NFS setup services.rpcbind.enable = true; # needed for NFS systemd.mounts = [{ type = "nfs"; mountConfig = { Options = "noatime"; }; what = "192.168.178.20:/volume1/MiniDrive"; where = "/MiniDrive"; }]; systemd.automounts = [{ wantedBy = [ "multi-user.target" ]; automountConfig = { TimeoutIdleSec = "10"; }; where = "/MiniDrive"; }]; # source zsh programs.zsh.enable = true; users.defaultUserShell = pkgs.zsh; # # Binary Cache for Haskell.nix # nix.settings.trusted-public-keys = [ # "hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ=" # ]; nix.settings.substituters = [ "https://aseipp-nix-cache.freetls.fastly.net" # "https://aseipp-nix-cache.global.ssl.fastly.net" # "https://cache.iog.io" ]; # environment variables environment.sessionVariables = { ## disable logging when direnv changes DIRENV_LOG_FORMAT = []; # GTK theme (set here for greetd) GTK_THEME = "Catppuccin-Macchiato-Compact-Flamingo-Dark"; }; # fonts fonts = { packages = with pkgs; [ ((nerdfonts.override { fonts = [ "Hack" "DejaVuSansMono" "DroidSansMono" "Noto" ]; })) mononoki # noto-fonts noto-fonts-cjk noto-fonts-emoji ]; enableDefaultPackages = true; fontconfig = { defaultFonts = { monospace = [ "Berkeley Mono Nerd Font" ]; sansSerif = [ "NotoSans Nerd Font" ]; serif = [ "NotoSans Nerd Font" ]; emoji = [ "Noto Color Emoji" ]; }; }; }; # enable flakes nix.settings.experimental-features = [ "nix-command" "flakes" ]; # hyprland programs.hyprland.enable = true; # ssh programs.ssh.startAgent = true; programs.ssh.extraConfig = '' AddKeysToAgent yes IdentityFile ~/.ssh/git ''; programs.steam.enable = true; # thunar programs.thunar = { enable = true; plugins = with pkgs.xfce; [ thunar-archive-plugin thunar-volman ]; }; services.gvfs.enable = true; # Mount, trash, and others services.tumbler.enable = true; # thumbnail support for images }