File tree 3 files changed +29
-6
lines changed
3 files changed +29
-6
lines changed Original file line number Diff line number Diff line change @@ -306,11 +306,17 @@ bind -m vi-command '"\C-r": "i\C-r"'
306
306
# }}}
307
307
# Tmux {{{
308
308
309
+ __tmux_fzf_get_session__ () {
310
+ session=$( tmux list-sessions -F " #{session_name}" 2> /dev/null |
311
+ fzf --exit-0 --preview=' tmux_tree {} | bat --theme TwoDark --style plain' )
312
+ echo " $session "
313
+ }
314
+
309
315
# Tmux session switcher (`tms foo` attaches to `foo` if exists, else creates
310
316
# it)
311
317
tms () {
312
318
[[ -n " $TMUX " ]] && change=" switch-client" || change=" attach-session"
313
- if [[ " $1 " ]]; then
319
+ if [[ -n " $1 " ]]; then
314
320
if [[ " $1 " == " -ask" ]]; then
315
321
read -r -p " New tmux session name: " session_name
316
322
else
@@ -321,14 +327,12 @@ tms() {
321
327
tmux $change -t " $session_name " );
322
328
return
323
329
fi
324
- session=$( tmux list-sessions -F \
325
- " #{session_name}" 2> /dev/null | fzf --exit-0) && \
326
- tmux $change -t " $session " || echo " No sessions found."
330
+ session=$( eval __tmux_fzf_get_session__)
331
+ tmux $change -t " $session " || echo " No sessions found."
327
332
}
328
333
# Tmux session killer
329
334
tmk () {
330
- session=$( tmux list-sessions -F " #{session_name}" | \
331
- fzf --query=" $1 " --exit-0) &&
335
+ session=$( eval __tmux_fzf_get_session__)
332
336
tmux kill-session -t " $session "
333
337
}
334
338
Original file line number Diff line number Diff line change 111
111
if type " tmux" > /dev/null 2>&1 ; then
112
112
$ln_cmd -fTs " $dotfiles_dir /tmux" " $HOME /.tmux"
113
113
echo Created .tmux folder symlink
114
+ $ln_cmd -fTs " $dotfiles_dir /tmux/tmux_tree" " $HOME /bin/tmux_tree"
115
+ echo Created bin/tmux_tree symlink
114
116
fi
115
117
if type " powerline-daemon" > /dev/null 2>&1 ; then
116
118
$ln_cmd -fTs " $dotfiles_dir /config/powerline" " $HOME /.config/powerline"
Original file line number Diff line number Diff line change
1
+ #! /usr/bin/env bash
2
+
3
+ tmux ls -F' #{session_id}' | while read -r s; do
4
+ S=$( tmux ls -F' #{session_id}#{session_name}: #{T:tree_mode_format}' | grep ^" $s " )
5
+ session_info=${S## $s }
6
+ session_name=$( echo " $session_info " | cut -d ' :' -f 1)
7
+ if [[ -n " $1 " ]] && [[ " $1 " == " $session_name " ]]; then
8
+ echo -e " \033[1;34m$session_info \033[0m"
9
+ else
10
+ echo -e " \033[1m$session_info \033[0m"
11
+ fi
12
+ tmux lsw -t" $s " -F' #{window_id}' | while read -r w; do
13
+ W=$( tmux lsw -t" $s " -F' #{window_id}#{T:tree_mode_format}' | grep ^" $w " )
14
+ echo " ${W## $w } "
15
+ done
16
+ done
17
+
You can’t perform that action at this time.
0 commit comments