diff --git a/.config/i3/config b/.config/i3/config index 44f56a8..dad2bdc 100644 --- a/.config/i3/config +++ b/.config/i3/config @@ -13,12 +13,7 @@ set $mod2 Mod1 floating_modifier $mod # Application startup -exec_always --no-startup-id $HOME/.scripts/wm/wallpaper.sh & -exec --no-startup-id $HOME/.scripts/panel/lemonbar.sh & -exec --no-startup-id firefox -exec --no-startup-id urxvt -exec --no-startup-id thunar -exec --no-startup-id xss-lock -- $HOME/.scripts/wm/lock.sh & +exec_always --no-startup-id $HOME/.scripts/wm/pidctl.sh -p # Colors set_from_resource $bgcolor WmColor.bgcolor #000000 diff --git a/.config/sxhkd/sxhkdrc b/.config/sxhkd/sxhkdrc index 10af66b..b38cd71 100644 --- a/.config/sxhkd/sxhkdrc +++ b/.config/sxhkd/sxhkdrc @@ -16,12 +16,12 @@ super + {_,shift} + m #--- Control ---# -# Reload sxhkd config and panel +# Reload sxhkd config super + ctrl + r - pkill -USR1 -x sxhkd; $HOME/.scripts/panel/lemonbar.sh & + pkill -USR1 -x sxhkd # Lock -super + alt + l +super + alt + s $HOME/.scripts/wm/lock.sh # Shutdown diff --git a/.config/xorg/xinitrc b/.config/xorg/xinitrc index d8e81bf..9209e37 100644 --- a/.config/xorg/xinitrc +++ b/.config/xorg/xinitrc @@ -19,11 +19,6 @@ inputctl.sh -k on inputctl.sh -s off # Daemon starting -dunst & -redshift & - -thunar --daemon & - -sxhkd "$XDG_CONFIG_HOME/sxhkd/$WM" & +"$HOME"/.scripts/wm/pidctl.sh -d exec $WM diff --git a/.scripts/wm/pidctl.sh b/.scripts/wm/pidctl.sh new file mode 100755 index 0000000..6d2d710 --- /dev/null +++ b/.scripts/wm/pidctl.sh @@ -0,0 +1,93 @@ +#!/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 diff --git a/packages b/packages index 1ebd787..030d27c 100644 --- a/packages +++ b/packages @@ -133,6 +133,7 @@ x264 x86_energy_perf_policy xarchiver xclip +xdo xdotool xorg-server xorg-xev