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.