This repository contains my own macOS configuration. The scripts are not written to work for everybody, due to some absolute paths, but you can take inspiration to see how I work or reuse some of the bash functions and snippets.
This repository includes greatly customized zsh with Antibody featuring auto-completion, syntax highlighting, autopair and a Pure Powerlevel10k theme. Also, a one-liner install leverages Brew and mackup to setup an entire macOS environment.
config
contains the configurations files, e.g. for zsh and git.- Other configurations files are backed up via mackup
Preview of iTerm2 with Pure theme running the history-search-multi-word zsh plugin
scripts
contains my common used shell scripts.- My workflow uses the self-written
fzf-script-launcher
function to quickly call every binary inside the scripts folder (except the scripts inside _templates and setup folders). - Keybinding of the shell widget for the
fzf-script-launcher
function is Ctrl + X - Scripts are all linted using shellcheck.
- Warning: Do not just run any script blindly, check what they do first.
- My workflow uses the self-written
Demo of the
fzf-script-launcher
browsing through the available scripts and using the selected git-log.sh afterwards
Script | Description |
---|---|
brew-cask.sh | Browse all available brew casks with options to install / uninstall / open the webpage |
brew-install.sh | Browse all available brew formulas with the option to install selected brews |
brew-uninstall.sh | Browse all installed brew formulas with the option to uninstall selected brews |
Script | Description |
---|---|
_cronjob.sh | Runs all daily scripts, configured with crontab to run automatically at 23:30 |
backup.sh | Backing up current configurations with mackup |
cleanup.sh | Cleaning up tmp files |
rebuild-github-pages.sh | Trigger new builds for repositories deployed on Github Pages |
update.sh | Updating software packages (brews, casks, antibody plugins, App Store apps, Ruby gems) |
Script | Description |
---|---|
git-add.sh | Add files interactively to git version control |
git-checkout-branch.sh | Checkout branch from a list of local and remote branches |
git-cleanup-branches.sh | Remove local branches, which do not exist on remote anymore |
git-diff.sh | Show changes of current modified files to their version at HEAD |
git-ignore.sh | Create .gitignore template file pulled from gitignore.io |
git-log.sh | Browse through git commit log |
git-unstage.sh | Unstage files interactively from the next commit |
Script | Description |
---|---|
_cronjob-get-pdfs.sh | Runs every 30 min to check synced Dropbox folders for new files and move them |
rename-broker-statements.sh | Rename broker statements and move/sort them to the right portfolio folder |
Script | Description |
---|---|
chmod-x-scripts.sh | Change sh scripts with 644 permissions to 755 permissions |
extract-archives.sh | Extract all archives found in the working directory and remove them afterwards |
remove-media.sh | Remove media files when the duration of the file is shorter than _DURATION in seconds |
setup-flutter.sh | Setup complete Flutter development environment |
shellcheck-scripts.sh | Analyse all shell scripts at dotfiles/scripts with ShellCheck |
1: Fork the repository (using the Fork
button at the top)
2: Clone the repository
# Replace {YOUR_USERNAME} with your actual username
git clone https://github.com/{YOUR_USERNAME}/dotfiles.git
Inside the scripts/setup
folder I have some scripts to quickly setup my entire dev environment with all necessary software and configurations from a fresh macOS installation. There are four basic setup scripts:
init.sh
- installs macOS software updates, Xcode, Homebrew, Dropboxbrew.sh
- installs zsh and brew, brew cask, npm and ruby packagesmacos.sh
- setting configurations for macOS applications like Preferences, Dock, Finder, Mail, SystemUIServer, etc.config.sh
- setting configurations for remaining applications
One-liner to setup everything. This will run all four scripts.
./setup.sh all
To exclude the execution of one script, exclude it from the arguments.
# e.g. to just install software - run only init and brew
./setup.sh init brew
- Deactivate automatic screen brightness for the retina display
- Never deactivate monitor if plugged in
- Requiring password immediately after sleep begins (defaults write does not work since macOS 10.13.4)
- Finder: remove (recently used, iCloud, tags, cds, bonjour-computer) from the sidebar
- Add work signature to mail
Distributed under the MIT License. See LICENSE
for more information.