4 ms·
When I'm unfamiliar with the internals of a piece of software, it can seem like black magic; but it's illuminating to see something you didn't know break down i
by niftich 9y ago
When I'm unfamiliar with the internals of a piece of software, it can seem like black magic; but it's illuminating to see something you didn't know break down into familiar steps. When the rationale behind the steps and the secret sauce -- business logic -- between them is explained incrementally, my understanding of the system grows even more, so I love posts like this.
However, can you say a few words about why one would want to a write an alternate Wayland compositor professionally (i.e. reasons other than learning and exploration) -- as in: does the protocol offer places where meaningful feature differentiation can be achieved, while still achieving full compliance?
The existence of something like 'wlroots' to me is an indicator that prospective Wayland compositors are, by necessity of supporting the Wayland architecture, more similar than different. Is that accurate?
- shmerl 9y ago> prospective Wayland compositors are, by necessity of supporting the Wayland architecture, more similar than different. Is that accurate? They all support Wayland protocol, but they can be quite different. For instance see the whole topic on server side vs client side window decorations.
- Sir_Cmpwn 9y agowlroots is designed to support many different user interaction paradigms. Many Wayland compositors do share the same nuances, sure, but many do not. In addition to the typical desktop experience, you can use wlroots to make a compositor which arranges windows in 3D space for VR, or make a compositor that runs a phone interface, or a dashboard for a car, or any number of other use-cases. Even within the desktop paradigm, there's a lot of variance and room for compositors to specialize, but it's more subtle.
- katastic 9y agoI'm still waiting for someone to make a wayland compositor that compares to compiz. One super important feature I use every day is being able to invert a SINGLE window and not the entire screen. For all the "omg it's slow" posts about compiz and x-server, it's fast enough to run on my netbook with a 5-watt processor.
- simcop2387 9y agoI haven't tried it recently but if kde has gotten better on Wayland it might offer this feature. You can set a compositing effect for this in x11 with it last I looked. But last time I tried kde Wayland it was far from stable.
- virtualwhys 9y ago> One super important feature I use every day is being able to invert a SINGLE window and not the entire screen While it's not per window inversion, for years I've been using the tiny (100KB) and wondrous xcalib package for screen inversion* Should note that in order to get per screen inversion working I need to use Nvidia's Xinerama extension (without this extension inversion happens across all screens). * bound to alt-o/alt-i hotkeys with xbindkeys. Here's the .xbindkeysrc if anyone's interested. # invert screen 0 "xcalib -i -a -s 0" m:0x8 + c:32 # invert screen 1 "xcalib -i -a -s 1" m:0x8 + c:31
- osivertsson 9y agoWith xcalib I never got inversion working on all screens, only the first one (Intel graphics). However, XRandR Invert Colors [1] has worked flawless with multi-monitor setups. [1] https://github.com/zoltanp/xrandr-invert-colors https://github.com/zoltanp/xrandr-invert-colors
- Sir_Cmpwn 9y agoDo you mean invert as in turn over 180 degrees? Sway 1.0 will be able to do that.
- Soft 9y agoAside from handling details on how the actual drawing happens, Wayland compositors also dictate how window management is done. Obviosly, there is a lot of room for different designs in that space. Just look at how many different Window Managers there exist for X. My understanding is that wlroots handles a lot of heavy lifting related to drawing and input handling making experimentation with new compositors a lot easier.
- tadfisher 9y agoWell, I want to embed a Wayland compositor in Emacs using the new native modules support. wlroots makes that remotely possible.
- voxadam 9y agoThat sounds genuinely interesting. That said, I have to ask, why you would want to do such a thing?
- yjftsjthsd-h 9y agoHasn't the goal of emacs always been to be everything? It can be init (1), a web browser (2), and already a X11 WM (3). (1) http://www.informatimago.com/linux/emacs-on-user-mode-linux.html http://www.informatimago.com/linux/emacs-on-user-mode-linux.... (2) https://www.emacswiki.org/emacs/CategoryWebBrowser https://www.emacswiki.org/emacs/CategoryWebBrowser (3) https://www.emacswiki.org/emacs/XWindowEmacsManager https://www.emacswiki.org/emacs/XWindowEmacsManager
- _emacsomancer_ 9y agoSome of us actually want Lisp machines, and Emacs is effectively a Lisp machine emulator disguised as a text editor.
- lispm 9y agoGNU Emacs is a text editor, extensible in Emacs Lisp. A Lisp Machine usually is a real computer - one with an OS written in Lisp. GNU Emacs OTOH is hosted on an OS and doesn't even have multiple threads. It's more an application development and execution environment, for applications based on Emacs text-buffer abstraction. The actual Lisp operating system user interfaces were not built on a text-buffer abstraction.
- tadfisher 9y agoYes. Emacs is more akin to fantastically-extensible shell. Which is what makes it well-suited for managing the display windows of subprocesses, if you ignore the threading issues.