summary refs log tree commit diff stats
path: root/user/settings/base.nix
blob: 6725b6db64c97a4ec63c6bde76c831f0d8205775 (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
{ config
, lib
, pkgs
, ...
}: {
  imports = [
    ./neovim.nix
    ./shell.nix
  ];
  # Let Home Manager install and manage itself.
  programs.home-manager.enable = true;
  manual = {
    html.enable = true;
  };
  home.preferXdgDirectories = true;
  home.sessionVariables =
    let
      conf = config.xdg.configHome;
      data = config.xdg.dataHome;
      cache = config.xdg.cacheHome;
      state = config.xdg.stateHome;
    in
    {
      EMAIL = "alan@alanpearce.eu";
      MANPAGER = "bat -l man -p";
      ABDUCO_SOCKET_DIR = "${state}/abduco";
      GNUPGHOME = "${data}/gnupg";
      SOLARGRAPH_CACHE = "${cache}/solargraph";
      ASPELL_CONF = "per-conf ${conf}/aspell/aspell.conf; personal ${conf}/aspell/en.pws; repl ${conf}/aspell/en.prepl; dict-dir ${config.home.profileDirectory}/lib/aspell";
      ELECTRUMDIR = "${data}/electrum";
      DOCKER_CONFIG = "${conf}/docker";
      npm_config_userconfig = "${conf}/npm/config";
      PASSWORD_STORE_HOME = "${data}/password-store";
      WGETRC = pkgs.writeText "wgetrc" ''
        hsts-file = ${cache}/wget-hsts
      '';
      SQLITE_HISTORY = "${data}/sqlite_history";
    };
  xdg = {
    enable = true;
    cacheHome =
      if pkgs.stdenv.isDarwin
      then "${config.home.homeDirectory}/Library/Caches/XDG"
      else "${config.home.homeDirectory}/.cache";
    configHome = "${config.home.homeDirectory}/.config";
    dataHome = "${config.home.homeDirectory}/.local/share";
    stateHome =
      if pkgs.stdenv.isDarwin
      then "${config.home.homeDirectory}/Library/Caches/TemporaryItems/State"
      else "${config.home.homeDirectory}/.local/state";
  };

  home.shellAliases = {
    make = "remake";
  };
  programs.htop = {
    enable = true;
    settings = {
      header_margin = 0;
      tree_view = 1;
      hide_kernel_threads = 1;
      hide_userland_threads = 1;
    };
  };
  programs.bat = {
    enable = true;
    extraPackages = with pkgs.bat-extras; [
      batdiff
      batman
      batgrep
      batpipe
    ];
    config = {
      theme = "ansi";
      style = "header-filename,header-filesize,grid,rule";
    };
  };
  programs.nix-index-database.comma.enable = true;
  programs.ripgrep = {
    enable = true;
    package = pkgs.ripgrep.override { withPCRE2 = true; };
    arguments = [
      "--smart-case"
    ];
  };
  home.packages = with pkgs;
    [
      pv
      fd
      bfs
      sd
      knot-dns
      dateutils
      moreutils
      mtr
      gping
      tree
      remake
      abduco
      dvtm
      walk
      (aspellWithDicts (d: [ d.en d.en-computers d.en-science d.de ]))
    ]
    ++ (
      if !stdenv.isDarwin
      then [
        file
        lsof
        unar
        zip
      ]
      else [
      ]
    );
}