{"id":27100856,"url":"https://github.com/mfilej/dotfiles","last_synced_at":"2026-05-01T08:32:16.341Z","repository":{"id":6191653,"uuid":"7422158","full_name":"mfilej/dotfiles","owner":"mfilej","description":"fish, jj, mise, homebrew, macOS 🔧","archived":false,"fork":false,"pushed_at":"2026-03-01T20:54:09.000Z","size":1192,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-01T21:41:43.917Z","etag":null,"topics":["dotfiles","macos-setup"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mfilej.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2013-01-03T11:59:42.000Z","updated_at":"2026-03-01T20:54:13.000Z","dependencies_parsed_at":"2024-01-09T10:43:23.138Z","dependency_job_id":"c5a78b54-fd1c-4d96-848d-bf07a7210291","html_url":"https://github.com/mfilej/dotfiles","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mfilej/dotfiles","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mfilej%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mfilej%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mfilej%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mfilej%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mfilej","download_url":"https://codeload.github.com/mfilej/dotfiles/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mfilej%2Fdotfiles/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32490810,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"online","status_checked_at":"2026-05-01T02:00:05.856Z","response_time":64,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dotfiles","macos-setup"],"created_at":"2025-04-06T13:39:02.184Z","updated_at":"2026-05-01T08:32:16.328Z","avatar_url":"https://github.com/mfilej.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ~/.dotfiles\n\nWhat works for me. Might not work for you. Slowly evolved over the years, inspired by these fine people: [@garybernhardt], [@mislav], [@tpope], [@mihar], [@lukerandall].\n\n\n## Philosophy\n\n1) Use built-in tools when possible, switch to something else when it hurts.\n2) Extend functionality instead of replacing it. For example: someone who (only) knows vanilla vim should still be able to pair with me, because all the original bindings are still available.\n\n\n## How do files in this repository end up in my home directory?\n\nUsing a few `jj` commands, documented in the chapter [Finally, dotfiles](#finally-dotfiles). This allows us to sidestep symlinks almost completely, with the exception of a few sensitive files that we store in iCloud Drive. Credit to [@hjr3] for the [guide][jj-dotfiles-guide]. (Previously, I relied on a [similar technique][git-dotfiles-guide] based on git).\n\n\n## Setting up a new computer\n\nTake a deep breath through your nose and savour the smell of your new computer.\n\nFollow the operating system's first time start-up wizard. \n\n\n### System Settings\n\nUse the search function to find the relevant settings.\nThings get moved around more often than I set up new computers, so the exact labels might differ.\n\n- Check for updates and wait for them to finish installing.\n- Change the computer name..\n- Make sure FileVault is enabled and store the recovery key (comes enabled by default on new computers).\n- Disable Screen saver.\n- Trackpad: Enable *Tap to click*.\n- Desktop \u0026 Dock:\n  - Uncheck *Close windows when quitting an application*.  \n  - Uncheck *When switching to an application, switch to a\n  Space with open windows for the application*.\n  - Check *Group windows by application*.\n- Privacy \u0026 Security: Give Full Disk Access to Terminal.app.\n- Accessibility:\n  - Under Display: Check *Show window title icons* to have persistent proxy icons.\n\n\n#### Keyboard\n\n- Customize modifier keys (for laptops).\n- Set keyboard repeat rate and delay to *Fast* and *Short* respectively.\n- Under Spelling and prediction:\n  - Uncheck *Correct spelling automatically*.\n  - Uncheck *Capitalize words automatically*.\n  - Uncheck *Add period with double-space*.\n\n\n#### Sound\n\n- Slide *Alert volume* to minimum.\n- Uncheck *Play user interface sound effects*.\n\n\n### Finder\n\n- Change to column view (⌘3)\n- Under General:\n  - *New Finder windows show* select your home directory.\n  - Uncheck *Open folders in tabs instead of new windows*.\n- Under Tags, uncheck everything.\n- Under Sidebar edit as needed.\n- Under Advanced:\n  - Uncheck *Show warning before changing an extension*.\n  - Uncheck *Show warning before removing from iCloud Drive*.\n  - Check *Remove items from the Trash after* select 30 days*.\n\n\n### Finally, dotfiles\n\nUse the one-liner from [brew.sh](https://brew.sh) to install Homebrew.\nThe script will take care of installing Command Line Tools for Xcode.\nRun `brew install jj` so we can move on to setting up dotfiles.\n\n\u003e [!CAUTION]\n\u003e [zerobrew][] is now a thing, so this section might need to be updated accordingly.\n\n```\nalias jj=/opt/homebrew/bin/jj\necho '*' \u003e ~/.gitignore\njj git init\njj git remote add origin https://github.com/mfilej/dotfiles.git\njj git fetch\njj bookmark track main --remote=origin\njj rebase -d main@origin\n```\n\n\u003e [!NOTE]\n\u003e After rebasing, `jj` will detect a conflict because earlier we manually created a `.gitignore` file.\n\u003e You can resolve the conflict by accepting the suggested `restore` command as mentioned in the error message.\n\nAt this point `jj status` should look clean.\n\nNow that Homebrew has installed the fish shell we can set up our shell:\n\nAdd the following to your $PATH:\n\n    fish_add_path /opt/homebrew/bin/ /opt/homebrew/sbin/ ~/bin/\n\nAnd clear the default fish greeting:\n\n     set -U fish_greeting\n\nOpen a new Terminal window one more time (or just run `fish`) and check `$PATH` to make sure the above worked.\n\nWith `$PATH` in place, we can install everything from the global Brewfile:\n\n    brew bundle --global\n\n\u003e [!NOTE]\n\u003e QuickLook plugins installed via Homebrew are quarantined. Follow these\n\u003e instructions for removing the quarantine attribute:\n\u003e \u003chttps://github.com/sindresorhus/quick-look-plugins\u003e\n\nNow that the dotfiles are checked out, you might want to hide certain files and folders so they don't show up in the Finder.\n\n```\nchflags hidden bin README.md\n```\n\nAuthenticate git for GitHub:\n\n    gh auth setup-git\n    gh auth login\n\nFinally, install [mise][] to `~/.local/bin`:\n\n```\ncurl https://mise.run | sh\n```\n\n\n### Launchbar\n\n    trash /Users/miha/Library/Application\\ Support/LaunchBar/{Actions,Snippets}\n    ln -s ~/Library/Mobile\\ Documents/com~apple~CloudDocs/Sync/LaunchBar/{Actions,Snippets} /Users/miha/Library/Application\\ Support/LaunchBar/\n\nConfigure indexing as follows:\n- For Safari Reading List, Safari Top Sites, Safari iCloud Tabs:\n  - Check *Access items via sub-search only*.\n- Do the inverse for Emoji.\n- Indexing the iCloud Drive directory is complicated. Out of the box you won't be able to access all its contents via LaunchBar nor will you be able to limit indexing like you can for regular directories. To work around these issues, disable the default index, then manually re-add it as a regular folder. Under Options, limit _Search Scope_ to _Search 2 Subfolder Levels_ and set _Search for_ to _Folders_.\n\n\n### Safari\n\n- From the Extensions pane, install and enable extensions\n- Under Advanced check the following options:\n  - Check *Show full website address*\n  - Check *Show features for web developers*\n- Under the Feature Flags pane that just appeared, search for \"60\" and uncheck *Prefer Page Rendering Updates Near 60fps*\n\n\n### Mail\n\n- Under Viewing:\n  - List Preview: None\n- Under Composing\n  - Message Format: Plain Text\n\n\n### sshd\n\nEdit `/etc/ssh/sshd_config` as follows:\n\n    PermitRootLogin no\n    PasswordAuthentication no\n    PermitEmptyPasswords no\n    ChallengeResponseAuthentication no\n\nThen restart the daemon:\n\n    sudo launchctl unload /System/Library/LaunchDaemons/ssh.plist\n    sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist\n\n\n[@garybernhardt]: https://github.com/garybernhardt\n[@mislav]: https://github.com/mislav\n[@tpope]: https://github.com/tpope\n[@mihar]: https://github.com/mihar\n[@lukerandall]: https://github.com/lukerandall\n[@hjr3]: https://github.com/hjr3\n[jj-dotfiles-guide]: https://hermanradtke.com/manage-dotfiles-with-jujutsu/\n[zerobrew]: https://github.com/lucasgelfond/zerobrew\n[git-dotfiles-guide]: http://www.gmarik.info/blog/2010/tracking-dotfiles-with-git/\n[mise]: https://mise.jdx.dev\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmfilej%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmfilej%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmfilej%2Fdotfiles/lists"}