Advanced GNOME notification capabilities including rate limiting, custom color theming per application, and notification positioning
- Notification Rate Limiting - Prevent frequent notifications from the same app within a configurable time threshold
- Notification Filtering - Block or hide unwanted notifications using regular expressions to match title, body text, or application name
- Custom Themes - Set custom colors and font sizes for notifications per application using app names or RegExp patterns (background, title, body, app name, time)
- Notification Positioning - Control where notifications appear on screen (fill, left, center, right)
- Notification Timeout - Configure auto-dismiss timeout for notifications with idle state handling and urgency control
- Fullscreen Notifications - Enable or disable notifications when applications are running in fullscreen mode
- Install Extension Manager
- Search For
Notification Configurator
inBrowse
tab - Select the extension and click
Install
Since this 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 dependencies:
npm install
-
Install the extension:
npm run inject
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@exposedcat
Or use GNOME Extensions app to enable "Notification Configurator".
-
Setup development environment:
npm install
-
Start development session:
npm start
This 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
→lg
for interactive debugging
To add translations for the extension:
-
Create a new translation file:
cp po/main.pot po/langcode.po
Replace
langcode
with your language code (e.g.,po/uk.po
for 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.