[go: up one dir, main page]

Skip to content

Personal configuration for zsh, vim, tmux and other tools

License

Notifications You must be signed in to change notification settings

carpet-stain/dotfiles

 
 

Repository files navigation

Dotfiles

License

WTFPL

Personal dotfiles

usable both on server and personal workstation -- for graphical stuff check Brewfile. Battle tested on macOS and Arch Linux.

I'm a big fan of XDG Base Directory Specification and organize my dotfiles in a way that they don't clutter the $HOME. I was able to reduce files required to be in $HOME to single .zshenv, everything else goes under standard XDG paths or launched via aliases. Additionally if you have root permissions, you can install dotfiles with zero home presence.

Features

Installation

Requirements:

  • zsh 5.1 or newer (async stuff requires recent enough version of zsh)
  • git

Dotfiles can be installed in any dir, but probably somewhere under $HOME. Personally I use $HOME/.local/dotfiles. The installation is pretty simple:

git clone https://github.com/brianleppez/dotfiles.git "$HOME/.local/dotfiles"
$HOME/.local/dotfiles/deploy.zsh
chsh -s /bin/zsh

Deployment script helps to set up all required symlinks after the initial clone. Also it adds cron job to pull updates every midnight and serves as a post-merge git hook, so you don't have to care about updating submodules after successful pull.

In case of missing python or ruby, they can be installed via pyenv and rbenv after the deployment.

Configuration

Zsh configuration

Keep in mind that Zsh configuration skips every global configuration file except /etc/zsh/zshenv.

The difference is that env.d is sourced always while rc.d is sourced in interactive session only.

Also $ZDOTDIR/.zlogin and $ZDOTDIR/.zlogout are available for modifications, albeit missing by default.

Lazy *env

Pyenv and similar wrappers are lazy-loaded, it means that they won't be initialized on shell start. Activation is done on the first execution. Check out output of type -f pyenv in shell and implementation. Also this means, that files like .python-versear on won't work as expected, it's recommended to use autoenv.zsh to explicitly activate needed environment.

About

Personal configuration for zsh, vim, tmux and other tools

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Shell 54.5%
  • JavaScript 21.2%
  • Lua 18.4%
  • C 5.6%
  • Ruby 0.3%