{ config, lib, nixvim, pkgs, ... }: let vars = { BEMENU_OPTS = "--fn 'Hermit 12' --line-height 25 " + "--hb #a1b56c --hf #f8f8f8 --nf #b8b8b8 --af #b8b8b8 " + "--tf #f8f8f8 --fbf #f8f8f8 --ff #f8f8f8 --cf #f8f8f8 " + "--sf #f8f8f8 --scf #f8f8f8 --hp 10"; }; in { home = { username = "tom"; homeDirectory = "/home/tom"; stateVersion = "23.11"; packages = with pkgs; [ acpi bemenu binutils feh file firefox ghc gimp haskellPackages.fourmolu htop ncmpcpp nixvim.packages.x86_64-linux.default tmux tree vim xautolock xmobar ]; sessionVariables = vars // { LESS = "-R -F"; EDITOR = "vim"; TERM = "xterm-256color"; }; file.".xinitrc".text = '' xmonad ''; # todo find better solution for # restarting without nixos switch file.".config/xmonad/xmonad.hs".source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/src/nixos/xmonad.hs"; file.".xmobarrc".source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/src/nixos/xmobarrc"; }; programs = { home-manager.enable = true; alacritty = { enable = true; settings = { font = { bold.family = "Hermit"; bold_italic.family = "Hermit"; italic.family = "Hermit"; normal.family = "Hermit"; size = 10; }; keyboard.bindings = [ { key = "="; mods = "ALT"; action = "IncreaseFontSize"; } { key = "-"; mods = "ALT"; action = "DecreaseFontSize"; } ]; }; }; git = { enable = true; userName = "tom barrett"; userEmail = "tom@tombarrett.xyz"; extraConfig = { init.defaultBranch = "master"; pull.rebase = true; }; }; gpg.enable = true; password-store = { enable = true; package = pkgs.pass.withExtensions (exts: [exts.pass-otp]); }; zsh = { enable = true; autosuggestion.enable = true; syntaxHighlighting.enable = true; autocd = true; }; }; systemd.user.settings.Manager.DefaultEnvironment = vars; xsession.windowManager.xmonad = { enable = true; enableContribAndExtras = true; }; services = { gpg-agent = { enable = true; enableSshSupport = true; pinentryPackage = pkgs.pinentry-bemenu; # from gpg --list-secret-keys --with-keygrip ([A] keygrip) sshKeys = [""]; }; }; xdg.userDirs = { enable = true; extraConfig = let downloads = "${config.home.homeDirectory}/downloads"; in { XDG_DESKTOP_DIR = downloads; XDG_DOCUMENTS_DIR = downloads; XDG_DOWNLOAD_DIR = downloads; XDG_MISC_DIR = downloads; XDG_MUSIC_DIR = downloads; XDG_PICTURES_DIR = downloads; XDG_PUBLICSHARE_DIR = downloads; XDG_TEMPLATES_DIR = downloads; XDG_VIDEOS_DIR = downloads; }; }; }