{ pkgs, ... }: let homedir = builtins.getEnv "HOME"; locale = "en_US.UTF-8"; gpgid = "D09299626FA78AF8"; gitCommitTemplate = ./git-commit-template; in { home = { packages = import ./packages.nix { inherit pkgs; }; sessionVariables = { GPGID = gpgid; EDITOR = "emacsclient"; LANG = locale; LANGUAGE = locale; PATH = "${homedir}/bin:${homedir}/.local/bin:$PATH"; PAGER = "less"; LEDGER_FILE = "${homedir}/.hledger.journal"; XTERM_LOCALE = locale; LOCALE_ARCHIVE = "${pkgs.glibcLocales}/lib/locale/locale-archive"; }; # From the command line: # setxkbmap -option caps:ctrl_modifier keyboard.options = [ "caps:ctrl_modifier" ]; file = { mutt = { text = (builtins.readFile ./muttrc) + (builtins.readFile ./mutt/solarized.muttrc); target = ".muttrc"; }; mailcap = { source = ./mailcap; target = ".mailcap"; }; editorconfig = { source = ./editorconfig; target = ".editorconfig"; }; }; }; programs = { home-manager = { enable = true; path = "${homedir}/cfg/home-manager"; }; tmux = { enable = true; extraConfig = builtins.readFile ./tmux; baseIndex = 0; clock24 = true; customPaneNavigationAndResize = true; keyMode = "vi"; shortcut = "'C-\\'"; terminal = "screen-256color"; sensibleOnTop = true; secureSocket = false; }; ssh = { enable = true; forwardAgent = true; matchBlocks = { "simatime.com" = { hostname = "simatime.com"; user = "git"; identityFile = [ "${homedir}/.ssh/id_rsa" ]; identitiesOnly = true; }; gh = { hostname = "github.com"; user = "git"; identityFile = [ "${homedir}/.ssh/id_rsa" ]; identitiesOnly = true; }; lithium = { hostname = "69.181.254.154"; user = "ben"; identityFile = [ "${homedir}/.ssh/hijuj-zupip" ]; identitiesOnly = true; }; nutin-madaj = { hostname = "159.89.128.69"; user = "root"; identityFile = [ "${homedir}/.ssh/biz-deploy" ]; identitiesOnly = true; }; hikuj-zupip = { hostname = "69.181.254.154"; user = "root"; identityFile = [ "${homedir}/.ssh/biz-deploy" ]; identitiesOnly = true; }; }; }; direnv = { enable = true; }; skim = { enable = true; enableBashIntegration = true; }; vim = { enable = true; plugins = [ "ctrlp" "fugitive" "editorconfig-vim" "surround" "vim-colorschemes" ]; extraConfig = builtins.readFile ./vimrc; }; git = { enable = true; userName = "Ben Sima"; userEmail = "ben@bsima.me"; ignores = [ "*~" "*.swp" ]; package = pkgs.gitAndTools.gitFull; signing = { key = gpgid; signByDefault = false; }; aliases = { authors = "shortlog -s -n"; }; extraConfig = '' [push] default = simple [commit] template = ${gitCommitTemplate} [sendemail] smtpuser = ben@bsima.me smptserverport = 587 smptserver = mail.bsima.me chainreplyto = false composeencoding = UTF-8 ''; }; bash = { enable = true; initExtra = '' DIR=~/.nix-profile/etc/profile.d [[ -f "$DIR/nix.sh" ]] && . "$DIR/nix.sh" [[ -f "$DIR/hm-session-vars.sh" ]] && . "$DIR/hm-session-vars.sh" function cd() { builtin cd "$@" && ls } # my prompt, after much chagrin export PS1='\n\[\e[34m\][\u@\h:\w]\[\e[m\] $(date +%Y.%m.%d..%H.%M) \n$ ' ''; shellAliases = { add = "git add --ignore-removal"; ci = "git commit"; day = "date +%a"; ddate = "date +%Y.%m.%d"; dday = "date +%A"; et = "emacs -nw"; # emacs in a terminal fetch = "git fetch"; g = "grep -in"; ga = "git add -A"; gb = "git branch"; gc = "git commit"; gca = "git commit -a"; gco = "git checkout"; gd = "git diff"; gl = "git pull --prune"; glog = ''git log --decorate --all --graph --pretty=format:"%Cred%h%Creset %an: %s - %Creset %C(yellow)%d%Creset %Cgreen(%cr)%Creset" --abbrev-commit --date=relative''; gp = "git push origin HEAD"; gs = "git status -sb"; hs = "home-manager switch"; ll = "ls -l"; pull = "git pull"; push = "git push"; rm = "rm -i"; showpath = "echo $PATH | sed 's/:/\n/g'"; tdate = "date +%Y.%m.%d..%H.%M"; ttime = "date +%H.%M"; typeless = "history | tail -n 20000 | sed 's/.* //' | sort | uniq -c | sort -g | tail -n 100"; v = "vim"; "v." = "vim ."; vimdiff = "vim -d"; vk = "vim $(sk -m)"; vs = "vim $(sk -m)"; }; }; emacs = { enable = true; # Disabling for spacemacs #extraPackages = epkgs: import ./emacs-packages.nix { inherit epkgs; }; }; }; }