Live data from Hacker News

Yserver: A modern X11 server written in Rust

github.com

31–40 of 131 posts

Re: Yserver: A modern X11 server written in Rust

#31
post #24
post #18

Earlier quoted context omitted.

What would you rather they use to communicate with the server? Message passing via shared memory? UNIX sockets are perfectly fine for IPC with small amounts of data, and is how everything in UNIX has always done it, network transparency or not. They provide a simple, efficient and reliable communication channel between two processes.

Wayland uses UNIX socket for message passing, but then offload most of the work to shared memory when the real work begins (GPU rendering). I just wanted to add some nuances that it's not as black and white as this comment made it seem.

Yeah, that’s correct; I implied it by only talking about sending small messages but it’s worth stating explicitly.

Re: Yserver: A modern X11 server written in Rust

#32
post #18

Earlier quoted context omitted.

What would you rather they use to communicate with the server? Message passing via shared memory? UNIX sockets are perfectly fine for IPC with small amounts of data, and is how everything in UNIX has always done it, network transparency or not. They provide a simple, efficient and reliable communication channel between two processes.

How about making the standard client library's API the interface, and have it hide whatever the system is actually using? A long time ago when I looked at designing a X11 replacement, that was my approach. AFAIK, only special X utilities used anything but Xlib anyway. And later I think this is what early revisions of Canonical's Mir did.

That's what wayland-client does.

Re: Yserver: A modern X11 server written in Rust

#33
post #12

I really wish people gave a damn about the “gui over the network” problem x11 solves. Wayland drops this use case entirely so we’re pretty much universally stuck with vnc. Microsoft rdp is a great solution for this in windows land.

If you're fine with RDP, both KDE and GNOME have built-in RDP support on Wayland. If you want something closer to ssh -X, look up waypipe.

Re: Yserver: A modern X11 server written in Rust

#34
Love seeing this. I'd be interested in seeing how much more could be shaved off by doing things like offering an xcb/xlib shim that moves more functionality to the client side (e.g. server-side font support are trivial to move client-side) as a means to deprecate features on the server side that most modern X11 apps don't use anyway.

Re: Yserver: A modern X11 server written in Rust

#35

> dropping legacy baggage (multiple screens[...] Looked nice, but crossed it off as soon as I saw that, as I'm working on a project currently that uses many screens. Can't just call a thing legacy because you and the people you directly know aren't using it.

I think X11 terminology may be causing some confusion. Refer to https://nouveau.freedesktop.org/MultiMonitorDesktop.html

The normal, usable way to have multiple monitors for your X11 desktop environment is for them to all be combined into one logical screen that you can move windows around in, and that applications aware of the right extensions can discover the actual physical layout of the monitors that comprise the single logical screen. Multiple screens in that X11 sense is a far more obscure feature than simply supporting more than one physical monitor.

Re: Yserver: A modern X11 server written in Rust

#36
post #12

I really wish people gave a damn about the “gui over the network” problem x11 solves. Wayland drops this use case entirely so we’re pretty much universally stuck with vnc. Microsoft rdp is a great solution for this in windows land.

waypipe works very fine.

    waypipe ssh XXX

Re: Yserver: A modern X11 server written in Rust

#37
post #11
post #2

This is pretty cool - especially that it's at the point where it can be used with a real window manager. I'm curious why multiple screens is considered legacy baggage and thus out of scope, given how common multiple monitor setups are these days. I also have zero familiarity with X internals, so don't know if multiple monitor support is a horror show that'd be miserable to support.

I suspect(with out reading the source to find out) that screens are the traditional X11 screens as opposed to the modern xrandr combined screen. Traditionally each screen in an X11 setup was it's own separate thing with it's own separate frame buffer. While technically applications could move between screens, this depended on the application caring enough to do so. It had to maintain two(or more) mirrored windows(one…

Just did a quick `xrand -q` to confirm I'm doing multiple DPIs, etc (cuz laptop and external monitor) on a single screen with 0 issues. Unless the physical misalignment of the monitors, which reflects as a vertical jump when moving the mouse pointer across the virtual boundary, can be considered an issue.

Re: Yserver: A modern X11 server written in Rust

#39
post #29

Earlier quoted context omitted.

How about making the standard client library's API the interface, and have it hide whatever the system is actually using? A long time ago when I looked at designing a X11 replacement, that was my approach. AFAIK, only special X utilities used anything but Xlib anyway. And later I think this is what early revisions of Canonical's Mir did.

So .. still using sockets, but not documenting how the messages on the socket look? Why?

If I had to guess, because then at least -hypothetically- easier to optimize for the 'local' case (depending on implementation, at least from my understanding of the POSIX/*nix paradigm, bending and breaking a bunch of rules possibly) by dropping in a different implementation.

Re: Yserver: A modern X11 server written in Rust

#40
post #12

I really wish people gave a damn about the “gui over the network” problem x11 solves. Wayland drops this use case entirely so we’re pretty much universally stuck with vnc. Microsoft rdp is a great solution for this in windows land.

> Microsoft rdp is a great solution for this in windows land.

The people who put together TS/RDP are geniuses IMO, it's insane as to how usable it has been for at least 15-ish years...

Post reply on HN