~steef/snixembed

bd0e06f24435c9690e33afa33e2687504d534d25 — Steef Hegeman 1 year, 2 months ago aab2583 0.1.0
updated readme, makefile
2 files changed, 30 insertions(+), 9 deletions(-)

M README.md
M makefile
M README.md => README.md +17 -7
@@ 8,9 8,11 @@ proxy this new specification to the old one.

# Status
Currently supported:
- pixmap icons

- pixmap icons (it will crash when no pixmaps are supplied)
- activation on left mouse button
- context menu on right mouse button

This is enough for electron apps like Riot and Signal.

# Usage


@@ 18,9 20,17 @@ For autostarting, use `snixembed --fork` to avoid race conditions (it will wait
for the forked service to be ready before exiting).

# Known issues
- Ayatana/libappindicator seem to send objects to RegisterStatusNotifierItem
  instead of service names. I'm currently contemplating whether to support it
  or not.
- electron apps probe for StatusNotifierItem support not by checking for the
  D-Bus service but by checking environment variables. Globally exporting
  `XDG_CURRENT_DESKTOP=KDE` and `KDE_SESSION_CURRENT=5` seems to do the  trick.
- ayatana/libappindicator seem to think their standard is supported when they
  see the service, and then start talking appindicator to it. Therefore they
  do not fall back to XEmbed specification, and the tray icons are broken.
  As I have not been able to find a decent specification for this standard,
  there is no real work going on in fixing this. The relevant error:
	g_bus_watch_name: assertion 'g_dbus_is_name (name)' failed
- some apps probe for StatusNotifierItem support not by checking for the D-Bus
  service but by checking environment variables. Exporting
	XDG_CURRENT_DESKTOP=KDE
	KDE_SESSION_CURRENT=5
  does the trick in some cases.

# Issue tracker
Issues are tracked on sourcehut: [~steef/snixembed](https://todo.sr.ht/~steef/snixembed).

M makefile => makefile +13 -2
@@ 1,16 1,27 @@
PKG = gtk+-3.0 gio-2.0
SRC = src/*.vala version.vala

PREFIX ?= /usr
BINDIR ?= /bin

PKG := $(foreach pkg, $(PKG), --pkg $(pkg))

snixembed: $(SRC)
	valac -o snixembed $(VFLAGS) $(PKG) $(SRC)
	valac -o $@ $(VFLAGS) $(PKG) $(SRC)

version.vala: .git/HEAD .git/index
	echo "const string VERSION = \"$(shell git describe --always --tags --dirty)\";" > $@

doc: $(SRC)
	valadoc --force -o doc --internal --private --package-name snixembed $(SRC) $(PKG)
	valadoc --force -o $@ --internal --private --package-name snixembed $(SRC) $(PKG)

clean:
	rm -rf src/*.c version.vala snixembed doc

install: snixembed
	install -Dm755 snixembed $(DESTDIR)$(PREFIX)$(BINDIR)/snixembed

uninstall:
	rm -f $(DESTDIR)$(PREFIX)$(BINDIR)/snixembed

.PHONY: clean install uninstall