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