5.1 KiB
FAQs & Tips
Frequently Asked Questions
1. The Global Menu isn't showing up for some apps?
Modus uses a custom libmenu_button_shim.so with appmenu-gtk-module to
export GTK menus over DBus.
- Ensure
appmenu-gtk-moduleis installed - Ensure the shim was compiled correctly during installation
- Non-GTK apps (Electron, Qt) may need flags like
export QT_QPA_PLATFORMTHEME=appmenu-qt5
2. High CPU usage when App Switcher is open?
The App Switcher uses a custom C-backend to capture live window previews.
- 4K windows with many open can spike CPU
- Fix: Increase
switcher_live_preview_delay_msinconfig.toml(e.g.,200for ~5 FPS) or setswitcher_live_preview = falseto disable previews entirely
3. Dock covering fullscreen games/videos?
Set dock_auto_hide = true in config.toml. The dock hides automatically
when a window is maximized or fullscreen.
4. Volume/Brightness OSD not showing?
Set osd = true in config.toml. Requires brightnessctl for brightness and
Pipewire/Wireplumber for audio.
5. Weather widget shows wrong location?
Update weather_location in config.toml (e.g., "London, UK" or
"Patan, Nepal").
6. Spotlight plugin isn't showing up?
- Check the file is in
config/plugins/(notexamples/plugins/) - Check
config/plugins/is NOT in.gitignorefor your own repos - Run
journalctl --user -f -t modusand look for[PluginLoader]errors - Make sure the file has
PLUGIN = YourClassNameat the bottom - If using dependencies, ensure
uvis installed - After editing, run
fabric-cli exec modus1 'deep_reload your_plugin_id'
7. Plugin has dependencies but they aren't installed?
- Check
uvis installed (which uv) - Check
requirements.txtis next to your.pyfile or inside your package dir - The venv lives at
config/plugins/.venvs/<plugin_name>/ - Delete that directory to force re-install on next load
8. Desktop widget not appearing?
- Check the file is in
config/desktop/(not a subdirectory) - Ensure it calls
DesktopWidgetRegistry.register()at module level - Check
journalctl --user -f -t modusfor[DesktopWidgets]errors - Ensure the widget
keyis unique (not"date","weather", etc.)
9. Desktop widget still showing after deleting the file?
The cleanup runs within 2 seconds via file monitor + poll fallback. If it persists:
- Check
journalctl --user -f -t modusfor stale widget messages - Restart Modus:
uv run start
10. Desktop widget position resets after restart?
- Positions are stored in
config/desktop.toml - If you delete
desktop.toml, positions revert to defaults fromregister()calls - Ensure
config/desktop.tomlis writable
11. Desktop widget interfering with window keybinds (e.g., Super+Q)?
The desktop window is a full-screen layer shell surface, which can intercept pointer events and make Hyprland treat it as the focused window. Modus handles this by using a partial input region — only widget areas receive input; empty desktop space passes through.
If keybinds still don't work:
- Check the widget's
sizeinregister()matches its actual rendered size - Ensure no widget is expanding beyond its expected bounds (e.g.,
h_expand=Truewithout fixed width) - Restart Modus:
uv run start
Pro Tips
-
Live Reload for Mods:
config/mods.tomlis monitored for changes. Edits apply instantly — no restart needed -
Desktop Widgets: Drop
.pyfiles inconfig/desktop/for instant widgets. Editconfig/desktop.tomlor drag in edit mode to reposition. Remove by deleting the.pyfile — disappears within 2 seconds. -
Pinning Apps: Use exact
.desktopfilename indock.toml(e.g.,"org.gnome.Nautilus", not"Files") -
Custom Scripts:
on-clickedinmods.tomlcan point to bash scripts in your home directory -
Theme Updates: Modus uses Matugen tied to your wallpaper. Set a new wallpaper and the shell recolors automatically
-
Keyboard Shortcuts (from
config/hypr/modus.lua):Key Action Super + DOpen spotlight search Super + EOpen emoji picker Super + VOpen clipboard history Super + WOpen wallpaper browser Super + IOpen settings Super + LLock screen Super + ZScreencapture toggle Super + SScreenshot region Alt + TabWindow switcher Alt + Shift + WRandom wallpaper -
Deep Reload a Plugin: After editing
config/plugins/hello.py:fabric-cli exec modus1 'deep_reload hello'No Modus restart required. Works with all plugins.
-
Test a Plugin from Terminal:
fabric-cli exec modus1 'wth london'Routes to the weather plugin's
search()and prints results to the Modus log. -
Check Plugin Load Log:
journalctl --user -f -t modusFilters to Modus messages only. Shows plugin discovery, load errors, and search crashes.
-
Screencapture Shortcuts (from
config/hypr/modus.lua):Key Action Super + ZToggle screencapture Super + SScreenshot region