#!/bin/sh export HOME="${HOME:-/home/user}" export XDG_RUNTIME_DIR="${XDG_RUNTIME_DIR:-/run/user/10000}" export XDG_DATA_HOME="${XDG_DATA_HOME:-$HOME/.local/share}" export XDG_CACHE_HOME="${XDG_CACHE_HOME:-$HOME/.cache}" export XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}" export XDG_STATE_HOME="${XDG_STATE_HOME:-$HOME/.local/state}" export XDG_DATA_DIRS="${XDG_DATA_DIRS:-/usr/local/share:/usr/share}" export SXMO_CACHEDIR="${SXMO_CACHEDIR:-$XDG_CACHE_HOME/sxmo}" export SXMO_BLOCKDIR="${SXMO_BLOCKDIR:-$XDG_DATA_HOME/sxmo/block}" export SXMO_BLOCKFILE="${SXMO_BLOCKFILE:-$XDG_CONFIG_HOME/sxmo/block.tsv}" export SXMO_CONTACTFILE="${SXMO_CONTACTFILE:-$XDG_CONFIG_HOME/sxmo/contacts.tsv}" export SXMO_STATE="${SXMO_STATE:-$XDG_RUNTIME_DIR/sxmo.state}" export SXMO_LOGDIR="${SXMO_LOGDIR:-$XDG_DATA_HOME/sxmo/modem}" export SXMO_NOTIFDIR="${SXMO_NOTIFDIR:-$XDG_DATA_HOME/sxmo/notifications}" export DISPLAY=:0 export SXMO_WM=dwm export SXMO_MENU=dmenu export SXMO_TERMINAL=st export EDITOR=nano export VISUAL=nano export PAGER="less -RXF" export LESS="-RXF" export TERM=xterm-256color export CHARSET=UTF-8 export LANG=C.UTF-8 export LC_ALL=C.UTF-8 export LC_COLLATE=C.UTF-8 export SXMO_DISABLE_LEDS=1 export SXMO_NO_VIRTUAL_KEYBOARD=1 export NO_AT_BRIDGE=1 export GTK_A11Y=none export GTK_USE_PORTAL=0 export GTK_IM_MODULE=fcitx export QT_IM_MODULE=fcitx export XMODIFIERS=@im=fcitx if [ -d /home/user/.local/x11 ]; then export FCITX_ADDON_DIRS=/home/user/.local/lib/fcitx5:/home/user/.local/x11:/usr/lib/fcitx5 export LD_LIBRARY_PATH=/tmp/x11/usr/lib:/usr/lib:/lib export PATH=/home/user/.local/bin:/home/user/.config/sxmo/hooks:/tmp/x11/usr/bin:/usr/share/sxmo/default_hooks:/usr/local/bin:/usr/bin:/bin:/sbin:/usr/sbin rm -rf /tmp/x11 ln -s /home/user/.local/x11 /tmp/x11 cp -f /home/user/.local/x11/xorg-bananarchy.conf /tmp/xorg-bananarchy.conf 2>/dev/null || true XORG_CONFIG="/tmp/xorg-bananarchy.conf" else export FCITX_ADDON_DIRS=/home/user/.local/lib/fcitx5:/usr/lib/fcitx5 export PATH=/home/user/.local/bin:/home/user/.config/sxmo/hooks:/usr/share/sxmo/default_hooks:/usr/local/bin:/usr/bin:/bin:/sbin:/usr/sbin XORG_CONFIG="xorg.conf.d/10-bananarchy-msm8909.conf" fi unset WAYLAND_DISPLAY unset SWAYSOCK mkdir -p "$XDG_RUNTIME_DIR" "$XDG_CACHE_HOME/sxmo" touch "$XDG_CACHE_HOME/sxmo/sxmo.noidle" [ -n "${DBUS_SESSION_BUS_ADDRESS:-}" ] && printf "%s\n" "$DBUS_SESSION_BUS_ADDRESS" > "$XDG_RUNTIME_DIR/dbus.bus" printf "unlock\n" > "$XDG_RUNTIME_DIR/sxmo.state" printf "14" > /tmp/sxmo_saved_brightness printf "14" > /sys/class/backlight/backlight/brightness 2>/dev/null || true printf "255" > /sys/class/leds/white:kbd_backlight/brightness 2>/dev/null || true XORG_BIN="Xorg" [ -x /tmp/x11/usr/bin/Xorg ] && XORG_BIN="/tmp/x11/usr/bin/Xorg" XORG_MODPATH="/usr/lib/xorg/modules/xlibre-25,/usr/lib/xorg/modules" [ -d /tmp/x11/usr/lib/xorg/modules ] && XORG_MODPATH="/tmp/x11/usr/lib/xorg/modules/xlibre-25,/tmp/x11/usr/lib/xorg/modules" if ! pidof -s Xorg >/dev/null 2>&1; then "$XORG_BIN" :0 -s 0 -dpms -nocursor -nolisten tcp -config "$XORG_CONFIG" -modulepath "$XORG_MODPATH" -logfile /tmp/Xorg.0.log >/dev/null 2>&1 /dev/null 2>&1; then break fi sleep 0.05 i=$((i + 1)) done else xset s off s noblank s 0 0 -dpms >/dev/null 2>&1 || true fi SESSION_PID_FILE="/tmp/bananarchy-x11-session.pid" printf "%s\n" "$$" > "$SESSION_PID_FILE" for old_pid in $(pgrep -f "/usr/bin/bananarchy-x11-session.sh" 2>/dev/null || true); do if [ "$old_pid" != "$$" ] && [ "$old_pid" != "$PPID" ]; then kill -9 "$old_pid" >/dev/null 2>&1 || true fi done pkill -x dwm >/dev/null 2>&1 || true trap 'rm -f "$SESSION_PID_FILE"; pkill -P $$ >/dev/null 2>&1 || true; exit 0' INT TERM HUP QUIT pkill -9 -x conky >/dev/null 2>&1 || true rm -rf /tmp/sxmo_conky_time_state /tmp/sxmo_conky_restart.lock DISPLAY=:0 CONKY_DPY=:0 conky -c /home/user/.config/sxmo/conky.conf -d >/dev/null 2>&1 /dev/null 2>&1 || fcitx5 -d >/tmp/fcitx5.log 2>&1 /tmp/sxmo_hook_start.log 2>&1 /dev/null)" = "$$" ]; do if pidof -s dwm >/dev/null 2>&1; then exit 0 fi xrdb -merge "$HOME/.Xresources" >/dev/null 2>&1 || true WP_FILE="/usr/share/wallpapers/bananarchy.png" if [ -f "$XDG_CONFIG_HOME/sxmo/wallpaper" ]; then custom_wp="$(head -n 1 "$XDG_CONFIG_HOME/sxmo/wallpaper" 2>/dev/null)" [ -n "$custom_wp" ] && [ -f "$custom_wp" ] && WP_FILE="$custom_wp" fi WP_FLAG="--bg-fill" if [ -f "$XDG_CONFIG_HOME/sxmo/wallpaper_mode" ]; then wp_mode="$(head -n 1 "$XDG_CONFIG_HOME/sxmo/wallpaper_mode" 2>/dev/null)" case "$wp_mode" in scale|--bg-scale) WP_FLAG="--bg-scale" ;; max|--bg-max) WP_FLAG="--bg-max" ;; center|--bg-center) WP_FLAG="--bg-center" ;; tile|--bg-tile) WP_FLAG="--bg-tile" ;; *) WP_FLAG="--bg-fill" ;; esac fi feh --no-fehbg "$WP_FLAG" "$WP_FILE" >/dev/null 2>&1 /dev/null 2>&1 || true sleep 0.05 pkill -9 -x conky >/dev/null 2>&1 || true rm -rf /tmp/sxmo_conky_time_state /tmp/sxmo_conky_restart.lock DISPLAY=:0 CONKY_DPY=:0 conky -c /home/user/.config/sxmo/conky.conf -d >/dev/null 2>&1 /dev/null 2>&1 || fcitx5 -d >/tmp/fcitx5.log 2>&1 /tmp/dwm.log 2>&1 || true if [ "$(cat "$SESSION_PID_FILE" 2>/dev/null)" != "$$" ] || pidof -s dwm >/dev/null 2>&1; then exit 0 fi sleep 0.2 done