{"id":15666521,"url":"https://github.com/clarete/eosd","last_synced_at":"2025-04-13T04:51:54.308Z","repository":{"id":66285746,"uuid":"69842379","full_name":"clarete/eosd","owner":"clarete","description":"Emacs Notification Daemon","archived":false,"fork":false,"pushed_at":"2024-04-17T01:10:46.000Z","size":518,"stargazers_count":36,"open_issues_count":0,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-13T04:51:49.201Z","etag":null,"topics":["emacs","exwm","notification-server","notifications"],"latest_commit_sha":null,"homepage":null,"language":"Emacs Lisp","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/clarete.png","metadata":{"files":{"readme":"README.org","changelog":null,"contributing":null,"funding":null,"license":"COPYING","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}},"created_at":"2016-10-03T05:01:04.000Z","updated_at":"2025-03-28T17:29:50.000Z","dependencies_parsed_at":null,"dependency_job_id":"72dbe954-dc27-479b-b4bb-5a825ab9d4d0","html_url":"https://github.com/clarete/eosd","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/clarete%2Feosd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clarete%2Feosd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clarete%2Feosd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clarete%2Feosd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/clarete","download_url":"https://codeload.github.com/clarete/eosd/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248665767,"owners_count":21142123,"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":["emacs","exwm","notification-server","notifications"],"created_at":"2024-10-03T14:00:49.549Z","updated_at":"2025-04-13T04:51:54.277Z","avatar_url":"https://github.com/clarete.png","language":"Emacs Lisp","funding_links":[],"categories":[],"sub_categories":[],"readme":"* Emacs On Screen Display\n\nI currently use Emacs as the engine that runs my window management\nsystem. The specific module is [[https://github.com/ch11ng/exwm/][EXWM]]. Although EXWM is amazing, it is\nbeyond it's capabilities to manage Desktop Notifications. Being\nhistorically a Gnome Desktop user, I really missed them.\n\nThis package teaches Emacs how to manage notifications received by\nother applications via a D-Bus service [[http://www.galago-project.org/specs/notification/0.9/index.html][standardized by the Free\nDesktop]] initiative.\n\n** Screenshot\n\n   [[./screenshot.jpg]]\n\n** Features\n\n   * [X] Central place to access all notifications received\n   * [ ] Filter notifications by time, application, and status\n   * [ ] Silence notifications based on custom patterns\n   * [ ] Persistent cache for notifications (they'll survive Emacs\n     restarts).\n   * [ ] Optional integration with Emacs Mini-buffer\n   * [ ] Optionally shows GTK+ balloons for messages\n\n# ** How to install\n\n#    It's available on [[https://melpa.org/][melpa]] follow the instructions to [[https://melpa.org/#/getting-started][enable it]] and\n#    then run =M-x package-install\u003cRET\u003eeosd=.\n\n** Requirements\n\n   Emacs OSD was tested with Emacs 24.5.1 but will probably work with\n   any version compiled with D-Bus.\n\n** Installation\n\n  Install Emacs development headers, for example on Fedora:\n\n  #+BEGIN_SRC\n  dnf install emacs-devel\n  #+END_SRC\n\n  Build =eosd-pixbuf.so= library:\n\n  #+BEGIN_SRC\n  make\n  #+END_SRC\n\n  Enable the package in Emacs\n\n  #+BEGIN_SRC emacs-lisp\n  (use-package eosd\n    :load-path \"/path/to/the/eosd/\")\n  #+END_SRC\n\n** Basic Usage\n\n   To launch =EOSD=, assuming it's properly installed, just execute\n   =M-x eosd= and you'll be sent to the =EOSD Mode=. Use the following\n   key bindings in that mode:\n\n\n   | Key | Description                           |\n   |-----+---------------------------------------|\n   | =n= | Move to next notification             |\n   | =p= | Move to previous notification         |\n   | =g= | Reload notifications from cache       |\n   | =f= | Prompt the user with the filter popup |\n   | =i= | Toggle show/hide notification body    |\n   | =d= | Delete notification                   |\n   | =q= | Bury buffer                           |\n\n** Alternatives\n\n   * https://launchpad.net/notify-osd\n   * http://www.knopwob.org/dunst\n   * https://github.com/GNOME/notification-daemon\n\n** Modular Design\n\n   Emacs OSD is organized in three modules: D-Bus interface,\n   Notification Buffer, and UI.\n\n   The *Notification Buffer* is the abstraction that binds the UI to\n   the events received via D-Bus. It's also the place that filters are\n   applied.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclarete%2Feosd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fclarete%2Feosd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclarete%2Feosd/lists"}