{ lib, config, pkgs, home-manager, nixvim, webtray, wofi-pass, ... }: { imports = [ home-manager.nixosModules.default webtray.nixosModules.default wofi-pass.nixosModules.default ]; fonts.packages = with pkgs; [ nerd-fonts.sauce-code-pro ]; networking = { networkmanager = { enable = true; plugins = [ pkgs.networkmanager-openconnect ]; }; firewall = rec { allowedTCPPortRanges = [ { from = 1714; to = 1764; } ]; allowedUDPPortRanges = allowedTCPPortRanges; }; }; time.timeZone = "Europe/Zurich"; i18n.defaultLocale = "en_US.UTF-8"; console = { font = "Lat2-Terminus16"; keyMap = "us"; }; users = import ./users.nix { inherit pkgs; }; programs = import ./programs { inherit pkgs; }; services = import ./services { inherit pkgs; }; home-manager = import ./home { inherit lib; inherit pkgs; inherit nixvim; inherit config; }; security = { pam.services.hyprlock = { }; rtkit.enable = true; sudo.wheelNeedsPassword = false; }; hardware.bluetooth.enable = true; xdg.portal = { enable = true; config = { common = { default = [ "hyprland" ]; }; }; configPackages = [ pkgs.xdg-desktop-portal-hyprland ]; extraPortals = [ pkgs.xdg-desktop-portal-hyprland ]; }; environment = { sessionVariables = { YDOTOOL_SOCKET = "/run/ydotoold/socket"; }; systemPackages = [ pkgs.man-pages pkgs.man-pages-posix pkgs.gst_all_1.gstreamer ]; }; documentation = { man = { enable = true; generateCaches = true; man-db.enable = true; mandoc.enable = false; }; dev.enable = true; }; nix = { optimise.automatic = true; gc = { automatic = true; dates = "daily"; options = "--delete-older-than 30d"; }; settings.experimental-features = [ "nix-command" "flakes" ]; }; swapDevices = [ { device = "/var/lib/swapfile"; size = 32*1024; } ]; }