summary refs log tree commit diff stats
path: root/user/settings/base.nix
blob: 5c5d6012298aa3370f851b960f2bab1e992f1b5e (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
args@{ config
, lib
, pkgs
, ...
}: {
  imports = [
    ./neovim.nix
    ./shell.nix
    (import <nix-index-database/home-manager-module.nix>
      (args // { databases = import <nix-index-database/packages.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";
      ABDUCO_SOCKET_DIR = "${state}/abduco";
      SOLARGRAPH_CACHE = "${cache}/solargraph";
      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; [
      batman
    ];
    config = {
      theme = "ansi";
      style = "header-filename,header-filesize,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
      nuspell
    ] ++ (with pkgs.hunspellDicts; [
      en-gb-large
      de-de
    ]) ++ (
      if !stdenv.isDarwin
      then [
        file
        lsof
        unar
        zip
      ]
      else [
      ]
    );
}