# 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 ]; # keyring for nextcloud etc. services.gnome.gnome-keyring.enable = true; security.pam.services.greetd.enableGnomeKeyring = true; environment.variables.XDG_RUNTIME_DIR = "/run/user/$UID"; programs.seahorse.enable = true; # optimize power usage powerManagement.enable = true; # prevent overheat services.thermald.enable = true; services.tlp = { enable = true; settings = { CPU_SCALING_GOVERNOR_ON_AC = "performance"; CPU_SCALING_GOVERNOR_ON_BAT = "powersave"; CPU_ENERGY_PERF_POLICY_ON_BAT = "power"; CPU_ENERGY_PERF_POLICY_ON_AC = "performance"; CPU_MIN_PERF_ON_AC = 0; CPU_MAX_PERF_ON_AC = 100; CPU_MIN_PERF_ON_BAT = 0; CPU_MAX_PERF_ON_BAT = 20; #Optional helps save long term battery health START_CHARGE_THRESH_BAT0 = 40; # 40 and bellow it starts to charge STOP_CHARGE_THRESH_BAT0 = 80; # 80 and above it stops charging }; }; # optimize storage nix.optimise.automatic = true; # Bootloader. boot.loader.efi.canTouchEfiVariables = true; boot.loader.efi.efiSysMountPoint = "/boot"; boot.loader.systemd-boot.enable = true; # udev for brillo services.udev.extraRules = '' ACTION=="add", SUBSYSTEM=="backlight", KERNEL=="intel_backlight", MODE="0666", RUN+="${pkgs.coreutils}/bin/chmod a+w /sys/class/backlight/%k/brightness" ''; services.logind.extraConfig = '' # don’t shutdown when power button is short-pressed HandlePowerKey=suspend ''; services.logind.lidSwitch = "suspend"; networking.hostName = "absol"; # networking.wireless.enable = true; 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; }; services.printing = { enable = true; }; # iwlwifi fix? hardware.enableRedistributableFirmware = true; # bluetooth hardware.bluetooth.enable = true; hardware.bluetooth.powerOnBoot = true; services.blueman.enable = true; # Enable sound with pipewire. 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; [ texliveFull libsecret # for connecting to nas nfs-utils # some standards for convenience vim parted qpdfview # deps for hyprland / eww socat ]; system.stateVersion = "24.05"; # source zsh programs.zsh.enable = true; users.defaultUserShell = pkgs.zsh; nix.settings.substituters = [ "https://aseipp-nix-cache.global.ssl.fastly.net" ]; # environment variables environment.sessionVariables = { ## disable logging when direnv changes DIRENV_LOG_FORMAT = []; }; # fonts fonts = { fontDir.enable = true; # links fonts to /run/current-system/sw/share/X11/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 ''; # 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 }