feat(tmux): various improvements

nixos
Moritz Böhme 2023-10-04 15:02:27 +02:00
parent bd2b6d1af3
commit d943ab8b6d
Signed by: moritz
GPG Key ID: 970C6E89EB0547A9
5 changed files with 15 additions and 19 deletions

View File

@ -124,6 +124,10 @@ in
"C-l" = "send-keys C-l"; "C-l" = "send-keys C-l";
"R" = "source-file $XDG_CONFIG_HOME/tmux/tmux.conf \\; display-message 'Reloaded tmux.conf'"; "R" = "source-file $XDG_CONFIG_HOME/tmux/tmux.conf \\; display-message 'Reloaded tmux.conf'";
}; };
root = {
"C-f" = "new-window ts";
"C-a" = "new-window ta";
};
copy-mode-vi = { copy-mode-vi = {
"v" = "send -X begin-selection"; "v" = "send -X begin-selection";
"V" = "send -X select-line"; "V" = "send -X select-line";

View File

@ -19,14 +19,14 @@ let
tmux-sessionizer = pkgs.writeFishApplication { tmux-sessionizer = pkgs.writeFishApplication {
name = "ts"; name = "ts";
runtimeInputs = with pkgs; [ tmux findutils coreutils procps fd fzf1 tmux-switch ]; runtimeInputs = with pkgs; [ tmux findutils coreutils procps fd tmux-switch ];
text = readFile ./tmux-sessionizer/script.fish; text = readFile ./tmux-sessionizer/script.fish;
completions = readFile ./tmux-sessionizer/completions.fish; completions = readFile ./tmux-sessionizer/completions.fish;
}; };
tmux-attach = pkgs.writeFishApplication { tmux-attach = pkgs.writeFishApplication {
name = "ta"; name = "ta";
runtimeInputs = with pkgs; [ tmux fzf1 tmux-switch ]; runtimeInputs = with pkgs; [ tmux tmux-switch ];
text = readFile ./tmux-attach/script.fish; text = readFile ./tmux-attach/script.fish;
completions = readFile ./tmux-attach/completions.fish; completions = readFile ./tmux-attach/completions.fish;
}; };

View File

@ -1,4 +1,4 @@
set selected (tmux list-sessions -F '#{session_name}' 2>/dev/null | fzf1 $argv) set selected (tmux list-sessions -F '#{session_name}' 2>/dev/null | fzf $argv)
if not test -n "$selected" if not test -n "$selected"
exit 1 exit 1
end end

View File

@ -1,4 +1,11 @@
set selected (fd -HIg '.git' ~/ --min-depth 1 --max-depth 5 --type d --prune --exec dirname {} | fzf1 $argv) set pipe (mktemp --dry-run)
mkfifo $pipe
fd -HIg '.git' ~/ --min-depth 1 --max-depth 5 --type d --prune --exec dirname {} | tee $pipe >/dev/null &
fd . ~/ --min-depth 1 --max-depth 3 --type d | tee $pipe >/dev/null &
set selected (cat $pipe | fzf $argv)
rm -f "$pipe"
set selected_name (basename $selected 2>/dev/null | string replace "." "_") set selected_name (basename $selected 2>/dev/null | string replace "." "_")

View File

@ -11,19 +11,4 @@ final: prev:
}); });
timers = inputs.timers.packages.${prev.system}.default; timers = inputs.timers.packages.${prev.system}.default;
hyprland = inputs.hyprland.packages.${prev.system}.default; hyprland = inputs.hyprland.packages.${prev.system}.default;
fzf1 = final.writeShellApplication {
name = "fzf1";
runtimeInputs = with final; [ coreutils fzf fd ];
text = ''
#!/usr/bin/env bash
selected=$(fzf --query="$*" -1 < /dev/stdin)
if [[ -z $selected ]]; then
exit 0
fi
echo "$selected"
'';
};
} }