Personal Ubuntu and WSL development environment, centered on:
- Neovim with plugins managed by
lazy.nvim - Git with
deltafor readable diffs - tmux, fzf, ripgrep, fd, bat, and universal-ctags
- uv for Python tools and projects
- ranger, forgit, and a few small shell helpers
$ ./installenv.shThe installer uses apt for the base Ubuntu packages and fetches the latest stable Neovim, fzf, bat, delta, uv, and forgit releases. Re-running it updates outdated tools and only recopies changed configuration files.
To install only the configuration, without sudo or network access:
$ ./installenv.sh --config-onlyConfiguration files are copied rather than symlinked. The installer adds one
guarded source line to ~/.bashrc and one include to the global Git config;
repeated runs do not duplicate either entry.
On its first launch, Neovim bootstraps lazy.nvim and installs the current
plugin versions. lazy-lock.json is intentionally not kept in this repository.
config_files/nvim/->$XDG_CONFIG_HOME/nvim/config_files/bashrcandbash_aliases->$XDG_CONFIG_HOME/dotfiles/config_files/gitconfig->$XDG_CONFIG_HOME/git/dotfiles.gitconfig- tmux and GDB configuration ->
~/.tmux.confand~/.gdbinit local/bin/->~/.local/bin/local/share/->$XDG_DATA_HOME/
XDG_CONFIG_HOME and XDG_DATA_HOME default to ~/.config and
~/.local/share when they are not set.
This repository deliberately does not manage .profile, Git identity,
machine- or work-specific aliases, or secrets.
Edit the files in this repository, then rerun the installer. Older installations
may still have files that are no longer managed (for example .vimrc,
Powerline, bat-extras, ptags, or ExcelCompare); they can be removed manually if
they are no longer useful.