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.
- If using Arch Linux, install package dependencies using
pacman
and AUR helper. Supportsparu
andyay
. - If using Debian/Ubuntu, install package dependencies using Homebrew.
- If using Arch Linux, install package dependencies using
- 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 Fira Code and Source Code Pro fonts.
- 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. - bat-extras: Bash scripts that integrate
bat
with various command line tools. - bottom: A customizable cross-platform graphical process/system monitor for the terminal.
- duf: Disk usage utility, a better
df
alternative. - dust: A more intuitive version of
du
written in Rust. - eza: A modern, maintained replacement for
ls
andexa
. - fd: A simple, fast and user-friendly alternative to
find
. - fzf: Command-line fuzzy finder.
- Git: Version control system (VCS).
- procs: A modern replacement for
ps
written in Rust. - ripgrep: Replacement for the classic
grep
command written in Rust. - Vim: Terminal text editor.
- vivid: A themeable
LS_COLORS
generator with a rich filetype datebase. - zoxide: A smarter
cd
command. - Zsh: Preferred shell.
I enjoy working with the command-line and I do it with Zsh.
Antidote is a fast Zsh plugin manager that performes actions concurrently.
Update plugin manager including plugin bundles.
$ antidote update
See zsh_plugins.txt
for a current list of plugins that will be installed.
- 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).
- fzf-tab: Replace Zsh default completion selection menu with fzf.
Two types of prompts will be automatically installed:
- Starship: A minimal, blazing-fast, and infinitely customizable prompt.
- Oh My Posh: Customisable and low-latency cross platform/shell prompt.
Prompt and theme is configured using zstyle
.
Starship:
zstyle ':zrc:prompt' theme "starship cockpit"
Oh My Posh:
zstyle ':zrc:prompt' theme "oh-my-posh pure"
Themes are located in a dedicated themes
directory. Available themes can be listed with the following custom functions.
$ list-themes-starship
Available Starship themes in '/home/user/.config/zsh/themes':
- cockpit
$ list-themes-omp
Available Oh My Posh themes in '/home/user/.config/zsh/themes':
- 1_shell
- catppuccin_mocha
- emodipt-extend
- pure
- star
- tokyonight_storm
- uew
Vim is my preferred terminal text editor.
vim-plug is a minimalistic plugin manager for Vim.
:PlugUpgrade
:PlugUpdate
:PlugClean
- vim-plug: Manages Vim plugins.
- NERDTree: File system explorer.
- vim-nerdtree-syntax-highlight: Add color & icons to NERDTree.
- nerdtree-git-plugin: NERDTree showing git status flags.
- VimDevIcons: Adds icons to Vim plugins.
- 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.
- DeleteTrailingWhitespace: Delete unwanted whitespace at the end of lines.
- Catppuccin theme: Soothing pastel theme for Vim.
- Dotfiles Banner: Inspired by zSucrilhos's dotfiles README.md file.
- Zsh Configuration: Inspired and borrowed code from mattmc3's GitHub repositories such as Zephyr and .zshrc1.
Dotfiles made public under the MIT license.