aboutsummaryrefslogtreecommitdiff
path: root/session
diff options
context:
space:
mode:
authorSilvio Rhatto <rhatto@riseup.net>2018-03-07 04:06:32 -0300
committerSilvio Rhatto <rhatto@riseup.net>2018-03-07 04:06:32 -0300
commitec8a314bc18e86fdb4460a9feabe7d9faed09eec (patch)
tree9670bbcfae6a1bb9165b0dafee0cedd3e0155661 /session
parent21b26f642c1afc411a7d7c49fd786ecdc22731f9 (diff)
downloadutils-x11-ec8a314bc18e86fdb4460a9feabe7d9faed09eec.tar.gz
utils-x11-ec8a314bc18e86fdb4460a9feabe7d9faed09eec.tar.bz2
Session enhancements
Diffstat (limited to 'session')
-rwxr-xr-xsession97
1 files changed, 80 insertions, 17 deletions
diff --git a/session b/session
index 979a2d8..be3acfb 100755
--- a/session
+++ b/session
@@ -4,21 +4,20 @@
#
# Parameters
+NAME="$0"
BASENAME="`basename $0`"
# TODO: config file to restrict which sessions we'll use
# TODO: sort by session name, listing applications for each session
-function __session_list {
+function __session_query {
# VIM
if [ -e "$HOME/.local/share/vim/sessions" ]; then
- echo -n "vim: "
- ls $HOME/.local/share/vim/sessions | sed -e 's/\.vim//g' | xargs
+ ls -1 $HOME/.local/share/vim/sessions | sed -e 's/\.vim//g'
fi
# Tmux
if [ -d "$HOME/.tmux" ]; then
- echo -n "tmux: "
- ls $HOME/.tmux
+ ls -1 $HOME/.tmux
fi
# TODO
@@ -26,32 +25,96 @@ function __session_list {
# Luakit
if [ -d "$HOME/.local/share/luakit/sessions" ]; then
- echo -n "luakit: "
- ls $HOME/.local/share/luakit/sessions | xargs
+ ls -1 $HOME/.local/share/luakit/sessions
fi
# Qutebrowser
if [ -d "$HOME/.local/share/qutebrowser" ]; then
- echo -n "qutebrowser: "
- ls $HOME/.local/share/qutebrowser/ | xargs
+ ls -1 $HOME/.local/share/qutebrowser
fi
# Chromium
if [ -d "$HOME/.config/chromium-profiles" ]; then
- echo -n "chromium: "
- ls $HOME/.config/chromium-profiles | xargs
+ ls -1 $HOME/.config/chromium-profiles
fi
# Firefox
if [ -d "$HOME/.mozilla/firefox/profiles" ]; then
- echo -n "firefox: "
- ls $HOME/.mozilla/firefox/profiles | xargs
+ ls -1 $HOME/.mozilla/firefox/profiles
fi
}
+function __session_list {
+ n="0"
+ __session_query | sort | uniq | while read session; do
+ echo -en "$n. $session:"
+
+ # Check VIM session
+ if [ -e "$HOME/.local/share/vim/sessions/$session.vim" ]; then
+ echo -n " vim"
+ #else
+ # echo " -"
+ fi
+
+ # Check tmux session
+ if [ -e "$HOME/.tmux/$session" ]; then
+ echo -n " tmux"
+ #else
+ # echo " -"
+ fi
+
+ # Screen
+ if [ -e "$HOME/.screen/$session" ]; then
+ echo -n " screen"
+ #else
+ # echo " -"
+ fi
+
+ # Luakit
+ if [ -e "$HOME/.local/share/luakit/sessions/$session" ]; then
+ echo -n " luakit"
+ #else
+ # echo " -"
+ fi
+
+ # Qutebrowser
+ if [ -d "$HOME/.local/share/qutebrowser/$session" ]; then
+ echo -n " qutebrowser"
+ #else
+ # echo " -"
+ fi
+
+ # Chromium
+ if [ -d "$HOME/.config/chromium-profiles/$session" ]; then
+ echo -n " chromium"
+ #else
+ # echo " -"
+ fi
+
+ # Firefox
+ if [ -d "$HOME/.mozilla/firefox/profiles/$session" ]; then
+ echo -n " firefox"
+ #else
+ # echo " -"
+ fi
+
+ echo ""
+ let ++n
+ done | column -t -c 6 #| sed -e 's/^/\t/'
+}
+
# TODO
function __session_choser {
- true
+ __session_list
+ read -rep "Choose session: " n
+
+ if [ ! -z "$n" ]; then
+ session="$(__session_list | grep "^$n." | sed -e "s/^$n. //" | cut -d : -f 1)"
+
+ if [ ! -z "$session" ]; then
+ $NAME $session
+ fi
+ fi
}
# TODO: config file to restrict which sessions we'll use
@@ -105,11 +168,11 @@ if [ -z "$1" ]; then
exit 1
fi
+# Dispatch
if echo "$1" | grep -q -- '--list'; then
__session_list
-# TODO
-#if echo "$1" | grep -q -- '--choser'; then
-# __session_choser
+elif echo "$1" | grep -q -- '--choser'; then
+ __session_choser
else
__session_open $*
fi