Although I honor this huge effort - just looking like macOS does not mean it is macOS-Like. I hate to say this, but macOS is way more than just its look. Most people miss that. I doubt that these FreeBSD changes will contain the following macOS-Like features:
- The best touchpad expierience including kinetic / inertial scrolling, rubberbanding,etc.
- Apps like Mail and Preview with its simple but yet powerful set of features
- Fast and stable Wifi
- Battery life
- Excellent Typography
- System wide function keys (play, pause, volume up, etc.) that work everywhere
- Quick look
- Air drop
I recently switched from macOS to Fedora 36 and will keep using it, because it is awesome, but the things I miss the most are listed above :-) But prefer freedom over macOS-Like, so kudos for posting this.
- Handover (shared clipboard between devices, continuing tasks on another device)
- AirPlay (both casting and playback control)
- Apps are just self-contained, launchable directories you can copy around, no separate installation step
- Application-centric (as opposed to window-centric) task management
- Tiny things like <Cmd-tab>, keep holding Cmd, click the app to switch to
- Even tinier things, like hold space to move the selection rectangle in the screenshot tool
- Extremely consistent support for all basic keyboard shortcuts like <Cmd-q>, <Cmd-w>, <Cmd-,>, etc, going back all the way to the classic Mac OS
- AppleScript, Shortcuts, (Automator)
- Color management
It's these things I miss on Linux and (Open)BSD the most, not the GUI theme. I actually think the current design (starting with Big Sur) is a huge step backward for accessibility and usability, fortunately this project doesn't blindly copy it.
This is also my biggest frustration with macOS because you can use same application for multiple activities. A browser can be used for researching a problem in the code you are writing and at the same time to play music from Amazon Music. Wy not allow those activities to be grouped seperately in different windows and desktops? macOS seems averse to allowing this and Windows and Linux seems to be much better at allowing them.
It's a part of Mac's design philosophy, probably goes all the way back to 1984. Since we're discussing making XFCE act more like a Mac, I would find the experience incomplete without this important detail.
It might boil down to preference, but - trying to be objective - this paradigm makes more sense, especially as you watch apps on other systems struggle to achieve the same goals (e.g. via tray icons), which usually don't work consistently, or require setting additional preferences. If I close a music player window, I want the music to keep playing. If I close the activity monitor window, I want the app to continue accumulating stats to make a graph - unless I quit the app entirely. Closing the window/tab (Cmd-w) and quitting the app (Cmd-q) are distinct actions. Now why would a note-taking app work differently? This is a more coherent design, that puts less cognitive load on the user.
It works because each app tries to stick to one task - you're switching between tasks, not windows. The counterexample that illustrates how bad can this problem get, is the terminal apps: every window with mutt, vim, ncmpc, top, or irssi looks the same, has the same icon, BUT has different keyboard shortcuts! Madness.
> It would be cool if MacOS offered an option to chose.
I will argue that having a more thought-thru and consistent paradigm is more important than having more options - especially if all the options still can't get you a decent experience.
It's definitely achievable through third-party applications; you can probably DIY something using Hammerspoon.
Handoff is only a small part of the continuity stuff Apple has for working between your Apple devices and it's called Continuity [1]. KDE Connect is great but it comes nowhere close to mimicking the functionality of it.
The functionality you describe in "Handover" is achieved (and more besides, such as playback control) on Linux with KDE Connect.
I can start writing an e-mail on my phone, put down my phone and then continue working on it on my tablet, and then putdown my tablet and immediately finish it up on my desktop in Linux?
> I can start writing an e-mail on my phone, put down my phone and then continue working on it on my tablet, and then putdown my tablet and immediately finish it up on my desktop in Linux?
I was doing that in the 1990s (thanks to IMAP and auto-saving drafts) without any vendor lock-in.
The thing is, it is OS-wide and does not work only for emails. It is not difficult to add to an application and all first party apps that have an equivalent on Apple Watch, iPhone/iPad and Mac work very well. A typical use case is looking at a web page on the phone, putting it on the big screen for whatever reason (for me it’s often to show a video). Or transition seamlessly from whatever I was doing on my phone whilst commuting to the desktop. Or the other way around. Or, having received a message on the watch, if a long reply is needed, the shortcut is there when I get my phone to go directly to the right message. Having that shortcut in a predictable and permanent place means that it’s trivial to do, regardless of the app in use.
It is not huge, but it is the opposite of the thousands paper cuts. It’s a reliable features that provides thousands tiny time savings and some small convenience. It was not uncommon for me to send myself emails with URLs of things to have a look at when at home before this sort of things made switching devices much more convenient (Air Drop also helps immensely).
Now when Linux can do the same thing with a word processing document, with an IM client, with a spreadsheet, with a presentation program, with my web browser; let me use my phone as a webcam, a signature pad, or a document scanner, get back to me.
Any cloud syncing service will sync files the second you save them. IM clients sync by their nature. Web browsers have had sync capabilities for years.
I've lived in the Apple ecosystem for a few years and Handoff/Continuity can do some impressive things (like the webcam thing of late, or cross device phone calls) that I ended up not using in practice. That's just me though. I prefer the simple way.
When Handoff or associated features don't work when they should, good luck troubleshooting.
Handoff can work with third party applications though mostly it’s Apple stuff. One notable exception is you can hand off webpages from your phone to macOS and it’ll be handled by any browser.
> Apps are just self-contained, launchable directories you can copy around, no separate installation step
That isn't specific to macOS. It's also a feature of BSD, Linux, and Windows.
But for reasons that escape me, software distributors keep adding an installation step anyway. This is something that's gotten worse since the days of DOS.
It's been replaced by Shortcuts; both are basically a drag&drop graphical language for automating simple system tasks. You can also escape to raw shell or AppleScript (which in turn allows you to script any GUI) if necessary.
Results of one block are piped to another, and operations range from very high level to very low level, so you can easily make stuff like "take input file, run OCR, and submit the text to this URL". There's integrations with HomeKit (smart home), many system services, third-party apps can also add actions. You can add actions as dock icons, context menus, share sheets, etc. It's also synced between all your devices, you can tell your HomePod: "Hey Siri, shutdown the homelab", and your lackrack goes quiet.
It's extremely cumbersome if you'd try to use it as a general-purpose programming language (I've tried implementing UUID4 just as a benchmark and gave up pretty fast), but very intuitive for simple tasks like that.
Thanks for the explanation. Just discovered: Shortcuts actually has a gallery with a lot of examples. Also I can let it run shell scripts (at least on the Mac), so it looks like I'll be able to get inputs from other programs to another script easily (using pbpaste)
One thing I wish were easy to configure on FreeBSD and Linux that makes macOS feel more "Unixy"[1] is using Cmd+ for most application shortcuts and reserving Ctrl+ for Bash-style shortcuts throughout most textfields.
Kintosh is great and is a very thorough implementation that is not simple remapping from linux/windows to mac analogs, but also considerate of conflicts in various applications as well. I believe in terminal emulators in Linux, for example, cmd+v will send ctrl+shift+v instead of simply ctrl+v.
There's some drawbacks, though. Wayland support doesn't exist. It's still a "hack" rather than a system wide adoption of MacOS keybind paradigms. It can't possibly account for all edge cases.
I would say if you're looking for advanced remapping of keys in linux you might want to look at Interception Tools[1] since it works on both X and Wayland, though programmable keyboards with QMK or ZMK are still going to generally be a better option.
The amount of times I accidentally opened developer tools in the browser or started a call to a group chat in teams because my mind was stuck in ctrl+shift+ mode from using the terminal..
Geary had promise as a sort of FOSS Mail.app counterpart but last I knew development on it had stalled. In theory Thunderbird could fill that need but it’s always felt kinda cludgy and odd in comparison.
Although it may not be the shiniest star, it has a huge feature set and works pretty good for me.
2.) Mailspring
It is a pretty good Mail.app Alternative, but I did not like the restrictions and the user interface was pretty unpolished, although pretty Mail.app-like
The most annoying part on all Mail apps I tested was the search. It was mostly unusable, if you have ever used macOS Mail. The search is so much ahead of every other mail app I tested (and I tested a ton) that I don't know if it is just hard to build it or no one ever tried to rebuild the Mail.app search. The only app that was pretty close was mutt/neomutt, but although I like terminal interfaces, in Mail I often use Mime features like bullet lists, tables, Image previews and other stuff that is hard to do in Terminal UIs.
I'm fully satisfied by Claws Mail, however thread oriented message grouping like Geary would be a nice improvement, along with a sleeker UI.
I would not however give up too much performance for it; Claws Mail speed to me is one of its major selling points.
Honest question: what does that do to application shortcuts? Say, printing. On macOS, cmd-p will open the print dialog. In Gnome (and in Windows I assume) ctrl-p does the same. With the theme above, what happen on ctrl-p and where's the keyboard short for, say, print?
?? I don't know what that means, but AFAICT, the keybindings you suggested does not actually solve the problem with the use of Control. I tried to make that as painfully obviously as possible with the Print shortcut; control-p
can't both be previous-line and a shortcut for print.
+ OS-wide drag and drop that works in basically every application for many things, especially images. The number of times on Linux I try to drag an image out of Firefox and into an open file browser only to be met with the "not allowed" cursor is truly infuriating.
And well-developed third-party apps that integrate deeply into the rich macOS APIs. E.g., the other day someone posted Shortcat which provides keyboard shortcuts for every GUI application, by using macOS accessibility API (which apparently works everywhere, including in Electron apps):
Apps like that are not only a testament to the awesome indie developers in the ecosystem, but also the great APIs that make it possible to develop such application as a solo developer.
Thx, I know sushi, it was the first thing that I've found that made me love fedora. Out of the box quick look :-) But it is only similar to quick look, not as polished and integrated. Good enough though.
Pretty much like the touchpad experience, if you tune a few settings, buy a glass touchpad from a Yoga x1y3 for your T480s WQHD[1] and install `libinput-config` to fix the kinetic scrolling on HiDPI :-) But don't use touchpad drivers like mtrack or synaptics. Stick to libinput...
I plan to publish all my findings and research in a `Transition from macOS to Fedora` article in my blog, but 2 toddlers take their time ;)
A Quick look alternative is preinstalled on Fedora (GNOME sushi). Just press space while on the file manager.
It's not equivalent. With QuickLook, I can not only preview files, I can manipulate them. For example, I can crop an image, or add a signature to a PDF, or even edit an image that I'm previewing on my computer with my phone or tablet and the result is on my computer instantly.
>System wide function keys (play, pause, volume up, etc.) that work everywhere
What's so special about it? The only difference between my Asus with Linux, and Mac in this regard is that on Mac I have to use touch stripe which is inferior experience compared to physical keys.
I also see no discernible difference in many other things you mention like wifi stability.
My WiFi is fine too (as long as you have the right chip!) but the touchpad thing alone almost made me replace my thinkpad with an m1 air.
Now I'm on an unholy win/linux/ios setup and don't really get use all the Apple integrations, but I have to admit I wish I could, not for gnarly dev stuff, but simply to make my life easier
I can easily agree that Mac's touchpad is nice, as many other pieces of its hardware. MacOS however is not as good as it used to be (comparatively), because other OSes advanced significantly while retaining better configurability.
Btw, any touchpad should be used for a limited time, say in travel conditions. If you use it so much it became a decisive factor of choice - you are voluntarily marching towards RSI.
I appreciate the concern, I mosty use an ergonomic mouse and rarely use the touchpad (the one in my ThinkPad is utter trash anyway but that's a different story). It's just for me personally, build quality and UX will always be decisive factors and I will pay extra for that with no hesitation.
macOS' weirdness is actually what's preventing me from buying into this ecosystem although I love how it looks. Pretty sure it's not a very 1337h4x0r thing to say but I like nice colors and consistent designs more than tweaking configs and writing cursed scripts. YMMV
That's because what seemed like the best way to do hidpi when macOS added it (fixed scale factors and assets) ended up being a problem. It's better to not abstract away the DPI differences. It makes for worse compatibility in the short term, but much better long-term.
The behavior with high refresh rates is pretty bad, too. A lot of stuff is hardcoded to 60hz, and programs have to opt in. They haven't even fixed Safari properly yet.
Every time I read about the benefits of Wayland, I read shopping list of stuff I don't care about and don't want. I don't give a stuff about techie nerdwank like refresh rates, tearing, video smoothness, triple buffering and other pointless implementation details that it is the entire job of a GUI to make go away.
What I care about is that I plug in a screen, I drag a window onto it, and it stays the same size. That my window can straddle two screens and still work. That I can resize it across as many screens as I want.
I want it to work and I want how that happens to be invisible.
Wayland, as far as I can tell, is about xNix graphics programmers complaining about how hard the job is, I'm afraid.
From what you describe we actually strongly agree. This stuff should work and be invisible to the user. I just meant that the environment should expose the DPI details to the programmer and not pretend everything is low dpi like it's always been.
Wayland is about a bunch of amateur programmers learning for the first time how graphics work, individually and separately all in parallel. Wayland needed to have a bigger, definitive core library designed by experienced developers. What we've got now instead is a myriad of low-level graphics implementations, none of which handle edge cases very well.
Cool project and kudos to the developers, however projects such as these often fall into an uncanny valley for me.
The overall look matches that of MacOS (or Windows, etc), but the details are off. Fonts are wrong, padding and spacing are wrong, UI controls are a little off. The attention to detail just never matches that of the real thing.
I agree. I'd like to see some themes that are Mac-inspired but are not clones, which seem to suffer from this "uncanny valley" you mentioned.
To add, Mac OS is much more than its visual elements; the Macintosh Human Interface Guidelines establishes what it means for a Mac application to be one by specifying rules that not only apply to visuals, but also to behaviors. Historically Mac users rejected software that did not comply with the Macintosh Human Interface Guidelines (for example, the widespread rejection of Microsoft Word 6 for Mac, which was decried as too Windows-like, which caused people to stick to the well-received Word 5.1). It's possible to make an application built using Win32, GTK, or Qt to look like a Mac application simply by applying themes with a high degree of fidelity to the Mac. However, themes are unable to change the behavior of the applications to bring them in line with the Macintosh Human Interface Guidelines. A typical GNOME application with a Mac theme is still a GNOME application.
Of course, in an era where cross-platform apps are increasingly becoming the norm, there's less concern about adhering to a platform's UI/UX guidelines. I still believe there is value with having an ecosystem of applications that largely comply with well-thought UI/UX guidelines, which is one area where the Mac has absolutely shined throughout its history.
The details always being a bit off makes me think the better route might be to create an environment that follows macOS in the broad strokes (e.g. global menubar, applications presiding over windows in navigation, a general inclination towards loose organization of odd sized windows, etc) but when it comes to aesthetics has its own identity filling in the details.
A lot of DEs already do similar for Windows, being variants on the Win9X desktop paradigm (taskbar, windows over applications, inclination towards windows being maximized) so it’s hardly a novel concept and I think it more consistently delivers decent results.
Projects like this miss the point. Don't bother with being what will be an always imperfect macOS clone; just bother with making a good, usable system, adopting things from macOS which are good (universal menu bar) and rejecting those that are bad (window close button next to the minimize and zoom buttons (MacOS 9 and before did things correctly with having them on different sides of the window)), not just adopting its affects wholesale. And stuff like using the (pirated?) AppleScript icon for a .sh file is just wrong…
And I'm pretty sure anyone interested in running FreeBSD is going to prefer the dark mode of macOS anyway…
"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."
Great to see XFCE: it’s amazing, so flexible, lightweight and enables so much more than one would expect.
To bear in mind, MacOS is not just visual, there’s a whole UX paradigm that goes with it
It's a silly thing to do by default but the vast majority of people do not need them and can't justify the loss of performance on every context switch. The only untrusted code people tend to run on personal computers is in the browser, where you have same address space sandbox escapes which OS mitigations don't typically mitigate.
You're protecting against one process attacking another process, or one process attacking the kernel. That's not your threat model on a personal device. Your threat model is much more likely that whatever process you're running has complete access to all your files, there are a lot of issues unsolved before even considering speculation and sidechannels
There are none to be interested in, and never were.
I welcome correction on this, but TTBOMK there never has been a single one, from the original Lisa OS in 1983.
Apple OSes have always been designed and built as an integrated whole. That's one of the things Apple owners like about them. Rather than developer effort being split across dozens of competing rival implementations, there is one, and all effort goes into improving that single one.
Before I get called a fanboy: I wasn't an Apple owner until about 12 years after the Mac launched and I have never bought a new Apple product in my life. All mine were 2nd hand, or free, saved from disposal.
That would be nice, but the thing is that the OS X UI has been heavily influenced by more mainstream PC desktop UI design, which makes it both more accessible to migrants from other platforms, and for making imitations of it.
Classic MacOS wasn't, and there are no complete emulations of it any more. There were in the '90s, but they are lost now. I've looked:
This script mixes ports with custom build options with the official binary packages, which are built using only the default build options. Going forward, it would be advised to only update via e.g. portmaster or poudriere. In both cases, the user would need to compile updates from source.
Many pro artists and content producers today do not need Adobe Software anymore, the alternatives are often much better. Take some time and taste freedom.