aboutsummaryrefslogtreecommitdiff
path: root/session
blob: 979a2d82933cf3aa7b3ff0e0a923bb9b59240ce5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
#!/bin/bash
#
# Open a work session, which might consist of VIM, tmux, etc sessions.
#

# Parameters
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 {
  # 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 "$1" ]; then
  echo "usage: $BASENAME [--list|--choser] <session>"
  echo "available sessions:"
  echo ""
  __session_list
  exit 1
fi

if echo "$1" | grep -q -- '--list'; then
  __session_list
# TODO
#if echo "$1" | grep -q -- '--choser'; then
#  __session_choser
else
  __session_open $*
fi