~steef/snixembed

bdff2ace539df78bc3c00329bd4a221839304c2b — Steef Hegeman 1 year, 14 days ago 1803c38 master
update README
1 files changed, 13 insertions(+), 20 deletions(-)

M README.md
M README.md => README.md +13 -20
@@ 1,22 1,14 @@
snixembed - proxy StatusNotifierItems as XEmbedded systemtray-spec icons

INFO: recent electron versions [supports XEmbed tray icons again for now](https://github.com/electron/electron/pull/23674).
This means snixembed is of limited use. It will however be maintained in case
electron or other software eventually drops their XEmbed support again.

Previously, electron dropped support for the old XEmbed-based system tray
protocol, while many status bars for simple X window managers still do no not
support newer protocols like [StatusNotifierItem](https://freedesktop.org/wiki/Specifications/StatusNotifierItem/).
This project is basically a dirty hack using deprecated GTK+ StatusIcons to
proxy this new specification to the old one.

As newer electron versions support the old XEmbed-based tray icons again,
snixembed is currently not very useful, unless you rely on those old versions.
(or rely on chromium tray icons, which still only support StatusNotifierItem)
Most other software supports XEmbed icons as a fallback.

While snixembed works fine with most setups, some bars and DEs provide their
own optional SNI support, which should be preferred when available.
While many status bars for simple X window managers do not (yet) support
[StatusNotifierItem](https://freedesktop.org/wiki/Specifications/StatusNotifierItem/)
for displaying system tray icons,
some software does not fall back to the widely supported XEmbed-based tray icon protocol.
snixembed acts as a proxy between the new and old.
(It does this by presenting itself as a StatusNotifierHost on the session bus,
and using GTK+3 to maintain corresponding XEmbed tray icons.)

## Status
Currently supported:


@@ 27,21 19,22 @@ Currently supported:
- tooltips (on hover, all markup except hyperlinks)
- limited AppIndicator support as a fallback (see Known issues and workarounds)

This is enough for electron apps like Riot and Signal, and also for most Qt
apps as the list above includes all functionality QSystemTrayIcon permits.
This is enough for most software, such as electron and Qt based applications.
Please see the known issues and issue tracker if an app doesn't work properly.

ยน: so-called AttentionIcons and OverlayIcons are not supported, but I have yet
to encounter software that uses this part of the spec. Qt does not support it.

## Usage
Simply launch `snixembed` to start watching for icons.
Launch `snixembed` to start watching for icons.

Some applications only present a tray icon if snixembed is available on start.
For autostarting, use `snixembed --fork` before starting SNI applications to
avoid race conditions. This will fork once the service is running. (e.g. in an
`.xinitrc`, use `snixembed --fork` instead of `snixembed &` before tray apps)

See also the included man page.

## Issues and support
Issues are tracked on sourcehut: [~steef/snixembed](https://todo.sr.ht/~steef/snixembed).
There's a Matrix room at [#snixembed:matrix.org](https://matrix.to/#/#snixembed:matrix.org)


@@ 57,8 50,8 @@ for discussion and support. Come say hi!
These should be packaged in most major distributions.

### Building
Simply run `make` to build and if desired `make install` to install, by default
to `/usr/bin/snixembed`.
Run `make` to build and if desired `make install` to install,
by default to `/usr/bin/snixembed`.

### Packages
There are AUR packages available: