From c82053c53fcae8cc913cd9c96ed1cbba1da50ff0 Mon Sep 17 00:00:00 2001 From: Salt Date: Wed, 19 Jun 2019 07:35:31 -0500 Subject: [PATCH] Port over some preinit stuff from dsk, add xdg autostarter --- firestarter | 65 ++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 60 insertions(+), 5 deletions(-) diff --git a/firestarter b/firestarter index 860acb7..22dc2c8 100755 --- a/firestarter +++ b/firestarter @@ -115,6 +115,15 @@ command -v mate-settings-daemon mate-settings-daemon command -v gnome-settings-daemon gnome-settings-daemon +EOF + # XDG autostarter + cat << EOF > "$g_configdir/xdg-autostart" +command -v dex +dex -a +command -v fbautostart +fbautostart +command -v xdg-autostart +xdg-autostart "\${XDG_CURRENT_DESKTOP:-firestarter}" EOF # X compositor cat << EOF > "$g_configdir/x-compositor" @@ -226,13 +235,13 @@ EOF } step_preexecute() { # Special things that can't use simple configuration files - [ "$dryrun" == "1" ] && return 0 + [ "$dryrun" = "1" ] && return 0 # dbus if \ [ -z "$DBUS_SESSION_BUS_ADDRESS" ] && \ [ -n "$XDG_RUNTIME_DIR" ] && \ - [ "$XDG_RUNTIME_DIR" == "/run/user/$(id -u)" ] && \ + [ "$XDG_RUNTIME_DIR" = "/run/user/$(id -u)" ] && \ [ -S "$XDG_RUNTIME_DIR/bus" ]; then # We already have a bus started, use it export DBUS_SESSION_BUS_ADDRESS="unix:path=$XDG_RUNTIME_DIR/bus" @@ -252,6 +261,41 @@ step_preexecute() { fi fi unset hasdbus + + # kcminit/Qt settings + if command -v kcminit > /dev/null 2>&1; then + log "Initializing KDE Control Module settings" + kcminit > /dev/null 2>&1 + elif command -v qt5ct > /dev/null 2>&1; then + log "Integrating qt5ct" + if [ -z "$QT_QPA_PLATFORMTHEME" ]; then + export QT_QPA_PLATFORMTHEME="qt5ct" + log "Exporting QT_QPA_PLATFORMTHEME as \"$QT_QPA_PLATFORMTHEME\"" + else + log "Using existing theme setting \"$QT_QPA_PLATFORMTHEME\"" + fi + if [ -z "$QT_AUTO_SCREEN_SCALE_FACTOR" ]; then + export QT_AUTO_SCREEN_SCALE_FACTOR="0" + log "Exporting QT_AUTO_SCREEN_SCALE_FACTOR as $QT_AUTO_SCREEN_SCALE_FACTOR" + else + log "Using existing scale setting \"$QT_AUTO_SCREEN_SCALE_FACTOR\"" + fi + fi + + # xhost + if command -v xhost > /dev/null 2>&1; then + if xhost +si:localuser:"$(id -un)" > /dev/null 2>&1; then + log "Session can be accessed in other sessions by this user" + else + log "Failed to open session up via xhost" + fi + fi + + # xset + if command -v xset > /dev/null 2>&1; then + log "Disabling bell" + xset -b + fi } step_execute() { if ! [ -d "$g_configdir" ]; then @@ -264,6 +308,17 @@ step_execute() { err "Failed to create log directory \"$g_logdir\"" 53 fi fi + if [ -f "$HOME/.xsessionrc" ]; then + if [ -r "$HOME/.xsessionrc" ]; then + if ! [ "$dryrun" = "1" ]; then + source "$HOME/.xsessionrc" + else + log "Would have sourced in .xsessionrc" + fi + else + log "Could not read .xsessionrc" + fi + fi for file in "$g_configdir"/*; do if ! [ -f "$file" ]; then log "No configuration files found; generating defaults" @@ -283,7 +338,7 @@ step_execute() { [ -f "$logfile.old" ] && rm "$logfile.old" mv "$logfile" "$logfile.old" fi - if ! [ "$dryrun" == "1" ]; then + if ! [ "$dryrun" = "1" ]; then bash -c "$execline" > "$logfile" & fi break @@ -294,7 +349,7 @@ step_execute() { done } step_wait() { - [ "$dryrun" == "1" ] && exit 0 + [ "$dryrun" = "1" ] && exit 0 log "Waiting for programs to exit" wait exit 0 @@ -305,7 +360,7 @@ main() { while getopts ":dgh" opt; do case $opt in d) - if ! [ "$dryrun" == "1" ]; then + if ! [ "$dryrun" = "1" ]; then log "Performing a dry run" dryrun=1 fi