finally made it so tmux auto starts and formats on a hook
parent
5062ae7d36
commit
2d3132e870
@ -0,0 +1,55 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set_greeting() {
|
||||
# sets the TOD variable based on time of calling
|
||||
cur_time=$(date +%H) # hour
|
||||
# this control flow will be scuffed because I need to deal with early AM = evening
|
||||
if [[ $cur_time -lt 4 || $cur_time -gt 17 ]] ; then
|
||||
# between 5:00 pm and 4:00 am
|
||||
Greeting="Evening"
|
||||
elif [[ $cur_time -lt 12 ]] ; then
|
||||
# between 4:00 am and 12:00 pm
|
||||
Greeting="Morning"
|
||||
else
|
||||
Greeting="Afternoon"
|
||||
fi
|
||||
}
|
||||
|
||||
format_doormat() {
|
||||
# formats doormat on entry
|
||||
|
||||
set_greeting # set $Greeting based on TOD
|
||||
window="Good $Greeting"
|
||||
|
||||
|
||||
|
||||
tmux select-window -t "$SESSION:0"
|
||||
# creating a weather view on right quater
|
||||
tmux split-window -h -p 25
|
||||
# creating quote area
|
||||
tmux split-window -v -p 20
|
||||
# weather
|
||||
tmux select-pane -t 1
|
||||
tmux send-keys 'c && curl --silent -fL https://wttr.in?Fn' C-m
|
||||
# quote
|
||||
tmux select-pane -t 2
|
||||
tmux send-keys 'c && quote.sh' C-m
|
||||
|
||||
# creating a central vim pane taking up half the screen and a little box on the top left
|
||||
tmux select-pane -t 0
|
||||
tmux split-window -h -p 66
|
||||
# opening vim
|
||||
tmux select-pane -t 1
|
||||
tmux send-keys 'c && vim' C-m
|
||||
# renaming based on TOD
|
||||
tmux rename-window -t "$SESSION:0" "$window"
|
||||
tmux set-hook -u -t $SESSION client-attached
|
||||
|
||||
}
|
||||
|
||||
eval "$(tmux_start.sh -s)"
|
||||
|
||||
if [[ ! -z $SESSION ]] ; then
|
||||
# session is set
|
||||
format_doormat
|
||||
fi
|
@ -0,0 +1,42 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
print_output=false
|
||||
|
||||
while getopts "s" arg; do
|
||||
case $arg in
|
||||
s)
|
||||
print_output=true
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
SESSION="doormat" # welcom session name
|
||||
START_SERVER=false
|
||||
|
||||
set_session() {
|
||||
# sets $SESSION variable to doormat
|
||||
active_sessions=$(tmux list-sessions 2>/dev/null)
|
||||
if [[ ! -z "$active_sessions" ]] ; then
|
||||
# active sessions
|
||||
session=$(echo "$active_sessions" | grep "$SESSION" | cut -d ':' -f 1 2>/dev/null)
|
||||
# tmux doormat script
|
||||
if [[ "$session" != "$SESSION" ]] ; then
|
||||
# door mat doesn't exist
|
||||
START_SERVER=true
|
||||
fi
|
||||
else
|
||||
START_SERVER=true
|
||||
fi
|
||||
|
||||
if $START_SERVER ; then
|
||||
# need to start server
|
||||
tmux new-session -d -s "$SESSION"
|
||||
tmux set-hook -t "$SESSION" client-attached 'run-shell ~/.dotfiles/bin/startup/lay_doormat.sh'
|
||||
fi
|
||||
}
|
||||
|
||||
set_session
|
||||
|
||||
if $print_output ; then
|
||||
echo "SESSION=$SESSION"
|
||||
fi
|
@ -1,71 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set_greeting() {
|
||||
# sets the TOD variable based on time of calling
|
||||
cur_time=$(date +%H) # hour
|
||||
# this control flow will be scuffed because I need to deal with early AM = evening
|
||||
if [[ $cur_time -lt 4 || $cur_time -gt 17 ]] ; then
|
||||
# between 5:00 pm and 4:00 am
|
||||
Greeting="Evening"
|
||||
elif [[ $cur_time -lt 12 ]] ; then
|
||||
# between 4:00 am and 12:00 pm
|
||||
Greeting="Morning"
|
||||
else
|
||||
Greeting="Afternoon"
|
||||
fi
|
||||
}
|
||||
|
||||
lay_doormat(){
|
||||
# formats a tmux session stored under $session
|
||||
set_greeting # set $Greeting based on TOD
|
||||
window="Good $Greeting"
|
||||
|
||||
tmux select-window -t $session:0
|
||||
# creating a weather view on right quater
|
||||
tmux split-window -h -p 25
|
||||
tmux send-keys 'cd && clear && curl --silent -fL https://wttr.in?Fn' Enter
|
||||
|
||||
# creating a central vim pane taking up half the screen and a little box on the top left
|
||||
tmux select-pane -t 0
|
||||
tmux split-window -h -p 66
|
||||
tmux select-pane -t 0
|
||||
tmux split-window -v -p 90
|
||||
|
||||
# clearing bottom left
|
||||
tmux select-pane -t 1
|
||||
tmux send-keys 'cd && clear' C-m
|
||||
# writing quote to top left
|
||||
tmux select-pane -t 0
|
||||
tmux send-keys 'cd && clear && ~/.dotfiles/bin/startup/quote.sh' Enter
|
||||
# opening vim
|
||||
tmux select-pane -t 2
|
||||
tmux send-keys 'cd && clear && vim' C-m
|
||||
# renaming based on TOD
|
||||
tmux rename-window -t $session:0 "$window"
|
||||
}
|
||||
|
||||
session="doormat"
|
||||
|
||||
|
||||
if [[ ! tmuxhas-session -t $session 2>/d ]] ; then
|
||||
# no server
|
||||
tmux new-session -d -t "$session"
|
||||
lay_doormat
|
||||
else
|
||||
# existing server
|
||||
cur_session=$(tmux list-sessions 2>/dev/null | awk '{print $1}' | cut -d ":" -f 1)
|
||||
if [[ "$cur_session" == "$session" ]] ; then
|
||||
# check to see if window is set up
|
||||
cur_window=$(tmux list-windows -t "$session" 2>/dev/null | grep Good)
|
||||
if [[ -z $cur_window ]] ; then
|
||||
# no window active
|
||||
lay_doormat
|
||||
#tmux -2 attach-session -t "$session"
|
||||
fi
|
||||
else
|
||||
# doormat exists get window
|
||||
tmux new-session -d -t "$session"
|
||||
lay_doormat
|
||||
fi
|
||||
fi
|
||||
|
Loading…
Reference in New Issue