{ pkgs, ... }: { home.packages = [ pkgs.ag pkgs.cabal2nix pkgs.cloc pkgs.dict pkgs.entr pkgs.exercism pkgs.fasd pkgs.file pkgs.gimp pkgs.jq pkgs.keepassx pkgs.keybase pkgs.keybase-gui pkgs.mononoki pkgs.mplayer pkgs.mpv pkgs.offlineimap pkgs.pass pkgs.pavucontrol pkgs.pinentry pkgs.qtpass pkgs.racket pkgs.ranger pkgs.ripgrep pkgs.scrot pkgs.shutter pkgs.stack2nix pkgs.tdesktop pkgs.transmission-gtk pkgs.tree pkgs.unrar pkgs.vlc pkgs.vpnc pkgs.w3m pkgs.wakatime pkgs.yank pkgs.youtube-dl ]; fonts.fontconfig.enableProfileFonts = true; xresources = { properties = { "XTerm*font" = "*-fixed-*-*-*-10-*"; "XTerm*faceName" = "mononoki"; "XTerm*termName" = "xterm-256color"; "XTerm*metaSendsEscape" = true; }; extraConfig = builtins.readFile ( pkgs.fetchFromGitHub { owner = "solarized"; repo = "xresources"; rev = "025ceddbddf55f2eb4ab40b05889148aab9699fc"; sha256 = "0lxv37gmh38y9d3l8nbnsm1mskcv10g3i83j0kac0a2qmypv1k9f"; } + "/Xresources.light" ); }; services.polybar = { enable = false; script = "polybar bar &"; config = { "bar/top" = { monitor = "${env:MONITOR:HDMI1}"; width = "100%"; height = "3%"; radius = 0; modules-center = "date"; }; "module/date" = { type = "internal/date"; internal = 5; date = "%y.%m.%d"; time = "%H.%M"; label = "%time% %date%"; }; }; }; services.taffybar = { enable = true; }; xsession = { enable = true; windowManager.xmonad = { enable = true; extraPackages = hpkgs: [ hpkgs.xmonad-contrib hpkgs.xmonad-extras hpkgs.monad-logger hpkgs.taffybar ]; enableContribAndExtras = true; config = ./xmonad.hs; }; }; programs.git = { enable = true; userName = "Ben Sima"; userEmail = "ben@bsima.me"; extraConfig = '' [push] default = simple [commit] template = ~/.config/nixpkgs/git-commit-template ''; }; programs.bash = { enable = true; shellAliases = { ll = "ls -l"; a = "fasd -a"; # any s = "fasd -si"; # show / search / select d = "fasd -d"; # directory f = "fasd -f"; # file sd = "fasd -sid"; # interactive directory selection sf = "fasd -sif"; # interactive file selection #z = "fasd_cd -d"; # cd, same functionality as j in autojump #zz = "fasd_cd -d -i"; # cd with interactive selection g = "grep -in"; rm = "rm -i"; ddate = "date +%Y.%m.%d"; tdate = "date +%Y.%m.%d..%H.%M"; ttime = "date +%H.%M"; day = "date +%a"; dday = "date +%A"; gl = "git pull --prune"; glog = ''git log --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"; gd = "git diff"; gc = "git commit"; gca = "git commit -a"; gco = "git checkout"; gb = "git branch"; gs = "git status -sb"; # super handy when working with lots of repos gsdir = ''for d in */; do cd $d && echo "$d" && git status -sb ; echo ; cd .. ; done''; pull = "git pull"; ci = "git commit"; st = "git status"; fetch = "git fetch"; push = "git push"; # Two aliases for adding files. The first ignores delete files, the second # includes them. add = "git add --ignore-removal"; ga = "git add -A"; }; profileExtra = '' OLDPATH=$PATH for DIR in \ $HOME/bin \ $HOME/me/bin \ $HOME/.local/bin do if [ -d $DIR ] then PATH=$DIR:$PATH fi done [[ -f ~/.nix-profile/etc/profile.d/nix.sh ]] && . ~/.nix-profile/etc/profile.d/nix.sh ''; }; programs.emacs = { enable = true; extraPackages = epkgs: with epkgs; [ ace-window ag avy bbdb cider circe clj-refactor clojure-mode company counsel counsel-dash counsel-projectile define-word diminish dired-narrow editorconfig emojify #eww #eww-lnum git-gutter-plus git-timemachine haskell-mode #hindent-mode hlint-refactor #hoon-mode #ibuffer ibuffer-vc #indent-guide-mode ivy #link-hint # FIXME lispy magit markdown-mode multiple-cursors neotree nix-mode nix-mode org-bullets org-plus-contrib org-pomodoro org-super-agenda org-trello pass projectile racket-mode restclient s shakespeare-mode #sky-color-clock smart-mode-line solarized-theme swiper sx undo-tree wakatime-mode which-key yaml-mode yasnippet ]; }; programs.vim = { enable = true; plugins = [ "colors-solarized" "fugitive" ]; settings = { ignorecase = true; expandtab = true; history = 1000; tabstop = 4; }; extraConfig = '' " Auto-switch theme let hour = strftime("%H") if 6 <= hour && hour < 18 set background=light else set background=dark endif colorscheme solarized filetype plugin indent on set cuc cul " Crosshair set cc=80 " 80 column lines set linebreak " Break lines at word (requires Wrap lines) set showbreak= " Wrap-broken line prefix set textwidth=80 " Line wrap (number of cols) set showmatch " Highlight matching brace set visualbell " Use visual bell (no beeping) set hlsearch " Highlight all search results set smartcase " Enable smart-case search set incsearch " Searches for strings incrementally ret autoindent " Auto-indent new lines set shiftwidth=4 " Number of auto-indent spaces set smartindent " Enable smart-indent set smarttab " Enable smart-tabs set ruler " Show row and column ruler information set backspace=indent,eol,start " Backspace behaviour imap fd set wildmenu " cool menu effect set mouse=a ''; }; programs.firefox = { enable = true; enableIcedTea = true; }; services.gpg-agent = { enable = true; defaultCacheTtl = 600; enableSshSupport = true; }; programs.home-manager.enable = true; programs.home-manager.path = https://github.com/rycee/home-manager/archive/release-18.03.tar.gz; }