Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Way Cooler: A tiling window manager for Wayland written in Rust (github.com/immington-industries)
94 points by pimeys on Aug 13, 2016 | hide | past | favorite | 35 comments


Client-side decorations, visible in the screenshot, are a true PITA. It's stupid that each widget set has to replicate this behavior. It results in visual differences, and it's doubly stupid that this is touted as an "advancement" just for the rate case that you want to override the title bar.

You could have done the inverse, as currently done with X11 (server-side decoration by default, but overridable).

This incurs in stupid behavior for all tiling window managers in wayland, as they cannot enforce the client to remove the title bar. For a tiling window manager user, this a significant downgrade in wayland. The WM protocol in X11 is one of the few areas that let X11 innovate a lot compared to all other desktops. The number of (wonderfully) different window managers is proof. Server-side decorations, in particular, should have been a no-brainer!


FWIW, we use server-side decos in the Wayland implementation of KDE Plasma and KDE/Qt apps, for these reasons and many others. If anyone says it can't be done, feel free to point them our way :-)


How?


> It results in visual differences, and it's doubly stupid that this is touted as an "advancement" just for the rate case that you want to override the title bar.

Which is a stupid idea in and of itself. It means there's no trusted path to the window manager that programs can't spoof.


Another unsolved feature in Wayland is ssh-agent/gpg-agent support. I haven't found a way to make it work yet. It's either multiple agents or many fresh agents running.


Why does Wayland need any sort of ssh-agent/gpg-agent support? I can't think of any reason for Wayland to have anything to do with their functionality, but I'm not at all familiar with Wayland.


The way this works in X11 is that you usually start your X11 env such that the environment variable pointing to the agent (which got started) is shared and the agent is accessible by applications. That way running ssh or gpg in any xterm will just work. This is not possible at the moment in Wayland. Think of it like OSX's keychain.


Why shouldn't it be possible? You can just setup your agent before you start Wayland, it inherits the environment.


Huh, I'll try that. I never thought of it like that because due to conventions the agent was always part of xinit. Might need to come up with a different way of running wayland compositors to keep the actually TTY shell free of the agent.


Yeah, they really are a pain, hopefully we can transfer to another terminal emulator for it (I'm one of the main developers).

Also as an aside, that's actually a linked video, github just does a REALLY bad job of showing that off. I'm going to have to make that more clear.


> This incurs in stupid behavior for all tiling window managers in wayland, as they cannot enforce the client to remove the title bar

But neither can X11 WMs really enforce in any way client to remove title bar. Of course the WM might refuse to render its own decorations, but it can't really deny the client of rendering whatever it wants.


True, but in practice nobody really has a reason to override the title bar, because it forces you to implement dragging and resizing behavior as well. People that do this know the pain. It also works poorly unless you do it at a pretty low level (within the toolkit itself).

The only program(s) that do this are chromium and firefox in my machine, and both can disable this because it doesn't look native.


Also check out sway, i3 compatible window manager for Wayland: https://github.com/SirCmpwn/sway


I've never used i3, but I've tried sway and it works, though isn't at feature parity with i3. It's usable though. And as I wrote in a sibling comment, Xwayland integration is even more buggier in libwlc (used by way-cooler and sway) than it is in libweston, so be prepared for weirdness with X11 apps. Floating window support is also wonky.


tried it half a year ago. wasn't usable - constantly crashed


If you're speaking of sway, it's usable now, but Xwayland is wonkier than in Weston.


sway is awesome! It's got almost all the features I'm used to from i3 (major exception being mouse support for the bar), and it's only a _little_ buggy :-)


Since v0.9, sway has mouse support for swaybar (check out the changelog: https://github.com/SirCmpwn/sway/releases/tag/0.9).


I wish they had picked libweston instead because it's less buggy and Xwayland integrations has less problems as well. You can get libweston the 1.12 release (aka current git master or the new release in probably two weeks). There's also libweston-desktop that provides more abstractions and helpers for writing desktop compositors which should land in weston.git soon.

But since wlc 0.0.5 is out there, I can understand why they'd base it on that despite the deficiencies.

It's good to see more Wayland compositors and I hope that means someone will port urxvt or xterm to Wayland for those of us who miss too much in vte-based emulators or want something more stable than EFL-based Terminology.


An Electron powered status bar? So we have Rust, Lua and Javascript in there. Hmm... Maybe someone can port (nwm)[https://github.com/mixu/nwm] to Wayland?


> An Electron powered status bar?

Chromium and Javascript to run a status bar? A panel is a relatively simple program; it shouldn't be using more than ~1MB of memory (maybe more with large icons). Using Chromium adds many useless layers of abstraction (e.g. HTML, JS engine) and wastes an incredible amount of memory.


You're right and the memory use of KDE, GNOME, XFCE is unjustifiable. Even sway (the i3-inspired Wayland compositor) uses a lot of money for a simple tiling compositor that doesn't have fancy "bling". It's three times the memory use as xmonad and xmobar, but maybe it's an architectural issue with wayland. I mean, Weston isn't light-weight either.


Wayland compositors must also do (some) actions that were previously handled by X server. Ergo your comparison is a bit unfair, you should try comparing sway vs i3 + Xorg.


That's what I suspected by saying "maybe it's an architectural issue with wayland".


More of an architectural goal than an architectural issue.


Give lxde a shot then.


I never felt comfortable with desktop envs, going back to KDE1 in the 90s. Used FVWM, Enlightenment, WindowMaker, LarsWM, Ion, WMI, DWM, spectrwm, Xmonad, sway, Weston, but never a desktop env due to missing flexibility and harder and harder config portability. My FVWM config still works, but GTK3 and GNOME configs are highly unlikely to work the same after 12 months.


Hey I hear you. I would say lxde is like e16 except less fancy looking.

VERY basic. like, you get to write a script to bind the print screen key to take a screenshot.


I don't use a DE, for much the same reasons you name, but I do use several pieces of LXDE, as they are generally built configurably and work well outside of the DE.


My status bar would use 1MB of memory if it had a 900 KB animated gif clock.


next: an electron powered mouse pointer.


There's Electron-powered terminal emulators, so we're already there.


I wouldn't use it myself, but I guess the justification is that you have the full power of a web page, crammed into a widget bar, and there are many frontend devs who are most familiar with HTML+CSS+JS. Again, I wouldn't use it, and agree it's a bad idea as long as browser engines are monstrosities.


The programming and styling like a web page might be it and maybe it's also easier to consume random web feeds.





Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: