raboof / notion

Tiling tabbed window manager
https://notionwm.net/
GNU Lesser General Public License v2.1
269 stars 63 forks source link

Add support for notion workspaces to polybar #72

Open wilhelmy opened 5 years ago

wilhelmy commented 5 years ago

This issue mostly consists of adding a corresponding change to polybar, but I wanted to ask:

If I inspect xprop -root on different workspaces, I get different values for:

_ION_WORKSPACE(STRING) = "WGroupWS<1>"

(mostly the number is different).

Since I don't have a multihead setup to test with at the moment, how does this behave on a second screen? How do I rename a workspace? Will it stay _ION_WORKSPACE or will it change to _NOTION_WORKSPACE at some point, like e.g. _NOTION_MOD_NOTIONFLUX_SOCKET?

wilhelmy commented 5 years ago

Furthermore: what's the correct way to query information about the list of all workspaces rather than just the currently selected one from notion, as well as switching to a different workspace (let's say, in case someone clicks on a different workspace name in polybar). Should I use the notionflux socket to send lua code to notion?

wilhelmy commented 5 years ago

That said, initial results look rather good, better than notion's statusbar with minimal effort :)

https://barfooze.de/i/fukushima-2019-03-21_01:11:52.png

raboof commented 5 years ago

Cool, and that indeed does look rather good. Indeed I think the ability to mix and match statusbars and windowmanagers is a great advantage of the X11 model, which is why I would indeed recommend 'external' status bars over the builtin mod_statusbar.

If I inspect xprop -root on different workspaces, I get different values for _ION_WORKSPACE. I don't have a multihead setup to test with at the moment, how does this behave on a second screen?

I don't have one attached right now, but I suspect it changes to the current workspace of the screen where the cursor/focus is

How do I rename a workspace?

It is named on creation - not sure how to rename it off the top of my head, probably through notionflux

Will it stay _ION_WORKSPACE or will it change to _NOTION_WORKSPACE at some point, like e.g. _NOTION_MOD_NOTIONFLUX_SOCKET

I think it would be good to change it at some point but I have no plans to do it any time soon.

what's the correct way to query information about the list of all workspaces rather than just the currently selected one from notion, as well as switching to a different workspace

EWMH would be the 'neat' way to do it (I guess https://specifications.freedesktop.org/wm-spec/wm-spec-latest.html#idm140200472709456 ?), but I'm not sure if this is supported in Notion at this moment.

wilhelmy commented 5 years ago

I've asked on polybar's IRC channel, they asked me to implement EWMH. I'm currently looking at the spec but I'm not making any promises :)

raboof commented 5 years ago

That's great! You can probably take some inspiration from ioncore/netwm.c and perhaps contrib/scripts/net_client_list.lua. Let me know how you fare, and don't be shy to share 'partial' solutions or thoughts.

wilhelmy commented 5 years ago

If I read this right, the way multi-desktop support works in EWMH indeed does not support per-screen desktops (given that this is a root window property, not a property of the "virtual root window" notion creates per screen): https://specifications.freedesktop.org/wm-spec/wm-spec-1.3.html#idm140130317699200

raboof commented 5 years ago

Would there be any way to wiggle it? Perhaps set it to the current workspace of the currently-focused screen?

wilhelmy commented 5 years ago

Hm, good point, I forgot that screens have a focus. Thanks, I'll look into it :)