summaryrefslogtreecommitdiff
path: root/home.nix
blob: f6715537b23155ebf0a38a0ff36f318aac4730fe (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
{ pkgs, ... }:

{
  home.packages = [
    pkgs.ag
    pkgs.cabal2nix
    pkgs.cloc
    pkgs.dict
    pkgs.entr
    pkgs.fasd
    pkgs.file
    pkgs.gimp
    pkgs.jq
    pkgs.keepassx
    pkgs.keybase
    pkgs.keybase-gui
    pkgs.mplayer
    pkgs.mpv
    pkgs.offlineimap
    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
  ];

  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 <Esc>      " alternate escape
      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;
}