The previous commit disabled sxmo_idle.sh and the idle_locker in the
unlock/lock hooks, leaving the display backlight pinned at maximum
brightness forever (Xorg runs with -s 0 -dpms and /sys/power/state is
empty, so the panel never blanks). On a phone with no suspend this is by
far the dominant battery drain.
Restore sxmo_idle.sh and start idle_locker from the unlock and lock hooks
so the screen blanks after SXMO_UNLOCK_IDLE_TIME (default 30s) / once
locked after SXMO_LOCK_IDLE_TIME (default 8s). Locking itself stays
explicit-only, matching the documented design; only the display blanks.
Verified live on the device: after the idle timeout the state transitions
to screenoff and /sys/class/backlight/backlight/brightness drops to 0.
SXMO_OS is always bananarchy (an Alpine derivative) on this device, so
the SXMO_OS case, the change_systemd branch, and the nixos branch were
dead code. Drop them and always run the Alpine flow
(doas setup-timezone -z), which is what bananarchy uses.
Text-input dialogs (Wi-Fi SSID/Passphrase, search queries, config
prompts, etc.) invoke dmenu with -p but never -t, so the XIM/fcitx
routing that was gated solely by use_text_input was never enabled and
fcitx never activated on dmenu input; on the numeric keypad only raw
digits could be entered, making the dialogs non-functional.
Decouple the fcitx/IME routing from the -t flag via a new engage_ime
flag (default on) while keeping use_text_input for its output/selection
semantics, and skip routing Enter to fcitx when a menu list is present
so menu selection is never stolen by the T9 commit. XFilterEvent already
returns False when fcitx is toggled off via the mode switcher, so the
dialogs now respect the Fcitx mode switcher automatically.