about summary refs log tree commit diff
path: root/users/multi/home/configs/whitby.nix
{ 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";
}