Skip to content

Repository files navigation

Dotfiles

Personal Linux dotfiles for a terminal-first workflow. This repo is symlinked into $HOME with GNU Stow. Fish is the main shell.

The repo is public for reference and backup, but it is machine-specific in several places. Review it before you copy it onto another system.

What this repo manages

  • Fish as the main shell
  • tmux for terminal multiplexing
  • Neovim for editing
  • starship for the prompt
  • atuin for shell history
  • yazi for file management
  • lazygit and lazydocker
  • opencode for AI editing
  • ghostty, alacritty, and wezterm terminals
  • Git, htop, and other app configs

Supported environment

This setup assumes:

  • Fedora or another dnf-based Linux distro
  • An XDG-style config layout under ~/.config
  • GNOME in some places
  • A Nerd Font, especially JetBrains Mono Nerd Font
  • Homebrew/Linuxbrew for a few extra CLI packages

Repository layout

  • .config/ — main app configs
  • .config/fish/ — Fish config, aliases, functions, completions, and scripts
  • .config/opencode/ — opencode config, agents, commands, and MCP servers
  • .config/git/ — Git config
  • .config/starship.toml — prompt config
  • .config/{ghostty,alacritty,yazi,atuin,lazygit,lazydocker}/ — app configs
  • .tmux.conf — upstream tmux base config. Do not edit this file.
  • .tmux.conf.local — personal tmux overrides
  • .vimrc — fallback Vim config
  • .wezterm.lua — WezTerm config
  • env-configs/ — extra app and environment files
  • .zsh/ — legacy zsh config, kept for reference
  • redis.conf — placeholder for a standalone Redis config

Neovim is not currently checked in as a git submodule. .gitmodules is empty. If you want the Neovim setup, add it as a submodule yourself.

Core tools

Install the main tools with:

sudo dnf install fish tmux neovim git fzf zoxide starship ripgrep fd-find bat htop btop lazygit zoxide eza mpv procs gdu hyperfine

Install clipboard tools for tmux and terminal workflows:

sudo dnf install wl-clipboard xclip xsel

Some tools come from Homebrew/Linuxbrew instead of dnf:

brew install atuin yazi duf dua tabiew topgrade

Install

Clone the repo:

git clone https://github.com/samarth-na/dotfiles.git ~/dotfiles

This repo has no bootstrap script and no stow setup. To use it, review the files you want and symlink them manually. Example:

ln -s ~/dotfiles/.config/fish ~/.config/fish
ln -s ~/dotfiles/.config/opencode ~/.config/opencode
ln -s ~/dotfiles/.config/ghostty ~/.config/ghostty
ln -s ~/dotfiles/.config/alacritty ~/.config/alacritty
ln -s ~/dotfiles/.config/git ~/.config/git
ln -s ~/dotfiles/.config/yazi ~/.config/yazi
ln -s ~/dotfiles/.tmux.conf ~/.tmux.conf
ln -s ~/dotfiles/.tmux.conf.local ~/.tmux.conf.local
ln -s ~/dotfiles/.wezterm.lua ~/.wezterm.lua

Back up your existing configs before you replace them.

Shell setup

After installing Fish, make it your login shell:

chsh -s $(which fish)

The Fish config references these tools:

  • starship
  • atuin
  • bun
  • nvm
  • go
  • Homebrew/Linuxbrew

It also contains machine-specific paths. Review ~/.config/fish/config.fish before you use it as-is.

Fonts

This setup assumes JetBrains Mono Nerd Font. Install a Nerd Font first if icons or prompt symbols look wrong.

Local and private config

Some parts of this repo are intentionally personal. Review them before reuse:

  • Hardcoded /home/samarth/... paths
  • Homebrew paths under /home/linuxbrew/.linuxbrew
  • GNOME gsettings changes in the shell startup
  • Local env files such as /home/samarth/.deno/env and $HOME/.turso/env
  • Personal Git identity in .config/git/config

Keep secrets and machine-local paths in untracked local files.

Update

Pull changes with:

git pull

Then restart Fish, tmux, or your terminal apps as needed.

Notes

  • This repo is meant first for my own machines.
  • It is still useful as reference or a starting point.
  • Fork it, trim it, and make it yours instead of copying it blindly.

About

repo for all my dotfiles, End all be all for all my system configurations

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Contributors

Languages