Move autostart.sh into own directory
This commit is contained in:
156
autostart/autostart.sh
Executable file
156
autostart/autostart.sh
Executable file
@@ -0,0 +1,156 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -o nounset
|
||||
# set -x
|
||||
|
||||
selective=0
|
||||
if (( $# > 0 )) ; then
|
||||
selective=1
|
||||
services=("${@}")
|
||||
fi
|
||||
|
||||
do_run() {
|
||||
name="$1"
|
||||
shift
|
||||
|
||||
run=0
|
||||
if (( $selective )) ; then
|
||||
for s in "${services[@]}" ; do
|
||||
if [[ "$s" == "$name" ]] ; then
|
||||
run=1
|
||||
fi
|
||||
done
|
||||
else
|
||||
run=1
|
||||
fi
|
||||
|
||||
return $(( ! $run ))
|
||||
}
|
||||
|
||||
get_unit_name() {
|
||||
name="$1" ; shift
|
||||
printf '%s' "${name}"
|
||||
}
|
||||
|
||||
run_raw() {
|
||||
name="$1"
|
||||
shift
|
||||
|
||||
do_run "$name" || return
|
||||
|
||||
systemd-run \
|
||||
--user \
|
||||
--unit "$(get_unit_name "${name}")" \
|
||||
--no-block \
|
||||
--remain-after-exit \
|
||||
--setenv=DISPLAY=${DISPLAY} \
|
||||
"${@}"
|
||||
}
|
||||
|
||||
run() {
|
||||
name="$1"
|
||||
shift
|
||||
|
||||
run_raw "$name" --property=Restart=always "${@}"
|
||||
}
|
||||
|
||||
run_oneshot_multiple() {
|
||||
name="$1"
|
||||
shift
|
||||
|
||||
cmd=()
|
||||
# hacky way to start two processes in oneshot mode
|
||||
for c in "${@}" ; do
|
||||
cmd+=(--property "ExecStart=/usr/bin/env ${c}")
|
||||
done
|
||||
cmd+=(true)
|
||||
|
||||
run_oneshot "$name" "${cmd[@]}"
|
||||
}
|
||||
|
||||
run_oneshot() {
|
||||
name="$1"
|
||||
shift
|
||||
|
||||
run_raw "$name" --service-type=oneshot "${@}"
|
||||
}
|
||||
|
||||
schedule() {
|
||||
name="$1"; shift
|
||||
spec="$1"; shift
|
||||
do_run "$name" || return
|
||||
systemd-run \
|
||||
--user \
|
||||
--unit "$(get_unit_name "${name}")" \
|
||||
--no-block \
|
||||
--setenv=DISPLAY=${DISPLAY} \
|
||||
--on-calendar="${spec}" \
|
||||
"${@}"
|
||||
}
|
||||
|
||||
|
||||
# wallpaper config
|
||||
wallpaper="$LIBDIR/wallpaper/current"
|
||||
|
||||
# keyboard settings
|
||||
keyboard_layout=de
|
||||
keyboard_variant=nodeadkeys
|
||||
keyboard_repeat_delay=150
|
||||
keyboard_repeat_speed=50
|
||||
|
||||
run_oneshot acpi bash -c 'grep "^${ACPI_LID_NAME}.*enabled" /proc/acpi/wakeup && echo " ${ACPI_LID_NAME}" | sudo tee /proc/acpi/wakeup'
|
||||
|
||||
run_oneshot xresources xrdb -merge -I${HOME} ~/.Xresources
|
||||
|
||||
run_oneshot_multiple keyboard \
|
||||
"setxkbmap -layout $keyboard_layout -variant $keyboard_variant" \
|
||||
"xset r rate $keyboard_repeat_delay $keyboard_repeat_speed"
|
||||
|
||||
run_oneshot_multiple touchpad \
|
||||
"synclient VertEdgeScroll=0" \
|
||||
"synclient VertTwoFingerScroll=1" \
|
||||
"synclient MaxSpeed=2.2" \
|
||||
"synclient AccelFactor=0.08" \
|
||||
"synclient TapButton1=1" \
|
||||
"synclient CoastingSpeed=0" \
|
||||
"synclient PalmDetect=1" \
|
||||
"synclient PalmMinWidth=20" \
|
||||
"synclient PalmMinZ=180"
|
||||
|
||||
run_oneshot pulseaudio start-pulseaudio-x11 --start --daemonize=false --fail=true --log-target=stderr
|
||||
|
||||
run gpg-agent gpg-agent --homedir "$HOME/.gnupg" --no-detach --daemon
|
||||
|
||||
# a service called dunst already exists and conflicts
|
||||
run dunst_user dunst -config ~/.config/dunstrc
|
||||
|
||||
# disabled due to firefox flicker
|
||||
# run compton compton --backend glx --vsync opengl --no-dock-shadow --no-dnd-shadow
|
||||
|
||||
run_oneshot wallpaper --property=ExecStartPre="/bin/sleep 1" feh --bg-scale "${wallpaper}"
|
||||
|
||||
run blueman blueman-applet
|
||||
|
||||
run nm-applet nm-applet
|
||||
|
||||
run pasystray pasystray
|
||||
|
||||
# redshift unit already exists
|
||||
run redshift_user redshift-gtk -c ~/.config/redshift.conf
|
||||
|
||||
if [[ "${MACHINE_HAS_KEEPASSX}" == "true" ]] ; then
|
||||
run keepassx keepassx --keyfile ~/.secret/main.key ~/.secret/main.kdbx
|
||||
fi
|
||||
|
||||
run spotify spotify
|
||||
|
||||
if [[ "${MACHINE_HAS_NEXTCLOUD}" == "true" ]] ; then
|
||||
run nextcloud nextcloud
|
||||
fi
|
||||
|
||||
if [[ "${MACHINE_HAS_RESTIC_BACKUP}" == "true" ]] ; then
|
||||
[[ -x ~/bin/restic-backup ]] && schedule restic-backup "Mon..Fri 12:00:00" ~/bin/restic-backup
|
||||
fi
|
||||
|
||||
|
||||
run firefox firefox -P default
|
||||
Reference in New Issue
Block a user