Skip to content

tnthi115/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

832 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dotfiles

These are my personal configuration files.

Tokyonight macos tokyonight

Gruvbox Material gruvbox material

Installation

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. For a detailed explanation of how stow works with dotfiles, see this excellent gist.

# 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 ~/.config/fish/config.fish ~/.config/fish/config.fish.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 fish # Just my fish 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 run stow with the --target flag to specify your home directory:

stow --target=${HOME} fish

Dependencies

The following list is not comprehensive, but it includes what is important. It is broken down by OS:

Shared

Fonts

Install a Nerd Font. My current favorites are CaskaydiaCove Nerd Font and Hack Nerd Font.

Wallpapers

You can clone my wallpapers repo if you want to use the same collections I've created.

Neovim

I used to use Lunarvim as a base config for neovim. Now I use my own config, tvim, based on LazyVim.

Tmux

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

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.

OpenCode

OpenCode is an AI coding assistant with multi-agent orchestration. My configuration uses:

  • oh-my-opencode: Plugin providing specialized agents (Sisyphus, Oracle, Prometheus), parallel execution, and ultrawork mode
  • superpowers: Skills framework enforcing TDD, systematic debugging, and planning discipline

Install superpowers after stowing opencode config:

~/dotfiles/bin/install-superpowers.sh

Ghostty

Ghostty is my terminal emulator of choice. It's a fast, native, GPU-accelerated terminal written by Mitchell Hashimoto (creator of Vagrant, Terraform, and co-founder of HashiCorp). It supports ligatures, has excellent font rendering, and is highly configurable.

Fish

Fish is an alternative shell with smart autocompletion and syntax highlighting out of the box. My config includes custom functions, plugins, and theme integration with Starship.

Modern CLI Tools

These modern replacements for traditional Unix tools are configured in my shell:

  • bat: A cat clone with syntax highlighting and Git integration
  • lsd: Modern ls replacement with icons and colors
  • zoxide: Smarter cd command that learns your habits
  • fd: Fast and user-friendly find alternative
  • ripgrep (rg): Blazingly fast grep replacement
  • fzf: Fuzzy finder for files, history, and more

Sesh

Sesh is a smart tmux session manager that integrates with zoxide for quick project switching.

Firefox

Use the Arkenfox user.js to harden. Librewolf and Brave are okay alternatives.

Extensions

Linux

Awesomewm

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.

MacOS

Raycast

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

Yabai is a tiling window manager for MacOS, with very similar architecture to bspwm + sxhkd on Linux and komorebi + whkd on Windows.

Aerospace

Aerospace is an i3-like tiling window manager for macOS. Unlike Yabai, it does not require disabling System Integrity Protection (SIP), making it easier to set up and maintain.

Keybindings

Note: I don't use this anymore.

stow KeyBindings
  • Remap mission control to alt + up in keyboard shortcut settings
    • Remap space swapping to alt + {1,2,3,4}

About

My personal configuration files.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published