Sytten / Facebook-Messenger-Desktop

Bring messenger.com to your OS X, Windows or Linux desktop.
https://sytten.github.io/Facebook-Messenger-Desktop/
MIT License
54 stars 9 forks source link

WM_CLASS not set #26

Closed skjnldsv closed 8 years ago

skjnldsv commented 8 years ago

Hello! Thanks you very much for taking this project! You're doing an amazing job updating this app.

This issue is more a mix between a problem and an enhancement. If you're using tiling manager like i3 and/or bspwm (on linux), you can set rules to automatically assign application on specific desktops. This require the wm_class info to be defined inside the app. This is a common requirement, most of the app (all of them?) have this data set on linux.

The rules to assign desktops are:

bspc rule -a Vlc desktop=^2
bspc rule -a messengerfordesktop desktop=^6

The problem is that the Messenger app doesn't have the requirements, so the rule can't work.

When using the xprop command, i get the following infos

_NET_WM_USER_TIME(CARDINAL) = 74813799
_NET_WM_DESKTOP(CARDINAL) = 5
WM_NORMAL_HINTS(WM_SIZE_HINTS):
        program specified location: 20, 62
WM_NAME(UTF8_STRING) = "Messenger"
_NET_WM_NAME(UTF8_STRING) = "Messenger"
_NET_WM_ICON(CARDINAL) = 
XdndAware(ATOM) = BITMAP
_MOTIF_WM_HINTS(_MOTIF_WM_HINTS) = 0x2, 0x0, 0x1, 0x0, 0x0
_NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_NORMAL
_NET_WM_PID(CARDINAL) = 2539
WM_LOCALE_NAME(STRING) = "en_US.UTF-8"
WM_CLIENT_MACHINE(STRING) = "hostname"
WM_PROTOCOLS(ATOM): protocols  WM_DELETE_WINDOW, _NET_WM_PING

And for Vlc I get the following data:

XdndAware(ATOM) = BITMAP
_MOTIF_DRAG_RECEIVER_INFO(_MOTIF_DRAG_RECEIVER_INFO) = 0x6c, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0
_NET_WM_NAME(UTF8_STRING) = "Multimedia Player VLC"
WM_CLIENT_LEADER(WINDOW): window id # 0x2e00005
WM_WINDOW_ROLE(STRING) = "vlc-main"
_NET_WM_PID(CARDINAL) = 2835
_NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_NORMAL
_MOTIF_WM_HINTS(_MOTIF_WM_HINTS) = 0x3, 0x3e, 0x7e, 0x0, 0x0
WM_PROTOCOLS(ATOM): protocols  WM_DELETE_WINDOW, WM_TAKE_FOCUS, _NET_WM_PING, _NET_WM_SYNC_REQUEST
WM_NAME(STRING) = "Multimedia Player VLC"
WM_LOCALE_NAME(STRING) = "en_US.UTF-8"
WM_CLASS(STRING) = "vlc", "Vlc"
WM_HINTS(WM_HINTS):
        Client accepts input or input focus: True
        Initial state is Normal State.
        bitmap id # to use for icon: 0x2e00012
        window id # of group leader: 0x2e00005
WM_NORMAL_HINTS(WM_SIZE_HINTS):
        user specified location: 20, 62
        program specified location: 20, 62
        user specified size: 1880 by 998
        program specified size: 1880 by 998
        program specified minimum size: 489 by 368
        window gravity: NorthWest
WM_CLIENT_MACHINE(STRING) = "hostname"
WM_COMMAND(STRING) = { "vlc" }
Sytten commented 8 years ago

Hum thats strange, I thought it was fixed a while ago, I might take a look this weekend... If you can find where it is in the config files, pls PR (I really dont have a lot of time right now :/)