Skip to content

soerenmartius/awesome-dotfiles

Repository files navigation

🐣 awesome dotfiles

Screenshot of my shell prompt

A port of https://github.com/mathiasbynens/dotfiles to work with zsh.

I use iTerm, oh-my-zsh, zgen, and Starship.

What's included

File Purporse
.aliases A collection of useful aliases.
.curlrc Some basic settings for curl such like hiding curl as an user agent.
.editorconfig Consistent coding styles between different editors and IDE.
.exports Consistent coding styles between different editors and IDE.
.extra Everything extra you want to set. I use it for personal settings which i don't want to check in.
.functions Functions to be used by aliases.
.gdbinit Settings for the DGB Debugger.
.gitconfig Git configuration settings.
.inputrc Readline configuration.
.macos MacOS configuration and useful settings.
.screenrc Screen configuration.
.starship.toml Settings for Starship Prompt.
.tmux.conf Tmux configuration.
.wgetrc Wget configuration.
.zshrc ZSH configuration. This loads the zgen plugin manager and oh-my-zsh with it's plugins
install-dnssec.sh Install script for setting up DNSSEC with dnscrypt and dnsmask
bootstrap.sh Install script. Copies all dotfiles to your $HOME directory

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/soerenmartius/awesome-dotfiles.git && cd awesome-dotfiles && source bootstrap.sh

To update, cd into your local awesome-dotfiles repository and then:

source bootstrap.sh

Note: Running source bootstrap.sh won't copy .macos and .brew.sh.

Alternatively, to update while avoiding the confirmation prompt:

set -- -f; source bootstrap.sh

To perform a dry-run and list files which will be overwritten in your home directory:

set -- -n; source bootstrap.sh

Note: Once boostrap.sh copied all relevant files you should reload your configuration source ~/.zshrc.

Git-free install

To install these dotfiles without Git:

cd; curl -#L https://github.com/soerenmartius/awesome-dotfiles/tarball/master | tar -xzv --strip-components 1 --exclude={README.md,bootstrap.sh,.osx,LICENSE}

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 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="Soren Martius"
GIT_COMMITTER_NAME="$GIT_AUTHOR_NAME"
git config --global user.name "$GIT_AUTHOR_NAME"
GIT_AUTHOR_EMAIL="soeren.martius@gmail.com"
GIT_COMMITTER_EMAIL="$GIT_AUTHOR_EMAIL"
git config --global user.email "$GIT_AUTHOR_EMAIL"
git config --global core.fileMode false
git config --global user.signingkey YOURGPGKEYID

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.

Zgen

oh-my-zsh and all related plugins are loaded using zgen. The configuration is located in ~/.zshr and will automatically reload if you add changes to that file. If you are willing to add more plugins for oh-my-zsh you do that using zgen load.

Customize Starship Prompt

You can overwrite settings for the Starship Prompt in ~/.starship.toml. For details please read the documentation.

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.

Install DNSSEC

This reposiory comes with a handy install script that helps you setting up DNSSEC with dnscrypt and dnsmasq.

source install-dnssec.sh

Feedback

Suggestions/improvements are welcome!

Author

Soren Martius

Thanks to…

# sudo: auth account password session
auth       optional       /opt/homebrew/lib/pam/pam_reattach.so
auth       sufficient     pam_tid.so

About

iTerm, oh-my-zsh, zgen and Starship setup, 🔧 my .files, including ~/.macos — sensible hacker defaults for macOS.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published