Kipras' fork of Luke Smith's dotfiles.
These are the dotfiles deployed by LARBS, as seen on Luke's YouTube channel.
- Very useful scripts are in
~/.local/bin/
- Settings for:
- vim, nvim, vscode
- git w/ many comfy aliases & extra utils
- zsh, incl. fish-like autocompletions
- tmux (terminal multiplexer)
- i3wm/i3-gaps (window manager)
- i3blocks (status bar)
- sxhkd (general key binder)
- ranger / lf / vifm (file managers)
- mpd/ncmpcpp (music)
- sxiv (image/gif viewer)
- mpv (video player)
- calc (python calculator w/ prefilled utils)
- other stuff like xdg default programs, inputrc and more, etc.
- Additionally for Mac:
- yabai, with a very similar feel to i3
- iTerm2, integrated w/ tmux!
- Alfred, incl. emoji picker keybind
- We try to minimize what's directly in
$HOME
so:- Most configs that can be in
~/.config/
are. - Some environmental variables have been set in
~/.profile
to move configs into~/.config/
- Most configs that can be in
- Bookmarks in text files used by various scripts (like
~/.local/bin/shortcuts
)- File bookmarks in
~/.config/files
- Directory bookmarks in
~/.config/directories
- File bookmarks in
-
VSCode config (settings, keybinds, extensions, themes etc.): https://gist.github.com/kiprasmel/de9160a0602463fb752f2d84d7aa4fd8
-
mutt-wizard (
mw
) - a terminal-based email system that can store your mail offline without effort -
dwm (Luke's, Kipras is staying with i3) - window manager
-
dwmblocks (Luke's) - statusbar
On an Arch Linux (or similar) system, use LARBS (Kipras' fork) to autoinstall everything:
curl -LO https://raw.githubusercontent.com/kiprasmel/LARBS/master/larbs.sh
# inspect the script, and then
./larbs.sh -r https://github.com/kiprasmel/voidrice
Some is automated, some is not (yet). See my recent notes for the steps to take to fully setup:
https://notes.kipras.org/macos.html#xe5IP3iU-
alternatively, clone the repository directly to your home directory and install the prerequisite programs (or equivalent, e.g. on macos at least GNU coreutils
are needed).
As simple as can be.
Fork the repository and clone it as a bare repo:
# fork in github
# then, clone into a bare repo:
git clone --bare https://github.com/<your-username>/voidrice ~/.dotfiles
# create an alias to manage the dotfiles
cat >> ~/.zshrc <<'EOF'
alias config='/usr/bin/git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME'
EOF
# ignore all files by default (to start tracking a new file, use git add -f)
printf "*" > ~/.gitignore
and now your $HOME
directory acts as a git repository, just that instead of using the git
command, you use the config
one --
this prevents you from accidently committing files in other repositories, and in general has multiple benefits.
originally inspired by "bare repository and alias method" in https://wiki.archlinux.org/title/Dotfiles#Tracking_dotfiles_directly_with_Git
# see above for the "config" alias
config remote add upstream https://github.com/kiprasmel/voidrice
and occationally perform
config fetch --all
config merge upstream/master
though, when merging, i recommend reviewing each change, because even if it auto-merged, the results are not always what you want.
e.g. i myself merge from Luke, and there are sometimes deleted files, or renamed directories, or just scripts/configs changed in a way that i don't necessarily like, and so i pick what i want & how i want.
e.g. Luke has moved on from i3 to dwm, meanwhile i myself am staying with i3.
because of the bare repository, you couldn't simply use vscode to open the $HOME directory & start resolving changes. (i asked, but it's not available as of yet).
but, turns out there's a work-around: microsoft/vscode#77215 (comment)
GIT_WORK_TREE="$HOME" GIT_DIR="$HOME/.dotfiles" code "$HOME"