4 ms·
> Worm is a tiny, dynamic, tag-based window manager written in the Nim language. It supports both a floating mode and master-stack tiling with gaps and struts.
by twic 4y ago
> Worm is a tiny, dynamic, tag-based window manager written in the Nim language. It supports both a floating mode and master-stack tiling with gaps and struts.
What do dynamic, tag-based, floating mode, master-stack tiling, gaps, and struts mean here?
- opan 4y agodynamic = automatic layout as opposed to manual like in i3 tag-based = instead of separate workspaces, you have tags, which let you do things like have the same window stored in multiple spots, so you can have a firefox + terminal tag and then switch to a firefox + video player tag without really moving the firefox window, like dwm/awesomewm, but again unlike i3 floating mode = you can make a window appear over others and be moved around freely in addition to the default state of tiling windows master-stack = a popular dynamic layout where you have a big main window and other smaller windows beside it, and you can cycle them to change which gets the big space gaps = empty space between windows, mostly for aesthetic purpose (there is a whole i3 fork called i3-gaps just to add this) I am not sure about "struts". Maybe has to do with leaving an empty space somewhere. I know stumpwm allows that, and I can't think of what it's called.
- sidpatil 4y agoI believe struts are reserved margins along the sides of the desktop, similar to gaps.
- burntsushi 4y agoWith respect to "strut," they're part of the EWMH: https://specifications.freedesktop.org/wm-spec/wm-spec-1.3.html#idm46400537342880 https://specifications.freedesktop.org/wm-spec/wm-spec-1.3.h...
- memorable 4y ago- I'm assuming `tag-based` means it has multiple window sessions (like `workspace` in i3/Sway) - `floating-mode` means that the window can also be resized to be at the middle of the screen (instead of covering the entire screen) - `gaps` means the space (or gap) between windows I cannot explain the rest, but yeah, that's a lot of jargon.
- Kalq 4y agoNot sure about struts but here's what the rest mean. Dynamic tiling: When a new window is created, the window manager automatically decides where to place the window based on it's rule. This is usually contrasted with manual tiling where the user usually has to decide where a window should go before creating it. In this case, the ruleset Work uses appears to be master-stack based tiling. Which leads to that. Master-Stack Tiling: A layout where once window is considered the master window, taking about about half the screen. And the rest of the windows stack up on top of each other on one side. Floating mode: A lot of tiling window managers also allow you to designate a window as floating like a traditional desktop environment such as Gnome where every windows is floating by default and can be dragged around into any position. This is useful for certain applications, for example I like to have my media player be floating. Also I set up a certain terminal type to be floating so I can quickly popup or dropdown a terminal to run a quick command in it before dismissing the terminal. Gaps: Tiling window managers traditionally take up the entire screen. For example, with only one window it will be fullscreened. With 2 windows, they will be tiled side by side with no space in between, etc. Gaps means that the window manager allows spacing in between these tiled windows (and often between a window and the edge of the screen as well). This can allow bits of your wallpaper to peek through. Some people find this more aesthetic. Tag-based: Some window managers just call their implementation of traditional virtual desktops (workspaces), tags. They make no differentiation. However more accurately, a tag is a label that is put on a window. Most implementations allow a window to have multiple tags put on it. That's the most generic definition of tags. Usually window managers use these tags to allow for interesting virtual desktop workflows. One way this can be useful is if a window has tags 1, 4, and 5. Then if you were to switch to workspace 1, 4 or 5, that window would show up. More advanced implementations would allow you to adjust how that window looks per tag. For example in workspace 1, that window might be fullscreen, but it 4 it's tiled on the left and it 5 it's floating on the bottom half. There are other implementations of the tag concept but it gets complicated fast. Hope that helps. This is just my general understanding of these concepts. I have no idea how Worm defines or implements them.