{ config, lib, pkgs, user, ... }: { home = { username = "${user}"; homeDirectory = "/home/${user}"; packages = with pkgs; [ bat firefox jq htop ripgrep pavucontrol gcc nodejs unzip cargo rustc gcc pkg-config openssl ]; slack thunderbird signal-desktop tdesktop whatsapp-for-linux nextcloud-client keepassxc file = { ".config/nvim/init.lua" = { source = nvim/init.lua; }; ".config/nvim/lua" = { source = nvim/lua; recursive = true; }; }; stateVersion = "22.05"; }; services.gpg-agent = { enable = true; enableZshIntegration = true; pinentryFlavor = "gnome3"; }; programs = { fzf = { enable = true; enableZshIntegration = true; }; git = { enable = true; 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)\"; git config commit.gpgsign \"true\"; :"; }; }; kitty = { enable = true; theme = "Solarized Dark"; font = { name = "DejaVu Sans Mono"; size = 12; }; }; neovim = { enable = true; }; tmux = { enable = true; newSession = true; keyMode = "vi"; extraConfig = '' set-option -g status off ''; plugins = with pkgs.tmuxPlugins; [ vim-tmux-navigator tmux-colors-solarized ]; }; gpg = { enable = true; mutableKeys = false; mutableTrust = false; publicKeys = [{ source = ./gnupg/pubring.asc; trust = "ultimate"; }]; }; zsh = { enable = true; enableSyntaxHighlighting = true; history.size = 10000; oh-my-zsh = { enable = true; plugins = [ "git" "direnv" "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; format = "{barchart} {frequency}"; } { 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; }; }]; }; }; }