Dotfiles are meant to be shared
Clone or download
Latest commit 3d85079 Jan 17, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Move templates to .github folder Jan 14, 2019
alacritty Refactor various dotfiles Jan 14, 2019
fonts Build fonts on Macos 10.14.2 Jan 14, 2019
git Update gitconfig Jan 14, 2019
iTerm2 Disable zippy text drawing Jan 14, 2019
macos Update comment Jan 14, 2019
nvim Update neovim and tmux Jan 15, 2019
ruby Update gemrc Jan 14, 2019
screenshots Update neovim and tmux Jan 15, 2019
scripts Create scripts folder Jan 14, 2019
ssh Add ssh config Jan 14, 2019
tig Update tigrc Jan 14, 2019
tmux Update neovim and tmux Jan 15, 2019
zsh Update zshrc Jan 14, 2019
.gitignore Add .gitignore Jun 15, 2018
Brewfile Add back imagemagick Jan 17, 2019
LICENSE Create LICENSE Jun 30, 2018
Makefile Add ssh config Jan 14, 2019
README.md Update neovim and tmux Jan 15, 2019

README.md

Dotfiles are meant to be shared

for hackers awesome compatible smile PRs welcome

Table of Contents

Prerequisites

Make sure the following requirements are installed:

Expand

Homebrew

Install Homebrew if you haven't.

Git

You can either install git via Xcode Command Line Tools or by running git --version from your terminal.

Zsh & Oh-My-Zsh

The Z shell, is an extended version of the Bourne Shell (sh), with plenty of new features, and support for plugins and themes. Oh My Zsh is a delightful community-driven framework for managing your zsh configuration.

This project use purer as the prompt theme for zsh: npm install --global purer-prompt

RVM

RVM is a command-line tool which allows you to easily install, manage, and work with multiple ruby environments from interpreters to sets of gems. Install RVM: https://rvm.io.

NVM

Node Version Manager - Simple bash script to manage multiple active node.js versions. To install nvm: https://github.com/creationix/nvm.

Neovim

Neovim (nvim) is a forked version of Vim and arguable to be a lot faster. Follow this guide to build nvim from source and this guide to install vim-plug as the main nvim plugin manager.

Tmux

Tmux is the terminal multiplexer I can't live without.

Installation

Clone this project at $HOME:

$ git clone git@github.com:huyvohcmc/dotfiles.git
$ cd dotfiles

Use Homebrew to install some necessary packages defined in Brewfile:

$ brew bundle

Create a backup of your existing dotfiles, remove them in $HOME and install the new ones using stow:

$ make stow

To remove dotfiles:

$ make unstow

Postinstall

Open nvim and install all plugins: :PlugInstall. You should also run :checkhealth to check your nvim condition.

Install Tmux plugin manager and press prefix + I inside a tmux session to fetch the plugins listed in .tmux.conf.

Screenshots

Expand

preview

iTerm2 tender colorscheme, nnn and tig

nvim

Nvim with Iosevka font 14pt

What's inside init.vim?

Visit the wiki for more details.

Highlights

The Brewfile contains some interesting CLI tools for better development like

  • bat, an alternative of cat
  • htop, an interactive process viewer for Unix systems
  • nnn, a very fast terminal file manager
  • ripgrep, a line-oriented search tool
  • stow, a symlink farm manager
  • the_silver_searcher, a code searching tool (used in vim)
  • fzf, command-line fuzzy finder
  • tig, text-mode interface for git
  • universal-ctags, a programming tool to generate tag files

Git config

To prevent people from accidentally committing under your name:

# .gitconfig
[user]
  # set in ~/.gitconfig_local
[include]
  path = ~/.gitconfig_local

Where ~/.gitconfig_local is simply:

[user]
  name = <your_name>
  email = <your_email>

I also use a .gitmessage template for co-authored commits on GitHub:

# ~/.gitmessage
Co-authored-by: Linus Torvalds <torvalds@transmeta.com>

Iosevka

Iosevka is one of the best font for programmers, it looks so good to the eye and supports ligatures. It also has many prebuilt variants, and if you build yourself you can customize the look of many different characters. Here is how I built an Iosevka version for my own:

  1. Clone the repository
  2. Ensure nodejs >= 8.4, ttfautohint and otfcc are installed
  3. Install necessary libs by npm install
  4. npm run build -- contents:iosevka --design:ligset-haskell
  5. npm run build -- contents:iosevka-term (for term version)

Visit Iosevka's main repo for more build instructions.

Special thanks

License

This repository is available under the MIT license. Feel free to fork and modify the dotfiles as you please.