{ config, lib, pkgs, user, ...}: { home = { username = "${user}"; homeDirectory = "/home/${user}"; packages = with pkgs; [ bat firefox jq htop ripgrep pavucontrol ]; stateVersion = "22.05"; }; programs = { fzf = { enable = true; enableZshIntegration = true; tmux.enableShellIntegration = true; }; git = { enable = true; userName = "Michael Mandl"; userEmail = "mandlm@molez.net"; extraConfig = { user.private.name = "Michael Mandl"; user.private.email = "mandlm@molez.net"; user.private.signingkey = "4AA25D647AA54CC7"; user.swp.name = "Michael Mandl"; user.swp.email = "mandl@vi-bim.de"; user.swp.signingkey = "4E60F44227F611B4"; 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; }; aliases = { identity = "! git config user.name \"$(git config user.$1.name)\"; git config user.email \"$(git config user.$1.email)\"; git config user.signingkey \"$(git config user.$1.signingkey)\"; :"; }; }; 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; }; }; i3status-rust = { enable = true; bars = { default = { theme = "solarized-dark"; icons = "awesome"; blocks = [ { block = "memory"; display_type = "memory"; format_mem = "{mem_used_percents}"; } { block = "cpu"; interval = 1; } { block = "load"; interval = 1; format = "{1m}"; } { block = "battery"; hide_missing = true; format = "{time} ({percentage})"; } { block = "time"; interval = 60; format = "%a %d.%m %R"; } ]; }; }; }; home-manager.enable = true; }; xsession.windowManager.i3 = { enable = true; config = { modifier = "Mod4"; terminal = "${pkgs.kitty}/bin/kitty"; fonts = { names = ["DejaVu Sans Mono" ]; size = 12.0; }; window = { titlebar = false; border = 0; }; floating = { titlebar = false; border = 0; }; bars = [{ mode = "hide"; position = "top"; statusCommand = "${pkgs.i3status-rust}/bin/i3status-rs ~/.config/i3status-rust/config-default.toml"; fonts = { names = ["DejaVu Sans Mono" ]; size = 12.0; }; }]; }; }; }