Compare commits
No commits in common. "35b2144c68af502374be91dfd4fa1f38b3c46403" and "3e8ff2e064dfb8d6f17b51defb78a884492e000a" have entirely different histories.
35b2144c68
...
3e8ff2e064
7 changed files with 23 additions and 79 deletions
|
@ -45,7 +45,7 @@ in
|
||||||
mv = "mv -i";
|
mv = "mv -i";
|
||||||
cd = "z";
|
cd = "z";
|
||||||
|
|
||||||
f = ''fzf --multi --bind "enter:become($EDITOR {+})" --preview "bat --color=always --style=header,grid --line-range :500 {+}"'';
|
f = "fzf --multi --bind \"enter:become($EDITOR {+})\"";
|
||||||
|
|
||||||
nixos-switch = nom-system-command "sudo nixos-rebuild switch --flake ~/.dotfiles";
|
nixos-switch = nom-system-command "sudo nixos-rebuild switch --flake ~/.dotfiles";
|
||||||
nixos-boot = nom-system-command "sudo nixos-rebuild boot --flake ~/.dotfiles";
|
nixos-boot = nom-system-command "sudo nixos-rebuild boot --flake ~/.dotfiles";
|
||||||
|
@ -154,7 +154,6 @@ in
|
||||||
enable = true;
|
enable = true;
|
||||||
defaultOptions = [
|
defaultOptions = [
|
||||||
"--height 50%"
|
"--height 50%"
|
||||||
"--bind alt-j:preview-down,alt-k:preview-up"
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
zoxide.enable = true;
|
zoxide.enable = true;
|
||||||
|
|
|
@ -41,18 +41,32 @@ let
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
tmux-sessionizer = pkgs.writeFishApplication {
|
tmux-sessionizer = pkgs.writeShellApplication {
|
||||||
name = "ts";
|
name = "ts";
|
||||||
runtimeInputs = with pkgs; [ tmux findutils coreutils procps fd fzf1 tmux-switch ];
|
runtimeInputs = with pkgs; [ tmux findutils coreutils procps fd fzf ];
|
||||||
text = readFile ./tmux-sessionizer/script.fish;
|
text = ''
|
||||||
completions = readFile ./tmux-sessionizer/completions.fish;
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
selected=$(fd -HIg '.git' ~/ --min-depth 1 --max-depth 5 --type d --prune --exec dirname {} | ${getExe fzf1} "$*")
|
||||||
|
|
||||||
|
selected_name=$(basename "$selected" | tr . _)
|
||||||
|
|
||||||
|
if ! tmux has-session -t="$selected_name" 2> /dev/null; then
|
||||||
|
tmux new-session -ds "$selected_name" -c "$selected"
|
||||||
|
fi
|
||||||
|
|
||||||
|
${getExe tmux-switch} "$selected_name"
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
tmux-attach = pkgs.writeFishApplication {
|
tmux-attach = pkgs.writeShellApplication {
|
||||||
name = "ta";
|
name = "ta";
|
||||||
runtimeInputs = with pkgs; [ tmux fzf1 tmux-switch ];
|
runtimeInputs = with pkgs; [ tmux ];
|
||||||
text = readFile ./tmux-attach/script.fish;
|
text = ''
|
||||||
completions = readFile ./tmux-attach/completions.fish;
|
#!/usr/bin/env bash
|
||||||
|
selected=$(tmux list-sessions -F '#{session_name}' | ${getExe fzf1} "$*")
|
||||||
|
${getExe tmux-switch} "$selected"
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
in
|
in
|
|
@ -1 +0,0 @@
|
||||||
complete -c ta -f -a '(tmux list-sessions -F "#{session_name}" 2>/dev/null)'
|
|
|
@ -1,5 +0,0 @@
|
||||||
set selected (tmux list-sessions -F '#{session_name}' 2>/dev/null | fzf1 $argv)
|
|
||||||
if not test -n "$selected"
|
|
||||||
exit 1
|
|
||||||
end
|
|
||||||
tmux-switch "$selected"
|
|
|
@ -1 +0,0 @@
|
||||||
complete -c ts -f -a '(fd -HIg '.git' ~/ --min-depth 1 --max-depth 5 --type d --prune --exec realpath "{}/.." | xargs -I{} basename {} | string replace "." "")'
|
|
|
@ -1,13 +0,0 @@
|
||||||
set selected (fd -HIg '.git' ~/ --min-depth 1 --max-depth 5 --type d --prune --exec dirname {} | fzf1 $argv)
|
|
||||||
|
|
||||||
set selected_name (basename $selected 2>/dev/null | string replace "." "_")
|
|
||||||
|
|
||||||
if not test -n "$selected_name"
|
|
||||||
exit 1
|
|
||||||
end
|
|
||||||
|
|
||||||
if ! tmux has-session -t $selected_name 2> /dev/null
|
|
||||||
tmux new-session -ds $selected_name -c $selected
|
|
||||||
end
|
|
||||||
|
|
||||||
tmux-switch $selected_name
|
|
|
@ -1,49 +0,0 @@
|
||||||
_:
|
|
||||||
|
|
||||||
final: _:
|
|
||||||
with final.lib;
|
|
||||||
{
|
|
||||||
writeFishApplication =
|
|
||||||
{ name
|
|
||||||
, text
|
|
||||||
, completions ? null
|
|
||||||
, runtimeInputs ? [ ]
|
|
||||||
, checkPhase ? null
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
fishFile = destination: content: final.writeTextFile {
|
|
||||||
inherit name destination;
|
|
||||||
executable = true;
|
|
||||||
allowSubstitutes = true;
|
|
||||||
preferLocalBuild = false;
|
|
||||||
text = ''
|
|
||||||
#!${getExe final.fish}
|
|
||||||
'' + optionalString (runtimeInputs != [ ]) ''
|
|
||||||
|
|
||||||
export PATH="${makeBinPath runtimeInputs}:$PATH"
|
|
||||||
'' + ''
|
|
||||||
|
|
||||||
${content}
|
|
||||||
'';
|
|
||||||
|
|
||||||
checkPhase =
|
|
||||||
if checkPhase == null then ''
|
|
||||||
runHook preCheck
|
|
||||||
${getExe final.fish} -n "$target"
|
|
||||||
runHook postCheck
|
|
||||||
''
|
|
||||||
else checkPhase;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
script = fishFile "/bin/${name}" text;
|
|
||||||
|
|
||||||
completions_file = fishFile "/share/fish/vendor_completions.d/${name}.fish" completions;
|
|
||||||
in
|
|
||||||
final.symlinkJoin {
|
|
||||||
inherit name;
|
|
||||||
paths = [
|
|
||||||
script
|
|
||||||
] ++ optional (completions != null) completions_file;
|
|
||||||
};
|
|
||||||
}
|
|
Loading…
Reference in a new issue