Add full panels, overview, and mirrored indicators to every monitor.
GNOME Extensions · GitHub · Donate
An updated fork of spin83/multi-monitors-add-on with modern GNOME Shell support (45 – 49), mirrored indicators, screenshot tool cloning, Blur my Shell integration, and more.
| Feature | Description |
|---|---|
| Panel on every monitor | Full top bar with left / center / right sections |
| Activities button | Open the overview from any monitor |
| AppMenu | Per-monitor focused-app menu |
| DateTime menu | Mirrored clock & calendar |
| Workspace thumbnails | Slider on the left, right, or auto |
| Mirrored indicators | Any status-area indicator (Vitals, GSConnect, etc.) can be transferred to secondary panels |
| Per-monitor icon selection | Choose panel icons independently for the main monitor and each extended monitor |
| Indicator exclusion list | Prevent specific indicators from being transferred (e.g. Fildem) |
| Screenshot tools on all monitors | Clone the screenshot toolbar to every screen, or follow the cursor |
| Blur my Shell integration | Automatically register secondary panels for blur effects |
| Overview on extended monitors | Show App Grid & Search on secondary displays |
| Force workspaces on all displays | Override GNOME's workspaces-only-on-primary setting |
| Hot corners | Enable/disable hot corners on all monitors |
| Window drag from panel | Drag maximized windows off the panel on any monitor |
GNOME Shell: 45, 46, 47, 48, 49
Tested on:
- Fedora 43 — GNOME 49
The included script copies everything to the extensions directory, compiles schemas, and enables the extension in one step:
chmod +x reinstall.sh
./reinstall.shNote
On Wayland you must log out and log back in for changes to take effect.
On X11 press Alt+F2, type r, and press Enter.
-
Copy the extension folder:
cp -r . ~/.local/share/gnome-shell/extensions/multi-monitors-bar@frederykabryan
-
Compile schemas:
glib-compile-schemas ~/.local/share/gnome-shell/extensions/multi-monitors-bar@frederykabryan/schemas/ -
Restart GNOME Shell (see note above).
-
Enable:
gnome-extensions enable multi-monitors-bar@frederykabryan
Open preferences through the Extensions app (click the ⚙️ icon next to Multi Monitor Bar) or via command line:
gnome-extensions prefs multi-monitors-bar@frederykabryanOpen Panel icons by monitor in the extension preferences. Each connected display gets its own checklist: Main monitor, Extended 1, Extended 2, and so on. Check or uncheck an icon to change that panel immediately. Choices are saved across restarts, and the list updates when monitors or extensions change. Extended panels require Show Panel to be enabled. Only extensions with panel indicators appear in these lists.
Hiding an icon on the main monitor still lets you display it on extended monitors. Per-monitor choices override the existing Activities, AppMenu, and DateTime switches for that monitor. Enable the extension to see the connected monitors and available panel icons in preferences.
| Setting | Key | Default |
|---|---|---|
| Show Panel | show-panel |
true |
| Show Activities Button | show-activities |
true |
| Show AppMenu Button | show-app-menu |
true |
| Show DateTime Menu | show-date-time |
true |
| Date and Time Position (all monitors) | date-time-position |
center |
| Thumbnails Slider Position | thumbnails-slider-position |
auto |
| Enable Blur my Shell | enable-blur-my-shell |
true |
| Hot Corners | enable-hot-corners |
(system default) |
| Screenshot on All Monitors | screenshot-on-all-monitors |
false |
| Force Workspaces on All Displays | force-workspaces-on-all-displays |
true |
| Overview on Extended Monitors | show-overview-on-extended-monitors |
true |
SCHEMA_DIR="$HOME/.local/share/gnome-shell/extensions/multi-monitors-bar@frederykabryan/schemas"
# View / set any setting
GSETTINGS_SCHEMA_DIR="$SCHEMA_DIR" gsettings get \
org.gnome.shell.extensions.multi-monitors-bar show-panel
GSETTINGS_SCHEMA_DIR="$SCHEMA_DIR" gsettings set \
org.gnome.shell.extensions.multi-monitors-bar show-panel true
# Exclude indicators from transfer
GSETTINGS_SCHEMA_DIR="$SCHEMA_DIR" gsettings get \
org.gnome.shell.extensions.multi-monitors-bar exclude-indicators
GSETTINGS_SCHEMA_DIR="$SCHEMA_DIR" gsettings set \
org.gnome.shell.extensions.multi-monitors-bar exclude-indicators \
"['fildem-indicator', 'another-indicator']"# In Looking Glass (Alt+F2 → lg → Evaluator tab):
Object.keys(Main.panel.statusArea)Extension doesn't appear
- Verify installation path:
ls ~/.local/share/gnome-shell/extensions/multi-monitors-bar@frederykabryan/ - Check compiled schema exists:
ls ~/.local/share/gnome-shell/extensions/multi-monitors-bar@frederykabryan/schemas/gschemas.compiled - Restart GNOME Shell.
Extension fails to enable
journalctl -f -o cat /usr/bin/gnome-shell
gnome-extensions info multi-monitors-bar@frederykabryanPanels not showing on secondary monitors
- Ensure Show Panel is enabled in preferences.
- Confirm multiple monitors are connected.
- Toggle the extension:
gnome-extensions disable multi-monitors-bar@frederykabryan gnome-extensions enable multi-monitors-bar@frederykabryan
Indicators not transferring
- Check the exclude list:
GSETTINGS_SCHEMA_DIR="$HOME/.local/share/gnome-shell/extensions/multi-monitors-bar@frederykabryan/schemas" \ gsettings get org.gnome.shell.extensions.multi-monitors-bar exclude-indicators - Refresh by toggling the extension.
gnome-extensions disable multi-monitors-bar@frederykabryan
rm -rf ~/.local/share/gnome-shell/extensions/multi-monitors-bar@frederykabryan
# Restart GNOME Shell.
├── extension.js # Main extension entry point
├── mmpanel.js # Multi-monitor panel (layout, drag, indicators)
├── mmlayout.js # Layout manager for multi-monitor setup
├── mmoverview.js # Overview / workspace views on secondary monitors
├── mmcalendar.js # DateTime menu for secondary monitors
├── mirroredIndicatorButton.js # Generic indicator mirroring via Clutter.Clone
├── statusIndicatorsController.js # Manages indicator transfer lifecycle
├── screenshotPatch.js # Screenshot UI cloning to all monitors
├── mmPanelConstants.js # Shared constants and settings keys
├── common.js # Shell version detection & utility helpers
├── utils.js # Misc utilities
├── prefs.js # Preferences dialog (Adw / GTK4)
├── metadata.json # Extension metadata & version
├── stylesheet.css # Panel & indicator CSS
├── schemas/ # GSettings schema definitions
│ └── org.gnome.shell.extensions.multi-monitors-bar.gschema.xml
└── reinstall.sh # One-step reinstall script
Build the upload archive with bash package.sh. It includes runtime JavaScript,
metadata, styles, the license, and schema XML. Compiled schemas are excluded;
GNOME Shell 45+ compiles them during installation.
After modifying the source:
- Run the reinstall script (or copy files manually):
./reinstall.sh
- On Wayland, log out / log back in. On X11, press
Alt+F2→r. - Watch logs for errors:
journalctl -f -o cat /usr/bin/gnome-shell
If you find this extension useful, please consider supporting development.
| Sponsor | Type | Link |
|---|---|---|
| Individual | GitHub Profile | |
| Individual | GitHub Profile |
- Ko-fi: frederykabryan
- PayPal: multimonitorbar
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License v2 (or any later version).
- Original author: spin83
- Forked & MOdify by: Frederyk Abryan Palinoan — with extensive help from Claude, Gemini, ChatGPT and GitHub Copilot