{ config, pkgs, pkgs-unstable, ... }: { system.activationScripts.ciscoPreHook = { text = '' echo "Prefetching Cisco Packet Tracer dependencies..." ${pkgs.nix}/bin/nix-prefetch-url --type sha256 file:///etc/nixos/local-pkgs/CiscoPacketTracer_900_Ubuntu_64bit.deb ''; deps = []; }; # Enable nix flakes nix.settings = { experimental-features = ["nix-command" "flakes" ]; trusted-users = [ "root" "someone" ]; }; environment.pathsToLink = [ "/share/applications" "/share/xdg-desktop-portal" ]; # Set your time zone. time.timeZone = "Europe/Berlin"; # Select internationalisation properties. console.keyMap = "de"; i18n.defaultLocale = "en_GB.UTF-8"; i18n.extraLocaleSettings = { 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"; }; networking = { networkmanager.enable = true; }; powerManagement.enable = true; services.power-profiles-daemon.enable = true; # Suspend first then hibernate when closing the lid services.logind.settings.Login.lidSwitch = "suspend-then-hibernate"; # Hibernate on power button pressed services.logind.settings.Login.powerKey = "hibernate"; services.logind.settings.Login.powerKeyLongPress = "poweroff"; # Hibernation boot.resumeDevice = "/dev/disk/by-label/swap"; # resume offset from: filefrag -v /swapfile # under 0. physical offset boot.kernelParams = ["mem_sleep_default=freeze" "resume_offset=0" ]; # Define time delay for hibernation systemd.sleep.settings.Sleep = { HibernateDelaySec = "30m"; SuspendState = "mem"; }; programs.wireshark = { enable = true; usbmon.enable = true; # Allow USB monitoring dumpcap.enable = true; # Allow network capture }; # Add zsh programs.zsh = { enable = true; enableCompletion = true; autosuggestions.enable = true; syntaxHighlighting.enable = true; shellAliases = { ll = "ls -l"; }; }; programs.git = { enable = true; lfs.enable = true; }; # Allow dynamicly linked executables programs.nix-ld.enable = true; # Libvirt programs.virt-manager.enable = true; virtualisation.libvirtd = { enable = true; qemu = { package = pkgs.qemu_kvm; runAsRoot = true; swtpm.enable = true; }; }; virtualisation.spiceUSBRedirection.enable = true; systemd.tmpfiles.rules = [ "L+ /var/lib/qemu/firmware - - - - ${pkgs.qemu}/share/qemu/firmware" ]; # printing # Enable CUPS to print documents. services.printing = { enable = true; drivers = [ pkgs.cnijfilter2 ]; }; services.avahi = { enable = true; nssmdns4 = true; openFirewall = true; }; fonts.packages = with pkgs; [ liberation_ttf carlito ]; nixpkgs.config.allowUnfree = true; environment.systemPackages = with pkgs; [ # CLI starship fzf jq bc vim wget colordiff git # Nix / Lang nil nixd devenv rustup php # Web librewolf # Apps rnote logseq pdfarranger textpieces normcap nextcloud-client thunderbird libreoffice # Graphics gimp3 virtiofsd ciscoPacketTracer9 pkgs-unstable.zed-editor # Printing cnijfilter2 # canon printer # Net wireshark # Misc hunspell hunspellDicts.en_US hunspellDicts.de_DE docker-buildx ]; }