{"id":13437351,"url":"https://github.com/phillbush/xnotify","last_synced_at":"2026-03-10T10:32:15.607Z","repository":{"id":45924426,"uuid":"296789657","full_name":"phillbush/xnotify","owner":"phillbush","description":"read notifications from stdin and pop them up on the screen","archived":false,"fork":false,"pushed_at":"2023-10-13T19:18:01.000Z","size":166,"stargazers_count":168,"open_issues_count":4,"forks_count":11,"subscribers_count":4,"default_branch":"master","last_synced_at":"2026-03-08T02:01:41.283Z","etag":null,"topics":["c","imlib2","notification","notifications","unix","x11","xlib"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/phillbush.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}},"created_at":"2020-09-19T04:59:13.000Z","updated_at":"2025-12-08T03:20:18.000Z","dependencies_parsed_at":"2023-10-14T19:14:33.752Z","dependency_job_id":"c64dcfac-2647-4d44-ab5a-df43d6e34c08","html_url":"https://github.com/phillbush/xnotify","commit_stats":null,"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/phillbush/xnotify","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phillbush%2Fxnotify","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phillbush%2Fxnotify/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phillbush%2Fxnotify/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phillbush%2Fxnotify/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/phillbush","download_url":"https://codeload.github.com/phillbush/xnotify/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phillbush%2Fxnotify/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30330581,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-10T05:25:20.737Z","status":"ssl_error","status_checked_at":"2026-03-10T05:25:17.430Z","response_time":106,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["c","imlib2","notification","notifications","unix","x11","xlib"],"created_at":"2024-07-31T03:00:56.245Z","updated_at":"2026-03-10T10:32:15.526Z","avatar_url":"https://github.com/phillbush.png","language":"C","funding_links":[],"categories":["C"],"sub_categories":[],"readme":"# XNotify\n\n![demo](https://user-images.githubusercontent.com/63266536/93797439-c65d0680-fc2b-11ea-80e3-10bbd6f65dcb.gif)\n\nXNotify displays a notification on the screen.\nXNotify receives a notification specification in stdin and shows a\nnotification for the user on the screen.\n\nXNotify comes with the following features:\n\n* XNotify receives notifications from stdin.\n  You can use a fifo to echo notifications on the fly like\n  `echo Hello World \u003e /path/to/xnotify.fifo`\n* XNotify queues notifications and displays them one above the other.\n* Image support, just prefix the notification string with\n  `IMG:/path/to/the/file.png` and a tab.\n* Multiple monitor support.  You can set the monitor with the `-m` option.\n* Support for fallback fonts (you can set more than one fonts, that will\n  be tried in order).\n* X resources support (you don't need to recompile Xnotify for\n  configuring it).\n\n## Options\n\nXNotify understands the following command-line options:\n\n* `-b button`:  Specify the action button.\n* `-g gravity`: Specify the screen corner/border to place notifications at.\n* `-h height`:  Specify the maximum height of a notification popup.\n* `-m monitor`: Specify the monitor to place notifications at.\n* `-o`:         Only one notification at a time.\n* `-r`:         Also read notifications from root window name (in\n                addition to read from standard input).\n* `-s seconds`: Specify the time in seconds notifications are visible.\n* `-w`:         Let the window manager control notification popups.\n\n## Customization\n\nXNotify can be customized by setting the following X resources.\n\n* `alignment`:   Text alignment (left, center, or right).\n* `background`:  Background color.\n* `borderColor`: Border color.\n* `borderWidth`: Border width in pixels.\n* `faceName`:    Font.\n* `foreground`:  Text color.\n* `gap`:         Gap between notifications, in pixels.\n* `gravity`:     Screen corner/border to place notifications at.\n* `leading`:     Space between lines.\n* `maxHeight`:   Maximum notification height.\n* `opacity`:     Notification opacity from 0.0 to 1.0.\n* `shrink`:      Whether to shrink notifications to its content size.\n* `padding`:     Margin around the content.\n* `wrap`:        Whether to wrap long lines.\n\n\n## Installation\n\nRun `make all` to build, and `make install` to install the binary and the\nmanual into `${PREFIX}` (`/usr/local`).\n\n## Usage\n\nXNotify receives as input one line per notification.\nEach line is made out of a notification title and a notification body separated by any number of tabs.\nLines without a title are ignored.\n\nThe following is an example of how to run XNotify\n\n\t$ xnotify -m 10 -G NE -g -10+10 -s 15\n\nThis line means: read notifications from stdin, display\nthe notifications on the north east (`-G NE`) of the monitor 0 (`-m 0`),\nthat is, on the upper right corner of the first monitor.  The\nnotifications should be placed 10 pixels to the left and 10 pixels\ndown (thus creating a 10 pixel gap with the upper right corner).\nEach notification stay alive for 15 seconds.\n\nTo create a named pipe for XNotify, you can place the following in the beginning of your `~/.xinitrc`.\nThis will create a named pipe unique to your current X display in your home directory at `~/.cache`.\nThen, it will open xnotify in the background, reading from this named pipe.\n\n\tXNOTIFY_FIFO=\"$HOME/.cache/xnotify$DISPLAY.fifo\"\n\texport XNOTIFY_FIFO\n\trm -f $XNOTIFY_FIFO\n\tmkfifo $XNOTIFY_FIFO\n\txnotify 0\u003c\u003e$XNOTIFY_FIFO\n\nNote that the first two lines (the line setting the environment variable and the line exporting it)\nshould be at the beginning of your `~/.xinitrc`, so other programs you invoke are aware of this variable.\n\nTo create a notification with a image, input to XNotify a line beginning\nwith `IMG:/path/to/file.png` followed by a tab.  For example:\n\n\t$ printf 'IMG:/path/to/file.png\\tThis is a notification\\n' \u003e $XNOTIFY_FIFO\n\nTo read dbus notifications from stdin, you'll need [tiramisu](https://github.com/Sweets/tiramisu).\nThen add the following line to your `.xinitrc`, after the line calling xnotify.\n\n\t$ tiramisu -o \"$(printf '#summary\\t#body\\n')\" \u003e $XNOTIFY_FIFO \u0026\n\nTo use a different size other than the default for the notifications,\nrun `xnotify` with the `-g` option set to the notification size in\n`WIDTHxHEIGHT`.  For example:\n\n\t$ xnotify -g 300x80\n\nThe argument for the `-g` option has the form `[WIDTHxHEIGHT][{+-}XPOS{+-}YPOS]`.\nParts between square brackets are optional.\n`{+-}` means to chose either `+` or `-`.\n\n## License\n\nThe code and manual are under the MIT/X license.\nSee ./LICENSE for more information.\n\n## Epilogue\n\n**Read the manual.**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphillbush%2Fxnotify","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fphillbush%2Fxnotify","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphillbush%2Fxnotify/lists"}