1# my BASED implementation
2
3provide-module discord-rpc %~
4 declare-option bool discord_rpc_autostart true
5 define-command start-discord-rpc %{
6 nop %sh{
7 lock="/tmp/kak-discord"
8 if [ ! -f "$lock" ]; then
9 {
10 discord-rpc-cli -c '1397337509393989713' -d 'I just be editing text i just be writing text and editing it' -N kak -I 'i just be editing text!!!'
11 } >/dev/null 2>&1 </dev/null &
12 pid="$!"
13 echo "$pid">"$lock"
14 fi
15 }
16 }
17 define-command stop-discord-rpc %{
18 nop %sh{
19 lock="/tmp/kak-discord"
20 if [ -f "$lock" ]; then
21 kill "$(cat "$lock")"
22 rm "$lock"
23 fi
24 }
25 }
26 hook -once global KakBegin .* %{
27 evaluate-commands %sh{
28 if [ "$kak_opt_discord_rpc_autostart" = "true" ]; then
29 echo "start-discord-rpc"
30 fi
31 }
32 }
33 hook -once -always global KakEnd .* %{
34 evaluate-commands %sh{
35 count="$(kak -l | grep -v '(dead)' | wc -l)"
36 if [ ${count} -le 1 ]; then
37 echo "stop-discord-rpc"
38 fi
39 }
40 }
41~
42