aboutsummaryrefslogtreecommitdiff
path: root/session
diff options
context:
space:
mode:
authorSilvio Rhatto <rhatto@riseup.net>2018-03-07 03:22:09 -0300
committerSilvio Rhatto <rhatto@riseup.net>2018-03-07 03:22:09 -0300
commit21b26f642c1afc411a7d7c49fd786ecdc22731f9 (patch)
tree8acfe55049aadabd5fcb407cb4ea5ce7e5f3707b /session
parent98963206630584d7903f5cb5b6c094e5d20cca64 (diff)
downloadutils-x11-21b26f642c1afc411a7d7c49fd786ecdc22731f9.tar.gz
utils-x11-21b26f642c1afc411a7d7c49fd786ecdc22731f9.tar.bz2
Merge sessions with browser-sessions
Diffstat (limited to 'session')
-rwxr-xr-xsession120
1 files changed, 102 insertions, 18 deletions
diff --git a/session b/session
index 36ef7b7..979a2d8 100755
--- a/session
+++ b/session
@@ -1,31 +1,115 @@
#!/bin/bash
#
-# Open a work session, which might consist on VIM, tmux, etc sessions.
+# Open a work session, which might consist of VIM, tmux, etc sessions.
#
# Parameters
BASENAME="`basename $0`"
-SESSION="$1"
+
+# TODO: config file to restrict which sessions we'll use
+# TODO: sort by session name, listing applications for each session
+function __session_list {
+ # VIM
+ if [ -e "$HOME/.local/share/vim/sessions" ]; then
+ echo -n "vim: "
+ ls $HOME/.local/share/vim/sessions | sed -e 's/\.vim//g' | xargs
+ fi
+
+ # Tmux
+ if [ -d "$HOME/.tmux" ]; then
+ echo -n "tmux: "
+ ls $HOME/.tmux
+ fi
+
+ # TODO
+ # Screen
+
+ # Luakit
+ if [ -d "$HOME/.local/share/luakit/sessions" ]; then
+ echo -n "luakit: "
+ ls $HOME/.local/share/luakit/sessions | xargs
+ fi
+
+ # Qutebrowser
+ if [ -d "$HOME/.local/share/qutebrowser" ]; then
+ echo -n "qutebrowser: "
+ ls $HOME/.local/share/qutebrowser/ | xargs
+ fi
+
+ # Chromium
+ if [ -d "$HOME/.config/chromium-profiles" ]; then
+ echo -n "chromium: "
+ ls $HOME/.config/chromium-profiles | xargs
+ fi
+
+ # Firefox
+ if [ -d "$HOME/.mozilla/firefox/profiles" ]; then
+ echo -n "firefox: "
+ ls $HOME/.mozilla/firefox/profiles | xargs
+ fi
+}
+
+# TODO
+function __session_choser {
+ true
+}
+
+# TODO: config file to restrict which sessions we'll use
+# TODO: check if the program is installed before running it
+function __session_open {
+ SESSION="$1"
+
+ # Check VIM session
+ if [ -e "$HOME/.local/share/vim/sessions/$SESSION.vim" ]; then
+ terminal vim -S $HOME/.local/share/vim/sessions/$SESSION.vim &
+ fi
+
+ # Check tmux session
+ if [ -e "$HOME/.tmux/$SESSION" ]; then
+ terminal shell $SESSION &
+ fi
+
+ # TODO
+ # Screen
+
+ # Luakit
+ # TODO: how to open luakit in a given session from the command line?
+ #if [ -e "$HOME/.local/share/luakit/sessions/$SESSION" ]; then
+ #fi
+
+ # TODO
+ # Qutebrowser
+ #if [ -d "$HOME/.local/share/qutebrowser/$SESSION" ]; then
+ # qutebrowser -r $SESSION
+ #fi
+
+ # TODO
+ # Chromium
+ #if [ -d "$HOME/.config/chromium-profiles/$SESSION" ]; then
+ # chromium-profile $SESSION
+ #fi
+
+ # TODO
+ # Firefox
+ #if [ -d "$HOME/.mozilla/firefox/profiles" ]; then
+ # firefox-profile $SESSION
+ #fi
+}
# Check syntax
-if [ -z "$SESSION" ]; then
+if [ -z "$1" ]; then
echo "usage: $BASENAME [--list|--choser] <session>"
+ echo "available sessions:"
+ echo ""
+ __session_list
exit 1
fi
-# Check VIM session
-if [ -e "$HOME/.local/share/vim/sessions/$SESSION.vim" ]; then
- terminal vim -S $HOME/.local/share/vim/sessions/$SESSION.vim &
-fi
-
-# Check tmux session
-if [ -e "$HOME/.tmux/$SESSION" ]; then
- terminal shell $SESSION &
-fi
-
+if echo "$1" | grep -q -- '--list'; then
+ __session_list
# TODO
-# Check browser session
-#BROWSWER="`browser-sessions | grep -E " code ?" | cut -d : -f 1`"
-#if [ ! -z "$BROWSER" ]; then
-# # Open browser in the given session
-#fi
+#if echo "$1" | grep -q -- '--choser'; then
+# __session_choser
+else
+ __session_open $*
+fi