X11's client-server model is seriously underappreciated, and the continuing efforts to make X behave exactly like Microsoft Windows frequently forget about network transparency.
Conversely, trying to make X behave like Microsoft Remote Desktop is often unreasonably painful. I've not yet seen a nice solution for detaching and reattaching X applications like screen(1)
It's fake in a lot of ways, especially in its input model. It's well-commented and designed as a codebase to learn from, not as a real implementation of an X server that's reusable.
Unfortunately, while it appears to run just fine under Safari, the window inspector is broken. It's not vertically splitting the area and putting the attributes on the right; it's horizontally splitting and putting the attributes below the window list, except there's no room to see any of the attributes like that.
It seems a real shame for the layout of the window inspector to be the only compatibility issue with Safari. Any chance you can get that fixed?
Is this supposed to scroll, or what?
The issue with Safari is purely that the flexbox model requires the -webkit prefix, so it needs `display: -webkit-flex` and `-webkit-flex: 1`.
I'll submit a pull request for the Safari issues shortly, I'm trying to see if I can figure out what's wrong with scrolling first.
PR submitted. This fixes both Safari compatibility and scrolling for Chrome/Safari.
Wayland's model is much more likely to end up with useful network support.
Modern graphics simply does not scale across networks naively.
And yet every single time someone brings this up, plenty of people chime it that it is useful, because they're using it. Unless RDP and VNC have fixed their performance problems and don't break UI flow by putting the whole remote desktop in a separate window (instead of making windows for remote apps seamless), then many would contend that RDP and VNC don't give better results.
And yet Wayland keeps steamrolling over these objections. Oh well, at least they finally admitted that network support isn't just some useless toy that can be added on later, "if anybody even uses it".
They are both much, much faster than X11. X11 has higher latency and uses significantly more bandwidth.
> by putting the whole remote desktop in a separate window (instead of making windows for remote apps seamless)
Many of the things that make modern desktops nice (like client-side decorations) make it hard to merge remote and local windows. It's not impossible (witness VirtualBox's attempt), but there are peculiar corner cases if you want to make it generic across platforms.
If you want a modern desktop that's fast on modern hardware (arguably its primary purpose), remote desktop will have to work RDP/VNC style.
For working from home, we've got NX. Again, it mostly just works; I can't really tell that it's a non-local window. Again, I can't rule out though cannot imagine RDP does it better; some amount of latency is unavoidable via WAN; VNC would be excruciating.
This setup has been working fine for about 6 years now, btw.
In my experience, this hasn't been the case. Running Emacs via X full screened across two monitors (both at 1920x1080) is much snappier than running VNC from a Windows box, single screened, lower resolution (can't remember exact numbers just now) and lower BPP. Of course, that could just be the typical disparity in IO performance between Windows and Linux.
And while I grant that X sessions can't be detached by default, there are solutions for that (see XPra further up thread). There's also been compression for X quite some time. On top of all of this, you don't even have to be running an actual GUI on the serving end; can the same be said for RDP and VNC? Or Wayland?
Emacs is a relatively simple application, which behaves very differently than, say, Firefox.
And anyway, even if you need remote display, network support isn't necessary in the core protocol. You can get networked display by having a Wayland compositor that runs on the remote end and communicates with a Wayland client on the local end in any number of better-than-X11 protocols: rdp, vnc, frickin' streaming h.264. And remote apps don't even have to know that they're being displayed remotely.
OSX comes pre-installed with an X server, which should put the lie to the notion that you can't have both. I don't know my way around this issue at an extremely low level, such as if I'd worked on the guts of an X server; however, I'm perfectly able to believe that video hardware has evolved capabilities that X11 just can't support properly. It also seems somewhat dubious that the subsystem that provides access to the video hardware needs to be coupled to a network protocol. It seems like, in principle, you could layer one atop the other and get the same -- or better -- result. Now, if GUI applications weren't forced to deal with X, then client support for X might start to erode as applications chose to go around it. But, how bad would that be? Is preventing it worth the opportunity cost?
If you want to develop beautiful apps on the Mac platform you use Cocoa -- not X. Apple decided against basing its graphics stack on X11 for sound technical reasons.
and even still, X runs on OSX just fine, AFAIK (please correct me if I'm wrong -- anyone). The X server could stand to have been a little more seamlessly-integrated into OSX from a usability standpoint, IME. But from a purely technical perspective it seemed to be fine.
I can understand and emphasize with the feeling that X is way too crufty and needs a re-write; and I know I've done jack-all to contribute (haven't had the time); but I wish that the lessons of history wouldn't be so quickly forgotten and people might ask themselves why X has hung on so long and is so beloved.
I realize that the Wayland developers worked on X, and recognize their expertise and hard work. I have high hopes for Wayland! But I also chose Linux because it doesn't lock me into options (like one window manager), and it's just so gosh darn flexible I can use it for everything from embedded systems to servers, smartphones, clusters, supercomputers and desktops, all being able to export GUI apps in individual windows, without them having to be specially written, even if the sending side doesn't have a graphics card. To lose that would be disappointing to say the least.
As for Linux and choice, its desktop market share is barely above statistical noise. Platforms which limit choice, such as Windows and Mac, are much more widely used. This is because, as it turns out, consistency is preferable to choice when developing a platform. It makes it easier to run new desktop apps, it makes software integration easier, and it even makes requisitioning IT or devops personnel easier because their skills more readily translate between jobs and environments.
So the chaos of development in the 90s is settling into a focus on a few well-supported software components. This includes systemd for the startup daemon and Wayland for the display server. Everything else will be in semi-legacy status, and you will see brokenness or limited functionality in other software if you stray from the community-accepted path.
Welcome to life with a mainstream, modern operating system.
Well, they always felt faster to me than X-Windows.
However, I never managed to configure it in a way it's workable and not very slow even in local connections
I am surely missing something, and I find VNC easier to configure (especially if you have to force a low quality for crappy connections)
It bills itself as "screen for X"
A big problem with xpra in myind is that the wire protocol doesn't even try to be version independent. If you're using slightly different versions on client and server, it just falls down.
If you're using distro packages this is fine e as long as all clients and servers are similar enough to have overlap in the versions that they package. Otherwise you're building from source on every client and server, on various platforms.
I should really do a Show HN of my X11rdp-o-Matic script, which automatically builds and installs X11rdp/xrdp from the github repo - it's been in existence for 2 years and I update the script(s) with enhancements from time to time.
xrdp and the X11rdp back-end X server is in constant and full development, with an actual Xorg module being worked on as well.
Edit: Indeed, I just submitted a Show HN at https://news.ycombinator.com/item?id=8021592
Really, a big part of Wayland is that there isn't much there. It's not a ridiculously complicated system to explain with lots of extensions, you're just having clients pass image files around and get streams of messages for input. The easiest way to get a feel for the system is to use the built-in protocol dumper:
$ WAYLAND_DEBUG=client weston-terminal
If anybody has any more questions on Wayland internals, I'll certainly consider writing a series of articles on it.
It's simple and slim, and therefore hopefully more performant.
And then there was some drama about client side windows decorations, that I didn't quite get.
It is a personal choice. And Wayland the windowing system doesn't care what you do - its decoration agnostic.
Most of the core Wayland team believes that client-side decorations is the technically superior approach for efficiency and accuracy reasons, and we're disappointed KDE is still pushing for server-side decorations.
There is currently no protocol to negotiate between the toolkit and compositor whether to use client-side or server-side decorations. And I can't see one being added in the near future, either.
So I don't know much about the wayland architecture outside of the docs and Daniel Stone's linux.conf.au talk on it. It seemed like a clean and smart replacement to what X has become, after using it for a while have you run into any serious limitations or is everything still going along smoothly?
I've poked my head in a few times, but is there anywhere good to keep up on progress other than the mailing lists?
I haven't been so excited about a piece of software for ages. Reading this and looking at demos gives me the same feeling of amazement I got reading paper magazines when I was younger. Exploring floppies included with books, hearing the modem connecting for the first time, short pause, stream of characters before the login prompt. Magical.
Thank you Jasper_ for doing this and emillion for the link.
It's a super convenient workflow for me, and there's nothing else like it in my opinion. If there is, please let me know! I hate rsync / scp for deploying static sites, but that's the best thing we have right now.
I haven't read the tutorial, so maybe that's perfectly OK.
Today's xkcd is relevant :( ( http://xkcd.com/1393/ )