mirror of
https://codeberg.org/leana8959/.files.git
synced 2025-12-06 22:59:15 +00:00
fish: refactored tmux_sessionizer
This commit is contained in:
parent
d2d49f9de4
commit
d78f5b9043
7 changed files with 74 additions and 78 deletions
|
|
@ -1,16 +1,17 @@
|
|||
function tmux_sessionizer
|
||||
# Inspired by the one and only primeagen
|
||||
function tmux_sessionizer \
|
||||
--description "Manage tmux sessions in specific folders with fzf"
|
||||
|
||||
set selected \
|
||||
(begin
|
||||
# use fd even though it's an extra dependency because find is too slow
|
||||
fd . $REPOS_PATH $UNIV_REPOS_PATH --exact-depth 2 --type d;
|
||||
fd . $PLAYGROUND_PATH --exact-depth 1 --type d;
|
||||
echo "play"
|
||||
end 2> /dev/null | sed -e "s|^$HOME|~|" | fzf)
|
||||
fd . $REPOS_PATH $UNIV_REPOS_PATH --exact-depth 2 --type d
|
||||
fd . $PLAYGROUND_PATH --exact-depth 1 --type d
|
||||
# Special mode to create a playground
|
||||
echo "play"
|
||||
end 2> /dev/null | sed -e "s|^$HOME|~|" | fzf)
|
||||
|
||||
set selected (echo $selected | sed -e "s|^~|$HOME|")
|
||||
|
||||
if [ -z $selected ]
|
||||
if [ -z "$selected" ]
|
||||
commandline --function repaint
|
||||
return 0
|
||||
end
|
||||
|
|
@ -18,7 +19,7 @@ function tmux_sessionizer
|
|||
switch $selected
|
||||
case play
|
||||
read -P "Give it a name: " name
|
||||
if test -z $name
|
||||
if test -z "$name"
|
||||
return 0
|
||||
else
|
||||
set name (snakecase $name)
|
||||
|
|
@ -28,23 +29,9 @@ function tmux_sessionizer
|
|||
end
|
||||
|
||||
set session_name (echo $selected | tr . _)
|
||||
# echo "---sess---" >> /tmp/TMUX_DEBUG
|
||||
# echo (cat /tmp/TMUX_LAST) >> /tmp/TMUX_DEBUG
|
||||
echo (tmux display-message -p '#S') >/tmp/TMUX_LAST
|
||||
# echo (cat /tmp/TMUX_LAST) >> /tmp/TMUX_DEBUG
|
||||
|
||||
# create session if doesn't exist
|
||||
if ! tmux has -t=$session_name 2>/dev/null
|
||||
tmux \
|
||||
new-session -ds $session_name -c $selected \; \
|
||||
send-keys -t $session_name $EDITOR ENTER \; \
|
||||
new-window -t $session_name -c $selected \; \
|
||||
select-window -t $session_name:1 \;
|
||||
end
|
||||
__tmux_register_session $session_name
|
||||
__tmux_maybe_create $session_name $session_name
|
||||
__tmux_attach_or_switch $session_name
|
||||
|
||||
if [ -z $TMUX ]
|
||||
tmux attach-session -t $session_name
|
||||
else
|
||||
tmux switch-client -t $session_name
|
||||
end
|
||||
end
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue