update readme
This commit is contained in:
@@ -2,42 +2,126 @@
|
||||
|
||||
[](https://x.ai/grok)
|
||||
|
||||
## Stow
|
||||
Personal dotfiles managed with [GNU Stow](https://www.gnu.org/software/stow/). Each top-level directory is a stow package that mirrors files into `$HOME`.
|
||||
|
||||
1. Install it:
|
||||
``sudo dnf install stow``
|
||||
## Quick start
|
||||
|
||||
2. Organize your repo like this:
|
||||
```bash
|
||||
git clone <repo-url> ~/.dotfiles
|
||||
cd ~/.dotfiles
|
||||
|
||||
# Arch
|
||||
sudo pacman -S stow
|
||||
|
||||
# Fedora
|
||||
# sudo dnf install stow
|
||||
|
||||
stow bash git nvim vim python ghostty mangohud konsole kde-themes dolphin agents vscode vscode-server
|
||||
```
|
||||
~/dotfiles/
|
||||
|
||||
To stow all packages at once (excludes `arch/`, which is not a stow package):
|
||||
|
||||
```bash
|
||||
stow agents bash dolphin ghostty git kde-themes konsole mangohud nvim python vim vscode vscode-server
|
||||
```
|
||||
|
||||
`arch/` holds standalone helper scripts — see [Scripts](#scripts) below.
|
||||
|
||||
## Packages
|
||||
|
||||
| Package | Symlinks |
|
||||
|---------|----------|
|
||||
| `bash` | `~/.bashrc`, `~/.bashrc.d/*`, `~/.editorconfig` |
|
||||
| `git` | `~/.gitconfig`, `~/.gitignore_global` |
|
||||
| `nvim` | `~/.config/nvim/` |
|
||||
| `vim` | `~/.vimrc` |
|
||||
| `python` | `~/.ruff.toml` |
|
||||
| `ghostty` | `~/.config/ghostty/` |
|
||||
| `mangohud` | `~/.config/MangoHud/` (base, custom, and FFXIV wine configs) |
|
||||
| `konsole` | `~/.config/konsolerc`, `~/.local/share/konsole/` (Catppuccin themes, bash profile) |
|
||||
| `kde-themes` | `~/.local/share/color-schemes/` (Catppuccin Mocha Teal/Blue) |
|
||||
| `dolphin` | `~/.config/dolphinrc`, `~/.config/dolphin/`, `~/.local/share/dolphin/` |
|
||||
| `agents` | `~/.grok/` (Grok CLI config, rules, skills path) |
|
||||
| `vscode` | `~/.config/Code/User/settings.json` → shared with vscode-server |
|
||||
| `vscode-server` | `~/.vscode-server/data/Machine/settings.json` |
|
||||
|
||||
### Bash modules
|
||||
|
||||
`~/.bashrc.d/` is sourced automatically. Modules:
|
||||
|
||||
- `alias.bash` — general aliases
|
||||
- `git.bash` — git helpers
|
||||
- `fonts.bash` — font paths
|
||||
- `ruff.bash` — Ruff integration
|
||||
- `mango.bash` — MangoHud env vars
|
||||
- `vscode.bash` — VS Code helpers
|
||||
- `wsl.bash` — WSL ssh-agent interop (loaded only when `/mnt/c` is present)
|
||||
- `apt.bash` — Debian/Ubuntu helpers
|
||||
|
||||
## Scripts
|
||||
|
||||
| Script | Purpose |
|
||||
|--------|---------|
|
||||
| `arch/update.sh` | Update uv, pacman, and flatpak |
|
||||
| `arch/fix_vscode.sh` | Create VS Code desktop entry and icon symlinks for `/opt/vscode` |
|
||||
| `dolphin.sh` | Copy live Dolphin config into the repo and `stow dolphin` |
|
||||
| `vscode-server/install-vscode-extensions.sh` | Install extensions from `extensions.txt` (local, remote, or both) |
|
||||
| `vscode-server/install-fira-code-fonts.sh` | Install Fira Code fonts for VS Code |
|
||||
|
||||
### VS Code extensions
|
||||
|
||||
```bash
|
||||
# Install remote (WSL) extensions from extensions.txt
|
||||
bash ~/.dotfiles/vscode-server/install-vscode-extensions.sh
|
||||
|
||||
# Export currently installed extensions back to extensions.txt
|
||||
bash ~/.dotfiles/vscode-server/install-vscode-extensions.sh --export
|
||||
```
|
||||
|
||||
## Grok agents
|
||||
|
||||
The `agents` package stows `~/.grok/` with global agent configuration:
|
||||
|
||||
- `config.toml` — CLI settings, marketplace, and skills path
|
||||
- `rules/` — global rules (e.g. `american-english.md`)
|
||||
- `AGENTS.md` — pointer to project-specific rules in `.grok/rules/`
|
||||
|
||||
Skills are loaded from `~/.dotfiles/agents/.grok/.skills` (configured in `config.toml`).
|
||||
|
||||
## Stow layout
|
||||
|
||||
Each package follows the standard stow convention — files live under the home-directory paths they should symlink to:
|
||||
|
||||
```
|
||||
~/.dotfiles/
|
||||
├── bash/
|
||||
│ ├── .bashrc
|
||||
│ └── .bashrc.d/ # everything here
|
||||
│ └── .bashrc.d/
|
||||
├── nvim/
|
||||
│ └── .config/nvim/
|
||||
├── git/
|
||||
│ └── .gitconfig
|
||||
├── agents/
|
||||
│ └── .grok/
|
||||
└── ...
|
||||
```
|
||||
3. stow it:
|
||||
```
|
||||
cd ~/dotfiles
|
||||
stow bash
|
||||
stow nvim
|
||||
stow git
|
||||
```
|
||||
stow creates the symlinks automatically and handles conflicts nicely.
|
||||
|
||||
Stow creates symlinks from `$HOME` back into the repo and handles conflicts cleanly.
|
||||
|
||||
## WSL
|
||||
Resources:
|
||||
* [ssh-agent-on-windows](https://medium.com/@wondrous_oxblood_cheetah_508/ssh-agent-on-windows-c74b90fb2e31)
|
||||
|
||||
### Install
|
||||
[](https://learn.microsoft.com/en-us/windows-server/administration/openssh/openssh_install_firstuse?tabs=powershell&pivots=windows-11)
|
||||
Resources:
|
||||
|
||||
- [ssh-agent-on-windows](https://medium.com/@wondrous_oxblood_cheetah_508/ssh-agent-on-windows-c74b90fb2e31)
|
||||
|
||||
### Install OpenSSH
|
||||
|
||||
[](https://learn.microsoft.com/en-us/windows-server/administration/openssh/openssh_install_firstuse?tabs=powershell&pivots=windows-11)
|
||||
|
||||
```powershell
|
||||
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'
|
||||
```
|
||||
|
||||
```powershell
|
||||
# Install the OpenSSH Client
|
||||
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
|
||||
@@ -45,6 +129,7 @@ Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
|
||||
# Install the OpenSSH Server
|
||||
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
|
||||
```
|
||||
|
||||
```powershell
|
||||
# Start the sshd service
|
||||
Start-Service sshd
|
||||
@@ -65,3 +150,5 @@ if (!(Get-NetFirewallRule -Name "OpenSSH-Server-In-TCP" -ErrorAction SilentlyCon
|
||||
Set-Service -Name 'ssh-agent' -StartupType Automatic
|
||||
Start-Service ssh-agent
|
||||
```
|
||||
|
||||
Once ssh-agent is running, `wsl.bash` aliases `ssh` and `ssh-add` to their Windows `.exe` counterparts so keys persist across WSL sessions.
|
||||
@@ -81,4 +81,17 @@
|
||||
},
|
||||
"catppuccin-icons.hidesExplorerArrows": false,
|
||||
"catppuccin-icons.specificFolders": true,
|
||||
"projectManager.git.baseFolders": [
|
||||
"~/git",
|
||||
"~/.dotfiles"
|
||||
],
|
||||
"projectManager.git.ignoredFolders": [
|
||||
"node_modules",
|
||||
"out",
|
||||
"typings",
|
||||
"test",
|
||||
".haxelib",
|
||||
"__pycache__",
|
||||
".grok"
|
||||
],
|
||||
}
|
||||
Reference in New Issue
Block a user