Denys Dovhan’s dotfiles
There are tons of useful things in here:
- The usefulness of “Oh My ZSH!” is already built–in.
🚀 ⭐️Spaceships as a prompt. 🐟Fish-like autosuggestions.
- Syntax highlighting of commands while they are typed.
- Automatically closing and deleting of quotes and brackets when you type them.
- Browser-like substring search for history.
- sheldon for dependency management.
- Useful aliases.
- Git config, global
.gitignorefile and aliases.
- Dotfiles synchronization (
sync.py) with backup.
- Restoring old dotfiles (
restore.py) from backup.
- A lot of useful bins.
updatescript for updating dotfiles, npm, brew, gems, etc.
Dotfiles are installed by running one of the following commands in your terminal, just copy one of the following commands and execute in the terminal:
bash -c "$(curl -fsSL https://raw.githubusercontent.com/denysdovhan/dotfiles/master/installer.sh)"
bash -c "$(wget https://raw.githubusercontent.com/denysdovhan/dotfiles/master/installer.sh -O -)"
Tell Git who you are using these commands:
git config -f ~/.gitlocal user.email "email@example.com" git config -f ~/.gitlocal user.name "Name Lastname"
Use single command to get latest updates:
This command will update dotfiles, their dependencies,
apt-get packages, global
Under the hood
Note: You may put your custom settings into
I suggest you to organize project folder as follows:
~/Projects ├── Forks # for GitHub fork ├── Job # for job projects ├── Playground # for short-term experiments └── Repos # for long-term projects
Aliases are gonna make your work fast and enjoyable. See code in
$DOTFILES/lib/aliases.zsh. Here is what's included:
- Aliases from Oh-My-Zsh. See Oh-My-Zsh Cheatsheet for more.
- Easier navigation
- Folders shortcuts
- Commands Shortcuts
open <FILE>— open file from terminal.
o <FILE>— open file from terminal.
oo— open current folder.
update— get updates (Runs
dotfiles— jump quickly into dotfiles folder.
myip— my local IP address.
password— generate random password, copies it into clipboard and outputs it to terminal.
path— print $PATH in readable view.
getpage— download web page with all assets.
get— download file with original filename.
These OMZ plugins are included:
git— git aliases and functions.
npm— provides completion as well as adding many useful aliases.
yarn— the same as for
npm, but for
[Esc] [Esc]to re-run previous command with sudo.
ssh-agent— automatically starts ssh-agent to set up and load whichever credentials you want for ssh connections.
gpg-agentif it is not running.
- More are listed in
.zshrc(it's hard to keep the list updated).
Dotfiles also include some functions that will make your life easier. See code in
emptytrash— empty the Trash on all mounted volumes and the main HDD.
git-cleanup— removes old Git branches and does other cleanup.
git-fork— add remote upsteam.
git-upstream— sync branch with upstream.
gz— get gzipped file size
n— runs given command using binary in
node_modules/.binof the current project.
nyan— print nyan cat.
osx-shadow— add macOS-like shadow to an image.
server— start an HTTP server from a directory.
Note: Add your git user data and custom settings to
- UI color is
- Diff colors are:
white boldfor meta information;
cyan boldfor frag;
red boldfor old lines;
green boldfor new lines.
- Default editor is Vim instead of Vi.
- Automatic replacement
- Automatic replacement
- User custom settings gets from a
git add— patch mode for specified files.
git reset HEAD— unstage files.
git branch— list, create, or delete branches.
git commit— record changes to the repository.
git checkout— checkout a branch or paths to the working tree.
git add -p— add file contents to the index.
git commit -a— commit with automatically stage files that have been modified and deleted.
git commit -m— commit with commit message.
git commit -am— add all files and commit with message.
git status -sb— short status with current branch.
git master— go to
masterbranch and pull from remote.
git develop— go to
developbranch and pull from remote.
git git— do not complain about
git l— commits log with pretty single line format.
git ll— log with list of changed files for each commit.
git ignore— ignore files: append file to
git this— initialize, add all files and commit.
git amend— amend last commit.
git redo— amend last commit with its original message.
reset --mixed HEAD^— reset index changes, but not the working tree.
checkout --— discard changes.
git contrib— list of contributors and how many commits each person has.
git today— see how many lines of code you have written today.
git stat— how many lines of code in repo.
git sync— pull and push changes from/to remote.
git-changelog [-l,--list,-t,--tag] <FILE>— generate changelog based on commit history.
git-cleanup [--force]— removes old Git branches.
git-fork <original-author>— add remote upstream.
git-upstream [branch]— sync branch with upstream (as default
If you wanna stand on
bash version of dotfiles, please execute following commands inside the
git checkout bash ./sync.py
I do not support
bash version anymore, so if you need fixes or new features, please send me a pull request into
bash branch. Thank you!
Resources that I used to make these dotfiles better:
MIT © Denys Dovhan