A macOS-like operating system based on FreeBSD
github.com
github.com
macOS and Haiku are both free of X11, so I'm going to stick with those.
Also, with "flat design", suddenly libXaw is on the cutting edge of UI look and feel again...
Further more, by using TCP/X11 for the wire protocol, any dropped packets have to be retransmitted before you can update unrelated portions of the display because it requires in-order processing by design.
This is why high-quality, high-frame-rate remote displays never use that design.
Over Christmas 2017 I threw together a simple demo of a "system compositor" (a compositor that runs another wayland compositor) that sent all of the video frames rendered into a hardware video encoder (libva on an Intel GPU) as well as the screen. I was able to record playing games without much CPU overhead at all. I never really got beyond nesting the weston reference compositor because both gnome's wayland compositor and kde's kwin compositor don't support running nested (or at least didn't at the time). Was quite proud of myself for being able to record steam games playing at full screen framerate (Crypt of the Necrodancer and other simple things, I had a i7-5600u in my laptop).
I'd have probably turned it into a project like this, but I work for a streaming service professionally and they didn't approve of me working on open source work in that realm :(
At ${dayjob} we do it once in a blue moon; not out of sheer necessity but for legacy reasons.
Other than that I never do it.
> Other than that I never do it.
If we got rid of all the features that someone never uses (or even a lot of people never use), we wouldn't have any features anymore.
I think it's not widely done because Apple and Microsoft haven't put out good tooling for it. If one of them released that kind of thing as a high-quality, polished feature, I bet it'd be big.
Also, IMO the default set-up and behavior for it on Linux machines isn't very good (shocker, that). Much better would be persistent remote sessions that let you drop your connection on one machine and re-connect on another, and leave them running indefinitely when not connected. You can get that working with some extra software but it's a bit janky and the UX is nerd-only, like most of this stuff.
in grad school we used it to share very powerful workstations without getting out of the office.
Sometimes I need to use a GUI program on my Desktop while I'm away. It might be something as silly as adjusting a parameter on a simulation run.
Sometimes I want to start a program on a remote computer (say VLC on my kids laptop downstairs)
Embarrassing admission - sometimes I know how to adjust a setting from the GUI and not from terminal. Maybe I want to mute a computer downstairs (btw, just an example. I'd use alsamixer, if killall weren't an option).
Honestly, I'd use it a lot more if it were faster and less laggy. Daily, even.
if you actually use remote X capabilities, wayland is no replacement.
also it deals better if you consider apps hostile and want to still run them with some integration with the desktop but still safely isolated. X complements chroot et al much better. which I guess fits this project since this is pretty much Wine but for bsd/osx instead of linux/win
It will always have little bits of jank, always have inconsistencies and although all it does is draw objects on a screen it just doesn't do it to the level of quality as in tear and flicker free that MacOS can manage.
None of the 10.0+ releases of macOS used DP, instead it used Quartz2D, eventually added OpenGL to the mix, and now uses a combo of Quartz and Metal.
End of the day one can drag windows around smoothly and resize them without flickering and have consistent drag and drop etc and the other does not.
No, it doesn't. But means one cannot claim "it will always have little bits of jank, always have inconsistencies although all it does is draw objects on a screen" just because it is old, since it turns out it actually isn't. X11 does have a lot of cruft, but so does WindowServer.
> End of the day one can drag windows around smoothly and resize them without flickering and have consistent drag and drop etc and the other does not.
That is just a lie. I can easily make Firefox flicker on OS X while resizing and I can easily resize say Gtk+3 windows on X without flickering. And I have almost 3 4k displays...
That said, I do agree that I would generally expect even older Apple codebases to be less crufty than stuff like Xorg. Apple rips out legacy APIs and rewrites things pretty ruthlessly on basically every macOS release.
Pretty much every actual window management feature on macOS aside from dragging windows by the titlebar is janky as hell. :-\
(It is neat that display server crashes/restarts on macOS don't cause you to lose your graphical session, though. Idk if any F/OSS WMs have that.)
That said, their stability and flexibility is unmatched. Windows got a lot better recently, and they have a harder surface to deal with (orders of magnitude more hardware to support). But from an outsiders perspective Apple's feel like the best balance right now.
There isn't a maximise behaviour. Per the interface guidance, that button is called "zoom" [1], not maximise, and it therefore makes sense that apps do something different depending on what they need to zoom in a way that makes sense for them.
[1]: https://developer.apple.com/design/human-interface-guideline...
The button now serves dual purpose as "full screen" and "zoom" (with option). It's not "maximise" though.
I don't know when it deteriorated on Mac OS X, but I've recently started to use Rectangle a lot (https://rectangleapp.com/). This has been really useful.
Windows and Linux just can't come close. I get why Linux never will for good reasons but Windows has absolutely no excuse.
Our company used them for some games and other things. I once ported a UIKit app that used autolayout and was surprised at well it worked. They were acquired by Google IIRC.
Did anyone manage to try it out?
Darwin is more directly derived from NeXTSTEP, BSD, and Mach, though the XNU kernel includes a number of elements from FreeBSD including the network stack, and the userland is largely FreeBSD.
> and didnt apple hoover up all the dev teams from Freebsd to join and built it?
FreeBSD creator Jordan Hubbard worked for Apple 2001-2013, but I'm not sure who approached whom.
Just wait until they get to CoreAudio, though, hahaha! Not at all clear how that's supposed to work, and good luck if you want a sample rate that's not the default. Oh, and don't ever change anything about your environment once you've got it work, like, say, the operating system version.
To really keep the promise of source-code compatibility, it seems like you'd need to quickly absorb all of the new APIs, plus, figure out how to implement them at the lower levels, on a different OS (MacOS is mach-based.)
Of course, the project has doubtless thought much more about this than I have, and maybe have an awesome plan, too.