Skip to content

Latest commit

 

History

126 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

All dotfiles and system configuration: Fedora setup, Neovim, tmux, shell, and terminal tooling.

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Contributors

Languages