Skip to content

ExposedCat/gnome-notification-configurator

Repository files navigation

Logo
GNOME Notification Configurator
Screenshot

Advanced GNOME notification capabilities including rate limiting, custom color theming per application, and notification positioning

Buy Me A Coffee


Features

  • 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

Installation

Extension Manager (Recommended)

  • Install Extension Manager
  • Search For Notification Configurator in Browse tab
  • Select the extension and click Install

GNOME Extenssions Website

Manual Installation

Since this extension is not yet available on the GNOME Extensions website, you can install it manually:

  1. Clone this repository:

    git clone https://github.com/ExposedCat/gnome-notification-configurator.git
    cd gnome-notification-configurator
  2. Install dependencies:

    npm install
  3. 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/).

  4. Restart GNOME Shell:

    • Log out and log back in
  5. Enable the extension:

    gnome-extensions enable notification-configurator@exposedcat

    Or use GNOME Extensions app to enable "Notification Configurator".

Development

Development Workflow

  1. Setup development environment:

    npm install
  2. Start development session:

    npm start

    This will:

    • Compile TypeScript sources
    • Install to extensions directory
    • Launch nested GNOME Shell session for testing
  3. Debug the extension:

    • Check terminal output for logs in the nested shell session
    • Access Looking Glass debugger with Alt+F2lg for interactive debugging

Translations

To add translations for the extension:

  1. 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).

  2. Edit the translation file: Use Gtranslator or POEdit to edit the created file and make translations.

  3. Update translations when needed: In case new labels were added or original labels changed, run:

    npm run translate

    Then update your translations if needed.

License

This project is licensed under the GNU General Public License v3.0 or later (GPL-3.0-or-later).

Contributing

Contributions are welcome! Please feel free to submit pull requests or open issues on the GitHub repository.

About

Precisely configure GNOME notifications via single lightweight extension

Topics

Resources

Stars

Watchers

Forks

Sponsor this project

Contributors