101 lines
2.4 KiB
Markdown
101 lines
2.4 KiB
Markdown
# Dotfiles
|
|
|
|
My personal dotfiles for quick setup on new machines. Change once, update everywhere.
|
|
|
|
## What's Included
|
|
|
|
| File | Description |
|
|
|------|-------------|
|
|
| `.bashrc` | Bash configuration with custom prompt, aliases, lazy-loaded conda/nvm, auto-start tmux |
|
|
| `.tmux.conf` | tmux config with vi keybindings and TPM plugins |
|
|
| `.vimrc` | Vim configuration with clipboard support, syntax highlighting, and sensible defaults |
|
|
| `setup.sh` | Bootstrap script for new Debian-like machines |
|
|
|
|
## Quick Install on a New Machine
|
|
|
|
```bash
|
|
curl -fsSL https://gitea.sjhl.nz/james/dotfiles/raw/branch/main/setup.sh | bash
|
|
```
|
|
|
|
Or manually:
|
|
|
|
```bash
|
|
git clone --bare https://gitea.sjhl.nz/james/dotfiles ~/.dotfiles
|
|
|
|
# Define the dotfiles alias
|
|
dotfiles() {
|
|
/usr/bin/git --git-dir="$HOME/.dotfiles/" --work-tree="$HOME" "$@"
|
|
}
|
|
|
|
# Checkout files (will prompt if conflicts exist)
|
|
dotfiles checkout
|
|
|
|
# Hide untracked files from status
|
|
dotfiles config --local status.showUntrackedFiles no
|
|
```
|
|
|
|
## Managing Your Dotfiles
|
|
|
|
After installation, the `dotfiles` command is available in your shell:
|
|
|
|
```bash
|
|
# View status
|
|
dotfiles status
|
|
|
|
# Add changes
|
|
dotfiles add .bashrc
|
|
dotfiles commit -m "Update prompt"
|
|
dotfiles push
|
|
```
|
|
|
|
The alias is already defined in `.bashrc`, so it's available in new terminals.
|
|
|
|
## tmux Usage
|
|
|
|
tmux starts automatically when you open a new terminal (configured in `.bashrc`).
|
|
|
|
**Basic Commands:**
|
|
| Command | Action |
|
|
|---------|--------|
|
|
| `tmux` | Start new session |
|
|
| `tmux ls` | List sessions |
|
|
| `tmux attach -t 0` | Attach to session 0 |
|
|
| `Ctrl+b d` | Detach from session |
|
|
| `Ctrl+b c` | Create new window |
|
|
| `Ctrl+b %` | Split vertically |
|
|
| `Ctrl+b "` | Split horizontally |
|
|
| `Ctrl+b [` | Copy/vi mode |
|
|
| `q` | Exit copy mode |
|
|
|
|
**Install TPM plugins:**
|
|
After first tmux start, press `Ctrl+b I` to install plugins (tpm, tmux-sensible, tmux-yank).
|
|
|
|
## Vim Usage
|
|
|
|
| Command | Action |
|
|
|---------|--------|
|
|
| `vi` or `vim` | Open editor |
|
|
| `:w` | Save |
|
|
| `:q` | Quit |
|
|
| `:q!` | Force quit |
|
|
| `/pattern` | Search |
|
|
| `n` | Next search match |
|
|
| `yy` | Yank (copy) line |
|
|
| `p` | Paste |
|
|
| `u` | Undo |
|
|
| `Ctrl+r` | Redo |
|
|
|
|
Clipboard is integrated - yanking/pasting works with system clipboard.
|
|
|
|
## Uninstall
|
|
|
|
To remove dotfiles from a machine:
|
|
|
|
```bash
|
|
dotfiles checkout HEAD
|
|
dotfiles clean -fd
|
|
rm -rf ~/.dotfiles ~/.dotfiles-backup
|
|
```
|
|
|
|
Your original files will be restored from the backup created during checkout.
|