Advanced GNOME notification capabilities including rate limiting, custom color theming per application, and notification positioning
- Global and Pattern-Based Rules - Configure default behavior globally or create enabled/disabled per-pattern overrides matched by case-insensitive regular expressions for app name, title, and body text
- Notification Filtering - Hide or close matching notifications before they appear
- Notification Rate Limiting - Hide or close frequent notifications from the same application within a configurable time threshold
- Notification Center Controls - Disable stacking for matching notifications and set how many notifications are kept per source
- Notification Timeout - Configure auto-dismiss timing, keep notifications
visible while idle, or set timeout to
0to keep notifications until dismissed - Urgency Control - Force notifications to normal urgency when needed
- Window Attention Handling - Activate attention-requesting windows instead of showing a notification
- Fullscreen Notifications - Enable or disable notifications while applications are running in fullscreen mode
- Notification Positioning - Set horizontal alignment (fill, left, center, right) and vertical alignment (fill, top, center, bottom)
- Custom Appearance - Hide the app title/time row, customize background, title, body, app name, and time colors, and adjust text sizes
- Custom Margins - Add top, bottom, left, and right notification margins
- Test Notifications - Send sample notifications from the preferences window to preview matching and styling changes
- Install Extension Manager
- Search For
Notification ConfiguratorinBrowsetab - Select the extension and click
Install
If latest version of the extension is not yet available on the GNOME Extensions website, you can install it manually:
-
Clone this repository:
git clone https://github.com/ExposedCat/gnome-notification-configurator.git cd gnome-notification-configurator -
Install the extension:
npm run install:local
This will build the extension and install it to your local GNOME Shell extensions directory (
~/.local/share/gnome-shell/extensions/). -
Restart GNOME Shell:
- Log out and log back in
-
Enable the extension:
gnome-extensions enable notification-configurator@exposedcatOr use Extensions Manager app to enable "Notification Configurator".
-
Setup development environment:
npm install
-
Start development session:
npm start # Or in a container npm run start:containerThis will:
- Compile TypeScript sources
- Install to extensions directory
- Launch nested GNOME Shell session for testing
-
Debug the extension:
- Check terminal output for logs in the nested shell session
- Access Looking Glass debugger with
Alt+F2→lgfor interactive debugging
To add translations for the extension:
-
Create a new translation file:
cp po/main.pot po/langcode.po
Replace
langcodewith your language code (e.g.,po/uk.pofor Ukrainian). -
Edit the translation file: Use Gtranslator or POEdit to edit the created file and make translations.
-
Update translations when needed: In case new labels were added or original labels changed, run:
npm run translate
Then update your translations if needed.
This project is licensed under the GNU General Public License v3.0 or later (GPL-3.0-or-later).
Contributions are welcome! Please feel free to submit pull requests or open issues on the GitHub repository.

