Arch Linux distribution built with archiso. Targets low-RAM systems (1.9GB) with Intel Atom processors, featuring OpenCode AI assistant, Sway/Hyprland desktop environments, and a GTK graphical installer.
- Low RAM optimized: Runs on systems with as little as 1.9GB RAM
- Dual Compositors: Sway (software rendering) and Hyprland (modern GPU)
- AI Assistant: OpenCode integrated out-of-the-box
- Persistence: Dynamic USB persistence with ext4 partition
- Multi-GPU Support: Intel, AMD, and NVIDIA drivers included
- GTK Installer: External installer (
/usr/local/bin/mados-installer) for disk installation
# Build the ISO (requires Arch Linux with archiso)
sudo pacman -S archiso
sudo mkarchiso -v -w work/ -o out/ .Build requirements:
- ~10GB free disk space
- Build artifacts:
work/(safe to delete after) - Final ISO:
out/ - Build time: ~10-20 minutes
- Minimum: Intel Atom, 1.9GB RAM
- Recommended: Intel/AMD integrated graphics, 4GB+ RAM
packages.x86_64is the default low-RAM profile used for ISO buildspackages.optional-heavy.x86_64contains optional desktop-heavy extras- To install extras on an installed system:
sudo pacman -S --needed - < packages.optional-heavy.x86_64 - Base profile includes Steam + LibreOffice for Word/Excel/PowerPoint support
- ONLYOFFICE is available as
onlyoffice-binfrom AUR (not in official Arch repos used by archiso)
.
├── airootfs/ # Root filesystem for the ISO
│ ├── etc/ # System configuration
│ │ ├── skel/ # User skeleton files (.config for Sway/Hyprland)
│ │ └── systemd/ # Systemd units
│ └── usr/local/bin/ # Custom scripts
│ └── mados-* # madOS utilities
├── tests/ # Unit and integration tests
├── .github/ # CI/CD workflows and agents
├── profiledef.sh # ISO metadata and file permissions
├── packages.x86_64 # Package list
└── pacman.conf # Pacman configuration
# Main workflow
./build-iso.sh
./run-qemu.sh
# Optional: share built ISO
./serve-iso.sh
# Optional: advanced debugging helpers
./scripts/debug/run-serial.sh
./scripts/debug/run-debug.sh
./scripts/debug/run-no-kvm.sh
./scripts/debug/run-monitor.sh# Run all unit tests
python3 -m pytest tests/ -v
# Run a single test file
python3 -m pytest tests/test_boot_scripts.py -v# Install tools
pip install ruff
pacman -S shellcheck
# Run linters
ruff check .
ruff format .
shellcheck airootfs/usr/local/bin/*.shpip install pre-commit
pre-commit installThe shell theme is installed from theme-imperative-dots during ISO build.
Layout contract used by madOS:
-
Theme startup entrypoint:
/usr/share/mados/themes/imperative-dots/scripts/start/start.sh -
Hypr helper scripts source:
/usr/share/mados/themes/imperative-dots/config/hypr/scripts/ -
Quickshell widgets source:
/usr/share/mados/themes/imperative-dots/scripts/quickshell/ -
Main UI and behavior:
/usr/share/mados/themes/imperative-dots/scripts/quickshell/widgets/launcher/LauncherPopup.qml -
App discovery and metadata:
/usr/share/mados/themes/imperative-dots/scripts/quickshell/widgets/launcher/list_apps.py -
Launcher tuning (ranking/UI):
/usr/share/mados/themes/imperative-dots/scripts/quickshell/widgets/launcher/config.json -
Default hidden apps rules:
/usr/share/mados/themes/imperative-dots/scripts/quickshell/widgets/launcher/hidden-apps.json
- Stage 1: Unit tests + integration tests (parallel)
- Stage 2: Installer validation in Arch container
- Stage 3: ISO build with mkarchiso
- Stage 4: Upload to Internet Archive
- Stage 5: GitHub Release + website update
- CONTRIBUTING.md - Contribution guidelines
- AGENTS.md - Agentic coding guidelines
- docs/HARDWARE_QUIRKS.md - Hardware compatibility quirks and disable switches
airootfs/usr/share/doc/madOS/- In-system documentation
This project is licensed under AGPL-3.0-only (GNU Affero General Public License v3.0 only).
See LICENSE for the full text.
madOS is licensed under AGPL-3.0-only; the ISO image may include third-party software subject to different licenses.
Third-party packages included in the ISO may use different licenses. See THIRD_PARTY_LICENSES.md.