On Sat, 25 Nov 2017 22:52:13 +0000 Peter Flynn <pe...@silmaril.ie> said:

> I have been using Hiri recently for my MS-Exchange email, a really nice 
> interface (https://www.hiri.com/)
> 
> If I right-click on the executing application window title bar I can 
> pick hiri » Add to IBar » default (as with any app)...but it doesn't add 

you know you can also DND it into ibar to place it exactly where you like?
that's what i do... :)

> it, I assume because I installed the application direct from their 
> .tar.gz file, so the system doesn't know I have it.

this should work if a .desktop file was installed for the app AND enlightenment
matches up the window to the app desktop file instance. this tends to work
correctly for pretty much everything... except for me for steam apps/games.

i'm going to go into steam a bit as this is something i have ready access to,
and i don't know what hiri sets/does or puts in its desktop file, but i do know
that "cross platform apps" often do things poorly on linux (x11) and it leads
to little nasties like "can't find desktop file" or "find wrong one" or
something and that may lead to not being able to add to ibar directly via menu
or dnd.

this seems to be hit and miss. apps tend to be bad about setting properties on
their windows sometimes. like:

WM_PROTOCOLS(ATOM): protocols  WM_DELETE_WINDOW
WM_NAME(STRING) = "game [release][opengl][32bit]"
WM_NORMAL_HINTS(WM_SIZE_HINTS):
                program specified minimum size: 1024 by 720
STEAM_GAME(CARDINAL) = 245620

those are the only properties set by the app... WM_TIME is actually the window
titlebar stuff in x11. as you can see that's a pretty poor title for the
"Topico 5" game... but there is nothing there to tie the window to a PID or
even to guess a desktop name... the only thing is the custom STEAM_GAME
property which we don't look at since it's custom to steam. Perhaps we should
write specific steam support just to map this back. we could map it back to the
desktop file as 2 fields we can dig through to match up:

Exec=steam steam://rungameid/245620
Icon=steam_icon_245620

But keep in mind every steam game is slightly different, Some (Like Cities:
Skylines) is pretty good about it's properties and E nicely figures it out.
Borderlands 2 at least does nice things like:

WM_CLASS(STRING) = "Borderlands2", "Borderlands2"
_NET_WM_PID(CARDINAL) = 21729
WM_NAME(STRING) = "Borderlands 2"
_NET_WM_NAME(UTF8_STRING) = "Borderlands 2"

that lets us match it back to:

/home/raster/.local/share/applications/Borderlands_2.desktop

Because we can maybe trace a PID back to something E launched (It knows the
PID's of everything it started, gets their SIGCHLDs to know they exited and
tracks them etc.). We have fallbacks to check WM_CLASS and match that etc. ...
it's kind of a complex nightmare of guess-o-rama to find the desktop file that
belongs to the window.

Steam itself is bad because:

WM_NAME(UTF8_STRING) = "Steam"
WM_CLASS(STRING) = "Steam", "Steam"

but this leads e to think it belongs to Cities: Skylines because its executable
is:

Exec=steam steam://rungameid/255710

but the 2 steam .desktop files have:

Exec=/usr/bin/steam-native %U

Exec=/usr/bin/steam-runtime %U

(it installs a steam-native and steam-runtime desktop file ... but no steam
one). it doesn't give a WMClass entry to match it... and no PID property.

... you get the idea.

> I'm now running Bodhi instead of Xubuntu, and snap appears to be 

so you're not running enlightenment then? running moshka - bodhi's fork of our
release from 2012 (5 years old)? so 5 years worth of bug fixes, improvements
etc. wouldn't count? in which case... I'm not sure we'll be on the same page.

or did you nuke moshka and install E 0.22 etc.?

> available: should I use that instead (Hiri provide a snap) or is there a 
> better way to inform the system of Hiri's presence?

.desktop files is how it works. their content can make it easy to match up to a
window, or hard, depending on the properties. you can find out the properties
of a window with the xprop command. just run it then click on the window you
want properties from. you cant change the properties. some are set by the app,
some by the wm. app set ones are up to the app to set and maintain. based on
those it can be possible to ensure the desktop file contains the right fields
that can uniquely match it up to a window... as long as the app provides enough
information correctly.

> ///Peter
> 
> ------------------------------------------------------------------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> _______________________________________________
> enlightenment-users mailing list
> enlightenment-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-users


-- 
------------- Codito, ergo sum - "I code, therefore I am" --------------
Carsten Haitzler - ras...@rasterman.com


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
enlightenment-users mailing list
enlightenment-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-users

Reply via email to