HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
mathiasbynens
dotfiles
Shell2011–2026
mathiasbynens / dotfiles

dotfiles

:wrench: .files, including ~/.macos — sensible hacker defaults for macOS

49Distinct people
57Mentions
1Explicit recommenders
31.5KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

:wrench: .files, including ~/.macos — sensible hacker defaults for macOS

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

> I don't think your words said what you thought you might have meant > Except the annual release cycle actually started with Mountain Lion, which was 1 year after Lion, and…

Maursault used a recommendation phrase. One indexed comment matches. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:56:07 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year57 dated mentions

Observed mentions: 2011-09-08 17:54:51 UTC to 2026-09-06 20:30:22 UTC.

02468102011-01-01 00:00:00 UTC to 2012-01-01 00:00:00 UTC (exclusive): 5 mentions; 1 submissions, 4 comments20112012-01-01 00:00:00 UTC to 2013-01-01 00:00:00 UTC (exclusive): 4 mentions; 1 submissions, 3 comments2013-01-01 00:00:00 UTC to 2014-01-01 00:00:00 UTC (exclusive): 9 mentions; 2 submissions, 7 comments2014-01-01 00:00:00 UTC to 2015-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 6 mentions; 0 submissions, 6 comments2016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 5 mentions; 2 submissions, 3 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 4 mentions; 0 submissions, 4 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments20182019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 6 mentions; 1 submissions, 5 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 4 mentions; 1 submissions, 3 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20112011-01-01 00:00:00 UTC2012-01-01 00:00:00 UTC514
20122012-01-01 00:00:00 UTC2013-01-01 00:00:00 UTC413
20132013-01-01 00:00:00 UTC2014-01-01 00:00:00 UTC927
20142014-01-01 00:00:00 UTC2015-01-01 00:00:00 UTC303
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC606
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC523
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC404
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC202
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC110
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC202
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC615
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC413
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC101
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC303
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC000
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC202

From the project README

An excerpt from the repository, fetched Nov 13, 2026.

Read the project’s introduction
Mathias’s dotfiles Installation 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! Using Git and the bootstrap script You can clone the repository wherever you want. (I like to keep it in ~/Projects/dotfiles, with ~/dotfiles as a symlink.) The bootstrapper script will pull in the latest version and copy the files to your home folder. git clone https://github.com/mathiasbynens/dotfiles.git && cd dotfiles && source bootstrap.sh To update, cd into your local dotfiles repository and then: source bootstrap.sh Alternatively, to update while avoiding the confirmation prompt: set -- -f; source bootstrap.sh Git-free install To install these dotfiles without Git: cd; curl -#L https://github.com/mathiasbynens/dotfiles/tarball/main | tar -xzv --strip-components 1 --exclude={README.md,bootstrap.sh,.osx,LICENSE-MIT.txt} To update later on, just run that command again. Specify the $PATH If ~/.path exists, it will be sourced along with the other files, before any feature testing (such as detecting which version of ls is being used) takes place. Here’s an example ~/.path file that adds /usr/local/bin to the $PATH: export PATH="/usr/local/bin:$PATH" Add custom commands without creating a new fork If ~/.extra exists, it will be sourced along with the other files. You can use this to add a few custom commands without the need to fork this entire repository, or to add commands you don’t want to commit to a public repository. My ~/.extra looks something like this: # Git credentials # Not in the repository, to prevent people from accidentally committing under my name GIT_AUTHOR_NAME="Mathias Bynens" GIT_COMMITTER_NAME="$GIT_AUTHOR_NAME" git config --global user.name "$GIT_AUTHOR_NAME" GIT_AUTHOR_EMAIL="mathias@mailinator.com" GIT_COMMITTER_EMAIL="$GIT_AUTHOR_EMAIL" git config --global user.email "$GIT_AUTHOR_EMAIL" You could also use ~/.extra to override settings, functions and aliases from my dotfiles repository. It’s probably better to fork this repository instead, though. Sensible macOS defaults When setting up a new Mac, you may want to set some sensible macOS defaults: ./.macos Install Homebrew formulae When setting up a new Mac, you may want to install some common Homebrew formulae (after installing Homebrew, of course): ./brew.sh Some of the functionality of these dotfiles depends on formulae installed by brew.sh. If you don’t plan to run brew.sh, you should look carefully through the script and manually install any particularly important ones. A good example is Bash/Git completion: the dotfiles use a special version from Homebrew. Feedback Suggestions/improvements welcome! Author Mathias Bynens Thanks to… @ptb and his macOS Setup repository Ben Alman and his dotfiles repository Cătălin Mariș and his dotfiles repository Gianni Chiappetta for sharing his amazing collection of dotfiles Jan Moesen and his ancient .bash_profile + shiny tilde repository Lauri ‘Lri’ Ranta for sharing loads of hidden preferences Matijs Brinkhuis and his dotfiles repository Nicolas Gallagher and his dotfiles repository Sindre Sorhus Tom Ryder and his dotfiles repository Kevin Suttle and his dotfiles repository and macOS-Defaults project, which aims to provide better documentation for ~/.macos Haralan Dobrev Anyone who contributed a patch or made a helpful suggestion
Read the full README on GitHub

What Hacker News says

57 sources
I believe I first learned to shorten animations on MacOSXHints.com (gone now). Regardless, I learned a lot of great "enhancements" here: https://github.com/mathiasbynens/dotfiles And here's the blog of the person who ran MacOSXHints.com: https://robservatory.com/make-your-macos-dock-suck/ Fun aside, I'm pretty sure that my mention of a system issue that I read about that morning on MacOSXHints.com was a helper in landing a job in an interview that afternoon. What I mean is, I said, oh are you talking about "whatever thing on that site today…?" and it demonstrated that I was familiar with whatever internals.
In Native Instant Space Switching on macOS
Other than installing programs, most of this stuff can be automated by writing a shell script. For example: ``` # Remove the auto-hiding Dock delay defaults write com.apple.Dock autohide-delay -float 0 # Remove the animation when hiding/showing the Dock defaults write com.apple.dock autohide-time-modifier -float 0 # Automatically hide and show the Dock defaults write com.apple.dock autohide -bool true ``` More here: https://github.com/mathiasbynens/dotfiles/blob/main/.macos It's kind of old but most of them should still work.
In New MacBook Setup
You might be interested in this: https://github.com/mathiasbynens/dotfiles/blob/main/.macos I don't advise just running Mathias' config as is, but read through it and see if anything seems to be something you want in yours, make the changes, and save it somewhere for the next time you're setting up a Mac. There's some stuff in there about speeding up certain animations (look for "Speed up Mission Control animations"), and about not reordering "spaces" (desktops, full-screen apps, search for "Don’t automatically rearrange Spaces based on most recent use") based on use which I think may also affect cmd+tab ordering? Not sure, but it's a setting I always change anyway because the default doesn't make sense for power users. About the trolling thing, sorry, I was genuinely not sure if you were arguing in good faith or just making stuff up, as
Read the rest
most of the things you were saying were just plain incorrect or dishonest, from comparing desktop computer performance to low-powered laptops, to incorrect statements about features macOS truly excels at.
In The first conformant M1 GPU driver
Maursault·Nov 6, 2022Recommendation phrase
> I don't think your words said what you thought you might have meant > Except the annual release cycle actually started with Mountain Lion, which was 1 year after Lion, and High Sierra was also 1 year after Sierra, but you put them in the "the glory days of OS X stability". They mean what I said, but I'm certain now that instead, you did this, but let's see if this helps >>>> Leopard to Mountain Lion were the glory days of OS X stability, COMMA (NEXT STATEMENT AND NEW THOUGHT)--> >>>> with Snow Leopard, Mountain Lion, and High Sierra standing out as focusing on bug fixes rather than introducing new features (and new bugs). > I was talking about how macOS annoyingly advertises new major updates, for example in Software Update, and even permanently badging your System Preferences Dock icon until you upgrade. I don't think your words said w
Read the rest
hat you meant and/or I made a poor assumption by your use of "pushing" in the context of "updates" or upgrades. Apple did start to push out security patches for supported OS versions, but you meant notices, or nags, of available OS upgrades. These can be avoided by disabling push notifications via the gui[1] or more permanently using the Terminal and launchd to disable push notifications: sudo launchctl unload -w /System/Library/LaunchAgents/com.apple.notificationcenterui.plist or by completely disabling Software Update sudo launchctl unload -wF /System/Library/LaunchDaemons/com.apple.softwareupdate* or less permanently disable automatic software updates with the defaults command (duplicating the gui method) sudo defaults write /Library/Preferences/com.apple.SoftwareUpdate AutomaticDownload -boolean FALSE Outdated, but easily modernized for current macOS, and still my favorite list of disabling things.[2] Here is a nice source of defaults commands,[3] though the script is personalized for the author, I've only copied out what I wanted. Here's a similar script to pick through (blindly run scripts at own extreme risk).[4] [1] https://www.businessinsider.com/guides/tech/how-to-turn-off-... [2] http://tech.masterofsql.com/os-x/unload-disable-unwanted-age... [3] https://gist.github.com/mvanbaak/e98b7b622ea2c8ab626d51cb88e... [4] https://github.com/mathiasbynens/dotfiles/blob/main/.macos
In Home truths about macOS
1) Finder is an excellent image viewer. You want gallery view, which is one of the prominent buttons visible by default in the OS version I'm using. Maximize the window, and images will be nearly full-screen. No hidden UI elements needed. It's crazy to me that there is nothing like this (?) by default in Ubuntu. In the case that icon view really is what you want, you can adjust icon sizes with the slider in the bottom right corner - still no hidden UI elements. 2) Agreed, this is silly. This is likely fixed by one of the items in this very long list of power-user tweaks: https://github.com/mathiasbynens/dotfiles/blob/master/.macos
In How Intuitive Are Macs Really?

Showing the 15 most recent of 57 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.