These are my personal configuration files.
Warning: I am not responsible for any changes to your system. Make sure you understand what you are doing before installing any dependencies and using my dotfiles.
Make sure to install the dependencies listed below.
# On Arch (pkglist.txt is a WIP and not complete)
sudo pacman -S --needed - < pkglist.txt
# On MacOS
brew bundle --file=~/dotfiles/Brewfile
Warning: The package names may vary or some may not exist depending on your package manager. If so, just look up how to install the packages on your system.
You will need Git and GNU Stow to clone and symlink the dotfiles.
# On Arch
sudo pacman -S git stow
# On Ubuntu
sudo apt update
sudo apt-get install git stow
# On MacOS/OS X
brew install git stow
Clone into your $HOME
or ~
directory:
git clone https://github.com/tnthi115/dotfiles.git
Important: Remove or backup your old config files before running
stow
. For example:
mv ~/.zshrc ~/.zshrc.bak
Within ~/dotfiles/
, run stow
to symlink everything (not recommended) or
just select what you want:
stow */ # Everything (the '/' grabs all directories and ignores files (e.g. README.md))
stow zsh # Just my zsh config
Note:
stow
doesn't assume$HOME
(~
) as the target directory, and instead defaults to the parent of the current directory, which is why the above commands work properly. If for some reason you want to clone to another directory rather than your home directory (e.g. ~/repos/, ~/Git/, etc.), you should runstow
with the--target
flag to specify your home directory:
stow --target=${HOME} zsh
The following list is not comprehensive, but it includes what is important. It is broken down by OS:
Install a Nerd Font. My current favorites are CaskaydiaCove Nerd Font and Hack Nerd Font.
You can clone my wallpapers repo if you want to use the same collections I've created.
I used to use Lunarvim as a base config for neovim. Now I prefer LazyVim.
I use tmux for "sessionizing" different projects so that I can quickly context switch without overhead and easily pick up where I left off.
Lazygit is super convenient and can
be launched within neovim, but learn how to use git
on the command line
first! Lazygit
should be used a time saving tool, not a crutch.
Delta makes diffs prettier.
Kitty supports ligatures, so I like it over alacritty for now. Fzf is a must have as well.
Wezterm is another GPU accelerated terminal written in Rust (btw) that also supports ligatures and is configured in Lua (like Neovim, which is fun). Currently, I'm actually liking this better than Kitty because the newest versions of Kitty are giving me issues with fonts rendering in all bold for whatever reason.
I like to use zsh over bash because of two plugins:
I use starship for my prompt. For some bling, I run
neofetch and DT's
colorscripts in my .zshrc
.
Use the Arkenfox user.js to harden. Librewolf and Brave are okay alternatives.
- Tokyo Night by Milav
- Gruvbox Material Dark by akay
- simple tab groups
- ublock origin in medium mode
- vimium
- firefox multi-account containers
- dark reader
I use awesomewm for my tiling window manager. It has a built in application launcher, but you can use rofi universally. Compton is preinstalled on Ubuntu. Use picom on Arch.
I will probably switch to bspwm or qtile in the future.
Raycast is an blazingly fast, batteries-included run launcher for MacOS only (unfortunately). I really enjoy its extensibility and the workflow it allows me to have, especially combined with Yabai.
Yabai is a tiling window manager for MacOS, with very similar architecture to bspwm + sxhkd on Linux and komorebi + whkd on Windows.
Note: I don't use this anymore.
- Change MacOS Keybindings to bind ctrl + left and ctrl + right to move one word at a time:
stow KeyBindings
- Remap mission control to alt + up in keyboard shortcut settings
- Remap space swapping to alt + {1,2,3,4}
- add links
- flesh out dependencies more
- add brew packages file
- maybe organize directories into shared, macos, linux
- add section on
yazi
and other tools I haven't added