I love that this document takes inscrutable OS X settings and translates them into familiar human-readable settings. I have no idea what "NSGlobalDomain NSNavPanelExpandedStateForSaveMode" is, but I understand what "Expand save panel by default" means.
However, like other people, I'm not sure that I agree with this particular set of changes. Is there a project somewhere that packages these options into a GUI? I know a bunch of folks who use OS X who might want to change these things, but they're not programmers and they don't even know shell scripts exist.
Sadly the project stopped updating in 2012 and the website, repository and forks seem all long gone.
(Should anyone resurrect this great app, one improvement should be versioning of secrets recipes. AFAIR Secrets.prefPane displayed options long after they stopped applicable for later Mac OS versions.)
Why would an app like this require a subscription and not a one off payment.
I think many small developers are taking cue from large enterprises on how to price products without thinking it through. There was another similar discussion about a YC macOS notification widget company the other day.
There has to be a reason for subscription, as in continued incremental value, cloud data storage and sharing, some sort of server backend that incurs monthly cost to run and so on.
Just slapping a subscription to a regular desktop application doesn't make sense.
Also, bundling is not a justification for a subscription, especially if one only cares about a single application. This is similar to the music albums which have already undergone unbundling and no one wants to see a bundling where there is no benefit to the consumer.
You’re welcome :)
I should add that the author might be willing to add some missing settings if asked nicely. I have been using Onyx since OS X 10.2 and it’s always worked as expected.
For clarity, I should point out that I don't believe that all of these defaults are "sensible" for every user. I gave the submission it's title because that is how the creator refers to the file.[0]
macOS already has sensible defaults, that's how people who have no interest in dealing with computers can use their machines for years with no issues or servicing(unless a latte is spilled over the keyboard).
Then, you can customise behaviour for some specific things to fit your workflow.
The problem with diverging from defaults without putting much thought on it is that if you don't use it frequently you forget about it and when weird bugs happen it gets very hard to debug because a common issue with a straightforward solution may no longer apply to you and you have no idea why since you cannot make the connection because you don't remember changing it.
I mean, you could use it as a cheat sheet, but that's not what it is. IMO macOS has a lot of terrible defaults that are not at all sensible, of course this is quite subjective, but the fact that many mac users accept the defaults isn't really saying much, typically end-users don't even realize there are other options available.
You can have different opinions on what's sensible but to claim that something is not sensible as general you need to make a point about an issue due to the default settings.
For example, if people were getting hacked through remote desktop connection all the time you could have said that macOS has insensible defaults on the security or even existence of that feature.
However, with macOS that's not the case, in fact macOS has so sensible defaults that a lot of its users have no understanding of how it works and yet successfully use it for years with no issues and not gaining any understanding through the years.
The thing is so well designed that it's often dissed as a Starbucks machine, implying that it is used by people with a lot of money who don't know what they are doing while simultaneously is an extremely popular machine among creative professionals and engineers who also like coffee and know what they are doing.
Having options is nice, for example I dislike dark mode but I like the dark statusbar so I have a customisation for it. I dislike autosorting of the Spaces, so I disabled it. I prefer to simply tap and not have to press on the trackbar so I enabled it.
However I would't call the defaults not-sensible, it's just that I like some stuff differently from the defaults.
> a lot of its users have no understanding of how it works and yet successfully use it for years with no issues and not gaining any understanding through the years.
This is true of every popular operating system. Most people just adapt to the defaults regardless of the OS. There are millions of people who use windows or chrome os, or even ubuntu as-is out of the box. Whether or not people want to change the defaults just depends on what they're used to, if you used windows for years and switch to macOS it's very likely you're going to be inclined to modify certain defaults and the same is true in reverse.
The defaults aren't powerful, thought they are sensible.
Windows (and most Linux DEs like KDE) come with out of the box snapping windows to the four corners of the screen and to the left and right which is perfect for how most people use their laptops. Most people need two separate windows open side by side because most jobs are about synthesizing two separate flows of information in some way (research in one window while writing a document in another for example).
In mac you need to install an app to do this (Rectangle/Spectacle). Now, that's fine because you can click and drag the windows where you need them to be. But it wastes your time whereas the default in Linux/Windows saves your time. Sensibility over power.
This isn’t true for the last handful of major versions of macOS. It may not be as intuitive as other OSs but you can click and hold (or right-click I think) on the green button in the traffic light to get side by side options.
Yeah but this is really a list of “tweaks”. It’s a nice list don't get me wrong, but changing the currency without prompting the user, using green as the highlight color (bad for accessibility), disabling window animations, configuring Transmission and TweetBot... there is plenty in the list that is in no way a “default” nor really even a sensible outcome to expect after running the script...
Because the lines that do something are nicely categorized with documentation included. Instead of running it all, you can take a look what’s possible and apply it individually.
> Instead of running it all, you can take a look what’s possible and apply it individually.
That's true of any script. The fact that this one is well commented doesn't make it not a script.
A cheat sheet is something you hang on a wall and glance at every so often. A script is something you run to make changes to a system. You can't run a cheat sheet.
How do you tell that it's not a really long string or a web page but a script? Maybe it's just a pattern of dots projected on LCD or 1s and 0s stored on a computer. I don't see any more concrete proof that it's not any of these but a script.
If you don't want to make changes like turning the highlighter color to green or set the TZ to Belgium, it's a great template for making your own version of the script, and it does the useful work of collecting a bunch of 'defaults write', 'pmset', and 'nvram' commands
I agree that calling it sensible is subjective. Most of these I wouldn't even use myself, but I found it to be a good reference overall. I set the title for the post based on the how the creator references the file.
No. A cheat sheet is used as a reference to some subject and is for making it easy to look up things many times, over time. This is something you read through once, apply the full thing / parts and then forget about it. Pretty big difference.
This is part of the reason I switched to Linux. I've heard so many people say "Linux is free only if you don't value your time" and then turn around and write one of these. If I'm going to go through the trouble of customizing an operating system to fit my needs, I may as well do it with a free and open system rather than MacOS, which can change for the worse at any moment (the dealbreaker for me was dropping 32 bit support). I spent 2 days getting my dotfiles spruced up, and now I can bootstrap any fresh Linux install by curling a script from my website and running it. On MacOS, it felt like I was constantly discovering things I didn't like, only to have the system fight me when I wanted to change it.
Realistically, the person who compiled this script file to make the OS behave exactly how they desire is very different from the kind of person who says "Linux is free only if you don't value your time".
Personally, I like to keep to the defaults and prefer to change my own workflow to match the OS designers' vision of how I should use a computer, rather than to try to bend the OS to my priors. I understand why this don't work for everyone, but it has made my life much easier.
This! I just get used to the defaults. When I change computers, no extra work for me. Contrast my business partner, who spends 2 days loading and configuring each new computer.
Absolutely! I thought I was the only one who felt this way. I used to customise everything “back in the day” and then I’d change machine or have to use someone else’s - and all my muscle memory would be lost.
These days the only thing I customise is the “refactor” shortcut in IDEA because the Fn keys suck on MacOS.
Same. It's seriously hard to say how awesome it is that a few days invested into customization ~10 years ago have lasted with me all this time. According to my dotfiles, the last "upstream updated something so I had to fix my setup" change was 4 years ago.
Firefox is the only program I run that requires constant "config maintenance".
Meanwhile, I've used macOS at work for ~5 years. Every time a big release comes out, IT departments have to go around screaming "DONT UPDATE IT WILL BREAK EVERYTHING" for a month. Once that calms down later we finally can update (though I only _want_ to update because by that point the incessant "Update now or tonight?" prompts have driven me mad) -- and instead of everything breaking, it merely breaks half my customizations and I have to waste time fixing it.
macOS admin here. I'm still going around screaming "DON'T UPDATE IT WILL BREAK EVERYTHING" about Big Sur :'(
Apple is just bad at breaking things for enterprise and notoriously slow fixing bugs affecting enterprise users. Right now there's still a major bug affecting Mobile Active Directory accounts, causing users to be locked out if they're not in the office after they upgrade. Sigh.. Problem is the MDM profile that should apply to local users only is somehow affecting mobile AD user accounts since the upgrade. In Catalina and before this was not an issue. Apple support acknowledged this but is still working on a fix. Even in 11.3 it's still not fixed.
And they don't provide an MDM method for update blocking. You can only postpone them a number of days (but this will affect minor and major updates alike so is not what you'd want). You can get it if you provision an infrastructure of update servers but we can't in our place :( This is why admins like me can't stop those prompts appearing for you.
PS Our latest Macs are running without AD (using the new Kerberos SSO plugin) and they fare a lot better, unfortunately it took me a long time to convince our Windows-centric security team that it actually weakens our security and accomplishes nothing on Mac :)
This is the problem in enterprises. As an admin I know there's better ways to do things but many of these decisions are imposed on me by other teams.
This took a while to understand. Reason why the M1 Processor and architecture is significantly faster than most of whats out there, on slower clock speeds, better battery life.
It is they dumped all the baggage of the previous arch. Including the 32bit world. Apple started out with a design , designed to do one thing. Give a great experience to a user.
Gone are the days of the GPU and CPU handshaking on moving memory from system ram to video ram. Same thing with SSD to main memory..
Removal of bad ideas and implementation of the lessons learned. Reason why FreeBSD is sometimes faster with linux. They dropped the old legacy code and design. Like MacOS, they are free to fix userland.
Linux & windows? Not so much. Linux userland is a horrible mess due to the "dont break the ABI of the kernel" Do you know there are known WONT FIX bugs in the kernel? Linux taught me that the idea of dont break the kernel adds, BLOAT and WONT FIX bugs... till you the mess called 5.11 that is 60 million lines of horrible linux code. No one uses the 32 bit driver of LSILOGIC.
If they do... let the use the older version of linux, its a mistake, proven by the bloat in linux to keep ABI compatibility.
My advice for everyone. Go FreeBSD, go MacOS, for new hardware go with modern arch, and kick the old compatibility out the door.
> Warning: If you want to give these dotfiles a try, you should first fork this repository, review the code, and remove things you don’t want or need. Don’t blindly use my settings unless you know what that entails. Use at your own risk!
I have some scripts that are super useful but also should not be used by somebody who doesn't know exactly what they're doing, so I literally stick a `exit 1` or such in the header so a teammate can't run the script without having looked at it first.
As most of the comments here on HN are taking issue with the weirdly editorialised HN title, rather than with the content, it would be great if a moderator could change the title to something more accurate like "Mathias Bynens' macOS defaults"
He does call them "sensible hacker defaults for macOS", which might get less criticism, but it's the repo title and there's no real indication that he's speaking to the general hacker public (and not privately to himself, as the "default hacker")
It doesn’t get any better when a few lines further down he disables the LaunchServices quarantine and frames it as eliminating a dialogue box instead of as eliminating a major mitigation to browser vulnerabilities.
(a fun game whenever these silly scripts get posted is to count how many different security measures they silently disable with little to no warning to the naive)
Can you elaborate? I despise the startup chime and disable it on all of my Macs. Why should they announce a startup when none of my other devices do? Why would I want to wake a sleeping baby or annoy other library patrons? This is one of the most obnoxious decisions Apple ever forced on its users (and, yes, I was happy when the illuminated logo on the laptop lid was finally put to rest).
Because if you ever run into a problem where your computer doesn't turn on, the startup sound is your first indicator of whether the screen is faulty, or the board is faulty.
Among the many differences, if the screen is faulty, one can plug in an external monitor, and: get files off, perform a backup, use the computer, and so on and so forth.
It’s intended originally to confirm boot, a real issue to solve back in the day. Some people get a warm nostalgia from it now. Not all choices need to be logical to improve a product for some.
I have plenty of devices that announce startup, I can think of at least one in every room of the house. Everything from my pfSense box to my washing machine.
Yes! The startup sound is part of the long history of the Mac. It’s entirely nostalgic for me and always reminds me of the sense of wonder I felt when I first used a 128K Mac.
Just the other day my mind was blown when I learned that the startup chord was inspired by the chord at the end of A Day In The Life from Sgt. Pepper's. Source? The guy who created it: https://www.youtube.com/watch?v=5838mfezO8M
I for one definitely think the whole world should set their timezone to Brussels.
Seriously though, I like not having scrollbars everywhere, I use two fingers for right click on the track pad, I do it without thinking, if I turn off natural scrolling I get incredibly confused.
Some of the stuff I can get behind, like this
# Enable full keyboard access for all controls
# (e.g. enable Tab in modal dialogs)
defaults write NSGlobalDomain AppleKeyboardUIMode -int 3
I get annoyed when secure keyboard entry turns on and doesn't turn off properly in iTerm as it messes up Dash's snippets.
I'm sure this is the sensible defaults for this one really picky person, and it's interesting to see all the choices, but I would definitely advise against someone running this on their workstation blindly.
Yeah "sensible defaults" doesn't make a lot of sense, it's way too opinionated. I could see using that as a starting template for some of my own preferences though. It's like reading somebody's vimrc, even if you don't care about 90% of it you might still find a few interesting tidbits that make your life easier.
# Disable automatic capitalization as it’s annoying when typing code
# Disable smart dashes as they’re annoying when typing code
# Disable automatic period substitution as it’s annoying when typing code
# Disable smart quotes as they’re annoying when typing code
# Disable auto-correct
...
but then I saw this -
# Allow the App Store to reboot machine on macOS updates
I assume this after you manually started the update, otherwise it is madness!
Yeah I saw that, it's basically the status quo on Windows though :( Happens all the time that people return from a break and find their machine decided to reboot. Luckily on Managed PCs you can stop this from happening.
I keep a Windows machine around for mainly games, and this is the very first thing I'd do on a new Windows installation. Run "gpedit.msc", find the "automatic updates" policy and disable everything.
Then it only sends you a notification once in a while, and that's it.
It looks like this is some person's set of config files, and for my part I find it useful to see how someone has set these OS configurations programmatically, but its quite opinionated, which is fine, but not exactly some kind of minimum set of defaults that most users would agree on--which OP suggests is the case.
I have not found a way to script the `Keyboard Preferences -> Input Sources` settings. I even versioned (in git) a ton of the `.plist` (property list) files in `~/Library/Preferences/` (they are binary files, but one can use `plutil` to get a textual XML representation). I think I arrived at the conclusion that these settings are persisted on a global / system level, and that there was basically no solution. I would be happy to be proven wrong!
When I was starting from scratch with macOS a few months ago, I had that sense of fresh new beginning. I wanted to have all of the configuration scriptable and versioned.
Unfortunately those preferences files also include a bunch of timestamps and dates and window locations, so it ends up being not a great idea.
> (they are binary files, but one can use `plutil` to get a textual XML representation)
You can get a JSON representation now too. Figured that out with Safari bookmarks .webloc. They’re basically plist files and used plutil to convert it to JSON
I love "dotfiles" in general, and IMHO this repo makes for excellent reference material. There's always something more to learn, and IME (paid to use computers since 1998) time spent improving your tools is usually well-spent. Of course tinkering can be a rabbit hole or time-sink of a hobby, but leveraging others' expertise (via dotfiles repos like Mathias's) can mitigate that risk. More generally, taking the time to grok the system you depend on -- and shaping it to your liking -- is one of the most sensible things you can do.
Exactly. Whoever wrote this is a minimalist. I want a hot pink animated focus indicator. I feel like I'm a sensible person, but after reading this script... I just don't know anymore.
> Presumably everyone thinks their own defaults are 'sensible', otherwise they wouldn't be using them.
Maybe, although I set my caps lock up to be escape when tapped and control when held, I don't think that would be sensible for many people at all unless the knew why they wanted it.
> I think the most sensible defaults are those that come out of the box, rather than spending time tweaking things.
This is probably true, I find it very difficult to use anyone else's system since my config is non-standard.
I have an Filco Japanese keyboard and the default settings on macOS even when the keyboard is set to Japanese (QWERTY JIS) gets the 英数 (alphanumeric) key, and かな (kana) key wrong (and they are supported on the built in laptop keyboard).
Word of warning: hidutil keeps the caps lock delay, so you’ll miss short presses. This drove me mad until I figured it out but by then Karabiner had thankfully been updated for the new OS.
If you learn the default, it doesn't matter how much time you spend on any given system. I don't get why people make themselves less portable by becoming dependent on non-defaults.
For what it's worth, I use Vim fairly regularly and have always left the escape key alone. (The "butterfly keyboard" Mac tempts to me remap it, but that is not, in the final analysis, Vim's fault.) I do, however, tend to remap caps lock to control, because I think it's a better place for it and it's not exactly a high effort thing to do the remapping -- it's built right into the Mac's system preferences.
As other people have pointed out, most of us aren't regularly using computers that aren't ours (or at least "ours," in the case of work machines permanently assigned to us), and I suspect nearly everyone who reads this web site has changed more than one thing on their computer that deviates from a fresh out-of-the-box default. :)
The default is reaching to the top left corner of the keyboard. I know the default and it's terrible if someone uses vim. In macOS it's trivial to remap the caps lock key to ESC system wide through the built in preferences. So while it's not that way out the box, it's certainly in the realm of default configurations any user might make on their machine.
I can't really understand picking an editor that is so awkward that it relies on me reconfiguring my hardware and breaking the labelling of the keys to make it usable.
Here's the thing. Even if someone doesn't use vim, remapping a mostly useless key like caps lock to ESC is still more useful. ESC should cancel out of most dialogs and popups, so should be key that is likely used more often than the occasional times someone needs to type a long enough string of upper case characters to need caps lock.
As far as editors and key labels, I don't really understand the problem. Move beyond any of the basic shortcuts on any editor, and you quickly move into combinations that have little to do with what's written on the key(s).
Who is this mythical person jumping between tons of computers? Who is dependent? The few times you're on a different computer you just deal and fallback to the mean.
I'd greatly prefer a title such as "Mac OS defaults I prefer". I read the first page or so and honestly didn't find any that I would actually want.
Labelling these "sensible" then suggests that the alternatives rather than just being personal choice are somehow not sensible, and who other than a fool would choose something that's not sensible?
Well me it seems, and I feel like the patronising title is implying that I am one.
I would have titled it differently had the creator not referred to the file as such. I even tried changing the title earlier today (I don’t particularly like it either), but it got changed back. Apologies!
I do my best to not change defaults on systems that I use. It ends up being a pain point any time I go to some other computer and have to deal with my extensions/customizations not being there. Something needs to be a big productivity gain to merit the change (or else be a trivial modification, like disabling caps lock).
Forked from these a while ago for the macOS part of dotfiles. My dotfiles support both macOS and Linux, and most of my configurations are also extensible on the local machine only though ~/.zshrc_local, ~/.gitconfig_local, etc (which in turn load private dotfiles I wrote for my company machines, but I digress)
I already use many of these and have learned several more good tips from reading this script.
In recent years Apple's default settings have trended more and more away from what keyboard-focused power users (i.e. developers) need, IMHO. That wouldn't be a big deal except they've also trended toward locking down those defaults to make them difficult to change. Scripts like this make it possible for me to continue doing development on the Mac without tearing my hair out.
This is neat! I had no idea so much of macOS was configurable at the cli. That said, I am very nervous to try these commands because I'm not sure what the original default is - so if I don't like any option I have no idea how to set it back! Short of an OS reinstall, I suppose. I can see why Mathias would want to preserve these - it's not any weirder than checking in your emacs.d folder.
While it's true that there are many command line options available, I use a similar script to configure my Macs and it can be quite painful compared to Linux. First of all, this is a script, not a configuration file, so the changes only take effect when it is run, not when a user starts a session (though I suppose that could be done). There are any number of ways the settings can be changed and preserved without your knowledge, so you'll need to run the script periodically. I actually keep portions of the configuration state (nvram, defaults) in version control so I can audit changes.
There are also a number of different commands (scutil, nvram, defaults, pmset, PlistBuddy, etc.) instead of common interface for things that seem related but aren't. Discoverability is horrible, even when you know the name of the setting you want to change. It is not immediately apparent what arguments are needed for "defaults write" based on the output of "defaults read" (possibly due to my own ignorance, but this raises the learning curve substantially).
Granted, there are a thousand different ways to configure any given Linux environment with varying degrees of difficulty, but I feel like many of the user preferences in the linked script would be better managed in dotfiles as they are in Linux (and other Unices and even for many apps on Mac OS).
> First of all, this is a script, not a configuration file, so the changes only take effect when it is run, not when a user starts a session (though I suppose that could be done)
I don’t think there is anything wrong with re-setting a bunch of properties in plist files every time a session is opened.
You’re right, the CLI is a difficult to use if you don’t know it beforehand. And even knowing it does not tell you about the various properties you can change with default. At least the script here points to some useful options.
While we're here, there's a couple things on a mac I haven't been able to figure out how to do, and maybe some of you mac pros can give me answers.
1) Remove the dock (killing the dock automatically restarts it)
2) Remove all desktop icons (Killing Finder accomplishes this, but they reappear as soon as you need to open something in Finder)
Stuff like the above is why I greatly prefer Linux.
It's really simple to have no desktop icons on the Mac. Just open the finder settings and under General untick all of the boxes to show on the desktop. Then move everything out of the ~/Desktop folder. It won't have anything on it after that.
As for the dock you can set it to auto hide, and change the delay so that it will come up but after N seconds [1].
I will try the finder changes, but I have my doubts crap won't randomly appear in my ~/Desktop folder automagically.
As for the dock, auto-hiding it doesn't disable it, it just hides it. So it remains visible in mission control, and still has bouncing icons from time to time. It also uses system resources, etc.
Ideally I wouldn't have to hack around these settings and could just turn off both these features, like I could on Snow Leopard.
The only "automagic" thing I know of that would need to be changed is changing where screenshots are being saved which can be done fairly straightforwardly.
I'm already using the 'autohide-delay' trick, but random randomly icons from the hidden dock will start bouncing and I can see the dock when I do the mission control view or whatever they call it.
On Snow Leopard you could actually kill the dock and it'd stay killed.
In the spirit of this post, for those using Java for development on MacOS, I'll share my .zprofile which sets up a reasonable Java environment for working in the shell.
Safari does this too.. Apple is on some horse about requiring user intervention for every single location request even from sites you’ve already allowed in the past. It’s annoying.
I think the only button on the dialog is like "rememberer for one day" or something, right? Once you've clicked that, go to preferences -> websites -> locations, change the affected site to "deny" and then "allow", and it's permanent.
macOS does not forget that Safari has location permissions. In fact, they're enabled by default. Chrome however has its location permissions reset so often that they had to add a feature to tell users it was off again.
This reminded me a bit of messing around with TinkerTool around 10.4-10.5 times, and to my surprise, it's still supported with a Big Sur compatible release!
This is configurable almost everywhere it is encountered, and there's a reason for that!
It's the same dilemma as panning a first-person-perspective camera up and down. Some people think that down should move the perspective, some people think that down should move the camera: so pushing the joystick down should move the viewing window up. These physical intuitions are durable and hard to change.
I grimly endured the difference between a trackpad and a phone until OS X (as it was then known) switched to the "correct" default, but I'm one of those people who expects a camera to work like the control stick of a plane: pulling towards me, or down, should elevate the perspective. I purchased a gimbal recently, and was having a terrible time controlling it until I realized that the default (pushing the joystick up points the camera up) could be overridden.
I don't think there's anything "sensible" in a general way about anyone's custom configuration script, frankly, and I suspect the person who made this wasn't actually trying to promote it for public consumption, and just meant "script to make my computer do what I consider sensible".
I've only ever noticed "natural" scrolling was wrong when it became an option on desktop machines.
It makes perfect sense when I'm on a phone that I'm grabbing the content, since I'm reaching out and literally touching the content.
But on a desktop, I have a cursor. Obviously if I want to point at something below where my cursor is, I move it down. And if it's off the window, I need to scroll down further.
There is an alternative, in the Finder view menu -> Show Path Bar. It's displayed at the bottom. This will display the path of the current selection, or -- if nothing is selected -- the currently opened folder.
There’s a couple defaults (e.g. always show scroll bars) I don’t change because, as a web developer, I need my browsing experience to be “typical”. But, overall, this is a very interesting list of things.
As someone who grew up using an old school Mac in the 90s, this is blasphemy! That triumphant chime is essential to the Macintosh experience (just kidding but kinda not).
A little unrelated but this hits one of my pet peeves.
Why do people give things generic names that have basically no meaning? If I encountered the script in machine I would wonder “WTF does .macos do?” There is also no comment in the header.
I see that at work too. People give lists of certain element types the name “list”. So a lot of their code is full of classes with generic names like “map”, “list” or “config” and every time you have to look at the code and see what the thing really does.
It was a popular “hack” back in the days before two-fingered click detection. Probably not as efficient as ctrl-click, but that felt even less Mac-like at the time.
A lot of these preferences seem to reflect the opinions of someone who would quite happily be stuck in 2005. Reverse scrolling… ugh.
Weird. I can't remember anyone doing that back in the day, as it was super easy to just ctrl-click. This seems like a "hack" for former Windows users ("switchers"), where ctrl-click has been around since Mac OS 8.
Since APFS firmlinks these binaries you might be setting up some undesirable behavior, especially if a folder is set to read only. :) Most of the time you'll be ok though
That also only shows you values that have been set. There can be values that are defaulted within the program itself that can be set, but do not have their default values written to any file, so do not show up in the `defaults` command except when set manually.
Unfortunately, the usual way of finding those is to `strings` the application binary, and weed through all the chaff. And that requires either a fishing expedition, or for you to already know what you are looking for (including what binary might be responsible for that).
Sensible for who? I wouldn't want many of these settings, and, for example, my parents would want almost none of them. These kind of scripts are almost never a good idea.
This is nice, but for the MacOS users who have a hard time dealing with the terminal, I've lived by the Secrets prefpane for some years and find it most handy:
However, like other people, I'm not sure that I agree with this particular set of changes. Is there a project somewhere that packages these options into a GUI? I know a bunch of folks who use OS X who might want to change these things, but they're not programmers and they don't even know shell scripts exist.