-
-
Notifications
You must be signed in to change notification settings - Fork 62
MODULES
snowarch edited this page Apr 25, 2026
·
1 revision
UI components organized by panel family. Modules handle rendering and interaction. They don't own global state, they read from services and config singletons.
Every visible panel is wrapped in a PanelLoader inside either ShellIiPanels.qml (Material ii) or ShellWafflePanels.qml (Waffle). A panel loads when:
-
Config.readyis true - Its identifier is in the
enabledPanelsconfig array - Its
extraCondition(if any) is satisfied
Users can disable any panel from Settings without touching config files.
| Module | Panel ID | Description |
|---|---|---|
bar/ |
iiBar |
Top bar. Workspaces, clock, system indicators, tray, weather. ~35 QML files. |
verticalBar/ |
iiVerticalBar |
Vertical bar variant for left/right edge placement. |
dock/ |
iiDock |
Application dock. Supports all 4 edges (top/bottom/left/right). |
background/ |
iiBackground |
Desktop wallpaper layer. Parallax, blur, desktop widget canvas. |
| Module | Panel ID | Description |
|---|---|---|
sidebarLeft/ |
iiSidebarLeft |
AI chat (Gemini/OpenAI/Ollama), YT Music player, Wallhaven browser, anime tracker, Reddit feed, translator, draggable widgets. ~48 QML files. |
sidebarRight/ |
iiSidebarRight |
Quick toggles, calendar with external sync, notification center, volume mixer, Bluetooth/WiFi management, pomodoro timer, todo, calculator, notepad, system monitor. ~72 QML files. |
| Module | Panel ID | Description |
|---|---|---|
overview/ |
iiOverview |
Workspace overview with app search, calculator, and global actions. |
ii/ |
iiOverlay |
Notification overlays and ii-specific UI elements. |
clipboard/ |
iiClipboard |
Clipboard history browser with search and image preview. |
cheatsheet/ |
iiCheatsheet |
Keybind viewer pulled from compositor config. |
controlPanel/ |
iiControlPanel |
Quick settings panel. |
mediaControls/ |
iiMediaControls |
MPRIS media player popup with multiple layout presets. |
wallpaperSelector/ |
iiWallpaperSelector |
Wallpaper browser with directory navigation. |
sessionScreen/ |
iiSessionScreen |
Logout, reboot, shutdown, suspend screen. |
| Module | Panel ID | Description |
|---|---|---|
notificationPopup/ |
iiNotificationPopup |
Notification toast popups. |
onScreenDisplay/ |
iiOnScreenDisplay |
Volume and brightness OSD. |
onScreenKeyboard/ |
iiOnScreenKeyboard |
Virtual keyboard. |
lock/ |
iiLock |
Lock screen with PAM authentication and fingerprint support. |
polkit/ |
iiPolkit |
PolicyKit authentication dialog. |
regionSelector/ |
iiRegionSelector |
Screenshot and screen recording region selection. |
screenCorners/ |
iiScreenCorners |
Hot corners. |
tilingOverlay/ |
iiTilingOverlay |
Tiling hints overlay. |
shellUpdate/ |
iiShellUpdate |
Shell update notification banner. |
recordingOsd/ |
iiRecordingOsd |
Screen recording indicator (disabled by default). |
| Module | Panel ID | Description |
|---|---|---|
waffle/bar/ |
wBar |
Bottom taskbar. Start button, pinned apps, open windows, system tray, clock. |
waffle/background/ |
wBackground |
Desktop wallpaper layer (waffle variant). |
| Module | Panel ID | Description |
|---|---|---|
waffle/startMenu/ |
wStartMenu |
Start menu with app grid, search, pinned apps, recommendations. |
waffle/actionCenter/ |
wActionCenter |
Quick settings. WiFi, Bluetooth, volume, brightness, toggles. |
waffle/notificationCenter/ |
wNotificationCenter |
Notification list with calendar and external event integration. |
waffle/taskview/ |
wTaskView |
Task view (workspace overview with window previews). |
waffle/widgets/ |
wWidgets |
Desktop widgets panel. |
| Module | Panel ID | Description |
|---|---|---|
waffle/notificationPopup/ |
wNotificationPopup |
Notification popups (Fluent style). |
waffle/onScreenDisplay/ |
wOnScreenDisplay |
Volume/brightness OSD (Fluent style). |
waffle/lock/ |
wLock |
Lock screen (Fluent variant). |
waffle/polkit/ |
wPolkit |
PolicyKit dialog (Fluent variant). |
waffle/sessionScreen/ |
wSessionScreen |
Session screen (Fluent variant). |
| Module | Description |
|---|---|
waffle/looks/ |
Looks.qml - complete visual token system. Colors, typography, motion, rounding. |
waffle/settings/ |
Waffle-specific settings pages. |
The foundation everything else builds on.
| Component | What it is |
|---|---|
| Config.qml | Configuration singleton. 1385+ lines, 51 config sections. Details |
| Appearance.qml | ii visual tokens. 881 lines, 400+ properties covering colors, rounding, typography, animation. |
| Directories.qml | Centralized path resolution. Config, cache, data, scripts, media directories. |
| widgets/ | 130+ reusable widgets registered in widgets/qmldir. Layout, input, display, media, and specialized components. |
| ThemePresets.qml | 44 built-in theme presets. |
| StylePresets.qml | Style variant definitions. |
Some panels work under both families. They keep their ii prefix but load in waffle mode too:
iiCheatsheet, iiOnScreenKeyboard, iiOverlay, iiOverview, iiRegionSelector, iiScreenCorners, iiWallpaperSelector, iiClipboard, iiRecordingOsd
- Check the AGENTS.md in the module directory you're editing (if one exists)
- Identify which family owns the module before making visual changes
- Use the correct token system:
Appearance.*for ii,Looks.*for waffle - Register new panels in the appropriate panels file
- Register new shared widgets in
modules/common/widgets/qmldir - If touching shared modules, test under both families