Handuo 's dotfiles
These are the base dotfiles that I start with when I set up a new
environment. For more specific local needs I use the *.local
files
described in the Local Settings
section.
To set up the dotfiles
run the appropriate snippet in the terminal:
(setup
snippet if you do not fully understand
what it does. Seriously, DON'T!)
OS | Snippet |
---|---|
macOS |
bash -c "$(curl -LsS https://raw.github.com/zhanghanduo/dotfiles/devel/src/os/setup.sh)" |
Ubuntu |
bash -c "$(wget -qO - https://raw.github.com/zhanghanduo/dotfiles/devel/src/os/setup.sh)" |
That's it! ✨
The setup process will:
- Download the dotfiles on your computer (by default it will
suggest
~/projects/dotfiles
) - Create some additional [directories][directories]
- Symlink the
git
,shell
, and - Install applications / command-line tools for
macOS
/Ubuntu
- Set custom
macOS
/Ubuntu
preferences
Setup process in action:
![]() |
![]() |
macOS | Ubuntu |
The dotfiles
can be easily extended to suit additional local
requirements by using the following files:
The ~/.zsh.local
file will be automatically sourced after all
the other zsh
related files, thus, allowing its content
to add to or overwrite the existing aliases, settings, PATH
, etc.
Here is a very simple example of a ~/.zsh.local
file:
#!/bin/zsh
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Set local aliases.
alias g="git"
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Set PATH additions.
PATH="$PATH:$HOME/projects/dotfiles/src/bin"
export PATH
The ~/.gitconfig.local
file will be automatically included after
the configurations from ~/.gitconfig
, thus, allowing its content
to overwrite or add to the existing Git
configurations.
Note: Use ~/.gitconfig.local
to store sensitive information
such as the Git
user credentials, e.g.:
[commit]
# Sign commits using GPG.
# https://help.github.com/articles/signing-commits-using-gpg/
gpgsign = true
[user]
name = Cătălin Mariș
email = account@example.com
signingkey = XXXXXXXX
To update the dotfiles you can either run the setup
script
or, if you want to update one particular part, run the appropriate
os
script.
Output for Git status
:
![]() |
![]() |
---|---|
macOS |
Ubuntu |
Output for Git log
:
![]() |
![]() |
---|---|
macOS |
Ubuntu |
![]() |
![]() |
---|---|
macOS |
Ubuntu |
The code is available under the MIT license.