Skip to content

grrru/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

215 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dotfiles/gruvim

Repository overview

This repo manages more than Neovim — it bootstraps a full shell/terminal environment via install.sh. The plugin/Neovim sections below this point are auto-generated by Dotfyle; the layout table here is maintained by hand.

Path What it is
install.sh Idempotent installer. Sets up deps, shell, configs, and tpm. Run ./install.sh help for targets.
gruvim/ Neovim config (linked to ~/.config/nvim). The active config; see sections below.
tmux/ tmux.conf + layout scripts (linked to ~/.config/tmux). Plugins managed by tpm under tmux/plugins/ (git-ignored).
zsh/, bash/ Shell framework config. Zsh uses oh-my-zsh + Powerlevel10k with zsh/p10k.zsh linked to ~/.p10k.zsh; bash uses oh-my-bash. Both source common.sh.
common.sh Required tracked shell layer shared by bash and zsh.
ghostty/ Ghostty terminal config (linked to ~/.config/ghostty when ghostty is present).
scripts/ Helper scripts, e.g. toggle-theme (switches ghostty + tmux between light/dark).

Configs are applied as symlinks into ~/.config, so edits in this repo take effect live. See Install Instructions for bootstrap and per-target usage.

Install Instructions

Install requires Neovim 0.9+. Always review the code before installing a configuration.

Clone the repository and run the installer:

git clone git@github.com:grrru/dotfiles ~/dotfiles
cd ~/dotfiles
./install.sh

The installer installs the basic CLI dependencies (git, curl, zsh, tmux, neovim, lazygit, ripgrep, fd, gh, fzf, zoxide, make, tree-sitter-cli), installs oh-my-bash as a bash bridge and oh-my-zsh with Powerlevel10k as the destination shell, then links the selected Neovim config to ~/.config/nvim.

Shell layout

Shell configuration is split into tracked repo layers and machine-local rc files:

Layer File Tracked Role
Entry point ~/.bashrc, ~/.zshrc No Machine-local setup, secrets, runtime paths, then source the repo config.
Shell framework bash/bash_config.sh, zsh/zsh_config.sh Yes oh-my-bash or oh-my-zsh, Powerlevel10k, fzf, PATH cleanup.
Shared common common.sh Yes Portable helpers and defaults shared by bash and zsh.

common.sh is required and is sourced by both shell framework configs. Keep it portable: helpers such as add_path, ecph, baseline user bin paths, and locale belong here.

Machine-local settings belong in the rc files, not in common.sh: Go under ~/sdk, Android SDK paths, nvm setup, private aliases, company hosts, and secrets.

Language runtimes are managed per-tool rather than by a version manager: go is installed under ~/sdk, node via nvm, python via the system/uv.

You can also run a specific install target:

./install.sh deps
./install.sh shell  # bash bridge + zsh setup
./install.sh bash
./install.sh zsh
./install.sh config
./install.sh tpm

To install user-level files for a different account while running from a sudo-capable account:

./install.sh --user target_user
./install.sh --user target_user config

The dotfiles checkout must be readable by target_user because configs are linked with symlinks.

Open Neovim after installation:

nvim

Install gruvim-managed Mason packages from Neovim:

:GruvimMasonInstall

The installer links gruvim as the default Neovim config.

Plugins

ai

bars-and-lines

color

colorscheme

comment

completion

diagnostics

editing-support

formatting

git

icon

keybinding

lsp

lsp-installer

markdown-and-latex

motion

nvim-dev

plugin-manager

search

session

snippet

statusline

syntax

tabline

utility

Language Servers

  • gopls
  • html
  • jsonls
  • lua_ls
  • yamlls

This readme was generated by Dotfyle

About

dotfiles config

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors