fixed tmux start script default-tmux-session

changed tmux keymaps for pane splitting to start pane in the same
directory
This commit is contained in:
quak
2025-01-04 10:06:03 +01:00
parent 6aa9ebd3a0
commit 943c8b0392
3 changed files with 28 additions and 17 deletions

View File

@@ -1,23 +1,31 @@
#!/usr/bin/env bash
SESSION='quak'
# dont forget the '-d' option, otherwise the rest of
# the commands will get executed after the session is closed
DEFAULT_SESSION='quak'
DUMMY_SESSION='dummy'
if $(tmux has-session -t ${SESSION}); then
echo "default session ${SESSION} already exists"
# start dummy session to avoid error messages on `has-session`
tmux new-session -d -s "$DUMMY_SESSION"
# return 1 to report error and abort the `dmux` alias
return 1
# check if the default session exists
# redirect stderr to /dev/null because `session not found` is
# not a relevant error in this case
if $(tmux has-session -t ${DEFAULT_SESSION} 2>/dev/null); then
echo "default session <${DEFAULT_SESSION}> already exists"
# no action needed if the session exists, the attach command is run externally
else
tmux new-session -d -s "$SESSION" -n "temp"
tmux new-window -t "$SESSION" -n "dotfiles" -c $HOME/dotfiles
tmux new-window -t "$SESSION" -n "docs" -c $HOME/collection
tmux new-window -t "$SESSION" -n "stuff" -c $HOME
tmux kill-window -t "temp"
# dont forget the '-d' option, otherwise the session is closed
# before the rest of the commands are executed
tmux new-session -d -s "$DEFAULT_SESSION" -n "dotfiles" -c "$HOME/dotfiles"
tmux new-window -t "$DEFAULT_SESSION" -n "docs" -c "$HOME/collection"
tmux new-window -t "$DEFAULT_SESSION" -n "stuff" -c "$HOME"
# this causes the script to exit only, when the session is ended or detached
# it also causes the tmux detach command with hang up signal to fail
# therefore the following line is commented out and an alias setup in .bashrc
#tmux attach -t "$SESSION"
# it also causes tmux's detach command with hang up signal to fail
# therefore the following line is commented out
# an `alias` is created in `.bashrc` which calls this script and runs
# `tmux attach` on successful execution
#tmux attach -t "$DEFAULT_SESSION"
fi
tmux kill-session -t "$DUMMY_SESSION"

View File

@@ -26,8 +26,8 @@ unbind x
bind x kill-pane -t +0
# keymaps for splitting
bind v split-pane -v
bind h split-pane -h
bind v split-pane -v -c "#{pane_current_path}"
bind h split-pane -h -c "#{pane_current_path}"
bind b break-pane
unbind t
bind t command-prompt -p "move pane to window:" "join-pane -t '%%'"

View File

@@ -2,6 +2,9 @@
# use interactive shell instead of login shell
set-option -g default-command "/bin/bash"
# ..
set-option -s exit-unattached off
# enable rgb colors
set-option -sa terminal-features ',xterm-256color:RGB'