{ config, lib, pkgs, user, ...}: { home = { username = "${user}"; homeDirectory = "/home/${user}"; packages = with pkgs; [ bat firefox jq htop ]; stateVersion = "22.05"; }; programs = { fzf = { enable = true; enableZshIntegration = true; tmux.enableShellIntegration = true; }; git = { enable = true; userName = "Michael Mandl"; userEmail = "mandlm@molez.net"; extraConfig = { core.editor = "nvim"; fetch.writeCommitGraph = true; format.pretty = "format:%C(yellow)%h %Cblue%>(12)%ad %C(red)%G? %Cgreen%<(7,trunc)%aN%Cred%d %Creset%s"; init.defaultBranch = "main"; log.date = "relative"; pull.rebase = true; rebase.autostash = true; rerere.enabled = true; worktree.guessRemote = true; }; }; kitty = { enable = true; theme = "Solarized Dark"; font = { name = "DejaVu Sans Mono"; size = 12; }; }; neovim = { enable = true; plugins = with pkgs.vimPlugins; [ vim-fugitive ]; }; tmux = { enable = true; newSession = true; extraConfig = '' set-option -g status off ''; }; zsh = { enable = true; enableSyntaxHighlighting = true; history.size = 10000; oh-my-zsh = { enable = true; plugins = [ "git" "sudo" "tmux" "vi-mode" ]; theme = "intheloop"; }; localVariables = { ZSH_TMUX_AUTOSTART = true; ZSH_TMUX_AUTOCONNECT = true; ZSH_TMUX_UNICODE = true; }; }; home-manager.enable = true; }; xsession.windowManager.i3 = { enable = true; config = { modifier = "Mod4"; fonts = { names = ["DejaVu Sans Mono" ]; size = 12.0; }; }; }; }