{ config, lib, pkgs, namespace, hasDestopEnvironment ? true, ... }: let inherit (lib.${namespace}) enabled; in { home = { enableNixpkgsReleaseCheck = lib.mkDefault false; homeDirectory = lib.mkDefault "/home/${config.home.username}"; packages = with pkgs; [ age clinfo cpufetch dbus deadnix lm_sensors nano nix-prefetch-scripts nixfmt pciutils protonup-ng rsync smartmontools sops tailscale tree usbutils vim vulkan-tools wget ] ++ ( if hasDestopEnvironment then [ boxbuddy stable.chromium firefox gamescope gamescope-wsi gparted pkgs.unstable.goverlay mission-center parted vesktop # winboat ] else [ ] ); stateVersion = lib.mkDefault "23.11"; }; programs = { nix-index-database.comma = enabled; btop = { enable = lib.mkDefault true; package = pkgs.unstable.btop; }; fastfetch = lib.mkDefault enabled; home-manager = lib.mkDefault enabled; java = { enable = lib.mkDefault true; }; mangohud.enable = lib.mkDefault hasDestopEnvironment; password-store = enabled; nh = { enable = true; flake = "/etc/nixos"; clean = { enable = true; extraArgs = "--keep 5"; }; }; micro = { enable = lib.mkDefault true; settings = { autoindent = true; autosu = true; eofnewline = true; tabsize = 4; tabstospaces = true; }; }; tmux = { enable = lib.mkDefault true; terminal = "screen-256color"; sensibleOnTop = true; focusEvents = true; newSession = true; mouse = true; plugins = with pkgs; [ tmuxPlugins.cpu { plugin = tmuxPlugins.resurrect; extraConfig = "set -g @resurrect-strategy-nvim 'session'"; } { plugin = tmuxPlugins.continuum; extraConfig = '' set -g @continuum-restore 'on' set -g @continuum-save-interval '60' # minutes ''; } tmuxPlugins.better-mouse-mode ]; extraConfig = '' set -g status-right '#[fg=black,bg=color15] #{cpu_percentage}  %H:%M ' run-shell ${pkgs.tmuxPlugins.cpu}/share/tmux-plugins/cpu/cpu.tmux set -g default-terminal "xterm-256color" set -ga terminal-overrides ",*256col*:Tc" set -ga terminal-overrides '*:Ss=\E[%p1%d q:Se=\E[ q' set-environment -g COLORTERM "truecolor" # Mouse works as expected set-option -g mouse on # easy-to-remember split pane commands bind | split-window -h -c "#{pane_current_path}" bind - split-window -v -c "#{pane_current_path}" bind c new-window -c "#{pane_current_path}" ''; }; }; services = { nextcloud-client.enable = false; # lib.mkDefault hasDestopEnvironment; pass-secret-service = lib.mkDefault enabled; kdeconnect = { enable = lib.mkDefault hasDestopEnvironment; indicator = lib.mkDefault hasDestopEnvironment; package = pkgs.kdePackages.kdeconnect-kde; }; }; }