diff options
author | multi <depot@in-addr.xyz> | 2020-11-23T09·34+0000 |
---|---|---|
committer | multi <depot@in-addr.xyz> | 2020-11-23T18·41+0000 |
commit | c56f402383491ee2841ea64edf2022ba361d0b87 (patch) | |
tree | 39cf68f8b40266e5bf8112c0eeab5be17476bc95 | |
parent | f49c86139f2bfccc97b5fab97f208db3fafd296e (diff) |
feat(users/multi/home): add readline configuration and nix-shell handling to bashrc. r/1916
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
-rw-r--r-- | users/multi/home/configs/whitby.nix | 43 |
1 files changed, 40 insertions, 3 deletions
diff --git a/users/multi/home/configs/whitby.nix b/users/multi/home/configs/whitby.nix index 1ed95770f7a3..9d455a177185 100644 --- a/users/multi/home/configs/whitby.nix +++ b/users/multi/home/configs/whitby.nix @@ -19,16 +19,53 @@ in bash = { enable = true; initExtra = '' - bind '"\e[5~":history-search-backward' - bind '"\e[6~":history-search-forward' + PS1="[\\u@\\h:\\w" + if [[ -n "$IN_NIX_SHELL" ]]; then + PS1="$PS1 (nix-shell)]\\\$ " + else + PS1="$PS1]\\\$ " + fi - PS1="[\\u@\\h:\\w]\\\$ " + 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"; |