Skip to content

arinadi/arinanoX

ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

171 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ“ฑ arinanoX

Your phone is a Linux workstation โ€” in 30 seconds.

curl -sL https://raw.githubusercontent.com/arinadi/arinanoX/main/bootstrap.sh | bash
arinanoX desktop

Debian 13 ย ยทย  XFCE ย ยทย  Firefox ESR ย ยทย  Dev tools ย ยทย  Touch-optimized
TermuXย โ†’ย X11ย โ†’ย LinuXย โ†’ย Trixieย โ†’ย XFCE


โšก Why

Your Android phone is a pocket PC with 8GB+ RAM and an ARM64 CPU โ€” it deserves a real desktop.

arinanoX
๐Ÿ—๏ธ Declarative. A single Dockerfile defines the entire system. Like NixOS, but on Debian.
โšก Prebuilt. 580MB image from CI. Extract and run โ€” 30 seconds. No 30-minute apt wait.
๐Ÿ”„ Atomic. Updates to a fresh image. Old one kept as arinanox-prev. Instant rollback.
๐ŸŽฏ Proot-aware. Compositing off, power daemon removed, all systemd warnings suppressed.
๐ŸŽจ Orchis Material Design + elementary-hidpi icons. Dark, touch-friendly, baked in.
๐Ÿ“ฑ Termux:API. Battery, clipboard, voice, camera, notifications โ€” from inside proot.

Requirements

  • Android ARM64 + Termux (F-Droid, NOT Play Store)
  • Termux:X11 โ€” display server
  • Termux:API (optional โ€” battery, clipboard, voice)
  • Termux:Widget (recommended โ€” home screen launchers)

๐Ÿ—๏ธ How It Works

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  USER LAYER (mutable)               โ”‚  โ† Your packages, configs, data
โ”‚  VS Code, Chromium, Ollama, etc.    โ”‚     Preserved across updates
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚  CORE LAYER (declarative & reproducible) โ”‚  โ† Built from Dockerfile in CI
โ”‚  Debian 13 + XFCE + Firefox + dev   โ”‚     ghcr.io/arinadi/arinanox
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Declarative Image (NixOS-inspired)

The image is built from a single Dockerfile โ€” your system as code.

  • ๐Ÿ“ฆ All packages, configs, and themes defined declaratively in one file
  • โš™๏ธ XFCE optimized for proot: compositing off, DPI/scale, touch-friendly
  • ๐ŸŽจ Orchis Material Design + elementary-hidpi icons โ€” baked in
  • ๐ŸŽฏ Proot-aware: systemd warnings suppressed, power daemon removed, dbus locked down
  • โšก CI-built and deployed to GHCR on every push

Silverblue-style atomic upgrades: bash ~/update.sh renames the old deployment to arinanox-prev before deploying the new image. Instant rollback: bash ~/.arinanox/scripts/proot-rollback.sh.

Concept NixOS arinanoX
System definition configuration.nix image/Dockerfile
Packages declarative list RUN apt-get install
Config files environment.etc COPY configs/ โ†’ /home/admin
Reproducible yes (closures) yes (CI + GHCR)
Atomic upgrades generations rename + rollback script
Rollback nixos-rebuild switch --rollback proot-rollback.sh
User overlays home-manager patch.sh (layers tracked)

Base: Debian 13 (Trixie). Firefox ESR from native repos โ€” zero external APT sources.

Update: bash ~/update.sh pulls latest GHCR image, re-deploys as new atomic generation.

Prebuilt vs DIY

arinanoX (prebuilt) DIY (manual install)
Download ~580 MB (1 image) ~450 MB (base distro) + packages
Install time ~30s (extract + setup) 20-30 min (apt + config + theme)
XFCE desktop configured, ready must install + configure
Orchis theme baked-in manual install + set
Touch-friendly scrollbars, single-click, scale 2x manual GTK config
Proot fixes compositing off, warnings suppressed, power removed trial-and-error
TAPI utilities included must copy + configure
Rollback atomic (rename) manual backup/restore
Updates 2-update-arinanox.sh (30s) re-do everything

Why prebuilt? The Dockerfile does 30 minutes of apt installs, config tweaks, and proot optimizations so you skip straight to a working desktop.


๐Ÿ“ฆ Built-In + Extras

In the image (ready to use)

Category Tools
๐ŸŒ Browser Firefox ESR
๐Ÿ–ฅ๏ธ Desktop XFCE4 + Whisker Menu + PulseAudio tray
๐Ÿ–ฑ๏ธ Touch Single-click Thunar, large scrollbars, clipboard auto-sync
๐Ÿ“ Apps Mousepad (editor), Ristretto (images)
๐Ÿ”ง Dev Git, Node.js 22 LTS, Python 3 (pip/venv/dev), GCC, Make, CMake
๐Ÿ“Š Sys htop, tmux, OpenSSH
๐ŸŽจ Theme Orchis-Dark (Material Design) + elementary-hidpi icons

Install more with patch

bash ~/.arinanox/scripts/patch.sh                    # Interactive
bash ~/.arinanox/scripts/patch.sh --chromium --code --zsh
bash ~/.arinanox/scripts/patch.sh --list
Category Packages
๐ŸŒ Browser Chromium
๐Ÿ’ป IDE VS Code (code-server), Geany, Neovim
๐Ÿค– AI Ollama (local LLM)
๐Ÿ–ฅ๏ธ System Zsh + Oh My Zsh, Nala
๐Ÿ”ง CLI ripgrep, GitHub CLI
๐ŸŽจ GUI Viewnior, Xarchiver, Galculator

๐Ÿš€ Start / Stop

bash ~/start.sh    # PulseAudio โ†’ X11 โ†’ virgl(?) โ†’ XFCE (one command)
bash ~/stop.sh     # Stop everything

๐ŸŽฎ GPU Acceleration (virglrenderer)

arinanoX auto-detects virglrenderer-android. Install once:

pkg install virglrenderer-android
# โ†’ restart ~/start.sh  (now with GPU)
Mode Env Performance
GPU (virgl) GALLIUM_DRIVER=virpipe 4K video, 3D games
CPU (fallback) LIBGL_ALWAYS_SOFTWARE=1 Desktop only

๐Ÿ“ฑ Termux:Widget (1-tap launchers)

Shortcut Action
๐ŸŸข 1-start-arinanox.sh Full startup
๐Ÿ”ด 0-stop-arinanox.sh Full stop

๐Ÿ”„ Update (โš ๏ธ fresh install โ€” resets user config!)

# Back up configs first, then:
curl -sL https://raw.githubusercontent.com/arinadi/arinanoX/main/bootstrap.sh | bash

๐Ÿ“‹ Commands

Desktop

Command Action
bash ~/start.sh Start desktop (auto GPU)
bash ~/stop.sh Stop everything

Termux:API (inside proot terminal)

Command Action
battery Battery % and health
clipget / clipset Android clipboard
vol-up / vol-down Media volume
bright 50 Brightness 0-100
toast "msg" Toast popup
notify "T" "B" Notification
buzz Short vibration
speak "hello" Text-to-speech
listen Speech-to-text
openurl / share Open / share in Android
whereami / wifi GPS / WiFi
photo / flash Camera / flashlight

Panel Widgets (Whisker Menu โ†’ Panel โ†’ Add โ†’ Generic Monitor)

bash ~/.arinanox/tools/genmon-battery.sh   # ๐Ÿ”‹
bash ~/.arinanox/tools/genmon-volume.sh    # ๐Ÿ”Š

๐Ÿ’ก Why arinanoX?

Problem arinanoX Solution
Chrome sleeps tabs Firefox ESR desktop browser โ€” stays alive
No glibc apps Debian 13 proot โ€” standard glibc
No dev tools Node.js 22, Python 3, GCC, CMake built-in
Background killed Termux:WakeLock keeps sessions alive
No clipboard bridge Auto-sync Android โ†” proot

โš ๏ธ Limitations

Limitation Workaround
No root proot provides root-like environment
No systemd Start services manually; power-manager removed
No GPU acceleration Mesa software rendering; xfwm4 compositing off
ARM64 only QEMU user-mode for cross-arch
No native X11 Termux:X11 app
Storage restrictions termux-setup-storage

All warnings (systemd proxy, system bus, DPMS, GL renderer) are suppressed at the declarative layer โ€” arinanoX runs clean out of the box.

Cannot do: Docker containers, GPU hardware access, systemd services, x86 natively.


๐Ÿ›‘ Android 12+ Phantom Process Killer

  • Android 14+: Developer Options โ†’ Disable child process restrictions
  • Android 12-13: adb shell settings put global settings_enable_monitor_phantom_procs false

๐Ÿ“‚ Structure

arinanoX/
โ”œโ”€โ”€ bootstrap.sh          โ† one-command entry point
โ”œโ”€โ”€ image/                โ† ๐ŸŽฏ System definition (Dockerfile)
โ”‚   โ”œโ”€โ”€ Dockerfile        โ†    declarative: packages, configs, themes
โ”‚   โ””โ”€โ”€ configs/          โ†    XFCE, bash, GTK, autostart
โ”œโ”€โ”€ scripts/              โ† setup, patch, theme, rollback
โ”œโ”€โ”€ launchers/            โ† start/kill/update shortcuts
โ”œโ”€โ”€ docs/                 โ† documentation
โ””โ”€โ”€ .github/workflows/    โ† CI โ†’ GHCR image on push

๐Ÿ“œ License

๐Ÿ–ฑ๏ธ Right-Click on Touchscreen

Trackpad mode is recommended. For right-click without switching modes:

  1. Ctrl+Alt+R triggers right-click at pointer (via xdotool)
  2. Add a button to Termux Extra Keys:

~/.termux/termux.properties:

extra-keys = [ \
 ['ESC','/',{key: '-', popup: '|'},'HOME','UP','END','PGUP',{macro: "CTRL ALT r", display: "๐Ÿ–ฑ๏ธR"}], \
 ['TAB','CTRL','ALT','LEFT','DOWN','RIGHT','PGDN','KEYBOARD'] \
]

Run termux-reload-settings after saving.

GPLv3

About

๐Ÿ“ฑ Debian 13 desktop on Android. Termux + proot + XFCE. Declarative, atomic, touch-optimized.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Shell 96.5%
  • Dockerfile 2.2%
  • CSS 1.3%