Ambitious desktop environment (ricing) based on Quickshell (QML/Qt6) for CachyOS + Hyprland. "Nexus" aesthetic: honey yellow 🍯 on deep black, organic animations, glassmorphism, and "BeeAura" glow.
git clone https://github.com/marcchabot/beehive_os.git && cd beehive_os && ./scripts/install_beehive_os.shThe installer will:
- Ask which AUR helper to use (
yayorparu) - Install all system dependencies via pacman
- Install Python dependencies via AUR (
python-requests,python-pillow,python-dbus,python-gobject) - Optionally install Whisper for voice assistant
- Optionally install SwayOSD
- Copy files to
~/beehive_osand initialize config - Inject Hyprland, Kitty, and Fish integrations
- Optionally install the Bee-Hive SDDM login theme
| Package | Purpose |
|---|---|
quickshell |
Runtime engine (Qt6/QML shell) |
kitty |
Terminal emulator (themed) |
fish |
Shell (themed prompt) |
fastfetch |
System info for MOTD |
papirus-icon-theme |
Icon theme for BeeSearch |
swww |
Wallpaper daemon |
git |
Updates & versioning |
python |
Scripts (sync, theme, notifications) |
cava |
Audio visualizer (BeeVibe) |
brightnessctl |
Screen brightness (BeeOSD) |
wireplumber + pipewire |
Audio (volume OSD) |
wpctl |
Volume control (BeeOSD) |
| Package | Purpose |
|---|---|
python-requests |
Calendar sync (Bee-Live Sync) |
python-caldav |
CalDAV sync (BeeCalendar) |
python-icalendar |
iCalendar parsing (BeeCalendar) |
python-pillow |
Wallpaper analysis (Nectar Sync) |
python-dbus |
Notifications (BeeNotify) |
python-gobject |
Notifications (BeeNotify) |
| Package | Purpose |
|---|---|
openai-whisper |
Voice assistant (BeeAssistant) — ~1.5 GB |
swayosd-git |
Alternative OSD (BeeOSD is built-in) |
sddm |
Login screen theme (Bee-Hive SDDM) |
beehive_os/
├── shell.qml # Compatibility entrypoint (loads core/BeeHiveShell.qml)
├── core/
│ └── BeeHiveShell.qml # Main ShellRoot composition
├── modules/
│ ├── BeeModuleRegistry.qml # Stable registration API for BeeBar/MayaDash modules
│ └── ...
├── themes/
│ └── theme.json # Visual identity centralization
├── docs/
│ ├── ROADMAP.md
│ ├── REFERENCES.md
│ └── MODULE_API.md
├── scripts/
│ └── bee_theme_auto.py
├── assets/ # 4K wallpapers and graphical assets
└── user_config.json # Persistent user configuration
- BeeBar / MayaDash module registration spec:
docs/MODULE_API.md - Contributor workflow and CachyOS install path:
CONTRIBUTING.md
modules/
├── BeeBar.qml # Status bar (CPU, RAM, NET, DISK) + Stealth Mode
├── BeeBarState.qml # Inter-window communication singleton
├── BeeApps.qml # Application manager (Scan & Favorites)
├── BeeConfig.qml # Config singleton (weather, dashboard, theme, persistence)
├── BeeNotify.qml # "In-Shell" notification system
├── BeeWallpaper.qml # Dynamic wallpaper manager
├── BeeWeather.qml # Universal weather (Open-Meteo, no API key)
├── BeeEvents.qml # Events connector (Calendar/Work)
├── BeeCorners.qml # Organic screen corner rendering
├── BeeSettings.qml # Configuration panel (GUI)
├── BeeStudio.qml # Visual cell editor (Full persistence)
├── BeeSearch.qml # Application launcher (Fuzzy search + Pins)
├── BeeVibe.qml # Discreet audio visualizer (Cava integration)
├── BeePower.qml # Power management (Shutdown, Reboot, Lock, Exit)
├── MayaDash.qml # Hexagonal dashboard (Honeycomb)
├── BeeNotes.qml # Quick Notes (PanelWindow + text persistence)
└── Clock.qml # Analog + digital clock widget
- No API Key: Uses Open-Meteo for accurate weather data
- Centralized Coordinates:
BeeConfig.weatherLat/Lon - Persistence: City, unit, and language saved in
user_config.json - Synchronized: No more divergence between the widget and the BeeBar
- 100% Native: Notification system and OSD (Volume/Brightness) integrated without external dependencies.
- Zero Mouse Capture: Uses the official
mask: Region {}property for full click-through on transparent areas. - BeeNotify: Full support for system notifications via
beenotifier.py. - BeeOSD: Elegant visual feedback for hardware (Razer Keyboard/Mouse).
- BeeAura Interface: Dedicated menu accessible via ⚡ in the BeeBar
- System Actions: Shutdown, Reboot, Logout, Lock
- System Scan: Parses
.desktopfiles via Python - Favorites 📌: Up to 4 pinned apps, persistent in
user_config.json
- Equalizer Bars integrated at the bottom of each MayaDash cell
- Cava Engine: Captures system audio via Pipewire/Pulse
- Live Editing: Icons, titles, and cell actions with immediate preview
- Persistence directly in
user_config.json
- Auto-Hide: BeeBar fades out after 3 seconds of inactivity
- Sentinel: Invisible window at the top detects mouse hover
- 3D tilting of the MayaDash based on mouse position
- CPU, RAM, NET, DISK in real-time
- Progress bars with animations and adaptive glow
- PanelWindow: Dedicated focusable panel (WlrLayer.Top) with semi-transparent overlay
- Persistence: Notes saved to
data/notes.txt(timestamp|color|text format) - Interactive: Add, edit, delete notes with color-coded cards
- Close Button: ✕ button + click-outside-to-close
- i18n: Full English/French localization via BeeConfig.tr
- Centralizes calendar events and professional alerts
Bee-Hive OS includes two local scripts to fetch your Calendar events and display them in the MayaDash.
Works with Google, Outlook, iCloud, Fastmail, and any calendar that supports secret .ics links. No auth required!
- Open
user_config.jsonand add your secret iCal link:"events_ics_url": "https://calendar.google.com/calendar/ical/your-secret-link/basic.ics", "events_enabled": true
- Sync your nectar:
python3 scripts/honey_sync_ics.py
If you prefer a direct authenticated API connection without sharing .ics links.
-
Install
gogCLI:# Arch Linux / CachyOS yay -S gogcli # Or via Go go install github.com/steipete/gogcli/cmd/gog@latest
-
Setup OAuth Credentials: To connect to Google,
gogrequires a Desktop App OAuth Client ID.- Go to Google Cloud Console > Credentials > Create "Desktop app" OAuth Client.
- Download the JSON file.
- Provide it to
gog:gog auth credentials path/to/downloaded/client_secret.json
-
Authorize
gogwith your Google account:gog auth login
-
Sync your nectar:
python3 scripts/honey_sync.py
(Optional) Add a cron job or systemd timer to run either script every hour!
Bee-Hive OS now supports CalDAV for bi-directional calendar synchronization, alongside Google Calendar and ICS.
- Nextcloud (well-known URL auto-discovery)
- Google Calendar (via CalDAV, requires app password)
- Radicale (self-hosted)
- Baikal (self-hosted)
- Open
BeeControl→ System tab → Calendars section - Enable CalDAV Sync toggle
- Enter your server URL (e.g.
https://cloud.example.com/remote.php/dav/) - Enter username and password (or app password for Google)
- Optionally specify a calendar name (leave empty to sync all calendars)
- Click ☁️ Sync Now to test the connection
{
"caldav": {
"enabled": true,
"url": "https://cloud.example.com/remote.php/dav/",
"username": "user",
"password": "app-password",
"calendar_name": "Personal",
"auto_sync": true,
"auto_sync_interval_min": 30,
"last_sync": ""
}
}# Run sync
python3 scripts/bee-caldav-sync.py --sync
# Force full sync (ignore sync tokens)
python3 scripts/bee-caldav-sync.py --sync --force-full
# Dry run (show what would be synced)
python3 scripts/bee-caldav-sync.py --sync --dry-run
# Push local events to CalDAV
python3 scripts/bee-caldav-sync.py --push
# Delete an event by UID
python3 scripts/bee-caldav-sync.py --delete-uid <UID>- ☁️ Cloud badge on CalDAV events (distinct blue color)
- 🔄 Sync button in calendar header
- ⏳ Real-time sync status indicator
- 🔄 Auto-sync with configurable interval
- 🔀 Bi-directional: push local events & pull remote events
- ⚡ Incremental sync via sync tokens
- 🔀 Conflict resolution (last modified wins)
pip install caldav icalendar
# or: pipx install caldav icalendar| Element | Value |
|---|---|
| Primary Gold | #FFB81C (Honey Gold) |
| Dark Background | rgba(0.05, 0.05, 0.07, 0.95) |
| Surface | rgba(255, 255, 255, 0.03) |
| Animations | Easing.InOutCubic / OutBack |
The installer adds these automatically. If you prefer manual setup, add this line to ~/.config/hypr/hyprland.conf:
source = ~/beehive_os/config/beehive_keybinds.confThis enables all core shortcuts:
| Keybind | Action |
|---|---|
Super + D |
🍯 Toggle Dashboard (MayaDash) |
Super + Z |
🔍 App Launcher (BeeSearch) |
Super + Escape |
⚙️ The Hive (Control Center) |
Super + P |
⏻ Power Menu |
Super + F12 |
🌙 Toggle HoneyDark / HoneyLight |
- Generator script:
scripts/bee_theme_auto.py - Overlay output:
user_config.auto.json - Runtime merge rule:
user_config.json(base) +user_config.auto.json(theme-only overlay)
python3 scripts/bee_theme_auto.py --wallpaper /absolute/path/to/wallpaper.png --output user_config.auto.jsonOr force mode while keeping wallpaper-derived palette:
python3 scripts/bee_theme_auto.py --wallpaper /absolute/path/to/wallpaper.png --mode HoneyLight- If
user_config.auto.jsonis missing: Bee-Hive starts with base config only. - If overlay JSON is invalid: Bee-Hive logs a warning and falls back to base config.
- Only theme-related keys are overlaid (
theme,auto_theme.palette); dashboard/apps/calendar preferences remain inuser_config.json. - In BeeStudio, selecting a wallpaper triggers auto-theme generation (deduplicated), and the action button can force re-apply.
- Ensure
python3is available in PATH. - Ensure wallpaper path is valid and readable.
- If generation fails, check Quickshell logs for
BeeThemeAuto:lines and retry with the BeeStudio action button.
For a complete installation on CachyOS + Hyprland:
# Clone the repository
git clone https://github.com/marcchabot/beehive_os.git
cd beehive_os
# Run the installation script
chmod +x scripts/install_beehive_os.sh
./scripts/install_beehive_os.shgit pull to avoid system breakage:
# 1. Backup and update
./scripts/update.sh
# 2. Run health check
./scripts/health-check.sh
# 3. If health check passes, restart
QML_XHR_ALLOW_FILE_READ=1 quickshell -p ~/beehive_os| Script | Purpose | When to use |
|---|---|---|
install_beehive_os.sh |
Complete first-time installation | New installation |
update.sh |
Safe post-update maintenance | After every git pull |
health-check.sh |
System diagnostic | When things don't work |
post-update.sh |
Automatic migrations | Internal use by update.sh |
update_icons.py |
Desktop icon automation | Manual icon updates |
Run a comprehensive system diagnostic:
./scripts/health-check.shThis will check:
- ✅ System dependencies
- ✅ File structure
- ✅ Permissions
- ✅ Configuration validity
- ✅ Runtime functionality
If Bee-Hive OS breaks after an update:
# 1. Check system health
./scripts/health-check.sh
# 2. Review warnings/failures
# 3. Restore from backup (created by update.sh)
cp ~/.beehive_backup/latest/user_config.json .
# 4. Re-run update
./scripts/update.shThis project is licensed under the MIT license. See the LICENSE file for details.
To update without losing your personal settings (cells, weather, pinned apps):
git pullpython3 scripts/bee_config_merge.py- Restart the hive:
qs ipc call root restart(or restart Quickshell)
- BeeBar — CPU/RAM/NET/DISK + Stealth Mode
- BeeNotify — Stylized notifications
- BeeCorners — Fake Rounding engine
- BeeWallpaper — Fluid transitions + 4K Assets
- BeeSettings — Configuration interface
- BeeWeather — Universal weather without API key (v0.6.1)
- BeeEvents — Calendar connectors (v0.7.0)
- BeeMotion — 3D Parallax (v0.8.0)
- BeeStudio — Full visual editor (v0.8.4)
- BeeSearch — System scan + Favorites 📌 (v0.8.4)
- BeeVibe — Cava audio visualizer (v0.8.4)
- Stealth Mode — Auto-hide with sentinel (v0.8.3)
- BeePower — Power management ⚡ (v0.8.5)
- BeeAura Notifications & OSD — 100% native Quickshell system (v1.0.0)
- Nectar Sync 🍯 — Automatic theme adaptation to wallpaper (v1.3.0)
- Multilingual Support (i18n) — Full French/English localization (v2.0.0)
- BeeNotes — Quick Notes — PanelWindow + Persistence + i18n (v2.1) 📝
- Bee-Hive sound effects (discreet and elegant)
- "Focus" Mode vs "Dashboard" Mode
- Performance optimization (Quickshell profiling)
- Persistent notifications widget (v2.1) 🐝📜
Developed with love by Maya 🐝✨ & Marc.
"The hive never sleeps, it optimizes." 🍯🚀







