Status: ✅ Fully Reorganized & Cross-Platform Compatible
# Clone the repository
git clone https://github.com/IstratieStefan/ARC.git
cd ARC
# Setup virtual environment
python3 -m venv venv
source venv/bin/activate
# Install dependencies
pip install -r requirements.txt
# Run the launcher
python launcher.pyThe ARC codebase has been completely reorganized into a professional, maintainable structure:
❌ Old Structure ✅ New Structure
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
25+ root directories Clean package structure
Scattered config files arc/
Duplicate assets ├── core/ (config, UI)
Inconsistent naming ├── desktop/ (launcher, menus)
No package structure ├── apps/ (17 apps)
└── assets/ (icons, fonts)
✅ Professional Structure - Proper Python package
✅ Cross-Platform - Works on macOS & Linux
✅ Centralized Assets - All icons & fonts in one place
✅ Clean Imports - from arc.core import config
✅ Well Documented - Complete setup & structure docs
✅ 100% Functional - All features working
| Feature | macOS | Linux |
|---|---|---|
| Display | Windowed (dev) | Fullscreen |
| Volume | osascript ✅ | amixer ✅ |
| WiFi | airport ✅ | nmcli ✅ |
| Bluetooth | system_profiler ✅ | bluetoothctl ✅ |
ARC/
├── arc/ # Main Python package
│ ├── core/ # Core utilities (config, UI elements)
│ ├── desktop/ # Desktop environment & launcher
│ ├── apps/ # All applications (17 apps)
│ └── assets/ # Icons, fonts, images
├── config/ # Configuration files
│ └── arc.yaml # Main config (cross-platform paths)
├── docs/ # Documentation
├── launcher.py # Entry point
└── requirements.txt # Dependencies
17 built-in applications:
- 🔧 Tools: WiFi, Bluetooth, IR, NFC, RF, BadUSB
- 📱 Apps: Calendar, Notes, Music Player, Games
- 🔌 Connect: ARC Connect (web interface)
- ⚙️ System: Settings, Terminal, Files
- 📘 SETUP.md - Installation & setup guide
- 📗 STRUCTURE.md - Architecture details
- 📙 REORGANIZATION_SUMMARY.md - What changed
Edit config/arc.yaml to customize:
- Colors & theme
- Screen size
- Built-in apps
- Icon paths
- Keyboard layout
# 1. Create app directory
mkdir -p arc/apps/myapp
touch arc/apps/myapp/__init__.py
touch arc/apps/myapp/main.py
# 2. Add icon
cp myicon.png arc/assets/icons/myapp.png
# 3. Register in config/arc.yaml
# builtin_apps:
# - name: My App
# icon: arc/assets/icons/myapp.png
# exec: "python -m arc.apps.myapp.main"from arc.core import config, Button, AppIcon
from arc.desktop import TopBar, WifiMenu, show_loading_screen
from arc.apps.myapp import mainDesigned for:
- Orange Pi Zero 2W
- Raspberry Pi 3/4
- Any Linux SBC with Python 3.7+
Supports:
- 3.5" SPI displays
- I²C keyboards
- WiFi/Bluetooth
- GPIO, UART, I²C, SPI modules
Contributions welcome! The new structure makes it easy to:
- Find and fix bugs
- Add new applications
- Improve documentation
- Add platform support
See LICENSE file.
Designed in California 🇺🇸 • Built in Romania 🇷🇴