{ pkgs, ... }: let solarized-xresources = pkgs.fetchFromGitHub { owner = "blueyed"; repo = "xresources"; rev = "e74971bece803839afe310e8c1b4e21b6647d42a"; sha256 = "1bgd8avd469azalvyq68yq9k5a5g599jhcr4arqi6bi5vbnaq22b"; }; in { home = { packages = import ./packages.nix { inherit pkgs; }; sessionVariables = { EDITOR = "vim"; }; }; fonts.fontconfig.enableProfileFonts = true; xresources = { properties = { "XTerm*font" = "*-fixed-*-*-*-*-*"; "XTerm*faceName" = "mononoki"; "XTerm*faceSize" = "10"; "XTerm*termName" = "xterm-256color"; "XTerm*metaSendsEscape" = true; }; extraConfig = builtins.readFile(solarized-xresources + "/Xresources.light"); }; services.network-manager-applet.enable = true; services.polybar = { enable = true; config = { "bar/top" = { font-0 = "mononoki:size-10"; monitor = "\${env:MONITOR:eDP1}"; monitor-fallback = "HDMI1"; width = "100%"; height = "2%"; radius = 0; background = "#fdf6e3"; # solarized base3 foreground = "#657b83"; # solarized base00 tray-position = "right"; tray-detached = false; tray-maxsize = 16; tray-transparent = false; tray-background = "#fdf6e3"; tray-offset-x = 0; tray-offset-y = 0; tray-padding = 0; tray-scale = 1.0; module-margin = 4; modules-center = "date"; modules-right = "battery"; }; "module/date" = { type = "internal/date"; internal = 5; date = "%Y.%m.%d"; time = "%H.%M"; label = "%date%..%time%"; }; "module/battery" = { type = "internal/battery"; battery = "BAT0"; adapter = "AC"; full-at = 99; }; }; script = '' #!/usr/bin/env sh systemctl --user daemon-reload polybar top & ''; }; services.taffybar = { enable = false; }; services.redshift = { enable = true; latitude = "33.044444"; longitude = "-117.271667"; }; 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 = { home-manager = { enable = true; path = https://github.com/rycee/home-manager/archive/release-18.03.tar.gz; }; vim = import ./vim.nix { inherit pkgs; inherit (pkgs) vimUtils fetchFromGitHub; }; git = { enable = true; userName = "Ben Sima"; userEmail = "ben@bsima.me"; ignores = [ "*~" "*.swp" ]; extraConfig = '' [push] default = simple [commit] template = ~/.config/nixpkgs/git-commit-template ''; }; bash = { enable = true; initExtra = '' [[ -f ~/.nix-profile/etc/profile.d/nix.sh ]] && . ~/.nix-profile/etc/profile.d/nix.sh ''; shellAliases = { #z = "fasd_cd -d"; # cd, same functionality as j in autojump #zz = "fasd_cd -d -i"; # cd with interactive selection a = "fasd -a"; # any add = "git add --ignore-removal"; ci = "git commit"; d = "fasd -d"; # directory day = "date +%a"; ddate = "date +%Y.%m.%d"; dday = "date +%A"; f = "fasd -f"; # file 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 --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"; gsdir = ''for d in */; do cd $d && echo "$d" && git status -sb ; echo ; cd .. ; done''; ll = "ls -l"; pull = "git pull"; push = "git push"; rm = "rm -i"; s = "fasd -si"; # show / search / select sd = "fasd -sid"; # interactive directory selection sf = "fasd -sif"; # interactive file selection tdate = "date +%Y.%m.%d..%H.%M"; ttime = "date +%H.%M"; }; }; emacs = { enable = false; extraPackages = epkgs: import ./emacs-packages.nix { inherit epkgs; }; }; firefox = { enable = true; enableIcedTea = true; }; }; services.gpg-agent = { enable = true; defaultCacheTtl = 600; enableSshSupport = true; }; }