Dotfiles repository managed by yadm (Yet Another Dotfiles Manager).
Install yadm using distribution specific package manager.
Install from the Arch User Repository (AUR) with an AUR helper, for example yay.
$ yay -S yadm-git
Install from the standard package repositories.
# apt install yadm
Standard package repositories are often behind the official GitHub releases. A manual installation using git clone
is therefore preferred.
$ git clone https://github.com/TheLocehiliosan/yadm.git $HOME/.local/share/yadm
$ mkdir -p $HOME/.local/bin; ln -s $HOME/.local/share/yadm/yadm $HOME/.local/bin/yadm
Clone the dotfiles repository using yadm
.
$ yadm clone https://github.com/pwyde/dotfiles.git
The clone
and pull
command may result in warnings because of pre-existing dotfiles. Overwrite the existing files with the commands below.
$ yadm fetch --all
$ yadm reset --hard origin/master
Dotfiles are organized to comply with XDG base directory specification as much as possible.
For more information, see this page on the Arch Wiki.
yadm has a built-in bootstrap feature which enables further configuration of dotfiles.
The included bootstrap script will perform the following tasks:
- Install applications.
- Bootstrap Zsh.
- Prepare Zsh configuration files and directory.
- Make Zsh the default shell.
- Add system-wide configuration of
$ZDOTDIR
in/etc/zsh/zshenv
.
- Bootstrap Vim.
- Prepare Vim configuration files and directory.
- Automatically install Vim plugins.
- Install fonts (optional).
- Cleanup home directory (optional).
Fonts that include glyphs (icons) must be installed on the system to take full advantage of the themed Zsh prompt. Bootstrap script will therefor offer installation of the excellent Nerd Fonts.
Choose between the following font installation options:
- None. Do not install any fonts.
- Basic. Install only the Source Code Pro font family.
- Complete. Install the complete collection of Nerd Fonts.
Fonts will be installed in the ~/.local/share/fonts
directory.
Bootstrap script will scan the root of the home directory (~/
) for known dotfiles. If any are found, the script will prompt them for removal. See XDG base directory compliance for more information.
- bat: A
cat
clone with syntax highlighting and Git integration. - bottom: A customizable cross-platform graphical process/system monitor for the terminal.
- exa: A modern replacement for
ls
. - eza: A modern, maintained replacement for
ls
andexa
. - fd: A simple, fast and user-friendly alternative to
find
. - The Fuck: Corrects previous console command.
- fzf: Command-line fuzzy finder.
- Git: Version control system (VCS).
- procs: A modern replacement for
ps
written in Rust. - ranger: Terminal file manager.
- ripgrep: Replacement for the classic
grep
command written in Rust. - Vim: Terminal text editor.
- Zsh: Preferred shell.
I enjoy working with the command-line and I do it with Zsh.
Zinit is a flexible and fast Zsh plugin manager.
$ zinit update
- Zinit: Manages Zsh plugins.
- Powerlevel10k: Customize and theme the Zsh prompt.
- zsh-completions: Additional completion definitions.
- zsh-history-substring-search: Fish-like history search feature.
- zsh-autosuggestions: Fish-like fast and unobtrusive autosuggestions.
- fast-syntax-highlighting: Fish-like syntax highlighting (fast implementation).
- alias-tips: Help remembering shell aliases.
- fzf-tab: Replace Zsh default completion selection menu with fzf.
- up: Directory navigation using
up
instead ofcd
.
- colored-man-pages: Adds colors to man pages.
- dirhistory: Adds keyboard shortcuts for navigating directory history and hierarchy.
- docker-compose: Adds aliases for frequent docker-compose commands.
- git: Adds many aliases for Git commands.
- thefuck: Press
Esc
twice to correct previous command using The Fuck.
Powerlevel10k is a theme for Zsh. It emphasizes speed, flexibility and out-of-the-box experience.
Lists configured key bindings in Zsh. See keybindings.zsh
, for more information.
Vim is my preferred terminal text editor.
vim-plug is a minimalistic plugin manager for Vim.
:PlugUpgrade
:PlugUpdate
:PlugClean
- vim-plug: Manages Vim plugins.
- base16-vim: Collection of color schemes.
- VimDevIcons: Adds icons to Vim plugins.
- NERDTree: File system explorer.
- vim-nerdtree-syntax-highlight: Add color & icons to NERDTree.
- nerdtree-git-plugin: NERDTree showing git status flags.
- vim-airline: Lean & mean status/tabline.
- Startify: Vim start screen.
- Fugitive: Adds Git support.
- vim-gitgutter: Shows a
git diff
in the "gutter" (sign column). - vim-numbertoggle: Enable "hybrid" line numbers.
- CtrlP: Full path fuzzy file, buffer, mru, tag, ... finder.
- Dotfiles Banner: Inspired by zSucrilhos's dotfiles README.md file.
- Zsh Completion Configuration: Performance tweaking of compinit is based on information from Carlos Alexandro Becker's blog post and ctechols's GitHub Gist.
- Zsh Keybinding Configuration: Copied and modified from Roman Perepelitsa's dotfiles.
Dotfiles made public under the MIT license.