{"id":13533191,"url":"https://github.com/codelif/hyprnotify","last_synced_at":"2025-12-28T22:18:31.507Z","repository":{"id":230465564,"uuid":"779410498","full_name":"codelif/hyprnotify","owner":"codelif","description":"DBus Implementation of Freedesktop Notification spec for 'hyprctl notify'","archived":false,"fork":false,"pushed_at":"2024-08-07T07:43:35.000Z","size":6643,"stargazers_count":43,"open_issues_count":1,"forks_count":3,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-08-07T11:28:13.649Z","etag":null,"topics":["dbus","desktop-notifications","freedesktop","freedesktop-notifications","hyprland","notifications","notify","notify-send"],"latest_commit_sha":null,"homepage":"","language":"Go","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/codelif.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":"2024-03-29T19:21:02.000Z","updated_at":"2024-08-07T07:43:38.000Z","dependencies_parsed_at":"2024-05-08T09:31:35.959Z","dependency_job_id":"c7027389-26b3-45ed-9f25-288321e69ef0","html_url":"https://github.com/codelif/hyprnotify","commit_stats":null,"previous_names":["codelif/hyprnotify"],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codelif%2Fhyprnotify","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codelif%2Fhyprnotify/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codelif%2Fhyprnotify/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codelif%2Fhyprnotify/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/codelif","download_url":"https://codeload.github.com/codelif/hyprnotify/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":222774597,"owners_count":17035752,"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":["dbus","desktop-notifications","freedesktop","freedesktop-notifications","hyprland","notifications","notify","notify-send"],"created_at":"2024-08-01T07:01:17.397Z","updated_at":"2025-12-28T22:18:31.450Z","avatar_url":"https://github.com/codelif.png","language":"Go","funding_links":[],"categories":["Tools"],"sub_categories":["Notifications"],"readme":"\u003c!-- Improved compatibility of back to top link: See: https://github.com/othneildrew/Best-README-Template/pull/73 --\u003e\n\u003ca name=\"readme-top\"\u003e\u003c/a\u003e\n\u003c!--\n*** Thanks for checking out the Best-README-Template. If you have a suggestion\n*** that would make this better, please fork the repo and create a pull request\n*** or simply open an issue with the tag \"enhancement\".\n*** Don't forget to give the project a star!\n*** Thanks again! Now go create something AMAZING! :D\n--\u003e\n\n\n\n\u003c!-- PROJECT SHIELDS --\u003e\n\u003c!--\n*** I'm using markdown \"reference style\" links for readability.\n*** Reference links are enclosed in brackets [ ] instead of parentheses ( ).\n*** See the bottom of this document for the declaration of the reference variables\n*** for contributors-url, forks-url, etc. This is an optional, concise syntax you may use.\n*** https://www.markdownguide.org/basic-syntax/#reference-style-links\n--\u003e\n[![Contributors][contributors-shield]][contributors-url]\n[![Forks][forks-shield]][forks-url]\n[![Stargazers][stars-shield]][stars-url]\n[![Issues][issues-shield]][issues-url]\n[![MIT License][license-shield]][license-url]\n[![Go][golang-shield]][golang-url]\n![](https://github.com/codelif/hyprnotify/actions/workflows/go.yml/badge.svg)\n\n\n\u003c!-- PROJECT LOGO --\u003e\n\u003cbr /\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://github.com/codelif/hyprnotify\"\u003e\n    \u003cimg src=\"assets/logo.png\" alt=\"Logo\" width=\"80\" height=\"80\"\u003e\n  \u003c/a\u003e\n\n\u003ch3 align=\"center\"\u003eHyprnotify\u003c/h3\u003e\n\n  \u003cp align=\"center\"\u003e\n    A DBus Implementation for 'hyprctl notify'\n    \u003cbr /\u003e\n    \u003cbr /\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n\n\n\u003c!-- TABLE OF CONTENTS --\u003e\n\u003cdetails\u003e\n  \u003csummary\u003eTable of Contents\u003c/summary\u003e\n  \u003col\u003e\n    \u003cli\u003e\n      \u003ca href=\"#about-the-project\"\u003eAbout The Project\u003c/a\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\n      \u003ca href=\"#getting-started\"\u003eGetting Started\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#arch-linux\"\u003eArch Linux\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#other-linux-distributions\"\u003eOther Linux Distributions\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#building-from-source\"\u003eBuilding from Source\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\n      \u003ca href=\"#usage\"\u003eUsage\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#command-line-arguments\"\u003eCommand-line arguments\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#examples\"\u003eExamples\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#custom-hints\"\u003eCustom Hints\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#note-about-replace-id\"\u003eNote about `replace-id`\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#roadmap\"\u003eRoadmap\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#contributing\"\u003eContributing\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#license\"\u003eLicense\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#contact\"\u003eContact\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#acknowledgments\"\u003eAcknowledgments\u003c/a\u003e\u003c/li\u003e\n  \u003c/ol\u003e\n\u003c/details\u003e\n\n\n\n\u003c!-- ABOUT THE PROJECT --\u003e\n## About The Project\n\nHyprnotify is a [Freedesktop.org](https://specifications.freedesktop.org/notification-spec/notification-spec-latest.html) compliant notification daemon implementing `hyprctl notify` as its backend.\n\n\n![](assets/demo.gif)\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\u003c!-- GETTING STARTED --\u003e\n## Getting Started\n![](https://repology.org/badge/vertical-allrepos/hyprnotify.svg)\n\nTo get hyprnotify you can either download the binary build by github actions. Or build it locally.\n\n### Arch Linux\n`hyprnotify` is available on the AUR. You can install it with a AUR helper like `yay`.\n```sh\nyay -S hyprnotify\n```\n\n### NixOS\n`hyprnotify` is available on NixOS unstable.\nIt is quite simple to add:\n1. Add the unstable tarball:\n```nix\nlet\n  unstableTarball =\n    fetchTarball\n      https://github.com/NixOS/nixpkgs/archive/nixos-unstable.tar.gz;\nin\n# ...\n```\n\n2. Add an overlay to use unstable packages\n```nix\nnixpkgs.config = {\n  packageOverrides = pkgs: {\n    unstable = import unstableTarball {\n      config = config.nixpkgs.config;\n    };\n  };\n};\n```\n\n3. Add `unstable.hyprnotify` to your `environment.systemPackages` \n\n### Other Linux Distributions\nYou can download the release binaries directly from the [releases](https://github.com/codelif/hyprnotify/releases) page.\n\n### Building from Source\n#### Prerequisites\n\n - `go` compiler\n - `alsa-lib` or `libasound` for sound support\n - `libnotify` to send notifications with `notify-send` (optional)\n\n#### Compiling\n\n1. Clone the repo and cd into it\n   ```sh\n   git clone https://github.com/codelif/hyprnotify.git\n   cd hyprnotify\n   ```\n2. Build \n   ```sh\n   go build ./cmd/hyprnotify\n   ```\n3. Run the binary\n   ```sh\n   ./hyprnotify\n   ```\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\n\u003c!-- USAGE EXAMPLES --\u003e\n## Usage\nExecute the daemon:\n```sh\nhyprnotify\n```\n### Command-line arguments\n| Argument            | Remark                                       |\n|:-------------------:|:--------------------------------------------:|\n|`--font-size` or `-f`| Set custom default font size (default is 13) |\n|`--fixed-font-size`  | Ignores font size hints                      |\n|`--no-sound` or `-s` | Enable silent mode                           |\n|`--help`             | Displays help text                           |\n\n\u003e [!IMPORTANT]\n\u003e It is recommended to set the Hyprland default `font-family` to be `monospace` on hyprland.conf misc section. Otherwise you may experience unusual spacing and padding. See here: https://wiki.hyprland.org/Configuring/Variables/#misc\n\n### Examples\n\nSend a notification:\n```sh\nnotify-send \"Hello, World!\"\n```\nSend a notification with body text:\n```sh\nnotify-send \"Chat?\" \"Is this real\"\n```\nAdd a font-size hint:\n```sh\nnotify-send \"This is very big!\" -h int:x-hyprnotify-font-size:40\n```\nAdd an urgency hint and last for 20 seconds:\n```sh\nnotify-send \"This is serious stuff!\" -u critical -t 20000 \n```\n### Custom Hints\n|          Hint           |              Example                |              Remark              |\n|:-----------------------:|:-----------------------------------:|:--------------------------------:|\n| `x-hyprnotify-font-size`| `int:x-hyprnotify-font-size:30`     | font size for notification       |\n| `x-hyprnotify-color`    | `string:x-hyprnotify-color:#ff30fa` | hex color code for notif. color  |\n| `x-hyprnotify-icon`     | `int:x-hyprnotify-icon:3`           | icon identifier for notification |\n\n\n#### `x-hyprnotify-icon`\n| ID |   Icon | Preview |\n|:--:|:-------|:-------:|\n|`0` |WARNING |![WARNING](https://github.com/codelif/hyprnotify/assets/68972644/7bf5ff97-1d6a-45b0-9715-7e8d1535d866)|\n|`1` |INFO    |![INFO](https://github.com/codelif/hyprnotify/assets/68972644/473e5752-42b3-44cf-bd07-bed64abc9660)|\n|`2` |HINT    |![HINT](https://github.com/codelif/hyprnotify/assets/68972644/ffc6ff60-1058-4e5b-8fe3-611ba4b40206)|\n|`3` |ERROR   |![ERROR](https://github.com/codelif/hyprnotify/assets/68972644/630b2979-382b-4fe3-902e-6ee3526fcfe4)|\n|`4` |CONFUSED|![CONFUSED](https://github.com/codelif/hyprnotify/assets/68972644/64ae100b-dc2c-46dd-be8c-afdacb03042b)|\n|`5` |OK      |![OK](https://github.com/codelif/hyprnotify/assets/68972644/2b66a258-5e07-4683-a798-fe6f47d67716)|\n\n### Note about `replace-id`:\nWhen using `replace-id` with `notify-send`\n```sh\nnotify-send --replace-id=10 \"Hello\"\n```\nAll the notifications with IDs more than `replace-id` will also be deleted. (11, 12, 13...) \\\nThis is due to the inherent design of `hyprctl dismissnotify`. So, it is not fixable.\\\n\\\nDue to this, it is advisable to use it to replace only the latest notification.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\n\u003c!-- ROADMAP --\u003e\n## Roadmap\n\n- [x] Implement the DBus Specification\n- [x] Replace shell command invocation with IPC\n- [x] Hints Support:\n    - [x] urgency\n    - [x] font-size\n    - [x] color\n    - [x] icon\n- [ ] Add support for sound\n    - [x] Default sound support\n    - [ ] sound hints\n- [x] Fix race condition in `CloseNotification` Signal\n- [ ] Scrap the Project\n\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\n\u003c!-- CONTRIBUTING --\u003e\n## Contributing\n\nContributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.\n\nIf you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag \"enhancement\".\nDon't forget to give the project a star! Thanks again!\n\n1. Fork the Project\n2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the Branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\n\u003c!-- LICENSE --\u003e\n## License\n\nDistributed under the Apache-2.0 License. See `LICENSE` for more information.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\n\u003c!-- CONTACT --\u003e\n## Contact\n\nHarsh Sharma - [@codelif_](https://x.com/codelif_) - harsh@codelif.in\n\nProject Link: [https://github.com/codelif/hyprnotify](https://github.com/codelif/hyprnotify)\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\n\u003c!-- ACKNOWLEDGMENTS --\u003e\n## Acknowledgments\n\n* [hyprwm community](https://github.com/hyprwm/Hyprland) for Hyprland (special thanks to [vaxry](https://github.com/vaxerski))\n* [go](https://go.dev) for go\n* [Freedesktop.org Desktop Notification Specification](https://specifications.freedesktop.org/notification-spec/notification-spec-latest.html)\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\n\u003c!-- MARKDOWN LINKS \u0026 IMAGES --\u003e\n\u003c!-- https://www.markdownguide.org/basic-syntax/#reference-style-links --\u003e\n[contributors-shield]: https://img.shields.io/github/contributors/codelif/hyprnotify.svg?style=for-the-badge\n[contributors-url]: https://github.com/codelif/hyprnotify/graphs/contributors\n[forks-shield]: https://img.shields.io/github/forks/codelif/hyprnotify.svg?style=for-the-badge\n[forks-url]: https://github.com/codelif/hyprnotify/network/members\n[stars-shield]: https://img.shields.io/github/stars/codelif/hyprnotify.svg?style=for-the-badge\n[stars-url]: https://github.com/codelif/hyprnotify/stargazers\n[issues-shield]: https://img.shields.io/github/issues/codelif/hyprnotify.svg?style=for-the-badge\n[issues-url]: https://github.com/codelif/hyprnotify/issues\n[license-shield]: https://img.shields.io/github/license/codelif/hyprnotify.svg?style=for-the-badge\n[license-url]: https://github.com/codelif/hyprnotify/blob/master/LICENSE.txt\n[product-screenshot]: images/screenshot.png\n[golang-shield]: https://img.shields.io/badge/Golang-00ADD8?style=for-the-badge\u0026logo=go\u0026logoColor=FFFFFF\n[golang-url]: https://go.dev\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodelif%2Fhyprnotify","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodelif%2Fhyprnotify","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodelif%2Fhyprnotify/lists"}