Skip to content

yhabib/dotfiles

Repository files navigation

dotfiles

My terminal config. Same setup on my Mac and my Ubuntu VPS.

Managed with stow — each folder is a package that gets symlinked into ~. Edit files here, they're already linked.

Setup on Mac

git clone https://github.com/YOUR_USER/dotfiles.git ~/dotfiles
cd ~/dotfiles
./install.sh

Then create ~/.config/git/config-personal:

[user]
    name = Your Name
    email = your@email.com

Open a new terminal. Done.

Setup on Ubuntu VPS

git clone https://github.com/YOUR_USER/dotfiles.git ~/dotfiles
cd ~/dotfiles
./install.sh

Then switch default shell to zsh (Ubuntu defaults to bash):

chsh -s $(which zsh)

Log out and back in for it to take effect.

Create ~/.config/git/config-personal with your name/email (same as above).

Optionally create ~/.zshrc.local for machine-specific aliases/env vars.

After first setup (both platforms)

First nvim launch will be slow — lazy.nvim is installing plugins. Run :checkhealth after to make sure LSP and treesitter are good.

What's in each folder

nvim/       Neovim config (single init.lua from kickstart.nvim)
zsh/        Shell: aliases, fzf/fd integration, zoxide, zsh plugins (auto-install on first shell)
tmux/       Prefix is C-a, vim-style pane nav, splits keep current path
git/        nvim as editor, bat as pager, aliases (gst, gd, gl)
starship/   Minimal prompt: directory + git branch + status
yazi/       File manager config (show hidden, natural sort)

Stow

cd ~/dotfiles
stow -t ~ zsh git tmux nvim starship yazy           
stow -D nvim        # unlink (removes symlinks, not files)
stow -R zsh         # re-link after changing folder structure

Only stow what you need. On the VPS I skip yazi sometimes.

Tools

Tool What I use it for
ripgrep Fast grep. Also what Telescope uses inside nvim.
fzf Ctrl+T find files, Ctrl+R search history.
fd Fast find. Powers fzf's file search.
bat cat with highlighting. Also git's pager.
yazi File manager. y opens it and cd's you on quit.
zoxide Smart cd. z proj jumps to ~/Dev/personal/project. Learns as you go.
tmux Sessions survive SSH disconnects.
starship Prompt. Fast, cross-shell.
neovim Editor. kickstart.nvim gives LSP, completion, fuzzy finding, treesitter.

Nvim: adding a language server

Edit the servers table in nvim/.config/nvim/init.lua:

local servers = {
  ts_ls = {},       -- typescript
  pyright = {},     -- python
  gopls = {},       -- go
  lua_ls = { ... }, -- already there
}

Restart nvim. Mason installs it automatically.

Ubuntu gotchas

  • fd installs as fdfind, bat as batcat. The install script creates aliases in ~/.local/bin.
  • If fzf keybindings don't work, check that ~/.fzf.zsh exists or that fzf --zsh works (needs fzf 0.48+).
  • Yazi installs via cargo, so you need rustup. The install script handles this but it takes a minute.
  • If your terminal is Ghostty and input looks broken over SSH, copy the terminfo: infocmp -x xterm-ghostty | ssh your-vps 'tic -x -'

Reference

  • shortcuts.md — all keybindings by tool (shell, nvim, tmux, lazygit)
  • flows.md — step-by-step workflows (finding code, fixing errors, git, VPS sessions)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors