about summary refs log tree commit diff
path: root/users/multi/home/configs/whitby.nix
blob: 9d455a177185076c33ca8981ec4aa8261c261dad (plain) (blame)
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
{ depot, pkgs, ... }:

let
  nixpkgs = import pkgs.nixpkgsSrc {};
  localpkgs = depot.users.multi.pkgs;

  # use the depot checkout in my home directory, to make hacking around easier,
  # instead of the depot checkout sitting in the nix stores
  depotPath = "/home/multi/depot";
in

{
  programs = {
    home-manager = {
      enable = true;
      path = toString nixpkgs.home-manager.src;
    };

    bash = {
      enable = true;
      initExtra = ''
        PS1="[\\u@\\h:\\w"
        if [[ -n "$IN_NIX_SHELL" ]]; then
            PS1="$PS1 (nix-shell)]\\\$ "
        else
            PS1="$PS1]\\\$ "
        fi

        nix-shell() {
            local comarg=0
            for i in "$@"; do
                [[ "$i" == "--command" ]] && comarg=1
            done

            if (( commarg == 0 )); then
                command nix-shell --command bash "$@"
            else
                command nix-shell "$@"
            fi
        }

        _Z_CMD=d
        source ~/.z.sh
      '';
    };

    readline = {
      enable = true;
      bindings = {
        "\\e[5~" = "history-search-backward";
        "\\e[6~" = "history-search-forward";
        "\\C-w" = "\"\\e\\C-h\"";
      };
      includeSystemConfig = false;
      variables = {
        expand-tilde = true;
        colored-stats = true;
        page-completions = false;
        menu-complete-display-prefix = true;
        colored-completion-prefix = true;
        completion-query-items = 0;
        completion-ignore-case = true;
        revert-all-at-newline = true;
        show-all-if-ambiguous = true;
        skip-completed-text = true;
      };
    };

    tmux = {
      enable = true;
      terminal = "tmux-256color";
      escapeTime = 50;
      extraConfig = ''
        bind-key -n C-S-Left swap-window -t -1
        bind-key -n C-S-Right swap-window -t +1
      '';
    };

    vim = {
      enable = true;
      extraConfig = "set mouse=";
    };
  };

  home.sessionVariables = {
    NIX_PATH =
      "nixpkgs=${pkgs.nixpkgsSrc}:" +
      "depot=${depotPath}";
    HOME_MANAGER_CONFIG = "${depotPath}/users/multi/home/home-manager.nix";
    EDITOR = "vim";
  };

  home.packages = [
    nixpkgs.lsof
    nixpkgs.strace
    nixpkgs.file
    nixpkgs.pciutils
    localpkgs.htop
  ];

  home.file = {
    z = {
      source = builtins.fetchurl "https://raw.githubusercontent.com/rupa/z/9f76454b32c0007f20b0eae46d55d7a1488c9df9/z.sh";
      target = ".z.sh";
    };
  };

  home.stateVersion = "20.03";
}