This looks like not a reskin of an existing FreeBSD or Linux windows system, but an actual reimplementation of macOS. Very interesting if they can pull it off!
I wonder though, why start with old Objective-C cocoa APIs instead of Swift?
Yeah but they expose the same ABI. If you can write in Objective-C, you could write it Swift and externally it'd be no different. And since they're reimplementing this stuff from scratch, I'm surprised they didn't just do that.
(I'm saying this as someone who would be more inclined to contribute if it was written in Swift.)
I wonder if Cocoa is that language specific or if it’s become legacy tech. When Swift was announced and when I explored it for personal projects, I was very much calling Cocoa APIs. They definitely catered to ObjC-isms, but my impression was that all of the underlying UI frameworks were being preserved even if they might gain additive APIs to be used less awkwardly in Swift.
“Objective-C is done, time to move on” … except for Apple themselves, where we still see a steep rise in ObjC year over year with no visible sign of slowing that incline.
Except several systems have been rewritten in Swift for Ventura, also mentioned in other talks.
Besides this is nothing new in the industry, some Android business units and Windows ones, are quite adverse to touch anything besides C++, regardless of the guidelines to the rest of us.
It’s also funny to think of companies like Apple, MS, etc. as having 1 opinion or even tactic.
I know they say it. But they’re made up of 100s-1000s of groups. And at Apple especially, many of these groups are not allowed to talk to each other.
From the outside it’s easy to see companies that way. But if you’ve ever been inside a large company, you know what I’m talking about. That’s not unique to tech, either.
And rewriting software in a new language is always going to get back burnered by delivering new features. Until there’s a fundamental change they want that justifies a rewrite, a codebase is staying in its current language due to inertia.
Heck, companies will lie to themselves about these things. My favorite is this pattern
Execs: We’re all going to X!
Crowd: Yaaay. [Some project leads look at each other with a mix of sarcasm and fear.]
Initiative kicks off. Swag is distributed. Projects are identified.
Exec: [Looks at $] Well, except this one. And that one… Ok, we’ll replace all of these [waves arms] in 3-5 years.
Narrator: 3-5 years continues to be relative to the current date.
To be fair, the developers at Microsoft went to town on it as well, adopting C# for parts of Windows Blackcomb, including the File Manager, the Desktop Manager, and (some of) WinFS. It turned into a fiasco and the .NET adoption was mostly dropped, as far as I remember, when they did the "reset" and pivoted to Vista.
Because the WinDev team sabotaged, the effort, instead of doing an Android or ChromeOS with everyone roaming into the same managed direction, they made sure they pretty Windows APIs would win..
So since Vista all new APIs follow Longhorn ideas, while using COM, followed by Windows Runtime, with the caveat that tooling is just as bad as before .NET was invented, but hey they are happy fellows on their little turf.
While there are parts of Swift that I like, I am more and more convinced as time goes on that Swift in general, and specific sub areas of Swift (like SwiftUI or Swift Charts) are destined to follow the trajectory of .NET as decried by Spolsky in How Microsoft Lost The API War [1]. To the extent this is true, it is likely smarter long term to avoid Swift except in cases where Apple has enforced its usage (like the watch).
For problem areas where Apple's frameworks provide a useful or necessary solution, accessing them from Objective-C instead of Swift is more stable. Examples like Accelerate, HealthKit, and StoreKit come to mind.
For problem areas where Apple has no advantage but you want to ship code there, oft derided but broadly usable solutions like C++ (which connects to Objective-C better than it does to Swift) or Javascript dominate.
Even Apple appears to struggle at drinking its own koolaid, given the recent criticism of the Settings port to SwiftUI. [2]
The more I use Swift, the more I miss Objective-C. I tend to like opinionated languages that take firm stances - all method calls are messages, everything really is an object, fail early, etc.
Swift seems to be more and more a kitchen sink language. Compile time linking, v-tables, and dynamic dispatch? Sure! There’s so much syntactic sugar masking seemingly unchangeable implementation details (throws/try/catch) and odd implementation choices (protocols associated types vs structs and classes generics). Builder methods are just plain weird, imho.
I had a lot of hope for Swift early on, but it seems like a rudderless ship.
All new projects I was involved in over the past three years or more were in Swift. I would say it is considered in bad form to start a new project in anything other than Swift.
Further, I saw many legacy projects move from Objective-C to Swift (Podcasts comes to mind). (Some legacy Objective-C apps like iTunesU, sadly, were "sunsetted".)
Until recently, I believe there were issues with frameworks written natively in Swift so I saw a few smaller frameworks thrown together in Objective-C. I believe that, whatever the issues were, are no longer pertinent.
I can say too that there are many engineers that don't even know how to code in Objective-C. The younger engineers learned on Swift and are even hostile to writing in Objective-C (ha ha).
Of course Apple is a big company and I can't speak for the whole of engineering - only the teams/orgs I was involved with. And since I left Apple last year I can only guess at the current state. But the direction was clearly away from Objective-C.
As you can imagine, the biggest hurdle to 100% adoption is going to be bringing over legacy projects. Porting to Swift will probably always take a back seat to features, bug fixes. If the pace at Apple were more leisurely, not a suite of new OS releases every year, perhaps we could have our cake and eat it.
They can't be the ones to turn the lights off if they're not the last ones in the room. iTunes was famously Carbon for long after Apple said "use Cocoa now", but it came around. It's fine to tell everyone else "stop doing ObjC now", then to slowly strangle it out of their code as well.
Many of the views are, but some do not bind to AppKit/UIKit and instead are drawn directly (I think maybe Image is one?). The idea is you could keep SwiftUI's API stable while deprecating AppKit/UIKit piecemeal underneath.
Objective-C is the ABI of all UI-related macOS frameworks and it would probably always be. Even if you're writing in Swift, as long as you're using AppKit, you're using Objective-C classes under the hood. There's no such thing as "Swift Cocoa APIs". And SwiftUI is an abstraction layer on top of, again, AppKit/UIKit/WatchKit, which are themselves all written in Objective-C.
Then a question: how does one call these APIs from another language? You can use Objective-C frameworks from anything that can call C functions, by manually doing objc_msgSend and all the related stuff. But will you have to write a Swift wrapper for these?
I don't need to do that in my day to day job, but I do remember that as part of an OS class at school (some 20+ years ago) one of the tasks we were assigned was that we had to work in pairs of teams, where one team would implement a function and another team would implement code that called that function, the only requirement being that both teams had to use different languages. The point of the exercise was to show how, provided you had a defined API, thanks to linking you could use the best language for each job.
In many languages you need to somehow define the symbols you import before the linker comes into play. How would you define Swift symbols for C++? For Java? For Rust? And that's provided their linkers would actually know what the Swift ABI is — and they most probably don't. So I guess your only option would be to descend all the way down to assembly and shove the right things into the right registers and then jump to the right place.
On macOS, the Swift ABI is stable. It is different from the C or C++ ABI. Somebody would need to implement the Swift ABI for another language. Which is kinda tricky because Swift has many features that other languages don’t have. Rust could probably do it, or C++ with a ton of templates I guess.
It's a BSD. (Knowing that, you probably wouldn't ask them, "Why C and not C++?") As a language (and ecosystem*) Objective-C is mature and lacks complexity in a way that doesn't apply to Swift.
* They definitely did not start with Objective-C and a blank slate here; they're folding in monumental amounts of third-party code
> One of the main benefits of macOS is perfect hardware support.
Insofar as you have perfect support for the very small subset of hardware that computers running macOS can have. I'm sure you could get similarly perfect hardware support on Linux by being careful about which hardware you run it on.
Nobody did this for Linux on the small subset of Apple-branded macOS-capable x64 machines before, much to my chagrin.
I donated to marcan in the hopes that someone now will.
There should be a free software OS installer that is as easy to use and supports as much hardware with full functionality as the Apple OS installer. Apple has already done the heavy lifting of a well defined hardware target.
Their target is existing MacOS users. Thats a BSD derived kernel and OS API and the model is quite different. Making a Linux kernel look right, is a path ?Gentoo? took some time ago, and I am unsure you can call it an unqualified success.
Heh. Or even “Xpm install ___” doesn’t mean I want to update thousands of unrelated packages I’ve installed directly or transitively. Regardless of their semver compatibilities.
Edit for people using macOS: if you want to install one thing without waiting to update unfold numbers of other things, hilariously Cakebrew (a GUI frontend for homebrew) will let you do that with homebrew as the package manager.
It will also break stuff for you. Homebrew doesn’t have versioned dependencies, so I had, for example, my nodejs broken for me when libicu got updated from 69 to 70 without also updating nodejs. Homebrew index doesn’t take such things into account at all.
There is a subtle translucency effect applied to the top bar that picks up and scatters the large svg’s behind it. I haven’t seen how it’s implemented, but it might not be performant on all web engines.
Same on MacOS and Firefox with a 4K screen ans same on Firefox and a Pixel 6, scrolling lags hard on the section with pictures. Making a bad first impression of this new OS.
> ravynOS uses a patched kernel with support for Mach, just like xnu, and a compiler suite that supports Frameworks and has preliminary support for Mach-O
At this point, "Consistent shortcuts" is the main "feature" keeping me on MacOS.
Cmd+, opens preferences in every app.
Cmd+[ or ] goes "back" and "forward", in every app that has those concepts
Cmd+Shift+[ or ] switches tabs, in every app that has tabs, except a handful of stupid chat apps who think they're too good for it.
Cmd+W always closes the current tab, if the app has tabs, (or current window, if the app has no tabs), and does not quit the app – that's what Cmd+Q is for.
Etc.
Also notice how PageUp / PageDn, keys that my keyboard doesn't even have, are not used for crucial shortcuts like these.
Seemingly small things, but absolutely maddening when developers don't respect the common convention, or when a common convention does not exist.
I always thought this consistency was a feature of the app ecosystem and app developer attitudes rather than the OS itself, so I'm not sure what RavynOS can do to make third party apps obey their idea of consistent shortcuts? The wiki doesn't mention anything about shortcuts despite the language on the home page.
Speaking of this specialness... having the main system shortcut modifier – Cmd – physically located under both your thumbs is priceless.
In contrast, the Ctrl keys are usually located such that they're best accessed with your pinkies. Who thought that making people use their weakest fingers for the most common shortcuts is a good idea?
Could you remap your keys to have Ctrl keys under the thumbs in Windows / Linux? Yes, but then:
1) It will become hard to use Ctrl-based text navigation shortcuts (such as Ctrl+left to navigate one word left) with one hand, and
2) Ctrl+Tab will now use the same physical keys as Alt+Tab used to, and your brain will never heal from this (at least mine refuses to).
Because in MacOS those arrow-based text shortcuts are Alt-based, not Ctrl-based, and right Alt is already located right next to the arrow keys where it's most convenient for those particular shortcuts. It does not need any remapping since in MacOS the Alt key is not used for most other system shortcuts, unlike the Ctrl key on Windows/Linux.
> At least on Linux there are no issues. It's mostly clicking one checkbox, and changing "Alt-Tab" to "Ctrl-Tab".
Been there tried that, on Ubuntu, last attempt a couple years ago. Does not work, many apps have Ctrl+tab hard coded to switch between their tabs, so if you make Ctrl+tab the system shortcut for switching apps, you can't switch tabs in those hardcoding apps anymore.
> Because in MacOS those arrow-based text shortcuts are Alt-based, not Ctrl-based, and right Alt is already located right next to the arrow keys where it's most convenient for those particular shortcuts.
Where's the problem to tick a checkbox and change that?
> Been there tried that, on Ubuntu, last attempt a couple years ago. Does not work, many apps have Ctrl+tab hard coded to switch between their tabs, so if you make Ctrl+tab the system shortcut for switching apps, you can't switch tabs in those hardcoding apps anymore.
Once again, that are GTK problems.
Just avoid GTK (v3 and later) and Electron and there are no usability issues. Simple as that. But I'm repeating myself.
> What checkbox do you mean? (I understood the one about ctrl+tab, but not this one)
Maybe I'm confused, but I have an right Ctrl and a right Alt. Both keys are left to the arrow keys. I thought you wanted to switch around also those two keys. That would be ticking a checkbox in the keyboard config afik.
> I'll give KDE a shot next time, but I think some apps I use heavily are actually GTK apps (such as Firefox), we'll see how it goes.
I also use Firefox. It uses GTK. But this makes no difference as Firefox does its own thing anyway. It uses GTK only under the hood.
The two most annoying things with Firefox are solvable: You can use custom.css to switch around the OK / Cancel buttons in dialogs (thankfully they don't use "real" GTK dialogs but some XUL, otherwise you would need to patch the GTK libs) and one can have proper file-dialogs by now through the desktop-portal interface. So Firefox remains its own thing but at least the GTK parts don't creep up anymore.
Oh, and global menu does not work in FF (even it works for "normal" GTK apps). Also they still didn't manage to make keyboard shortcuts configurable. But that are FF issues on any desktop or OS…
> Maybe I'm confused, but I have an right Ctrl and a right Alt. Both keys are left to the arrow keys. I thought you wanted to switch around also those two keys. That would be ticking a checkbox in the keyboard config afik.
Same layout here. I want the key that's used for arrow-based text navigation shortcuts (Alt on MacOS, Ctrl elsewhere) to be physically the rightmost key, right next to the arrow keys, then I can press it with my index finger and press the arrow with another finger. Otherwise, if that key is farther from the arrow keys, I find it hard to press those shortcuts. At the same time, I want the key that's used for most system shortcuts such as Ctrl+N / Cmd+N to be under my right thumb because it's the strongest and otherwise underused finger.
So, on non-MacOS systems I end up wanting right Ctrl to be in two different places at once, since those systems use Ctrl for both types of shortcuts mentioned above. So unless I have a big enough keyboard to have two *right* Ctrl keys on my keyboard, I can't just remap the keys to solve this.
Whereas on MacOS it's fine as-is because it uses Alt for arrow-based and Cmd for other system shortcuts respectively, and those keys are already where I want them to be.
Anyways, this is getting too much about me, I doubt it's interesting to anyone. Cheers.
It's also worth considering changing your keyboard itself. I use a Pinky4 and have all the modifiers easily reachable by thumb. Backspace and space as well. There is a gap of no keys in the corners that means the furthest left thumb key on the left half is still as far right as alt/command on traditional keyboards.
Have you tried mapping Ctrl to your CapsLock key? Pressed without any combination - Esc, with some other key(s) - Ctrl. It is under pinky, but in a very comfortable position, just like Enter.
Maybe I'm the only one, but I remapped Cmd to Ctrl. After a lifetime of Windows and Linux using Ctrl as the main modifier key, this made things much easier for me. Having it be pinkie based has never been an issue. At least not for me. Others will vary, of course.
For those more familiar with Windows and probably most Linux conventions, Home/End won’t behave how you want but they move to the start/end of a scrollable view (which IMO is more useful).
In most any app ^a will be your Home equivalent and ^e will be your End equivalent. If that sounds weird or weirdly familiar… a subset of emacs key bindings are built in for basically all native macOS text inputs. If you get weird and hook up a full keyboard to iOS devices, works pretty much the same!
(I personally use ^t quite a lot because I accidentally rtanspose letters while typing all too frequently)
Woah, I love this thread. I didn't know about the tab or preference shortcuts. And I used ^A and ^E in terminal but didn't know it worked in other apps. Are these all documented somewhere?
Besides the documentation linked by sibling comment, I believe you can also still customize them per user in ~/Library/KeyBindings/DefaultKeyBinding.dict, and reference the system defaults in /System/Library/KeyBindings/DefaultKeyBinding.dict.
"Consistent shortcuts" is the main "feature" keeping me on KDE.
Cmd+Shift+, opens preferences in every app.
Alt+Left or Right (or Back or Forward) goes "back" and "forward", in every app that has those concepts
Cmd+Tab or Cmd+Shift-Tab switches tabs, in every app that has tabs.
Cmd+W closes the current tab by default, if the app has tabs, (or current window, if the app has no tabs)
Cmd+Q quits the app.
Etc.
What's again so special about macOS?
One needs only to avoid GTK stuff, Electron, and Windows Software, and one gets perfectly consistent behavior.
And those behaviors can be "even" configured globally! (That's something to mention specially of course when talking to Mac users as such an advanced feature like "configurability" is notoriously missing in the Apple universe).
I find Mac less consistent, especially around home/end key behavior. In some places, home goes to the start of a page, in others, the start of a line. In addition, the key combinations and gui behavior are annoying. Ever try to cmd+tab to a minimized window? You have to do finger gymnastics to add an extra key to get that window to open. Other than the cli, I've seen little benefit in using a Mac vs. a decent PC with just about any Linux distro or Windows.
Since you mention GTK, I assume that must be the root of my problem – I keep trying Ubuntu and some other GNOME distros, haven't tried KDE. Ubuntu was definitely a mess when it comes to consistent shortcuts when I last tried it (a couple years ago).
Yes, the lacking usability of GTK (3 and later) apps is the root of all problems with GTK desktops.
But the issues aren't Linux specific of course.
KDE is by now one of the most lightweight¹, stable, and usable desktops by far.
And KDE is completely configurable regarding look&feel. You can make it by now even look and behave like any other desktop with one click using global "themes" (the feature switches more than the theme; that's why I've put the term in quotes).
¹ KDE beats mostly everything in this point, except maybe raw WMs and LXQt. Yes, it's more lightweight than say the GTK3 based Xfce by now… The "magic" lies to one part in Qt that gets optimized for embedded applications now for many years, and all the work in optimizing KDE itself after it got bad rep one and half decade ago for being bloated (which was indeed true back than; but they learned the lesson; only the internet FUD never dies).
> One needs only to avoid GTK stuff, Electron, and Windows Software, and one gets perfectly consistent behavior.
So as long as one avoids all the inconsistencies then one gets consistent shortcuts? ;) Only using Qt apps on Linux is very hard. A lot of good apps are GTK or Electron. On macOS there is no GTK & Qt divide and Electron apps are very good at implementing macOS shortcuts. Hence you get more consistent bindings.
Also, many bindings are absent even in Qt app. For instance, on macOS you have Emacs-style bindings in every app (Ctrl+a, Ctrl+p, Ctrl+k, etc.). Those are very useful. You can get them on Linux (at leasts in GTK apps) but it's very hacky and it conflicts with a bunch of stuff, whereas they fit right in on macOS. Cmd+Shift+/ to search all menus is also super useful and I don't think you can do that on KDE.
> And those behaviors can be "even" configured globally! (That's something to mention specially of course when talking to Mac users as such an advanced feature like "configurability" is notoriously missing in the Apple universe).
If you don't think macOS can be configured then you are mistaken. It can't be configured to the extend that KDE can that is true (some of us consider that to be a feature). But a lot is still possible. As an example, kindaVim adds vim-style keybindings to every app which is kinda cool.
> Cmd+Shift+/ to search all menus is also super useful and I don't think you can do that on KDE.
Not sure if this is what you're talking about, but KDE now has KCommandBar (or some name like that?), a HUD menu that can be invoked with Ctrl+Alt+I.
Though I as a KDE fan concede that the need for some GTK stuff is kinda disappointing, for me Firefox and Inkscape (can't care less about Electron stuff, though). Inkscape AppImages have turned out very handy, but alas the Firefox ones don't bundle GTK so you can't have a GTK-free system if you want to use Firefox.
Still though I don't think something as configurable as keyboard bindings are too much of a deal to promote or convince people about a DE or a OS.
I have hardly any GTK app installed and I would not know what I'm missing. (Firefox uses GTK but it has it's own UI anyway). Electron? That's the plague of modern times. Besides VSCode (which I will switch away in a blink as soon as the alternatives are ready) I don't use any Electron peep. Also here I would not know what I'm missing.
But of course, it's only me. YMMV
> Cmd+Shift+/ to search all menus is also super useful and I don't think you can do that on KDE.
Global menu is of course integrated in KDE. You can even use it form KRunner (of course with fuzzy search).
> If you don't think macOS can be configured then you are mistaken.
Apple products are made for the mass market. That's one of the reasons they actually follow the same philosophy as Gnome. What this means regarding options everybody knows I guess:
Options are hard to maintain and "confuse the user".
So Apple products are dumbed down even more with every release. (They even replace perfectly fine working software with "touch-ware" in the attempt to make everything more tailored to the causal users).
I'm glad you like KDE and by all means keep using it. It sounds like it's the right DE for you.
That being said, your statements about macOS sounds like they are coming from someone who's never used it and are making a fairly uninformed straw-man opinions about it. For instance, the statement "Apple products are dumbed down even more with every release" is just demonstrably false. Apple products gets more features with every release. For instance, the last macOS release got Shortcuts, Focus Modes, and Universal Control. All of which are power user features.
This funny "windows key" has any use in Firefox? I didn't know.
Firefox is a mess! (On every OS I think). I'm already happy to have proper looking dialogs by now…
There is a feature request hanging around to be able to configure shortcuts in FF. Nothing happened until now. Since many many years…
That's the problem if there is no choice.
You can only use Mozilla crap, or Google spy-ware.
Imho a replacement for the whole insanity that "the web" is is long overdue. But I guess nothing will ever happen. (Except maybe if our future AI-Overlords would show mercy).
Which is true on MacOS too. Emacs doesn't care about Mac keybindings. Even worse, the MacOS "Emacs keybindings" for things like text fields aren't totally consistent with actual Emacs. Oh and Emacs was until super recently bundled into the OS too so even out of the box it wasn't totally consistent.
I'm sure there's other programs on MacOS that don't follow the global key bindings.
Some of the offenders surprisingly include newer Apple apps like Books. Some of the commands are not included with shortcuts. Seems like they weren't thinking too much about desktop users when they ported it from iOS.
The big one for me is that Cmd+C and Cmd+V do the exact same thing in Terminal as they do everywhere else, unlike with terminal emulators under Linux. Copy and paste are too ingrained from decades of Mac/Win use to fight against muscle memory for that one exception.
Personally I find this kind of idea to be a dead end, since so much of what makes macOS special is really beyond the capabilities of anyone other than Apple. For example, total vertical integration, e.g. calling up kernel team and ask them to make a change for WebKit. SerenityOS also does this because Andreas Kling worked at Apple, realising that vertical integration is fundamental. But then there are other things, like incredible hardware integration with things like the trackpad and CoreAudio, as well as precise control over the CPU and power. I'll be interested to see if this goes anywhere but in my opinion there are better places to go, such as for example SerenityOS, which I think is a kind of operating system that is far more suitable for the space of people who don't want to buy Apple.
I'm generally a bit sceptical of this "copy macOS" idea. It isn't a particularly amazing operating system, it is mainly just very well supported by third parties considering that it is a unix. You won't have that if you recreate it in this way, and I'm not sure if you will be left with a very good experience.
Being able to CMD+c to copy things in a terminal is one of my favorite things about programming on a Mac. Ctrl+c to copy everywhere, except the terminal (there it instead is an interrupt) is a major annoyance working in Linux
I don't use a Mac. How does one interrupt a program if Ctrl+C is bound to copy? At this point when I'm in a terminal Ctrl+C is muslce memory for interrupting a running program.
Ctrl-C is still bound to an interrupt — it’s Cmd-C (i.e. Super-C / Win-C) that is bound to copy. Most things that a regular user can think of (paste, print, select all, to name a few) that would be control mapped in user facing programs are typically mapped to the “command” key instead.
Macs have a Meta key called Command that can be dedicated to the shortcuts defined in GUI applications while leaving Ctrl free to be used by console stuff. So all the GUI copy/paste/windowing etc controls use Command key shortcuts.
The original 1984 Mac keyboard did not even have a Ctrl key, it was added to later keyboards as people wanted access to terminal applications.
The default is usually ctrl-shift-c to copy and ctrl-c to send sigint - but setting the copy command to ctrl-c will usually flip them, making sigint ctrl-shift-c.
I enable this on basically all the terminals I use. I also immediately rebind cmd to ctrl in mac, since I can't stand the RSI inducing placement of the cmd key.
Ctrl-v was SIGINT long before it was a shortcut for paste (first added in Windows 3.1). Although it can be switched now, it hasn't always been so. Of all the things that desktops (I'm not going to say Linux, as it isn't a Linux issue as it affect every system that uses KDE/GNOME and the like) designed to run on top of *nix like systems that were copied from Windows, this one really boggles my mind.
Darwin is still open sourced, but mainly because of drivers and differences in certain other things (threads maybe, Mach ports / IPC, etc) that don’t have the integration or implementation with existing software is a major headwind to attempting a full encompassing Darwin OS.
PureDarwin was (is?) an attempt that hasn’t been able to break through those headwinds.
The short answer is "hardware support". ravynOS should run on most commodity x86_64 hardware using FreeBSD's very stable and performant drivers.
The longer answer is that plus I don't see any real advantage to using xnu. We have merged in Mach support now (big thanks to NetBSD, NextBSD and the iX Systems folks for that) so the xnu approach just seems to add complexity and the effort of writing and maintaining drivers.
Considering how big this project is already, I opted to stick with the BSD kernel - at least for now
Regarding hardware support, will this run on actual Apple silicon? If not, it seems like Linux would have been the better choice for maximizing hardware support, if only for Asahi Linux's work.
(btw, I don't know much about this kind of work, so I have no idea if it's feasible to port the drivers from Asahi to FreeBSD, or if they'll have to start mostly from scratch)
I know nothing about the project apart from the website, but the front page says they aren't a fan of the "ever-closing hardware", so I guess Apple silicon might not be a priority.
I would argue picking up where GNUStep+Etoile left off, over Elementary.
Elementary is just a nice skin with some particular tweaks and add-ons. Etoile’s goal was more akin to what they’re trying to achieve here, an actual Objective-C+Cocoa user space with a Mac compatible open library,
> PLEASE NOTE: On 2022-02-14, we decided to abandon the current path of using X11/KDE desktop components and write from scratch a new UI that will align better with our goals. A very early UI on the new WindowServer is starting to take shape as of 2022-07-27. Thanks for your patience as we work to make ravynOS the best possible version.
This is one instance where that approach probably pays dividends, if they can pull it off. Most macOS-like clones that I've tried fall short, due to there being only so much you can do to paper-over the Linux desktop experience. A sort of uncanny valley that I just can't get over and adjust to using.
> If what you understand by macOS is how Panther used to be.
That's a bit old for me (I started with Tiger), but I would definitely be all over an option to go back to OS X (where, I felt, the paradigm was that users should be presented with the best possible default experience, but also should be trusted to tinker if they chose to do so) before they started pushing this macOS = iOS integration (where the paradigm should be that users should be protected, even against themselves, from any need or ability to tinker).
They mention in the faq that they do not use GNUStep's implementation of the frameworks, but they do use GNUStep's implementation of the libobjc2 runtime. There's licensing and goal issues. Apparently their Cocoa implementation comes from "the same source" as Darling's, but I don't know what that means. (Cross referencing with Darling's faq, I guess it's The Cocotron.)
GNUStep is GPL though, and one of the stated goals of ravynOS is to be BSD and MIT licensed. On the FAQ page they address this, even saying they might be willing to use it despite the licensing.
> Oh, the good old "rewrite the world" approach. Good luck to the developers!
Yes, they definitely need some good luck, but sometimes rewriting the world is necessary to one day invent something new, or just eliminate architectural issues that are too entrenched in the old code to be easily circumvented without adding bloat and/or bugs. The price to pay is lagging behind the competition, with a potential bigger payoff only later, for those who persist.
I see roughly a similar approach with the PinePhone: they probably went like "the heck with reverse engineering other phones, we make our own one from scratch!"; the result as of today is a ~90% working slow phone that very few among non tech users would want, but we see the much bigger potential if and when they'll reach hardware performance at least comparable to known brands. It takes courage, perseverance, and luck.
I will never understand the people think you can never do a fresh start (in software, but not limited to it).
Many very successful projects started as a green field. Sometimes I would even go so far as saying they would have failed if the had tried to build onto the existing code base.
Also important to note: there is no "start from 0" most likely the work will be based on existing work, the ideas, code, or parts, modules, graphics can be reused.
I see everyday in my job how this kind of thinking leads to code with parts that are over 20 years old, and are not changed because of fear that something could break.
Sure, a certain amount of good luck is always required.
I've been involved in two rewrites during the past 5 years. While the rewrites were not by choice (one was forced by Flash EOL), in both cases there were multiple, very obvious (after the fact) benefits:
- Better, modern technology top to bottom
- Better dev process, facilitated by the better technology
- An excuse to focus functionally, and rethink. We couldn't possibly reproduce a heap of legacy features and were forced to focus on what mattered, and managed to offer those key features in a far superior way.
Done right, a rewrite can be fantastic. And sure, rewrites often happen for the wrong reasons and at the wrong time.
Today's KDE can be almost identical to a MacOS desktop, if you customize it properly.
I'm a KDE user since 2010 and a week ago I purchased an M1 Pro (hopefully to install Asahi in the future). My desktop was basically a top bar with global menu, a few widgets and Latte Dock.
If I didn't know that Mac came up with the functionality before, I would think that it is Mac that feels like a skinned KDE
I'm curious to see how performative this will manage to actually be... Itd be interesting if it could eventually run audio software and AU plugins at a low latency.
Thanks for your work, i like the design choices you made.
I believe that a bigger factor today is the third party support for your system.
stuff like teams not working, or netflix not being able to stream in 4k makes me still keep my windows machine, even though at this point its basically a firefox / vscode terminal with extra apps and of course a system level integration of docker.
Im pretty sure there is enough room for a true developer OS but it still needs to do all the "little" things that we have grown accustomed to.
Does it run Better Touch Tool? I use it to resize and move windows with trackpad moves (no click) and modifier keys and also to disable openapple-Q. Does it work well with an apple trackpad?
This is a dead end. FreeBSD, lmao. Why not choose Linux, which supports way more hardware and features. Not promising for the general quality of decision making.
FreeBSD is a modern performant OS with broad hardware support. I don't know what feature you had in mind, but FreeBSD comes with kqueue and has largely the same core utils as MacOS, which isn't a lot but why not take the free wins you can get? Not to mention that if they manage to pull this moonshot off, porting the resulting work to Linux would be utterly trivial in comparison. So ingrained Linux fanboys don't have to worry, if this becomes a thing, they'll get in on it.
KDE is a better desktop environment than MacOS, by far. I have had so many usability issues with my Mac that does not exist in KDE/Linux. E.g. Apple confining the GUI and not including basic functionality.
Specifically:
- I really miss a decent address bar in finder that can be edited directly
- some windows on mac are always on top, preventing access to other windows. E.g. Password dialogs for encrypted hard drives.
- "Cut" does not work for files in finder, severely complicating moving files
- The Maximize button does not maximize, but instead enters full screen, meaning that I never use it
- There is a delay of ~100ms when pushing caps lock on the keyboard that can not be turned off without installing karabiner elements
- Pressing enter in Finder renames a file instead of opening it, an action that is rarely needed and extremely unintuitive – this erroneous behaviour can also be corrected with karabiner elements
- Sometimes audio balance will randomly shift to the left or right with bluetooth headphones, had to install yet another app to auto-fix it every time it happens because Apple is too daft to fix the bug.
- There is no delete key on the Mac keyboard, meaning that deleting a file is suddenly a two- key shortcut combo, whereas it is much easier on Windows/Linux (hit delete). Sigh.
None of those are bugs, just differences. sounds like you tried for a day and were annoyed it's not exactly as you are used to.
Most of your issues simply work differently on macos, and many have been since before kde existed.
Sure some could be better, but changing these would upset the whole user base. (And mac users could claim those things broken in kde in the same way)
I have used windows, gnome2, gnome3, xfce, mac and so on and dislike kde, and gnome3, and all the others. Even mac is really dumb sometimes, but macos is the most polished by far.
A long standing one actually. I remember having it in Mojave/El Capitan already on my 2102 MBP.
The others are annoyances from not being familiar with the UI, some more motivated than others. But let’s recall the sad story of the thumbnails in GNOME’s file picker, for a second…
Having it delayed by a portion of a second can never in any way shape or form prevent accidental activation as you don't have time to notice and correct the matter. It IS just enough to prevent several characters from being entered in the correct case.
Users expect actions to match the sequence of inputs. If the user can type CAPS and "TITLE" and get "tITLE" its a bug.
Basically 50 years of computer interfaces of all kids across all OS across planet earth use enter or return for activation. This includes Mac in all other contexts.
F2 to rename dates back to windows 3.1 with environments like KDE using the same key that is familiar to windows users. Like many things it is an arbitrary choice without any inherently correct answer. The nice thing about it is in dolphin is that one can easily discover this by right clicking a file or folder and noting the shortcut listed beside the action so you can both complete the task visually immediately and learn the hotkey easily.
Older MacBooks activate Caps Lock instantly. Recent MacBooks activate Caps Lock after the key is held long enough.
Bugs are when systems don't work as intended. Intent you don't like isn't a bug.
Enter or return does different things in different contexts. Its most frequent functions are go to a new line or end text entry. Saying it means activate and implying activate means open is trying to find consistency where it isn't. And what it does in Finder is what it does in other text fields.
Return for rename is older than Windows 3.1. The error rate for pressing F2 is high for something so common as rename.
And what about all the bugs Apple seems to add on a daily basis and not fixing them than for month, years, or actually ever?
I can read in the news more or less every day that fundamental things like input devices, monitors, audio, or basic GUI features are messed up or bluntly broken in macOS. People already "joking" that one needs to way at least two or three point releases before trying out major updates. That's even worse than the situation on Windows by now (and MS is also breaking things with every update).
As a Linux user that uses a "perpetual beta" distri (Debian Testing) I'm horrified about such news. Comparable breakage does happen on my OS maybe 2 times in a decade on average, and when some catastrophe like that happens (monitor stops working, no audio, USB not working, or such) it's usually fixed within hours!
The alternative for "maximize" on Mac is to simply double click the Window, although some Windows do not have much of a "title" or "bar" to click on, because of modern simplification of GUIs, and this can cause accidents to happen. Still, I will argue it is incorrect to have the maximize button do something that I hardly ever need to do, that is, enter full screen for the given window.
Both Gnome and KDE are better desktop environments, heck even Windows 11 has done a better job (although they ruined the taskbar now).
The mere fact that you can not change things to your liking on Mac proves my point. You have to buy- and install third party applications from developers that you do not know or trust, and that is just to fix some of the most basic issues. Microsoft recently also decided to go down this route, and have now sabotaged their own Taskbar, preventing users from moving it.
It has nothing to do with "not being used to the Mac-way" – these things are just worse on Mac. There is nothing good about not having direct access to the location address in your File Manager, or not being able to change this stupid default behaviour of various keys and UI elements.
The ability to use "cut" on files, and actually change location by a text-based address bar are both to be considered core features. It is entirely brainless and inconvenient that we have to hold in "option" just to get a "move files" option to show up in the right click context menu.
> You have to buy- and install third party applications from developers that you do not know or trust, and that is just to fix some of the most basic issues.
That's one of the biggest jokes on the Mac, indeed.
On Windows it's not much different besides one detail: You also need a shitload of tools and gadgets only to make basic things usable. But at least those tools are mostly free (like in beer) or even OpenSource. On the Mac instead you have to pay ridiculous amounts of money only to get some basic options (like for example, I think it was ~30 bucks, only to be able to configure the acceleration of the mouse cursor).
The usability on the Mac is very broken, but people knowing how to "milk" other people created a whole market for laughable expensive apps out of it only to fix the most annoying things. That's just sooo ridiculous! I personally have no clue why people are buying this kind of stuff. It's like they want to be treated like -peep-. Imho the "jokes" about Stockholm syndrome victims are no jokes any more. That's bitter reality.
I find the Mouse is typically more convenient for cut on files, unless I happen to have my other hand on the keyboard. The shortcut keys on mac are often a two, three or even four combination whereas on GNU/Linux or Windows it will be a one or two-key operation.
The way Mac handles copying and pasting text is also horrendous, because it also copies the styling, something I actually never need to do. The way to paste text without styling is a horrendous long, and inconvenient keyboard combo.
Other system does that too, but it is just less often an issue. Typically what I do instead is I have a plain text window open, paste my text in that, then copy it again, and finally paste it in the intended destination. It is piss annoying
Coming from the Windows and Linux worlds, I had similar frustrations with the primitive Mac UI. Mostly a better keyboard shortcuts/window timer fixed them for me (Magnet). There are still some issues but they are relatively minor.
What made me stick with the platform though was never having to worry about drivers, and updates being polite and patient, and not being bombarded with a billion ads everywhere like in Windows or Ubuntu. Also not having to drop into the command line to change monitor settings is nice. And the M1 is just soooo nice, fast and quiet and cool, no x86 laptop is even remotely close anymore. They put the ThinkPads, my previous favorite, to shame.
So yeah, to your point, the dumbed down UI is a pain, but the rest of the experience is so much nicer now. I'd take needing a few extra apps over having to go back to desktop Linux...
Absolutely not ready for production environments. A lot of driver support is lacking. Audio is disabled since it could blow up the speakers. Wifi doesn't always work (for me at least). And that's without talking about GPU support or even Thunderbolt support.
Is this relevant to the submission, or simply a spot you’ve interpreted as a convenient one to air all of your grievances about Macs? I guess not only air them, but state them in a way where only your approach is correct (“erroneous” is inappropriate to apply to a UI decision that differs from your preference, for example)
If you pay attention, you will note the authors of this decided to Ditch KDE and apparently design their own UI, which would be more like Mac. My point is, power users do not really want Mac desktop environment – it is just a "necessary" evil that we are stuck with.
Supposedly the security issue is about copying and pasting passwords.
Trust me, the alternative is much, much worse. You do not want users using the same password everywhere.
I use a password manager, passwords are encrypted and only briefly available doing the copy / paste operation. It also has an auto-fill option which further limits the attack surface.
KDE is much more respectful towards users, because you can actually remove/add the "always on top" flag as needed, and that IS the way it should be.
This way of doing copy or move makes a lot of sense since it allows you to change your mind without having to go back to the original file and cut/copy again. Instead, it defers that decision until you get to your destination, where moving the file just takes an extra modifier on top of the usual paste shortcut.
It only just dawned on me reading this—Windows doesn't actually "cut" files, does it? The behavior's different from "cutting" text. The files remain until you paste, right? Mac's choice makes a ton more sense, in that case, since actually cutting files is probably a bad idea (if you forget to paste, they're gone)
I am aware of that, but the fact is that this is less convenient than a standard "cut", as on other systems, so I honestly never use that. What I do instead is I have two windows open, and then I drag and drop between them. Also less convenient, but better than having to keep an extra hand on the keyboard constantly.
And of course, a "always on top" flag would have been really nice for dragging and dropping between windows. That option is really nice in KDE, but missing on both Mac and Windows.
> I really miss a decent address bar in finder that can be edited directly
Press Command-Shift-G and it will appear as a small window. (I haven't figured out how to do this in a "Open/Save File" dialog, so if anyone can chime in, greatly aprreciated)
> "Cut" does not work for files in finder, severely complicating moving files
It's annoying that there is no shortcut equivalent, but if you need to actually move a file either drag and drop it, or press Option while right-clicking in the target Finder window - the menu entry will change from "copy here" to "move here".
> The Maximize button does not maximize, but instead enters full screen, meaning that I never use it
Yuck, yeah. Very irritating. Use SizeUp, well worth the 13 US$.
100% with you. KDE is the only desktop environment, all platforms confounded, that hasn't sacrificed power user functionality on the altar of streamlined / dumbed-down "design".
It's like a race to the bottom to please an elusive lowest common denominator class of users that doesn't exist. I find these other "modern" UIs incredibly condescending.
Instead, discoverability should be #1, creating soft, natural learning curve that welcomes new users without capping or hiding advanced functionality.
The one thing keeping me on MacOS is that it is "*nix that works". I have never found Ubuntu / Linux to be as stable; worrying about updates breaking things, updates indeed breaking things, drivers randomly stopping working, googling in desperation for half-baked fixes online, randomly trying different options in some dotfile until stuff works etc. Mac just works; maybe there are features that Linux would give me, but as I spend my time between the terminal and the browser, I'm not sure I'd notice much.
I think I'm not alone in this approach; I wonder if this project has the change to be as rock-solid as Apple's offerings. If not, I'm guessing it's not for me.
I don't know what is the last time you used linux but lately there is great improvements in user experience. I know non-techie people using Linux Mint/ubuntu
without any hassels.
I'm the de facto IT support for my family and neighbours. They are using Pop OS for about 3 years now. It has been great from both their UX and my maintenance perspective.
My father even did the 20.10 to 21.04 LTS upgrade himself! I highly doubt if windows would've been as smooth an experience.
(Macs are out of question for us since none of us are rich!)
Windows upgrades go so smoothly they've been repackaged as updates. They're also highly fault resistant by default with automated rollbacks out of the box.
I'm not saying Pop is bad, but Windows upgrades are super easy and user friendly (if you ignore the privacy risks that come with using Windows). I wish common Linux distros would pack something like system restore by default already! I know these tools (based on BTRFS/ZFS snapshots) exist and work great, but they need to be set up manually and most people won't.
I'm writing this from my Ubuntu desktop (LTE). Just a few months ago some update broke everything (graphics). Then somehow I fixed it, but it broke again on restart. It took best part of a week for me to fix.
You might say it wasn't the best distribution for reliability, or that graphics with NVidia are always an issue etc. but the fact remains that, for me, for an OS to "just work out of the box", MacOS is much better.
[I'm also not a Linux n00b, been using it for over a decade, though not an expert for sure]
So basically you played with fire(nvidia) and got burned.
There is one way to run nvidia stuff on Linux and have a decent experience: run a distro that actually support and has partnership with nvidia, which mean a distro like Redhat Enterprise Linux. It has long term support too.
It is the same with Apple or windows if you start using shitty drivers from a shady brand you will run into issues at some point.
Well, that's one way to look at it: you need to carefully pick your distro, make sure it's compatible with your hardware, and so on.
My way is rather: I don't want to even pollute my brain cache with that. I want a Computer with an Operating System that Just Work. Because for me tinkering with the setup of my desktop is not fun, the fun bit is what I do with a properly working computer. I'll pay a premium to Apple for that (though, mind you, MBP is competitively priced with similarly-performant laptops), and I'd pay that same premium to a laptop+Linux provider.
Except... my confidence in the latter working well is lower. Because apart from fixing broken graphics drivers, I've also had to, in my days, debug:
- package managers that somehow got themselves into a bad state
- fight with linkers when trying to build fairly benign stuff on my desktop
- don't even mention printing
and many other things I don't even remember anymore.
>Well, that's one way to look at it: you need to carefully pick your distro, make sure it's compatible with your hardware, and so on.
>
>My way is rather: I don't want to even pollute my brain cache with that. I
That is exactly what you did by choosing Apple.
If you go on the redhat website and choose certified system you can pick your hardware from any vendor the same way you choose your Apple machine on the Apple store.
I've had more luck printing from Linux than any other operating system, funnily enough. It just seems to work, no 3GB of driver software or manual browsing for INF files required. The UI is a bit clunky when you want to configure advanced settings but it's no worse than your average HP driver in my opinion.
My experiments with macOS actually had the same problems you list, though I haven't tried printing more than once. MacOS comes with ancient Unix tools and you end up downloading half a Linux install over Brew when you try to compile stuff, and now you have added an external package manager you need to deal with to as system that doesn't really support one.
Mg experience with package managers is that if you ignore the warnings (adding --force to overrule errors, adding external repositories that replace system libraries or aren't maintained, mess with config files to override same defaults, mix package managers (apt+global pip = hell)) you won't see them break themselves. I've broken Windows installs by messing with my system in similar ways, though there never seems to be a solution when this happens other than a reinstall. Trouble mostly comes from outdated, misguided guides found on Google that'll ignore any best practices for your opersting system and set things up Their Way, turning your install into a ticking time bomb when the writers have long had to reinstall their operating system without ever updating their guides.
All operating systems I've tried are bad in their own way. Windows worked great until 8 came out. MacOS works well enough if you don't mind Apple's control/decisions/limitations and accept the risk of buying a faulty device that the company will deny all the way up to class lawsuit settlements. Linux works well if you're lucky with your hardware. The BSDs work well if you don't plan on doing all that many things the OS isn't equipped to do out of the box and if you don't have any weird hardware.
Sounds strange because both Linux and MacOS share the same Cups software for printing. AFAIK Cups main developpers are employed by Apple.
I haven't run into any hiccups these last 15 years. Everytime I was in the market for a printer I just verified it was supported well on openprinting.org. On my current printer I just needed to install one rpm.
Compare that to all the crappy software that was installed on my gf windows 10 laptop, involving a reboot, annoying popups telling you about ink level on every print and an app loading up at startup to stay in systray.
I like to mention that I used for 18 years a scanner on linux and bsd perfectly while it was out of support in Mac and windows since 2001. It wasn't even a device that would have used very old connectors impossible to find on modern hardware. It was using USB! In that particular case I don't think that Mac really accounts for what you'd call a "Just Work" experience.
nvidia is the bane of my Linux desktop as well but "just don't buy the most popular, compatible, best bang-for-the-buck GPU" isn't really advice that'll help anyone. I'd love for developers and researchers to stop using CUDA but the problem lies upstream. When the hardware and drivers work well enough on Windows the root cause may be that nvidia is a terrible vendor but that doesn't improve the user experience in any way.
With partial open sourcing efforts I predict that the nvidia situation will improve a lot the coming years, luckily. Until then, don't blame people who try Linux for nvidia's problems; there is no user friendly guide to find what hardware is supported how well for Linux and its kernel updates.
Furthermore, even supported drivers are a mess sometimes. There was a bug in the Linux kernel for months where the kernel would freeze up less than a second after boot if you had an Intel GPU and were using a second screen through DisplayPort. My laptop didn't have audio on anything but a beta driver package when I bought it. Ubuntu and friends simply couldn't use modern Intel graphics with multiple displays or hardware acceleration because the drivers were never backported to an LTS supported kernel. One in five times, my Manjaro install kernel panics on boot when switching from text mode to graphics mode, with no obvious way to debug; I was advised to get two USB to serial port adapters to debug the issue which would likely help, but I don't want to bother to be honest.
The world of Linux is full of driver issues, mostly graphics and sometimes audio, that are impossible to even debug without a second computer and a few years of Linux experience. Many common peripherals lack any kind of Linux support as well. The "shitty drivers" come from every brand on every product range and the only guaranteed method to work with you at stuff you'll find is to never ever upgrade your install once you get everything working.
I want Linux to be better for everyone, but overlooking its obvious flaws and blaming users won't get that done.
Interesting - my experience has actually been the exact opposite. I always hesitate to update my Mac OS machine as it will inevitably break or misbehave, whereas I rarely run into issues upgrading my Ubuntu machine.
Crazy how much experiences vary… been riding the wave of macOS updates for years, always running the latest and breakage is rare, temporary, third party in nature, and is usually a result of the dev of the app in question not moving off of some deprecated API despite warnings that it would be getting removed in the near future.
In my experience, even betas are generally well-behaved. My MBA is only a "personal" machine, but none of the beta bugs I've encountered in either Monterey or Ventura have been debilitating. Standard OS updates have been virtually unnoticeable for me.
I hear a lot of people saying that. What I find out mostly is their last experience of linux on a desktop dates back to the early 2000 and or crappy distros like ubuntu.
Literally every one, including Fedora, openSUSE (both Leap and Tumbleweed), Debian, Linux Mint, Manjaro, Void, Arch and Gentoo with their respective derivatives.
Ubuntu is a mess that introduces config-breaking changes every release and rides the already existing market. If Canonical tried to release their products nowadays without their track record and existing user base, they would never succeed.
The peak Linux experience for a Just Werx focused end user is probably openSUSE Tumbleweed on KDE or XFCE. Batteries included, fast and extremely hard to break package manager, YaST2 configuration manager, and lots of user repositories.
Definitely not my experience. I install an Ubuntu LTS release and I get 5 years of support with updates that never break anything. No doubt people have issues, but I've never encountered a problem during a security update that was not caused by my own previous mucking around. Rolling releases, on the other hand, are a nightmare for this, and smaller distros never work out of the box in my experience.
If you're saying upgrading between releases causes problems.. well that's true but not how I read the original statement, and not something I particularly care about. Each release is a different product and there's no reason to update until support is dropped on the one you're currently using.
Linux was my main desktop OS for about a decade. About four years of that on Gentoo, so yes, I do actually know what I'm doing, didn't just pointy-clicky install to an Ubuntu desktop and never learn how to actually use or configure it. I dropped Linux around 2012 for macOS (OSX, at the time) after I was forced to use that at work and, after about a month of getting used to it, realized what I'd been missing.
I try desktop Linux again every year or two[0]. It's always just as bad as it's always been. Way more application crashes than I'm used to on macOS, jankiness galore, all the stuff I used to avoid doing out of habit because it often breaks things on Linux (and to some extent also on Windows) but am now used to doing because it's fine on macOS is still often a bad on Linux (e.g. drag-n-drop actions). Lots of little annoyances like the default US English keyboard layout being crap for no reason on most distros, which, sure, I can change it, but why not have a good default? Still nothing as good as Preview on any platform other than macOS, AFAIK, which hurts quite a bit.
I think there was about a two-year high point in the late '00s when Ubuntu was just curating good defaults and smoothing things out and the future looked really bright, then Ubuntu rapidly deteriorated and it's back to how it had been before then, now, just shinier because of all the mostly-mediocre-or-bad GUI changes in the major DEs since then.
My next attempt, I'll probably just shoot for the holy grail of FreeBSD on the desktop. Linux seems like a lost cause at this point. May not be any better but a lot about it sure is way saner than Linux-land, so, worth a shot. Great on servers, certainly. Not expecting much because it's mostly the same as Linux in the GUI department, though.
[0] Last time: Ubuntu and Fedora (I don't like rpm-based distros, but thought I'd give them another shot), plus tried Void for the first time which was pretty great actually but I just don't enjoy fiddling with configs anymore so, it's a no for me.
NixOS - it either works and you have a new generation, or it doesn't work and you keep the same state. If the new generation has some problems, you can switch to the previous one via a single command or select the previous one from the GRUB menu when booting.
I agree but the *nix part became less and less significant. Bundled Unix tools are ancient. Compiling your own kernel is almost an anathema (it is possible but you will have nonstop hurdles, you will lose a lot of features and you will have to fight the security system too many times to remain sane).
Even the UI conventions that let you use the keyboard instead of the mouse are now often broken by Apple itself (it impacts power users more than impaired people since accessibility features are still good).
And no containers - those require you to run a different kernel on a VM.
Frankly I feel that macOS went back to being like Mac OS 9 in a lot of aspects - it's just enormously bigger and has a proper foundation but the UI is again mouse centric and proprietary and the system is more tightly coupled than ever with the hardware
I struggle with chasing after the MacOS appearance.
It feels in passing like a lot of work to build a skin/UI that will always be a few generations of the design language behind and not quite there, just given the volume of staff at Apple and them being the ones defining where their design language goes.
Like a choice between a Porsche and, according to Google a Zotye -- they'll look close but one will be the obvious "genuine article."
Would it not be better to take all that talent and consider a fresh approach to the user experience of a personal computer?
Yeah, FOSS culture is unfortunately neither very good at design, nor attracting good designers for collaboration. Many engineers don't even respect design and/or designers.
That is because designers usually tend to push for "making stuff easy for users" by removing options, whereas engineers tend to like to expose everything configurable so that power users can customize the application to their optimal experience.
I think that "old school Windows" aka Win95-Win7 (where you could still use the classic Windows UI) and "old school MS Office" was the perfect balance between "keep it easy enough for users to get started, with clear visual distinction to aid them" and "allow power users to work as well", and that was a large part of why MS Windows and MS Office became so utterly dominant. Only when MS started to go bonkers with Vista and then the disasters that followed from a design perspective, users suddenly started to look for alternatives.
> That is because designers usually tend to push for "making stuff easy for users" by removing options
Yeah, although I think product managers are worse offenders. I think neither extreme is good. Customization is important but hard to get right, and creates rigidity and burdens for developers as well. One thing that engineers ignore, is the cost of mandatory customization or learning curves. Most users, even technical ones, may never get around to customizing so the defaults are more important than the full set of options. And engineers often underestimate the importance of sensible defaults. Google, for instance, had entire products that people didn't know about because they couldn't make users aware of them, despite them being free and good.
> "old school MS Office" was the perfect balance between "keep it easy enough for users to get started, with clear visual distinction to aid them"
I think that was an extremely cluttered UI, far more than saturation the attention of a new user. But otherwise I agree that hiding everything in menus or omitting features is not the solution either.
Yeah, and there's no shame in that. Better copy something good than create something terrible. However, if you can only copy, you're limited to creating copycats of commercial software. In many cases, FOSS has strengths that others lack, where design and UX can be the difference between success and failure.
Nice project, however I’m worried about their scope (reimplementing the MacOs APIs?) being too large for their team, to achieve that level of ‘finessse’ a billion-worth company has made decades achieving.
Moreover in my opinion the contributor pool might be thin, most potentially interested users would prefer using MacOs, and most linux users being notoriously not fond of the lack of configuration. Happy to be proven wrong!
Looks like lots of efforts to recreate the crappy MacOS X UI and user experience. I mean it was fine and less a mess than windows has ever been but it barely evolved since Nextstep in term of UI paradigm and feels dated nowadays.
The interesting part in Apple products is mostly the hardware.
My UI experience is very limited (Windows and Linux only, I currently use XFCE4). What do you consider to be the best UI(s) currently offered (in an operating system)?
You probably mean the Unity desktop, which now seems to be maintained separately from what I can tell: https://ubuntuunity.org/
While I think that your take on Apple UI/UX not being good is rather contrarian (given that many quote them as some of the best in the industry), I agree that using Ubuntu with Unity was actually a reasonably pleasant experience, at least in the later years when they had addressed most of the quirks that the earlier versions struggled with.
Then again, I'm the kind of person who is also served perfectly well by something as simple as XFCE or LXQt, so maybe I'm a bit biased and my standards aren't the highest. Yet, I really appreciate a UI that's functional and feels snappy.
I feel gnome3 is a much better/faster/ergonomic. It works great regardless if you are a keyboard, mouse or touchscreen heavy user.
My only gripe is I wish firefox would integrate it better instead with an UI similar to (now defunct?) Eolie web browser.
Also I haven't spend enough time with it recently but I think kde plasma has the flexibility to be probably as good as gnome. I just don't like the default settings and have always been too lazy to dig deep into it. I used to love kde3.
The earlier versions weren't as polished as what we have right now and it felt like we were missing features that were working fine on the latest gnome 2 release but this is all in the past. It happened in 2011.
Ironically the same happened in the kde world a few years before. I had been a very happy user of kde 3.x and kde 4.x happened to be a crashy pos and it only really got better with kde5.
That's highly subjective point of view. I've used windows since high school (about 4-5y) until Win7, then Ubuntu for 7 more years, after that Mac. Switch was always hard, but now I would never go to neither Win nor Ubuntu. Mac's UI is so superior in my opinion - for my work and productivity, that I would never switch back. People often talk bad about some Mac UI stuff like they are "bad" because they are "different" than people are used to on Win or some imaginative "this is how it is supposed to be" stance, and I get puzzled because those are precisely features I like and I want.
Particularly the "simple installs" graphic on that page. Who wants to, using a mouse cursor, after opening an installer "shortcut", click and drag an icon onto some other icon, presumably representing a shortcut to an "app" folder, simply in order to install a program? What is that even supposed to represent, anyway? Big step backwards for package management.
Hi, I just wanted to let you know that the ravynos.com's top part of the page performs very poorly under Firefox, most likely due to some animation overload. Was firefox considered in the tests?
It's due to the use of the blur backdrop-filter which seems to have been enabled by default on release builds of Firefox relatively recently.
Interestingly, it's a feature introduced to CSS way back in 2015. There must have been some major blockers on getting that out the door if it took ~7 years.
That seems like a lot of work. If what you want is to be able to run MacOS X apps on a free (like in free speech) environment, there's https://www.darlinghq.org/ which is like Wine but for MacOs X apps.
If what you want is to replicate the MacOS X UI you can customize the UI of your DE on Linux, or use something like ElementaryOS or use Pantheon.
I admit that I haven't personally used Darling but it would be rather pointless if it only worked for commander line apps. All command line apps I use on MacOs X are from homebrew and are available in Linux so for me it only makes sense for GUI apps. Also, I never really missed a MacOs X specific app when I use Linux, most apps I use are multi platform anyway, and the rare one that is not, it usually has a decent equivalent for Linux.
I find this gtk application theme and shell theme to go even further than elementary. The developer releases all sorts of themes with insane quality. You can even tweak them to suit your preference such as sidebar width and compact header size
383 comments
[ 4.3 ms ] story [ 284 ms ] threadI wonder though, why start with old Objective-C cocoa APIs instead of Swift?
(I'm saying this as someone who would be more inclined to contribute if it was written in Swift.)
Around minute 4, or go through the transcript.
https://developer.apple.com/videos/play/wwdc2022/102/
Likewise for AppKit.
Apple, the “do as we say, not as we do” company.
Besides this is nothing new in the industry, some Android business units and Windows ones, are quite adverse to touch anything besides C++, regardless of the guidelines to the rest of us.
I know they say it. But they’re made up of 100s-1000s of groups. And at Apple especially, many of these groups are not allowed to talk to each other.
From the outside it’s easy to see companies that way. But if you’ve ever been inside a large company, you know what I’m talking about. That’s not unique to tech, either.
And rewriting software in a new language is always going to get back burnered by delivering new features. Until there’s a fundamental change they want that justifies a rewrite, a codebase is staying in its current language due to inertia.
Heck, companies will lie to themselves about these things. My favorite is this pattern
Execs: We’re all going to X!
Crowd: Yaaay. [Some project leads look at each other with a mix of sarcasm and fear.]
Initiative kicks off. Swag is distributed. Projects are identified.
Exec: [Looks at $] Well, except this one. And that one… Ok, we’ll replace all of these [waves arms] in 3-5 years.
Narrator: 3-5 years continues to be relative to the current date.
I'm sure I still have CD case with 'Windows .net' printed on it which contains Windows 2000 and SQL Server... .net?
The marketers really went to town on that one, would have loved to be in the creative pitch meetings for that swag.
'.net, what is it??'
'Who knows??! But if we print .net in multicolour on enough stuff, somebody might figure it out!'
To be fair, the developers at Microsoft went to town on it as well, adopting C# for parts of Windows Blackcomb, including the File Manager, the Desktop Manager, and (some of) WinFS. It turned into a fiasco and the .NET adoption was mostly dropped, as far as I remember, when they did the "reset" and pivoted to Vista.
So since Vista all new APIs follow Longhorn ideas, while using COM, followed by Windows Runtime, with the caveat that tooling is just as bad as before .NET was invented, but hey they are happy fellows on their little turf.
For problem areas where Apple's frameworks provide a useful or necessary solution, accessing them from Objective-C instead of Swift is more stable. Examples like Accelerate, HealthKit, and StoreKit come to mind.
For problem areas where Apple has no advantage but you want to ship code there, oft derided but broadly usable solutions like C++ (which connects to Objective-C better than it does to Swift) or Javascript dominate.
Even Apple appears to struggle at drinking its own koolaid, given the recent criticism of the Settings port to SwiftUI. [2]
[1]: https://www.joelonsoftware.com/2004/06/13/how-microsoft-lost...
[2]: https://daringfireball.net/linked/2022/08/15/ventura-system-...
Swift seems to be more and more a kitchen sink language. Compile time linking, v-tables, and dynamic dispatch? Sure! There’s so much syntactic sugar masking seemingly unchangeable implementation details (throws/try/catch) and odd implementation choices (protocols associated types vs structs and classes generics). Builder methods are just plain weird, imho.
I had a lot of hope for Swift early on, but it seems like a rudderless ship.
Further, I saw many legacy projects move from Objective-C to Swift (Podcasts comes to mind). (Some legacy Objective-C apps like iTunesU, sadly, were "sunsetted".)
Until recently, I believe there were issues with frameworks written natively in Swift so I saw a few smaller frameworks thrown together in Objective-C. I believe that, whatever the issues were, are no longer pertinent.
I can say too that there are many engineers that don't even know how to code in Objective-C. The younger engineers learned on Swift and are even hostile to writing in Objective-C (ha ha).
Of course Apple is a big company and I can't speak for the whole of engineering - only the teams/orgs I was involved with. And since I left Apple last year I can only guess at the current state. But the direction was clearly away from Objective-C.
As you can imagine, the biggest hurdle to 100% adoption is going to be bringing over legacy projects. Porting to Swift will probably always take a back seat to features, bug fixes. If the pace at Apple were more leisurely, not a suite of new OS releases every year, perhaps we could have our cake and eat it.
I don't need to do that in my day to day job, but I do remember that as part of an OS class at school (some 20+ years ago) one of the tasks we were assigned was that we had to work in pairs of teams, where one team would implement a function and another team would implement code that called that function, the only requirement being that both teams had to use different languages. The point of the exercise was to show how, provided you had a defined API, thanks to linking you could use the best language for each job.
Objective-C is done, see WWDC 2022.
* They definitely did not start with Objective-C and a blank slate here; they're folding in monumental amounts of third-party code
One of the main benefits of macOS is perfect hardware support. Linux has a definite edge on all other free software kernels here.
I hope they succeed, regardless of technical decisions.
Insofar as you have perfect support for the very small subset of hardware that computers running macOS can have. I'm sure you could get similarly perfect hardware support on Linux by being careful about which hardware you run it on.
I donated to marcan in the hopes that someone now will.
There should be a free software OS installer that is as easy to use and supports as much hardware with full functionality as the Apple OS installer. Apple has already done the heavy lifting of a well defined hardware target.
"does it run homebrew" is my lead question
The situation is even more Linux-centric on Mx.
I think, thats the target. not 'run it on my mac' but 'be like a mac, running on my Lenovo PC, which already supports FreeBSD well[*]'
[*] does not always work well with blob demanding devices == 802.11/GPU
Or even better, a better package manager that isn't slow as hell and understands semver.
Edit for people using macOS: if you want to install one thing without waiting to update unfold numbers of other things, hilariously Cakebrew (a GUI frontend for homebrew) will let you do that with homebrew as the package manager.
Maybe the issue is something else entirely?
This is more than a little ridiculous and you know it.
Does this mean a mach emulation layer on top of or in the freebsd kernel?
[1] https://news.ycombinator.com/item?id=28068542
Other than that it looks interesting, a sorta-Mac-aesthetic sorta-BSD.
A macOS-like operating system based on FreeBSD - https://news.ycombinator.com/item?id=28087092 - Aug 2021 (67 comments)
Airyx OS - https://news.ycombinator.com/item?id=28068542 - Aug 2021 (254 comments)
Cmd+, opens preferences in every app.
Cmd+[ or ] goes "back" and "forward", in every app that has those concepts
Cmd+Shift+[ or ] switches tabs, in every app that has tabs, except a handful of stupid chat apps who think they're too good for it.
Cmd+W always closes the current tab, if the app has tabs, (or current window, if the app has no tabs), and does not quit the app – that's what Cmd+Q is for.
Etc.
Also notice how PageUp / PageDn, keys that my keyboard doesn't even have, are not used for crucial shortcuts like these.
Seemingly small things, but absolutely maddening when developers don't respect the common convention, or when a common convention does not exist.
I always thought this consistency was a feature of the app ecosystem and app developer attitudes rather than the OS itself, so I'm not sure what RavynOS can do to make third party apps obey their idea of consistent shortcuts? The wiki doesn't mention anything about shortcuts despite the language on the home page.
In contrast, the Ctrl keys are usually located such that they're best accessed with your pinkies. Who thought that making people use their weakest fingers for the most common shortcuts is a good idea?
Could you remap your keys to have Ctrl keys under the thumbs in Windows / Linux? Yes, but then:
1) It will become hard to use Ctrl-based text navigation shortcuts (such as Ctrl+left to navigate one word left) with one hand, and
2) Ctrl+Tab will now use the same physical keys as Alt+Tab used to, and your brain will never heal from this (at least mine refuses to).
but otoh ppl have strong opinions for the exact same reasons (hand/finger dexterity) by assigning ctrl to caps lock
less weird-pinky/hand-rotation does feel like a win, though
Why would it be any different than on macOS?
> 2) Ctrl+Tab will now use the same physical keys as Alt+Tab used to, and your brain will never heal from this (at least mine refuses to).
So why not switch this also? Where's the problem?
At least on Linux there are no issues. It's mostly clicking one checkbox, and changing "Alt-Tab" to "Ctrl-Tab".
Because in MacOS those arrow-based text shortcuts are Alt-based, not Ctrl-based, and right Alt is already located right next to the arrow keys where it's most convenient for those particular shortcuts. It does not need any remapping since in MacOS the Alt key is not used for most other system shortcuts, unlike the Ctrl key on Windows/Linux.
> At least on Linux there are no issues. It's mostly clicking one checkbox, and changing "Alt-Tab" to "Ctrl-Tab".
Been there tried that, on Ubuntu, last attempt a couple years ago. Does not work, many apps have Ctrl+tab hard coded to switch between their tabs, so if you make Ctrl+tab the system shortcut for switching apps, you can't switch tabs in those hardcoding apps anymore.
Where's the problem to tick a checkbox and change that?
> Been there tried that, on Ubuntu, last attempt a couple years ago. Does not work, many apps have Ctrl+tab hard coded to switch between their tabs, so if you make Ctrl+tab the system shortcut for switching apps, you can't switch tabs in those hardcoding apps anymore.
Once again, that are GTK problems.
Just avoid GTK (v3 and later) and Electron and there are no usability issues. Simple as that. But I'm repeating myself.
What checkbox do you mean? (I understood the one about ctrl+tab, but not this one)
I'll give KDE a shot next time, but I think some apps I use heavily are actually GTK apps (such as Firefox), we'll see how it goes.
Maybe I'm confused, but I have an right Ctrl and a right Alt. Both keys are left to the arrow keys. I thought you wanted to switch around also those two keys. That would be ticking a checkbox in the keyboard config afik.
> I'll give KDE a shot next time, but I think some apps I use heavily are actually GTK apps (such as Firefox), we'll see how it goes.
I also use Firefox. It uses GTK. But this makes no difference as Firefox does its own thing anyway. It uses GTK only under the hood.
The two most annoying things with Firefox are solvable: You can use custom.css to switch around the OK / Cancel buttons in dialogs (thankfully they don't use "real" GTK dialogs but some XUL, otherwise you would need to patch the GTK libs) and one can have proper file-dialogs by now through the desktop-portal interface. So Firefox remains its own thing but at least the GTK parts don't creep up anymore.
Oh, and global menu does not work in FF (even it works for "normal" GTK apps). Also they still didn't manage to make keyboard shortcuts configurable. But that are FF issues on any desktop or OS…
Same layout here. I want the key that's used for arrow-based text navigation shortcuts (Alt on MacOS, Ctrl elsewhere) to be physically the rightmost key, right next to the arrow keys, then I can press it with my index finger and press the arrow with another finger. Otherwise, if that key is farther from the arrow keys, I find it hard to press those shortcuts. At the same time, I want the key that's used for most system shortcuts such as Ctrl+N / Cmd+N to be under my right thumb because it's the strongest and otherwise underused finger.
So, on non-MacOS systems I end up wanting right Ctrl to be in two different places at once, since those systems use Ctrl for both types of shortcuts mentioned above. So unless I have a big enough keyboard to have two *right* Ctrl keys on my keyboard, I can't just remap the keys to solve this.
Whereas on MacOS it's fine as-is because it uses Alt for arrow-based and Cmd for other system shortcuts respectively, and those keys are already where I want them to be.
Anyways, this is getting too much about me, I doubt it's interesting to anyone. Cheers.
For those more familiar with Windows and probably most Linux conventions, Home/End won’t behave how you want but they move to the start/end of a scrollable view (which IMO is more useful).
In most any app ^a will be your Home equivalent and ^e will be your End equivalent. If that sounds weird or weirdly familiar… a subset of emacs key bindings are built in for basically all native macOS text inputs. If you get weird and hook up a full keyboard to iOS devices, works pretty much the same!
(I personally use ^t quite a lot because I accidentally rtanspose letters while typing all too frequently)
Cmd+Shift+, opens preferences in every app.
Alt+Left or Right (or Back or Forward) goes "back" and "forward", in every app that has those concepts
Cmd+Tab or Cmd+Shift-Tab switches tabs, in every app that has tabs.
Cmd+W closes the current tab by default, if the app has tabs, (or current window, if the app has no tabs)
Cmd+Q quits the app.
Etc.
What's again so special about macOS?
One needs only to avoid GTK stuff, Electron, and Windows Software, and one gets perfectly consistent behavior.
And those behaviors can be "even" configured globally! (That's something to mention specially of course when talking to Mac users as such an advanced feature like "configurability" is notoriously missing in the Apple universe).
Now, copy and paste. It is cmd-c in mac, in ubuntu you can’t tell me unless I tell you if I am in a terminal or not.
But most of all, readline shortcuts ctrl-a goes to the beginning of a line in nearly ever mac app. Not so in linux.
But the issues aren't Linux specific of course.
KDE is by now one of the most lightweight¹, stable, and usable desktops by far.
And KDE is completely configurable regarding look&feel. You can make it by now even look and behave like any other desktop with one click using global "themes" (the feature switches more than the theme; that's why I've put the term in quotes).
https://store.kde.org/browse?cat=121&ord=rating
¹ KDE beats mostly everything in this point, except maybe raw WMs and LXQt. Yes, it's more lightweight than say the GTK3 based Xfce by now… The "magic" lies to one part in Qt that gets optimized for embedded applications now for many years, and all the work in optimizing KDE itself after it got bad rep one and half decade ago for being bloated (which was indeed true back than; but they learned the lesson; only the internet FUD never dies).
So as long as one avoids all the inconsistencies then one gets consistent shortcuts? ;) Only using Qt apps on Linux is very hard. A lot of good apps are GTK or Electron. On macOS there is no GTK & Qt divide and Electron apps are very good at implementing macOS shortcuts. Hence you get more consistent bindings.
Also, many bindings are absent even in Qt app. For instance, on macOS you have Emacs-style bindings in every app (Ctrl+a, Ctrl+p, Ctrl+k, etc.). Those are very useful. You can get them on Linux (at leasts in GTK apps) but it's very hacky and it conflicts with a bunch of stuff, whereas they fit right in on macOS. Cmd+Shift+/ to search all menus is also super useful and I don't think you can do that on KDE.
> And those behaviors can be "even" configured globally! (That's something to mention specially of course when talking to Mac users as such an advanced feature like "configurability" is notoriously missing in the Apple universe).
If you don't think macOS can be configured then you are mistaken. It can't be configured to the extend that KDE can that is true (some of us consider that to be a feature). But a lot is still possible. As an example, kindaVim adds vim-style keybindings to every app which is kinda cool.
Not sure if this is what you're talking about, but KDE now has KCommandBar (or some name like that?), a HUD menu that can be invoked with Ctrl+Alt+I.
Though I as a KDE fan concede that the need for some GTK stuff is kinda disappointing, for me Firefox and Inkscape (can't care less about Electron stuff, though). Inkscape AppImages have turned out very handy, but alas the Firefox ones don't bundle GTK so you can't have a GTK-free system if you want to use Firefox.
Still though I don't think something as configurable as keyboard bindings are too much of a deal to promote or convince people about a DE or a OS.
There are even whole distris doing that… ;-)
https://kaosx.us/
I have hardly any GTK app installed and I would not know what I'm missing. (Firefox uses GTK but it has it's own UI anyway). Electron? That's the plague of modern times. Besides VSCode (which I will switch away in a blink as soon as the alternatives are ready) I don't use any Electron peep. Also here I would not know what I'm missing.
But of course, it's only me. YMMV
> Cmd+Shift+/ to search all menus is also super useful and I don't think you can do that on KDE.
Global menu is of course integrated in KDE. You can even use it form KRunner (of course with fuzzy search).
https://libreddit.northboot.xyz/r/kde/comments/r85jcz/tip_yo...
I think the idea of using a "HUD" in KDE is actually even older than the macOS feature.
https://github.com/Zren/plasma-hud/
> If you don't think macOS can be configured then you are mistaken.
Apple products are made for the mass market. That's one of the reasons they actually follow the same philosophy as Gnome. What this means regarding options everybody knows I guess:
Options are hard to maintain and "confuse the user".
So Apple products are dumbed down even more with every release. (They even replace perfectly fine working software with "touch-ware" in the attempt to make everything more tailored to the causal users).
That being said, your statements about macOS sounds like they are coming from someone who's never used it and are making a fairly uninformed straw-man opinions about it. For instance, the statement "Apple products are dumbed down even more with every release" is just demonstrably false. Apple products gets more features with every release. For instance, the last macOS release got Shortcuts, Focus Modes, and Universal Control. All of which are power user features.
Firefox is a mess! (On every OS I think). I'm already happy to have proper looking dialogs by now…
There is a feature request hanging around to be able to configure shortcuts in FF. Nothing happened until now. Since many many years…
That's the problem if there is no choice.
You can only use Mozilla crap, or Google spy-ware.
Imho a replacement for the whole insanity that "the web" is is long overdue. But I guess nothing will ever happen. (Except maybe if our future AI-Overlords would show mercy).
I'm sure there's other programs on MacOS that don't follow the global key bindings.
Out of the box, several short-cuts conflicts.
Moreover, on non-US keyboards, many MacOS shortcuts are simply not reachable.
Also, having ctrl and cmd be separate keys is a godsend. No, I don't want to kill the running app, I want to copy some text.
"[" on AZERTY french keyboard requires to type Option+Shift+5
"]" on AZERTY french keyboard requires to type Option+Shift+)
I can't even imagine how the equivalent of Cmd+[ could be a "shortcut".
I'm generally a bit sceptical of this "copy macOS" idea. It isn't a particularly amazing operating system, it is mainly just very well supported by third parties considering that it is a unix. You won't have that if you recreate it in this way, and I'm not sure if you will be left with a very good experience.
Last but not least HaikuOS deserves some forward look
The original 1984 Mac keyboard did not even have a Ctrl key, it was added to later keyboards as people wanted access to terminal applications.
On Windows, ctr+c in a terminal will interrupt a running process, or, if text is highlighted, will copy that text instead of interrupting.
It works really well, and took me a long time of doing this without issues to realize what I was actually doing.
The default is usually ctrl-shift-c to copy and ctrl-c to send sigint - but setting the copy command to ctrl-c will usually flip them, making sigint ctrl-shift-c.
I enable this on basically all the terminals I use. I also immediately rebind cmd to ctrl in mac, since I can't stand the RSI inducing placement of the cmd key.
Example on Kitty, my current preferred terminal emulator this is just a few map directives away in the config:
map ctrl+c copy_to_clipboard
map ctrl+v paste_from_clipboard
map ctrl+shift+c send_text all \x03
Nothing against FreeBSD (happy user here) so there's probably some good reasoning behind this.
PureDarwin was (is?) an attempt that hasn’t been able to break through those headwinds.
The short answer is "hardware support". ravynOS should run on most commodity x86_64 hardware using FreeBSD's very stable and performant drivers.
The longer answer is that plus I don't see any real advantage to using xnu. We have merged in Mach support now (big thanks to NetBSD, NextBSD and the iX Systems folks for that) so the xnu approach just seems to add complexity and the effort of writing and maintaining drivers.
Considering how big this project is already, I opted to stick with the BSD kernel - at least for now
Mach the kernel, the IPC system, or the binary format?
(btw, I don't know much about this kind of work, so I have no idea if it's feasible to port the drivers from Asahi to FreeBSD, or if they'll have to start mostly from scratch)
Elementary is just a nice skin with some particular tweaks and add-ons. Etoile’s goal was more akin to what they’re trying to achieve here, an actual Objective-C+Cocoa user space with a Mac compatible open library,
It seriously had worse UI design decisions than Gnome 3.
https://ravynos.com/screenshots.html
Good luck to the developers!
That's a bit old for me (I started with Tiger), but I would definitely be all over an option to go back to OS X (where, I felt, the paradigm was that users should be presented with the best possible default experience, but also should be trusted to tinker if they chose to do so) before they started pushing this macOS = iOS integration (where the paradigm should be that users should be protected, even against themselves, from any need or ability to tinker).
Snark aside, sure, it starts small. But it's so much easier to pitch in if there's some code base to work with. It snowballs.
Yes, they definitely need some good luck, but sometimes rewriting the world is necessary to one day invent something new, or just eliminate architectural issues that are too entrenched in the old code to be easily circumvented without adding bloat and/or bugs. The price to pay is lagging behind the competition, with a potential bigger payoff only later, for those who persist. I see roughly a similar approach with the PinePhone: they probably went like "the heck with reverse engineering other phones, we make our own one from scratch!"; the result as of today is a ~90% working slow phone that very few among non tech users would want, but we see the much bigger potential if and when they'll reach hardware performance at least comparable to known brands. It takes courage, perseverance, and luck.
I've been involved in two rewrites during the past 5 years. While the rewrites were not by choice (one was forced by Flash EOL), in both cases there were multiple, very obvious (after the fact) benefits:
- Better, modern technology top to bottom
- Better dev process, facilitated by the better technology
- An excuse to focus functionally, and rethink. We couldn't possibly reproduce a heap of legacy features and were forced to focus on what mattered, and managed to offer those key features in a far superior way.
Done right, a rewrite can be fantastic. And sure, rewrites often happen for the wrong reasons and at the wrong time.
I'm a KDE user since 2010 and a week ago I purchased an M1 Pro (hopefully to install Asahi in the future). My desktop was basically a top bar with global menu, a few widgets and Latte Dock.
If I didn't know that Mac came up with the functionality before, I would think that it is Mac that feels like a skinned KDE
I believe that a bigger factor today is the third party support for your system.
stuff like teams not working, or netflix not being able to stream in 4k makes me still keep my windows machine, even though at this point its basically a firefox / vscode terminal with extra apps and of course a system level integration of docker.
Im pretty sure there is enough room for a true developer OS but it still needs to do all the "little" things that we have grown accustomed to.
Specifically:
- I really miss a decent address bar in finder that can be edited directly
- some windows on mac are always on top, preventing access to other windows. E.g. Password dialogs for encrypted hard drives.
- "Cut" does not work for files in finder, severely complicating moving files
- The Maximize button does not maximize, but instead enters full screen, meaning that I never use it
- There is a delay of ~100ms when pushing caps lock on the keyboard that can not be turned off without installing karabiner elements
- Pressing enter in Finder renames a file instead of opening it, an action that is rarely needed and extremely unintuitive – this erroneous behaviour can also be corrected with karabiner elements
- Sometimes audio balance will randomly shift to the left or right with bluetooth headphones, had to install yet another app to auto-fix it every time it happens because Apple is too daft to fix the bug.
- There is no delete key on the Mac keyboard, meaning that deleting a file is suddenly a two- key shortcut combo, whereas it is much easier on Windows/Linux (hit delete). Sigh.
Sure some could be better, but changing these would upset the whole user base. (And mac users could claim those things broken in kde in the same way)
I have used windows, gnome2, gnome3, xfce, mac and so on and dislike kde, and gnome3, and all the others. Even mac is really dumb sometimes, but macos is the most polished by far.
> Sometimes audio balance will randomly shift to the left or right with bluetooth headphones
> There is a delay of ~100ms when pushing caps lock
Another seems objective not subjective
> Pressing enter in Finder renames a file instead of opening it
Who thinks the enter to rename is reasonable?
Decades of MacOS users?
A long standing one actually. I remember having it in Mojave/El Capitan already on my 2102 MBP.
The others are annoyances from not being familiar with the UI, some more motivated than others. But let’s recall the sad story of the thumbnails in GNOME’s file picker, for a second…
Users expect actions to match the sequence of inputs. If the user can type CAPS and "TITLE" and get "tITLE" its a bug.
Basically 50 years of computer interfaces of all kids across all OS across planet earth use enter or return for activation. This includes Mac in all other contexts.
F2 to rename dates back to windows 3.1 with environments like KDE using the same key that is familiar to windows users. Like many things it is an arbitrary choice without any inherently correct answer. The nice thing about it is in dolphin is that one can easily discover this by right clicking a file or folder and noting the shortcut listed beside the action so you can both complete the task visually immediately and learn the hotkey easily.
Bugs are when systems don't work as intended. Intent you don't like isn't a bug.
Enter or return does different things in different contexts. Its most frequent functions are go to a new line or end text entry. Saying it means activate and implying activate means open is trying to find consistency where it isn't. And what it does in Finder is what it does in other text fields.
Return for rename is older than Windows 3.1. The error rate for pressing F2 is high for something so common as rename.
I can read in the news more or less every day that fundamental things like input devices, monitors, audio, or basic GUI features are messed up or bluntly broken in macOS. People already "joking" that one needs to way at least two or three point releases before trying out major updates. That's even worse than the situation on Windows by now (and MS is also breaking things with every update).
As a Linux user that uses a "perpetual beta" distri (Debian Testing) I'm horrified about such news. Comparable breakage does happen on my OS maybe 2 times in a decade on average, and when some catastrophe like that happens (monitor stops working, no audio, USB not working, or such) it's usually fixed within hours!
Both Gnome and KDE are better desktop environments, heck even Windows 11 has done a better job (although they ruined the taskbar now).
The mere fact that you can not change things to your liking on Mac proves my point. You have to buy- and install third party applications from developers that you do not know or trust, and that is just to fix some of the most basic issues. Microsoft recently also decided to go down this route, and have now sabotaged their own Taskbar, preventing users from moving it.
It has nothing to do with "not being used to the Mac-way" – these things are just worse on Mac. There is nothing good about not having direct access to the location address in your File Manager, or not being able to change this stupid default behaviour of various keys and UI elements.
The ability to use "cut" on files, and actually change location by a text-based address bar are both to be considered core features. It is entirely brainless and inconvenient that we have to hold in "option" just to get a "move files" option to show up in the right click context menu.
That's one of the biggest jokes on the Mac, indeed.
On Windows it's not much different besides one detail: You also need a shitload of tools and gadgets only to make basic things usable. But at least those tools are mostly free (like in beer) or even OpenSource. On the Mac instead you have to pay ridiculous amounts of money only to get some basic options (like for example, I think it was ~30 bucks, only to be able to configure the acceleration of the mouse cursor).
The usability on the Mac is very broken, but people knowing how to "milk" other people created a whole market for laughable expensive apps out of it only to fix the most annoying things. That's just sooo ridiculous! I personally have no clue why people are buying this kind of stuff. It's like they want to be treated like -peep-. Imho the "jokes" about Stockholm syndrome victims are no jokes any more. That's bitter reality.
BTW:
https://www.digitaltrends.com/computing/apple-causes-religio...
https://www.researchgate.net/publication/276887293_iReligion...
https://www.researchgate.net/publication/233647272_The_Cult_...
https://www.itproportal.com/2015/08/13/the-religion-of-apple...
By now it's a quite irrefutable scientific fact that hardcore Apple users are brainwashed sect members.
Should be obvious anyway. Just look how they behave and what they keep saying when confronted with critique…
Luckily macos is extensible so you can create your own service for that.
What is the shortcut for "paste and move"?
⌘+V for paste
⌘+⇧+V for paste and move
The way Mac handles copying and pasting text is also horrendous, because it also copies the styling, something I actually never need to do. The way to paste text without styling is a horrendous long, and inconvenient keyboard combo.
Other system does that too, but it is just less often an issue. Typically what I do instead is I have a plain text window open, paste my text in that, then copy it again, and finally paste it in the intended destination. It is piss annoying
What made me stick with the platform though was never having to worry about drivers, and updates being polite and patient, and not being bombarded with a billion ads everywhere like in Windows or Ubuntu. Also not having to drop into the command line to change monitor settings is nice. And the M1 is just soooo nice, fast and quiet and cool, no x86 laptop is even remotely close anymore. They put the ThinkPads, my previous favorite, to shame.
So yeah, to your point, the dumbed down UI is a pain, but the rest of the experience is so much nicer now. I'd take needing a few extra apps over having to go back to desktop Linux...
I can't remember the last time I had to do this on Linux. Sometime in the the 90's, I think.
this is something that should be done everywhere, if it isn't, it's a potential security issue.
Trust me, the alternative is much, much worse. You do not want users using the same password everywhere.
I use a password manager, passwords are encrypted and only briefly available doing the copy / paste operation. It also has an auto-fill option which further limits the attack surface.
KDE is much more respectful towards users, because you can actually remove/add the "always on top" flag as needed, and that IS the way it should be.
Also, you can also fix the "caps lock" issue by remapping it to "control". Completely fixes the "caps lock" button. It works on Linux too! ;)
And of course, a "always on top" flag would have been really nice for dragging and dropping between windows. That option is really nice in KDE, but missing on both Mac and Windows.
Press Command-Shift-G and it will appear as a small window. (I haven't figured out how to do this in a "Open/Save File" dialog, so if anyone can chime in, greatly aprreciated)
> "Cut" does not work for files in finder, severely complicating moving files
It's annoying that there is no shortcut equivalent, but if you need to actually move a file either drag and drop it, or press Option while right-clicking in the target Finder window - the menu entry will change from "copy here" to "move here".
> The Maximize button does not maximize, but instead enters full screen, meaning that I never use it
Yuck, yeah. Very irritating. Use SizeUp, well worth the 13 US$.
It breaks my normal work-flow when I am on my mac, which is most the time nowadays.
There also is a shortcut for moving files, but I do not care about that.
It's like a race to the bottom to please an elusive lowest common denominator class of users that doesn't exist. I find these other "modern" UIs incredibly condescending.
Instead, discoverability should be #1, creating soft, natural learning curve that welcomes new users without capping or hiding advanced functionality.
I think I'm not alone in this approach; I wonder if this project has the change to be as rock-solid as Apple's offerings. If not, I'm guessing it's not for me.
My father even did the 20.10 to 21.04 LTS upgrade himself! I highly doubt if windows would've been as smooth an experience.
(Macs are out of question for us since none of us are rich!)
I'm not saying Pop is bad, but Windows upgrades are super easy and user friendly (if you ignore the privacy risks that come with using Windows). I wish common Linux distros would pack something like system restore by default already! I know these tools (based on BTRFS/ZFS snapshots) exist and work great, but they need to be set up manually and most people won't.
You might say it wasn't the best distribution for reliability, or that graphics with NVidia are always an issue etc. but the fact remains that, for me, for an OS to "just work out of the box", MacOS is much better.
[I'm also not a Linux n00b, been using it for over a decade, though not an expert for sure]
There is one way to run nvidia stuff on Linux and have a decent experience: run a distro that actually support and has partnership with nvidia, which mean a distro like Redhat Enterprise Linux. It has long term support too.
It is the same with Apple or windows if you start using shitty drivers from a shady brand you will run into issues at some point.
My way is rather: I don't want to even pollute my brain cache with that. I want a Computer with an Operating System that Just Work. Because for me tinkering with the setup of my desktop is not fun, the fun bit is what I do with a properly working computer. I'll pay a premium to Apple for that (though, mind you, MBP is competitively priced with similarly-performant laptops), and I'd pay that same premium to a laptop+Linux provider.
Except... my confidence in the latter working well is lower. Because apart from fixing broken graphics drivers, I've also had to, in my days, debug:
- package managers that somehow got themselves into a bad state
- fight with linkers when trying to build fairly benign stuff on my desktop
- don't even mention printing
and many other things I don't even remember anymore.
That is exactly what you did by choosing Apple.
If you go on the redhat website and choose certified system you can pick your hardware from any vendor the same way you choose your Apple machine on the Apple store.
My experiments with macOS actually had the same problems you list, though I haven't tried printing more than once. MacOS comes with ancient Unix tools and you end up downloading half a Linux install over Brew when you try to compile stuff, and now you have added an external package manager you need to deal with to as system that doesn't really support one.
Mg experience with package managers is that if you ignore the warnings (adding --force to overrule errors, adding external repositories that replace system libraries or aren't maintained, mess with config files to override same defaults, mix package managers (apt+global pip = hell)) you won't see them break themselves. I've broken Windows installs by messing with my system in similar ways, though there never seems to be a solution when this happens other than a reinstall. Trouble mostly comes from outdated, misguided guides found on Google that'll ignore any best practices for your opersting system and set things up Their Way, turning your install into a ticking time bomb when the writers have long had to reinstall their operating system without ever updating their guides.
All operating systems I've tried are bad in their own way. Windows worked great until 8 came out. MacOS works well enough if you don't mind Apple's control/decisions/limitations and accept the risk of buying a faulty device that the company will deny all the way up to class lawsuit settlements. Linux works well if you're lucky with your hardware. The BSDs work well if you don't plan on doing all that many things the OS isn't equipped to do out of the box and if you don't have any weird hardware.
Sounds strange because both Linux and MacOS share the same Cups software for printing. AFAIK Cups main developpers are employed by Apple.
I haven't run into any hiccups these last 15 years. Everytime I was in the market for a printer I just verified it was supported well on openprinting.org. On my current printer I just needed to install one rpm.
Compare that to all the crappy software that was installed on my gf windows 10 laptop, involving a reboot, annoying popups telling you about ink level on every print and an app loading up at startup to stay in systray.
I like to mention that I used for 18 years a scanner on linux and bsd perfectly while it was out of support in Mac and windows since 2001. It wasn't even a device that would have used very old connectors impossible to find on modern hardware. It was using USB! In that particular case I don't think that Mac really accounts for what you'd call a "Just Work" experience.
With partial open sourcing efforts I predict that the nvidia situation will improve a lot the coming years, luckily. Until then, don't blame people who try Linux for nvidia's problems; there is no user friendly guide to find what hardware is supported how well for Linux and its kernel updates.
Furthermore, even supported drivers are a mess sometimes. There was a bug in the Linux kernel for months where the kernel would freeze up less than a second after boot if you had an Intel GPU and were using a second screen through DisplayPort. My laptop didn't have audio on anything but a beta driver package when I bought it. Ubuntu and friends simply couldn't use modern Intel graphics with multiple displays or hardware acceleration because the drivers were never backported to an LTS supported kernel. One in five times, my Manjaro install kernel panics on boot when switching from text mode to graphics mode, with no obvious way to debug; I was advised to get two USB to serial port adapters to debug the issue which would likely help, but I don't want to bother to be honest.
The world of Linux is full of driver issues, mostly graphics and sometimes audio, that are impossible to even debug without a second computer and a few years of Linux experience. Many common peripherals lack any kind of Linux support as well. The "shitty drivers" come from every brand on every product range and the only guaranteed method to work with you at stuff you'll find is to never ever upgrade your install once you get everything working.
I want Linux to be better for everyone, but overlooking its obvious flaws and blaming users won't get that done.
Ubuntu is a mess that introduces config-breaking changes every release and rides the already existing market. If Canonical tried to release their products nowadays without their track record and existing user base, they would never succeed.
The peak Linux experience for a Just Werx focused end user is probably openSUSE Tumbleweed on KDE or XFCE. Batteries included, fast and extremely hard to break package manager, YaST2 configuration manager, and lots of user repositories.
If you're saying upgrading between releases causes problems.. well that's true but not how I read the original statement, and not something I particularly care about. Each release is a different product and there's no reason to update until support is dropped on the one you're currently using.
I try desktop Linux again every year or two[0]. It's always just as bad as it's always been. Way more application crashes than I'm used to on macOS, jankiness galore, all the stuff I used to avoid doing out of habit because it often breaks things on Linux (and to some extent also on Windows) but am now used to doing because it's fine on macOS is still often a bad on Linux (e.g. drag-n-drop actions). Lots of little annoyances like the default US English keyboard layout being crap for no reason on most distros, which, sure, I can change it, but why not have a good default? Still nothing as good as Preview on any platform other than macOS, AFAIK, which hurts quite a bit.
I think there was about a two-year high point in the late '00s when Ubuntu was just curating good defaults and smoothing things out and the future looked really bright, then Ubuntu rapidly deteriorated and it's back to how it had been before then, now, just shinier because of all the mostly-mediocre-or-bad GUI changes in the major DEs since then.
My next attempt, I'll probably just shoot for the holy grail of FreeBSD on the desktop. Linux seems like a lost cause at this point. May not be any better but a lot about it sure is way saner than Linux-land, so, worth a shot. Great on servers, certainly. Not expecting much because it's mostly the same as Linux in the GUI department, though.
[0] Last time: Ubuntu and Fedora (I don't like rpm-based distros, but thought I'd give them another shot), plus tried Void for the first time which was pretty great actually but I just don't enjoy fiddling with configs anymore so, it's a no for me.
Even the UI conventions that let you use the keyboard instead of the mouse are now often broken by Apple itself (it impacts power users more than impaired people since accessibility features are still good).
And no containers - those require you to run a different kernel on a VM.
Frankly I feel that macOS went back to being like Mac OS 9 in a lot of aspects - it's just enormously bigger and has a proper foundation but the UI is again mouse centric and proprietary and the system is more tightly coupled than ever with the hardware
It feels in passing like a lot of work to build a skin/UI that will always be a few generations of the design language behind and not quite there, just given the volume of staff at Apple and them being the ones defining where their design language goes.
Like a choice between a Porsche and, according to Google a Zotye -- they'll look close but one will be the obvious "genuine article."
Would it not be better to take all that talent and consider a fresh approach to the user experience of a personal computer?
Unrelated to RavynOS, but I see the size of the Apple staff more like a weakness not a strength. They became terribly inefficient in the recent years.
I think that "old school Windows" aka Win95-Win7 (where you could still use the classic Windows UI) and "old school MS Office" was the perfect balance between "keep it easy enough for users to get started, with clear visual distinction to aid them" and "allow power users to work as well", and that was a large part of why MS Windows and MS Office became so utterly dominant. Only when MS started to go bonkers with Vista and then the disasters that followed from a design perspective, users suddenly started to look for alternatives.
Yeah, although I think product managers are worse offenders. I think neither extreme is good. Customization is important but hard to get right, and creates rigidity and burdens for developers as well. One thing that engineers ignore, is the cost of mandatory customization or learning curves. Most users, even technical ones, may never get around to customizing so the defaults are more important than the full set of options. And engineers often underestimate the importance of sensible defaults. Google, for instance, had entire products that people didn't know about because they couldn't make users aware of them, despite them being free and good.
> "old school MS Office" was the perfect balance between "keep it easy enough for users to get started, with clear visual distinction to aid them"
I think that was an extremely cluttered UI, far more than saturation the attention of a new user. But otherwise I agree that hiding everything in menus or omitting features is not the solution either.
Moreover in my opinion the contributor pool might be thin, most potentially interested users would prefer using MacOs, and most linux users being notoriously not fond of the lack of configuration. Happy to be proven wrong!
The interesting part in Apple products is mostly the hardware.
The ability to just type and search through all menu items saved me so much time!
While I think that your take on Apple UI/UX not being good is rather contrarian (given that many quote them as some of the best in the industry), I agree that using Ubuntu with Unity was actually a reasonably pleasant experience, at least in the later years when they had addressed most of the quirks that the earlier versions struggled with.
Then again, I'm the kind of person who is also served perfectly well by something as simple as XFCE or LXQt, so maybe I'm a bit biased and my standards aren't the highest. Yet, I really appreciate a UI that's functional and feels snappy.
My only gripe is I wish firefox would integrate it better instead with an UI similar to (now defunct?) Eolie web browser.
Also I haven't spend enough time with it recently but I think kde plasma has the flexibility to be probably as good as gnome. I just don't like the default settings and have always been too lazy to dig deep into it. I used to love kde3.
When people way gnome3 do they really mean gnome3 or gnome3..gnome43?
I really like Gnome 42 and improvement that can be seen in 43, but I didn't like gnome3 at all
Ironically the same happened in the kde world a few years before. I had been a very happy user of kde 3.x and kde 4.x happened to be a crashy pos and it only really got better with kde5.
Interestingly, it's a feature introduced to CSS way back in 2015. There must have been some major blockers on getting that out the door if it took ~7 years.
If what you want is to replicate the MacOS X UI you can customize the UI of your DE on Linux, or use something like ElementaryOS or use Pantheon.
What are the goals of this project?
Could we use Mac compatible apps in place of windows ones if Linux isn't available? Games? Productivity?
[0] https://github.com/darlinghq/darling
https://github.com/vinceliuice/WhiteSur-gtk-theme