{ config, pkgs, ... }: # minimal config, suitable for servers let myUser = "alex"; myName = "Alexander Kobjolke"; myMail = "me@failco.de"; in { imports = [ # shell config #./modules/shell ]; programs.home-manager.enable = true; home = { username = myUser; homeDirectory = "/home/${myUser}"; stateVersion = "21.05"; sessionPath = [ "$HOME/.local/bin" "$HOME/.emacs.d/bin" ]; }; # do not show home-manager notifications news.display = "silent"; home.packages = with pkgs; [ # archives #p7zip #unrar # nix tools nix-index nixfmt # misc fd # better find file # info about files unzip dropbox gotop gnumake ripgrep # better grep pijul sqlite.dev sqlite # editing nil # nix language server # system tools htop-vim # htop with vim bindings erdtree # du+tree had sex dua # ncdu but better bat # better cat exa # better ls fzf gcc cmake graphviz plantuml gnuplot pandoc hledger hledger-web hledger-ui nix-prefetch-git ]; home.extraOutputsToInstall = [ "doc" "info" "devdoc" ]; xdg.enable = true; xdg.configFile.tmux = { target = "tmux/tmux.conf"; text = '' set -g default-terminal "tmux-256color" set -g prefix C-z # do not wait for a manually entered escape sequence, just forward it immediately set -g escape-time 0 bind-key C-z send-prefix set -g renumber-windows on ''; }; xdg.configFile.pijul = { target = "pijul/config.toml"; text = '' [author] name = "${myUser}" full_name = "${myName}" email = "${myMail}" ''; }; environment.shellAliases = { e = "emacsclient -c $@"; ls = "exa $@"; t = "exa -T $@"; }; programs = { bash = { enable = true; }; zsh = { enable = true; enableAutosuggestions = true; oh-my-zsh = { enable = true; plugins = [ "git" "fzf" "fd" "z" ]; theme = "simple"; }; }; starship = { enable = true; }; # better cat bat.enable = true; direnv = { enable = true; nix-direnv = { enable = true; }; enableZshIntegration = true; enableBashIntegration = true; }; emacs = { enable = true; #package = pkgs.emacs-unstable; extraPackages = epkgs: with epkgs; [ vterm ]; }; gh = { enable = true; settings.git_protocol = "ssh"; }; git = { enable = true; ignores = [ "*~" "*.swp" "result" "dist-newstyle" ]; userEmail = myMail; userName = myName; aliases = { st = "status"; }; extraConfig = { init.defaultBranch = "main"; }; }; gpg = { enable = true; settings = { homedir = "~/.local/share/gnupg"; }; }; helix = { enable = true; settings.theme = "gruvbox"; }; password-store = { enable = true; package = pkgs.gopass; settings = { PASSWORD_STORE_DIR = "$HOME/.local/share/password-store"; }; }; ssh.enable = true; neovim = import ./modules/nvim.nix pkgs; texlive.enable = true; }; services.gpg-agent = { enable = true; enableSshSupport = true; defaultCacheTtl = 300; defaultCacheTtlSsh = 300; }; services.emacs = { enable = true; }; home.file.".local" = { recursive = true; source = ./local; }; }