https://github.com/thesofakillers/dotfiles
⚙️ bash, vim, etc.
https://github.com/thesofakillers/dotfiles
dotfiles neovim vim
Last synced: about 2 months ago
JSON representation
⚙️ bash, vim, etc.
- Host: GitHub
- URL: https://github.com/thesofakillers/dotfiles
- Owner: thesofakillers
- Created: 2019-12-15T19:09:17.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2026-03-12T22:20:51.000Z (3 months ago)
- Last Synced: 2026-03-13T04:53:05.970Z (3 months ago)
- Topics: dotfiles, neovim, vim
- Language: Vim Script
- Homepage:
- Size: 16.2 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Dotfiles
## Quick Start
On a fresh machine, logged in as your regular user:
```bash
git clone ~/dotfiles
cd ~/dotfiles
./bootstrap.sh
exec bash -l
```
What `bootstrap.sh` does:
- asks a short interactive questionnaire first, then executes the selected
setup plan
- installs baseline packages via manifests:
- `apt`: `manifests/apt-packages.txt`
- Homebrew: `Brewfile` (with fallback `manifests/brew-packages.txt`)
- optionally installs developer runtimes (`uv`, `bun`, and `node` via `n`)
- symlinks the main dotfiles and managed directories (`.codex`, `.vim`, and
top-level entries under `.config`)
- backs up any replaced files to `~/.dotfiles-backups//...`
- creates a local-only git template at `~/.config/git/config.secret`
- sets up Neovim Python host in `~/.local/share/nvim-py3` with `pynvim`
- on Debian/Ubuntu, bootstrap auto-installs missing `python3-venv` support
when needed
- installs `tmux` TPM plugin manager
- skips package installation if no supported package manager is found
Useful flags:
```bash
./bootstrap.sh --non-interactive
./bootstrap.sh --skip-packages --without-runtimes
./bootstrap.sh --without-homebrew
./bootstrap.sh --with-nvim-plugins
```
After first login:
- start `tmux`, then press `prefix + I` to install tmux plugins
- run `nvim +PlugInstall +qall` and/or `vim +PlugInstall +qall` once to
install plugins
## Manual Linking
If you prefer manual setup, clone this repository and create symlinks from files
inside the repo into your `$HOME`.
Example:
```bash
ln -s /path/to/dotfiles/.bashrc ~/.bashrc
```
## Vim/Neovim
### Neovim / Coc specifics
- Coc uses `~/n/bin/node`; keep `n` on PATH.
- Coc extensions live in `~/.config/coc/extensions`; run `:CocUpdate` after
changing Node.
- Neovim Python host lives in `~/.local/share/nvim-py3` with `pynvim` installed
(recreate with `python3 -m venv ~/.local/share/nvim-py3 &&
~/.local/share/nvim-py3/bin/pip install -U pynvim`).
- Built-in node/perl/ruby providers are disabled; only Coc’s node host is used.
- Coc-pyright is installed. Ruff lint/format uses `~/.scripts/ruff-fallback`:
looks for `./.venv/ruff`, then PATH ruff, else no-op (prevents EPIPE when
ruff is missing). Install ruff in each project venv for full lint/format.
## Additional Local Setup (Mac)
Most setup is covered by `bootstrap.sh`. For macOS terminal terminfo compatibility,
you may still need:
- [mac_finish.sh](mac_finish.sh)
### tmux without root
For installing tmux without needing root access, please refer to
`tmux_local_install.sh`
### Local-only git config
Use `~/.config/git/config.secret` for machine-specific git settings you do not
want to commit.