Skip to content

Latest commit

 

History

17 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dotfiles

My yet another try to maintain my dotfiles online.

Personal configuration for a Linux development environment: shell, prompt, editor, git, and terminal. The goal is a single cloneable source of truth that makes it straightforward to restore a familiar setup on a new machine.

Contents

Path Description
zshrc Interactive zsh: PATH, history, completion, aliases, fzf, zoxide, plugins, Starship
gitignore_global Global ignore patterns
config/starship.toml Starship prompt (Catppuccin Mocha)
config/nvim/ Neovim (LazyVim), Catppuccin, Go/Java helpers, DAP, Telescope
config/kitty/ Kitty terminal font, opacity, and Catppuccin Mocha colors
install.sh Symlink installer with timestamped backups

Secrets, credentials, shell history, WakaTime config, and .env files are intentionally not tracked.

Motivation

Reinstalls and spare machines should not require rebuilding aliases, prompt settings, and editor wiring from scratch. Keeping this layer in version control turns that work into a clone and a short install.

Quick start

git clone git@github.com:Saumya40-codes/dotfiles.git ~/dotfiles
cd ~/dotfiles
./install.sh
exec zsh

install.sh will:

  1. Create parent directories under $HOME when needed.
  2. Move any existing target to *.bak.<timestamp> before linking.
  3. Symlink tracked files from this repository into the usual locations.

Review the script before running it if you already manage configs manually, and link only the pieces you want.

Companion tools

Not all of these are required, but the configs work best when they are available:

  • Shell: zsh, Starship, zsh-autosuggestions, zsh-syntax-highlighting, zsh-history-substring-search, zsh-completions
  • CLI: fzf, ripgrep, fd, bat, eza, zoxide, delta (git-delta)
  • Editor: Neovim 0.11+, LazyVim (bootstrapped on first open via lazy.nvim)
  • Terminal: Kitty with a Nerd Font (for example JetBrainsMono Nerd Font Mono)
  • Languages (as needed): Go, JDK, Node, Python with ruff and debugpy, rustup, rbenv

On Ubuntu or Debian:

sudo apt update
sudo apt install zsh fzf ripgrep fd-find

Modern CLI tools can also be installed as release binaries into ~/.local/bin.

Development setup

  • Shell and terminal: zsh, Starship, and Kitty with the Catppuccin Mocha theme.
  • Editor: Neovim 0.11+ with LazyVim, LSP/DAP tooling, and Go, Java, Python, and Rust customizations.
  • AI coding: OpenCode is installed under ~/.opencode/bin; zshrc adds it to PATH.
  • Version control: Git identity and preferences are local; the global ignore file is tracked here.
  • Language tooling: Go, JDK, Node, Python with Ruff and debugpy, rustup, and rbenv are used as needed.

Neovim

LazyVim-based setup with Catppuccin Mocha, language extras (Java, Docker, JSON, YAML, Python, Rust, and related), ray-x/go.nvim, toggleterm, and DAP. After install, open Neovim once and let :Lazy finish bootstrapping. Use :Mason for language servers and formatters.

Useful keys (see also config/nvim/README.md):

  • <leader>fw live grep, <leader>fv find files
  • <leader>db breakpoint, <F5> continue
  • <leader>got Go test, <leader>rj Java scratch run
  • <leader>th / <leader>tv / <leader>tf terminals

Layout

Paths in this repository mirror their install destinations so install.sh stays small. This is a personal baseline for shell, prompt, git, and editor configuration, not a full desktop or OS image.

Safety

Keep Git identity, tokens, and private keys in untracked local configuration or a secret store.

License

Provided as-is for personal reuse. Adapt as needed.

About

No description or website provided.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages