{"id":13469041,"url":"https://github.com/bkuhlmann/mac_os-config","last_synced_at":"2025-04-08T09:12:31.694Z","repository":{"id":44347355,"uuid":"70118177","full_name":"bkuhlmann/mac_os-config","owner":"bkuhlmann","description":"Shell scripts for customized macOS machine setup.","archived":false,"fork":false,"pushed_at":"2025-03-30T16:40:39.000Z","size":1769,"stargazers_count":409,"open_issues_count":0,"forks_count":159,"subscribers_count":17,"default_branch":"main","last_synced_at":"2025-04-01T08:39:23.870Z","etag":null,"topics":["homebrew","macos","setup"],"latest_commit_sha":null,"homepage":"https://alchemists.io/projects/mac_os-config","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bkuhlmann.png","metadata":{"files":{"readme":"README.adoc","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.adoc","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["bkuhlmann"]}},"created_at":"2016-10-06T03:01:49.000Z","updated_at":"2025-03-28T06:04:16.000Z","dependencies_parsed_at":"2023-10-16T08:55:08.625Z","dependency_job_id":"cfd512c6-8512-45c3-8b8a-a74afae26b35","html_url":"https://github.com/bkuhlmann/mac_os-config","commit_stats":{"total_commits":874,"total_committers":1,"mean_commits":874.0,"dds":0.0,"last_synced_commit":"1e43262e62371c6587980c9b4e630bde34b4dfa7"},"previous_names":[],"tags_count":101,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bkuhlmann%2Fmac_os-config","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bkuhlmann%2Fmac_os-config/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bkuhlmann%2Fmac_os-config/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bkuhlmann%2Fmac_os-config/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bkuhlmann","download_url":"https://codeload.github.com/bkuhlmann/mac_os-config/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247809964,"owners_count":20999816,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["homebrew","macos","setup"],"created_at":"2024-07-31T15:01:25.045Z","updated_at":"2025-04-08T09:12:31.639Z","avatar_url":"https://github.com/bkuhlmann.png","language":"Shell","funding_links":["https://github.com/sponsors/bkuhlmann"],"categories":["Shell","Shell (473)","Mac/iOS"],"sub_categories":["Containers"],"readme":":toc: macro\n:toclevels: 5\n:figure-caption!:\n\n= macOS Configuration\n\nThis project provides a highly opinionated default configuration built upon the\nlink:https://alchemists.io/projects/mac_os[macOS] project. Should the configuration provided by\nthis project not be to your liking, feel free to fork and customize for your specific needs.\n\ntoc::[]\n\n== Features\n\nDue to the amount of tooling used, the following features are broken down into subsections for\neasier navigation.\n\n=== Homebrew Formulas\n\nInstalls the following link:https://brew.sh[formulas]:\n\n* link:https://asciinema.org[asciinema]\n* link:https://www.gnu.org/software/bash[Bash]\n* link:http://bash-completion.alioth.debian.org[Bash Completion]\n* link:https://github.com/sharkdp/bat[Bat]\n* link:https://github.com/toy/blueutil[blueutil]\n* link:https://github.com/cloudflare/cloudflared[cloudflared]\n* link:https://github.com/schollz/croc[croc]\n* link:https://crystal-lang.org[Crystal]\n* link:http://ctags.sourceforge.net[CTags]\n* link:https://difftastic.wilfred.me.uk[Difftastic]\n* link:https://direnv.net[direnv]\n* link:https://github.com/wagoodman/dive[Dive]\n* link:https://github.com/muesli/duf[duf]\n* link:https://github.com/bootandy/dust[Dust]\n* link:http://duti.org[duti]\n* link:https://eradman.com/entrproject[Entr]\n* link:https://exiftool.org/index.html[ExifTool]\n* link:https://github.com/sharkdp/fd[fd]\n* link:https://github.com/tako8ki/frum[Frum]\n* link:https://github.com/Schniz/fnm[Fast Node Manager]\n* link:https://github.com/junegunn/fzf[FZF]\n* link:https://git-scm.com[Git]\n* link:https://github.com/dandavison/delta[Git Delta]\n* link:https://github.com/newren/git-filter-repo[Git Filter Repo]\n* link:https://github.com/github/git-sizer[Git Sizer]\n* link:https://www.gnupg.org[GPG]\n* link:https://github.com/orf/gping[gping]\n* link:http://www.graphicsmagick.org[Graphics Magick]\n* link:https://www.graphviz.org[Graphviz]\n* link:https://github.com/sharkdp/hexyl[hexyl]\n* link:http://www.andre-simon.de/doku/highlight/en/highlight.php[Highlight]\n* link:https://github.com/mgdm/htmlq[htmlq]\n* link:https://hisham.hm/htop[htop]\n* link:https://github.com/reorx/httpstat[HTTP Stat]\n* link:https://github.com/sharkdp/hyperfine[Hyperfine]\n* link:https://stedolan.github.io/jq[jq]\n* link:https://lnav.org[lnav]\n* link:https://github.com/CISOfy/lynis[Lynis]\n* link:https://github.com/mas-cli/mas[Mac App Store]\n* link:https://jedisct1.github.io/minisign[Minisign]\n* link:https://github.com/variadico/noti[Noti]\n* link:https://github.com/hatoo/oha[Oha]\n* link:https://ollama.com[Ollama]\n* link:https://www.openssh.com[OpenSSH]\n* link:https://openssl.org[OpenSSL]\n* link:https://osv.dev[Open Source Vulnerability Scanner]\n* link:https://github.com/DarthSim/overmind[Overmind]\n* link:https://pandoc.org[Pandoc]\n* link:https://savannah.gnu.org/projects/parallel[Parallel]\n* link:https://github.com/sharkdp/pastel[Pastel]\n* link:https://www.pgcli.com[pgcli]\n* link:https://www.zlib.net/pigz[Pigz]\n* link:https://github.com/GPGTools/pinentry[Pinentry]\n* link:https://github.com/dalance/procs[Procs]\n* link:https://protobuf.dev[Protobuf]\n* link:https://tiswww.case.edu/php/chet/readline/rltop.html[Readline]\n* link:http://redis.io[Redis]\n* link:https://github.com/BurntSushi/ripgrep[ripgrep]\n* link:https://github.com/koalaman/shellcheck[ShellCheck]\n* link:https://www.joedog.org/siege-home[Siege]\n* link:https://www.tarsnap.com[Tarsnap]\n* link:https://www.terraform.io[Terraform]\n* link:https://github.com/ggreer/the_silver_searcher[The Silver Surfer]\n* link:https://github.com/tmux/tmux/wiki[tmux]\n* link:https://github.com/XAMPPRocky/tokei[Tokie]\n* link:https://vale.sh[Vale]\n* link:https://github.com/sachaos/viddy[Viddy]\n* link:https://www.vim.org[Vim]\n* link:https://github.com/vi/websocat[Websocat]\n* link:https://developers.yubico.com/yubikey-manager[YubiKey Manager CLI]\n* link:https://github.com/ajeetdsouza/zoxide[Zoxide]\n\n=== Homebrew Casks\n\nInstalls the following link:https://brew.sh[casks]:\n\n* link:https://www.alfredapp.com[Alfred]\n* link:https://freemacsoft.net/appcleaner[App Cleaner]\n* link:https://www.rogueamoeba.com/audiohijack[Audio Hijack]\n* link:https://www.balena.io/etcher[Balena Etcher]\n* link:https://brave.com[Brave]\n* link:https://bombich.com[Carbon Copy Cloner]\n* link:https://getcleanshot.com[CleanShot]\n* link:https://discord.com[Discord]\n* link:https://software.charliemonroe.net/downie[Downie]\n* link:https://www.getdoxie.com[Doxie]\n* link:https://www.dropbox.com[Dropbox]\n* link:https://www.mozilla.com/en-US/firefox[Firefox]\n* link:https://www.rogueamoeba.com/fission[Fission]\n* link:https://www.google.com/chrome[Google Chrome]\n* link:https://www.noodlesoft.com[Hazel]\n* link:https://iina.io[IINA]\n* link:http://imageoptim.pornel.net[ImageOptim]\n* link:https://bjango.com/mac/istatmenus[iStat Menus]\n* link:https://www.iterm2.com[iTerm2]\n* link:https://mitmproxy.org[mitmproxy]\n* link:https://mockuuups.studio[Mockuuups Studio]\n* link:https://netnewswire.com[NewNewsWire]\n* link:https://ngrok.com[Ngrok]\n* link:https://numi.app[Numi]\n* link:https://obsidian.md[Obsidian]\n* link:https://www.openoffice.org[OpenOffice]\n* link:https://orbstack.dev[OrbStack]\n* link:https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project[OWASP Zed Attack Proxy (ZAP)]\n* link:https://cocoatech.com[Path Finder]\n* link:https://www.pgadmin.org[pgAdmin]\n* link:https://superhighfives.com/pika[Pika]\n* link:https://getpixelsnap.com[PixelSnap]\n* link:https://protonvpn.com[ProtonVPN]\n* link:https://paw.cloud[Rapid API]\n* link:https://manytricks.com/resolutionator[Resolutionator]\n* link:https://flyingmeat.com/retrobatch[Retrobatch]\n* link:https://skim-app.sourceforge.io[Skim]\n* link:https://signal.org[Signal]\n* link:https://www.sublimetext.com[Sublime Text]\n* link:https://panic.com/transmit[Transmit]\n* link:https://twist.com[Twist]\n* link:https://www.sparklabs.com/viscosity[Viscosity]\n* link:https://code.visualstudio.com[Visual Studio Code]\n* link:https://zed.dev[Zed]\n\n=== App Store\n\nInstalls link:https://www.apple.com/app-store[App Store] applications as managed by the link:https://github.com/mas-cli/mas[Mac App Store] CLI which assumes you've _purchased_ the applications listed below:\n\n* link:https://secure.flyingmeat.com/acorn[Acorn]\n* link:https://bitwarden.com[Bitwarden]\n* link:https://ccmenu.org[CCMenu]\n* link:https://daisydiskapp.com[DaisyDisk]\n* link:https://dropoverapp.com[Dropover]\n* link:https://www.apple.com/mac/garageband[GarageBand]\n* link:https://handmirror.app[Hand Mirror]\n* link:https://www.apple.com/imovie[iMovie]\n* link:https://firecore.com/infuse[Infuse]\n* link:https://manytricks.com/keycodes[Key Codes]\n* link:https://manytricks.com/keymou[Keymou]\n* link:https://www.apple.com/keynote[Keynote]\n* link:https://apps.apple.com/us/app/amazon-kindle/id302584613[Kindle]\n* link:http://limechat.net/mac[LimeChat]\n* link:https://marked2app.com[Marked 2]\n* link:http://getmedis.com[Medis]\n* link:https://trymeeter.com[Meeter]\n* link:https://www.markvapps.com/metadatics[Metadatics]\n* link:https://mindnode.com[MindNode]\n* link:https://manytricks.com/namemangler[Name Mangler]\n* link:https://www.apple.com/numbers[Numbers]\n* link:https://www.omnigroup.com/omnifocus[OmniFocus]\n* link:https://www.apple.com/pages[Pages]\n* link:https://krillapps.com/patterns[Patterns]\n* link:https://software.charliemonroe.net/permute[Permute]\n* link:https://apps.apple.com/app/apple-store/id1494948845[Paletter]\n* link:https://apps.apple.com/gb/app/sequence-diagram/id1195426709[Sequence Diagram]\n* link:https://shapesapp.com[Shapes]\n* link:https://slack.com[Slack]\n* link:https://www.adriangranados.com[WiFi Explorer]\n\n=== Applications\n\nInstalls the following, basic, macOS applications which are not located in the App Store:\n\n* link:https://appmap.io[AppMap]\n* link:https://www.docker.com[Docker]\n* link:https://icemenubar.app[Ice]\n* link:https://moneywell.app[MoneyWell]\n* link:https://manytricks.com/moom[Moom]\n* link:https://github.com/theory/pgenv[pgenv]\n* link:https://www.sonos.com[Sonos]\n* link:https://tana.inc[Tana]\n* link:https://tuple.app[Tuple]\n\n=== Application Extensions\n\nInstalls the following extensions to existing applications:\n\n* link:https://github.com/tpope/vim-bundler[Vim Bundler]\n* link:https://github.com/tpope/vim-commentary[Vim Commentary]\n* link:https://github.com/tpope/vim-fugitive[Vim Fugitive]\n* link:https://github.com/airblade/vim-gitgutter[Vim Git Gutter]\n* link:https://github.com/tpope/vim-pathogen[Vim Pathogen]\n* link:https://github.com/tpope/vim-projectionist[Vim Projectionist]\n* link:https://github.com/tpope/vim-rails[Vim Rails]\n* link:https://github.com/vim-ruby/vim-ruby[Vim Ruby]\n* link:https://github.com/AndrewRadev/splitjoin.vim[Vim Splitjoin]\n* link:https://github.com/kana/vim-textobj-user[Vim Text Object User]\n* link:https://github.com/tpope/vim-unimpaired[Vim Unimpaired]\n\n=== Node Packages\n\nInstalls the following link:https://nodejs.org[Node] link:https://www.npmjs.com[packages]:\n\n_None are used at the moment._\n\n=== Ruby Gems\n\nInstalls the following link:https://www.ruby-lang.org[Ruby] link:https://rubygems.org[gems]:\n\n* link:https://github.com/amazing-print/amazing_print[Amazing Print]\n* link:https://asciidoctor.org[ASCII Doctor]\n* link:https://github.com/evanphx/benchmark-ips[Benchmark IPS]\n* link:https://github.com/jmmastey/bundler-stats[Bundler Stats]\n* link:https://github.com/mattbrictson/bundleup[BundleUp]\n* link:https://alchemists.io/projects/caliber[Caliber]\n* link:https://alchemists.io/projects/gemsmith[Gemsmith]\n* link:https://alchemists.io/projects/git-lint[Git Lint]\n* link:https://hanamirb.org[Hanami]\n* link:https://alchemists.io/projects/hanamismith[Hanamismith]\n* link:https://alchemists.io/projects/irb-kit[IRB Kit]\n* link:https://github.com/jaredbeck/libyear-bundler[Libyear (Bundler)]\n* link:https://alchemists.io/projects/pennyworth[Pennyworth]\n* link:https://github.com/joonty/pessimize[Pessimize]\n* link:https://alchemists.io/projects/pragmater[Pragmater]\n* link:https://rubyonrails.org[Ruby on Rails]\n* link:https://github.com/troessner/reek[Reek]\n* link:https://github.com/AlexB52/retest[Retest]\n* link:https://rspec.info[RSpec]\n* link:https://alchemists.io/projects/rubysmith[Rubysmith]\n* link:https://solargraph.org/guides[Solargraph]\n* link:https://alchemists.io/projects/sublime_text_kit[Sublime Text Kit]\n* link:https://github.com/ruby-syntax-tree/syntax_tree[Syntax Tree]\n* link:https://github.com/red-data-tools/YouPlot[YouPlot]\n\n=== Rust Crates\n\nInstalls the following link:https://www.rust-lang.org[Rust] link:https://crates.io[crates]:\n\n* link:https://atuin.sh[Atuin]\n* link:https://github.com/nabijaczleweli/cargo-update[Cargo Update]\n* link:https://dotenv-linter.github.io[Dotenv Linter]\n* link:https://eza.rocks[Eza]\n* link:https://jless.io[jless]\n* link:https://github.com/chmln/sd[sd]\n\n== Requirements\n\n. Apple Silicon hardware.\n. link:https://alchemists.io/projects/mac_os[macOS]\n. link:https://developer.apple.com/xcode[Xcode]\n\n== Setup\n\nTo install, run:\n\n[source,bash]\n----\ngit clone https://github.com/bkuhlmann/mac_os-config.git\ncd mac_os-config\ngit checkout 29.2.0\n----\n\n== Usage\n\nThe following will walk you through the steps of installing/re-installing your machine.\n\n=== Pre-Install\n\nEnsure you have the following in place for your Silicon machine:\n\n. Ensure a backup of your Apple, NAS, backup image, and Dropbox credentials are available.\n. Ensure a recent backup of your machine exists and works properly.\n. Ensure link:https://support.apple.com/en-us/HT208198[Startup Security Utility] is disabled.\n.. Turn off your machine.\n.. Start your machine by pressing and holding the `POWER` button until you see startup options being\n   loaded.\n.. Select Utilities → Startup Security Utility from the main menu.\n.. Select _Reduced Security_.\n.. Quit the utility and restart the machine.\n\n=== Install\n\n. Create a link:https://alchemists.io/projects/mac_os/#_boot_disk[macOS Boot Disk] and follow\n  instructions.\n. Ensure latest software updates are applied per\n  link:https://alchemists.io/projects/mac_os/#_requirements[macOS Requirements].\n. Ensure Xcode is installed per link:https://alchemists.io/projects/mac_os/#_requirements[macOS\n  Requirements].\n. Run link:https://alchemists.io/projects/mac_os#_usage[macOS Install] and follow all prompts.\n\n=== Post-Install\n\nThe following are additional steps, not easily automated, that are worth completing after the\ninstall scripts have completed:\n\n* System Preferences\n** Apple ID\n*** Login (if not already).\n*** Update avatar.\n*** Configure iCloud.\n*** Enable Find My Mac.\n** Bluetooth\n*** Reconnect keyboard, mouse, and earbuds.\n** Sound\n*** Disable _Play sound on startup_.\n*** Disable _Play user interface sound effects_.\n** Screen Time\n*** Disable entire feature.\n** General\n*** AirDrop \u0026 Handoff\n**** Disable _AirPlay Receiver_ so you can run link:https://github.com/rack/rack[Rack] applications on Port 5000.\n*** AutoFill \u0026 Passwords\n**** Disable _AutoFill Passwords and Passkeys_.\n*** Login Items\n**** Ensure only _Alfred_ is listed.\n*** Language and Region\n**** Set _First day of week_ to _Monday_.\n**** Set _Date format_ to _YYYY-MM-DD_.\n** Accessibility\n*** Hearing\n**** Enable _Turn off background sounds when your Mac is not in use._\n** Appearance\n*** Use _Light_ theme.\n** Apple Intelligence \u0026 Siri\n*** Disable _Listen for_.\n*** Disable _Keyboard shortcut_ (use Alfred instead).\n**  Privacy \u0026 Security\n*** Enable _FileVault_.\n** Wallpaper\n*** Select custom image from _Documents_.\n** Spotlight\n*** Disable _Help Apple Improve Search_. link:https://obdev.at/blog/what-happens-on-your-device-stays-on-your-device-until-it-doesnt[Details].\n** Screen Saver\n*** Use _Message_ with custom text.\n** Battery\n*** Click _Options_ and enable _Prevent automatic sleeping on power adapter when the\ndisplay is off_.\n** Lock Screen\n*** Set _Start Screen Saver when inactive_ for 5 minutes.\n*** Set _Turn display off on battery when inactive_ for 2 minutes.\n*** Set _Turn display off on power adapter when inactive_ for 10 minutes.\n*** Set _Require password after screen saver begins or display is turned off_ for 5 minutes.\n*** Set _Show message when locked_. Example: `\u003curl\u003e | \u003cemail\u003e | \u003cphone\u003e`.\n** Touch ID \u0026 Password\n*** Rename fingerprint.\n*** Enable use of Touch ID for all settings.\n*** Enable use of Apple Watch.\n** Users \u0026 Groups\n*** Update avatar image.\n*** Remove unused login items.\n*** Disable guest account.\n** Internet Accounts\n*** Add all accounts.\n** Wallet \u0026 Apple Pay\n*** Reenable all accounts and assign default card.\n** Keyboard\n*** Set _Key repeat rate_ to max level.\n*** Set _Delay until repeat_ to short (max) level.\n*** Keyboard Shortcuts\n**** Select _Launchpad and Dock_ and uncheck _Turn Dock Hiding On/Off_.\n**** Select _Mission Control_ and assign `CONTROL + OPTION + COMMAND + N` to _Show Notification\n     Center_.\n**** Within _Mission Control_, assign `CONTROL + OPTION + COMMAND + W` to _Mission Control_.\n**** Select _Screenshots_ and uncheck all boxes.\n**** Select _Spotlight_ and uncheck all boxes.\n** Mouse\n*** Ensure tracking speed is on the 5th setting (i.e. 5th from right of _Slow_).\n** Trackpad\n*** Ensure tracking speed is on the 5th setting (i.e. 5th from right of _Slow_).\n** Printers \u0026 Scanners\n*** Add printer/scanner.\n* iStat Menus\n** Double click, within the Applications folder, to install as a system preference.\n* Carbon Copy Cloner\n** Rename old backup, create new backup, and schedule frequency.\n* Notifications\n** Set _Show previews when unlocked_.\n** Disable _Allow notifications when the display is sleeping_.\n** Disable _Allow notifications when the screen is locked_.\n** Disable _Allow notifications when mirroring or sharing the display_.\n** Disable _Show notifications on lock screen_ and _Play sound for notification_ for all applications.\n** Enable _Allow notifications from iPhone_ but disable _Play sounds for notifications from iPhone_ within this option.\n\n=== Keyboard Shortcuts\n\nSeveral applications provide global hotkey support. These are the associations I use (which are also\ncaptured in the `+restore.bom+` as well):\n\n* *COMMAND + SPACE (hold)*: Siri (open)\n* *COMMAND + SPACE*: Spotlight (open)\n* link:https://alchemists.io/articles/clean_shot/#_shortcuts[CleanShot] - See article for\n  details.\n* *CONTROL + OPTION + COMMAND + c*: Pika (copy color)\n* *CONTROL + OPTION + COMMAND + d*: Alfred Define (use OPTION to open Dictionary)\n* *CONTROL + OPTION + COMMAND + h*: Alfred Highlight Syntax\n* *CONTROL + OPTION + COMMAND + k*: Keymou (cursor highlight show/hide)\n* *CONTROL + OPTION + COMMAND + m*: Moom (toggle)\n* *CONTROL + OPTION + SHIFT + m*: Moom (open custom actions)\n* *CONTROL + OPTION + COMMAND + n*: Notification Center (show/hide)\n* *CONTROL + OPTION + COMMAND + o*: Alfred Open URL in default browser\n* link:https://alchemists.io/articles/pixel_snap/#_shortcuts[PixelSnap] - See article for\n  details.\n* *CONTROL + OPTION + COMMAND + r*: Resolutionator (selector)\n* *CONTROL + OPTION + COMMAND + t*: Alfred Large Type\n* *CONTROL + OPTION + COMMAND + w*: Mission Control\n* *CONTROL + OPTION + COMMAND + ←*: Keymou (move cursor left)\n* *CONTROL + OPTION + COMMAND + ↑*: Keymou (move cursor up)\n* *CONTROL + OPTION + COMMAND + →*: Keymou (move cursor right)\n* *CONTROL + OPTION + COMMAND + ↓*: Keymou (move cursor down)\n* *CONTROL + OPTION + COMMAND + ENTER*: Keymou (move cursor by division)\n* *CONTROL + OPTION + SPACE*: OmniFocus (quick entry)\n* *OPTION + SPACE*: Alfred (open)\n\n=== Newsyslog\n\nNative to macOS, link:https://www.freebsd.org/cgi/man.cgi?newsyslog.conf(5)[newsyslog] can be used\nto configure system-wide log rotation across multiple projects. It’s a good recommendation to set\nthis up so that disk space is carefully maintained. Here’s how to configure it for your system,\nstart by creating a configuration for your projects in the `+/etc/newsyslog.d+` directory. In my\ncase, I use the following configurations:\n\n* `+/etc/newsyslog.d/alchemists.conf+`\n+\n....\n  # logfilename                                            [owner:group]    mode   count   size  when  flags\n  /Users/bkuhlmann/Dropbox/Development/Work/**/log/*.log                    644    2       5120  *     GJN\n....\n* `+/etc/newsyslog.d/homebrew.conf+`\n+\n....\n  # logfilename                   [owner:group]    mode   count   size    when  flags\n  /usr/local/var/log/**/*.log                      644    2       5120    *     GJN\n....\n\nThese configurations ensure that logs are rotated every 5MB (5120KB). In order to test that these\nconfigurations are valid, run:\n\n....\nsudo newsyslog -nvv\n....\n\nIf you don’t see any errors in the output, then your configuration settings are correct.\n\nThe last thing to do is to add a launch configuration to ensure the log rotations happen at\nregularly scheduled intervals. To do this create the following file:\n`+$HOME/Library/LaunchAgents/com.apple.newsyslog.plist+`. It should have the following content:\n\n[source,xml]\n----\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\n\u003c!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"https://www.apple.com/DTDs/PropertyList-1.0.dtd\"\u003e\n\u003cplist version=\"1.0\"\u003e\n\u003cdict\u003e\n  \u003ckey\u003eLabel\u003c/key\u003e\n  \u003cstring\u003ecom.apple.newsyslog\u003c/string\u003e\n  \u003ckey\u003eProgramArguments\u003c/key\u003e\n  \u003carray\u003e\n    \u003cstring\u003e/usr/sbin/newsyslog\u003c/string\u003e\n  \u003c/array\u003e\n  \u003ckey\u003eLowPriorityIO\u003c/key\u003e\n  \u003ctrue/\u003e\n  \u003ckey\u003eNice\u003c/key\u003e\n  \u003cinteger\u003e1\u003c/integer\u003e\n  \u003ckey\u003eStartCalendarInterval\u003c/key\u003e\n  \u003cdict\u003e\n    \u003ckey\u003eMinute\u003c/key\u003e\n    \u003cinteger\u003e30\u003c/integer\u003e\n  \u003c/dict\u003e\n\u003c/dict\u003e\n\u003c/plist\u003e\n----\n\nThat’s it. System-wide log rotation is setup for your projects.\n\n=== Customization\n\nWhile this project’s configuration is opinionated and tailored for my setup, you can easily fork\nthis project and customize it for your environment. Start by editing the files found in the `+bin+`\nand `+lib+` directories. Check out the\nlink:https://alchemists.io/projects/mac_os/#_customization[macOS Customization Documentation]\nfor further details.\n\n_TIP_: The installer determines which applications/extensions to install as defined in the\n`+settings.sh+` script. Applications defined with the \"`APP_NAME`\" suffix and extensions defined\nwith the \"`EXTENSION_PATH`\" suffix inform the installer what to care about. Removing/commenting out\nthese applications/extensions within the `+settings.sh+` file will cause the installer to skip these\napplications/extensions.\n\n== Development\n\nTo contribute, run:\n\n[source,bash]\n----\ngit clone https://github.com/bkuhlmann/mac_os-config.git\ncd mac_os-config\n----\n\n== link:https://alchemists.io/policies/license[License]\n\n== link:https://alchemists.io/policies/security[Security]\n\n== link:https://alchemists.io/policies/code_of_conduct[Code of Conduct]\n\n== link:https://alchemists.io/policies/contributions[Contributions]\n\n== link:https://alchemists.io/policies/developer_certificate_of_origin[Developer Certificate of Origin]\n\n== link:https://alchemists.io/projects/mac_os-config/versions[Versions]\n\n== link:https://alchemists.io/community[Community]\n\n== Credits\n\nEngineered by link:https://alchemists.io/team/brooke_kuhlmann[Brooke Kuhlmann].\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbkuhlmann%2Fmac_os-config","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbkuhlmann%2Fmac_os-config","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbkuhlmann%2Fmac_os-config/lists"}