Cocoa-Way – Native macOS Wayland compositor for running Linux apps seamlessly
github.com
github.com
I don’t doubt that they exist, I’m just struggling to think of a popular example.
but it feels a bit of peer-pressure/cool-factor, people used to like how Mac OS look but after Tahoe, I feel like most people don't.
To be honest, I am on mac right now but I really like Niri/Hyprland and to a degree KDE as well. I definitely feel like those were immensely more customizable and I miss that customizability, even if some people might use that customizability to make it look like MacOS default.
In fact one of the front page articles today is literally calling macOS “ugly” in the title.
But now it’s KDE all the way.
My current job has me using MacOS on an M3 Pro Macbook and I find it barely tolerable compared to KDE. Usually when I want to do something new or change some configuration, either there is no way to do it, or it's hidden behind some key combination that I never would have guessed. I would describe the overall feel of MacOS as "syrupy." When using the mouse or typing, there is almost always some kind of barely-perceptible latency. Nothing is ever crisp and instant. (This isn't specific to this machine, it feels the same way on every Mac I've borrowed.) It's sort of like someone decided that the only way to make it smooth was to also make it slow.
Plasma can be configured to rhyme with macOS' GUI. Not as in shitty macOS themes, but button placement, docks, global menus, widgets, Spotlight, Stage Manager, hot corners, keyboard shortcuts, Preview in Finder, etc.
I have Plasma configured to take advantage of my decade+ of macOS muscle memory without having to put up with Finder and the abysmal task-switching and window management experience on macOS.
Whenever I have to use macOS, I am reminded of how much better Plasma is. I'd might even buy a Mac again if I could use it instead of the default UI.
The first years with macOS tiger it wasn't too bad but over the years it got worse.
But in the field of integrated circuit design there’s lots of apps that are Linux-only. I’ve tried to run some of them in containers on Mac. But XQuartz is awful.
If they ever transitioned to Wayland perhaps this would let us run these apps on Mac in a nice way.
On the other hand some of them have started getting ARM builds (for running simulations on certain cloud environments) so maybe native Mac GUI builds could happen someday soon.
What issues are you seeing with it? I use it pretty heavily and have no complaints…
For example, you may not want to run some graphical applications directly on your Mac for security, isolation or testing purposes.
If this software turns out to be lower latency than RDP and CRD, I could also see it being very useful for accessing a remote graphical workstation (e.g.: running heavy software on an beefy machine in a data center instead of taking up resources on my skinny laptop).
1. I'd really like to run my development environment for things under Siri for its tiling window management but for better or worse I'm deeply embedded in the Apple ecosystem for everything else, this looks like it could be a really nice way of doing it (possibly once multi monitor support is in).
2. There are still a few applications which have supported Linux builds but no support for macOS (Iridium's Niagara Workbench application for configuration of building management systems springs to mind here). Since Apple ended support for Quartz this has been a bit of a pain to deal with.
- POSIX bloat vs Plan9's simple C and even simpler API
- ioctl's vs everything it's a file
- Complex socket spawning vs open() and dial() under Plan9/Go
- ALSA vs tuned up OSSv4, or plaing audio/mixerfs under 9front
- find -which syntax is huge- vs walk -f (or -d for dirs) | grep
- RDP/VNC/SSH/NFS/SMB vs just rcpu+auth (9p) and run rio(4) and for files... 9fs which does a simple bind()
- Symlinks and hard links vs bind and namespaces.
- GDB and SSH vs importing a remote /proc in a rio window and remote-debugging your damn remote machine as if it were your own. How cool is that? Ditto with devices. Import sound cards, network cards with the whole IP stack. NAT you say? No more.
- FFSv2 (hello OpenBSD) vs current GeFS under 9front which is like a miracle over what OBSD it's trying, the bad ZFS license or BTRFS not being ready on GNU yet. Probably the Hurd people will port GeFS to Hurd/Mach first, before BTRFS gets even ready...
- Dynamic vs static linking. 9front, a suite of multiarch compilers. Set $objtype, compile, link, deploy a standalone binary. Ready, as if it were a Go binary under Unix, but without glibc oddities. ARM binaries from 386? Done. You need a crazy long i686-gnu-foo-bar and the rest of crazyness? Not anymore. These come in src form, compile and install them, no internet required. Literal two damn commands to do so, from any to any arch.
- SH/KSH/Bash. Complexity ridden shells. Here's rc. No aliases there, just functions. No complex escaping, just () for strings, ^ to concat, ' ' for quoting. Problem solved. Even the conditonal words' syntax it's like throwing down all the complexity giving you a weirdly simple shell.
- PCRE and ex commands under vi/nvi/vim (bloat) vs Sam and structural regexes. Sam it's like a graphical vi, period, there's nothing alien of it. Imagine a modeless vi with a small frame to input commands with an easier syntax:
x/lookup/c/replace
These can be chained with ease.For example, you could run VS Code on that machine as a window on your Mac. A more real world example is people accessing guis (e.g. matlab) on lab clusters.
The closest set up for x11 would be to use x11 forwarding with xpra.
Older versions of macOS even had an X server distributed by Apple that you could install on your machine, and if memory serves right you were then easily able to forward X11 from a remote Linux host (or other operating systems running X11 applications) using ssh and have it render to your macOS desktop.
From a quick google search there is apparently still an Apple supported third-party open source project called XQuartz one can use.
https://en.wikipedia.org/wiki/XQuartz
X11 forwarding with ssh and XQuartz looks to work the same way that I remember using the Apple distributed X server in the past. Install the X server and then use the -X flag of ssh. Same way that you forward X11 between two Linux computers, or Sun workstations or whatever with an X11 desktop, over ssh.
Sorry, I responded to the wrong comment.
I did a similar thing with X11, but I didn't like so much.
Bit by bit, Apple is loosing it's Desktop position. It all starts at the developers. At soon, every person will be a "developer".
Anything I want sandboxed or “grouped”.
Work on a project -> open the relevant container.
Similar to parallels window integration mode.
It’s all from shortcomings to have a hierarchical view on your data and applications.
Goal: isolation. Security-wise, and focus-wise
Apple never really had much of a desktop position to start with.
And their desktop position has always been a higher share than Linux, so I don't really see how this changes much in that regard.
The dependency list is also...something: https://github.com/J-x-Z/cocoa-way/tree/main/vendor
And also this chart is super weird:
Solution Latency HiDPI Native Integration Setup Complexity
Cocoa-Way Low Yes Native windows Easy
XQuartz High Partial X11 quirks Medium
VNC High No Full screen Medium
VM GUI High Partial Separate window Complex
A standard VM will always be the easiest to set up by far. And latency should be the same across all 4. I mean after all it's a VM running on your local machine. Honestly I don't even know what it means when it says "Latency".I also looked at some of the code and it's using OpenGL 3.3 Core which is... super old. But it makes sense in the context of this being LLM-generated since most of its training data is probably OpenGL 3.3 Core code....
Overall this project is very strange. It makes me feel more confident in my skills, AI isn't all that great. It's all hype. You can get to the frontpage of HN. And if you're Peter Steinberger you can get acquired by OpenAI for a billion dollars. But that's about it. The code isn't getting any better.
This reminds me of that C-compiler-in-Rust publicity stunt by Anthropic. There's no substance. It's just a headline.
> True protocol portability: Cocoa-Way rendering Linux apps from OrbStack via Unix sockets.
And it's been there for at least two months.
I don't think it is, you use whatever you want and then run this to connect to Wayland on it? It could even be a separate machine, Linux host, aiui.
It would then essentially run android on macos as well, I do feel like it should be possible.
TBH, I would love to install GNU or BSD on my M4 Max Mac Studio. What I really wanted is a modern UNIX workstation. My Studio’s price/performance was the best available, so that’s what I bought. Now, I am happy with that purchase except for the constant diminution in software quality from Apple.
Since operating systems also don't change often nowadays there is also seldomly any conflicts when a new system shortcut is added.
I also love good old Meta + left click/right click drag for moving and resizing windows in linux.
Here some history on how the command key came to be https://www.folklore.org/Swedish_Campground.html https://en.wikipedia.org/wiki/Command_key
Then I set up a few shortcuts that were different on macOS I actually used, plus a port of a Linux keyboard layout (I think the US layout mostly matches but I use a national one which differs in the AltGr layer). Surprisingly configurable for an Apple product.