tvl-depot/users/multi/home/configs/whitby.nix
multi 83e586a6f2 fix(users/multi/home): fix tmux keybindings for tmux 3.1
The "swap-window" command swaps two windows, the 'source' and
'destination' window, exchanging the indices they occupy in the window
list. In at least tmux 2.8 (which is what's in Debian Stable), if the
window under focus is the source window, then focus follows that window
(i.e. the focus changes to the current window's new index atomically
with it being moved to that index).

In more recent tmux versions, this is not the case, and the focus
remains on the old index, so that the replacement window comes under
focus. The former behaviour is still possible, but must be explicitly
requested.

Change-Id: Ieff606dfc2624b869d3bb6e1344dd4d0c6301857
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2169
Reviewed-by: multi <depot@in-addr.xyz>
Tested-by: BuildkiteCI
2020-11-27 19:23:31 +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 -dt -1
bind-key -n C-S-Right swap-window -dt +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";
}