tvl-depot/users/multi/home/configs/whitby.nix
multi c56f402383 feat(users/multi/home): add readline configuration and nix-shell handling to bashrc.
This adds my standard inputrc to my home-manager configuration, via the
latter's readline module, and adds nix-shell detection to my bash prompt
string.

Additionally, nix-shell is wrapped in a shell function, so that entering
a nix-shell environment automatically runs bash as a subprocess where
appropriate, as the default environment spawned by nix-shell is not to
my liking.

Change-Id: Id5b1b9415a185ad9920f268c66de32d6ccc0b452
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2146
Reviewed-by: multi <depot@in-addr.xyz>
Tested-by: BuildkiteCI
2020-11-23 18:41:29 +00:00

109 lines
2.4 KiB
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";
}