Skip to content

Major Overhaul: Session Management, Termux:Widget Support, and Firefox ESR#2

Open
arinadi wants to merge 47 commits into
orailnoor:mainfrom
arinadi:main
Open

Major Overhaul: Session Management, Termux:Widget Support, and Firefox ESR#2
arinadi wants to merge 47 commits into
orailnoor:mainfrom
arinadi:main

Conversation

@arinadi

@arinadi arinadi commented Apr 29, 2026

Copy link
Copy Markdown

This PR introduces several major improvements to make DroidDesk a true 1-click 'daily-driver' setup:

Features & Fixes

  • Robust Session Management: Split scripts into start-x11.sh, start-xfce.sh, kill-x11.sh, and kill-proot.sh. Destructive process killing is no longer done on startup, preventing X server conflicts.
  • Session Corruption Fix: The kill-proot.sh script securely cleans ~/.cache/sessions/ inside the rootfs. This permanently fixes the 'missing cursor' and 'Window Manager failed to start' bugs on subsequent launches.
  • Termux:Widget Support: Launchers are now automatically generated in ~/.shortcuts/ (and symlinked to ~/), allowing 1-tap start/stop from the Android homescreen.
  • Auto-Updater: Added a 5th helper script (update-droiddesk.sh) to safely pull future updates without wiping user data.
  • Termux:X11 Auto-Switch: Added an am start intent to automatically switch the user's screen to the Termux:X11 app once the server is ready.
  • Package Stability: Added missing dependencies (libgl1, mesa-utils, xfdesktop4) to ensure the desktop environment does not crash on ARM displays.
  • Firefox ESR: Replaced native Termux browsing struggles by installing firefox-esr natively inside the proot environment.
  • Termux Welcome Screen (MOTD): Replaced the default Termux startup text with a clean DroidDesk launcher menu.

Documentation

  • Completely rewrote README.md with GitHub-flavored markdown (emojis, alerts, center alignment).
  • Added a 'Why Ubuntu Proot?' section detailing the technical advantages of glibc binaries and default app handling compared to Debian or Fedora.
  • Added a 'Cleanup Tips' guide for the nuclear reset option.

arinadi and others added 18 commits April 28, 2026 23:04
…ariable handling and improved user instructions
- Fix variable expansion: single-quoted $USER/$PASS never expanded, broke chpasswd/sudoers
- Add dialog package before xfce4 to prevent tzdata/keyboard-configuration freeze
- Replace apt with apt-get for non-interactive scripting
- Add --no-install-recommends to avoid pulling unnecessary proot packages
- Fix launcher heredoc escaping (start-xfce.sh $BINDS was literal)
- Add set -euo pipefail + error trap on proot login block
- Standardize PulseAudio socket path via $TERMUX_TMP
- Generate scripts in ~/.shortcuts/ for Termux:Widget support
- Add kill-proot.sh and kill-x11.sh to cleanly manage processes
- Fix XFCE session corruption on restart by clearing ~/.cache/sessions/
- Fix missing window manager and desktop dependencies (libgl1, xfdesktop4)
- Add firefox-esr for stable browsing
- Auto-launch Termux:X11 app via am start intent
- Complete README overhaul with emojis, alerts, and "Why Proot?" section
- Document 'Nuclear Option' to clear Termux data completely
- Explain how to safely update scripts via curl without deleting personal files
- Generate update-droiddesk.sh in ~/.shortcuts for easy 1-tap updates
- Update README to reflect 5th launcher script
@arinadi arinadi force-pushed the main branch 3 times, most recently from fa9657d to 9e85400 Compare April 30, 2026 07:19
arinadi added 6 commits May 1, 2026 08:22
- kill-x11: fix hardcoded /tmp path to use $TERMUX_TMP
- kill-x11: graceful pkill before SIGKILL, per-process feedback
- kill-proot: add xfdesktop4 to process list
- kill-proot: specific proot pattern (distro-scoped, not 'proot --')
- kill-proot: specific dbus pattern (session only, not system)
- kill-proot: graceful kill → sleep → force-kill fallback
- kill-proot: clean XDG_RUNTIME_DIR temp
- add kill-all.sh unified convenience script
- update MOTD and help text
- patch-ubuntudx.sh: non-interactive DX installer
  (geany, git, gh, Node.js 24, python3-pip/venv, jq, htop, tree,
   ripgrep, nala, curl, wget, zip/unzip)
- patch-tui.sh: interactive dialog TUI with checkbox package picker
  (23 packages across dev tools, editors, browsers, utilities)
- proot-xfce-setup.sh: remove firefox-esr from base install
  (now optional via patch-tui.sh to reduce setup time)
- Delete patch-ubuntudx.sh (consolidated into TUI)
- Add category separators in dialog checklist
- Add packages: nano, papirus-icon-theme, arc-theme
- Improved install summary with box-drawing UI
- Filter separator items from selection parsing
- Better trap cleanup for temp files
Added:
- sqlitebrowser (Database)
- meld (Visual Diff)
- lxtask (Task Manager)
- viewnior (Image Viewer)
- xarchiver (Archive Manager)
- galculator (Calculator)
- netsurf-gtk (Ultra-light Browser)
Added:
- Gemini CLI (gemini-chat via npm)
- Qwen CLI (qwen-chat via npm)
- Context-Mode (via npm)
- AIChat (Multi-provider binary)
- Shell GPT (sgpt via pip)
- Ollama (Local LLM runner)
arinadi added 21 commits May 1, 2026 18:42
- Use --shared-tmp and dbus-launch for better session management
- Add aggressive cleanup of .ICEauthority and session cache in kill-proot script
- Fixed PATH pollution from Termux into PRoot environment.
- Added NVM initialization to generated .bashrc.
- Fixed premature shell expansion of XDG_RUNTIME_DIR in start-xfce.sh.
- Improved reliability of XFCE session startup.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants