{ inputs, pkgs, ... }: { imports = [ inputs.home-manager.nixosModules.home-manager ]; nix.settings = { # Enable flakes and new 'nix' command experimental-features = "nix-command flakes"; # Deduplicate and optimize nix store auto-optimise-store = true; # Allow me to use cachix trusted-users = [ "root" "kalle" ]; }; nixpkgs.config.allowUnfree = true; home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; # Select internationalisation properties. i18n.defaultLocale = "en_US.UTF-8"; console = { font = "Lat2-Terminus16"; useXkbConfig = true; # use xkbOptions in tty. }; # Enable CUPS to print documents. services.printing.enable = true; # Enable sound. security.rtkit.enable = true; services.pipewire = { enable = true; alsa.enable = true; alsa.support32Bit = true; pulse.enable = true; jack.enable = true; }; environment.systemPackages = with pkgs; [ xdg-user-dirs ]; fonts = { enableDefaultPackages = true; packages = with pkgs; [ noto-fonts noto-fonts-cjk-sans noto-fonts-color-emoji fira-code fira-code-symbols nerd-fonts.symbols-only ]; fontconfig = { defaultFonts = { serif = [ "Noto Serif" "Symbols Nerd Font" ]; sansSerif = [ "Noto Sans" "Symbols Nerd Font" ]; monospace = [ "Fira Code" "Symbols Nerd Font Mono" ]; }; }; }; users.users.kalle = { isNormalUser = true; group = "kalle"; extraGroups = [ "wheel" ]; }; users.groups.kalle.gid = 1000; home-manager.users.kalle = { home = { username = "kalle"; homeDirectory = "/home/kalle"; sessionVariables = { EDITOR = "nvim"; }; }; programs.home-manager.enable = true; # TODO: Make this be based on the system wide style gtk = { enable = true; theme = { name = "Adwaita-dark"; package = pkgs.gnome-themes-extra; }; iconTheme = { name = "breeze-dark"; package = pkgs.kdePackages.breeze-icons; }; cursorTheme = { name = "breeze_cursors"; package = pkgs.libsForQt5.breeze-qt5; }; }; qt = { enable = true; style.name = "breeze"; }; dconf = { enable = true; settings = { "org/gnome/desktop/interface" = { color-scheme = "prefer-dark"; }; }; }; }; services.openssh.enable = true; }