diff options
| -rwxr-xr-x | firefox-profile | 5 | ||||
| -rwxr-xr-x | session | 119 | 
2 files changed, 76 insertions, 48 deletions
diff --git a/firefox-profile b/firefox-profile index a995bde..9a24a69 100755 --- a/firefox-profile +++ b/firefox-profile @@ -2,6 +2,11 @@  # Wrapper around firefox  # +if ! which firefox &> /dev/null; then +  echo "Please install firefox" +  exit 1 +fi +  if [ ! -z "$1" ]; then    iceweasel -p $1 -new-instance &  else @@ -1,45 +1,59 @@  #!/bin/bash  # +# A lightweight session manager.  # Open a work session, which might consist of VIM, tmux, etc sessions.  #  # Parameters  NAME="$0"  BASENAME="`basename $0`" +IGNORE="$HOME/.config/session-ignore" + +function __session_not_ignored { +  if [ -z "$1" ]; then +    return 1 +  fi + +  if grep -q "^$1$" $IGNORE; then +    return 1 +  fi + +  return 0 +} -# TODO: config file to restrict which sessions we'll use -# TODO: sort by session name, listing applications for each session  function __session_query {    # VIM -  if [ -e "$HOME/.local/share/vim/sessions" ]; then +  if __session_not_ignored vim && [ -e "$HOME/.local/share/vim/sessions" ]; then      ls -1 $HOME/.local/share/vim/sessions | sed -e 's/\.vim//g'    fi    # Tmux -  if [ -d "$HOME/.tmux" ]; then +  if __session_not_ignored tmux && [ -d "$HOME/.tmux" ]; then      ls -1 $HOME/.tmux    fi -  # TODO    # Screen +  #if __session_not_ignored screen && [ -d "$HOME/.screen" ]; then +  #  ls -1 $HOME/.screen +  #fi    # Luakit -  if [ -d "$HOME/.local/share/luakit/sessions" ]; then +  if __session_not_ignored luakit && [ -d "$HOME/.local/share/luakit/sessions" ]; then      ls -1 $HOME/.local/share/luakit/sessions    fi    # Qutebrowser -  if [ -d "$HOME/.local/share/qutebrowser" ]; then +  if __session_not_ignored qutebrowser && [ -d "$HOME/.local/share/qutebrowser" ]; then      ls -1 $HOME/.local/share/qutebrowser    fi    # Chromium -  if [ -d "$HOME/.config/chromium-profiles" ]; then +  if __session_not_ignored chromium && [ -d "$HOME/.config/chromium-profiles" ]; then      ls -1 $HOME/.config/chromium-profiles    fi    # Firefox -  if [ -d "$HOME/.mozilla/firefox/profiles" ]; then +  if __session_not_ignored firefox && [ -d "$HOME/.mozilla/firefox/profiles" ]; then      ls -1 $HOME/.mozilla/firefox/profiles    fi  } @@ -50,49 +64,49 @@ function __session_list {      echo -en "$n. $session:"      # Check VIM session -    if [ -e "$HOME/.local/share/vim/sessions/$session.vim" ]; then +    if __session_not_ignored vim && [ -e "$HOME/.local/share/vim/sessions/$session.vim" ]; then        echo -n " vim"      #else      #  echo " -"      fi      # Check tmux session -    if [ -e "$HOME/.tmux/$session" ]; then +    if __session_not_ignored tmux && [ -e "$HOME/.tmux/$session" ]; then        echo -n " tmux"      #else      #  echo " -"      fi      # Screen -    if [ -e "$HOME/.screen/$session" ]; then +    if __session_not_ignored screen && [ -e "$HOME/.screen/$session" ]; then        echo -n " screen"      #else      #  echo " -"      fi      # Luakit -    if [ -e "$HOME/.local/share/luakit/sessions/$session" ]; then +    if __session_not_ignored luakit && [ -e "$HOME/.local/share/luakit/sessions/$session" ]; then        echo -n " luakit"      #else      #  echo " -"      fi      # Qutebrowser -    if [ -d "$HOME/.local/share/qutebrowser/$session" ]; then +    if __session_not_ignored qutebrowser && [ -d "$HOME/.local/share/qutebrowser/$session" ]; then        echo -n " qutebrowser"      #else      #  echo " -"      fi      # Chromium -    if [ -d "$HOME/.config/chromium-profiles/$session" ]; then +    if __session_not_ignored chromium && [ -d "$HOME/.config/chromium-profiles/$session" ]; then        echo -n " chromium"      #else      #  echo " -"      fi      # Firefox -    if [ -d "$HOME/.mozilla/firefox/profiles/$session" ]; then +    if __session_not_ignored firefox && [ -d "$HOME/.mozilla/firefox/profiles/$session" ]; then        echo -n " firefox"      #else      #  echo " -" @@ -103,8 +117,7 @@ function __session_list {    done | column -t -c 6 #| sed -e 's/^/\t/'  } -# TODO -function __session_choser { +function __session_chooser {    __session_list    read -rep "Choose session: " n @@ -117,62 +130,72 @@ function __session_choser {    fi  } -# 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 & +  if __session_not_ignored vim && [ -e "$HOME/.local/share/vim/sessions/$SESSION.vim" ]; then +    if which vim &> /dev/null; then +      terminal vim -S $HOME/.local/share/vim/sessions/$SESSION.vim & +    fi    fi    # Check tmux session -  if [ -e "$HOME/.tmux/$SESSION" ]; then -    terminal shell $SESSION & +  if __session_not_ignored tmux && [ -e "$HOME/.tmux/$SESSION" ]; then +    if which tmux &> /dev/null; then +      terminal shell $SESSION & +    fi    fi -  # TODO    # Screen +  #if __session_not_ignored screen && [ -e "$HOME/.screen/$SESSION" ]; then +  #  if which screen &> /dev/null; then +  #    terminal shell $SESSION & +  #  fi +  #fi    # Luakit    # TODO: how to open luakit in a given session from the command line? -  #if [ -e "$HOME/.local/share/luakit/sessions/$SESSION" ]; then +  #if __session_not_ignored luakit && [ -e "$HOME/.local/share/luakit/sessions/$SESSION" ]; then +  #  if which luakit &> /dev/null; then +  #  fi    #fi -  # TODO    # Qutebrowser -  #if [ -d "$HOME/.local/share/qutebrowser/$SESSION" ]; then -  #  qutebrowser -r $SESSION -  #fi +  if __session_not_ignored qutebrowser && [ -d "$HOME/.local/share/qutebrowser/$SESSION" ]; then +    if which qutebrowser &> /dev/null; then +      qutebrowser -r $SESSION +    fi +  fi -  # TODO    # Chromium -  #if [ -d "$HOME/.config/chromium-profiles/$SESSION" ]; then -  #  chromium-profile $SESSION -  #fi +  if __session_not_ignored chromium && [ -d "$HOME/.config/chromium-profiles/$SESSION" ]; then +    if which chromium-profile &> /dev/null; then +      chromium-profile $SESSION +    fi +  fi -  # TODO    # Firefox -  #if [ -d "$HOME/.mozilla/firefox/profiles" ]; then -  #  firefox-profile $SESSION -  #fi +  if __session_not_ignored firefox && [ -d "$HOME/.mozilla/firefox/profiles" ]; then +    firefox-profile $SESSION +  fi  } -# Check syntax -if [ -z "$1" ]; then -  echo "usage: $BASENAME [--list|--choser] <session>" +# Dispatch +if [ "$BASENAME" == "session-list" ]; then +  __session_list +elif [ ! -z "$1" ] && [ "$BASENAME" == "session-chooser" ]; then +  __session_chooser +elif [ ! -z "$1" ] && echo "$1" | grep -q -- '--list'; then +  __session_list +elif [ ! -z "$1" ] && echo "$1" | grep -q -- '--chooser'; then +  __session_chooser +elif [ -z "$1" ]; then +  echo "usage: $BASENAME [--list|--chooser] <session>"    echo "available sessions:"    echo ""    __session_list    exit 1 -fi - -# Dispatch -if echo "$1" | grep -q -- '--list'; then -  __session_list -elif echo "$1" | grep -q -- '--choser'; then -  __session_choser  else    __session_open $*  fi  | 
