From ec8a314bc18e86fdb4460a9feabe7d9faed09eec Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Wed, 7 Mar 2018 04:06:32 -0300 Subject: Session enhancements --- session | 97 +++++++++++++++++++++++++++++++++++++++++++++++++++++------------ 1 file 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 -- cgit v1.2.3