{"id":13610167,"url":"https://github.com/sencer/i3-notifier","last_synced_at":"2026-01-16T03:59:03.249Z","repository":{"id":146018303,"uuid":"282506865","full_name":"sencer/i3-notifier","owner":"sencer","description":"Unobtrusive Notification Manager for i3","archived":false,"fork":false,"pushed_at":"2022-11-21T08:11:25.000Z","size":2362,"stargazers_count":76,"open_issues_count":4,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-11-07T16:42:18.602Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sencer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-07-25T18:58:47.000Z","updated_at":"2024-09-20T10:28:50.000Z","dependencies_parsed_at":null,"dependency_job_id":"18af9683-9958-4927-9f8b-1f2031a3426b","html_url":"https://github.com/sencer/i3-notifier","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sencer%2Fi3-notifier","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sencer%2Fi3-notifier/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sencer%2Fi3-notifier/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sencer%2Fi3-notifier/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sencer","download_url":"https://codeload.github.com/sencer/i3-notifier/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248641482,"owners_count":21138210,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T19:01:42.023Z","updated_at":"2026-01-16T03:59:03.176Z","avatar_url":"https://github.com/sencer.png","language":"Python","readme":"# i3 Notification Manager (Requires a recent version of rofi)\n\nThis is a notification manager for i3 desktop environment inspired by \n[Rofication](https://github.com/DaveDavenport/Rofication). Like \nRofication, it implements the [Gnome Desktop Notifications \nStandard](https://developer.gnome.org/notification-spec/) standard. \n\nAlso see the companion py3status module \n[py3-notifier](https://github.com/sencer/py3-notifier).\n\n## Differences from Rofication\n\n- Notifications are stored in a tree structure, where they can be grouped \n  by, for example, the application that is sending the notification and \n  the subject. This is highly configurable. (No docs at the moment, but \n  see the `examples/i3_notifier_config.py`; also see the comments in \n  `i3notifier/config.py`)\n- Allows bulk deletion of notifications in a category.\n- Implements \"default\" action.\n- Shows icons.\n- Does not use sockets, rather adds new dbus methods to show the \n  notifications and get the count of notifications.\n- Code is modular, should be straight forward to use another GUI rather \n  than Rofi; or another data structure rather than tree structure.\n\n## What does it look like?\n\n![animation](/images/widget.gif)\n\n## Usage\n\nTo install (also see the requirements.txt)\n\n    pip install i3-notifier\n    \nMake sure you are not running any other notification daemon (if you are running `dunst` for example, kill it with `killall dunst`). Then start `i3-notifier`. You might want to make sure `i3-notifier` and its companion script `switch-to-urgent.py` are in the `$PATH`. You can confirm it is running by\n\n    dbus-send --session --print-reply --dest=org.freedesktop.Notifications /org/freedesktop/Notifications org.freedesktop.Notifications.GetServerInformation\n\nThen to launch GUI; bind this to a shortcut\n\n    dbus-send --session --print-reply --dest=org.freedesktop.Notifications /org/freedesktop/Notifications org.freedesktop.Notifications.ShowNotifications\n\n## Keybindings\n|                  Key                        |               Action                |\n|--------------------------------------------:|-------------------------------------|\n`j`, `Down`, `Tab` or `Ctrl-N`                | Choose next\n`k`, `Up` or `Ctrl-P`                         | Choose previous\n`Enter`, `Space` or `Left Click`              | Expand if group; execute action if singleton\n`Shift-Enter`                                 | Execute action\n`Esc`, `Ctrl+[` or `Backspace`                | One level up or exit from top level\n`` ` ``, `Ctrl+Backspace` or `Shift-Backspace`| Exit from any level.\n`Delete`                                      | Delete notification or group\n`Ctrl+Delete`, `Shift+Delete`                 | Delete single notification\n\nTo get notification count \u0026 urgency\n\n    dbus-send --session --print-reply=literal --dest=org.freedesktop.Notifications /org/freedesktop/Notifications org.freedesktop.Notifications.ShowNotificationCount\n\nOne can use this with i3blocks to show notifications in the bar\nor even better switch to py3status and install \n[py3-notifier](https://github.com/sencer/py3-notifier).\n\n    command = \"(dbus-send --session --print-reply=literal --dest=org.freedesktop.Notifications /org/freedesktop/Notifications org.freedesktop.Notifications.ShowNotificationCount 2\u003e/dev/null || ($HOME/.local/bin/i3-notifier \u0026\u0026 echo '? ? ?'))|tr -s ' '|cut -d' ' -f 3\"\n","funding_links":[],"categories":["Python"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsencer%2Fi3-notifier","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsencer%2Fi3-notifier","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsencer%2Fi3-notifier/lists"}