#!/bin/bash
getpadding() {
set -- $(herbstclient monitor_rect 0)
x_n=$1
y_n=$2
w_n=$3
h_n=$4
set -- $(herbstclient monitor_rect -p 0)
x_p=$1
y_p=$2
w_p=$3
h_p=$4
pad_left=$x_p
pad_up=$y_p
pad_right=$((w_n - x_p - w_p))
pad_down=$((h_n - y_p - h_p))
}
hide() {
echo -n '0' > ~/.cellwriter/fifo
herbstclient pad 0 "" "" 0 ""
}
show() {
echo -n '1' > ~/.cellwriter/fifo
herbstclient pad 0 "" "" 110 ""
}
launch() {
cellwriter --show-window --dock-window=2 &
herbstclient pad 0 "" "" 110 ""
}
state() {
pgrep cellwriter >/dev/null 2>&1 || return 2
getpadding
(( $pad_down == 110 )) || return 0
(( $pad_down == 0 )) || return 1
}
toggle() {
state
case $? in
2) launch ;;
1) hide ;;
0) show ;;
esac
}
launchshow() {
state
if (( $? == 2 )); then
launch
elif (( $? == 0 )); then
show
fi
}
kill() {
state
if (( $? != 2 )); then
killall cellwriter
herbstclient pad 0 "" "" 0 ""
fi
}
case $1 in
hide) hide ;;
show) show ;;
launch) launch ;;
state) state ;;
toggle) toggle ;;
launchshow) launchshow ;;
kill) kill ;;
esa
{"text":"text","html5":"html","css":"css","javascript":"javascript","php":"php","python":"python","ruby":"ruby","lua":"lua","bash":"sh","erlang":"erlang","go":"golang","c":"c_cpp","cpp":"c_cpp","diff":"diff","latex":"latex","sql":"sql","xml":"xml","0":"text","abap":"abap","actionscript":"actionscript","actionscript3":"actionscript","ada":"ada","apache":"apache_conf","applescript":"applescript","asm":"assembly_x86","autohotkey":"autohotkey","closure":"closure","cobol":"cobol","coffeescript":"coffee","cpp-winapi":"c_cpp","c_loadrunner":"c_cpp","c_mac":"c_cpp","c_winapi":"c_cpp","csharp":"csharp","d":"d","dart":"dart","dot":"dot","eiffel":"eiffel","fortran":"fortran","groovy":"groovy","haskell":"haskell","haxe":"haxe","ini":"ini","io":"io","java":"java","java5":"java","make":"makefile","matlab":"matlab","mysql":"mysql","objc":"objectivec","ocaml":"ocaml","pascal":"pascal","perl":"perl","perl6":"perl","postgresql":"pgsql","powershell":"powershell","prolog":"prolog","properties":"properties","rails":"ruby","rust":"rust","scala":"scala","scheme":"scheme","smarty":"smarty","tcl":"tcl","vala":"vala","vb":"vbscript","verilog":"verilog","vhdl":"vhdl","yaml":"yaml"}