You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
93 lines
1.4 KiB
93 lines
1.4 KiB
#!/bin/sh |
|
|
|
help() { |
|
B=$(tput bold) |
|
U=$(tput smul) |
|
N=$(tput sgr0) |
|
|
|
cat << EOF |
|
${B}NAME${N} |
|
pidctl.sh - Daemon and program starter |
|
|
|
${B}SYNOPSIS${N} |
|
${B}pidctl.sh${N} [${U}OPTION${N}] |
|
|
|
${B}OPTIONS${N} |
|
${B}-d${N} |
|
Start daemons, run this from xinitrc. |
|
|
|
${B}-p${N} |
|
Program startup, run this from WM config. |
|
EOF |
|
} |
|
|
|
start() { |
|
[ -z "$1" ] && return 1 |
|
|
|
IS_RUNNING=$(pidof -x "$(echo "$@" | cut -d ' ' -f 1)") |
|
[ -z "$IS_RUNNING" ] && $@ & |
|
} |
|
|
|
daemon() { |
|
start dunst |
|
start redshift |
|
|
|
start emacs --daemon |
|
start thunar --daemon |
|
|
|
start sxhkd "$XDG_CONFIG_HOME/sxhkd/$WM" |
|
start xss-lock -- "$HOME"/.scripts/wm/lock.sh |
|
|
|
[ "$WM" = "bspwm" ] && start stalonetray |
|
} |
|
|
|
program() { |
|
# Application startup always |
|
|
|
"$HOME"/.scripts/wm/wallpaper.sh & |
|
"$HOME"/.scripts/panel/lemonbar.sh & |
|
|
|
# Application startup once |
|
|
|
# Firefox |
|
start firefox |
|
|
|
# Thunar |
|
[ "$(xdo id -a Thunar | wc -l)" -lt 4 ] && thunar & |
|
|
|
# URxvt |
|
if [ "$WM" = "bspwm" ]; then |
|
# Start urxvt on desktop 3 |
|
$(bspc rule -a URxvt desktop="^$WS3" \ |
|
&& start urxvt \ |
|
&& sleep 3 \ |
|
&& bspc rule -r URxvt desktop) & |
|
|
|
elif [ "$WM" = "i3" ]; then |
|
start urxvt |
|
fi |
|
} |
|
|
|
# If no option is provided |
|
[ "$#" -eq 0 ] && help && exit |
|
|
|
SCRIPT="$(basename "$0")" |
|
# Option handling |
|
while getopts 'hdp' opt; do |
|
case $opt in |
|
h) |
|
help |
|
exit |
|
;; |
|
d) |
|
daemon |
|
;; |
|
p) |
|
program |
|
;; |
|
\?) |
|
echo "Try '$SCRIPT -h' for more information." |
|
exit 1 |
|
;; |
|
esac |
|
done
|
|
|