From d476129d5fb51460f56f0c151f0261871fb5d230 Mon Sep 17 00:00:00 2001 From: Angelo Noto Date: Sat, 27 Jun 2026 00:17:56 -0400 Subject: [PATCH] update readme --- README.md | 127 +++++++++++++++--- .../.vscode-server/data/Machine/settings.json | 13 ++ 2 files changed, 120 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index 1a3fc36..488a4ff 100644 --- a/README.md +++ b/README.md @@ -2,42 +2,126 @@ [![built with Grok](https://img.shields.io/badge/built%20with-Grok-000000?style=for-the-badge&logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMiAzMiI%2BPHBhdGggZmlsbD0id2hpdGUiIGQ9Ik0xMy4yMzcxIDIxLjA0MDdMMjQuMzE4NiAxMi44NTA2QzI0Ljg2MTkgMTIuNDQ5MSAyNS42Mzg0IDEyLjYwNTcgMjUuODk3MyAxMy4yMjk0QzI3LjI1OTcgMTYuNTE4NSAyNi42NTEgMjAuNDcxMiAyMy45NDAzIDIzLjE4NTFDMjEuMjI5NyAyNS44OTg5IDE3LjQ1ODEgMjYuNDk0MSAxNC4wMTA4IDI1LjEzODZMMTAuMjQ0OSAyNi44ODQzQzE1LjY0NjMgMzAuNTgwNiAyMi4yMDUzIDI5LjY2NjUgMjYuMzA0IDI1LjU2MDFDMjkuNTU1MSAyMi4zMDUxIDMwLjU2MiAxNy44NjgzIDI5LjYyMDUgMTMuODY3M0wyOS42MjkgMTMuODc1OEMyOC4yNjM3IDcuOTk4MDkgMjkuOTY0NyA1LjY0ODcxIDMzLjQ0OSAwLjg0NDU3NkMzMy41MzE0IDAuNzMwNjY3IDMzLjYxMzkgMC42MTY3NTcgMzMuNjk2NCAwLjVMMjkuMTExMyA1LjA5MDU1VjUuMDc2MzFMMTMuMjM0MyAyMS4wNDM2Ii8%2BPHBhdGggZmlsbD0id2hpdGUiIGQ9Ik0xMC45NTAzIDIzLjAzMTNDNy4wNzM0MyAxOS4zMjM1IDcuNzQxODUgMTMuNTg1MyAxMS4wNDk4IDEwLjI3NjNDMTMuNDk1OSA3LjgyNzIyIDE3LjUwMzYgNi44Mjc2NyAyMS4wMDIxIDguMjk3MUwyNC43NTk1IDYuNTU5OThDMjQuMDgyNiA2LjA3MDE3IDIzLjIxNSA1LjU0MzM0IDIyLjIxOTUgNS4xNzMxM0MxNy43MTk4IDMuMzE5MjYgMTIuMzMyNiA0LjI0MTkyIDguNjc0NzkgNy45MDEyNkM1LjE1NjM1IDExLjQyMzkgNC4wNDk5IDE2Ljg0MDMgNS45NDk5MiAyMS40NjIyQzcuMzY5MjQgMjQuOTE2NSA1LjA0MjU3IDI3LjM1OTggMi42OTg4NCAyOS44MjZDMS44NjgyOSAzMC43MDAyIDEuMDM0OSAzMS41NzQ1IDAuMzYzNjQgMzIuNUwxMC45NDc0IDIzLjAzNDEiLz48L3N2Zz4%3D)](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 ~/.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 -[![OpenSSH](https://img.shields.io/badge/Windows-OpenSSH?style=flat-square&label=OpenSSH&color=blue -)](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 + +[![OpenSSH](https://img.shields.io/badge/Windows-OpenSSH?style=flat-square&label=OpenSSH&color=blue)](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 @@ -64,4 +149,6 @@ if (!(Get-NetFirewallRule -Name "OpenSSH-Server-In-TCP" -ErrorAction SilentlyCon ```powershell Set-Service -Name 'ssh-agent' -StartupType Automatic Start-Service ssh-agent -``` \ No newline at end of file +``` + +Once ssh-agent is running, `wsl.bash` aliases `ssh` and `ssh-add` to their Windows `.exe` counterparts so keys persist across WSL sessions. \ No newline at end of file diff --git a/vscode-server/.vscode-server/data/Machine/settings.json b/vscode-server/.vscode-server/data/Machine/settings.json index 6e4ec43..89ce8fa 100644 --- a/vscode-server/.vscode-server/data/Machine/settings.json +++ b/vscode-server/.vscode-server/data/Machine/settings.json @@ -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" + ], } \ No newline at end of file