112 lines
3.6 KiB
Bash
Executable File
112 lines
3.6 KiB
Bash
Executable File
#!/bin/bash
|
|
##
|
|
# Read saved BunsenLabs Conky session file(s) and start the conkys
|
|
#
|
|
# Written by damo <damo@bunsenlabs.org> for BunsenLabs Linux, April 2015
|
|
#
|
|
# Repackaged for Manjaro by napcok <napcok@gmail.com>, March 2016
|
|
#
|
|
# To start the default conky session at login, add the following line
|
|
# to config/openbox/autostart:
|
|
#
|
|
# (sleep 2s && mb-conky-session --autostart) &
|
|
#
|
|
########################################################################
|
|
CONKYPATH="$HOME/.config/conky"
|
|
SESSIONFILE="$CONKYPATH/conky-sessionfile"
|
|
USAGE="\vUSAGE:\tmb-conky-session [OPTION(S)]...FILES
|
|
\n\tWith no command argument, the script uses the default
|
|
\t\"\$CONKYPATH/conky-session\" sessionfile
|
|
\vOPTIONS:\n\t--default\t: specify default sessionfile
|
|
\t--autostart\t: no \"kill conky\" option asked for
|
|
\tpath/to/sessionfile1 /path/to/sessionfile2 etc
|
|
\vEXAMPLES:
|
|
\tRun specified sessionfile at login:
|
|
\t\"mb-conky-session --autostart /path/to/sessionfile\"
|
|
\v\tRun default sessionfile, without killing running conkys:
|
|
\t\"mb-conky-session --autostart\"
|
|
\v\tRun several conky sessionfiles (option to kill conkys first):
|
|
\t\"mb-conky-session --default sessionfile1 sessionfile2 etc\""
|
|
|
|
### DIALOG VARIABLES
|
|
DLG="yad --center --undecorated --borders=20 "
|
|
TITLE="Mabox Conky Session"
|
|
WINICON="--window-icon=distributor-logo-mabox"
|
|
OK="--button=OK:0"
|
|
case $LANG in
|
|
pl*)
|
|
CANCEL="--button=Anuluj:1"
|
|
KILL_FIRST="Czy zamknąć najpierw działające Conky?"
|
|
;;
|
|
*)
|
|
CANCEL="--button=Cancel:1"
|
|
KILL_FIRST="Kill running conkys first?"
|
|
;;
|
|
esac
|
|
|
|
|
|
########################################################################
|
|
|
|
findArgs(){ # get command args (switches & sessionfile paths)
|
|
i=0
|
|
for arg in "$@";do
|
|
if [[ $arg = "--default" ]]; then
|
|
arg="$SESSIONFILE"
|
|
fi
|
|
if [[ $arg = "--autostart" ]]; then
|
|
NOKILL=1 # run from autostart, so don't ask to kill conkys
|
|
fi
|
|
if [[ -f $arg ]]; then # sessionfile exists
|
|
rawArr[$i]="$arg" # add sessionfiles to array
|
|
i=$(($i+1))
|
|
fi
|
|
done
|
|
# check if sessionfiles were passed to bl-conky-session
|
|
if (( ${#rawArr[@]} != 0 )); then
|
|
# remove duplicate args
|
|
sessArr=(`printf "%s\n" "${rawArr[@]}" | sort -u`)
|
|
if (( $NOKILL == 0 )); then
|
|
killConkys
|
|
fi
|
|
for SESSION in "${sessArr[@]}";do # run the conkys in the sessionfiles
|
|
source "$SESSION"
|
|
done
|
|
else # --autostart used, but no sessionfiles passed to bl-conkyzen
|
|
if [[ -f $SESSIONFILE ]] && (( $NOKILL == 1 )); then
|
|
source "$SESSIONFILE" # use conky-sessionfile
|
|
else
|
|
echo -e "ERROR: sessionfile \"$SESSIONFILE\" not found. Using default" >&2
|
|
conky -c $HOME/.conkyrc # run default conky
|
|
exit 0
|
|
fi
|
|
fi
|
|
}
|
|
|
|
killConkys(){
|
|
if pidof conky &>/dev/null; then
|
|
$DLG $WINICON --title="$TITLE" --text="$KILL_FIRST"
|
|
if (( $? == 0 )); then # kill all conkys
|
|
killall conky && sleep 0.2s
|
|
fi
|
|
fi
|
|
}
|
|
|
|
NOKILL=0
|
|
if (( $# == 0 )); then # if no args, then run default sessionfile
|
|
killConkys
|
|
if [[ ! -f "$SESSIONFILE" ]]; then # run default conky
|
|
echo -e "ERROR: sessionfile \"$SESSIONFILE\" not found. Using default" >&2
|
|
conky -c $HOME/.conkyrc
|
|
exit 0
|
|
else
|
|
source "$SESSIONFILE"
|
|
fi
|
|
elif [[ $1 = "-h" ]] || [[ $1 = "--help" ]]; then
|
|
echo -e "$USAGE"
|
|
exit 0
|
|
else
|
|
findArgs $@ # get the sessionfile paths from the command args
|
|
fi
|
|
|
|
exit 0
|