僕の愛用screen設定
2018-12-25
vi ~/.screenrc
autodetach on
defscrollback 10000
altscreen on
escape ^Tt
startup_message off
hardstatus on
hardstatus alwayslastline
hardstatus string '%{= kw}%-w%{=b kC}%n %t%{= kw}%+w%='
bind l windowlist
termcapinfo xterm 'hs:ts=\E]2;:fs=\007:ds=\E]2;screen\007:ti@:te@'
※ ↑本当は各設定の意味を説明したいが、備忘録としてとりあえず書きたいので、そのうち気が向いたら・・・
vi ~/bin/sc
#!/bin/bash
STATUS=`screen -ls`
new_session() {
exec screen
}
detach_and_reattach() {
exec screen -d -r
}
multi_attach() {
exec screen -x
}
reattach() {
exec screen -r
}
echo $STATUS | grep 'No Sockets found' > /dev/null 2>&1
if [ $? -eq 0 ]; then
new_session
exit 0
fi
echo $STATUS | grep '1 Socket in' > /dev/null 2>&1
if [ $? -eq 0 ]; then
echo $STATUS | grep 'Attached' > /dev/null 2>&1
if [ $? -eq 0 ]; then
multi_attach
exit 0
fi
echo $STATUS | grep 'Detached' > /dev/null 2>&1
if [ $? -eq 0 ]; then
reattach
exit 0
fi
echo '[ERROR] parse `screen -ls` error.'
echo "$STATUS"
exit 1
fi
echo '[WARN] more than 1 session found. Please reconnect manually.'
echo "$STATUS"
exit 1
※ ↑のコードはすごい昔にネット上の何かを参考にした記憶がある。本当はその参照元を示したいのだが、ググっても見つからなかった・・・
chmod +x ~/bin/sc