From 6ef2a7494531087691f595504add1f3c7a39b7b4 Mon Sep 17 00:00:00 2001 From: Jean-Michel Bouchard Date: Sun, 25 Jan 2026 14:15:33 -0500 Subject: [PATCH 01/32] claude generated ai context files to have better ai-context --- .gitignore | 3 + common/ai-context/AGENTS.md | 55 +++++++ common/ai-context/CLAUDE.md | 41 ++++++ common/ai-context/context.md | 65 +++++++++ darwin/ai-context/machine.md | 35 +++++ linux/arch/ai-context/machine.md | 36 +++++ linux/arch/hooks/90-refresh-ai-context.hook | 11 ++ scripts/refresh-machine-state.sh | 153 ++++++++++++++++++++ 8 files changed, 399 insertions(+) create mode 100644 common/ai-context/AGENTS.md create mode 100644 common/ai-context/CLAUDE.md create mode 100644 common/ai-context/context.md create mode 100644 darwin/ai-context/machine.md create mode 100644 linux/arch/ai-context/machine.md create mode 100644 linux/arch/hooks/90-refresh-ai-context.hook create mode 100644 scripts/refresh-machine-state.sh diff --git a/.gitignore b/.gitignore index dde2be2..962c6cd 100644 --- a/.gitignore +++ b/.gitignore @@ -38,3 +38,6 @@ __pycache__/ # Cursor generated configuration .config/cursor/generated/ + +# Generated AI context (machine-specific, not versioned) +**/ai-context/machine-state.md diff --git a/common/ai-context/AGENTS.md b/common/ai-context/AGENTS.md new file mode 100644 index 0000000..52a5c9b --- /dev/null +++ b/common/ai-context/AGENTS.md @@ -0,0 +1,55 @@ +# Agent Context + +This file provides context for AI coding assistants (Codex, Copilot, Claude, etc.). + +## Developer Profile + +- Works across multiple organizations — treat each project independently +- Uses multiple AI tools depending on task requirements + +## Tech Stack + +### Languages (preference order) +1. Rust - backend, systems, CLI tools +2. Python - backend, scripting, automation +3. TypeScript - frontend applications +4. Bash - simple scripts only + +### Frameworks +- Frontend: Next.js (TypeScript), React Native +- Backend: Flask (Python), Actix-web (Rust) + +### Infrastructure +- Containers: Docker, Docker Compose +- Orchestration: Kubernetes +- IaC: Terraform +- Package managers: pacman, Homebrew, apt (depending on OS) + +## Code Style Guidelines + +- Concise over verbose +- Explicit over clever +- No premature abstractions +- Comments only when logic isn't obvious +- Error handling at boundaries, not everywhere +- Tests in `tests/`, source in `src/` + +## Project Structure + +Preferred layout: +``` +src/ - source code +tests/ - tests +docker/ - container configs +k8s/ - kubernetes manifests +infra/ - terraform and other IaC +architecture/ - design docs +``` + +Prefers git submodules over monorepos. + +## Communication + +- Direct responses, no filler +- OS-specific commands only (no multi-platform alternatives unless asked) +- Honest feedback over false validation diff --git a/common/ai-context/CLAUDE.md b/common/ai-context/CLAUDE.md new file mode 100644 index 0000000..8dd400f --- /dev/null +++ b/common/ai-context/CLAUDE.md @@ -0,0 +1,41 @@ +# Claude Code Context + +## Machine Context + +Two files describe the current machine: +- `~/MACHINE.md` — static: what this machine is *for*, preferences, paths +- `~/MACHINE-STATE.md` — generated: what's actually installed, versions, recent packages + +If you need current system info, check MACHINE-STATE.md or run commands directly. + +## General Preferences + +I work across multiple organizations. Treat each project independently — don't carry assumptions between repos or contexts. + +## Languages & Frameworks + +**Preferred stack:** +- Rust (backend, systems, CLI) +- Python (backend, scripting) +- TypeScript (frontend) +- Bash (simple automation only) + +**Frameworks:** Next.js, React Native, Flask, Actix-web + +## Project Conventions + +- Source in `src/`, tests in `tests/` +- Git submodules over monorepos +- Infrastructure in `docker/`, `k8s/`, `infra/terraform/` + +## How to Work With Me + +- Be direct. No fluff, no excessive caveats. +- Give me commands for my current OS only (check MACHINE.md). +- Don't over-engineer. Minimal viable solution first. +- If I'm wrong, tell me. I value correction over validation. +- Skip emojis unless I use them first. + +## Dotfiles + +My dotfiles are at `~/workspace/dotfiles`. If you need to understand my shell setup, git aliases, or tooling, look there. diff --git a/common/ai-context/context.md b/common/ai-context/context.md new file mode 100644 index 0000000..d5da779 --- /dev/null +++ b/common/ai-context/context.md @@ -0,0 +1,65 @@ +# Developer Context + +## About Me + +I work across multiple organizations and contexts. Do not assume knowledge or patterns from one project apply to another. Each project should be treated independently. + +I use multiple AI assistants (Claude, Codex, Copilot, etc.) depending on the task. Keep responses practical and tool-agnostic. + +## Languages (in order of preference) + +1. **Rust** - backend, systems programming, CLI tools +2. **Python** - backend services, scripting, automation +3. **TypeScript** - frontend, full-stack when needed +4. **Bash** - scripting, automation (keep it simple) + +## Frameworks + +| Domain | Preferred | +|--------|-----------| +| Frontend | Next.js (TypeScript), React Native | +| Backend (Python) | Flask | +| Backend (Rust) | Actix-web | + +## Project Structure Preferences + +``` +project/ +├── src/ # Source code +├── tests/ # Tests +├── docker/ # Docker configs +├── k8s/ # Kubernetes manifests (if applicable) +├── infra/terraform/ # Infrastructure as code +├── architecture/ # Design documents +└── project/ # Project documentation +``` + +- Prefer **git submodules** over monorepos +- Keep infrastructure separate from application code +- Tests live in `tests/`, not alongside source + +## Coding Style + +- Be concise. Avoid over-engineering. +- No unnecessary abstractions for one-time operations +- Error handling only where it matters (system boundaries, external APIs) +- Comments only when logic isn't self-evident +- Prefer explicit over clever + +## Tools I Use + +- **Package managers**: pacman (Arch), Homebrew (macOS), apt (Debian/Ubuntu) +- **Containers**: Docker, Docker Compose +- **Orchestration**: Kubernetes (kubectl, k9s, helm) +- **Infrastructure**: Terraform +- **Shell**: zsh with custom functions +- **Editor**: Neovim, Cursor +- **Terminal**: Kitty +- **Search**: fzf, ripgrep, fd + +## Communication Preferences + +- Be direct. Skip pleasantries and excessive caveats. +- When I'm on a specific OS, give me commands for that OS only. +- Don't pad responses with alternatives unless I ask. +- If something is wrong, say so. I prefer correction over false agreement. diff --git a/darwin/ai-context/machine.md b/darwin/ai-context/machine.md new file mode 100644 index 0000000..de2cd48 --- /dev/null +++ b/darwin/ai-context/machine.md @@ -0,0 +1,35 @@ +# Machine: MacBook + +## System + +- **OS**: macOS +- **Package manager**: Homebrew +- **Shell**: zsh +- **Terminal**: Kitty + +## Primary Use + +- Personal projects +- Mobile development (React Native, iOS) +- General development + +## Package Installation + +```bash +# Homebrew +brew install + +# Cask (GUI apps) +brew install --cask +``` + +## Paths + +- Dotfiles: `~/workspace/dotfiles` +- Projects: `~/workspace/` + +## Notes + +- Uses GNU coreutils via Homebrew (aliased to replace BSD tools) +- Catppuccin theme +- Brewfile in dotfiles for reproducible setup diff --git a/linux/arch/ai-context/machine.md b/linux/arch/ai-context/machine.md new file mode 100644 index 0000000..0bfe633 --- /dev/null +++ b/linux/arch/ai-context/machine.md @@ -0,0 +1,36 @@ +# Machine: Arch Linux Workstation + +## System + +- **OS**: Arch Linux +- **Package manager**: pacman (AUR: yay) +- **Shell**: zsh +- **Display**: Wayland (Sway) +- **Terminal**: Kitty + +## Primary Use + +- Personal projects +- LLC work +- Development environment + +## Package Installation + +```bash +# System packages +sudo pacman -S + +# AUR packages +yay -S +``` + +## Paths + +- Dotfiles: `~/workspace/dotfiles` +- Projects: `~/workspace/` + +## Notes + +- Uses Sway window manager with Waybar +- Catppuccin Mocha theme across terminal and applications +- Modern CLI tools: ripgrep, fd, bat, exa diff --git a/linux/arch/hooks/90-refresh-ai-context.hook b/linux/arch/hooks/90-refresh-ai-context.hook new file mode 100644 index 0000000..24ce447 --- /dev/null +++ b/linux/arch/hooks/90-refresh-ai-context.hook @@ -0,0 +1,11 @@ +[Trigger] +Operation = Install +Operation = Upgrade +Operation = Remove +Type = Package +Target = * + +[Action] +Description = Refreshing AI context machine state... +When = PostTransaction +Exec = /home/jm/workspace/dotfiles/scripts/refresh-machine-state.sh diff --git a/scripts/refresh-machine-state.sh b/scripts/refresh-machine-state.sh new file mode 100644 index 0000000..ae587f5 --- /dev/null +++ b/scripts/refresh-machine-state.sh @@ -0,0 +1,153 @@ +#!/usr/bin/env bash +# +# Regenerates machine-state.md with current system information. +# Run manually or via package manager hooks. +# + +set -euo pipefail + +DOTFILES_DIR="${DOTFILES_DIR:-$HOME/workspace/dotfiles}" + +# Detect OS and set output path +detect_os() { + case "$(uname -s)" in + Linux) + if [[ -f /etc/arch-release ]]; then + echo "arch" + elif [[ -f /etc/debian_version ]]; then + echo "debian" + elif [[ -f /etc/fedora-release ]]; then + echo "fedora" + else + echo "linux" + fi + ;; + Darwin) + echo "darwin" + ;; + *) + echo "unknown" + ;; + esac +} + +OS="$(detect_os)" + +# Set output path based on OS +case "$OS" in + arch) + OUTPUT_FILE="$DOTFILES_DIR/linux/arch/ai-context/machine-state.md" + ;; + debian) + OUTPUT_FILE="$DOTFILES_DIR/linux/debian/ai-context/machine-state.md" + ;; + darwin) + OUTPUT_FILE="$DOTFILES_DIR/darwin/ai-context/machine-state.md" + ;; + *) + OUTPUT_FILE="$DOTFILES_DIR/common/ai-context/machine-state.md" + ;; +esac + +# Ensure directory exists +mkdir -p "$(dirname "$OUTPUT_FILE")" + +# Helper: get version if command exists +version_of() { + local cmd="$1" + local flag="${2:---version}" + if command -v "$cmd" &>/dev/null; then + "$cmd" $flag 2>/dev/null | head -n1 + else + echo "not installed" + fi +} + +# Helper: get package count +package_count() { + case "$OS" in + arch) + pacman -Q 2>/dev/null | wc -l + ;; + debian) + dpkg -l 2>/dev/null | grep -c '^ii' + ;; + darwin) + brew list --formula 2>/dev/null | wc -l | tr -d ' ' + ;; + *) + echo "unknown" + ;; + esac +} + +# Helper: get recently installed packages (last 10) +recent_packages() { + case "$OS" in + arch) + grep -E '\[ALPM\] installed' /var/log/pacman.log 2>/dev/null | tail -10 | awk '{print $4}' | sed 's/(.*//' + ;; + debian) + grep ' install ' /var/log/dpkg.log 2>/dev/null | tail -10 | awk '{print $4}' | cut -d: -f1 + ;; + darwin) + # Homebrew doesn't have a great install log, just list some recent + brew list --formula -1 2>/dev/null | tail -10 + ;; + *) + echo "unavailable" + ;; + esac +} + +# Generate the file +cat > "$OUTPUT_FILE" << EOF +# Machine State + +> Auto-generated by \`refresh-machine-state.sh\` +> Last updated: $(date -Iseconds) + +## System + +- **OS**: $(uname -s) $(uname -r) +- **Hostname**: $(hostname) +- **Architecture**: $(uname -m) + +## Shell + +- **Current shell**: $SHELL +- **Bash**: $(version_of bash) +- **Zsh**: $(version_of zsh) + +## Languages + +| Language | Version | +|----------|---------| +| Rust | $(version_of rustc) | +| Python | $(version_of python3) | +| Node | $(version_of node -v) | +| Go | $(version_of go version) | + +## Tools + +| Tool | Version | +|------|---------| +| Git | $(version_of git) | +| Docker | $(version_of docker -v) | +| kubectl | $(version_of kubectl version --client --short 2>/dev/null || version_of kubectl version --client) | +| Terraform | $(version_of terraform -v) | +| Neovim | $(version_of nvim) | + +## Packages + +- **Total installed**: $(package_count) +- **Package manager**: $(case "$OS" in arch) echo "pacman";; debian) echo "apt";; darwin) echo "homebrew";; *) echo "unknown";; esac) + +### Recently Installed + +\`\`\` +$(recent_packages) +\`\`\` +EOF + +echo "Updated: $OUTPUT_FILE" From 6316f7558072e3b9a297c6e8bf98503e9cfa88a1 Mon Sep 17 00:00:00 2001 From: Jean-Michel Bouchard Date: Sun, 25 Jan 2026 18:45:37 -0500 Subject: [PATCH 02/32] Add install support for AI context files and pacman hook - Add install_ai_context() to symlink CLAUDE.md, AGENTS.md, MACHINE.md - Add install_pacman_hook() with __DOTFILES_DIR__ templating - Run refresh-machine-state.sh during install to bootstrap state file - Symlink generated machine-state.md to ~/MACHINE-STATE.md Co-Authored-By: Claude Opus 4.5 --- install.sh | 105 +++++++++++++++++++- linux/arch/hooks/90-refresh-ai-context.hook | 2 +- scripts/refresh-machine-state.sh | 0 3 files changed, 105 insertions(+), 2 deletions(-) mode change 100644 => 100755 scripts/refresh-machine-state.sh diff --git a/install.sh b/install.sh index 8aa7835..17e9092 100755 --- a/install.sh +++ b/install.sh @@ -431,6 +431,107 @@ install_optional_tools() { fi } +# Install AI context files (CLAUDE.md, MACHINE.md, AGENTS.md) +install_ai_context() { + log_step "Installing AI context files..." + + # Create ~/.claude directory + mkdir -p "$HOME/.claude" + + # CLAUDE.md -> ~/.claude/CLAUDE.md + local claude_src="$DOTFILES_DIR/common/ai-context/CLAUDE.md" + if [[ -f "$claude_src" ]]; then + backup_file "$HOME/.claude/CLAUDE.md" + create_symlink "$claude_src" "$HOME/.claude/CLAUDE.md" + fi + + # AGENTS.md -> ~/AGENTS.md (for Codex/Copilot compatibility) + local agents_src="$DOTFILES_DIR/common/ai-context/AGENTS.md" + if [[ -f "$agents_src" ]]; then + backup_file "$HOME/AGENTS.md" + create_symlink "$agents_src" "$HOME/AGENTS.md" + fi + + # OS-specific machine.md -> ~/MACHINE.md + local machine_src="" + case "$DISTRO" in + arch|manjaro) + machine_src="$DOTFILES_DIR/linux/arch/ai-context/machine.md" + ;; + ubuntu|debian) + machine_src="$DOTFILES_DIR/linux/debian/ai-context/machine.md" + ;; + darwin|macos) + machine_src="$DOTFILES_DIR/darwin/ai-context/machine.md" + ;; + esac + + if [[ -n "$machine_src" && -f "$machine_src" ]]; then + backup_file "$HOME/MACHINE.md" + create_symlink "$machine_src" "$HOME/MACHINE.md" + else + log_warning "No machine.md found for $DISTRO" + fi + + # Run refresh script to generate initial machine-state.md + local refresh_script="$DOTFILES_DIR/scripts/refresh-machine-state.sh" + if [[ -f "$refresh_script" ]]; then + log_step "Generating initial machine-state.md..." + if [[ "$DRY_RUN" == "false" ]]; then + chmod +x "$refresh_script" + "$refresh_script" + # Symlink the generated state file + local state_file="" + case "$DISTRO" in + arch|manjaro) + state_file="$DOTFILES_DIR/linux/arch/ai-context/machine-state.md" + ;; + ubuntu|debian) + state_file="$DOTFILES_DIR/linux/debian/ai-context/machine-state.md" + ;; + darwin|macos) + state_file="$DOTFILES_DIR/darwin/ai-context/machine-state.md" + ;; + esac + if [[ -n "$state_file" && -f "$state_file" ]]; then + create_symlink "$state_file" "$HOME/MACHINE-STATE.md" + fi + else + log_info "Would run: $refresh_script" + log_info "Would symlink machine-state.md -> ~/MACHINE-STATE.md" + fi + fi +} + +# Install pacman hook (Arch Linux only) +install_pacman_hook() { + if [[ "$DISTRO" != "arch" && "$DISTRO" != "manjaro" ]]; then + return + fi + + local hook_src="$DOTFILES_DIR/linux/arch/hooks/90-refresh-ai-context.hook" + local hook_dest="/etc/pacman.d/hooks/90-refresh-ai-context.hook" + + if [[ ! -f "$hook_src" ]]; then + log_warning "Pacman hook source not found: $hook_src" + return + fi + + log_step "Installing pacman hook for AI context refresh..." + + if [[ "$DRY_RUN" == "false" ]]; then + # Ensure hooks directory exists + sudo mkdir -p /etc/pacman.d/hooks + + # Template and install the hook + sed "s|__DOTFILES_DIR__|$DOTFILES_DIR|g" "$hook_src" | sudo tee "$hook_dest" > /dev/null + log_success "Installed pacman hook: $hook_dest" + else + log_info "Would install pacman hook: $hook_src -> $hook_dest" + log_info "Would replace __DOTFILES_DIR__ with $DOTFILES_DIR" + fi +} + # Main installation function main() { echo -e "${CYAN}" @@ -470,7 +571,9 @@ main() { install_shell_functions # 3. Shell functions (depends on shell configs) install_terminal_config # 4. Terminal configs (kitty, htop) install_vim_config # 5. Vim setup (plugins, settings, CoC compilation) - install_optional_tools # 6. Optional tools (fzf, etc.) - last + install_optional_tools # 6. Optional tools (fzf, etc.) + install_ai_context # 7. AI context files (CLAUDE.md, MACHINE.md, etc.) + install_pacman_hook # 8. Pacman hook for AI context (Arch only) echo -e "${GREEN}" echo "╔══════════════════════════════════════════════════════════════╗" diff --git a/linux/arch/hooks/90-refresh-ai-context.hook b/linux/arch/hooks/90-refresh-ai-context.hook index 24ce447..1b0fea1 100644 --- a/linux/arch/hooks/90-refresh-ai-context.hook +++ b/linux/arch/hooks/90-refresh-ai-context.hook @@ -8,4 +8,4 @@ Target = * [Action] Description = Refreshing AI context machine state... When = PostTransaction -Exec = /home/jm/workspace/dotfiles/scripts/refresh-machine-state.sh +Exec = __DOTFILES_DIR__/scripts/refresh-machine-state.sh diff --git a/scripts/refresh-machine-state.sh b/scripts/refresh-machine-state.sh old mode 100644 new mode 100755 From 9968890bc1aa0e3582b318b31dc2cf7c9931b438 Mon Sep 17 00:00:00 2001 From: Jean-Michel Bouchard Date: Mon, 11 May 2026 09:13:21 -0400 Subject: [PATCH 03/32] Add jm-home-box convergence tooling --- .vim/plugins.vim | 4 + .vim/settings/treesitter.vim | 43 ++++ .vim/vimrc | 16 +- Makefile | 23 +- README.md | 24 +- common/bin/dotfiles | 5 + common/nvim/init.vim | 9 + docs/machine-convergence-plan.md | 105 +++++++++ linux/arch/ai-context/machine-state.md | 55 +++++ linux/common/kitty.conf | 4 +- machines/jm-home-box/machine.toml | 28 +++ scripts/dotfiles.py | 299 +++++++++++++++++++++++++ 12 files changed, 604 insertions(+), 11 deletions(-) create mode 100644 .vim/settings/treesitter.vim create mode 100755 common/bin/dotfiles create mode 100644 common/nvim/init.vim create mode 100644 docs/machine-convergence-plan.md create mode 100644 linux/arch/ai-context/machine-state.md create mode 100644 machines/jm-home-box/machine.toml create mode 100755 scripts/dotfiles.py diff --git a/.vim/plugins.vim b/.vim/plugins.vim index 85baf33..338d978 100644 --- a/.vim/plugins.vim +++ b/.vim/plugins.vim @@ -23,4 +23,8 @@ Plug 'junegunn/fzf.vim' Plug 'sheerun/vim-polyglot' Plug 'neoclide/coc.nvim', {'branch': 'release'} +if has('nvim') + Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'} +endif + call plug#end() diff --git a/.vim/settings/treesitter.vim b/.vim/settings/treesitter.vim new file mode 100644 index 0000000..df3950b --- /dev/null +++ b/.vim/settings/treesitter.vim @@ -0,0 +1,43 @@ +" ===== Neovim Tree-sitter Configuration ===== +" Phase 1 keeps Vimscript as the main configuration language while adding +" Neovim's parser-based highlighting where available. + +if !has('nvim') + finish +endif + +lua << EOF +local ok, configs = pcall(require, "nvim-treesitter.configs") +if not ok then + return +end + +configs.setup({ + ensure_installed = { + "bash", + "css", + "dockerfile", + "go", + "html", + "javascript", + "json", + "lua", + "markdown", + "python", + "rust", + "terraform", + "toml", + "tsx", + "typescript", + "vim", + "yaml", + }, + highlight = { + enable = true, + additional_vim_regex_highlighting = false, + }, + indent = { + enable = true, + }, +}) +EOF diff --git a/.vim/vimrc b/.vim/vimrc index 8828bbc..6e56b6d 100644 --- a/.vim/vimrc +++ b/.vim/vimrc @@ -17,23 +17,27 @@ source ~/.vim/settings/appearance.vim " 3. Performance - Speed optimizations (early for best effect) source ~/.vim/settings/performance.vim -" 4. Key mappings - Basic vim keybindings +" 4. Neovim-only syntax engine support +if has('nvim') && filereadable(expand('~/.vim/settings/treesitter.vim')) + source ~/.vim/settings/treesitter.vim +endif + +" 5. Key mappings - Basic vim keybindings source ~/.vim/mappings.vim -" 5. Extra keybindings - Leader key and custom bindings +" 6. Extra keybindings - Leader key and custom bindings source ~/.vim/settings/keybindings.vim -" 6. CoC LSP - Language server configuration (after basic settings) +" 7. CoC LSP - Language server configuration (after basic settings) source ~/.vim/settings/coc-settings.vim -" 7. FZF - Fuzzy finder configuration (after keybindings) +" 8. FZF - Fuzzy finder configuration (after keybindings) source ~/.vim/settings/fzf-settings.vim -" 8. General settings - Search, behavior, etc. (loaded last) +" 9. General settings - Search, behavior, etc. (loaded last) source ~/.vim/settings.vim " Give the highlighter more time but cap per-line work set redrawtime=10000 set synmaxcol=300 " don't try to highlight beyond column 300 syntax sync minlines=128 " don't rescan the entire file from top - diff --git a/Makefile b/Makefile index 9909f2f..764a8fb 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -.PHONY: all help install install-minimal install-no-packages backup-bash brew-sync clean-backup legacy +.PHONY: all help install install-minimal install-no-packages backup-bash brew-sync clean-backup legacy dotfiles-doctor dotfiles-dry-run dotfiles-install dotfiles-diff-live dotfiles-backup .ONESHELL: SHELL = /bin/bash @@ -22,6 +22,21 @@ install-dry-run: install-copy: $(DOTFILE_DIR)/install.sh --copy +dotfiles-doctor: + $(DOTFILE_DIR)/scripts/dotfiles.py doctor + +dotfiles-dry-run: + $(DOTFILE_DIR)/scripts/dotfiles.py install --dry-run + +dotfiles-install: + $(DOTFILE_DIR)/scripts/dotfiles.py install + +dotfiles-diff-live: + $(DOTFILE_DIR)/scripts/dotfiles.py diff-live + +dotfiles-backup: + $(DOTFILE_DIR)/scripts/dotfiles.py backup + # Legacy OS-specific targets (kept for compatibility) legacy: $(OS) linux: apt flatpak git-init stow-linux git-installs profile-source font-cache @@ -132,6 +147,11 @@ help: @echo " make install-no-packages # Install configs only, skip packages" @echo " make install-copy # Copy files instead of symlinks" @echo " make install-dry-run # Show what would be installed" + @echo " make dotfiles-doctor # Check expected tools for this machine" + @echo " make dotfiles-dry-run # Preview copy-based convergence installer" + @echo " make dotfiles-install # Copy managed files and write manifest" + @echo " make dotfiles-diff-live # Compare live managed files to repo" + @echo " make dotfiles-backup # Back up live managed files" @echo "" @echo "Advanced:" @echo " make legacy # Use legacy OS-specific installation" @@ -140,4 +160,3 @@ help: @echo "" @echo "Direct script usage:" @echo " ./install.sh --help # Show all script options" - diff --git a/README.md b/README.md index 6b66d1e..b7f8bb8 100644 --- a/README.md +++ b/README.md @@ -176,6 +176,29 @@ To clean old backups (30+ days): make clean-backup ``` +## 🧭 Machine Convergence Workflow + +The copy-based convergence workflow is being introduced alongside the legacy +installer. It is intended for personal machines where configs should be copied +into place, tracked with a manifest, and checked for drift. + +```bash +make dotfiles-doctor # Check required/preferred tools for this machine +make dotfiles-dry-run # Preview managed copies without changing files +make dotfiles-backup # Back up managed live files +make dotfiles-install # Copy managed files and write install manifest +make dotfiles-diff-live # Report live files that drift from the repo +``` + +Machine profiles live in `machines//machine.toml`. The current Arch +profile is `machines/jm-home-box/machine.toml`. + +This path keeps Bash available as a fallback, but converges personal interactive +machines on Zsh, Kitty, and Neovim. + +The active convergence plan is tracked in +`docs/machine-convergence-plan.md`. + ## 🐳 Container Usage The installer auto-detects container environments and uses minimal mode: @@ -221,4 +244,3 @@ The installer respects `CLAUDE.md` files for project-specific context. # View installer help ./install.sh --help ``` - diff --git a/common/bin/dotfiles b/common/bin/dotfiles new file mode 100755 index 0000000..03bdd95 --- /dev/null +++ b/common/bin/dotfiles @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +set -euo pipefail + +repo_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" +exec python3 "$repo_dir/scripts/dotfiles.py" "$@" diff --git a/common/nvim/init.vim b/common/nvim/init.vim new file mode 100644 index 0000000..c52de60 --- /dev/null +++ b/common/nvim/init.vim @@ -0,0 +1,9 @@ +" Neovim phase-1 entrypoint. +" Keep the existing Vim configuration as the source of truth while Neovim +" support is introduced incrementally. + +set runtimepath^=~/.vim +set runtimepath+=~/.vim/after +let &packpath = &runtimepath + +source ~/.vim/vimrc diff --git a/docs/machine-convergence-plan.md b/docs/machine-convergence-plan.md new file mode 100644 index 0000000..5912690 --- /dev/null +++ b/docs/machine-convergence-plan.md @@ -0,0 +1,105 @@ +# Machine Convergence Plan + +Goal: keep the same daily capabilities and muscle memory across `jm-home-box`, +the personal MBP, and the Charlie Labs MBP while preserving machine/style +differences where they are intentional. + +## Branch Model + +- `fix/jm-home-box`: capture and normalize this Arch machine first. +- `fix/personal-mbp`: capture the personal MacBook Pro state. +- `fix/charlie-mbp`: capture the Charlie Labs MacBook Pro state. +- `feat/converge-three-machines`: merge the three inventories into a durable + shared model. + +The `fix/` branches are inventory and cleanup branches. They should not +become permanent configuration silos. + +## Configuration Model + +- `common/`: shared behavior and source-of-truth configs. +- `darwin/`: macOS package lists and platform adapters. +- `linux/`: Linux package lists and platform adapters. +- `machines//`: machine identity, role, and explicit deltas. +- `common/bin/`: executable commands shared by every shell. + +Interactive machines should converge on: + +- Kitty for terminal behavior. +- Zsh for the rich interactive shell. +- Bash as a minimal fallback for servers, containers, and recovery. +- Neovim as the editor target, with Vim kept as fallback. +- 1Password CLI/app integration for secrets and SSH where possible. + +## Copy Deployment + +Managed dotfiles should be copied into place, not symlinked. The repository +remains the source of truth, and drift is detected by comparing live files with +repo sources. + +Current workflow: + +```bash +make dotfiles-doctor +make dotfiles-dry-run +make dotfiles-backup +make dotfiles-install +make dotfiles-diff-live +``` + +`scripts/dotfiles.py` owns the copy-based workflow: + +- backs up managed live files before changes +- copies files into place +- writes `~/.local/share/dotfiles/install-manifest.json` +- reports changed, missing, or symlinked managed files +- checks expected local tools with `doctor` + +## jm-home-box State + +This machine is the first convergence branch. + +Done: + +- Added `machines/jm-home-box/machine.toml`. +- Converted managed live dotfiles from symlinks to real copied files. +- Added backup/install/diff/doctor tooling. +- Added Neovim phase-1 entrypoint that preserves the existing Vim config. +- Added guarded Tree-sitter config for Neovim. +- Fixed copied Linux Kitty theme include. +- Verified `dotfiles diff-live` is clean. + +Still expected locally: + +- Install `zsh`. +- Install `neovim`. +- Test Zsh before making it the login shell. +- Run Neovim plugin install and Tree-sitter setup after `nvim` exists. + +## MBP Capture Plan + +On each MBP: + +1. Create the matching `fix/` branch. +2. Add `machines//machine.toml`. +3. Capture package state: + `brew bundle dump --force --file machines//Brewfile.current`. +4. Capture current shell/editor/terminal state. +5. Run the copy workflow in dry-run mode first. +6. Compare differences against `fix/jm-home-box`. +7. Move shared behavior into `common/`; keep platform differences in `darwin/` + or `linux/`; keep identity differences in `machines//`. + +## Comparison Rules + +Classify every difference as one of: + +- shared behavior +- platform adapter +- machine identity +- style +- obsolete drift + +Only shared behavior belongs in `common/`. Machine identity should be explicit, +small, and documented. + diff --git a/linux/arch/ai-context/machine-state.md b/linux/arch/ai-context/machine-state.md new file mode 100644 index 0000000..7a4a63d --- /dev/null +++ b/linux/arch/ai-context/machine-state.md @@ -0,0 +1,55 @@ +# Machine State + +> Auto-generated by `refresh-machine-state.sh` +> Last updated: 2026-01-25T18:43:24-05:00 + +## System + +- **OS**: Linux 6.17.6-arch1-1 +- **Hostname**: jm-home-box +- **Architecture**: x86_64 + +## Shell + +- **Current shell**: /bin/bash +- **Bash**: GNU bash, version 5.3.9(1)-release (x86_64-pc-linux-gnu) +- **Zsh**: not installed + +## Languages + +| Language | Version | +|----------|---------| +| Rust | | +| Python | Python 3.14.2 | +| Node | v25.3.0 | +| Go | go version go1.25.6 X:nodwarf5 linux/amd64 | + +## Tools + +| Tool | Version | +|------|---------| +| Git | git version 2.52.0 | +| Docker | Docker version 29.1.4, build 0e6fee6c52 | +| kubectl | Client Version: v1.35.0 | +| Terraform | Terraform v1.14.3 | +| Neovim | not installed | + +## Packages + +- **Total installed**: 890 +- **Package manager**: pacman + +### Recently Installed + +``` +lib32-nettle +lib32-gnutls +lib32-libngtcp2 +vulkan-mesa-implicit-layers +lib32-vulkan-mesa-implicit-layers +lib32-libdisplay-info +libmakepkg-dropins +botan +libblockdev-smart +github-cli +``` diff --git a/linux/common/kitty.conf b/linux/common/kitty.conf index d5965dd..f7fb83f 100644 --- a/linux/common/kitty.conf +++ b/linux/common/kitty.conf @@ -2,7 +2,7 @@ # Linux-specific Kitty configuration # BEGIN_KITTY_THEME -include ../../common/themes/current-theme.conf +include current-theme.conf # END_KITTY_THEME font_family FiraCode Nerd Font @@ -44,4 +44,4 @@ map ctrl+shift+plus change_font_size all +1.0 map ctrl+shift+minus change_font_size all -1.0 map ctrl+shift+0 change_font_size all 0 map f11 toggle_fullscreen -map ctrl+shift+l clear_terminal to_cursor_scroll active \ No newline at end of file +map ctrl+shift+l clear_terminal to_cursor_scroll active diff --git a/machines/jm-home-box/machine.toml b/machines/jm-home-box/machine.toml new file mode 100644 index 0000000..b312cf4 --- /dev/null +++ b/machines/jm-home-box/machine.toml @@ -0,0 +1,28 @@ +name = "jm-home-box" +profile = "personal" +os = "arch" +shell = "zsh" +terminal = "kitty" +editor = "nvim" +style = "personal-pink" +sshd = true + +[paths] +workspace = "~/workspace" + +[packages] +pacman = [ + "bash", + "fzf", + "git", + "kitty", + "neovim", + "openssh", + "python", + "ripgrep", + "zsh", +] +aur = [ + "1password", + "1password-cli", +] diff --git a/scripts/dotfiles.py b/scripts/dotfiles.py new file mode 100755 index 0000000..6825210 --- /dev/null +++ b/scripts/dotfiles.py @@ -0,0 +1,299 @@ +#!/usr/bin/env python3 +"""Copy-based dotfiles installer, backup, drift checker, and doctor.""" + +from __future__ import annotations + +import argparse +import datetime as dt +import filecmp +import hashlib +import json +import os +import platform +import shutil +import subprocess +import sys +import tomllib +from dataclasses import dataclass +from pathlib import Path + + +REPO = Path(__file__).resolve().parents[1] +HOME = Path.home() +STATE_DIR = HOME / ".local" / "share" / "dotfiles" +MANIFEST = STATE_DIR / "install-manifest.json" + + +@dataclass(frozen=True) +class ManagedFile: + source: Path + target: Path + label: str + + +def rel(path: Path) -> str: + try: + return str(path.relative_to(REPO)) + except ValueError: + return str(path) + + +def sha256(path: Path) -> str: + digest = hashlib.sha256() + with path.open("rb") as handle: + for chunk in iter(lambda: handle.read(1024 * 1024), b""): + digest.update(chunk) + return digest.hexdigest() + + +def load_machine(name: str | None) -> tuple[str, dict]: + machine = name or platform.node().split(".")[0] + path = REPO / "machines" / machine / "machine.toml" + if not path.exists(): + raise SystemExit(f"No machine profile found at {rel(path)}") + with path.open("rb") as handle: + return machine, tomllib.load(handle) + + +def add_file(entries: list[ManagedFile], source: str, target: str, label: str) -> None: + src = REPO / source + if not src.exists(): + raise SystemExit(f"Managed source is missing: {rel(src)}") + entries.append(ManagedFile(src, Path(target).expanduser(), label)) + + +def add_glob(entries: list[ManagedFile], source_glob: str, target_dir: str, label: str) -> None: + matches = sorted(REPO.glob(source_glob)) + if not matches: + raise SystemExit(f"Managed source glob matched nothing: {source_glob}") + dest = Path(target_dir).expanduser() + for src in matches: + if src.is_file(): + entries.append(ManagedFile(src, dest / src.name, label)) + + +def managed_files(machine: dict) -> list[ManagedFile]: + os_name = machine.get("os") + entries: list[ManagedFile] = [] + + add_file(entries, "common/shell/.zshrc", "~/.zshrc", "shell") + add_file(entries, "common/shell/.bashrc", "~/.bashrc", "shell") + add_file(entries, "common/shell/.bash_profile", "~/.bash_profile", "shell") + add_file(entries, "common/shell/.gnu_aliases", "~/.gnu_aliases", "shell") + add_file(entries, "common/shell/.dircolors", "~/.dircolors", "shell") + + add_file(entries, "common/git/.gitconfig", "~/.gitconfig", "git") + add_file(entries, "common/git/.gitignore_global", "~/.config/git/ignore", "git") + + add_glob(entries, "common/shell-functions/*.sh", "~/.config/shell-functions", "shell-functions") + + if os_name == "darwin": + add_file(entries, "darwin/kitty.conf", "~/.config/kitty/kitty.conf", "kitty") + else: + add_file(entries, "linux/common/kitty.conf", "~/.config/kitty/kitty.conf", "kitty") + add_glob(entries, "common/themes/*.conf", "~/.config/kitty", "kitty") + + add_file(entries, "common/htop/htoprc", "~/.config/htop/htoprc", "htop") + + add_file(entries, ".vim/vimrc", "~/.vim/vimrc", "vim") + add_file(entries, ".vim/plugins.vim", "~/.vim/plugins.vim", "vim") + add_file(entries, ".vim/mappings.vim", "~/.vim/mappings.vim", "vim") + add_file(entries, ".vim/settings.vim", "~/.vim/settings.vim", "vim") + add_file(entries, ".vim/coc-settings.json", "~/.vim/coc-settings.json", "vim") + add_glob(entries, ".vim/settings/*.vim", "~/.vim/settings", "vim") + + add_file(entries, "common/nvim/init.vim", "~/.config/nvim/init.vim", "nvim") + add_file(entries, "common/bin/dotfiles", "~/.local/bin/dotfiles", "bin") + + return entries + + +def backup_root() -> Path: + stamp = dt.datetime.now().strftime("%Y%m%d_%H%M%S") + return HOME / ".dotfiles-backups" / stamp + + +def backup_target(target: Path, root: Path, *, dry_run: bool) -> None: + if not target.exists() and not target.is_symlink(): + return + try: + relative = target.relative_to(HOME) + except ValueError: + relative = Path(target.name) + dest = root / relative + print(f"backup {target} -> {dest}") + if dry_run: + return + dest.parent.mkdir(parents=True, exist_ok=True) + if target.is_symlink(): + link_target = os.readlink(target) + symlink_record = dest.with_name(f"{dest.name}.symlink") + symlink_record.write_text(f"symlink -> {link_target}\n", encoding="utf-8") + if target.exists() and target.is_file(): + shutil.copy2(target, dest) + else: + shutil.copy2(target, dest) + + +def command_backup(args: argparse.Namespace) -> int: + _, machine = load_machine(args.machine) + root = Path(args.output).expanduser() if args.output else backup_root() + for entry in managed_files(machine): + backup_target(entry.target, root, dry_run=args.dry_run) + if not args.dry_run: + print(f"backup saved to {root}") + return 0 + + +def copy_entry(entry: ManagedFile, backup_dir: Path, *, dry_run: bool) -> dict: + changed = True + if entry.target.is_symlink(): + changed = True + elif entry.target.exists() and entry.target.is_file(): + changed = not filecmp.cmp(entry.source, entry.target, shallow=False) + + action = "copy" + if not changed: + action = "unchanged" + print(f"{action} {rel(entry.source)} -> {entry.target}") + + if dry_run or not changed: + return manifest_entry(entry, copied=not dry_run and not changed) + + backup_target(entry.target, backup_dir, dry_run=False) + entry.target.parent.mkdir(parents=True, exist_ok=True) + if entry.target.is_symlink(): + entry.target.unlink() + shutil.copy2(entry.source, entry.target) + return manifest_entry(entry, copied=True) + + +def manifest_entry(entry: ManagedFile, *, copied: bool) -> dict: + data = { + "source": rel(entry.source), + "target": str(entry.target), + "label": entry.label, + "source_sha256": sha256(entry.source), + "copied": copied, + } + if entry.target.exists() and entry.target.is_file(): + data["target_sha256"] = sha256(entry.target) + return data + + +def command_install(args: argparse.Namespace) -> int: + machine_name, machine = load_machine(args.machine) + entries = managed_files(machine) + backup_dir = backup_root() + manifest = { + "machine": machine_name, + "installed_at": dt.datetime.now(dt.UTC).isoformat(), + "repo": str(REPO), + "files": [], + } + for entry in entries: + manifest["files"].append(copy_entry(entry, backup_dir, dry_run=args.dry_run)) + + if args.dry_run: + print("dry run only; no files copied") + return 0 + + STATE_DIR.mkdir(parents=True, exist_ok=True) + MANIFEST.write_text(json.dumps(manifest, indent=2) + "\n", encoding="utf-8") + print(f"manifest written to {MANIFEST}") + return 0 + + +def command_diff_live(args: argparse.Namespace) -> int: + _, machine = load_machine(args.machine) + changed = 0 + missing = 0 + for entry in managed_files(machine): + if not entry.target.exists(): + print(f"missing {entry.target} <- {rel(entry.source)}") + missing += 1 + elif entry.target.is_symlink(): + print(f"symlink {entry.target} <- {rel(entry.source)}") + changed += 1 + elif not filecmp.cmp(entry.source, entry.target, shallow=False): + print(f"changed {entry.target} <- {rel(entry.source)}") + changed += 1 + if changed or missing: + print(f"{changed} changed, {missing} missing") + return 1 + print("managed files match repo sources") + return 0 + + +def command_manifest(args: argparse.Namespace) -> int: + if not MANIFEST.exists(): + print(f"no manifest found at {MANIFEST}") + return 1 + print(MANIFEST.read_text(encoding="utf-8"), end="") + return 0 + + +def has_command(command: str) -> bool: + return shutil.which(command) is not None + + +def command_doctor(args: argparse.Namespace) -> int: + machine_name, machine = load_machine(args.machine) + required = ["python3", "git", "kitty", "rg", "fzf"] + preferred = [machine.get("shell", "zsh"), machine.get("editor", "nvim"), "op"] + if machine.get("sshd"): + preferred.append("sshd") + + print(f"machine: {machine_name}") + print(f"profile: {machine.get('profile', 'unknown')}") + failures = 0 + + for command in required: + status = "ok" if has_command(command) else "missing" + print(f"required {command}: {status}") + failures += status == "missing" + + for command in preferred: + status = "ok" if has_command(command) else "missing" + print(f"preferred {command}: {status}") + + if failures: + print(f"doctor found {failures} missing required tool(s)") + return 1 + return 0 + + +def build_parser() -> argparse.ArgumentParser: + parser = argparse.ArgumentParser(prog="dotfiles") + parser.add_argument("--machine", help="machine profile name; defaults to hostname") + sub = parser.add_subparsers(dest="command", required=True) + + backup = sub.add_parser("backup", help="backup managed live files") + backup.add_argument("--dry-run", action="store_true") + backup.add_argument("--output", help="backup directory") + backup.set_defaults(func=command_backup) + + install = sub.add_parser("install", help="copy managed files into place") + install.add_argument("--dry-run", action="store_true") + install.set_defaults(func=command_install) + + diff_live = sub.add_parser("diff-live", help="compare live managed files to repo") + diff_live.set_defaults(func=command_diff_live) + + manifest = sub.add_parser("manifest", help="print last install manifest") + manifest.set_defaults(func=command_manifest) + + doctor = sub.add_parser("doctor", help="check this machine for expected tools") + doctor.set_defaults(func=command_doctor) + + return parser + + +def main(argv: list[str] | None = None) -> int: + parser = build_parser() + args = parser.parse_args(argv) + return args.func(args) + + +if __name__ == "__main__": + raise SystemExit(main()) From 267d15f6785dc6ed0990deff5ccf2bb01a477011 Mon Sep 17 00:00:00 2001 From: Jean-Michel Bouchard Date: Thu, 21 May 2026 17:40:20 -0400 Subject: [PATCH 04/32] Sync dotfiles from personal laptop --- .config/cursor/cursor-rules.yaml | 51 -- .config/cursor/generated/tools.yaml | 3 - .cursor/cursor-rules.yaml | 29 ++ .dircolors | 745 ++-------------------------- .gitconfig | 60 +++ .tmux.conf | 213 -------- .vim/settings/ui-features.vim | 162 ++++++ .zshrc | 65 ++- common/git/.gitconfig | 4 +- common/shell/.zshrc | 7 + common/ssh/config | 39 +- config/kitty.conf.bak | 2 +- darwin/Brewfile | 29 +- git/.gitconfig | 62 ++- shell/.gnu_aliases | 32 +- shell/.zshrc | 63 ++- 16 files changed, 501 insertions(+), 1065 deletions(-) delete mode 100644 .config/cursor/cursor-rules.yaml delete mode 100644 .config/cursor/generated/tools.yaml create mode 100644 .cursor/cursor-rules.yaml delete mode 100644 .tmux.conf create mode 100644 .vim/settings/ui-features.vim diff --git a/.config/cursor/cursor-rules.yaml b/.config/cursor/cursor-rules.yaml deleted file mode 100644 index ca229e7..0000000 --- a/.config/cursor/cursor-rules.yaml +++ /dev/null @@ -1,51 +0,0 @@ -# Global preferences for Cursor editor -preferences: - telemetry: false - autoUpdate: true - -include: - - ~/.config/cursor/generated/tools.yaml - -# Preferred languages and frameworks -languages: - preferred: - - rust - - python - - typescript - optional: - - bash - tags: - rust: - - backend - - systems - python: - - backend - - scripting - typescript: - - frontend - -frontend_frameworks: - - next.js (typescript) - - react native - -backend_frameworks: - - flask (python) - - actix-web (rust) - -project_structure: - source_dir: src - test_dir: tests - infra_dirs: - docker: docker/ - optional: - k8s: k8s/ - terraform: infra/terraform/ - doc_dirs: - design_docs: architecture/ - markdown: project/ - prefers_monorepo: false - prefers_submodules: true - -scaffolding: - tool: kickstart - config_path: ~/.config/kickstart/config.yaml diff --git a/.config/cursor/generated/tools.yaml b/.config/cursor/generated/tools.yaml deleted file mode 100644 index f740df2..0000000 --- a/.config/cursor/generated/tools.yaml +++ /dev/null @@ -1,3 +0,0 @@ -# Placeholder for tool configuration generated by automation -# This file will be overwritten automatically. -tools: [] diff --git a/.cursor/cursor-rules.yaml b/.cursor/cursor-rules.yaml new file mode 100644 index 0000000..2188253 --- /dev/null +++ b/.cursor/cursor-rules.yaml @@ -0,0 +1,29 @@ +#include: + #- ~/.cursor/generated/tools.yaml + +languages: + preferred: + - rust + - python + - typescript + +frontend_frameworks: + - next.js (typescript) + - react native + +backend_frameworks: + - flask (python) + - actix-web (rust) + +project_structure: + source_dir: src + test_dir: tests + infra_dirs: + docker: docker/ + k8s: k8s/ + terraform: infra/terraform/ + doc_dirs: + design_docs: architecture/ + markdown: project/ + prefers_monorepo: false + prefers_submodules: true diff --git a/.dircolors b/.dircolors index fe2240c..a20008b 100644 --- a/.dircolors +++ b/.dircolors @@ -1,713 +1,32 @@ -# core {{{1 -BLK 38;5;68 -CAPABILITY 38;5;17 -CHR 38;5;113;1 -DIR 38;5;1 -DOOR 38;5;127 -EXEC 35;5;210 -FIFO 38;5;126 -FILE 0 -LINK target -MULTIHARDLINK 38;5;222;1 -NORMAL 0 -ORPHAN 48;5;196;38;5;232;1 -OTHER_WRITABLE 38;5;220;1 -SETGID 48;5;3;38;5;0 -SETUID 38;5;220;1;3;100;1 -SOCK 38;5;197 -STICKY 38;5;86;48;5;234 -STICKY_OTHER_WRITABLE 48;5;235;38;5;139;3 - -*LS_COLORS 38;5;89;38;5;197;1;3;4;7 # :-) -# }}} -# documents {{{1 -*README 38;5;220;1 -*README.rst 38;5;220;1 -*README.md 38;5;220;1 -*LICENSE 38;5;220;1 -*COPYING 38;5;220;1 -*INSTALL 38;5;220;1 -*COPYRIGHT 38;5;220;1 -*AUTHORS 38;5;220;1 -*HISTORY 38;5;220;1 -*CONTRIBUTORS 38;5;220;1 -*PATENTS 38;5;220;1 -*VERSION 38;5;220;1 -*NOTICE 38;5;220;1 -*CHANGES 38;5;220;1 -.log 38;5;190 -# plain-text {{{2 -.txt 38;5;253 -# markup {{{2 -.etx 38;5;184 -.info 38;5;184 -.markdown 38;5;184 -.md 38;5;184 -.mkd 38;5;184 -.nfo 38;5;184 -.pod 38;5;184 -.rst 38;5;184 -.tex 38;5;184 -.textile 38;5;184 -# key-value, non-relational data {{{2 -.bib 38;5;178 -.json 38;5;178 -.msg 38;5;178 -.pgn 38;5;178 -.rss 38;5;178 -.xml 38;5;178 -.yaml 38;5;178 -.yml 38;5;178 -.RData 38;5;178 -.rdata 38;5;178 -# }}} -# binary {{{2 -.cbr 38;5;141 -.cbz 38;5;141 -.chm 38;5;141 -.djvu 38;5;141 -.pdf 38;5;141 -.PDF 38;5;141 -.mobi 38;5;141 -.epub 38;5;141 -# words {{{3 -.docm 38;5;111;4 -.doc 38;5;111 -.docx 38;5;111 -.eps 38;5;111 -.ps 38;5;111 -.odb 38;5;111 -.odt 38;5;111 -.rtf 38;5;111 -# presentation {{{3 -.odp 38;5;166 -.pps 38;5;166 -.ppt 38;5;166 -.pptx 38;5;166 -# Powerpoint show -.ppts 38;5;166 -# Powerpoint with enabled macros -.pptxm 38;5;166;4 -# Powerpoint show with enabled macros -.pptsm 38;5;166;4 -# spreadsheet {{{3 -.csv 38;5;78 -# Open document spreadsheet -.ods 38;5;112 -.xla 38;5;76 -# Excel spreadsheet -.xls 38;5;112 -.xlsx 38;5;112 -# Excel spreadsheet with macros -.xlsxm 38;5;112;4 -# Excel module -.xltm 38;5;73;4 -.xltx 38;5;73 -# }}} -# }}} -# configs {{{2 -*cfg 1 -*conf 1 -*rc 1 -.ini 1 -.plist 1 -# vim -.viminfo 1 -# cisco VPN client configuration -.pcf 1 -# }}} -# }}} -# code {{{1 -# version control {{{2 -.git 38;5;197 -.gitignore 38;5;240 -.gitattributes 38;5;240 -.gitmodules 38;5;240 - -# shell {{{2 -.awk 38;5;172 -.bash 38;5;172 -.sed 38;5;172 -.sh 38;5;172 -.zsh 38;5;172 -.vim 38;5;172 - -# interpreted {{{2 -.ahk 38;5;41 -# python -.py 38;5;41 -.ipynb 38;5;41 -# ruby -.rb 38;5;41 -.gemspec 38;5;41 -# perl -.pl 38;5;208 -.PL 38;5;160 -.t 38;5;114 -# sql -.msql 38;5;222 -.mysql 38;5;222 -.pgsql 38;5;222 -.sql 38;5;222 -# Tool Command Language -.tcl 38;5;64;1 -# R language -.r 38;5;49 -.R 38;5;49 -# GrADS script -.gs 38;5;81 -# Clojure -.clj 38;5;41 -.cljs 38;5;41 -.cljc 38;5;41 -# Clojure gorilla REPL worksheet -.cljw 38;5;41 -# Scala -.scala 38;5;41 -# Dart -.dart 38;5;51 - -# compiled {{{2 -# -# assembly language -.asm 38;5;81 -# LISP -.cl 38;5;81 -.lisp 38;5;81 -# lua -.lua 38;5;81 -# Moonscript -.moon 38;5;81 -# C -.c 38;5;81 -.C 38;5;81 -.h 38;5;110 -.H 38;5;110 -.tcc 38;5;110 -# C++ -.c++ 38;5;81 -.h++ 38;5;110 -.hpp 38;5;110 -.hxx 38;5;110 -.ii 38;5;110 -# method file for Objective C -.M 38;5;110 -.m 38;5;110 -# Csharp -.cc 38;5;81 -.cs 38;5;81 -.cp 38;5;81 -.cpp 38;5;81 -.cxx 38;5;81 -# Crystal -.cr 38;5;81 -# Google golang -.go 38;5;81 -# fortran -.f 38;5;81 -.F 38;5;81 -.for 38;5;81 -.ftn 38;5;81 -.f90 38;5;81 -.F90 38;5;81 -.f95 38;5;81 -.F95 38;5;81 -.f03 38;5;81 -.F03 38;5;81 -.f08 38;5;81 -.F08 38;5;81 -# Nim -.nim 38;5;81 -.nimble 38;5;81 -# pascal -.s 38;5;110 -.S 38;5;110 -# Rust -.rs 38;5;81 -# Swift -.swift 38;5;219 -# ? -.sx 38;5;81 -# Vala -.vala 38;5;81 -.vapi 38;5;81 -# interface file in GHC - https://github.com/trapd00r/LS_COLORS/pull/9 -.hi 38;5;110 -# haskell -.hs 38;5;81 -.lhs 38;5;81 - -# binaries {{{2 -# compiled apps for interpreted languages -.pyc 38;5;240 -# }}} -# orchestration {{{2 -.tf 38;5;168 -.tfstate 38;5;168 -.tfvars 38;5;168 -# orchestration 2}}} -# html {{{2 -.css 38;5;125;1 -.less 38;5;125;1 -.sass 38;5;125;1 -.scss 38;5;125;1 -.htm 38;5;125;1 -.html 38;5;125;1 -.jhtm 38;5;125;1 -.mht 38;5;125;1 -.eml 38;5;125;1 -.mustache 38;5;125;1 -# }}} -# java {{{2 -.coffee 38;5;074;1 -.java 38;5;074;1 -.js 38;5;074;1 -.mjs 38;5;074;1 -.jsm 38;5;074;1 -.jsm 38;5;074;1 -.jsp 38;5;074;1 -# }}} -# php {{{2 -.php 38;5;81 -# CakePHP view scripts and helpers -.ctp 38;5;81 -# Twig template engine -.twig 38;5;81 -# }}} -# vb/a {{{2 -.vb 38;5;81 -.vba 38;5;81 -.vbs 38;5;81 -# 2}}} -# Build stuff {{{2 -*Dockerfile 38;5;155 -.dockerignore 38;5;240 -*Makefile 38;5;155 -*MANIFEST 38;5;243 -*pm_to_blib 38;5;240 -# ruby rake -.rake 38;5;155 -# automake -.am 38;5;242 -.in 38;5;242 -.hin 38;5;242 -.scan 38;5;242 -.m4 38;5;242 -.old 38;5;242 -.out 38;5;242 -.SKIP 38;5;244 -# }}} -# patch files {{{2 -.diff 48;5;197;38;5;232 -.patch 48;5;197;38;5;232;1 -#}}} -# graphics {{{1 -.bmp 38;5;97 -.tiff 38;5;97 -.tif 38;5;97 -.TIFF 38;5;97 -.cdr 38;5;97 -.flif 38;5;97 -.gif 38;5;97 -.ico 38;5;97 -.jpeg 38;5;97 -.JPG 38;5;97 -.jpg 38;5;97 -.nth 38;5;97 -.png 38;5;97 -.psd 38;5;97 -.xpm 38;5;97 -.webp 38;5;97 -# }}} -# vector {{{1 -.ai 38;5;99 -.eps 38;5;99 -.epsf 38;5;99 -.drw 38;5;99 -.ps 38;5;99 -.svg 38;5;99 -# }}} -# video {{{1 -.avi 38;5;114 -.divx 38;5;114 -.IFO 38;5;114 -.m2v 38;5;114 -.m4v 38;5;114 -.mkv 38;5;114 -.MOV 38;5;114 -.mov 38;5;114 -.mp4 38;5;114 -.mpeg 38;5;114 -.mpg 38;5;114 -.ogm 38;5;114 -.rmvb 38;5;114 -.sample 38;5;114 -.wmv 38;5;114 - # mobile/streaming {{{2 -.3g2 38;5;115 -.3gp 38;5;115 -.gp3 38;5;115 -.webm 38;5;115 -.gp4 38;5;115 -.asf 38;5;115 -.flv 38;5;115 -.ts 38;5;115 -.ogv 38;5;115 -.f4v 38;5;115 - # }}} - # lossless {{{2 -.VOB 38;5;115;1 -.vob 38;5;115;1 -# }}} -# audio {{{1 -.3ga 38;5;137;1 -.S3M 38;5;137;1 -.aac 38;5;137;1 -.au 38;5;137;1 -.dat 38;5;137;1 -.dts 38;5;137;1 -.fcm 38;5;137;1 -.m4a 38;5;137;1 -.mid 38;5;137;1 -.midi 38;5;137;1 -.mod 38;5;137;1 -.mp3 38;5;137;1 -.mp4a 38;5;137;1 -.oga 38;5;137;1 -.ogg 38;5;137;1 -.opus 38;5;137;1 -.s3m 38;5;137;1 -.sid 38;5;137;1 -.wma 38;5;137;1 -# lossless -.ape 38;5;136;1 -.aiff 38;5;136;1 -.cda 38;5;136;1 -.flac 38;5;136;1 -.alac 38;5;136;1 -.midi 38;5;136;1 -.pcm 38;5;136;1 -.wav 38;5;136;1 -.wv 38;5;136;1 -.wvc 38;5;136;1 - -# }}} -# fonts {{{1 -.afm 38;5;66 -.fon 38;5;66 -.fnt 38;5;66 -.pfb 38;5;66 -.pfm 38;5;66 -.ttf 38;5;66 -.otf 38;5;66 -# postscript fonts -.PFA 38;5;66 -.pfa 38;5;66 -# }}} -# archives {{{1 -.7z 38;5;40 -.a 38;5;40 -.arj 38;5;40 -.bz2 38;5;40 -.cpio 38;5;40 -.gz 38;5;40 -.lrz 38;5;40 -.lz 38;5;40 -.lzma 38;5;40 -.lzo 38;5;40 -.rar 38;5;40 -.s7z 38;5;40 -.sz 38;5;40 -.tar 38;5;40 -.tgz 38;5;40 -.xz 38;5;40 -.z 38;5;40 -.Z 38;5;40 -.zip 38;5;40 -.zipx 38;5;40 -.zoo 38;5;40 -.zpaq 38;5;40 -.zz 38;5;40 - # packaged apps {{{2 -.apk 38;5;215 -.deb 38;5;215 -.rpm 38;5;215 -.jad 38;5;215 -.jar 38;5;215 -.cab 38;5;215 -.pak 38;5;215 -.pk3 38;5;215 -.vdf 38;5;215 -.vpk 38;5;215 -.bsp 38;5;215 -.dmg 38;5;215 - # }}} - # segments from 0 to three digits after first extension letter {{{2 -.r[0-9]{0,2} 38;5;239 -.zx[0-9]{0,2} 38;5;239 -.z[0-9]{0,2} 38;5;239 -# partial files -.part 38;5;239 - # }}} -# partition images {{{2 -.dmg 38;5;124 -.iso 38;5;124 -.bin 38;5;124 -.nrg 38;5;124 -.qcow 38;5;124 -.sparseimage 38;5;124 -.toast 38;5;124 -.vcd 38;5;124 -.vmdk 38;5;124 -# }}} -# databases {{{2 -.accdb 38;5;60 -.accde 38;5;60 -.accdr 38;5;60 -.accdt 38;5;60 -.db 38;5;60 -.fmp12 38;5;60 -.fp7 38;5;60 -.localstorage 38;5;60 -.mdb 38;5;60 -.mde 38;5;60 -.sqlite 38;5;60 -.typelib 38;5;60 -# NetCDF database -.nc 38;5;60 -# }}} -# tempfiles {{{1 -# undo files -.pacnew 38;5;33 -.un~ 38;5;241 -.orig 38;5;241 -# backups -.BUP 38;5;241 -.bak 38;5;241 -.o 38;5;241 # *nix Object file (shared libraries, core dumps etc) -*core 38;5;241 # Linux user core dump file (from /proc/sys/kernel/core_pattern) -.rlib 38;5;241 # Static rust library -# temporary files -.swp 38;5;244 -.swo 38;5;244 -.tmp 38;5;244 -.sassc 38;5;244 -# state files -.pid 38;5;248 -.state 38;5;248 -*lockfile 38;5;248 -*lock 38;5;248 -# error logs -.err 38;5;160;1 -.error 38;5;160;1 -.stderr 38;5;160;1 -# state dumps -.aria2 38;5;241 -.dump 38;5;241 -.stackdump 38;5;241 -.zcompdump 38;5;241 -.zwc 38;5;241 -# tcpdump, network traffic capture -.pcap 38;5;29 -.cap 38;5;29 -.dmp 38;5;29 -# macOS -.DS_Store 38;5;239 -.localized 38;5;239 -.CFUserTextEncoding 38;5;239 -# }}} -# hosts {{{1 -# /etc/hosts.{deny,allow} -.allow 38;5;112 -.deny 38;5;196 -# }}} -# systemd {{{1 -# http://www.freedesktop.org/software/systemd/man/systemd.unit.html -.service 38;5;45 -*@.service 38;5;45 -.socket 38;5;45 -.swap 38;5;45 -.device 38;5;45 -.mount 38;5;45 -.automount 38;5;45 -.target 38;5;45 -.path 38;5;45 -.timer 38;5;45 -.snapshot 38;5;45 -# }}} -# metadata {{{1 -.application 38;5;116 -.cue 38;5;116 -.description 38;5;116 -.directory 38;5;116 -.m3u 38;5;116 -.m3u8 38;5;116 -.md5 38;5;116 -.properties 38;5;116 -.sfv 38;5;116 -.srt 38;5;116 -.sub 38;5;116 -.theme 38;5;116 -.torrent 38;5;116 -.urlview 38;5;116 -# }}} -# encrypted data {{{1 -.asc 38;5;192;3 -.bfe 38;5;192;3 -.enc 38;5;192;3 -.gpg 38;5;192;3 -.signature 38;5;192;3 -.sig 38;5;192;3 -.p12 38;5;192;3 -.pem 38;5;192;3 -.pgp 38;5;192;3 -.asc 38;5;192;3 -.enc 38;5;192;3 -.sig 38;5;192;3 -.p7s 38;5;192;3 -# 1}}} -# emulators {{{1 -.32x 38;5;213 -.cdi 38;5;213 -.fm2 38;5;213 -.rom 38;5;213 -.sav 38;5;213 -.st 38;5;213 - # atari -.a00 38;5;213 -.a52 38;5;213 -.A64 38;5;213 -.a64 38;5;213 -.a78 38;5;213 -.adf 38;5;213 -.atr 38;5;213 - # nintendo -.gb 38;5;213 -.gba 38;5;213 -.gbc 38;5;213 -.gel 38;5;213 -.gg 38;5;213 -.ggl 38;5;213 -.ipk 38;5;213 # Nintendo (DS Packed Images) -.j64 38;5;213 -.nds 38;5;213 -.nes 38;5;213 - # Sega -.sms 38;5;213 -# }}} -# unsorted {{{1 -# -# Portable Object Translation for GNU Gettext -.pot 38;5;7 -# CAD files for printed circuit boards -.pcb 38;5;7 -# groff (rendering app for texinfo) -.mm 38;5;7 -# perldoc -.pod 38;5;7 -# GIMP files -.gbr 38;5;7 -.scm 38;5;7 -.xcf 38;5;7 -# printer spool file -.spl 38;5;7 -# RStudio project file -.Rproj 38;5;11 -# Nokia Symbian OS files -.sis 38;5;7 - -.1p 38;5;7 -.3p 38;5;7 -.cnc 38;5;7 -.def 38;5;7 -.ex 38;5;7 -.example 38;5;7 -.feature 38;5;7 -.ger 38;5;7 -.map 38;5;7 -.mf 38;5;7 -.mfasl 38;5;7 -.mi 38;5;7 -.mtx 38;5;7 -.pc 38;5;7 -.pi 38;5;7 -.plt 38;5;7 -.pm 38;5;7 -.rdf 38;5;7 -.ru 38;5;7 -.sch 38;5;7 -.sty 38;5;7 -.sug 38;5;7 -.t 38;5;7 -.tdy 38;5;7 -.tfm 38;5;7 -.tfnt 38;5;7 -.tg 38;5;7 -.vcard 38;5;7 -.vcf 38;5;7 -.xln 38;5;7 -# AppCode files -.iml 38;5;166 -# Xcode files -.xcconfig 1 -.entitlements 1 -.strings 1 -.storyboard 38;5;196 -.xcsettings 1 -.xib 38;5;208 -# }}} -# termcap {{{1 -TERM ansi -TERM color-xterm -TERM con132x25 -TERM con132x30 -TERM con132x43 -TERM con132x60 -TERM con80x25 -TERM con80x28 -TERM con80x30 -TERM con80x43 -TERM con80x50 -TERM con80x60 -TERM cons25 -TERM console -TERM cygwin -TERM dtterm -TERM Eterm -TERM eterm-color -TERM gnome -TERM gnome-256color -TERM jfbterm -TERM konsole -TERM kterm -TERM linux -TERM linux-c -TERM mach-color -TERM mlterm -TERM putty -TERM rxvt -TERM rxvt-256color -TERM rxvt-cygwin -TERM rxvt-cygwin-native -TERM rxvt-unicode -TERM rxvt-unicode-256color -TERM rxvt-unicode256 -TERM screen -TERM screen-256color -TERM screen-256color-bce -TERM screen-bce -TERM screen-w -TERM screen.linux -TERM screen.rxvt -TERM terminator -TERM vt100 -TERM xterm -TERM xterm-16color -TERM xterm-256color -TERM xterm-88color -TERM xterm-color -TERM xterm-debian -TERM xterm-kitty -# }}} - -# vim: ft=dircolors:fdm=marker:et:sw=2: +# ~/.catppuccin-mocho.dircolors + +# File types +di 38;5;117 # directory = sky blue +ln 38;5;153 # symlink = lavender +so 38;5;217 # socket = flamingo +pi 38;5;229 # pipe = yellow +ex 38;5;114 # executable = green +bd 38;5;174 # block special = maroon +cd 38;5;174 # character special = maroon +su 38;5;204 # setuid file = red +sg 38;5;204 # setgid file = red +tw 38;5;204 # sticky other writable = red +ow 38;5;204 # other writable = red +st 38;5;204 # sticky = red +mi 38;5;204 # missing file = red +or 38;5;204 # orphaned symlink = red + +# Extensions +*.rs 38;5;153 # Rust files = lavender +*.py 38;5;153 # Python files = lavender +*.sh 38;5;114 # Shell scripts = green +*.toml 38;5;229 # TOML = yellow +*.yaml 38;5;229 # YAML = yellow +*.yml 38;5;229 # YAML = yellow +*.md 38;5;218 # Markdown = pink +*.txt 38;5;218 # Text = pink +*.log 38;5;229 # Logs = yellow +*.json 38;5;229 # JSON = yellow + +# Special cases +Makefile 38;5;216 \ No newline at end of file diff --git a/.gitconfig b/.gitconfig index 30a4f90..897b160 100644 --- a/.gitconfig +++ b/.gitconfig @@ -17,3 +17,63 @@ up = !git submodule update --init && git st submodules-to-master = submodule foreach "git fetch && git checkout master && git rebase" + + # Fuzzy branch checkout with fallback + ch = "!f() { \ + if command -v fzf >/dev/null 2>&1; then \ + git branch --sort=-committerdate | sed 's/^..//' | \ + fzf --prompt='Checkout branch > ' \ + --height=40% \ + --layout=reverse \ + --border \ + --preview='git log --oneline --color=always -10 {}' | \ + xargs -r git checkout; \ + else \ + echo 'Available branches:'; \ + git branch --sort=-committerdate; \ + echo; \ + read -p 'Enter branch name to checkout: ' branch; \ + if [ -n \"$branch\" ]; then git checkout \"$branch\"; fi; \ + fi; \ + }; f" + + # Fuzzy log viewer - interactive log browser + flog = "!f() { \ + if command -v fzf >/dev/null 2>&1; then \ + git log --oneline --color=always | \ + fzf --ansi \ + --preview='git show --color=always {1}' \ + --preview-window=right:60%:wrap \ + --bind='enter:execute(git show {1} | less -R)' \ + --header='Press ENTER to view commit details'; \ + else \ + git log --oneline -20; \ + fi; \ + }; f" + + # Fuzzy add - select files to stage + fadd = "!f() { \ + if command -v fzf >/dev/null 2>&1; then \ + git status --porcelain | \ + fzf -m \ + --preview='if [[ {1} == \"??\" ]]; then bat --color=always {2} 2>/dev/null || cat {2}; else git diff --color=always {2}; fi' \ + --preview-window=right:60%:wrap \ + --header='Select files to add (TAB to multi-select)' | \ + awk '{print $2}' | xargs -r git add; \ + else \ + git add -i; \ + fi; \ + }; f" + + # Alternative: git log with fuzzy search through commits + llog = "!f() { \ + if command -v fzf >/dev/null 2>&1; then \ + git log --pretty=format:'%h %s (%cr) <%an>' --abbrev-commit | \ + fzf --preview='git show --color=always {1}' \ + --preview-window=right:60%:wrap; \ + else \ + git log --oneline; \ + fi; \ + }; f" +[url "git@github.com:"] + insteadOf = https://github.com/ diff --git a/.tmux.conf b/.tmux.conf deleted file mode 100644 index a952ebb..0000000 --- a/.tmux.conf +++ /dev/null @@ -1,213 +0,0 @@ -# Set prefix key to c-f instead of default c-b -unbind C-b -set -g prefix C-f -bind C-f send-prefix - -# toogle last window by hitting again C-f -bind-key C-f last-window - -# if multiple clients are attached to the same window, maximize it to the -# bigger one -set-window-option -g aggressive-resize - -# Start windows and pane numbering with index 1 instead of 0 -set -g base-index 1 -setw -g pane-base-index 1 - -# re-number windows when one is closed -set -g renumber-windows on - -# word separators for automatic word selection -setw -g word-separators ' @"=()[]_-:,.' -setw -ag word-separators "'" - -# Show times longer than supposed -set -g display-panes-time 2000 - -# tmux messages are displayed for 4 seconds -set -g display-time 4000 - -# Split horiziontal and vertical splits, instead of % and " -# Also open them in the same directory -bind-key v split-window -h -c '#{pane_current_path}' -bind-key s split-window -v -c '#{pane_current_path}' - -# Pressing Ctrl+Shift+Left (will move the current window to the left. Similarly -# right. No need to use the modifier (C-b). -#bind-key -n C-S-Left swap-window -t -1 -#bind-key -n C-S-Right swap-window -t +1 - -bind-key -n C-S-Left swap-window -t -1 -bind-key -n C-S-Right swap-window -t +1 - -# Source file -unbind r -bind r source-file ~/.tmux.conf \; display "Reloaded!" - -# Use vim keybindings in copy mode -setw -g mode-keys vi - -# Update default binding of `Enter` and `Space to also use copy-pipe -unbind -T copy-mode-vi Enter -unbind -T copy-mode-vi Space - -bind-key -T edit-mode-vi Up send-keys -X history-up -bind-key -T edit-mode-vi Down send-keys -X history-down - -# setup 'v' to begin selection as in Vim -bind-key -T copy-mode-vi 'v' send-keys -X begin-selection - -# copy text with `y` in copy mode -# bind-key -T copy-mode-vi 'y' send -X copy-selection-and-cancel\; run "tmux save -|pbcopy >/dev/null 2>&1" -bind-key -T copy-mode-vi 'y' send -X copy-selection-and-cancel - -# copy text with mouse selection without pressing any key -bind-key -T copy-mode-vi MouseDragEnd1Pane send -X copy-selection-and-cancel\; run "tmux save -|pbcopy >/dev/null 2>&1" -# bind-key -T copy-mode-vi MouseDragEnd1Pane send -X copy-selection-and-cancel - -# focus events enabled for terminals that support them -set -g focus-events on - -# Sync panes (Send input to all panes in the window). When enabled, pane -# borders become red as an indication. -bind C-s if -F '#{pane_synchronized}' \ - 'setw synchronize-panes off; \ - setw pane-active-border-style fg=colour63,bg=default; \ - setw pane-border-format " #P "' \ - 'setw synchronize-panes on; \ - setw pane-active-border-style fg=red; \ - setw pane-border-format " #P - Pane Synchronization ON "' - -# Faster command sequence -set -s escape-time 0 - -# Have a very large history -set -g history-limit 1000000 - -# Mouse mode on -set -g terminal-overrides 'xterm*:smcup@:rmcup@' -set -g mouse on - -# Set title -set -g set-titles on -set -g set-titles-string "#T" - -# Equally resize all panes -bind-key = select-layout even-horizontal -bind-key | select-layout even-vertical - -# Resize panes -bind-key J resize-pane -D 10 -bind-key K resize-pane -U 10 -bind-key H resize-pane -L 10 -bind-key L resize-pane -R 10 - -# Select panes -# NOTE(arslan): See to prevent cycling https://github.com/tmux/tmux/issues/1158 -bind-key j select-pane -D -bind-key k select-pane -U -bind-key h select-pane -L -bind-key l select-pane -R - -# Disable confirm before killing -bind-key x kill-pane - -# This tmux statusbar config was created by tmuxline.vim -# on Wed, 25 Nov 2015 -set -g status "on" -set -g status-bg "colour236" -set -g status-justify "left" -set -g status-position "bottom" -set -g status-left-length "100" -set -g status-left-style "none" -set -g status-right-length "100" -set -g status-style "none" -set -g status-left "#{prefix_highlight}#[fg=colour22,bg=colour148,bold] #S #[fg=colour148,bg=colour236,nobold,nounderscore,noitalics]" -set -g status-right "#[fg=colour240,bg=colour236,nobold,nounderscore,noitalics]#[fg=colour250,bg=colour240] %Y-%m-%d %H:%M #[fg=colour252,bg=colour240,nobold,nounderscore,noitalics]#[fg=colour241,bg=colour252] #h " - -set -g pane-active-border-style "fg=colour148" -set -g pane-border-style "fg=colour240" - -set -g message-command-style "fg=colour231" -set -g message-style "bg=colour240,fg=colour231" -set -g message-command-style "bg=colour240" - -setw -g window-status-style "fg=colour245" -setw -g window-status-style "none" -setw -g window-status-activity-style "bg=colour236" -setw -g window-status-activity-style "none" -setw -g window-status-activity-style "fg=colour148" -setw -g window-status-separator "" -setw -g window-status-style "bg=colour236" -setw -g window-status-format "#[fg=colour245,bg=colour236] #I #[fg=colour245,bg=colour236]#W " -setw -g window-status-current-format "#[fg=colour236,bg=colour240,nobold,nounderscore,noitalics]#[fg=colour231,bg=colour240] #I #[fg=colour231,bg=colour240]#{?window_zoomed_flag,#[fg=green][],}#W #[fg=colour240,bg=colour236,nobold,nounderscore,noitalics]" - -# List of plugins -# see this https://github.com/tmux-plugins/tpm to installation -set -g @plugin 'tmux-plugins/tpm' -set -g @plugin 'tmux-plugins/tmux-open' -set -g @plugin 'tmux-plugins/tmux-yank' -set -g @plugin 'tmux-plugins/tmux-prefix-highlight' - -# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf) -run '~/.tmux/plugins/tpm/tpm' - -######## Alacritty + Tmux key integration ######### -# First of all, Alacritty can send hex codes for shortcuts you define. So for -# example you can send a hex code for the shortcut "c-f v" which in my case -# opens a vertical pane (see setting above). The hex code for this combination -# is: 0x06 0x76. There are many cases to find it out. One of them is the tool -# 'xxd' - -# If you run "xxd -psd" and hit "c-f v" and then enter and finally c-c to exit -# , it outputs the following: -# -# $ xxd -psd -# ^Fv -# 06760a^C -# -# What matters is the sequence 06760a^C where: -# -# 06 -> c-f -# 76 -> v -# 0a -> return -# ^C -> c-c -# -# From here, we know that 0x06 0x76 corresponds to "c-f v". -# -# Next step is to add a line to 'key_binding' setting in Alacritty: -# -# - { key: D, mods: Command, chars: "\x06\x76" } -# -# That's it! The followings are the ones that I'm using: -# -# key_bindings: -# - { key: D, mods: Command, chars: "\x06\x76" } -# - { key: D, mods: Command|Shift, chars: "\x06\x73" } -# - { key: W, mods: Command, chars: "\x06\x78" } -# - { key: H, mods: Command, chars: "\x06\x68" } -# - { key: J, mods: Command, chars: "\x06\x6a" } -# - { key: K, mods: Command, chars: "\x06\x6b" } -# - { key: L, mods: Command, chars: "\x06\x6c" } -# - { key: T, mods: Command, chars: "\x06\x63" } -# - { key: Key1, mods: Command, chars: "\x06\x31" } -# - { key: Key2, mods: Command, chars: "\x06\x32" } -# - { key: Key3, mods: Command, chars: "\x06\x33" } -# - { key: Key4, mods: Command, chars: "\x06\x34" } -# - { key: Key5, mods: Command, chars: "\x06\x35" } -# - { key: Key6, mods: Command, chars: "\x06\x36" } -# - { key: Key7, mods: Command, chars: "\x06\x37" } -# - { key: Key8, mods: Command, chars: "\x06\x38" } -# - { key: Key9, mods: Command, chars: "\x06\x39" } -# - { key: Left, mods: Command, chars: "\x06\x48" } -# - { key: Down, mods: Command, chars: "\x06\x4a" } -# - { key: Up, mods: Command, chars: "\x06\x4b" } -# - { key: Right, mods: Command, chars: "\x06\x4c" } -# -# Finally, inside the iTerm2 Key settings, I'm adding just various shortcuts, -# such as cmd-j, cmd-left, etc.. , select the option "send hex code" and the -# enter the hex code which I want to be executed, hence the tmux sequence. So -# when I press CMD + d in iterm, I send the sequence 0x06 0x76, -# which tmux inteprets it as opening a new pane. -############################################### - diff --git a/.vim/settings/ui-features.vim b/.vim/settings/ui-features.vim new file mode 100644 index 0000000..82d8720 --- /dev/null +++ b/.vim/settings/ui-features.vim @@ -0,0 +1,162 @@ +" ===== Custom UI Features ===== +" This file contains custom UI enhancements like floating windows and popups + +" Define custom highlight groups for popups (Catppuccin Mocha inspired) +augroup PopupHighlights + autocmd! + " Main popup background - darker for contrast + autocmd ColorScheme * highlight RegisterPopup guibg=#1e1e2e guifg=#cdd6f4 ctermbg=234 ctermfg=252 + " Border - subtle blue accent + autocmd ColorScheme * highlight RegisterPopupBorder guibg=#313244 guifg=#89b4fa ctermbg=236 ctermfg=117 + " Alternative styles you can try: + " Darker with green accent: + " autocmd ColorScheme * highlight RegisterPopup guibg=#11111b guifg=#a6e3a1 + " autocmd ColorScheme * highlight RegisterPopupBorder guifg=#a6e3a1 + " Purple accent: + " autocmd ColorScheme * highlight RegisterPopup guibg=#181825 guifg=#cba6f7 + " autocmd ColorScheme * highlight RegisterPopupBorder guifg=#cba6f7 +augroup END + +" Show registers in a floating window (upper right corner) +" Requires Vim 8.2+ with popup support +function! ShowRegistersPopup() + " Check if popups are supported + if !has('popupwin') + echo "Popup windows require Vim 8.2+" + return + endif + + " Get register contents + let reg_output = execute('registers') + let reg_lines = split(reg_output, '\n') + + " Create custom highlight groups for the popup + highlight RegisterPopup guibg=#1e1e2e guifg=#cdd6f4 ctermbg=234 ctermfg=252 + highlight RegisterPopupBorder guibg=#313244 guifg=#89b4fa ctermbg=236 ctermfg=117 + + " Create popup in upper right corner + let popup_id = popup_create(reg_lines, { + \ 'pos': 'topright', + \ 'line': 1, + \ 'col': &columns - 2, + \ 'minwidth': 30, + \ 'maxwidth': 40, + \ 'maxheight': 15, + \ 'border': [1, 1, 1, 1], + \ 'borderchars': ['─', '│', '─', '│', '╭', '╮', '╯', '╰'], + \ 'title': ' 📋 Registers ', + \ 'close': 'click', + \ 'padding': [1, 2, 1, 2], + \ 'highlight': 'RegisterPopup', + \ 'borderhighlight': ['RegisterPopupBorder'], + \ 'scrollbar': 1, + \ 'mapping': 0, + \ 'time': 10000, + \ 'moved': 'any' + \ }) + + " Allow closing with Esc + call popup_filter_menu(popup_id, 'ShowRegistersFilter') +endfunction + +" Filter function to handle Esc key +function! ShowRegistersFilter(id, key) + if a:key == "\" + call popup_close(a:id) + return 1 + endif + return 0 +endfunction + +" Alternative: Show registers in a preview window (works in older Vim) +function! ShowRegistersPreview() + " Save current window + let curr_win = winnr() + + " Create small window in upper right + topleft 10vnew + wincmd L + vertical resize 35 + + " Set window properties + setlocal previewwindow + setlocal buftype=nofile + setlocal bufhidden=delete + setlocal noswapfile + setlocal nowrap + setlocal nonumber + setlocal norelativenumber + + " Insert register content + put =execute('registers') + normal! gg + + " Map q and Esc to close + nnoremap q :close + nnoremap :close + + " Return to original window + execute curr_win . 'wincmd w' +endfunction + +" ===== Key Mappings ===== + +" Show registers popup +nnoremap r :call ShowRegistersPopup() + +" Quick register access with visual feedback +" Shows registers when pressing " in normal mode +" (uncomment if you want this behavior) +" nnoremap " :call ShowRegistersPopup()" + +" ===== Additional UI Features ===== + +" Show marks in a floating window +function! ShowMarksPopup() + if !has('popupwin') + echo "Popup windows require Vim 8.2+" + return + endif + + let marks_output = execute('marks') + let marks_lines = split(marks_output, '\n') + + call popup_create(marks_lines, { + \ 'pos': 'center', + \ 'minwidth': 40, + \ 'maxheight': 20, + \ 'border': [], + \ 'title': ' 🔖 Marks ', + \ 'close': 'click', + \ 'padding': [0, 1, 0, 1], + \ }) +endfunction + +" Show buffer list in a floating window +function! ShowBuffersPopup() + if !has('popupwin') + echo "Popup windows require Vim 8.2+" + return + endif + + let buffers_output = execute('ls') + let buffer_lines = split(buffers_output, '\n') + + call popup_create(buffer_lines, { + \ 'pos': 'topleft', + \ 'line': 2, + \ 'col': 5, + \ 'minwidth': 50, + \ 'maxheight': 15, + \ 'border': [], + \ 'title': ' 📁 Buffers ', + \ 'close': 'click', + \ 'padding': [0, 1, 0, 1], + \ }) +endfunction + +" Optional: Auto-show registers on " press (commented out by default) +" augroup RegisterPreview +" autocmd! +" autocmd CmdlineEnter : if getcmdtype() == '"' | call ShowRegistersPopup() | endif +" augroup END \ No newline at end of file diff --git a/.zshrc b/.zshrc index b10fbdc..f5e1666 100644 --- a/.zshrc +++ b/.zshrc @@ -8,9 +8,20 @@ setopt prompt_subst # Git branch info setup autoload -Uz vcs_info -precmd() { vcs_info } +precmd() { + vcs_info + # Set tab title to show current directory (last 2 path components) + print -Pn "\e]0;%2~\a" +} + +# Show running command in tab title +preexec() { + # Show command being executed (first word only for simplicity) + print -Pn "\e]0;%2~ ▶ ${1%% *}\a" +} + zstyle ':vcs_info:*' enable git -zstyle ':vcs_info:git:*' formats ' %b' +zstyle ':vcs_info:git:*' formats ' %b' ROSEWATER='%F{#f5e0dc}' MAUVE='%F{#cba6f7}' @@ -106,7 +117,29 @@ function build_rprompt() { precmd_functions+=(build_rprompt) -source ~/.gnu_aliases +# PATH helpers +path_prepend() { + local dir + for dir in "$@"; do + [[ -d "$dir" ]] || continue + case ":$PATH:" in + *":$dir:"*) ;; + *) PATH="$dir:$PATH" ;; + esac + done +} + +path_prepend "/usr/local/bin" "/usr/local/sbin" "$HOME/bin" "$HOME/.cargo/bin" + +if [[ -d "$HOME/.pyenv" ]]; then + export PYENV_ROOT="$HOME/.pyenv" + path_prepend "$PYENV_ROOT/bin" + if command -v pyenv >/dev/null 2>&1; then + eval "$(pyenv init -)" + fi +fi + +[[ -r "$HOME/.gnu_aliases" ]] && source "$HOME/.gnu_aliases" # Soft pastel fzf colors export FZF_DEFAULT_OPTS=" @@ -121,7 +154,7 @@ export FZF_DEFAULT_OPTS=" # Load custom shell functions for f in ~/.config/shell-functions/*.sh; do - source "$f" + [[ -r "$f" ]] && source "$f" done function kctx() { @@ -140,19 +173,15 @@ function kctx() { fi } -function git-ch() { - local branch - branch=$(git branch --sort=-committerdate | sed 's/* //' | sed 's/^[[:space:]]*//' | \ - fzf --prompt="Checkout branch > " \ - --height=40% \ - --layout=reverse \ - --border) - if [[ -n "$branch" ]]; then - git checkout "$branch" - fi -} - -alias kc=kctx -alias gch="git-ch" +# Source local secrets (if exists) +[[ -f ~/.env.secrets ]] && source ~/.env.secrets export PATH="/opt/homebrew/bin:$PATH" +. "$HOME/.local/bin/env" + +# bun completions +[ -s "/Users/jm/.bun/_bun" ] && source "/Users/jm/.bun/_bun" + +# bun +export BUN_INSTALL="$HOME/.bun" +export PATH="$BUN_INSTALL/bin:$PATH" diff --git a/common/git/.gitconfig b/common/git/.gitconfig index 09473cf..897b160 100644 --- a/common/git/.gitconfig +++ b/common/git/.gitconfig @@ -74,4 +74,6 @@ else \ git log --oneline; \ fi; \ - }; f" \ No newline at end of file + }; f" +[url "git@github.com:"] + insteadOf = https://github.com/ diff --git a/common/shell/.zshrc b/common/shell/.zshrc index 6f5f34d..9ccc71d 100644 --- a/common/shell/.zshrc +++ b/common/shell/.zshrc @@ -178,3 +178,10 @@ function kctx() { export PATH="/opt/homebrew/bin:$PATH" . "$HOME/.local/bin/env" + +# bun completions +[ -s "/Users/jm/.bun/_bun" ] && source "/Users/jm/.bun/_bun" + +# bun +export BUN_INSTALL="$HOME/.bun" +export PATH="$BUN_INSTALL/bin:$PATH" diff --git a/common/ssh/config b/common/ssh/config index 23a27d7..615d64c 100644 --- a/common/ssh/config +++ b/common/ssh/config @@ -1,29 +1,12 @@ -# SSH config with automatic dotfile deployment - -# Example host with automatic dotfile setup -# Host myserver -# HostName example.com -# User myuser -# RemoteCommand bash -c "curl -sSL https://raw.githubusercontent.com/woud420/dotfiles/master/scripts/quick-install.sh | bash && exec bash" -# RequestTTY yes - -# For all hosts - send local environment variables Host * - # Send your local terminal type - SendEnv TERM - SendEnv LANG LC_* - - # Keep connections alive - ServerAliveInterval 60 - ServerAliveCountMax 3 - - # Reuse connections - ControlMaster auto - ControlPath ~/.ssh/sockets/%r@%h:%p - ControlPersist 600 - - # Faster connections - Compression yes - - # Forward agent for git operations - ForwardAgent yes \ No newline at end of file + AddKeysToAgent yes + UseKeychain yes + ForwardAgent yes + ServerAliveInterval 60 + ServerAliveCountMax 5 + +Host github.com + HostName github.com + User git + IdentityFile ~/.ssh/github-id-rsa + IdentitiesOnly yes diff --git a/config/kitty.conf.bak b/config/kitty.conf.bak index e9b5ddd..77f2f36 100644 --- a/config/kitty.conf.bak +++ b/config/kitty.conf.bak @@ -1,7 +1,7 @@ # vim:fileencoding=utf-8:foldmethod=marker # BEGIN_KITTY_THEME -# Catppuccin-Frappe +# Catppuccin-Mocha include current-theme.conf # END_KITTY_THEME diff --git a/darwin/Brewfile b/darwin/Brewfile index 2f87b79..206a10e 100644 --- a/darwin/Brewfile +++ b/darwin/Brewfile @@ -1,41 +1,62 @@ +tap "hashicorp/tap" +brew "argon2" brew "awscli" +brew "python@3.13" +brew "azure-cli" brew "bash" brew "bat" brew "binutils" +brew "cmake" brew "coreutils" brew "diffutils" +brew "doppler" +brew "duckdb" brew "eksctl" brew "fd" brew "findutils" brew "fzf" brew "gawk" +brew "gcc" +brew "gh" brew "git" brew "gnu-sed" brew "gnu-tar" brew "gnu-which" +brew "go" brew "grep" brew "gzip" -brew "hashicorp/tap/terraform" brew "helm" +brew "helmfile" brew "htop" brew "k9s" brew "kubernetes-cli" +brew "kustomize" +brew "libb64" brew "libpq" brew "make" brew "minikube" +brew "mypy" brew "node" brew "poetry" +brew "ripgrep" +brew "rtk" brew "rust" +brew "rustup" brew "terraformer" brew "tflint" brew "tree" +brew "universal-ctags" brew "virtualenv" brew "vite" brew "wget" - -# Casks -cask "docker" +brew "hashicorp/tap/terraform" +cask "bunch" +cask "claude-code@latest" cask "docker-desktop" cask "font-noto-color-emoji" +cask "gcloud-cli" cask "slack" cask "spotify" +cargo "sqlx-cli" +cargo "worker-build" +npm "@openai/codex" diff --git a/git/.gitconfig b/git/.gitconfig index 0cc7ab0..897b160 100644 --- a/git/.gitconfig +++ b/git/.gitconfig @@ -16,4 +16,64 @@ cl = !git reset --hard && git clean -df && git st up = !git submodule update --init && git st - submodules-to-master = submodule foreach "git fetch && git checkout master && git rebase" \ No newline at end of file + submodules-to-master = submodule foreach "git fetch && git checkout master && git rebase" + + # Fuzzy branch checkout with fallback + ch = "!f() { \ + if command -v fzf >/dev/null 2>&1; then \ + git branch --sort=-committerdate | sed 's/^..//' | \ + fzf --prompt='Checkout branch > ' \ + --height=40% \ + --layout=reverse \ + --border \ + --preview='git log --oneline --color=always -10 {}' | \ + xargs -r git checkout; \ + else \ + echo 'Available branches:'; \ + git branch --sort=-committerdate; \ + echo; \ + read -p 'Enter branch name to checkout: ' branch; \ + if [ -n \"$branch\" ]; then git checkout \"$branch\"; fi; \ + fi; \ + }; f" + + # Fuzzy log viewer - interactive log browser + flog = "!f() { \ + if command -v fzf >/dev/null 2>&1; then \ + git log --oneline --color=always | \ + fzf --ansi \ + --preview='git show --color=always {1}' \ + --preview-window=right:60%:wrap \ + --bind='enter:execute(git show {1} | less -R)' \ + --header='Press ENTER to view commit details'; \ + else \ + git log --oneline -20; \ + fi; \ + }; f" + + # Fuzzy add - select files to stage + fadd = "!f() { \ + if command -v fzf >/dev/null 2>&1; then \ + git status --porcelain | \ + fzf -m \ + --preview='if [[ {1} == \"??\" ]]; then bat --color=always {2} 2>/dev/null || cat {2}; else git diff --color=always {2}; fi' \ + --preview-window=right:60%:wrap \ + --header='Select files to add (TAB to multi-select)' | \ + awk '{print $2}' | xargs -r git add; \ + else \ + git add -i; \ + fi; \ + }; f" + + # Alternative: git log with fuzzy search through commits + llog = "!f() { \ + if command -v fzf >/dev/null 2>&1; then \ + git log --pretty=format:'%h %s (%cr) <%an>' --abbrev-commit | \ + fzf --preview='git show --color=always {1}' \ + --preview-window=right:60%:wrap; \ + else \ + git log --oneline; \ + fi; \ + }; f" +[url "git@github.com:"] + insteadOf = https://github.com/ diff --git a/shell/.gnu_aliases b/shell/.gnu_aliases index fdfccd6..055b551 100644 --- a/shell/.gnu_aliases +++ b/shell/.gnu_aliases @@ -12,19 +12,21 @@ safe_alias() { fi } -# GNU tools with fallback to BSD/macOS system versions -safe_alias ls 'gls --color=auto --group-directories-first' fallback 'ls' -safe_alias sed 'gsed' fallback 'sed' -safe_alias awk 'gawk' fallback 'awk' -safe_alias find 'gfind' fallback 'find' -safe_alias grep 'ggrep' fallback 'grep' -safe_alias xargs 'gxargs' fallback 'xargs' -safe_alias tar 'gtar' fallback 'tar' -safe_alias which 'gwhich' fallback 'which' -safe_alias make 'gmake' fallback 'make' -safe_alias dircolors 'gdircolors' fallback 'dircolors' +if [ "$(uname -s)" = "Darwin" ]; then + # GNU tools with fallback to BSD/macOS system versions + safe_alias ls 'gls --color=auto --group-directories-first' fallback 'ls' + safe_alias sed 'gsed' fallback 'sed' + safe_alias awk 'gawk' fallback 'awk' + safe_alias find 'gfind' fallback 'find' + safe_alias grep 'ggrep' fallback 'grep' + safe_alias xargs 'gxargs' fallback 'xargs' + safe_alias tar 'gtar' fallback 'tar' + safe_alias which 'gwhich' fallback 'which' + safe_alias make 'gmake' fallback 'make' + safe_alias dircolors 'gdircolors' fallback 'dircolors' -# If dircolors is available, eval LS_COLORS -if command -v dircolors >/dev/null 2>&1; then - eval "$(dircolors -b ~/.dircolors)" -fi \ No newline at end of file + # If dircolors is available, eval LS_COLORS + if command -v dircolors >/dev/null 2>&1; then + eval "$(dircolors -b ~/.dircolors)" + fi +fi diff --git a/shell/.zshrc b/shell/.zshrc index cecc2f1..f5e1666 100644 --- a/shell/.zshrc +++ b/shell/.zshrc @@ -8,7 +8,18 @@ setopt prompt_subst # Git branch info setup autoload -Uz vcs_info -precmd() { vcs_info } +precmd() { + vcs_info + # Set tab title to show current directory (last 2 path components) + print -Pn "\e]0;%2~\a" +} + +# Show running command in tab title +preexec() { + # Show command being executed (first word only for simplicity) + print -Pn "\e]0;%2~ ▶ ${1%% *}\a" +} + zstyle ':vcs_info:*' enable git zstyle ':vcs_info:git:*' formats ' %b' @@ -106,7 +117,29 @@ function build_rprompt() { precmd_functions+=(build_rprompt) -source ~/.gnu_aliases +# PATH helpers +path_prepend() { + local dir + for dir in "$@"; do + [[ -d "$dir" ]] || continue + case ":$PATH:" in + *":$dir:"*) ;; + *) PATH="$dir:$PATH" ;; + esac + done +} + +path_prepend "/usr/local/bin" "/usr/local/sbin" "$HOME/bin" "$HOME/.cargo/bin" + +if [[ -d "$HOME/.pyenv" ]]; then + export PYENV_ROOT="$HOME/.pyenv" + path_prepend "$PYENV_ROOT/bin" + if command -v pyenv >/dev/null 2>&1; then + eval "$(pyenv init -)" + fi +fi + +[[ -r "$HOME/.gnu_aliases" ]] && source "$HOME/.gnu_aliases" # Soft pastel fzf colors export FZF_DEFAULT_OPTS=" @@ -121,7 +154,7 @@ export FZF_DEFAULT_OPTS=" # Load custom shell functions for f in ~/.config/shell-functions/*.sh; do - source "$f" + [[ -r "$f" ]] && source "$f" done function kctx() { @@ -140,19 +173,15 @@ function kctx() { fi } -function git-ch() { - local branch - branch=$(git branch --sort=-committerdate | sed 's/* //' | sed 's/^[[:space:]]*//' | \ - fzf --prompt="Checkout branch > " \ - --height=40% \ - --layout=reverse \ - --border) - if [[ -n "$branch" ]]; then - git checkout "$branch" - fi -} +# Source local secrets (if exists) +[[ -f ~/.env.secrets ]] && source ~/.env.secrets + +export PATH="/opt/homebrew/bin:$PATH" +. "$HOME/.local/bin/env" -alias kc=kctx -alias gch="git-ch" +# bun completions +[ -s "/Users/jm/.bun/_bun" ] && source "/Users/jm/.bun/_bun" -export PATH="/opt/homebrew/bin:$PATH" \ No newline at end of file +# bun +export BUN_INSTALL="$HOME/.bun" +export PATH="$BUN_INSTALL/bin:$PATH" From c8b6fad655308b7d88d072bd46341e22cee881d3 Mon Sep 17 00:00:00 2001 From: Jean-Michel Bouchard Date: Fri, 22 May 2026 09:10:57 -0400 Subject: [PATCH 05/32] Reconcile laptop dotfiles with cleanup history --- .gnu_aliases | 32 ++++++++++++++++++++++++++++++++ .profile | 2 ++ scripts/update_cursor_tools.py | 2 +- 3 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 .gnu_aliases create mode 100644 .profile diff --git a/.gnu_aliases b/.gnu_aliases new file mode 100644 index 0000000..055b551 --- /dev/null +++ b/.gnu_aliases @@ -0,0 +1,32 @@ +# Improved safe_alias function +# safe_alias [alias-name] [primary-command] fallback [secondary-command] +safe_alias() { + local program + program="${2%% *}" # Extract first word of command (not args) + if command -v "$program" >/dev/null 2>&1; then + alias "$1"="$2" + else + if [ "$3" = "fallback" ] && [ -n "$4" ]; then + alias "$1"="$4" + fi + fi +} + +if [ "$(uname -s)" = "Darwin" ]; then + # GNU tools with fallback to BSD/macOS system versions + safe_alias ls 'gls --color=auto --group-directories-first' fallback 'ls' + safe_alias sed 'gsed' fallback 'sed' + safe_alias awk 'gawk' fallback 'awk' + safe_alias find 'gfind' fallback 'find' + safe_alias grep 'ggrep' fallback 'grep' + safe_alias xargs 'gxargs' fallback 'xargs' + safe_alias tar 'gtar' fallback 'tar' + safe_alias which 'gwhich' fallback 'which' + safe_alias make 'gmake' fallback 'make' + safe_alias dircolors 'gdircolors' fallback 'dircolors' + + # If dircolors is available, eval LS_COLORS + if command -v dircolors >/dev/null 2>&1; then + eval "$(dircolors -b ~/.dircolors)" + fi +fi diff --git a/.profile b/.profile new file mode 100644 index 0000000..4b38a7a --- /dev/null +++ b/.profile @@ -0,0 +1,2 @@ + +. "$HOME/.local/bin/env" diff --git a/scripts/update_cursor_tools.py b/scripts/update_cursor_tools.py index 6f3a919..14ad2d1 100755 --- a/scripts/update_cursor_tools.py +++ b/scripts/update_cursor_tools.py @@ -71,7 +71,7 @@ def main() -> None: "brew_packages": get_brew_packages(), "aliases": get_shell_aliases(), } - out_path = Path.home() / ".config/cursor/generated/tools.yaml" + out_path = Path.home() / ".cursor/generated/tools.yaml" out_path.parent.mkdir(parents=True, exist_ok=True) out_path.write_text(dump_yaml(data)) print(f"Wrote {out_path}") From 7634a13c7c162da31f3cc47fa9b496ae247d3efe Mon Sep 17 00:00:00 2001 From: Jean-Michel Bouchard Date: Mon, 25 May 2026 13:54:41 -0400 Subject: [PATCH 06/32] Track Arch Sway config --- .../assets/Sway_Wallpaper_Blue_1920x1080.png | Bin 0 -> 857863 bytes .../assets/beautiful-morning-4k-3840x2160.jpg | Bin 0 -> 615129 bytes .../assets/fishing-boat-sunrise-hd-4k.png | Bin 0 -> 101727 bytes linux/arch/.config/sway/assets/focused.png | Bin 0 -> 785 bytes .../.config/sway/assets/focused_inactive.png | Bin 0 -> 792 bytes linux/arch/.config/sway/assets/unfocused.png | Bin 0 -> 792 bytes linux/arch/.config/sway/assets/urgent.png | Bin 0 -> 770 bytes linux/arch/.config/sway/config | 307 ++++++++++++++++++ scripts/dotfiles.py | 4 + 9 files changed, 311 insertions(+) create mode 100644 linux/arch/.config/sway/assets/Sway_Wallpaper_Blue_1920x1080.png create mode 100644 linux/arch/.config/sway/assets/beautiful-morning-4k-3840x2160.jpg create mode 100644 linux/arch/.config/sway/assets/fishing-boat-sunrise-hd-4k.png create mode 100644 linux/arch/.config/sway/assets/focused.png create mode 100644 linux/arch/.config/sway/assets/focused_inactive.png create mode 100644 linux/arch/.config/sway/assets/unfocused.png create mode 100644 linux/arch/.config/sway/assets/urgent.png create mode 100644 linux/arch/.config/sway/config diff --git a/linux/arch/.config/sway/assets/Sway_Wallpaper_Blue_1920x1080.png b/linux/arch/.config/sway/assets/Sway_Wallpaper_Blue_1920x1080.png new file mode 100644 index 0000000000000000000000000000000000000000..034f00405e23d4ef1c9b202b6bd63902ee7efbf3 GIT binary patch literal 857863 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 jpbr%nm?cgLmJtrv`r1UTW<{MQgt+kFZZm zyFyq^$qMSKkGU=ir^>W-qugB=(IMLJNU&V^%eJ&^7rX{aayZNE0Pw2qRGZFQ1_RFt zn}wDOlZ(?Pt0~dt5^b9W2gadM*F~TwK^=^kvU>lW%VNW|_QMo{{}|?$YriApZh(2| zs;^b=cb9yFr!3YgD)U^+X1#&Pv+oVMF1l9li#bi@re!SEN|f1cSMN`k$OvY=iII|L zZ}=hViVW4DuY-Nj5p~4_XP_OjE}&mwe}+rGQ9Wmuf6fkI+ZJm}adac==(0qK99!r$ zzx_6Wmf4oOd+{JbY`KKRQ)6JSdA4!-Adg(*5UYD}h`OHYS_*nii;ikLI(p4i@zf~M z11S$4N_lp;RH}yP!SVCHME?0&%{W9gfF$XI@XXiBmDzH6^iAr%=K0ZRJD{KSrs6G+ zM^^nGknX_rh6!zi?XLGu9Q(Uk+sMV*mbN0%gXJ}oW?_lc7rb!@rta!mNY(|452(nF z33$Giyar~rv}PhHBA#j!wOlg7pa~aGHSZ`1lv=Dd_zKIjq}RM)y15>+*v_gi>$^G` z3D*1M`$st0-8U`Jb=p=r?VIc7@D8@ag;7UF6?j!#jzHtGSMu65?Hi;mGFxb9NNjE? z<;?>5Xr+K3_mJ5A-!tznIl>q$E)2J`Ko%EYw&`pM4^ims1*ztJ=OHm6?p2!JjBiCl zZS?^)<0r9278lXp3v7t{R{K@XGpl!_A3p5kvWwI`4(QTibL6Ro_zFOW=Ihx@*IW z3YQ$mCxq+6uNLjy$L+tQx&N*W@NzvsJ%(6)>Uy3yuT zxKQ%q`H8k{qzl)qg+M3MYcrO^I zxMRDD?_Ci!lzm=zF|DfNUA3FF&m&tOt{2Nz{uV$EOAAbd*HoOuatUYK8?~9@SzM4e z?;{7rBGcSC9WJ~TE=%gyhktHo2_2wR9b%BK;$~}1kRh>xf}uO_jcikBo2l<5-1Ak- zi~p>Q_*dss`L4@#+tdXT%C_lN$L;fK)XM=ECntpHVVuR+qRE3|Prn7&LYw#bL8JRR z-U~>e#=NW3Ua$H{EiRn87Ic#D)Vm(94`%{=SJ%HR{ecUOTf{kuN0Y9I*R8wsl2$ga zS5DFXqs|dzxA>Z>4lXn``C4>@e33L6UgKvvw@EviO36R|2VUdytj$WZYvE+}b?P}> zXzk>y_&B_#X7=^Y67A@V#`Qx&2SDI{R-Vv-D%Tsa&XW~$JUjWCYL#{rQn0>%id^4+ z3qTfVcqTNuOy_1_zv=wGB$~a@4yZ;lCZc`?GTWc4Y7YJ~&p}1W6>uSs`;%vA@VSs^ zR(&HGZPOl;$`__NW)P!ey7i%V+NM54=&{t~nQdNspAs%4XLSe6Fb9>n0x^1;i2{G2 zNAqZ!GQb;>XQmTTQ3*Ip(}3rY#)F|Ic6*WTl2M#4NjjX_1p#2IUVL%E3g*x?4~%L? z;R!yX=8KYakb;`^n)(`R8sNKIZB56-D106#pUK1_6n1aC5Bq~GwIp5h;-lF%_h>7b zsZkuW`}t|$msro`sz>3bY{=Uj!lrxqW8sfxBM^0kHOv!_j4ZLo9YD`Njlu)I3NzY_ zBRt-J6?W5-ryZM_#4NJJ(m9t2GZLrvz7M*aMjYQc!lZR!^v`3g%l2I!nbSTctprX5 z#D1c@clCMce*UKlVaB3+Kh+%+tAyRkh1&wud!mG2;*6se9&ji1k|*_g?c@;lJTl^o zeP==YS6+(FhVDa9;iP!m7jWzt`%q zY@V;f{fFaOA;NBWla18(WOiN3;(Kj*)Haa>yHTU?rtlvBmQ~K^^B}h9nd=bYHpT&) zTXn>-oJ%m&q_RG|=a-a@6y0P2&upB=CNmD!c+x1G7PhPh3wZeo&?36$KU94D?1QWj z4EV3^L)%N*1_Ro|tIx{|@sJ9u>fR7xSph0%u(znU{XLna-WqW1Qv0?0omfdmy3*0= z(O1FZqZ|-9+!TBTkI=-pq0n7ZiO?8>?PC~h3H3+FI;tgarI?h)&ll+IAx6$GIdI-HpT$Pcj}_ z`u)NR>t|~TYn=}iS#6mcr!tB<)-8%0cht6`3VZQNPZ z;YERKJnEhp5FYwCm25f8<=M(A@V6OBXMd8irOLA%3j#g=qGHL=z9?mFZ)x;$FAbS} zA6GMrk<7J;q1R}ce6(YvT(?}~tM#dZpx{uZUbz)=iKhW=82H!Nu62#GdpDt)okV2s z^Y8AKl;>T{u=6nzdniHkM zGsj^}q91rN8D$gskola8nOY{Uh3e0Pugd-Pko{C+QX>P?vk&A6T%pHsrg#i%zz9td zaQ{=<_JewrDHT?e8dpTW-b2yqsy`RiOa~8&;7wfoa!t52U0m#!vwvXFxpU%G0}9)P zwsaSP0-zN~U92`4s?&ZjLiEGOaGmeHdK$b_!b9&!kzv#M6AbWhY#kCYlIO0i*GIEm z4ja$w_(J{)p|bp>i9*>8sOTq%zBFVR@FG$s<#%@<`ej*tfmfYg&4hB?lai1a0zZV2 zw{Oq&2eYnOSCO5iR}MtfboE4Q#ahD)1%At2;Gj5$K0e|nzSiUcHHvbnSW%O;F_x)u zV04IwQaUyw>B3`abD>eVo2rgB>C@>TPw&3=h(nct=e~s2wGV}H13_&=Xth;b)QN|V z67hHaE=Gp!r}R73$<`edyrwupYzJ5p!M8MpKLz}{~5?)M}#4J=+>=j^a3Q7NWvH$1;TOg8 z9XpM3X;Kn1aYvJ-O7XbO+gnT0I4eAgzdY{R(0Sa3iU|Mm6g5~M0$-0sXi4(vQFaa| zit!Amq+2#NV4lbGdGu|~^V_SM6EJd*Mwu|ZzQwNZ)lWso3BSKlz7cSft$%a!=n0`s zC>tG3KuI#=*WoB)Qs-zM`@-6FE?dh#^W7>u{f)i>QuGD3S}aypSNIDgrxxE!FeVF; z>JmC{iq{lMD5`Z*Z^2I7iQMd#`f%MrQ}Br=M{)<87D>S(c+>qk*az3Sr0!xJlaapJ zM@=th5xR+E+CEXv?3v-RAwbH~nutJ`Wymwt=7J9meH(+>9P4m2EzCjLZ9|MfQ?j z&NuGVU>75=uiSBLi_bF^@MNg=5cnMLe0ES_T2dyfpStVMHYD7OJv2=}@a%wd==`1Ci7lXlXDV4Af9R}GJP60*MmH5UW>Qj; zU@y7HGo>?goOJJvvrWdU9Q)=WH)zPxIx+#dhEnV z4G|~zvSD)(a1WK3h`~zfI}u`TBcuvv$5*%pD`CpHbY%s6(8Uvyyd{JwCBYw4GHJoV zPd{&1Kc1p83xGM56-)B~&86ti;Tq#z4-?n=Xu&$MgehJU9XhZw?>p~FI#84VO0Z|HHT=R2 zy3Bgep3jDPYXYthh#Q1rbHWW8dW#!$C)43hUm$7Bj#(e+ zB)@sZ4h(hDrvVekMnBD?p;Zn{VCz%NwnE4%!BSY}8u|!(1Bm)AgbBNroBSq!_2@x+ zOX^w!&hq4+2XguvN7vKjHvu12yU1@oAL0hh0d_H5B^(%^@CR}?G}=dWFUfBzdD$=- zo*|ZxpdqV)ooZzoM?)Mn59A&we0?By7-$%>+H6y2Kz{Rk`+=M-f%Xx;J8lphNaF^B z;ppIZ#tpLg^bV4;mZn{T8>Abi9>Rq4Mmc2l@V(9TRqh(K4Ti7di!E+Y>6BT>>Qn8b zy{q3qC5qWGBlxn#&pO6{7=P<%fqIUS-Bf0-iFG|e0OfXQ*F4%&%1R@wnSUZc>tXn) zC^7eGxx+?J1CJ06xCC84!X6as)H?2wOf`a2$SYDYvPQ+9-r6QD4W@m3W}sjoq1efU6;~E^Mp&SA4b&w`rhS+zc0ztMtm~ zS(?74TAWXPD(dPoN#97b%8n@pMXS)1QYp)ZF4Q-Y`;sSVpVE-HuFC*b@RTm9gsPY_ zaN5_+Ylu!6p@Jbs?udB$6^$Jl`}1z-z$|nS9Aw2)o5)+2JcB_nO-F|?P=fdkD70J) z*K#650z(18&%%7}h!C$T&UCLV&PIsdS9elSpge_n1}Dugvw;|{h!FjP6ql-!$`vkq zkyPlwD=^;5FD_(iRLFe)ufjFRs)iB4fXCzUifS+H3iAcED7KPk#!#H%Ka&krf!|KuN*(&@6s;7TNF)p1Mjp2P zj8SCBldw3#+)km!v|=#zmCn>od2^o_jUfb;~Y zlsaBegRZFtf9-ZF%RB5TcgQ}qpwNnp3K=gh=WKkYH@;Vxk0@L_*~<&z6bC9~P6B%0 zr_}Kkq9?Fzz>i0p#H}nJVJ)buCm^IJuv@s65*4B=nZfCs_q&<1kwU2h80VQ&NXMQR zS{=I7aXvbwA_wW)6z0z;%j;8szBF@2Xk_x?@qzTl_4UT}^uF#%lY@-Gcsm|tl%R22^TFlW_M5+Ee^1`us30-;1%@$_Rh`f!1*8cQMrq<-0i&!@K|TWJ{GOh06&cc; zsvy;PYw>JjU3Lwi;etCUM(aT5zzwOYLfhIXKdL!bn_9d+M@p3ZLiMHrfVyq1_72kQp*-Uc8H#S0AQsiEPQaYoivD#(Z! zBhm+-juem)3dnS>Dx08E!!7J8g^-xXRfX>h48{M*RM|irDUrj`#!zJnsB%z&;o0g0 zc*nHJkWB^old(1mA7NPer4~;=-%zVYdV?AY630pJ4>PK68wW$Ka*aFyYxU0uDMr@e zM%EWoV6y*`UVci@E(TSOpQJ<>78^suxyHfI5Qh1SadOiz%HvogYtE|9*HF+;+j&ge zB)Bq(y*ATGkh3-lP?<(P((7eJ7~YiS8=8LsL3?x-Qg>^kUKSae1C?|(0pZ+gAZc_U zq|OC~TR_fQdZj>O1}{0QY|07@%{i+!ynD$WXsZ<%hUHIy;ZD%-6j*^dub1Kk79w6v0R;_|K8BN3g=|d~ z+sMYwoWiIykm;JWQ7^_y1%c;w4Wkqr2Tupk0#Cq1P(lx?Jg{KjB*tdk+UfeHvyI&Djiq=aQb;VFkl{cD&^q(1a9n)3+58)}&YnzQ@akBtJK`e~30=4^We+n; zsl4C`uvX15z=Ayp^a?|!pdn9AIDe&(TWz0g$+tpwMa?5XJ+C+Ze=b$qgZd{))iICB7 z+Y~K+bp67`yPlm+&?!h>#B>Hz+J%9GsG3M>wx-s0Nbb(}#eT_uTQ9``+d zU;L2fh+~dtB1Z8(J()k1rW3Ctt7v|In&z`#dMaWbVA=@oNub59<}b0E%B9FthV&rf8+O#c|xKVWZZ_9$DK0#fz>t z+^m|vu7Fzz9Zys}lBdyM+@lV|qm}9`ye%eh5qLOifU;M$ZA8u%u}uABA-m24et}~a z>ui^Om*{NvBfR(4*3m>*f{!)J{t$g33wrR6ilqogWs}(mrN$}@LcuC7P`A(jN0gr5V%qdbB5;>jB22o|7Y%^quO(EM= zW1BR}mwV}^#PV%GyX@Z8m^lmk^Y?rED3VBTSc=-5M&vXl`{d`BEDY{2yt@ux} zcjPpURIPe(6NH7(fW@K>>xw**0$IqHuu`rBy?6DVf^AZZZE~i`DRLT`hEKL@z?BeZ zz@n}F{5^&-LdmI2$*D=nN#pr@mINGh1^c8uX=E+lPbR=?gIaOw{o4ddfJd%oF~!e3 z2<}fEHc0C%H~VCQMsf9nvpnxeZ^s0+L;9beOgvc9a$=?jYGGBQ=ZZ zf97eIknMJ|Px|M-zky&PlzwUcmx9VYYl_IT00}cQ{sc+B1ke1xv_>2WlEBC_U(QC< zAadF-1M}dgC2K;b9#W%tO4=hb`TngjM?z}wU4}++fjW!*^Y@`AB`gV_t$Edo1&uU{ zvFhXvS-uHIdV}x%KkzL$;mtR-V&Hi5%3RU-UJv38g} z%06BT{Jx*m5h~~BBBDZXbNr+FdC_8`e(ysK=bG;jt4}GZ!`c(en-AjjtA&vpFMCLO zjJ^i;thgE9^kxeMLEyoGt)YU{TL{h-rkj_$cHJ=_041##YC7@k%W1kdAt&Ge+CZ%K zp8UacU^b}xIvy#8rK8l$;1T`$3kf)cDPC5eOFTp!9L8i#&pg5;rMZx=wwGEdbONO$ zk$>^{t$T~%EwuXKe$?x2GOdqYbiMGixQNbxTUr7Ls9$2pnx;*9SzU_>Ci*e#!}W)~ zWI`E6ZpM$(BkjFtQ;am`OSnr1*eXX9G-D-KQyh@R+pps|`Mjml=G{CVX`j0q(j zp!@Z_vY9f%u))d3P$$w*G18@>g>kxeX=9 zCZCOA5QowEDml_7%DuaS=o1&**e1ocyTapX^`Kj%VY-N=!ZcmAQ*n32HKR?+J60py zXn`IFo0$w!WM`_0$N`5@PMAp@kjt#iw3@fK7XZ9sv{j5W96C{|T%@-3ddF;Z5Lx}W4~QXr z5M3Rq(+!TSZaSr*dr{d;9bs5cVw>a}L&$D)F7woAf+lMTzuL(-MmvDrNIgayOo|*% zHDS**jgsz#lOsKYO+?yBkoAJ1!M*d-*8w`*)lNDwBeb);)xWrU zU#$s>o_ALyuS6O?!`%N=UH;T42Nt6pAx0VYD#>D0hjsk|EV%MvUZ4(u{3p+Gyx%*#CuuTLY!(W$3O5@15t_ zLkac1`k`3)3tvz)w`ZOJWRnueZUk_ZkReBk3W}ni+NAswvq4`o3L~ab4|C`)^0}8n zC5;;%%E)RQH*hK|XcG$7Dse5Qa`uoYx+b$EO74}H3u_2E&>|updQgZ^BBe`95;=Rq zWE^=#W(1s^Ugl9U(ukq~|LWShCV19`vXLSQ;v#*tH3|6%>Z zk?c&3A_{G5Vt=lE`S(VuTq{2ry*n6dMKz9}#zJ@wc$B$vU-%~%a_Q=~m;Fa=_UqnOjO%5Z12461caiz z^e@LO)LLPE^GMB3Wt~Z#CLXTu!E0?6s%)NWur9PFs@|l(Q-vAsc^tO%bg#{OHJ?~{ z%SM{fJS(P&T8U!tHD(mknVzvxl?uJ!{}>y9uB&O*Z#ZE|>Ds|iq05)C*cD53<2BJJtPKDOn)C5jBTtV~th;QVN3 zdhF?sj=$GxGQ=!jQ{T&c9HW@XnCjHa+*C%N=c2A|{{TX%b9$=XNPX;vat0(TdQM8P zF>J=)b93h1jE@0-?4}fFyL~+;!S-{4m7a`jCLW(Yv5jQrNRMI03TB{axe?DsJ7Yx@ z=cFdFt4G+?p-0$DQAi8XGzdk;Ibkj@lRVW%sRLSmmEm+Ut4r+CC&q9Yt;H|ziL>Fy zI;E#&c&L4K`$?Z@&M*`2Sx8T2D|ok8L`(D0&Om}~1#n`oN9aSJ$Q=u~7bL>vh#qAg zDA{w8V3VWy$mS6GuCtK#mjoMflzG=`$55P2rI5Blob5Bo%>R*em0?kRUst-jyN2!# z0g;lSyL$jZxF#ck96AIk2c)}2LJ8md`@dh9JLm4b)?Vw}2bg=#>`O=) zvm0KCo}>^?UZaXXen}To`tcy8R6qHhH7!*0AVor&ElQy|m|`)-0FbXJy22a-0!%z< zqg^cYQu*ai3%#FV$}acPN7+dM0fvJ06;>D)8_6X=7N7VlJypz86^IS+;{@?^@NQq? z$B{3lIO-3XZm0a#+)J5CXyw27^v)PC$~g8NES?rx7Ox=LF>tRy;|S&6>! zC(ctPTrqb^QIrsW{ExaM2qv1RAhhhM(oDY?imZ~YV4Fz3Xl+_dt$9GQmvWD9)h<*W z=Apv8mr|N{sbs9LKori<&9_?e`=DGSa2Lq#VXHVVk*7b*P=3+V;dbjsWUwjBDvpI+gZJ=oy6e!g*k`B zN8)O`wfw0|t5W(TnPc^?ani#2dJPq;our7&F&d2)6V7VRlS($I1B;rSt=jH{wg!tv zOSY<$Sb6BXUl~qfe38c@G>OJJ4lUY1UP(@$T1%X2&h)bPt0O0|_7n#a1*U1XN++?y ztgnlut8%4Pnk}!hT5}vC6wtseM>irgE9uxyVw3N4@RFBG@*N;JPGW9+rK`13BDufw z9a?yRS2InK>HW0Q)fbf-3oeGN)9A017hKNEL}(yM`3@xCNc<^1cn**~rrKVN%8PpN z@9pYjb*7N95_5&fM#r)usZdY@jyIop!{2;(WR&Urk)%J$dv5nioLjp zOOcZp6FTekzS-tV2!jWYTNos|Y*nIzK!W@ZWpoN%LW~cY_M{*b;($VX4a79kNZfXz zC4bHjgOt1&_4}x8ok!!(|nD^iAw84TDw~u;mVG$e`VBn-S2g(_ObWwodQsWe8k363T9h@Qg>E&C^43>rwA#IyjK3 zl&~&8Hy9#&U9=UNBpAcyAW%?K-2fd{T~WEU-Ve}b(_9_ z2ad4>)UhaG!~z{rV#Wqop~lqC8KKu*V$1YzJhd`H6-VZqfMeULx2kel887%Uf5*S3B0bI3sLC0ic%6CD0>Mm&sxQ`RdAn}C%ZO91kAjQ4ZsRzR zZn|z)IQ&B@xRJVem-D%ixDAkXHF>|Wl$&B<3Tm@5GSJJ|8n80LOG@708X()o|96Th zXjq7qk<|dpak6c6!ODk~QIB=gGS~Uj^{uuxFe~&XI9<1pFT?`tCmAo^Oa12uR_C#* zT%l@clc5nZdNnGeZwfaOO9K6tYCos41r{Zas@%pRH`2_HcdReWURq#XqOoq4b09I| zlNG;N3Mclk{l;RB6?<)7hgwPsVCFI#AiHn|?J5`{>%PV^_F?URucwV{Xn-YW=3)I` z=%qTAai;w5G1CUrHH~^h_=OCN3&|4yN7P|zuXvDMp{m?OoYE%`)_!14byzonuM!f=$Y;E;yEf!P zilsLJrdFeyIK{hMRgNhLq{~`(^74P@)r~E%RM1$h0bmjxgYvbPkds%PVEqC*(SL^N->E z$De1a^h^j|AJ7Mp{QU)6yuGUw-JRauX!RKf8a|F-{rJ2N$Z^%sW={I(9{ z%U}S#H3fG+mZg`z<_7Z@7(%1DSgS; zeX4b#d}ONg93{?Q458g$3!%T+(o1g_ROgkr!B1AI;CHRi)~8nJ_jGP>j}|xhO&y5t zRW+!MinVI;`zP5d(C1dD$OlvKadmp>)_(-o-`YN6u^wsse|VO<&lvzB<;d!Er^8yc ztg8D!p%2B6h_8QYgnl>V1e+Cs&`vw`!S95>wE-1B|Gm)z6ajqiSe-~!bs2rsGD^!; z!9h=z(AGuO`3s;xpLx~!>o*yt;&mX=kDRPd-&N;tfO?H9L3N+-aD>Ege}CFu5g@ZT z>5a#G`1=fPvPnwDdl-MST)ooBM@56q?-l3*ORisRvSEt;wIV=gfw++po2pr9Oo^*c z%3cwuu^mc`8($GX6<~u5A^)`fc>VQ(LTj$Sfj|KTlIY}E_(w#6llft-4!v@p!|B!Xg2uAwkYWlBW>#XZom@M9FZ?am>Yh=(S?Jf(m_ zfrNMZMeQ|8Q=Iy1l;w`O{!45;MXV3RbNz5Kc@&*yCl_>TN4+_@v@mpF(GY#co1U5y zRYbrvEgYR0qa2f3g&|Q#7FIrpu_Gi4bB1HIr2n<WAjy;CQl>47fD1&uJ8+i(r1RquC zhK`r0=@inX(9a?Sk*OUM11lgBS;v%w@;BQNU0}M15`uD-Q33m40q(xZn&bg{A6)S& z$eb(;ZT5@G=%!4tK$#T!>AY32fE6^B>?neBUT`Im0R79O5Oby=Y+p$hMzqly8w)h5 z6xCws;C~ zjEK}*Cc2?G#o8|f4!+#aCBqv zITUw`yg@}sQKF$O4y3U5G1YFR2BhH4P#FgrD(C=5YjBMd{&@gSp}qvA;SS}3hQvPG z#i}nVLYem8Gml^1ij7~Us|cYYn}MkOngqrP-Gm@Q|4Z}G1xL&E07>h)Acb6Yp-3m0 z47<*44fAw6%y=&=6mmog*ND<<~hd0yic7tp|>-Qx_6xcLMTL)Pxep zK|_wkZ9sCl?6?5@KF2Pg>+LX*Sk637SoK0`T%eDQDw@&`YSTZP#Y$Bi3Y7S`PM1y2 zx+cr3>Y`2Ze@vZ%(YrhANosM_hC8x_;%tOX0ok#*z|`)Rmu zQtdj+({N{X(*=69gicAo(c;qOK=s|3>{R))R`t}G1~ zMG?y$935R8xeOY@X+H#X7Aj#8&rm_o@>;6Gyo0a~dUqAE)Tn2uoHz5>P!3wDbOz5N zJZ79GVu>|HJ!Z@_)U%qD;XW3!R11skR66qacIrmy#gT#8&bHmb8tTivQ$pp=GS~;w zqzj@dI)leczd#Cj2feEQ9a47=>SGvna&(5@F+_1oaH zVk-}l@j2uQSA~nC&k0O1T^obHN)K{@7Hi44qI@9FV zrfB}bt|B3uXXGx8T{I+{7d2pVMflMI1b4n?dG#r#FMl6la}Hjqa+hMFs2iwQZ1`8p z|7GPWt*KAhrex$QbxkZPm5)cO=#&rQF9>1fE=_T$!9L>QD%H_f`DT?@VHf3NoY~bX z|93Qvm`pc?Louqgpxg``MOt6x6ZQQVn=>=qE{c?-wOF27F^V)Kd>Q-5;;%SRBZdxB z)UBim(@5--b(D{akqVOsr7oGSe!(k4rYQCOM_)}uyCy@s>j?rgyPhnwbC+^x_Zg~OFqFBP?UCsY zlX4?6oA#4jYcy8cH}|+&UDx%aL{RM!)io*I_0CzW_K2J^SME$B6{5t{+7#rpGOp5y z$`s~^j!OA>(e_69cqvV%DAMlbpRjaS=M=Je6MdDs>J;0ApH{Z?^{oOb=6xxCVdod_3j4YSH`AzIeKw@C<)-e{eA_!I#$L_-;%>!2({KYL~ZF zVwcA;E@905N*R6yO^onuhb4MfG4J?E~?OLXsY#H>Q zf)~7NCs8!7&)wVe zsbvl6*^-)!xf>_KrjyDDX7OPv#%`;Z&eRE}0(YwcykV)~WCRfUNz!sGdGvO$-k~&+ zM>Q78w_BS{z(ojs<^kWSg zy`tyK$DtRLh+~S}SOy+NTxryqyTp>|XfB+YT<4xs=~-_o@oXb;RXd2xVL7no)AU;s zS0P^-0kOtWIi)y+OYQC&kk}EZML;mmRuhUU z#iK)Ot4Lj1n<@>*Vy#QiR(r|PXf>fMUJU*LEj{-WgEWDe^ZmuWmLt4paSO2(GN3AM z`4sT>DkTvs+?0!48NadINnlI|%N8SxoUpgoV@d>Gh#e=6ll!*wMSb@tqE6(t0Ym~g zri|<^CP}<^n4dySSc(`Shzw4KyM^JprFUI93^Wdt_Q!75(;I0rVFu0e45Y9kx8jUq z$r2Kz+(y{|@1eeBzQQq2yZTtA?UX~#&-e>` z`6uA+>S?SS@nr5XL^t$+%%B#)reh`&vo2p!YiIq z@fj9%@w{*%$XEpX%$PCW%HANWO`^^_xXdyBYHvOM#{^zE`s>eTfdjOXd89mlY-Edh zLe;i~2VDm)uw|`7`jta*1IItM4yfhv+bJrH zUtHHR-fgv>+R^f$9Pln0q8BefBY9M^4ezX}5DLvv>VL~YHQ+>{Fo-ex{}0g(Vi9?9 zNdb1Y`4UBAasGa5aQN#c_jTdZXyKDoiOPgOVIR*vqou-kf-UT(C&mjjNW{8{`73&v z{SoDEL2no9wgDku3hYhT(iXd*!~N~sB$`=#e#}Iqddd}#Z6Z_#fee8?6DT$l54S@+ zD<6t4@nLbh0HOTixZmjeqz8`_LBV&@aqHNVw) z;58Is;(I84B7aHG%g5cZ!8dYiR;wXzZfO7YY+<|EhV~t7(;}&JD$r;O_2LA!sq@2~ zzrZ0prnQqN$9M=B8n#bp-@s<;oJ^QZfAUM+7DA{zoOMlnc;M#cQ*dT-`bsBYuR3C{ zr)=JyDKtfV~^*?$%N@d2@dOJe@R-L>n`r~IG!d|Pq%C%_Cpfi1qL8dou^!9 z9VeqL)61=$wOOnCMSO@g`(b-cgu5uoqbU<#0-5?{U&ExB6`(6^O3Zx>m7h3^m&!A{ z$~wG2lWe;g|Koa=z`(#WbX%xo*gnM6+;4GpKL?AxV|D)}+dc0P>fMyss~OaPe^%{t zHx%3dWMZ9XyIS_6z7j?R&!XNTT&`tEf;EH(*gw10XK&i%y7ocBt%TGsZyejZChc-Z z-+;N(TxFfvI%mW#V6OQ#;SDd@0v5!eSoAPg%K_9+0Evh_Y*T!Kj+A6=7q+<-hxK#J z<=U~>A^gPUI&*cOimh{1a6kbUiuEA~nCJ&wlE=5Rs0^$mYsN!8z}4`!T{3&KWJ>JK zO&1JHRsbPAgvwwE+pMt-=buElc#os{&zxm%w%COie4W7nd@^{On}$U%w7M@of+|kM z7GT}pWf%Vb!V0#jDKuaKD7R{!u4}u!c-;ADQP5;)sWqN^GvVpb=J4fL(1dY}Fl4nx z0-~|37w_rNoj+fG!a37JIqB)ZWVom|rR%sfR8-uVKW}WJ)wS>rNbAnuUbsmoeC@$6 za$>Ngw`7~Q8kyKOA2h)@9rU@rVs|R2JD=DzS9d1HPLD@}Wuin-w4GEEUthPpbeBRn8Y`91Gl&pl~xg;KYQZ~s9 zWwcO75TlCxN>>wdB#H=YtEFT?r#Ti*-=%?gRE=4}TY#kw-(SY@lS4b9+9)8DDY{4U zM>mF82;@ry`O*1%qVNt6ohCTV@5RTFX#@X1ZS=W2h+-)BeF)XrsT=<8E=IpOkP=b z^47wZmu_B$-3k*CCgsyyU$Lf_&F&x06qFZZM9TScjqjL3x(T|v+Zc0U z4-Qt#F(U6a)~Z}=%~CXaSH;a%V??|*dJkQ;%^Bt^Wp}}6xiK1Io&$Y>)4!SCG`VN4 z4tJQn7Q1rT2!@8Ju-{E*-K`E+g?Nv;Y_Io88lL8ks*5#+OtbCxttN!DOtGDJhr4V~ z_pJ)$27GmQdv`mXzdGFT;LtG%MEucja+kGlj(c(z6TF+g&JAe^Tor%cZ$l81eJlP1}U+v%<8zCfVHX++4iZ-;v_ zn~;p{SNHsXi6Pf8AiIKy#rvzf-_3)=h2Fz{;J`)5y7(Om4@=O7bouS{?O9(J;w-l! zkXgg=t2;gsj;Yti)H237%D;sfYc<``r<=D&VUUkc&vh&%EnVQDx*<409|LjZC80_A z@PyoVTxoUG;Iz!>x^h>ZB{>(e#;X4JVZz9CuX$Qlz9bICUPLLuK4wX?ib-GU_y-P) ze<=viC2f{CxI*iiXj;|`B6g#DS~iz%`q|8R?{V{-$`^4m;Ekkm_RD+V#U>WXvQr{c zAj-ci6v|I84ygI8VAa;&w%H16<#P8!2HOMFzcZ&iMUkTB+qaX+bVwx%_HvKQ4`=3j zaN!Eq3QztT)s7hp4JGY$zP$L&rn~EDW$K=nxH7+U?zz_NID$eA{q2cFIcrSLIKfg& zG8;PqvWq{RP@qL2c|OGeA!7RG<>`T+rP`3@b%wD-hor4_f6p zfwF=5fI=Q2M(R+-1#Ts1BvN-G$Vn7T{I(1P)E31IwOgJ8htyuX-Y2>bW&IVaUzXZX<_@80 z`R&>%wGpk?msCI4K_t|d#JPj;KxKiBBmT7)IVef2%rnFE+)Efzp>` z_*cwlOjkXcr%3a=T`)~we+LqNbSiD4>;ce&WDI)JGwUHx`4jlQUL?=JT}22Dnc(jo z7?#PqR(Az&foNoWc)0lHA5aKQQ+z~G2u;V)Ep>AwO7E?!eiY9i#WCXOq$cGDF%b-w zOb>y%Eqqz3=144q(Sfj?tlg3svFS+&%k>b3<&48b-yKH8k5>x7_WTh zG34+7@L?^+2p>Jaxdz9?6j1g0k65|-*t`}JMuhlnr#p(;KuC!hMYA0-liEp;EO;Zj z4#%Y1KA7gb(>;RqhZ7fo*x?E7!@DS(&Kr2IN zbU!+{Mm_T^9nR)`FG!Mn%2qp>oe}-p;;sC#-R}3>1A^mOxM0aEGw0uL^#Ja_E%g_r z&n{dC){YzSW+0$xxZ^50VvB?pcTI*NIO(~Td&|0!j=uMM!3Z{f^sQ^;7k413-B~S| z=0bu}{0PyQ6tZXCyIk-Y@aF&l^Y2T-W9tk5&qtl(*~(&AIr3BXu5~Td20UleTCO1d zTfrZr4Q1&~M5FG<_W6#h(pNbAeMxoCQ_t-GrvJrr_h-HKrA?51%ku_h5q0hOYWFLS z<6!Q71Eonsu+Gti5BV>nL+QaPL@fjtiFSj8ZN#CD;&@JIO#6}{l0{{s=IXzd^Hr_ z{b18jIDQ4r>f^^LWMZv3cE+;^A~Wy>XSwa$XNr_IHCKO-DyunOkS=plc~0|jimf8U zbCOOH^>H$jQy4^A6f>MpaceWUDXczb0xOs<&(4<(Nq`(xkZL?P7U#;IJgJFmj%$jU zroHVAEEZA(A}yVh6y)_6zb1i=7IW1NLZmbmYz@}gkLGitQIGUEEvOBA zv&xyKv8ajj_w_Zi_LImAZor0%q833p6OJmFs+?tN8y{-{!xgU5%bBPw43>S4U{%!{ zLL#MYv3yC0^AIXLtlYVVhF{fx-JyJRULvIhB7l3IzW&+OLAjp38?uMT^rMM2@2fn0 zAE=Ewnv}b{5nA2dUuHYI&ngb*LzlUY{9pYR^*L%!jE-C`bFD39;x#b1VXQtj?CuV^ zEGSk(5vw#`f0|pKE7Ksti!-<}_?A*$Ra{-~q@ocX9a;7L#zNA<)M!xy8XZ~v*PyE# z(D|gVtiZfaN+6?S@ad?!`~91&_K*L*{_|I=Kj>@lmJ#=n`Itg3l1yc){RrZ%OlxI4 zFvsH^OaB($dLoIr+)|FVK3{)8r~to7RMY6p&!sjc{NXln(_7EE+``UVId&t>X{wDW zxhyOm$V6L?hUc{0;_3nfJ3&2UW_?>3OU!4x`4t z_gg`J6E~+nyYjzUSn{GOk{i0DC(Y?=A2jQQ+I%}LjISAHr@nwLyN z;Ig;XanN~;EIj?>&$8L_b-JGnfzz@#CICevTz?>T76i|47`s`!sgy1^pXIv<@++%9 zD44w9Ux+-RYAE762=W8mpr}7!w3zj<0*H9bXB%lVI`ds287EY_Y-d516Be^gt|avb zHe+4+f-g%?BumX_Uw7x1!~qwws>K5NW$)96^pmc%`h!Ku z$08pYe$Hj@sm}ZeFB$%m<2(-;t9qtL`Q;WsL~iQ|6?D;S`TF}E=km2icm8xqa)bHo z4$MoYgX(_~3O{aW&riPr;nQ9Dvp}hW0Z3&QvxeRIUo%I^pz?t%6^aHBiRx}hn3 zycU6!>n*`euof{J@YI;AyD7cybz!0RRJ{)Z#hn}PX$#)>k#`Ac4}@y%G@<$b`nH?P z`Dv(~#EKzC&*k>N8=*GX5a+NCns&U($QO8t)9k>fn_olRtCqZv567J zxDJWTQ=Ix8#x*2?q|K!%q-}d2h#_gX`rBxK8m4#XwQ-^kQV`$erA47@iLGO3C6VQ>n!-r zUUV6Sh;151`zO2d;prJor)hWxQf>H^CcXTe?*p^?0i9+Zul=cJF9v%ccG_UncYEsqax)&F6@e@m_>nXj7; z!IJIQ$AaL$wGXbG^u@g>MIhZXJ0uJ1WA+xcyl>SXs@+N*)M-Xw`Nz_-EvL%$^%RLt zW(QYI)ijb-F60b@rUS6PEtE;hg%WG^mqrIyp3O9?@8CY4M-NJy-Ez&v5`f`p7@Yh} zFY(Cg>){pHp@jqfo1?`fI>*g9?Wo;!(bbo1eMxM=^-HXqGacjy@Mw>elXj_9*Uzuk zTyMe!@p`r~s1~mC&fDeDw1;4RQR_>DIqj+IORSTy_5z4HO%D%)z4~l1qMK)?hZ^3x zka)y84a?sL`F4b~FW_Lo^3M+HF#ycS zEyQA37vB0++(8x&v-C*~V=>$>X%C)~J;;qg=p;v=vbU$X;T$lq$J1y@0c6kNT-7i-Hq@rbdf zuFwY1lH{O{;DY}KPKQWBevG@-5PUF^9feuib=-J;N%uE9^Wi>iFAk`rTClRp5nRs_ zE;n0sMLRqNwy1FT)Cr;kZd1X3r(Cp?3zye{{ms6<7z!ALDI@(A?tKi}Q+YBqtf%F) znpDkTx!=|L_3Kp`?H|0Xihd+A?TjE`liX+6)Ayh<;CF&Z{&c}d%!oNwTfUUuUgZxWU8?vy0w z8?XJ%C2fT#h#*aUW$7%u4pw1aAeFr_f^-(yD%wBj4QxfUUA=nAD?)oJB1HdAGgxkm zXq{wBXq^!FchY6FU0c)>=`4aZw4PXdn1fe|f>?X8A1i37fWdEyiAi6)hB0i1f$$@Y zUR|pU7C1GJv;9OWXALbD*4~(i7NtwW1W~YQmQJ!y*#uFuc8r}p3QUpbuue=6u@Ds?`+59l`;#?lRHQ@iw zq|5^+7pUI(JqGtaRMrO5nqA&|jN)3x-W$vBs{C9TR#N;i>)AMHL!3m#6R}d-wC+~R zN*Q@gs>b(U&pjKet+L{oa9~k}kS10!B6arZRaOwt)vaZq?}-V;OWk&uWWZ$`Z;N!O z@l7h}HR+@fU*d9vdklZn9yM3qt?}30J?iPu70_{S#l8P;s7d05}!@!1UXztkI5>8~G=U=c4}XaNI=8b5@}L3XWH?OiC`D zlD<3Zr@Q z@~0t8HcXT7dqP~AbnVN~0QDiQp9c^HB5@*_06#0MxAO%7yTj2WpI&5OOo?We-Wv<9 zHu3a_MMwkTatmr{+%6zu%dp4<~feod^zy>(~H8LJo06l%YO z#2O2Go?LDjyBcThfWrz_B1muXptr1_>9#{jKJ00d(B-^i0Y7ZJ~ z-+UxELW4P)Szuxf&D2#!*~Z&+MSo|bRtN#HAusk{YHSBJrlOq3VH~CQ% zF^J(@MPn|B6R$f}MYh*yBEl^`HFym!Dn{qC0IWwq8^9Rrn+cVLG!PBuL$*)5&iZpn zIc_Yw?pGZCr;A`me>uHdHXy&H3I&?V1_PC5@x6 zE5_}53mvj$GX4?x^$m?orOyCu9d|^fkE)!V&c|CedH22CxWU}CB#n=Eno6H0`g*4j z$f{rET9fIIc@)-uj^IFKB33!S=s=#PFB>I`hJbSt7TiuQv zAS$7)cfy1RP~&zJfQkZ1)MJ^Fb`yS}>c#H9AL|ifgLR>gFPB*9T8IDXdQ<@w@MHfc zJ>S~}vH%e0TC1i8SK>%e`HoGUPJSV)5~b_y3H`yZS-`nr0W*g!h-AM5Zq zKvIq|xle@dQ9O%ADi*vV-0gCv8nb&m*LtSmwfNyTE`XotLSm|?WNd&B5`IMHb(!-T zUyN*QpbS~kQJv0ft~52GP7&YFcWeMAIIx1fTPU~$(ANRIAua=#ALInnM3$%mTF4L6@p2qGQQXk)QIl`r~t+PV)f7^SKg`% zRPqCZoOU;F{MwevQzQPv!Ig}?j0SlDd*kYBUgKM)jlGTuPL0HJpe$PAQpC@n zG490H5P;QTkxU(>ix0qrNT!}{SyLl6Wk2Fd-m_{56#B5GMyR1nI>yoR2n|@4f8|0Z%o4c&P8p z<{V6^R9KJCu%ChH^J8m>0~t>;7)Bm;OUxj4@n5>7_ z*!a#6HU6Xmv(@!~2}!!B)K*tEUj_l#ANGocCB$KV?}Lp~{!;)^MwPO=v^nU-Bt_W) zqy9MiuaulTOc52L%D|BrsxX3=Amp2Y3Z=qnWz-)kL>#IIZxjm!-4qM`*pZWf0{!@r zpSmv17)Zm~Ex45m9k`K2oroM+lnT!hFn{~VmMIlpE2DNhC>FL5hkdwEEIa{Vq~qj_ zI_L?3Du@nmzF?+*BJiIIWLGM5`~T#0X6;F?*WLA zk934#`FG57w_h-S2d&4+y=O)Kd{Bqk3e1c~DyGk{Ps>Xp$CX&Q=`>8A5aO`t66U#N zW^K%qcILTC#X=_K`p5S~j_>7A-}y1mWhi}2BMHj^vRz;LiK{6VMnj$f699ErVAOX7 ziiOK1%-UH*VSb&x^^>u3F`qHNccC!PU3|v$k!D8TTL_HJ6Jws+@5J;0*v$Yp7wi-Z zt;~ojr(@*~5;1)gOSXeEnYH@_t8(%VfW%IcFgOddcJDn0G8&GXS#T-l_g%nEUSwYy zqC=&4xhvtd#VIPH$_3^*jP7cuQcP0cY!>D@8$iyPCTcf5Nm#oUvo=J0FBVWm7y(>! zGNTd1VYXco%*d{YL`;$G0Z|QQ)Z=u_@284|lfV(6K?6Zc64uR5bQs8jOgGQ0eaC~W z)c>mnla!9FGDGl<2jZ&0L-0PlQ;7q|L%Jnd(TN3WWL!O{92MW~$n4B!-sd6i0a*oE zLj|~K(#@{ah}ffEhhNRo87=$gnct)S5SL8#+~fIM)SJM-2Ell*w)WASj3Ut1-7|Rq zaU|na_pg2w)G1O;46zuG_eW5IEtOvGOYdMDi2AbMy^Y^D0aZ?yvRmYrf{&9D z_%5T{eOGz0rFeWTd7SM|a@5uuwEwWK(P&UkKZo`;{yX~kFsqLpykMuhX`zAL%dHkR zdI{yctk5d&-)S$`+Z?LU+x#~Oy*4xTI`6GX&C8`8?`kSH_WDqhmiL}j(mh8@ZRVhL zxA*La9rk0ho!%xQp7fqF+z5Jo?TjrAI#6)JmQMesqdEiOLZfd%=e#U~UYmet>Qux0 zRl@i)^7x&XImiDnf)2(>19);rI4?V!biLf{u^&xJ`)9qy(0+1^|EUr|`}zLWTis1} zs_`zh(tdykxqksKG8{6lDM3^;q|YV!iE2F1UES16_N^C%i=o#!6nZUM(36s$S2Co- zC)oi|Hm%fsQJqnc^?wbX(NOmKX;8ZM38FOdrADQTponj;53DxRlav0C0`9sHhF-Tb z`!hwxr#}?rtVQtyMf{CQ`L7rPqK48P&bzF{-N%<{UhWCr6s^0#`NEuc3L58wDOz2? zT)8i3?DHu`ylK!qPXHZQWP!WH_qu>pF8b2lVBltH7f$E^S^1jQbt&jT&RAuBFoyPcj9092j|WzO4u(P(5y$Bd#N%BV(Ch4%BpF^-AV~%x z==IVAKt8d{Hyk|i1)BGUQ}Qd4S5H>nn~a`9)`S18=YNUAmsnQBproSHX83MN`M;kG zblQa9XWF;EVyyXP!CevXrOoyO>a}))KFSWd6A#4aL06hCxWj_< z`*Vp0LRkr8n8)oU$69+v=h*`lV;sVbkWM=u;g+#rtD~7vHRH4;47_}IYU1(LOt6&V zE%q_ZJI*7wns5>{lHmQJuH7@c+3r62nfyLkkX({C7I8c8^zAf{{37Cq4VxpG+k3;# zv%WzmBB9PRn>>&kf=q%p6d^Y6lV>{wdy! zt#aL@#uG8&^o@9 zyYP1MrZ|s$59#WG#As_e99#TWY30Wi?Fj4&rR6;j z#0;w^qJGK=Y3&v)#Tz8SJKuT6;fW|;ar)-qfnYL?L&(yk4Yy84~ zS})U0Y*x1(&S6)6;to37v6s9P9*9@O9cR7V9;SpHbn$uQ!>;f5T3<{nZ?{93+}>yY zHwA!MxE-!SovwgG%ZUqvZ#@x)TkUmTru{>|;}L#<#Pg(ox3B&hoxU&<=jb+9$Hz{oMxdt*wj`MrTDC{TibfoA~3YHn;oHK!-jX$ysgLHP|8?>P3 z7bId#bGc+BemP^2PbqR2@@%ygas)@w=7ZR%LF-IxrwMZIY$Sf{b7tvsv-_|{(?Wk{ z50z4EZeAFfL%jlHG^_oG?qqszD2~6ta0MWOIl7rCzg8 zoQut+RA;jjh{F60$0fN{w_kl7X1Q_jALz0Q+o^bVBO3A-S(g9G$z%)RoNM7nmdPSI zi~?en*=mUod0&QErl_wtYZkr*ku3F697bs~&MDw(hGV@pkh z%5JofFEr|p)Bq|3k=!mf@cswIp4~|CKNW%5SHx z(OLjNGS-O+r-v`Hi~`$fjhy@D-Wh6;hH~Mup@0pigajSMVW1Y9ORC&#X?EiY35g%~ z9L))8kl0Wpp4}il#i6eS8p)D&bg+3L1%Ri7{DpNo@^icTN(u58PL{cc837yK?8Z^F zpcw-J8!fv*uCSkvTyxh@EN5@zFMvw%!|PJH*c-{>Gq%%i z2UsJ88r!LVG!{Zu(8fr}<|)T!P)tjGrQw2qJkkPSNwXV-i;(zLxQVcpxS7AIa&sx` zZejqQIlZG>;`Vz$%@^`m+3lHr47azCt#W((P)YOfrTbf8jE+vZn|Y&pMm3F5UaHk% zQiqx0x+C^tQkd!Hm+mH~ZDnfk5DNt53X=yZ~CQ2 z^CK=$dUqRt%LTvrOnqlV`6M#pf+VG12Z_8Q4da|%;IGeiC7C+l-9{mSZi~{t@3a~X zL>EpGM{1Bs_iD^wCr@)`^~Hlxc9Pxabe_3*+c4@5M0QQQ9!jDnGce}ad>Ha)e~VIe zcdzgm;S7H!xJE+3pOpHP!|~DjSIb^P1noo0O587rpk=`~kCKLO>oay=Y3nJ+nJoLQ z4M2W)r)+LCHK!FNKS<7!aOJ{Q0!UsNW|DhDX*_QofDhujHjGVAp?~6<-bfJ>uB@cC z@FZKks~wODJH~iYSc<*UmXPiw5dP*uU_|MDkL32_QuNE6J~DG8T?0qvx}fR4{nksU z6>0(zf9Qjk+s?`?d*t7uX`fD@Yb_;#Ip4DH(^IZ4_Zuw*5p)vlV$jE*iSGw z^S+9UG*A0B|Adb=-E7$zwD1@2VhAt)GJVB;P>G*dMLEckPGnIkCq1-*ZS`zELq3l0 zRW{wHs3@|v+wb?0ZvF^}9+kx+AT>&GAJxkaq_y=dX>1tLgY=LIqgg$^eh_Lc-Lk5b zC`YDlU`q7UFStVeBUuZ!xhV;cFwTEZbRb?C7Eox<_{&N9Dr9y5w+WY>v7W&y^9F6r zruc>6dJ4Bv*{<+-bpxZx2=4gtOND0a5fC>w*w7-`ZVxp6?pa{G+9_9L{Pat?{KF zC|l#MP&<3q*8$DUCUs`ej8qUeV KgKW}&IL6x4{7P_47Y<)ZRHsD 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

$hwMGO$L+u?zM(2V^o0t)vaAWO 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

>QFb^{YL;Foc8w*60Cq?PDWflWhGVV^| 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

_QnBA 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

&XXJ*8c(-e84i)qOHd}q|< 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%0D5`TVDSMa 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�cjGa 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

mgc7oekZ%y!f<@{_}t)fyg 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

OJjn~W(?ZPbs`y@81=7^3}?2;>3);c*>Fy!Wv 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

uciBpiya)sq#zS4)HNUdhkB;C(Ucuj}GFap=b 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 literal 0 HcmV?d00001 diff --git a/linux/arch/.config/sway/assets/fishing-boat-sunrise-hd-4k.png b/linux/arch/.config/sway/assets/fishing-boat-sunrise-hd-4k.png new file mode 100644 index 0000000000000000000000000000000000000000..f72fbed12c2e6a3cb534d53479bb5961ca34e55f GIT binary patch literal 101727 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 L3Jzhm>dcPNBW#6G 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%0A; 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 P00000NkvXXu0mjfRQF|g literal 0 HcmV?d00001 diff --git a/linux/arch/.config/sway/assets/focused_inactive.png b/linux/arch/.config/sway/assets/focused_inactive.png new file mode 100644 index 0000000000000000000000000000000000000000..0c7ddd2eeb7d59c62688e3ffb7a5a23e805a3192 GIT binary patch literal 792 zcmV+z1LypSP)R8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10;Ner zK~y-6t<~R4Q(+v(@%QtbBWLBT=4#MFFPfASe^M7kv|6wTDuV2y%nKj6%} zpvwp?*1iwF+jzz?Cs8nZ{Z3oTm$&Xey=abNTT7zBuQ=`8-Pg> zg%GXn`x+iDLc0fE9!81>dDGNlH?NU?_ini_GnXwjwd`p*gYGaakViZA*FTy=yN2W2 zq{XwmX|8*6`4SUfKK~Ug#O3u8I)4G(VN57x?d%NhNJ;={iymNI?B?|qfdJprX=1l- z0IU~6>j4mvXuL@%UW_K*5WRY3Md1AGKYI>ub&bNdnEv}$l>KMEj}l+98I z70R0?Uq6i$g^rCRnKp9>2uYwKo5^5XR#B*JS!BOu04gQm{$>6w3M?e|a|&Ri1jdau zYyS&slsW-25<#lWy$PvlMS)V+aF&+?q$JRW0|ot3+UhPqbs$(2 z>Yv$Hy3~5*Y<=DL`u%LFsa+LVQCr96?bRT-*A}RIEdi9W!ob9ymNU4#-W7qa&0cn& zYz6qCqzuEnmYS`-zG*Y3#cthTH1X!2o^aQx)07yFX>5*k9B6#J00oFd;|GP}4zMBp zJ~7j$Bgq9nhSW7YzAF5I;LIySRw`P;!N$JA%%bLx3_hR8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10;Ner zK~y-6t<~R4Q(+v(@%QtbBWLBT=4#MFFPfASe^M7kv|6wTDuV2y%nKj6%} zpvwp?*1iwF+jzz?Cs8nZ{Z3oTm$&Xey=abNTT7zBuQ=`8-Pg> zg%GXn`x+iDLc0fE9!81>dDGNlH?NU?_ini_GnXwjwd`p*gYGaakViZA*FTy=yN2W2 zq{XwmX|8*6`4SUfKK~Ug#O3u8I)4G(VN57x?d%NhNJ;={iymNI?B?|qfdJprX=1l- z0IU~6>j4mvXuL@%UW_K*5WRY3Md1AGKYI>ub&bNdnEv}$l>KMEj}l+98I z70R0?Uq6i$g^rCRnKp9>2uYwKo5^5XR#B*JS!BOu04gQm{$>6w3M?e|a|&Ri1jdau zYyS&slsW-25<#lWy$PvlMS)V+aF&+?q$JRW0|ot3+UhPqbs$(2 z>Yv$Hy3~5*Y<=DL`u%LFsa+LVQCr96?bRT-*A}RIEdi9W!ob9ymNU4#-W7qa&0cn& zYz6qCqzuEnmYS`-zG*Y3#cthTH1X!2o^aQx)07yFX>5*k9B6#J00oFd;|GP}4zMBp zJ~7j$Bgq9nhSW7YzAF5I;LIySRw`P;!N$JA%%bLx3_hR8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10*^^V zK~y-6t<=p+R8bhm@$Yj^%?vu%f;(*-9Ev1Dq8I27P|*k~f^1bGk&DU*TG`)_s}|)f zA}dz~niN8Wmbnfhq}pUJOje7ol3iz-nY!m`VVb2>IUmkB_c@QSM23&I??gB( zD$R=4Af!+Ngd8x0(%W#o>*-=^<fMVpB_*Q26dqi@L#a|mEVa;rL zKZcHmt6gJDqQl4A_afW`);<3c@+g>OtWdzI&ed2EYAY+KPx;h&Nq|sAk2Q8@?=CN5PVN*VXK%b4=S4WZ)XmIgo9EG*NfS3F643+o-PwC{=uqpKEo-bk{u;Tei?84C zu~_;mIGgH3oO7Eu5jSQE!|sNwU1J8oTJ2P*x-mY!ED+#Bu|!YqJ-|8~od7b@c50V% z=E<`#}W`yQj*0@l9>rx^(*d701u_Aso>{FFxD zpE)vwAV(UmT^^XNS list[ManagedFile]: add_file(entries, "common/htop/htoprc", "~/.config/htop/htoprc", "htop") + if os_name in {"arch"}: + add_file(entries, "linux/arch/.config/sway/config", "~/.config/sway/config", "sway") + add_glob(entries, "linux/arch/.config/sway/assets/*", "~/.config/sway/assets", "sway") + add_file(entries, ".vim/vimrc", "~/.vim/vimrc", "vim") add_file(entries, ".vim/plugins.vim", "~/.vim/plugins.vim", "vim") add_file(entries, ".vim/mappings.vim", "~/.vim/mappings.vim", "vim") From 661c9071d386522c28055192cf11574c2550608d Mon Sep 17 00:00:00 2001 From: Jean-Michel Bouchard Date: Wed, 27 May 2026 11:42:11 -0400 Subject: [PATCH 07/32] Tune desktop keybindings --- common/shell/.bashrc | 10 ++++++++-- linux/arch/.config/sway/config | 33 ++++++++++++++++----------------- linux/common/kitty.conf | 11 ++++++++++- 3 files changed, 34 insertions(+), 20 deletions(-) diff --git a/common/shell/.bashrc b/common/shell/.bashrc index a16f740..86da9a6 100644 --- a/common/shell/.bashrc +++ b/common/shell/.bashrc @@ -80,8 +80,14 @@ pretty_pwd() { echo "💻" ;; *) - # For bash, use \w for relative path - echo "\w" + case "$PWD" in + "$HOME"/*) + printf '~/%s\n' "${PWD#"$HOME"/}" + ;; + *) + printf '%s\n' "$PWD" + ;; + esac ;; esac } diff --git a/linux/arch/.config/sway/config b/linux/arch/.config/sway/config index 3a98948..647013e 100644 --- a/linux/arch/.config/sway/config +++ b/linux/arch/.config/sway/config @@ -3,9 +3,6 @@ set $super Super_L input * { xkb_layout us,ca - # Mac-style shortcuts: physical Cmd/Win acts as Ctrl for apps, while - # physical left Ctrl becomes the Sway modifier. - xkb_options ctrl:swap_lwin_lctl } # Home row direction keys, like vim @@ -61,21 +58,23 @@ output * bg ~/.config/sway/assets/beautiful-morning-4k-3840x2160.jpg fill # Basics: # # Start a terminal - bindsym $mod+Return exec $term + bindsym $mod+Return workspace number 1, exec $term # Kill focused window bindsym $mod+q kill - # sshot - bindsym $mod+z sshot + # Screenshot + bindsym $mod+Ctrl+Shift+3 exec sshot + # Start your launcher - bindsym $mod+d exec $menu + bindsym $mod+space exec $menu + bindsym $mod+Ctrl+d exec $menu # Window switcher (like macOS Cmd+Tab) bindsym $mod+Tab exec rofi -show window - # Clipboard history (Mod+P for "paste history") - bindsym $mod+p exec cliphist list | rofi -dmenu | cliphist decode | wl-copy + # Clipboard history + bindsym $mod+Ctrl+p exec cliphist list | rofi -dmenu | cliphist decode | wl-copy # SSH windows bindsym $mod+Shift+q exec $ssh-menu @@ -161,12 +160,12 @@ set $ws5 "5" bindsym $mod+Shift+v splitv # Switch the current container between different layout styles - bindsym $mod+s layout stacking - bindsym $mod+w layout tabbed + bindsym $mod+Ctrl+s layout stacking + bindsym $mod+Ctrl+w layout tabbed # bindsym $mod+e layout toggle split # Disabled - using for file manager # Make the current focus fullscreen - bindsym $mod+f fullscreen + bindsym $mod+Ctrl+f fullscreen # File managers bindsym $mod+e exec thunar @@ -176,10 +175,10 @@ set $ws5 "5" bindsym $mod+Shift+space floating toggle # Swap focus between the tiling area and the floating area - bindsym $mod+space focus mode_toggle + bindsym $mod+Ctrl+space focus mode_toggle # Move focus to the parent container - bindsym $mod+a focus parent + bindsym $mod+Ctrl+a focus parent # # Scratchpad: # @@ -187,11 +186,11 @@ set $ws5 "5" # You can send windows there and get them back later. # Move the currently focused window to the scratchpad - bindsym $mod+Shift+minus move scratchpad + bindsym $mod+Ctrl+Shift+minus move scratchpad # Show the next scratchpad window or hide the focused scratchpad window. # If there are multiple scratchpad windows, this command cycles through them. - bindsym $mod+minus scratchpad show + bindsym $mod+Ctrl+minus scratchpad show # # Resizing containers: # @@ -215,7 +214,7 @@ mode "resize" { bindsym Return mode "default" bindsym Escape mode "default" } -bindsym $mod+r mode "resize" +bindsym $mod+Ctrl+r mode "resize" # Assignment of apps bindsym $mod+Shift+f exec firefox diff --git a/linux/common/kitty.conf b/linux/common/kitty.conf index f7fb83f..b68183d 100644 --- a/linux/common/kitty.conf +++ b/linux/common/kitty.conf @@ -32,7 +32,16 @@ active_tab_font_style bold inactive_tab_font_style normal tab_switch_strategy previous -# Linux Keyboard shortcuts (ctrl+shift+) +# Linux Keyboard shortcuts +map super+c copy_to_clipboard +map super+v paste_from_clipboard +map super+t new_tab +map super+n new_os_window +map super+w close_tab +map super+plus change_font_size all +1.0 +map super+minus change_font_size all -1.0 +map super+0 change_font_size all 0 + map ctrl+shift+q quit map ctrl+shift+n new_os_window map ctrl+shift+enter new_window From d82bdf4ed96c921f62fa75c1ee1e2b9a73469f50 Mon Sep 17 00:00:00 2001 From: Jean-Michel Bouchard Date: Wed, 27 May 2026 12:17:52 -0400 Subject: [PATCH 08/32] Add Arch-only personal-pink kitty background Override the kitty theme background with a dark plum (#2A1E2E) that coordinates with the Sway purple/pink accent (#9d5a7f), matching the jm-home-box machine.toml style = "personal-pink". Scoped to Arch only: install.sh overlays linux/arch/.config/kitty/*.conf over the shared common/themes after copying them, guarded by DISTRO=arch. macOS and other distros keep stock Catppuccin-Mocha (#1E1E2E). Co-Authored-By: Claude Opus 4.7 (1M context) --- install.sh | 12 +++ linux/arch/.config/kitty/current-theme.conf | 85 +++++++++++++++++++++ 2 files changed, 97 insertions(+) create mode 100644 linux/arch/.config/kitty/current-theme.conf diff --git a/install.sh b/install.sh index 8aa7835..6faf628 100755 --- a/install.sh +++ b/install.sh @@ -346,6 +346,15 @@ install_terminal_config() { log_success "Copied $(basename "$theme_file") -> ~/.config/kitty/" fi done + + # Arch-specific theme overrides (e.g. personal-pink plum background) + if [[ "$DISTRO" == "arch" ]]; then + for theme_file in "$DOTFILES_DIR/linux/arch/.config/kitty/"*.conf; do + [[ -f "$theme_file" ]] || continue + cp "$theme_file" "$HOME/.config/kitty/$(basename "$theme_file")" + log_success "Applied Arch kitty override: $(basename "$theme_file")" + done + fi else if [[ "$OS" == "macos" ]]; then log_info "Would copy: darwin/kitty.conf -> ~/.config/kitty/kitty.conf" @@ -353,6 +362,9 @@ install_terminal_config() { log_info "Would copy: linux/common/kitty.conf -> ~/.config/kitty/kitty.conf" fi log_info "Would copy kitty themes to ~/.config/kitty/" + if [[ "$DISTRO" == "arch" ]]; then + log_info "Would apply Arch kitty overrides from linux/arch/.config/kitty/ to ~/.config/kitty/" + fi fi # htop config diff --git a/linux/arch/.config/kitty/current-theme.conf b/linux/arch/.config/kitty/current-theme.conf new file mode 100644 index 0000000..e3f47e8 --- /dev/null +++ b/linux/arch/.config/kitty/current-theme.conf @@ -0,0 +1,85 @@ +# vim:ft=kitty + +## name: Catppuccin-Mocha (personal-pink) +## author: Pocco81 (https://github.com/Pocco81) +## license: MIT +## upstream: https://github.com/catppuccin/kitty/blob/main/mocha.conf +## blurb: Soothing pastel theme for the high-spirited! +## +## Arch (jm-home-box) override: matches machine.toml style = "personal-pink". +## Only the background is customized to a dark plum that coordinates with the +## Sway purple/pink accent (#9d5a7f). Stock Catppuccin-Mocha base is #1E1E2E. +## Applied over common/themes/current-theme.conf by install.sh on Arch. + + + +# The basic colors +foreground #CDD6F4 +background #2A1E2E +selection_foreground #1E1E2E +selection_background #F5E0DC + +# Cursor colors +cursor #F5E0DC +cursor_text_color #1E1E2E + +# URL underline color when hovering with mouse +url_color #F5E0DC + +# Kitty window border colors +active_border_color #B4BEFE +inactive_border_color #6C7086 +bell_border_color #F9E2AF + +# OS Window titlebar colors +wayland_titlebar_color system +macos_titlebar_color system + +# Tab bar colors +active_tab_foreground #11111B +active_tab_background #CBA6F7 +inactive_tab_foreground #CDD6F4 +inactive_tab_background #181825 +tab_bar_background #11111B + +# Colors for marks (marked text in the terminal) +mark1_foreground #1E1E2E +mark1_background #B4BEFE +mark2_foreground #1E1E2E +mark2_background #CBA6F7 +mark3_foreground #1E1E2E +mark3_background #74C7EC + +# The 16 terminal colors + +# black +color0 #45475A +color8 #585B70 + +# red +color1 #F38BA8 +color9 #F38BA8 + +# green +color2 #A6E3A1 +color10 #A6E3A1 + +# yellow +color3 #F9E2AF +color11 #F9E2AF + +# blue +color4 #89B4FA +color12 #89B4FA + +# magenta +color5 #F5C2E7 +color13 #F5C2E7 + +# cyan +color6 #94E2D5 +color14 #94E2D5 + +# white +color7 #BAC2DE +color15 #A6ADC8 From 8776d745acf54491d06cbe4ea6b98a18b23136eb Mon Sep 17 00:00:00 2001 From: Jean-Michel Bouchard Date: Wed, 27 May 2026 12:46:09 -0400 Subject: [PATCH 09/32] Restore rofi-based sudo askpass helper The cross-platform askpass script (rofi on Linux, osascript on macOS) had gone missing on this branch, breaking sudo -A. Restore it from abfeea3 and track it so it stops disappearing. rofi inherits the system theme.rasi, matching Sway/Waybar/Mako without any custom styling. Co-Authored-By: Claude Opus 4.7 (1M context) --- scripts/sudo-askpass.sh | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100755 scripts/sudo-askpass.sh diff --git a/scripts/sudo-askpass.sh b/scripts/sudo-askpass.sh new file mode 100755 index 0000000..9e5fe1d --- /dev/null +++ b/scripts/sudo-askpass.sh @@ -0,0 +1,22 @@ +#!/bin/bash +# Cross-platform sudo askpass helper + +case "$(uname -s)" in + Darwin) + # macOS: use osascript (built-in) + osascript -e 'Tell application "System Events" to display dialog "Password:" default answer "" with hidden answer' -e 'text returned of result' 2>/dev/null + ;; + Linux) + # Linux: prefer rofi, fall back to zenity/kdialog + if command -v rofi &>/dev/null; then + rofi -dmenu -password -p "sudo" -l 0 -theme-str 'window {width: 300px;} listview {enabled: false;}' + elif command -v zenity &>/dev/null; then + zenity --password --title="sudo" + elif command -v kdialog &>/dev/null; then + kdialog --password "sudo" + else + echo "No askpass helper found" >&2 + exit 1 + fi + ;; +esac From 1ff961423733a33baecf3690181e087423167121 Mon Sep 17 00:00:00 2001 From: Jean-Michel Bouchard Date: Thu, 28 May 2026 15:44:37 -0400 Subject: [PATCH 10/32] Add default git commit template --- README.md | 1 + common/git/.gitconfig | 2 ++ common/git/commit-template.md | 13 +++++++++++++ install.sh | 1 + scripts/minimal-bashrc.sh | 4 ++++ scripts/quick-install.sh | 1 + scripts/ssh-copy-dotfiles.sh | 1 + 7 files changed, 23 insertions(+) create mode 100644 common/git/commit-template.md diff --git a/README.md b/README.md index 6b66d1e..fe9aaf1 100644 --- a/README.md +++ b/README.md @@ -69,6 +69,7 @@ dotfiles/ | `.bash_profile` | `~/.bash_profile` | Bash profile (sources .bashrc) | | `.bashrc.server` | `~/.bashrc` | Conservative bash config for servers (minimal mode) | | `.gitconfig` | `~/.gitconfig` | Git aliases and fuzzy commands | +| `commit-template.md` | `~/.config/git/commit-template.md` | Default structured git commit template | | `.gitignore_global` | `~/.config/git/ignore` | Global git ignores | | `.gnu_aliases` | `~/.gnu_aliases` | GNU coreutils aliases for macOS | | `.dircolors` | `~/.dircolors` | Directory colors | diff --git a/common/git/.gitconfig b/common/git/.gitconfig index 09473cf..8fde0af 100644 --- a/common/git/.gitconfig +++ b/common/git/.gitconfig @@ -5,6 +5,8 @@ user=woud420 [color] ui = auto +[commit] + template = ~/.config/git/commit-template.md [alias] st = status -sb lg = log --stat diff --git a/common/git/commit-template.md b/common/git/commit-template.md new file mode 100644 index 0000000..f080fc6 --- /dev/null +++ b/common/git/commit-template.md @@ -0,0 +1,13 @@ + + +Primary changes: +- + +Reviewer walkthrough: +- + +Correctness and invariants: +- + +Testing and QA: +- diff --git a/install.sh b/install.sh index 8aa7835..4409cbe 100755 --- a/install.sh +++ b/install.sh @@ -302,6 +302,7 @@ install_git_config() { # Global gitignore mkdir -p "$HOME/.config/git" create_symlink "$DOTFILES_DIR/common/git/.gitignore_global" "$HOME/.config/git/ignore" + create_symlink "$DOTFILES_DIR/common/git/commit-template.md" "$HOME/.config/git/commit-template.md" } # Install shell functions diff --git a/scripts/minimal-bashrc.sh b/scripts/minimal-bashrc.sh index 2d28c8c..2b0d6bb 100755 --- a/scripts/minimal-bashrc.sh +++ b/scripts/minimal-bashrc.sh @@ -4,6 +4,7 @@ # Just download the essential files directly mkdir -p ~/.config/shell-functions +mkdir -p ~/.config/git # Download server bashrc curl -sSL https://raw.githubusercontent.com/woud420/dotfiles/master/common/shell/.bashrc.server -o ~/.bashrc @@ -14,4 +15,7 @@ curl -sSL https://raw.githubusercontent.com/woud420/dotfiles/master/common/shell # Download git config curl -sSL https://raw.githubusercontent.com/woud420/dotfiles/master/common/git/.gitconfig -o ~/.gitconfig +# Download git commit template +curl -sSL https://raw.githubusercontent.com/woud420/dotfiles/master/common/git/commit-template.md -o ~/.config/git/commit-template.md + echo "✅ Minimal configs installed! Run: source ~/.bashrc" \ No newline at end of file diff --git a/scripts/quick-install.sh b/scripts/quick-install.sh index b1782de..13727c5 100755 --- a/scripts/quick-install.sh +++ b/scripts/quick-install.sh @@ -45,6 +45,7 @@ ln -sf "$DOTFILES_DIR/common/shell/.bash_profile" "$HOME/.bash_profile" ln -sf "$DOTFILES_DIR/common/git/.gitconfig" "$HOME/.gitconfig" mkdir -p "$HOME/.config/git" ln -sf "$DOTFILES_DIR/common/git/.gitignore_global" "$HOME/.config/git/ignore" +ln -sf "$DOTFILES_DIR/common/git/commit-template.md" "$HOME/.config/git/commit-template.md" # GNU aliases (copy to avoid symlink on targets) cp -f "$DOTFILES_DIR/common/shell/.gnu_aliases" "$HOME/.gnu_aliases" diff --git a/scripts/ssh-copy-dotfiles.sh b/scripts/ssh-copy-dotfiles.sh index 96d8d3e..0253fa7 100755 --- a/scripts/ssh-copy-dotfiles.sh +++ b/scripts/ssh-copy-dotfiles.sh @@ -21,6 +21,7 @@ scp "$DOTFILES_DIR/common/shell/.bash_profile" "$HOST:~/.bash_profile" scp "$DOTFILES_DIR/common/shell/.gnu_aliases" "$HOST:~/.gnu_aliases" scp "$DOTFILES_DIR/common/git/.gitconfig" "$HOST:~/.gitconfig" scp "$DOTFILES_DIR/common/git/.gitignore_global" "$HOST:~/.config/git/ignore" +scp "$DOTFILES_DIR/common/git/commit-template.md" "$HOST:~/.config/git/commit-template.md" scp "$DOTFILES_DIR/common/shell-functions/"*.sh "$HOST:~/.config/shell-functions/" echo "✅ Dotfiles copied to $HOST" From 91efed2075bce9c016050df80661f0020015ca04 Mon Sep 17 00:00:00 2001 From: Jean-Michel Bouchard Date: Mon, 1 Jun 2026 14:37:22 -0400 Subject: [PATCH 11/32] Add Neovim-backed editor setup Install Neovim alongside the existing Vim config and alias vi/vim/vimdiff to nvim when available. Keep installs copy-based with path-preserving backups and audit logs, and add installer/editor parity checks. Remove the GNU which alias and replace it with a shell-aware lookup wrapper so aliases are visible. Tests: make check; make check-editor --- .vim/settings/performance.vim | 6 +- .vim/vimrc | 5 +- Makefile | 35 +++--- README.md | 9 +- common/nvim/init.vim | 10 ++ common/shell-functions/README.md | 4 +- common/shell-functions/editor.sh | 9 ++ common/shell-functions/which.sh | 55 +++++++++ common/shell/.bash_profile | 9 +- common/shell/.bashrc | 18 +-- common/shell/.bashrc.server | 14 ++- common/shell/.gnu_aliases | 1 - common/shell/.zshrc | 9 +- darwin/Brewfile | 2 +- install.sh | 191 +++++++++++++++++++++++-------- scripts/check-editor-parity.sh | 42 +++++++ scripts/editor-parity.vim | 62 ++++++++++ scripts/test-install.sh | 77 +++++++++++++ 18 files changed, 459 insertions(+), 99 deletions(-) create mode 100644 common/nvim/init.vim create mode 100644 common/shell-functions/editor.sh create mode 100644 common/shell-functions/which.sh create mode 100755 scripts/check-editor-parity.sh create mode 100644 scripts/editor-parity.vim create mode 100755 scripts/test-install.sh diff --git a/.vim/settings/performance.vim b/.vim/settings/performance.vim index c32bd59..c0f3c9a 100644 --- a/.vim/settings/performance.vim +++ b/.vim/settings/performance.vim @@ -3,7 +3,9 @@ " Display performance set lazyredraw " Don't redraw screen during macros/scripts -set ttyfast " Indicates fast terminal connection +if exists('+ttyfast') + set ttyfast " Indicates fast terminal connection +endif set scrolljump=5 " Jump 5 lines when cursor moves off screen set sidescroll=1 " Minimal horizontal scrolling @@ -25,4 +27,4 @@ set noswapfile " Disable swap files (use version control instead) " Note: nobackup and nowritebackup are set in settings.vim for CoC " CoC performance optimization -let g:coc_disable_startup_warning = 1 " Skip CoC startup warnings \ No newline at end of file +let g:coc_disable_startup_warning = 1 " Skip CoC startup warnings diff --git a/.vim/vimrc b/.vim/vimrc index 8828bbc..69b6d82 100644 --- a/.vim/vimrc +++ b/.vim/vimrc @@ -5,7 +5,9 @@ " Essential encoding settings (must be first) set encoding=utf-8 set fileencoding=utf-8 -set termencoding=utf-8 +if exists('+termencoding') + set termencoding=utf-8 +endif set termguicolors " 1. Plugins - Load all plugins first (includes plugin-specific settings) @@ -36,4 +38,3 @@ source ~/.vim/settings.vim set redrawtime=10000 set synmaxcol=300 " don't try to highlight beyond column 300 syntax sync minlines=128 " don't rescan the entire file from top - diff --git a/Makefile b/Makefile index 9909f2f..af08cf9 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -.PHONY: all help install install-minimal install-no-packages backup-bash brew-sync clean-backup legacy +.PHONY: all help install install-minimal install-no-packages backup-bash brew-sync clean-backup legacy check test-install check-editor .ONESHELL: SHELL = /bin/bash @@ -22,6 +22,17 @@ install-dry-run: install-copy: $(DOTFILE_DIR)/install.sh --copy +check: test-install + bash -n $(DOTFILE_DIR)/install.sh + bash -n $(DOTFILE_DIR)/scripts/check-editor-parity.sh + bash -n $(DOTFILE_DIR)/scripts/test-install.sh + +test-install: + $(DOTFILE_DIR)/scripts/test-install.sh + +check-editor: + $(DOTFILE_DIR)/scripts/check-editor-parity.sh + # Legacy OS-specific targets (kept for compatibility) legacy: $(OS) linux: apt flatpak git-init stow-linux git-installs profile-source font-cache @@ -88,28 +99,15 @@ profile-source: backup-bash: $(DOTFILE_DIR)/bash_backup.sh -stow-common: backup-bash - stow -d common -t ~ bash - stow -d common -t ~ shell - stow -d common -t ~ git - stow -d common -t ~/.config htop - stow -d common -t ~/.config shell-functions +stow-common: install-no-packages stow-darwin: stow-common - stow -d darwin -t ~/.config kitty stow-linux: stow-common - stow -d linux/common -t ~/.config kitty stow: stow-$(OS) -link: backup-bash - ln -fs bash/.bash_aliases $(HOME)/.bash_aliases - ln -fs bash/.bash_logout $(HOME)/.bash_logout - ln -fs bash/.bash_profile $(HOME)/.bash_profile - ln -fs bash/.bashrc $(HOME)/.bashrc - ln -fs bash/.curlrc $(HOME)/.curlrc - ln -fs bin/bin $(HOME)/bin +link: install-no-packages unlink: unlink $(HOME)/.bash_aliases @@ -127,10 +125,10 @@ clean-backup: help: @echo "Dotfiles Installation Options:" @echo "" - @echo " make install # Full installation with symlinks (recommended)" + @echo " make install # Full installation with regular file copies" @echo " make install-minimal # Minimal config for servers/containers" @echo " make install-no-packages # Install configs only, skip packages" - @echo " make install-copy # Copy files instead of symlinks" + @echo " make install-copy # Compatibility alias; files are always copied" @echo " make install-dry-run # Show what would be installed" @echo "" @echo "Advanced:" @@ -140,4 +138,3 @@ help: @echo "" @echo "Direct script usage:" @echo " ./install.sh --help # Show all script options" - diff --git a/README.md b/README.md index fe9aaf1..fe0ea99 100644 --- a/README.md +++ b/README.md @@ -88,7 +88,9 @@ All shell functions are installed to `~/.config/shell-functions/`: | `ssh.sh` | SSH helpers | `sshdot`, `sshconf`, `ssht` | | `docker.sh` | Docker helpers | `dex`, `dlog`, `dclean` | | `utils.sh` | Utilities | `mkcd`, `extract`, `backup` | -| `fuzzy-vim.sh` | Vim with fzf | `v` (fuzzy file open) | +| `fuzzy-vim.sh` | Vim/Neovim with fzf | `v` (fuzzy file open) | +| `editor.sh` | Editor defaults | `vi`, `vim`, `vimdiff` use Neovim when available | +| `which.sh` | Command lookup | Includes shell aliases and functions | ### Git Aliases (in .gitconfig) @@ -123,7 +125,7 @@ kns # Switch namespace with fzf ### macOS (Homebrew) -Core tools: `awscli`, `bash`, `coreutils`, `git`, `fzf`, `fd`, `ripgrep`, `htop`, `tree`, `wget` +Core tools: `awscli`, `bash`, `coreutils`, `git`, `fzf`, `fd`, `ripgrep`, `htop`, `neovim`, `tree`, `wget` Development: `node`, `python`, `rust`, `poetry`, `virtualenv` Kubernetes: `kubernetes-cli`, `helm`, `k9s`, `eksctl`, `minikube` Infrastructure: `terraform`, `terraformer`, `tflint` @@ -152,7 +154,7 @@ Example prompt: ``` ### Fuzzy Everything -- **File search**: `v` to open files with vim +- **File search**: `v` to open files with vim-compatible editor config - **Git branches**: `git ch` for interactive checkout - **Git commits**: `git flog` to browse history - **Git staging**: `git fadd` to stage files @@ -222,4 +224,3 @@ The installer respects `CLAUDE.md` files for project-specific context. # View installer help ./install.sh --help ``` - diff --git a/common/nvim/init.vim b/common/nvim/init.vim new file mode 100644 index 0000000..ccaaf16 --- /dev/null +++ b/common/nvim/init.vim @@ -0,0 +1,10 @@ +" Neovim compatibility bridge. +" Keep editor behavior in the existing Vimscript config and load it from Neovim. + +set runtimepath^=~/.vim +set runtimepath+=~/.vim/after +let &packpath = &runtimepath + +let g:coc_config_home = expand('~/.config/nvim') + +source ~/.vim/vimrc diff --git a/common/shell-functions/README.md b/common/shell-functions/README.md index a925174..67ae28e 100644 --- a/common/shell-functions/README.md +++ b/common/shell-functions/README.md @@ -6,11 +6,13 @@ This directory contains organized shell functions and aliases grouped by tool an ### Core Function Files - **`fuzzy-vim.sh`** - Enhanced vim wrapper with fuzzy file selection +- **`editor.sh`** - Default editor aliases and environment - **`ssh.sh`** - SSH and remote connection helpers - **`git.sh`** - Advanced git workflow functions - **`k8s.sh`** - Kubernetes management functions - **`docker.sh`** - Docker container management functions - **`utils.sh`** - General utility functions +- **`which.sh`** - Shell-aware command lookup that includes aliases ### Alias Files - **`kubectl-aliases.sh`** - Kubectl short aliases (`k get p`, `kgpw`, etc.) @@ -95,4 +97,4 @@ kctx # Switch context with fzf sshdot user@host # SSH with dotfiles auto-install ``` -Everything is backward compatible and your existing workflow stays the same! \ No newline at end of file +Everything is backward compatible and your existing workflow stays the same! diff --git a/common/shell-functions/editor.sh b/common/shell-functions/editor.sh new file mode 100644 index 0000000..20f7e58 --- /dev/null +++ b/common/shell-functions/editor.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash + +if command -v nvim >/dev/null 2>&1; then + export EDITOR=nvim + export VISUAL=nvim + alias vi='nvim' + alias vim='nvim' + alias vimdiff='nvim -d' +fi diff --git a/common/shell-functions/which.sh b/common/shell-functions/which.sh new file mode 100644 index 0000000..5a08927 --- /dev/null +++ b/common/shell-functions/which.sh @@ -0,0 +1,55 @@ +#!/usr/bin/env bash + +which() { + local show_all=false + if [ "${1:-}" = "-a" ]; then + show_all=true + shift + fi + + if [ "$#" -eq 0 ]; then + printf 'usage: which [-a] command ...\n' >&2 + return 2 + fi + + if [ -n "${ZSH_VERSION:-}" ]; then + if [ "$show_all" = true ]; then + whence -a "$@" + else + whence "$@" + fi + else + if [ "$show_all" = true ]; then + type -a "$@" + return + fi + + local name kind alias_output alias_value path + for name in "$@"; do + kind="$(type -t "$name" 2>/dev/null || true)" + case "$kind" in + alias) + alias_output="$(alias "$name")" + alias_value="${alias_output#alias "$name"=}" + alias_value="${alias_value#\'}" + alias_value="${alias_value%\'}" + printf '%s\n' "$alias_value" + ;; + file) + type -P "$name" + ;; + function|builtin|keyword) + printf '%s is a shell %s\n' "$name" "$kind" + ;; + *) + path="$(command -v "$name" 2>/dev/null || true)" + if [ -n "$path" ]; then + printf '%s\n' "$path" + else + return 1 + fi + ;; + esac + done + fi +} diff --git a/common/shell/.bash_profile b/common/shell/.bash_profile index ede0c94..6633082 100644 --- a/common/shell/.bash_profile +++ b/common/shell/.bash_profile @@ -6,8 +6,13 @@ if [ -f ~/.bashrc ]; then fi # User specific environment and startup programs -export EDITOR=vim -export VISUAL=vim +if command -v nvim >/dev/null 2>&1; then + export EDITOR=nvim + export VISUAL=nvim +else + export EDITOR=vim + export VISUAL=vim +fi # Set PATH so it includes user's private bin if it exists if [ -d "$HOME/bin" ] ; then diff --git a/common/shell/.bashrc b/common/shell/.bashrc index a16f740..7430e8f 100644 --- a/common/shell/.bashrc +++ b/common/shell/.bashrc @@ -135,6 +135,12 @@ export FZF_DEFAULT_OPTS=" # Source FZF if available [ -f ~/.fzf.bash ] && source ~/.fzf.bash +# Add local bin to PATH if exists +[ -d /opt/homebrew/bin ] && PATH="/opt/homebrew/bin:$PATH" +[ -d "$HOME/bin" ] && PATH="$HOME/bin:$PATH" +[ -d "$HOME/.local/bin" ] && PATH="$HOME/.local/bin:$PATH" +export PATH + # Load custom shell functions if [ -d ~/.config/shell-functions ]; then for f in ~/.config/shell-functions/*.sh; do @@ -142,13 +148,6 @@ if [ -d ~/.config/shell-functions ]; then done fi -# Add local bin to PATH if exists -[ -d "$HOME/bin" ] && PATH="$HOME/bin:$PATH" -[ -d "$HOME/.local/bin" ] && PATH="$HOME/.local/bin:$PATH" - -# Export PATH -export PATH - # Enable color support for ls and grep if [ -x /usr/bin/dircolors ]; then test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)" @@ -171,11 +170,6 @@ alias mv='mv -i' # Make less more friendly for non-text input files [ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)" -# Source shell functions -for func in ~/.config/shell-functions/*.sh; do - [ -r "$func" ] && source "$func" -done - # Source local secrets (if exists) [ -f ~/.env.secrets ] && source ~/.env.secrets . "$HOME/.local/bin/env" diff --git a/common/shell/.bashrc.server b/common/shell/.bashrc.server index c531fda..fcb67f0 100644 --- a/common/shell/.bashrc.server +++ b/common/shell/.bashrc.server @@ -100,8 +100,16 @@ alias ....='cd ../../..' export PATH # Set default editor -export EDITOR=vim -export VISUAL=vim +if command -v nvim >/dev/null 2>&1; then + export EDITOR=nvim + export VISUAL=nvim + alias vi='nvim' + alias vim='nvim' + alias vimdiff='nvim -d' +else + export EDITOR=vim + export VISUAL=vim +fi # Enable programmable completion features if ! shopt -oq posix; then @@ -110,4 +118,4 @@ if ! shopt -oq posix; then elif [ -f /etc/bash_completion ]; then . /etc/bash_completion fi -fi \ No newline at end of file +fi diff --git a/common/shell/.gnu_aliases b/common/shell/.gnu_aliases index 055b551..1c7cdde 100644 --- a/common/shell/.gnu_aliases +++ b/common/shell/.gnu_aliases @@ -21,7 +21,6 @@ if [ "$(uname -s)" = "Darwin" ]; then safe_alias grep 'ggrep' fallback 'grep' safe_alias xargs 'gxargs' fallback 'xargs' safe_alias tar 'gtar' fallback 'tar' - safe_alias which 'gwhich' fallback 'which' safe_alias make 'gmake' fallback 'make' safe_alias dircolors 'gdircolors' fallback 'dircolors' diff --git a/common/shell/.zshrc b/common/shell/.zshrc index 6f5f34d..c898b2d 100644 --- a/common/shell/.zshrc +++ b/common/shell/.zshrc @@ -129,7 +129,7 @@ path_prepend() { done } -path_prepend "/usr/local/bin" "/usr/local/sbin" "$HOME/bin" "$HOME/.cargo/bin" +path_prepend "/opt/homebrew/bin" "/usr/local/bin" "/usr/local/sbin" "$HOME/bin" "$HOME/.cargo/bin" if [[ -d "$HOME/.pyenv" ]]; then export PYENV_ROOT="$HOME/.pyenv" @@ -176,5 +176,10 @@ function kctx() { # Source local secrets (if exists) [[ -f ~/.env.secrets ]] && source ~/.env.secrets -export PATH="/opt/homebrew/bin:$PATH" . "$HOME/.local/bin/env" + +if [[ -d "$HOME/.bun" ]]; then + export BUN_INSTALL="$HOME/.bun" + path_prepend "$BUN_INSTALL/bin" + [[ -s "$BUN_INSTALL/_bun" ]] && source "$BUN_INSTALL/_bun" +fi diff --git a/darwin/Brewfile b/darwin/Brewfile index 2f87b79..464824b 100644 --- a/darwin/Brewfile +++ b/darwin/Brewfile @@ -23,6 +23,7 @@ brew "kubernetes-cli" brew "libpq" brew "make" brew "minikube" +brew "neovim" brew "node" brew "poetry" brew "rust" @@ -34,7 +35,6 @@ brew "vite" brew "wget" # Casks -cask "docker" cask "docker-desktop" cask "font-noto-color-emoji" cask "slack" diff --git a/install.sh b/install.sh index 4409cbe..fa505d5 100755 --- a/install.sh +++ b/install.sh @@ -11,13 +11,13 @@ # - Git configuration # - Shell functions & aliases # - Terminal configs (kitty, htop) -# - Vim setup (plugins, LSP, themes) +# - Vim/Neovim setup (plugins, LSP, themes) # - Optional tools (fzf, etc.) # # Features: # - Auto-detects OS and environment (local/remote/container) # - Creates backups before changes -# - Supports both symlinks and file copying +# - Installs regular file copies, not symlinks # - Compiles CoC.nvim automatically # - Installs language servers and tools @@ -35,10 +35,11 @@ NC='\033[0m' # No Color # Configuration DOTFILES_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" BACKUP_DIR="$HOME/.dotfiles-backup-$(date +%Y%m%d_%H%M%S)" +AUDIT_LOG="" +INSTALL_ARGS="$*" MINIMAL_MODE=false INSTALL_PACKAGES=true DRY_RUN=false -COPY_MODE=false # Parse arguments while [[ $# -gt 0 ]]; do @@ -56,7 +57,7 @@ while [[ $# -gt 0 ]]; do shift ;; --copy) - COPY_MODE=true + # Historical no-op: copied files are now the only install mode. shift ;; -h|--help) @@ -64,7 +65,7 @@ while [[ $# -gt 0 ]]; do echo " --minimal Install minimal config (no fancy tools)" echo " --no-packages Skip package installation" echo " --dry-run Show what would be done without doing it" - echo " --copy Copy files instead of creating symlinks" + echo " --copy No-op; files are always copied" echo " -h, --help Show this help" exit 0 ;; @@ -96,6 +97,52 @@ log_step() { echo -e "${PURPLE}[STEP]${NC} $1" } +init_audit() { + if [[ "$DRY_RUN" == "true" ]] || [[ -n "$AUDIT_LOG" ]]; then + return + fi + + mkdir -p "$BACKUP_DIR" + AUDIT_LOG="$BACKUP_DIR/install-audit.tsv" + { + printf '# dotfiles install audit\n' + printf '# started_at\t%s\n' "$(date -u +%Y-%m-%dT%H:%M:%SZ)" + printf '# dotfiles_dir\t%s\n' "$DOTFILES_DIR" + printf '# args\t%s\n' "$INSTALL_ARGS" + printf 'timestamp\taction\tsource\ttarget\tdetail\n' + } > "$AUDIT_LOG" +} + +audit_action() { + local action="$1" + local source="${2:-}" + local target="${3:-}" + local detail="${4:-}" + + if [[ "$DRY_RUN" == "true" ]]; then + return + fi + + init_audit + printf '%s\t%s\t%s\t%s\t%s\n' "$(date -u +%Y-%m-%dT%H:%M:%SZ)" "$action" "$source" "$target" "$detail" >> "$AUDIT_LOG" +} + +backup_path_for() { + local file="$1" + local relative + + case "$file" in + "$HOME"/*) + relative="${file#"$HOME"/}" + ;; + *) + relative="absolute/${file#/}" + ;; + esac + + printf '%s/files/%s' "$BACKUP_DIR" "$relative" +} + # OS Detection detect_os() { if [[ "$OSTYPE" == "darwin"* ]]; then @@ -211,17 +258,24 @@ backup_file() { local file="$1" if [[ -f "$file" ]] || [[ -L "$file" ]]; then if [[ "$DRY_RUN" == "false" ]]; then - mkdir -p "$BACKUP_DIR" - cp -L "$file" "$BACKUP_DIR/$(basename "$file")" 2>/dev/null || true - log_info "Backed up $file to $BACKUP_DIR" + local backup_path + backup_path="$(backup_path_for "$file")" + mkdir -p "$(dirname "$backup_path")" + if [[ -e "$backup_path" ]] || [[ -L "$backup_path" ]]; then + audit_action "backup-skip" "$file" "$backup_path" "existing backup retained" + else + cp -a "$file" "$backup_path" + audit_action "backup" "$file" "$backup_path" "existing target preserved" + log_info "Backed up $file to $backup_path" + fi else log_info "Would backup: $file" fi fi } -# Create symlink or copy file -create_symlink() { +# Install a regular copied file +install_file() { local source="$1" local target="$2" local target_dir="$(dirname "$target")" @@ -229,25 +283,20 @@ create_symlink() { if [[ "$DRY_RUN" == "false" ]]; then # Create target directory if it doesn't exist mkdir -p "$target_dir" - + audit_action "mkdir" "" "$target_dir" "ensure target directory" + # Remove existing file/link - [[ -e "$target" ]] || [[ -L "$target" ]] && rm -f "$target" - - if [[ "$COPY_MODE" == "true" ]]; then - # Copy file - cp "$source" "$target" - log_success "Copied $source -> $target" - else - # Create symlink - ln -sf "$source" "$target" - log_success "Linked $source -> $target" + if [[ -e "$target" ]] || [[ -L "$target" ]]; then + backup_file "$target" + rm -f "$target" + audit_action "remove" "" "$target" "replace existing target" fi + + cp -f "$source" "$target" + audit_action "copy" "$source" "$target" "regular file copy" + log_success "Copied $source -> $target" else - if [[ "$COPY_MODE" == "true" ]]; then - log_info "Would copy: $source -> $target" - else - log_info "Would link: $source -> $target" - fi + log_info "Would copy: $source -> $target" fi } @@ -259,7 +308,12 @@ copy_file() { if [[ "$DRY_RUN" == "false" ]]; then mkdir -p "$target_dir" + audit_action "mkdir" "" "$target_dir" "ensure target directory" + if [[ -e "$target" ]] || [[ -L "$target" ]]; then + backup_file "$target" + fi cp -f "$source" "$target" + audit_action "copy" "$source" "$target" "copy file" log_success "Copied $source -> $target" else log_info "Would copy: $source -> $target" @@ -273,16 +327,16 @@ install_shell_configs() { # Determine which shell config to use if [[ "$MINIMAL_MODE" == "true" ]]; then backup_file "$HOME/.bashrc" - create_symlink "$DOTFILES_DIR/common/shell/.bashrc.server" "$HOME/.bashrc" + install_file "$DOTFILES_DIR/common/shell/.bashrc.server" "$HOME/.bashrc" else # Install both bash and zsh configs backup_file "$HOME/.bashrc" backup_file "$HOME/.zshrc" backup_file "$HOME/.bash_profile" - create_symlink "$DOTFILES_DIR/common/shell/.bashrc" "$HOME/.bashrc" - create_symlink "$DOTFILES_DIR/common/shell/.zshrc" "$HOME/.zshrc" - create_symlink "$DOTFILES_DIR/common/shell/.bash_profile" "$HOME/.bash_profile" + install_file "$DOTFILES_DIR/common/shell/.bashrc" "$HOME/.bashrc" + install_file "$DOTFILES_DIR/common/shell/.zshrc" "$HOME/.zshrc" + install_file "$DOTFILES_DIR/common/shell/.bash_profile" "$HOME/.bash_profile" fi # GNU aliases and dircolors @@ -297,12 +351,12 @@ install_git_config() { log_step "Installing git configuration..." backup_file "$HOME/.gitconfig" - create_symlink "$DOTFILES_DIR/common/git/.gitconfig" "$HOME/.gitconfig" + install_file "$DOTFILES_DIR/common/git/.gitconfig" "$HOME/.gitconfig" # Global gitignore mkdir -p "$HOME/.config/git" - create_symlink "$DOTFILES_DIR/common/git/.gitignore_global" "$HOME/.config/git/ignore" - create_symlink "$DOTFILES_DIR/common/git/commit-template.md" "$HOME/.config/git/commit-template.md" + install_file "$DOTFILES_DIR/common/git/.gitignore_global" "$HOME/.config/git/ignore" + install_file "$DOTFILES_DIR/common/git/commit-template.md" "$HOME/.config/git/commit-template.md" } # Install shell functions @@ -328,23 +382,21 @@ install_terminal_config() { # Kitty config based on OS (using hard copies for kitty to work properly) mkdir -p "$HOME/.config/kitty" + if [[ "$DRY_RUN" == "false" ]]; then + audit_action "mkdir" "" "$HOME/.config/kitty" "ensure kitty config directory" + fi if [[ "$DRY_RUN" == "false" ]]; then if [[ "$OS" == "macos" ]]; then - backup_file "$HOME/.config/kitty/kitty.conf" - cp "$DOTFILES_DIR/darwin/kitty.conf" "$HOME/.config/kitty/kitty.conf" - log_success "Copied darwin/kitty.conf -> ~/.config/kitty/kitty.conf" + copy_file "$DOTFILES_DIR/darwin/kitty.conf" "$HOME/.config/kitty/kitty.conf" else - backup_file "$HOME/.config/kitty/kitty.conf" - cp "$DOTFILES_DIR/linux/common/kitty.conf" "$HOME/.config/kitty/kitty.conf" - log_success "Copied linux/common/kitty.conf -> ~/.config/kitty/kitty.conf" + copy_file "$DOTFILES_DIR/linux/common/kitty.conf" "$HOME/.config/kitty/kitty.conf" fi # Copy themes for theme_file in "$DOTFILES_DIR/common/themes/"*.conf; do if [[ -f "$theme_file" ]]; then - cp "$theme_file" "$HOME/.config/kitty/$(basename "$theme_file")" - log_success "Copied $(basename "$theme_file") -> ~/.config/kitty/" + copy_file "$theme_file" "$HOME/.config/kitty/$(basename "$theme_file")" fi done else @@ -358,28 +410,28 @@ install_terminal_config() { # htop config mkdir -p "$HOME/.config/htop" - create_symlink "$DOTFILES_DIR/common/htop/htoprc" "$HOME/.config/htop/htoprc" + install_file "$DOTFILES_DIR/common/htop/htoprc" "$HOME/.config/htop/htoprc" } # Install vim configuration install_vim_config() { log_step "Installing vim configuration..." - # Create .vim directory and symlink config files + # Create .vim directory and copy config files if [[ "$DRY_RUN" == "false" ]]; then mkdir -p "$HOME/.vim/settings" # Link vim configuration files - create_symlink "$DOTFILES_DIR/.vim/vimrc" "$HOME/.vim/vimrc" - create_symlink "$DOTFILES_DIR/.vim/plugins.vim" "$HOME/.vim/plugins.vim" - create_symlink "$DOTFILES_DIR/.vim/mappings.vim" "$HOME/.vim/mappings.vim" - create_symlink "$DOTFILES_DIR/.vim/settings.vim" "$HOME/.vim/settings.vim" - create_symlink "$DOTFILES_DIR/.vim/coc-settings.json" "$HOME/.vim/coc-settings.json" + install_file "$DOTFILES_DIR/.vim/vimrc" "$HOME/.vim/vimrc" + install_file "$DOTFILES_DIR/.vim/plugins.vim" "$HOME/.vim/plugins.vim" + install_file "$DOTFILES_DIR/.vim/mappings.vim" "$HOME/.vim/mappings.vim" + install_file "$DOTFILES_DIR/.vim/settings.vim" "$HOME/.vim/settings.vim" + install_file "$DOTFILES_DIR/.vim/coc-settings.json" "$HOME/.vim/coc-settings.json" # Link settings directory files for settings_file in "$DOTFILES_DIR/.vim/settings/"*.vim; do if [[ -f "$settings_file" ]]; then - create_symlink "$settings_file" "$HOME/.vim/settings/$(basename "$settings_file")" + install_file "$settings_file" "$HOME/.vim/settings/$(basename "$settings_file")" fi done else @@ -411,6 +463,41 @@ install_vim_config() { fi } +# Install neovim configuration +install_neovim_config() { + log_step "Installing neovim configuration..." + + if [[ "$DRY_RUN" == "false" ]]; then + mkdir -p "$HOME/.config/nvim" + + backup_file "$HOME/.config/nvim/init.vim" + backup_file "$HOME/.config/nvim/coc-settings.json" + + install_file "$DOTFILES_DIR/common/nvim/init.vim" "$HOME/.config/nvim/init.vim" + install_file "$DOTFILES_DIR/.vim/coc-settings.json" "$HOME/.config/nvim/coc-settings.json" + else + log_info "Would install neovim configuration" + return + fi + + if command -v nvim >/dev/null 2>&1; then + log_step "Installing neovim plugins..." + nvim --headless +PlugInstall +qall + + if [[ -d "$HOME/.vim/plugged/coc.nvim" ]]; then + log_step "Compiling CoC.nvim for neovim..." + if command -v npm >/dev/null 2>&1; then + (cd "$HOME/.vim/plugged/coc.nvim" && npm ci) + log_success "CoC.nvim compiled successfully" + else + log_warning "npm not found. CoC.nvim needs manual compilation: cd ~/.vim/plugged/coc.nvim && npm ci" + fi + fi + else + log_warning "nvim not found. Skipping neovim plugin installation." + fi +} + # Install optional tools install_optional_tools() { if [[ "$MINIMAL_MODE" == "true" ]]; then @@ -471,7 +558,8 @@ main() { install_shell_functions # 3. Shell functions (depends on shell configs) install_terminal_config # 4. Terminal configs (kitty, htop) install_vim_config # 5. Vim setup (plugins, settings, CoC compilation) - install_optional_tools # 6. Optional tools (fzf, etc.) - last + install_neovim_config # 6. Neovim bridge to Vim config + install_optional_tools # 7. Optional tools (fzf, etc.) - last echo -e "${GREEN}" echo "╔══════════════════════════════════════════════════════════════╗" @@ -481,6 +569,9 @@ main() { if [[ -d "$BACKUP_DIR" ]]; then log_info "Backups saved to: $BACKUP_DIR" + if [[ -n "$AUDIT_LOG" ]]; then + log_info "Audit log: $AUDIT_LOG" + fi fi log_info "Please run: source ~/.bashrc (or source ~/.zshrc)" diff --git a/scripts/check-editor-parity.sh b/scripts/check-editor-parity.sh new file mode 100755 index 0000000..8e75bcc --- /dev/null +++ b/scripts/check-editor-parity.sh @@ -0,0 +1,42 @@ +#!/usr/bin/env bash +set -euo pipefail + +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" +FIXTURE="$ROOT_DIR/scripts/editor-parity.vim" + +run() { + printf '==> %s\n' "$*" + "$@" +} + +require() { + local command_name="$1" + if ! command -v "$command_name" >/dev/null 2>&1; then + printf 'Missing required command: %s\n' "$command_name" >&2 + exit 1 + fi +} + +require vim +require nvim + +if [[ ! -r "$HOME/.vim/vimrc" ]]; then + printf 'Missing %s/.vim/vimrc. Run ./install.sh --no-packages first.\n' "$HOME" >&2 + exit 1 +fi + +if [[ ! -r "$HOME/.config/nvim/init.vim" ]]; then + printf 'Missing %s/.config/nvim/init.vim. Run ./install.sh --no-packages first.\n' "$HOME" >&2 + exit 1 +fi + +if [[ ! -r "$HOME/.config/nvim/coc-settings.json" ]]; then + printf 'Missing %s/.config/nvim/coc-settings.json. Run ./install.sh --no-packages first.\n' "$HOME" >&2 + exit 1 +fi + +run vim -Nu "$HOME/.vim/vimrc" -n -es -S "$FIXTURE" +run nvim --headless -u "$HOME/.config/nvim/init.vim" -n -S "$FIXTURE" +run cmp -s "$HOME/.vim/coc-settings.json" "$HOME/.config/nvim/coc-settings.json" + +printf 'Editor parity checks passed.\n' diff --git a/scripts/editor-parity.vim b/scripts/editor-parity.vim new file mode 100644 index 0000000..c64571a --- /dev/null +++ b/scripts/editor-parity.vim @@ -0,0 +1,62 @@ +" Headless fixture for scripts/check-editor-parity.sh. + +set nomore + +let s:failures = [] + +function! s:Check(name, condition, detail) abort + if !a:condition + call add(s:failures, a:name . ': ' . a:detail) + endif +endfunction + +function! s:HasCommand(name) abort + return exists(':' . a:name) == 2 +endfunction + +function! s:MapRhs(mode, lhs) abort + return maparg(a:lhs, a:mode) +endfunction + +function! s:CheckIndent(filetype, tabstop, shiftwidth, softtabstop, expandtab) abort + execute 'setfiletype ' . a:filetype + call s:Check(a:filetype . ' tabstop', &l:tabstop == a:tabstop, 'expected ' . a:tabstop . ', got ' . &l:tabstop) + call s:Check(a:filetype . ' shiftwidth', &l:shiftwidth == a:shiftwidth, 'expected ' . a:shiftwidth . ', got ' . &l:shiftwidth) + call s:Check(a:filetype . ' softtabstop', &l:softtabstop == a:softtabstop, 'expected ' . a:softtabstop . ', got ' . &l:softtabstop) + call s:Check(a:filetype . ' expandtab', &l:expandtab == a:expandtab, 'expected ' . a:expandtab . ', got ' . &l:expandtab) + setlocal filetype= +endfunction + +call s:Check('colorscheme', get(g:, 'colors_name', '') ==# 'catppuccin_mocha', 'got ' . get(g:, 'colors_name', '')) + +for s:command in ['CocList', 'Files', 'GFiles', 'RG', 'Format'] + call s:Check('command ' . s:command, s:HasCommand(s:command), 'missing') +endfor + +call s:Check('insert jk', s:MapRhs('i', 'jk') ==# '', 'unexpected rhs: ' . string(s:MapRhs('i', 'jk'))) +call s:Check('visual jk', s:MapRhs('v', 'jk') ==# '', 'unexpected rhs: ' . string(s:MapRhs('v', 'jk'))) +call s:Check('normal tab', s:MapRhs('n', "\") ==# 'w', 'unexpected rhs: ' . string(s:MapRhs('n', "\"))) +call s:Check('leader f', !empty(s:MapRhs('n', 'f')), 'missing') +call s:Check('leader g', !empty(s:MapRhs('n', 'g')), 'missing') +call s:Check('gd', !empty(s:MapRhs('n', 'gd')), 'missing') +call s:Check('gr', !empty(s:MapRhs('n', 'gr')), 'missing') +call s:Check('F', s:MapRhs('n', 'F') =~# 'CocAction', 'unexpected rhs: ' . string(s:MapRhs('n', 'F'))) + +syntax off +call s:CheckIndent('python', 2, 2, 2, 1) +call s:CheckIndent('javascript', 2, 2, 2, 1) +call s:CheckIndent('typescript', 2, 2, 2, 1) +call s:CheckIndent('sh', 2, 2, 2, 1) +call s:CheckIndent('yaml', 2, 2, 2, 1) +call s:CheckIndent('json', 2, 2, 2, 1) +call s:CheckIndent('make', 2, 2, 0, 0) +bwipeout! + +if !empty(s:failures) + for s:failure in s:failures + echomsg 'PARITY FAIL: ' . s:failure + endfor + cquit 1 +endif + +quitall! diff --git a/scripts/test-install.sh b/scripts/test-install.sh new file mode 100755 index 0000000..2ec5718 --- /dev/null +++ b/scripts/test-install.sh @@ -0,0 +1,77 @@ +#!/usr/bin/env bash +set -euo pipefail + +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" +TMP_DIR="$(mktemp -d "${TMPDIR:-/tmp}/dotfiles-install-test.XXXXXX")" +TEST_HOME="$TMP_DIR/home" +STUB_DIR="$TMP_DIR/bin" +STUB_LOG="$TMP_DIR/stubs.log" + +cleanup() { + rm -rf "$TMP_DIR" +} +trap cleanup EXIT + +mkdir -p "$TEST_HOME" "$STUB_DIR" + +cat > "$STUB_DIR/vim" <<'STUB' +#!/usr/bin/env bash +printf 'vim %s\n' "$*" >> "${DOTFILES_INSTALL_TEST_LOG:?}" +exit 0 +STUB + +cat > "$STUB_DIR/nvim" <<'STUB' +#!/usr/bin/env bash +printf 'nvim %s\n' "$*" >> "${DOTFILES_INSTALL_TEST_LOG:?}" +exit 0 +STUB + +chmod +x "$STUB_DIR/vim" "$STUB_DIR/nvim" + +fail() { + printf 'FAIL: %s\n' "$1" >&2 + exit 1 +} + +assert_regular_copy() { + local path="$1" + local expected_source="$2" + [[ -f "$path" ]] || fail "$path is not a regular file" + [[ ! -L "$path" ]] || fail "$path must not be a symlink" + cmp -s "$path" "$expected_source" || fail "$path differs from $expected_source" +} + +assert_file() { + local path="$1" + [[ -f "$path" ]] || fail "$path is not a file" +} + +HOME="$TEST_HOME" \ +PATH="$STUB_DIR:$PATH" \ +DOTFILES_INSTALL_TEST_LOG="$STUB_LOG" \ + "$ROOT_DIR/install.sh" --no-packages > "$TMP_DIR/install.log" + +assert_regular_copy "$TEST_HOME/.bashrc" "$ROOT_DIR/common/shell/.bashrc" +assert_regular_copy "$TEST_HOME/.zshrc" "$ROOT_DIR/common/shell/.zshrc" +assert_regular_copy "$TEST_HOME/.gitconfig" "$ROOT_DIR/common/git/.gitconfig" +assert_regular_copy "$TEST_HOME/.vim/vimrc" "$ROOT_DIR/.vim/vimrc" +assert_regular_copy "$TEST_HOME/.config/nvim/init.vim" "$ROOT_DIR/common/nvim/init.vim" +assert_regular_copy "$TEST_HOME/.config/nvim/coc-settings.json" "$ROOT_DIR/.vim/coc-settings.json" + +assert_file "$TEST_HOME/.gnu_aliases" +assert_file "$TEST_HOME/.dircolors" +assert_file "$TEST_HOME/.config/kitty/kitty.conf" +assert_file "$TEST_HOME/.config/shell-functions/git.sh" +assert_regular_copy "$TEST_HOME/.config/shell-functions/editor.sh" "$ROOT_DIR/common/shell-functions/editor.sh" +assert_regular_copy "$TEST_HOME/.config/shell-functions/which.sh" "$ROOT_DIR/common/shell-functions/which.sh" + +AUDIT_LOG="$(find "$TEST_HOME" -path '*/.dotfiles-backup-*/install-audit.tsv' -print -quit)" +[[ -n "$AUDIT_LOG" ]] || fail "audit log was not created" +grep -q $'\tcopy\t' "$AUDIT_LOG" || fail "audit log has no copy action" +! grep -q $'\tlink\t' "$AUDIT_LOG" || fail "audit log must not contain link actions" +grep -q "$ROOT_DIR/common/nvim/init.vim" "$AUDIT_LOG" || fail "audit log does not include neovim init" + +grep -q '^vim +PlugInstall +qall$' "$STUB_LOG" || fail "vim plugin install was not invoked" +grep -q '^nvim --headless +PlugInstall +qall$' "$STUB_LOG" || fail "nvim plugin install was not invoked" + +printf 'Installer test passed.\n' From dfa8dab2f5b4bb92f7eb5d42cdba957e9abff96c Mon Sep 17 00:00:00 2001 From: Jean-Michel Bouchard Date: Mon, 1 Jun 2026 15:03:31 -0400 Subject: [PATCH 12/32] Normalize GitHub URL rewrite config Keep the GitHub HTTPS-to-SSH rewrite with the rest of the top-level Git settings after the laptop branch merge. Checks: git diff --check -- common/git/.gitconfig; git config --file common/git/.gitconfig --get-regexp --- common/git/.gitconfig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/common/git/.gitconfig b/common/git/.gitconfig index 50fb17c..4be2678 100644 --- a/common/git/.gitconfig +++ b/common/git/.gitconfig @@ -7,6 +7,8 @@ ui = auto [commit] template = ~/.config/git/commit-template.md +[url "git@github.com:"] + insteadOf = https://github.com/ [alias] st = status -sb lg = log --stat @@ -77,5 +79,3 @@ git log --oneline; \ fi; \ }; f" -[url "git@github.com:"] - insteadOf = https://github.com/ From 3d750e2b0d2f354d790fec88e5515bf5c84f61ca Mon Sep 17 00:00:00 2001 From: Jean-Michel Bouchard Date: Thu, 28 May 2026 15:44:37 -0400 Subject: [PATCH 13/32] Add default git commit template --- README.md | 1 + common/git/.gitconfig | 2 ++ common/git/commit-template.md | 13 +++++++++++++ install.sh | 1 + scripts/minimal-bashrc.sh | 4 ++++ scripts/quick-install.sh | 1 + scripts/ssh-copy-dotfiles.sh | 1 + 7 files changed, 23 insertions(+) create mode 100644 common/git/commit-template.md diff --git a/README.md b/README.md index 6b66d1e..fe9aaf1 100644 --- a/README.md +++ b/README.md @@ -69,6 +69,7 @@ dotfiles/ | `.bash_profile` | `~/.bash_profile` | Bash profile (sources .bashrc) | | `.bashrc.server` | `~/.bashrc` | Conservative bash config for servers (minimal mode) | | `.gitconfig` | `~/.gitconfig` | Git aliases and fuzzy commands | +| `commit-template.md` | `~/.config/git/commit-template.md` | Default structured git commit template | | `.gitignore_global` | `~/.config/git/ignore` | Global git ignores | | `.gnu_aliases` | `~/.gnu_aliases` | GNU coreutils aliases for macOS | | `.dircolors` | `~/.dircolors` | Directory colors | diff --git a/common/git/.gitconfig b/common/git/.gitconfig index 897b160..50fb17c 100644 --- a/common/git/.gitconfig +++ b/common/git/.gitconfig @@ -5,6 +5,8 @@ user=woud420 [color] ui = auto +[commit] + template = ~/.config/git/commit-template.md [alias] st = status -sb lg = log --stat diff --git a/common/git/commit-template.md b/common/git/commit-template.md new file mode 100644 index 0000000..f080fc6 --- /dev/null +++ b/common/git/commit-template.md @@ -0,0 +1,13 @@ + + +Primary changes: +- + +Reviewer walkthrough: +- + +Correctness and invariants: +- + +Testing and QA: +- diff --git a/install.sh b/install.sh index 8aa7835..4409cbe 100755 --- a/install.sh +++ b/install.sh @@ -302,6 +302,7 @@ install_git_config() { # Global gitignore mkdir -p "$HOME/.config/git" create_symlink "$DOTFILES_DIR/common/git/.gitignore_global" "$HOME/.config/git/ignore" + create_symlink "$DOTFILES_DIR/common/git/commit-template.md" "$HOME/.config/git/commit-template.md" } # Install shell functions diff --git a/scripts/minimal-bashrc.sh b/scripts/minimal-bashrc.sh index 2d28c8c..2b0d6bb 100755 --- a/scripts/minimal-bashrc.sh +++ b/scripts/minimal-bashrc.sh @@ -4,6 +4,7 @@ # Just download the essential files directly mkdir -p ~/.config/shell-functions +mkdir -p ~/.config/git # Download server bashrc curl -sSL https://raw.githubusercontent.com/woud420/dotfiles/master/common/shell/.bashrc.server -o ~/.bashrc @@ -14,4 +15,7 @@ curl -sSL https://raw.githubusercontent.com/woud420/dotfiles/master/common/shell # Download git config curl -sSL https://raw.githubusercontent.com/woud420/dotfiles/master/common/git/.gitconfig -o ~/.gitconfig +# Download git commit template +curl -sSL https://raw.githubusercontent.com/woud420/dotfiles/master/common/git/commit-template.md -o ~/.config/git/commit-template.md + echo "✅ Minimal configs installed! Run: source ~/.bashrc" \ No newline at end of file diff --git a/scripts/quick-install.sh b/scripts/quick-install.sh index b1782de..13727c5 100755 --- a/scripts/quick-install.sh +++ b/scripts/quick-install.sh @@ -45,6 +45,7 @@ ln -sf "$DOTFILES_DIR/common/shell/.bash_profile" "$HOME/.bash_profile" ln -sf "$DOTFILES_DIR/common/git/.gitconfig" "$HOME/.gitconfig" mkdir -p "$HOME/.config/git" ln -sf "$DOTFILES_DIR/common/git/.gitignore_global" "$HOME/.config/git/ignore" +ln -sf "$DOTFILES_DIR/common/git/commit-template.md" "$HOME/.config/git/commit-template.md" # GNU aliases (copy to avoid symlink on targets) cp -f "$DOTFILES_DIR/common/shell/.gnu_aliases" "$HOME/.gnu_aliases" diff --git a/scripts/ssh-copy-dotfiles.sh b/scripts/ssh-copy-dotfiles.sh index 96d8d3e..0253fa7 100755 --- a/scripts/ssh-copy-dotfiles.sh +++ b/scripts/ssh-copy-dotfiles.sh @@ -21,6 +21,7 @@ scp "$DOTFILES_DIR/common/shell/.bash_profile" "$HOST:~/.bash_profile" scp "$DOTFILES_DIR/common/shell/.gnu_aliases" "$HOST:~/.gnu_aliases" scp "$DOTFILES_DIR/common/git/.gitconfig" "$HOST:~/.gitconfig" scp "$DOTFILES_DIR/common/git/.gitignore_global" "$HOST:~/.config/git/ignore" +scp "$DOTFILES_DIR/common/git/commit-template.md" "$HOST:~/.config/git/commit-template.md" scp "$DOTFILES_DIR/common/shell-functions/"*.sh "$HOST:~/.config/shell-functions/" echo "✅ Dotfiles copied to $HOST" From debda41b35ee9e8494485a9be05b4fc6caea1aab Mon Sep 17 00:00:00 2001 From: Jean-Michel Bouchard Date: Wed, 3 Jun 2026 15:15:20 -0400 Subject: [PATCH 14/32] not using cursor so removing --- .cursor/cursor-rules.yaml | 29 ----------------------------- 1 file changed, 29 deletions(-) delete mode 100644 .cursor/cursor-rules.yaml diff --git a/.cursor/cursor-rules.yaml b/.cursor/cursor-rules.yaml deleted file mode 100644 index 2188253..0000000 --- a/.cursor/cursor-rules.yaml +++ /dev/null @@ -1,29 +0,0 @@ -#include: - #- ~/.cursor/generated/tools.yaml - -languages: - preferred: - - rust - - python - - typescript - -frontend_frameworks: - - next.js (typescript) - - react native - -backend_frameworks: - - flask (python) - - actix-web (rust) - -project_structure: - source_dir: src - test_dir: tests - infra_dirs: - docker: docker/ - k8s: k8s/ - terraform: infra/terraform/ - doc_dirs: - design_docs: architecture/ - markdown: project/ - prefers_monorepo: false - prefers_submodules: true From 7c2ec8677fe27b5cc143b5aaa4de8b86f87662c2 Mon Sep 17 00:00:00 2001 From: Jean-Michel Bouchard Date: Wed, 3 Jun 2026 15:15:45 -0400 Subject: [PATCH 15/32] removing examples --- COC-EXAMPLES.md | 205 ------------------------------------------------ 1 file changed, 205 deletions(-) delete mode 100644 COC-EXAMPLES.md diff --git a/COC-EXAMPLES.md b/COC-EXAMPLES.md deleted file mode 100644 index a1568e1..0000000 --- a/COC-EXAMPLES.md +++ /dev/null @@ -1,205 +0,0 @@ -# CoC.nvim Examples & Usage Guide - -## Installation - -After updating vim plugins with `:PlugInstall`, CoC extensions will auto-install based on the languages you use. - -## Key Bindings Reference - -| Key | Action | Example | -|-----|--------|---------| -| `gd` | Go to definition | Jump to where a function is defined | -| `gy` | Go to type definition | See the type/interface definition | -| `gi` | Go to implementation | Find where interface is implemented | -| `gr` | Find references | See all places using this symbol | -| `K` | Show documentation | View function docs in popup | -| `[c` / `]c` | Previous/Next diagnostic | Navigate errors/warnings | -| `rn` | Rename symbol | Rename across entire project | -| `ca` | Code actions | Quick fixes and refactoring | -| `f` | Format selection | Auto-format code | -| `qf` | Quick fix | Auto-fix current line | -| `d` | Show documentation | Alternative to K | -| `` | Next completion | Navigate suggestions | -| `` | Accept completion | Confirm selected suggestion | - -## Language-Specific Examples - -### Python - -```python -# 1. Auto-completion -import requ| # Press Tab → suggests 'requests' - -# 2. Type information -def calculate(x: int, y: int) -> int: - return x + y - -result = calculate(10, 20) # Hover with K shows: "(x: int, y: int) -> int" - -# 3. Go to definition (gd) -from mymodule import helper_function -helper_function() # Press gd → jumps to mymodule.py - -# 4. Find all references (gr) -my_variable = 42 # Press gr → shows all uses of my_variable - -# 5. Quick fixes (ca) -undefined_func() # Shows: "Import 'undefined_func' from module" - -# 6. Auto-imports -Path(|) # Type and accept → adds "from pathlib import Path" -``` - -### JavaScript/TypeScript - -```javascript -// 1. Auto-import on completion -const data = fetchData| // Tab → completes and adds import - -// 2. Type checking -const num: number = "string" // Red underline, [g to see error - -// 3. Rename symbol (rn) -const oldName = 5; // Rename to 'newName' everywhere - -// 4. Extract to function (ca) -// Select code block → Extract to function/variable - -// 5. Organize imports (:OR) -import { b, a } from './utils'; // :OR → sorts imports - -// 6. JSDoc completion -/** - * @par| // Completes to @param - */ -``` - -### Rust - -```rust -// 1. Type inference -let mut vec = Vec::new(); -vec.push(42); // K shows: Vec - -// 2. Error explanations -let x: &str = 123; // Hover shows detailed error - -// 3. Auto-derive -#[derive(|)] // Suggests: Debug, Clone, PartialEq, etc. - -// 4. Import suggestions -HashMap::new() // ca → Import HashMap - -// 5. Inline hints -// Shows parameter names and types inline -``` - -### YAML (Docker, K8s) - -```yaml -# 1. Schema validation -apiVersion: apps/v1 -kind: Deployment -spec: - replicas: "three" # Error: should be number - -# 2. Auto-completion -image: | # Suggests from Docker Hub - -# 3. Hover documentation -command: | # K shows field documentation -``` - -### Shell/Bash - -```bash -# 1. Shellcheck integration -if [ $var == "test" ] # Warning: use [[ ]] or quote $var - -# 2. Command completion -git che| # Suggests: checkout, cherry-pick - -# 3. Variable tracking -MY_VAR="hello" -echo $MY_V| # Completes to MY_VAR -``` - -## Common Workflows - -### 1. Fix All Errors in File -```vim -:CocDiagnostics " See all problems -[g " Go to first error -qf " Quick fix -]g " Next error -qf " Fix it -" Repeat... -``` - -### 2. Refactor a Function -```vim -" 1. Place cursor on function name -" 2. rn to rename -" 3. Type new name -" 4. Enter to apply everywhere -``` - -### 3. Add Missing Imports -```vim -:OR " Organize and add imports -" or -ca " On undefined symbol -``` - -### 4. Format on Save -```vim -:w " Automatically formats supported files -" or manually: -:Format " Format entire file -``` - -### 5. Jump Through Code -```vim -gd " Go to definition - " Jump back -gr " Find all usages - " Follow tag -``` - -## Troubleshooting - -### Check CoC Status -```vim -:CocInfo " See CoC status and logs -:CocList extensions " Manage extensions -:checkhealth " Overall vim health -``` - -### Install Missing Language Servers -```vim -:CocInstall coc-python " Python -:CocInstall coc-tsserver " JS/TS -:CocInstall coc-rust-analyzer " Rust -``` - -### Common Issues - -1. **No completions appearing** - - Check `:CocInfo` for errors - - Ensure language server is installed - - Try `:CocRestart` - -2. **Slow performance** - - Exclude large folders in coc-settings.json - - Disable unused extensions - -3. **Format on save not working** - - Check file type is in `formatOnSaveFiletypes` - - Install formatter (prettier, black, etc.) - -## Tips - -- Use `:CocCommand` to see all available commands -- `` is typically `\` unless remapped -- CoC works best with vim 8.1+ or neovim -- Language servers need to be installed separately (npm, pip, etc.) \ No newline at end of file From 334116aed2d42ecc961737203fbe7ed4249bdeca Mon Sep 17 00:00:00 2001 From: Jean-Michel Bouchard Date: Wed, 3 Jun 2026 15:17:04 -0400 Subject: [PATCH 16/32] removed old unused prompts --- prompt-results/audit-log.md | 516 ------------ prompt-results/contact-service-experiment.md | 593 -------------- prompt-results/kickstart.md | 424 ---------- prompt-results/otter-log-dashboard.md | 776 ------------------- prompt-results/otter-log.md | 437 ----------- prompts/cursor_generator.md | 48 -- prompts/md-file-aggregator.md | 39 - 7 files changed, 2833 deletions(-) delete mode 100644 prompt-results/audit-log.md delete mode 100644 prompt-results/contact-service-experiment.md delete mode 100644 prompt-results/kickstart.md delete mode 100644 prompt-results/otter-log-dashboard.md delete mode 100644 prompt-results/otter-log.md delete mode 100644 prompts/cursor_generator.md delete mode 100644 prompts/md-file-aggregator.md diff --git a/prompt-results/audit-log.md b/prompt-results/audit-log.md deleted file mode 100644 index 20e9844..0000000 --- a/prompt-results/audit-log.md +++ /dev/null @@ -1,516 +0,0 @@ -# Cursor Rules - Language-Agnostic Project Standards - -## Overview - -This document defines the standardized patterns, conventions, and architectural principles for all projects based on the audit-log-service example. These rules ensure consistency, maintainability, and scalability across different technology stacks. The project it was generated off of was in Go. - -## 1. Modularity & Structure - -### Directory Layout - -``` -project-root/ -├── src/ # Main source code -│ ├── api/ # Business logic layer -│ ├── handler/ # HTTP/transport layer handlers -│ ├── model/ # Data models and entities -│ │ ├── dao/ # Data Access Objects -│ │ ├── dto/ # Data Transfer Objects -│ │ │ ├── request/ # Request DTOs -│ │ │ └── response/ # Response DTOs -│ │ ├── entities/ # Core domain entities -│ │ └── repository/ # Repository interfaces -│ ├── modules/ # Dependency injection modules -│ ├── routes/ # Route definitions -│ ├── service/ # Business services -│ └── errors/ # Error definitions -├── test/ # Test files -│ ├── unit/ # Unit tests (mirror src structure) -│ └── integration/ # Integration tests -├── cmd/ # Application entry points -├── scripts/ # Utility scripts -├── examples/ # Example data and configurations -├── bin/ # Build artifacts -├── docs/ # Documentation -│ └── architecture/ # Architecture documentation -├── docker-compose.yml # Service orchestration -├── Dockerfile # Container definition -├── Makefile # Build and development commands -├── README.md # Project overview -└── .gitignore # Version control exclusions -``` - -### Naming Conventions - -#### Files and Directories -- **snake_case** for file names: `audit_handler.go`, `user_service.py` -- **kebab-case** for directories: `load-test-env/`, `test-data/` -- **PascalCase** for class/struct files: `AuditEvent.java`, `UserModel.cs` - -#### Code Elements -- **PascalCase** for public interfaces, classes, and structs -- **camelCase** for methods, functions, and variables -- **UPPER_SNAKE_CASE** for constants and environment variables -- **snake_case** for database fields and API parameters - -#### Layer-Specific Naming -- **DAO**: `{Entity}DAO` (e.g., `UserDAO`, `AuditDAO`) -- **Repository**: `{Entity}Repository` (e.g., `UserRepository`) -- **Service**: `{Entity}Service` (e.g., `UserService`) -- **Handler**: `{Entity}Handler` (e.g., `UserHandler`) -- **DTO**: `{Entity}{Request|Response}` (e.g., `UserRequest`, `UserResponse`) - -## 2. Build & Dev Tooling - -### Makefile Structure - -Every project must include a comprehensive Makefile with these standard targets: - -```makefile -# Core Development -build # Build the application -run # Run the application locally -test # Run all tests -test-unit # Run unit tests only -test-integration # Run integration tests only -test-coverage # Generate coverage report - -# Docker Operations -docker-up # Start all services -docker-down # Stop all services -docker-build # Build container image - -# Data Management -ingest # Load test data -clear-data # Clear test data - -# Code Quality -lint # Run linting tools -format # Format code -clean # Clean build artifacts - -# Help -help # Show available commands -``` - -### Scripts Directory - -Maintain a `scripts/` directory with utility scripts: - -- **Data Management**: `ingest-data.sh`, `clear-data.sh` -- **Testing**: `run-tests.sh`, `load-test.py` -- **Infrastructure**: `setup-env.sh`, `deploy.sh` -- **Development**: `generate-test-data.py`, `validate-schema.py` - -### Docker Configuration - -#### docker-compose.yml Requirements -- **Service Health Checks**: Every service must include health checks -- **Environment Variables**: Use `.env` files for configuration -- **Network Isolation**: Define custom networks for service communication -- **Volume Management**: Persistent data storage with named volumes -- **Resource Limits**: Define memory and CPU constraints - -#### Dockerfile Best Practices -- **Multi-stage builds** for production optimization -- **Non-root user** for security -- **Layer caching** optimization -- **Health check** instructions -- **Environment-specific** configurations - -## 3. Documentation & Metadata - -### Required Documentation Files - -#### README.md Structure -```markdown -# Project Name - -Brief description of the project and its purpose. - -## Features -- Key feature 1 -- Key feature 2 - -## Quick Start -### Prerequisites -### Installation -### Usage - -## API Documentation -### Endpoints -### Examples - -## Architecture -### Components -### Data Flow - -## Development -### Project Structure -### Available Commands -### Testing - -## Configuration -### Environment Variables -### Service Configuration - -## Production Considerations -### Performance -### Security -### Monitoring -``` - -#### Architecture Documentation (`docs/architecture/`) - -Required files: -- `system-overview.md` - High-level system architecture -- `data-flow.md` - Data flow diagrams -- `api-design.md` - API design principles -- `deployment.md` - Deployment architecture -- `security.md` - Security considerations - -### Mermaid Diagrams - -Include these diagram types in architecture documentation: - -```mermaid -# System Architecture -graph TB - Client[Client] --> API[API Layer] - API --> Service[Service Layer] - Service --> Repository[Repository Layer] - Repository --> Database[(Database)] - -# Data Flow -sequenceDiagram - participant C as Client - participant A as API - participant S as Service - participant R as Repository - participant D as Database - - C->>A: Request - A->>S: Process - S->>R: Query - R->>D: Execute - D-->>R: Result - R-->>S: Data - S-->>A: Response - A-->>C: Response -``` - -## 4. Testing Strategy - -### Test Organization - -#### Directory Structure -``` -test/ -├── unit/ # Unit tests (mirror src structure) -│ ├── handler/ -│ ├── service/ -│ ├── repository/ -│ └── dao/ -├── integration/ # Integration tests -│ ├── api/ # API integration tests -│ ├── database/ # Database integration tests -│ └── external/ # External service tests -└── fixtures/ # Test data and fixtures -``` - -#### Test Naming Conventions -- **Unit Tests**: `{Component}_{Method}_{Scenario}_test.{ext}` -- **Integration Tests**: `{Component}_integration_test.{ext}` -- **Test Functions**: `Test{Component}_{Method}_{Scenario}` - -#### Test Categories - -##### Unit Tests -- **Handler Tests**: HTTP request/response validation -- **Service Tests**: Business logic validation -- **Repository Tests**: Data access logic -- **Utility Tests**: Helper function validation - -##### Integration Tests -- **API Tests**: Full HTTP endpoint testing -- **Database Tests**: Data persistence validation -- **External Service Tests**: Third-party integration validation - -#### Test Data Management -- **Fixtures**: Reusable test data structures -- **Factories**: Test data generation utilities -- **Mocks**: External dependency simulation -- **Cleanup**: Automatic test data cleanup - -## 5. Design Principles - -### Architectural Layers - -#### 1. Transport Layer (Handler) -- **Responsibility**: HTTP request/response handling -- **Dependencies**: Business logic layer only -- **Patterns**: Request validation, response formatting, error handling - -#### 2. Business Logic Layer (Service/API) -- **Responsibility**: Core business logic and orchestration -- **Dependencies**: Repository layer only -- **Patterns**: Transaction management, business rule enforcement - -#### 3. Data Access Layer (Repository/DAO) -- **Responsibility**: Data persistence and retrieval -- **Dependencies**: Data models only -- **Patterns**: Repository pattern, DAO pattern, query optimization - -#### 4. Data Model Layer (Entities/DTOs) -- **Responsibility**: Data structure definitions -- **Dependencies**: None (base layer) -- **Patterns**: Value objects, DTOs, domain entities - -### Design Patterns - -#### Repository Pattern -```typescript -// Interface definition -interface UserRepository { - findById(id: string): Promise; - save(user: User): Promise; - delete(id: string): Promise; -} - -// Implementation -class UserRepositoryImpl implements UserRepository { - // Implementation details -} -``` - -#### Service Layer Pattern -```typescript -// Business logic orchestration -class UserService { - constructor(private userRepository: UserRepository) {} - - async createUser(userData: CreateUserRequest): Promise { - // Business logic validation - // Repository interaction - // Response formatting - } -} -``` - -#### Handler Pattern -```typescript -// HTTP request handling -class UserHandler { - constructor(private userService: UserService) {} - - async createUser(req: Request, res: Response): Promise { - // Request validation - // Service call - // Response formatting - } -} -``` - -### Separation of Concerns - -#### Single Responsibility Principle -- Each class/function has one reason to change -- Clear boundaries between layers -- Minimal coupling between components - -#### Dependency Inversion -- High-level modules don't depend on low-level modules -- Both depend on abstractions -- Abstractions don't depend on details - -#### Interface Segregation -- Clients don't depend on interfaces they don't use -- Small, focused interfaces -- Composition over inheritance - -## 6. API Design Principles - -### RESTful Design -- **Resource-based URLs**: `/api/v1/users/{id}` -- **HTTP method semantics**: GET, POST, PUT, DELETE -- **Status code consistency**: 200, 201, 400, 404, 500 -- **Versioning**: URL path versioning (`/api/v1/`) - -### Request/Response Patterns - -#### Request DTOs -```typescript -interface CreateUserRequest { - email: string; - name: string; - role: UserRole; -} - -interface UpdateUserRequest { - name?: string; - role?: UserRole; -} -``` - -#### Response DTOs -```typescript -interface UserResponse { - id: string; - email: string; - name: string; - role: UserRole; - createdAt: string; - updatedAt: string; -} - -interface PaginatedResponse { - data: T[]; - total: number; - limit: number; - offset: number; -} -``` - -### Error Handling -- **Consistent error format**: `{ error: string, code?: string }` -- **Appropriate status codes**: 400 for client errors, 500 for server errors -- **Detailed logging**: Server-side error details with correlation IDs -- **User-friendly messages**: Client-safe error descriptions - -### Query Parameters -- **Pagination**: `limit`, `offset` -- **Filtering**: `status`, `type`, `date_range` -- **Sorting**: `sort_by`, `sort_order` -- **Search**: `q` for general search - -## 7. Data Management - -### Entity Design -- **Immutable IDs**: UUID or auto-incrementing IDs -- **Audit fields**: `created_at`, `updated_at`, `created_by`, `updated_by` -- **Soft deletes**: `deleted_at` field for data retention -- **Versioning**: `version` field for optimistic locking - -### Data Access Patterns -- **Repository abstraction**: Hide data source details -- **Query optimization**: Indexed fields, efficient queries -- **Connection pooling**: Database connection management -- **Transaction management**: ACID compliance - -### Caching Strategy -- **Application-level caching**: In-memory caches -- **Database caching**: Query result caching -- **CDN caching**: Static resource caching -- **Cache invalidation**: Event-driven cache updates - -## 8. Security Considerations - -### Input Validation -- **Request validation**: All inputs validated and sanitized -- **SQL injection prevention**: Parameterized queries -- **XSS prevention**: Output encoding -- **CSRF protection**: Token-based protection - -### Authentication & Authorization -- **JWT tokens**: Stateless authentication -- **Role-based access**: Granular permissions -- **API keys**: Service-to-service authentication -- **Rate limiting**: Request throttling - -### Data Protection -- **Encryption at rest**: Sensitive data encryption -- **Encryption in transit**: TLS/SSL for all communications -- **PII handling**: Personal data protection -- **Audit logging**: Security event tracking - -## 9. Performance Guidelines - -### Optimization Strategies -- **Database indexing**: Strategic index placement -- **Query optimization**: Efficient query patterns -- **Connection pooling**: Resource reuse -- **Async processing**: Non-blocking operations - -### Monitoring & Observability -- **Health checks**: Service availability monitoring -- **Metrics collection**: Performance metrics -- **Logging**: Structured logging with correlation IDs -- **Tracing**: Distributed request tracing - -### Scalability Patterns -- **Horizontal scaling**: Load balancer distribution -- **Vertical scaling**: Resource allocation -- **Caching layers**: Multi-level caching -- **Database sharding**: Data distribution - -## 10. Development Workflow - -### Code Quality Standards -- **Linting**: Automated code style enforcement -- **Formatting**: Consistent code formatting -- **Code review**: Peer review requirements -- **Documentation**: Inline and external documentation - -### Version Control -- **Branch naming**: `feature/`, `bugfix/`, `hotfix/` prefixes -- **Commit messages**: Conventional commit format -- **Pull requests**: Required for all changes -- **Release tagging**: Semantic versioning - -### CI/CD Pipeline -- **Automated testing**: Unit, integration, and e2e tests -- **Code quality checks**: Linting, security scanning -- **Build automation**: Automated artifact creation -- **Deployment automation**: Environment-specific deployments - -## 11. Environment Management - -### Configuration Management -- **Environment variables**: Runtime configuration -- **Configuration files**: Environment-specific configs -- **Secrets management**: Secure credential storage -- **Feature flags**: Runtime feature toggles - -### Environment Types -- **Development**: Local development setup -- **Staging**: Pre-production testing -- **Production**: Live environment -- **Testing**: Automated testing environment - -## 12. Compliance & Standards - -### Code Standards -- **Language-specific**: Follow language best practices -- **Framework conventions**: Adhere to framework patterns -- **Industry standards**: OWASP, SOLID principles -- **Team conventions**: Project-specific guidelines - -### Documentation Standards -- **API documentation**: OpenAPI/Swagger specifications -- **Code documentation**: Inline comments and docstrings -- **Architecture documentation**: System design documents -- **User documentation**: End-user guides - ---- - -## Implementation Checklist - -When starting a new project, ensure all these elements are in place: - -- [ ] Directory structure follows the defined layout -- [ ] Makefile includes all standard targets -- [ ] Docker configuration with health checks -- [ ] Comprehensive README.md -- [ ] Architecture documentation in `docs/architecture/` -- [ ] Test structure mirrors source code organization -- [ ] Repository pattern implementation -- [ ] Service layer abstraction -- [ ] Handler layer for transport concerns -- [ ] DTOs for request/response handling -- [ ] Error handling strategy -- [ ] Logging and monitoring setup -- [ ] Security considerations implemented -- [ ] CI/CD pipeline configuration -- [ ] Environment configuration management - -This framework ensures consistent, maintainable, and scalable applications across different technology stacks and team compositions. diff --git a/prompt-results/contact-service-experiment.md b/prompt-results/contact-service-experiment.md deleted file mode 100644 index 647691d..0000000 --- a/prompt-results/contact-service-experiment.md +++ /dev/null @@ -1,593 +0,0 @@ -# Cursor Rules - Language-Agnostic Project Standards - -## Overview - -This document defines the standardized structure, conventions, and best practices for all projects based on the patterns established in the contact-service-experiment repository. These rules are designed to be language-agnostic and focus on architectural principles rather than implementation details. This document was generated from a source project in python. - -## 1. Project Structure & Modularity - -### Core Directory Layout - -``` -project-root/ -├── src/ # Main source code -│ ├── api/ # API layer (REST endpoints, GraphQL, etc.) -│ ├── model/ # Domain models and business logic -│ ├── datastore/ # Data access layer (repositories, ORM models) -│ ├── handler/ # Request/response handlers -│ ├── utils/ # Shared utilities and helpers -│ ├── scripts/ # Utility scripts and data processing -│ └── main.py # Application entry point -├── tests/ # Test suite -│ ├── api/ # API integration tests -│ ├── unit/ # Unit tests -│ ├── integration/ # Integration tests -│ └── conftest.py # Test configuration and fixtures -├── dev/ # Development tools and configurations -├── docs/ # Documentation -├── architecture/ # Architecture diagrams and specifications -├── schema/ # Database schemas and migrations -├── docker-compose.yml # Container orchestration -├── Makefile # Build and development tasks -├── requirements.txt # Dependencies (language-specific) -├── README.md # Project documentation -└── .gitignore # Version control exclusions -``` - -### Naming Conventions - -#### Files and Directories -- Use **snake_case** for all file and directory names -- Separate concerns with clear, descriptive names -- Group related functionality in subdirectories -- Use plural forms for collections (e.g., `models/`, `tests/`) - -#### Code Elements -- **Models**: Use **PascalCase** for class names -- **Functions/Methods**: Use **snake_case** for function and method names -- **Constants**: Use **UPPER_SNAKE_CASE** for constants -- **Variables**: Use **snake_case** for variables and parameters - -## 2. Architectural Layers & Separation of Concerns - -### Layer Structure - -#### 1. API Layer (`src/api/`) -- **Purpose**: Handle HTTP requests, input validation, and response formatting -- **Responsibilities**: - - Route definitions and endpoint handlers - - Request/response serialization - - Input validation and sanitization - - Error handling and status codes -- **Patterns**: Controller pattern, dependency injection - -#### 2. Model Layer (`src/model/`) -- **Purpose**: Define domain entities and business logic -- **Responsibilities**: - - Domain model definitions - - Business rule validation - - Data transformation logic - - Domain-specific algorithms -- **Patterns**: Domain-driven design, value objects, entities - -#### 3. Data Access Layer (`src/datastore/`) -- **Purpose**: Manage data persistence and retrieval -- **Responsibilities**: - - Database schema definitions - - Query operations and data mapping - - Transaction management - - Connection pooling -- **Patterns**: Repository pattern, data mapper, unit of work - -#### 4. Handler Layer (`src/handler/`) -- **Purpose**: Coordinate between layers and manage application flow -- **Responsibilities**: - - Business logic orchestration - - Cross-cutting concerns (logging, caching) - - Service coordination - - Error handling and recovery -- **Patterns**: Service layer, facade pattern - -### Abstraction Patterns - -#### Repository Pattern -- Abstract data access behind interfaces -- Provide consistent API for different data sources -- Enable easy testing and mocking - -#### Service Layer Pattern -- Encapsulate business logic in service classes -- Coordinate between multiple repositories -- Handle complex operations and transactions - -#### Model-View-Controller (MVC) -- Separate data models from presentation logic -- Use controllers to handle user input -- Maintain clear boundaries between layers - -## 3. Build & Development Tooling - -### Makefile Standards - -```makefile -# Standard Makefile targets for all projects -.PHONY: setup run tests clean db db-init db-reset lint format - -# Environment setup -setup: venv install-deps -venv: # Create virtual environment -install-deps: # Install dependencies - -# Development -run: # Start development server -dev: # Start development environment with hot reload - -# Testing -tests: # Run all tests -test-unit: # Run unit tests only -test-integration: # Run integration tests only -test-coverage: # Run tests with coverage - -# Database -db: # Start database -db-init: # Initialize database schema -db-reset: # Reset database (drop and recreate) -db-migrate: # Run database migrations - -# Code Quality -lint: # Run linting tools -format: # Format code -type-check: # Run type checking - -# Cleanup -clean: # Remove generated files and caches -``` - -### Container Configuration - -#### Docker Compose Structure -```yaml -version: '3.8' -services: - app: - build: . - ports: - - "8000:8000" - environment: - - DATABASE_URL=postgresql://user:pass@db:5432/dbname - depends_on: - db: - condition: service_healthy - volumes: - - ./src:/app/src - - db: - image: postgres:15-alpine - environment: - POSTGRES_DB: dbname - POSTGRES_USER: user - POSTGRES_PASSWORD: pass - ports: - - "5432:5432" - volumes: - - db_data:/var/lib/postgresql/data - healthcheck: - test: ["CMD-SHELL", "pg_isready -U user"] - interval: 5s - timeout: 5s - retries: 5 - -volumes: - db_data: -``` - -### Development Environment - -#### Required Files -- `requirements.txt` or equivalent dependency file -- `.env.example` for environment variable templates -- `docker-compose.yml` for containerized development -- `Makefile` for common development tasks - -#### Environment Variables -- Use `.env` files for local development -- Never commit sensitive data to version control -- Provide `.env.example` with dummy values -- Use environment-specific configuration files - -## 4. Testing Strategy - -### Test Organization - -#### Directory Structure -``` -tests/ -├── unit/ # Unit tests for individual components -│ ├── model/ # Domain model tests -│ ├── datastore/ # Data access layer tests -│ └── utils/ # Utility function tests -├── integration/ # Integration tests -│ ├── api/ # API endpoint tests -│ └── database/ # Database integration tests -├── fixtures/ # Test data and fixtures -├── conftest.py # Test configuration and shared fixtures -└── helpers/ # Test helper functions -``` - -#### Test Naming Conventions -- **Unit Tests**: `test__.py` -- **Integration Tests**: `test__integration.py` -- **API Tests**: `test__.py` - -#### Test Patterns - -##### Unit Test Structure -```python -def test_function_name_scenario(): - """Test description explaining the scenario being tested.""" - # Arrange - Set up test data and conditions - input_data = {...} - expected_result = {...} - - # Act - Execute the function being tested - result = function_under_test(input_data) - - # Assert - Verify the expected outcome - assert result == expected_result -``` - -##### Integration Test Structure -```python -def test_feature_integration(): - """Test complete feature workflow across multiple components.""" - # Setup test environment - # Execute feature workflow - # Verify end-to-end behavior - # Clean up test data -``` - -### Testing Principles - -#### Test Coverage Requirements -- **Unit Tests**: 80% minimum coverage for business logic -- **Integration Tests**: All critical user workflows -- **API Tests**: All public endpoints with various scenarios - -#### Mocking Strategy -- Mock external dependencies (databases, APIs, file systems) -- Use dependency injection for testability -- Create test doubles for complex dependencies - -#### Test Data Management -- Use factories for creating test data -- Implement database transactions for test isolation -- Provide cleanup mechanisms for test data - -## 5. Documentation Standards - -### Required Documentation Files - -#### README.md Structure -```markdown -# Project Name - -Brief description of the project and its purpose. - -## Features - -- Key feature 1 -- Key feature 2 -- Key feature 3 - -## Prerequisites - -- Required software and versions -- System requirements -- Dependencies - -## Installation - -Step-by-step installation instructions. - -## Usage - -How to use the application with examples. - -## API Documentation - -Links to API documentation and examples. - -## Development - -Development setup and contribution guidelines. - -## Testing - -How to run tests and testing strategy. - -## Deployment - -Deployment instructions and configuration. - -## License - -License information. -``` - -#### Architecture Documentation (`architecture/`) -``` -architecture/ -├── overview.md # High-level system overview -├── data-flow.md # Data flow diagrams -├── component-diagram.md # Component interaction diagrams -├── database-schema.md # Database design and relationships -├── api-specification.md # API design and contracts -└── deployment.md # Deployment architecture -``` - -### Documentation Standards - -#### Code Documentation -- Document all public APIs and interfaces -- Use clear, concise descriptions -- Include usage examples for complex functions -- Maintain documentation alongside code changes - -#### Architecture Diagrams -- Use Mermaid diagrams for flow charts -- Include sequence diagrams for complex interactions -- Document data models and relationships -- Keep diagrams up-to-date with code changes - -## 6. Design Principles - -### Core Principles - -#### Single Responsibility Principle -- Each class/module should have one reason to change -- Separate concerns into distinct layers -- Keep functions focused and cohesive - -#### Dependency Inversion -- Depend on abstractions, not concrete implementations -- Use interfaces for external dependencies -- Enable easy testing and mocking - -#### Don't Repeat Yourself (DRY) -- Extract common functionality into shared utilities -- Use inheritance and composition appropriately -- Create reusable components and patterns - -#### Separation of Concerns -- Keep business logic separate from infrastructure -- Isolate data access from business rules -- Maintain clear boundaries between layers - -### Design Patterns - -#### Repository Pattern -```python -# Abstract interface -class ContactRepository: - def find_by_email(self, email: str) -> Optional[Contact]: - pass - - def save(self, contact: Contact) -> Contact: - pass - -# Concrete implementation -class DatabaseContactRepository(ContactRepository): - def find_by_email(self, email: str) -> Optional[Contact]: - # Database-specific implementation - pass -``` - -#### Service Layer Pattern -```python -class ContactService: - def __init__(self, contact_repo: ContactRepository): - self.contact_repo = contact_repo - - def create_contact(self, contact_data: dict) -> Contact: - # Business logic here - contact = Contact(**contact_data) - return self.contact_repo.save(contact) -``` - -#### Factory Pattern -```python -class ContactFactory: - @staticmethod - def create_from_opportunity(opportunity: Opportunity) -> Contact: - # Factory logic for creating contacts - pass -``` - -### Error Handling - -#### Error Strategy -- Use consistent error types and messages -- Implement proper error logging -- Provide meaningful error responses to users -- Handle both expected and unexpected errors - -#### Validation -- Validate input at API boundaries -- Use schema validation for data models -- Implement business rule validation -- Provide clear validation error messages - -## 7. Code Quality Standards - -### Code Style - -#### General Guidelines -- Use consistent indentation and formatting -- Follow language-specific style guides -- Use meaningful variable and function names -- Keep functions small and focused -- Limit function complexity - -#### Comments and Documentation -- Write self-documenting code -- Comment complex algorithms and business logic -- Document public APIs and interfaces -- Keep comments up-to-date with code changes - -### Performance Considerations - -#### Optimization Guidelines -- Profile code before optimizing -- Focus on algorithmic improvements first -- Use appropriate data structures -- Implement caching where beneficial -- Monitor performance in production - -#### Database Optimization -- Use proper indexing strategies -- Optimize query patterns -- Implement connection pooling -- Use database transactions appropriately - -### Security Standards - -#### Security Principles -- Validate all input data -- Use parameterized queries -- Implement proper authentication and authorization -- Follow the principle of least privilege -- Keep dependencies updated - -#### Data Protection -- Encrypt sensitive data at rest and in transit -- Implement proper session management -- Use secure communication protocols -- Follow data privacy regulations - -## 8. Version Control & Collaboration - -### Git Workflow - -#### Branch Strategy -- `main` - Production-ready code -- `develop` - Integration branch for features -- `feature/*` - Feature development branches -- `hotfix/*` - Critical bug fixes -- `release/*` - Release preparation branches - -#### Commit Standards -- Use conventional commit messages -- Keep commits focused and atomic -- Write descriptive commit messages -- Reference issue numbers in commits - -#### Pull Request Process -- Require code reviews for all changes -- Use automated testing and linting -- Update documentation with code changes -- Provide clear descriptions of changes - -### Code Review Guidelines - -#### Review Checklist -- [ ] Code follows project standards -- [ ] Tests are included and passing -- [ ] Documentation is updated -- [ ] No security vulnerabilities -- [ ] Performance impact considered -- [ ] Error handling is appropriate - -#### Review Process -- Review for functionality and correctness -- Check code style and formatting -- Verify test coverage -- Ensure documentation is complete -- Consider security implications - -## 9. Deployment & Operations - -### Deployment Strategy - -#### Environment Management -- Separate development, staging, and production environments -- Use environment-specific configuration -- Implement blue-green or canary deployments -- Monitor deployment health and rollback capabilities - -#### Configuration Management -- Use environment variables for configuration -- Implement configuration validation -- Use secrets management for sensitive data -- Version control configuration templates - -### Monitoring & Observability - -#### Logging Standards -- Use structured logging -- Include correlation IDs for request tracing -- Log at appropriate levels (DEBUG, INFO, WARN, ERROR) -- Implement log aggregation and analysis - -#### Metrics and Monitoring -- Monitor application health and performance -- Track business metrics and KPIs -- Implement alerting for critical issues -- Use distributed tracing for complex systems - -### Disaster Recovery - -#### Backup Strategy -- Regular automated backups -- Test backup restoration procedures -- Implement data retention policies -- Document recovery procedures - -#### High Availability -- Design for fault tolerance -- Implement health checks and circuit breakers -- Use load balancing and auto-scaling -- Plan for regional failover if applicable - -## 10. Maintenance & Evolution - -### Technical Debt Management - -#### Debt Tracking -- Identify and document technical debt -- Prioritize debt reduction based on impact -- Allocate time for debt reduction in sprints -- Monitor debt accumulation over time - -#### Refactoring Guidelines -- Refactor incrementally and safely -- Maintain test coverage during refactoring -- Document architectural decisions -- Review and update patterns regularly - -### Dependency Management - -#### Dependency Strategy -- Keep dependencies up-to-date -- Use dependency vulnerability scanning -- Minimize dependency complexity -- Document dependency decisions - -#### Version Pinning -- Pin dependency versions for stability -- Use semantic versioning -- Implement dependency update automation -- Test thoroughly before updating major versions - ---- - -## Conclusion - -These rules provide a foundation for consistent, maintainable, and scalable software development across all projects. They emphasize: - -- **Modularity** and clear separation of concerns -- **Testability** and quality assurance -- **Documentation** and knowledge sharing -- **Security** and best practices -- **Maintainability** and long-term success - -Adapt these rules to specific project needs while maintaining the core principles of clean architecture and good software engineering practices. diff --git a/prompt-results/kickstart.md b/prompt-results/kickstart.md deleted file mode 100644 index c46523e..0000000 --- a/prompt-results/kickstart.md +++ /dev/null @@ -1,424 +0,0 @@ -## Project Structure & Organization -This was generated off a python project. - -### Core Directory Layout - -``` -project-root/ -├── src/ # Source code directory -│ ├── api/ # API layer (routes, controllers, handlers) -│ ├── core/ # Core business logic and domain models -│ ├── services/ # Service layer (business logic, external integrations) -│ ├── utils/ # Shared utilities and helpers -│ └── cli/ # Command-line interface (if applicable) -├── tests/ # Test directory -│ ├── unit/ # Unit tests (mirrors src/ structure) -│ ├── integration/ # Integration tests -│ └── e2e/ # End-to-end tests (if applicable) -├── architecture/ # Architecture documentation -├── infra/ # Infrastructure configuration -│ ├── docker/ # Docker configurations -│ ├── terraform/ # Infrastructure as Code -│ ├── helm/ # Kubernetes Helm charts -│ └── k8s/ # Kubernetes manifests -├── docs/ # Project documentation -├── scripts/ # Build and deployment scripts -└── config/ # Configuration files -``` - -### Naming Conventions - -#### Files and Directories -- Use **kebab-case** for directory names: `user-service/`, `api-gateway/` -- Use **snake_case** for file names: `user_service.py`, `api_routes.rs` -- Use **PascalCase** for class names: `UserService`, `ApiController` -- Use **camelCase** for function and variable names: `getUserById`, `apiEndpoint` - -#### Module Organization -- Group related functionality in dedicated modules -- Use `__init__.py` (Python) or `mod.rs` (Rust) for module definitions -- Separate concerns: API, business logic, data access, utilities - -## Build & Development Tooling - -### Essential Build Files - -#### Makefile Structure -```makefile -.PHONY: help setup install build run tests clean package - -help: - @echo "Usage:" - @echo " make setup - Set up development environment" - @echo " make install - Install dependencies" - @echo " make build - Build project" - @echo " make run - Run application" - @echo " make tests - Run test suite" - @echo " make clean - Clean build artifacts" - -setup install: - # Language-specific setup commands - -build: - # Language-specific build commands - -run: - # Language-specific run commands - -tests: - # Language-specific test commands - -clean: - # Language-specific cleanup commands -``` - -#### Docker Configuration -- Include `Dockerfile` for containerization -- Include `docker-compose.yml` for local development -- Use multi-stage builds for production optimization -- Specify base images with explicit versions - -#### Package Management -- Use language-specific package managers (Cargo.toml, pyproject.toml, package.json) -- Pin dependency versions for reproducible builds -- Include development dependencies separately - -### Development Environment - -#### Local Development Setup -- Provide clear setup instructions in README.md -- Include `.env.example` with required environment variables -- Use virtual environments or language-specific isolation tools -- Provide development database setup scripts - -#### CI/CD Pipeline Structure -```yaml -# .github/workflows/ci.yml -name: CI/CD Pipeline - -on: [push, pull_request] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - name: Setup environment - - name: Run tests - - name: Build artifact - - name: Deploy (if applicable) -``` - -## Documentation & Metadata - -### Required Documentation Files - -#### README.md Structure -```markdown -# Project Name - -Brief description of the project. - -## Features -- Key feature 1 -- Key feature 2 - -## Quick Start -```bash -# Installation commands -# Setup commands -# Run commands -``` - -## Development -- Setup instructions -- Testing instructions -- Deployment instructions - -## Architecture -Link to architecture documentation -``` - -#### Architecture Directory Structure -``` -architecture/ -├── README.md # Architecture overview -├── diagrams/ # Architecture diagrams -│ ├── system-overview.md # System architecture -│ ├── data-flow.md # Data flow diagrams -│ └── deployment.md # Deployment architecture -├── decisions/ # Architecture Decision Records (ADRs) -│ ├── 001-database-choice.md -│ └── 002-api-design.md -└── specs/ # Technical specifications - ├── api-spec.md # API specifications - └── data-models.md # Data model definitions -``` - -### Architecture Documentation Template - -#### System Overview Diagram -```mermaid -graph TB - Client[Client Application] --> API[API Gateway] - API --> Service1[Service 1] - API --> Service2[Service 2] - Service1 --> Database[(Database)] - Service2 --> Database -``` - -#### API Specification Template -```markdown -# API Specification - -## Endpoints - -### GET /api/v1/resource -**Description:** Retrieve resource information - -**Parameters:** -- `id` (string, required): Resource identifier - -**Response:** -```json -{ - "id": "string", - "name": "string", - "created_at": "datetime" -} -``` - -**Error Responses:** -- 404: Resource not found -- 500: Internal server error -``` - -## Testing Strategy - -### Test Organization - -#### Unit Tests -- Mirror the source code structure -- Test individual functions and classes -- Use descriptive test names: `test_user_creation_success()`, `test_invalid_email_rejection()` -- Mock external dependencies - -#### Integration Tests -- Test component interactions -- Use test databases and external services -- Focus on API endpoints and service boundaries -- Test error scenarios and edge cases - -#### End-to-End Tests -- Test complete user workflows -- Use real or mocked external services -- Focus on critical business paths -- Run in CI/CD pipeline - -### Test File Naming -- Unit tests: `test_.py` or `test_.rs` -- Integration tests: `test__integration.py` -- E2E tests: `test__e2e.py` - -### Test Structure -```python -# Example test structure -def test_user_service_creation(): - # Arrange - user_data = {"name": "John", "email": "john@example.com"} - - # Act - result = user_service.create_user(user_data) - - # Assert - assert result.name == "John" - assert result.email == "john@example.com" -``` - -## Design Principles - -### Architectural Patterns - -#### Layered Architecture -1. **Presentation Layer** (API/Controllers) - - Handle HTTP requests/responses - - Input validation and serialization - - Authentication and authorization - -2. **Business Logic Layer** (Services) - - Core business rules and workflows - - Orchestration of domain operations - - Transaction management - -3. **Data Access Layer** (Repositories/DAOs) - - Database operations - - External service integrations - - Caching strategies - -4. **Domain Layer** (Models/Entities) - - Business entities and value objects - - Domain logic and constraints - - Business rules and invariants - -#### Separation of Concerns -- Each module has a single responsibility -- Dependencies flow inward (Domain → Services → API) -- External dependencies are abstracted through interfaces -- Configuration is externalized and environment-specific - -### Code Organization Principles - -#### Module Structure -``` -src/ -├── api/ # HTTP layer -│ ├── routes.py # Route definitions -│ ├── controllers.py # Request handlers -│ └── middleware.py # Request/response middleware -├── core/ # Business logic -│ ├── services.py # Business services -│ ├── models.py # Domain models -│ └── exceptions.py # Custom exceptions -├── data/ # Data access -│ ├── repositories.py # Data access objects -│ ├── models.py # Data models -│ └── migrations.py # Database migrations -└── utils/ # Shared utilities - ├── config.py # Configuration management - ├── logger.py # Logging utilities - └── validators.py # Input validation -``` - -#### Dependency Injection -- Use dependency injection for loose coupling -- Inject dependencies through constructors -- Use interfaces for external dependencies -- Configure dependencies at application startup - -### Error Handling Strategy - -#### Error Types -1. **Domain Errors**: Business rule violations -2. **Infrastructure Errors**: Database, network, external service failures -3. **Validation Errors**: Input validation failures -4. **Authentication Errors**: Authorization and authentication failures - -#### Error Response Format -```json -{ - "error": { - "code": "VALIDATION_ERROR", - "message": "Invalid input provided", - "details": { - "field": "email", - "reason": "Invalid email format" - } - } -} -``` - -## Infrastructure & Deployment - -### Container Strategy -- Use multi-stage Docker builds -- Optimize for production and development -- Include health checks and graceful shutdown -- Use non-root users for security - -### Configuration Management -- Use environment variables for configuration -- Provide `.env.example` with all required variables -- Use configuration validation at startup -- Support different environments (dev, staging, prod) - -### Monitoring & Observability -- Include health check endpoints -- Implement structured logging -- Add metrics collection points -- Include distributed tracing support - -## Security Guidelines - -### Authentication & Authorization -- Implement proper authentication mechanisms -- Use role-based access control (RBAC) -- Validate and sanitize all inputs -- Implement rate limiting and throttling - -### Data Protection -- Encrypt sensitive data at rest and in transit -- Use secure communication protocols (HTTPS, TLS) -- Implement proper session management -- Follow principle of least privilege - -## Performance & Scalability - -### Performance Considerations -- Implement caching strategies where appropriate -- Use database connection pooling -- Optimize database queries -- Implement pagination for large datasets - -### Scalability Patterns -- Design for horizontal scaling -- Use stateless application design -- Implement proper session management -- Consider microservices architecture for large applications - -## Code Quality Standards - -### Code Style -- Follow language-specific style guides -- Use consistent formatting and indentation -- Write self-documenting code with clear variable names -- Keep functions and classes focused and small - -### Documentation -- Document public APIs and interfaces -- Include code examples in documentation -- Maintain up-to-date architecture diagrams -- Write clear commit messages - -### Code Review Guidelines -- Review for security vulnerabilities -- Check for performance implications -- Ensure proper error handling -- Validate test coverage - -## Version Control & Collaboration - -### Git Workflow -- Use feature branches for development -- Write descriptive commit messages -- Use conventional commit format -- Maintain clean git history - -### Branch Naming -- `feature/feature-name` for new features -- `bugfix/issue-description` for bug fixes -- `hotfix/critical-fix` for urgent fixes -- `release/version-number` for releases - -### Pull Request Guidelines -- Include clear description of changes -- Add tests for new functionality -- Update documentation as needed -- Request reviews from appropriate team members - -## Continuous Improvement - -### Metrics & Monitoring -- Track code quality metrics -- Monitor application performance -- Measure user experience metrics -- Regular security assessments - -### Regular Reviews -- Architecture review sessions -- Code quality assessments -- Performance optimization reviews -- Security vulnerability scans - ---- - -*This document serves as a living guide that should be updated as the project evolves and new patterns emerge.* diff --git a/prompt-results/otter-log-dashboard.md b/prompt-results/otter-log-dashboard.md deleted file mode 100644 index 5a600e6..0000000 --- a/prompt-results/otter-log-dashboard.md +++ /dev/null @@ -1,776 +0,0 @@ -# Cursor Rules - Language-Agnostic Project Standards - -## Table of Contents -1. [Project Structure](#project-structure) -2. [Naming Conventions](#naming-conventions) -3. [Build & Development Tooling](#build--development-tooling) -4. [Documentation Standards](#documentation-standards) -5. [Testing Strategy](#testing-strategy) -6. [Design Principles](#design-principles) -7. [Code Organization](#code-organization) -8. [API Design Patterns](#api-design-patterns) -9. [State Management](#state-management) -10. [Error Handling](#error-handling) -11. [Security Considerations](#security-considerations) -12. [Performance Guidelines](#performance-guidelines) - -## Project Structure - -### Core Directory Layout -``` -project-root/ -├── src/ # Source code -│ ├── api/ # API layer and external integrations -│ ├── components/ # Reusable UI components -│ │ ├── ui/ # Base UI components (buttons, inputs, etc.) -│ │ ├── layout/ # Layout components (headers, sidebars, etc.) -│ │ └── [domain]/ # Domain-specific components -│ ├── contexts/ # Global state management -│ ├── hooks/ # Custom hooks and business logic -│ ├── pages/ # Page-level components -│ │ ├── [domain]/ # Domain-specific pages -│ │ └── admin/ # Administrative pages -│ ├── types/ # Type definitions and interfaces -│ ├── utils/ # Utility functions and helpers -│ └── lib/ # Third-party library configurations -├── tests/ # Test files mirroring src structure -│ ├── api/ # API tests -│ ├── components/ # Component tests -│ ├── hooks/ # Hook tests -│ ├── pages/ # Page tests -│ ├── contexts/ # Context tests -│ ├── utils/ # Utility tests -│ └── mocks/ # Mock data and handlers -├── docker/ # Containerization files -├── public/ # Static assets -├── docs/ # Documentation -│ └── architecture/ # Architecture diagrams and specs -└── scripts/ # Build and deployment scripts -``` - -### Required Root Files -- `README.md` - Project overview and setup instructions -- `Makefile` - Build automation and common tasks -- `.gitignore` - Version control exclusions -- `package.json` / `requirements.txt` / `Cargo.toml` - Dependencies -- `Dockerfile` - Container definition -- `docker-compose.yml` (optional) - Multi-service setup - -## Naming Conventions - -### File Naming -- **Components**: PascalCase (e.g., `UserProfile.tsx`, `BusinessUnitList.tsx`) -- **Hooks**: camelCase with `use` prefix (e.g., `useNetworkStatus.ts`, `useAuth.ts`) -- **Utilities**: camelCase (e.g., `apiClient.ts`, `userUtils.ts`) -- **Types/Interfaces**: PascalCase (e.g., `User.ts`, `ApiResponse.ts`) -- **Constants**: UPPER_SNAKE_CASE (e.g., `API_ENDPOINTS.ts`, `STORAGE_KEYS.ts`) - -### Directory Naming -- **Feature directories**: kebab-case (e.g., `business-units/`, `user-management/`) -- **Generic directories**: lowercase (e.g., `api/`, `utils/`, `hooks/`) -- **Domain directories**: lowercase (e.g., `admin/`, `dashboard/`) - -### Code Naming -- **Variables**: camelCase -- **Functions**: camelCase -- **Classes**: PascalCase -- **Interfaces**: PascalCase with descriptive names -- **Enums**: PascalCase -- **Constants**: UPPER_SNAKE_CASE - -## Build & Development Tooling - -### Makefile Structure -```makefile -# Project variables -APP_NAME = [project-name] -DOCKER_IMAGE = $(APP_NAME):latest - -# Development commands -.PHONY: install -install: - [package-manager] install - -.PHONY: dev -dev: - [package-manager] run dev - -.PHONY: build -build: - [package-manager] run build - -# Docker commands -.PHONY: docker-build -docker-build: - docker build -t $(DOCKER_IMAGE) -f docker/Dockerfile . - -.PHONY: docker-run -docker-run: - docker run -p [port]:[port] $(DOCKER_IMAGE) - -.PHONY: docker-stop -docker-stop: - docker stop $$(docker ps -q --filter ancestor=$(DOCKER_IMAGE)) 2>/dev/null || true - -.PHONY: docker-clean -docker-clean: - docker rmi $(DOCKER_IMAGE) 2>/dev/null || true - -# Testing commands -.PHONY: test -test: - [package-manager] run test - -.PHONY: test:watch -test:watch: - [package-manager] run test:watch - -.PHONY: test:coverage -test:coverage: - [package-manager] run test:coverage - -# Help -.PHONY: help -help: - @echo "Available commands:" - @echo " install - Install dependencies" - @echo " dev - Start development server" - @echo " build - Build for production" - @echo " test - Run tests" - @echo " docker-build - Build Docker image" - @echo " docker-run - Run Docker container" - @echo " help - Show this help message" - -.DEFAULT_GOAL := help -``` - -### Docker Configuration -```dockerfile -# Multi-stage build for production -FROM [base-image] AS builder - -WORKDIR /app - -# Copy dependency files -COPY [dependency-files] ./ - -# Install dependencies -RUN [install-command] - -# Copy source code -COPY . . - -# Build application -RUN [build-command] - -# Production stage -FROM [production-base] AS production - -WORKDIR /app - -# Copy built application -COPY --from=builder /app/[build-output] ./ - -# Expose port -EXPOSE [port] - -# Start application -CMD ["[start-command]"] -``` - -## Documentation Standards - -### README.md Structure -```markdown -# Project Name - -Brief description of the project and its purpose. - -## Quick Start - -```bash -# Install dependencies -make install - -# Start development server -make dev - -# Build for production -make build -``` - -## Project Structure - -Brief overview of key directories and their purposes. - -## Development - -### Prerequisites -- Runtime requirements -- Development tools -- Environment setup - -### Environment Variables -| Variable | Description | Default | -|----------|-------------|---------| -| `API_URL` | Backend API endpoint | `http://localhost:3000` | -| `ENABLE_OFFLINE_MODE` | Enable offline functionality | `false` | - -### Available Scripts -- `make dev` - Start development server -- `make build` - Build for production -- `make test` - Run test suite -- `make docker-build` - Build Docker image - -## Testing - -### Running Tests -```bash -# Run all tests -make test - -# Run tests in watch mode -make test:watch - -# Run tests with coverage -make test:coverage -``` - -## Deployment - -### Docker Deployment -```bash -# Build image -make docker-build - -# Run container -make docker-run -``` - -## Contributing - -Guidelines for contributing to the project. - -## License - -Project license information. -``` - -### Architecture Documentation -Create an `architecture/` directory with: -- `README.md` - Architecture overview -- `system-design.md` - System design document -- `api-specs.md` - API specifications -- `database-schema.md` - Database design -- `deployment.md` - Deployment architecture -- `diagrams/` - Architecture diagrams (Mermaid, PlantUML, etc.) - -## Testing Strategy - -### Test Structure -``` -tests/ -├── README.md # Testing documentation -├── setupTests.[ext] # Global test setup -├── [test-config].[ext] # Test framework configuration -├── utils/ -│ └── test-utils.[ext] # Common test utilities -├── components/ # Mirror src/components structure -├── pages/ # Mirror src/pages structure -├── hooks/ # Mirror src/hooks structure -├── api/ # Mirror src/api structure -├── contexts/ # Mirror src/contexts structure -└── mocks/ # Mock data and handlers -``` - -### Test Categories -1. **Unit Tests**: Individual functions, components, and utilities -2. **Integration Tests**: Component interactions and API integration -3. **End-to-End Tests**: Complete user workflows -4. **Visual Regression Tests**: UI consistency checks - -### Testing Patterns -```typescript -// Component Testing Pattern -describe('[ComponentName]', () => { - it('renders with default props', () => { - // Arrange - // Act - // Assert - }); - - it('handles user interactions', () => { - // Test user interactions - }); - - it('displays loading states', () => { - // Test loading states - }); - - it('handles error states', () => { - // Test error handling - }); -}); - -// Hook Testing Pattern -describe('use[HookName]', () => { - it('returns expected initial state', () => { - // Test initial state - }); - - it('updates state correctly', () => { - // Test state updates - }); - - it('handles errors gracefully', () => { - // Test error handling - }); -}); - -// API Testing Pattern -describe('[ServiceName]', () => { - it('successfully performs [operation]', async () => { - // Test successful operations - }); - - it('handles API errors', async () => { - // Test error scenarios - }); - - it('handles network failures', async () => { - // Test network issues - }); -}); -``` - -### Mocking Strategy -- **Global Mocks**: Browser APIs, storage, network -- **Component Mocks**: External dependencies, context providers -- **API Mocks**: HTTP responses, error scenarios -- **Data Mocks**: Test data factories and fixtures - -## Design Principles - -### Separation of Concerns -- **Presentation Layer**: UI components and styling -- **Business Logic Layer**: Custom hooks and services -- **Data Layer**: API clients and data management -- **State Management**: Context providers and state logic - -### Single Responsibility Principle -- Each component should have one clear purpose -- Functions should perform a single operation -- Classes should represent one concept -- Modules should serve one domain - -### Dependency Inversion -- Depend on abstractions, not concrete implementations -- Use interfaces for external dependencies -- Mock external services for testing -- Inject dependencies where possible - -### Composition over Inheritance -- Prefer composition for code reuse -- Use higher-order components for shared behavior -- Create utility functions for common operations -- Build complex components from simple ones - -## Code Organization - -### Component Structure -```typescript -// 1. Imports (external libraries first, then internal) -import React from 'react'; -import { externalLibrary } from 'external-package'; -import { internalComponent } from '@/components/internal'; - -// 2. Type definitions -interface ComponentProps { - // Props definition -} - -// 3. Component definition -export const ComponentName: React.FC = ({ prop1, prop2 }) => { - // 4. Hooks and state - const [state, setState] = useState(initialValue); - const customHook = useCustomHook(); - - // 5. Event handlers - const handleEvent = () => { - // Event logic - }; - - // 6. Side effects - useEffect(() => { - // Side effect logic - }, [dependencies]); - - // 7. Render logic - return ( -

- {/* JSX */} -
- ); -}; -``` - -### Hook Structure -```typescript -// 1. Imports -import { useState, useEffect } from 'react'; - -// 2. Type definitions -interface HookReturn { - // Return type definition -} - -// 3. Hook implementation -export function useHookName(dependencies): HookReturn { - // 4. State management - const [state, setState] = useState(initialValue); - - // 5. Side effects - useEffect(() => { - // Effect logic - }, [dependencies]); - - // 6. Event handlers - const handleAction = () => { - // Action logic - }; - - // 7. Return values - return { - state, - handleAction, - }; -} -``` - -### Service Structure -```typescript -// 1. Imports -import { apiClient } from './apiClient'; - -// 2. Type definitions -interface ServiceRequest { - // Request type -} - -interface ServiceResponse { - // Response type -} - -// 3. Service implementation -export class ServiceName { - static async performAction(data: ServiceRequest): Promise { - try { - const response = await apiClient.post('/endpoint', data); - return response.data; - } catch (error) { - throw new ServiceError('Operation failed', error); - } - } -} -``` - -## API Design Patterns - -### Client-Side API Layer -```typescript -// Base API client -export class ApiClient { - private baseURL: string; - private timeout: number; - - constructor(config: ApiConfig) { - this.baseURL = config.baseURL; - this.timeout = config.timeout || 10000; - } - - async request(options: RequestOptions): Promise { - // Request implementation with error handling - } -} - -// Domain-specific API services -export class UserService { - static async getUsers(): Promise { - // Implementation - } - - static async createUser(data: CreateUserRequest): Promise { - // Implementation - } -} -``` - -### Error Handling Pattern -```typescript -export class ApiError extends Error { - constructor( - message: string, - public status?: number, - public data?: unknown, - public isOffline: boolean = false - ) { - super(message); - this.name = 'ApiError'; - } -} - -// Usage in services -try { - const response = await apiClient.get('/endpoint'); - return response.data; -} catch (error) { - if (error instanceof ApiError) { - // Handle API-specific errors - } else { - // Handle unexpected errors - } -} -``` - -### Request/Response Patterns -```typescript -// Standard request/response interfaces -interface ApiRequest { - data?: T; - params?: Record; -} - -interface ApiResponse { - data: T; - message?: string; - status: number; -} - -interface PaginatedResponse { - items: T[]; - total: number; - page: number; - limit: number; -} -``` - -## State Management - -### Context Pattern -```typescript -// Context definition -interface AppContextType { - state: AppState; - actions: AppActions; -} - -const AppContext = createContext(undefined); - -// Provider implementation -export const AppProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => { - const [state, setState] = useState(initialState); - - const actions = { - updateState: (updates: Partial) => { - setState(prev => ({ ...prev, ...updates })); - }, - // Other actions - }; - - return ( - - {children} - - ); -}; - -// Hook for consuming context -export const useApp = () => { - const context = useContext(AppContext); - if (!context) { - throw new Error('useApp must be used within AppProvider'); - } - return context; -}; -``` - -### State Organization -- **Global State**: User authentication, app configuration -- **Domain State**: Business logic state (users, projects, etc.) -- **UI State**: Component-specific state (modals, forms, etc.) -- **Cache State**: API response caching and synchronization - -## Error Handling - -### Error Types -```typescript -// Base error class -export class AppError extends Error { - constructor( - message: string, - public code: string, - public statusCode?: number - ) { - super(message); - this.name = 'AppError'; - } -} - -// Specific error types -export class ValidationError extends AppError { - constructor(message: string, public field?: string) { - super(message, 'VALIDATION_ERROR'); - } -} - -export class NetworkError extends AppError { - constructor(message: string) { - super(message, 'NETWORK_ERROR'); - } -} -``` - -### Error Handling Strategy -1. **Prevention**: Input validation, type checking -2. **Detection**: Try-catch blocks, error boundaries -3. **Recovery**: Retry mechanisms, fallback states -4. **Reporting**: Error logging, user feedback - -### Error Boundaries -```typescript -export class ErrorBoundary extends Component { - constructor(props: Props) { - super(props); - this.state = { hasError: false, error: undefined }; - } - - static getDerivedStateFromError(error: Error): State { - return { hasError: true, error }; - } - - componentDidCatch(error: Error, errorInfo: ErrorInfo) { - // Log error to monitoring service - console.error('Error caught by boundary:', error, errorInfo); - } - - render() { - if (this.state.hasError) { - return this.props.fallback || ; - } - - return this.props.children; - } -} -``` - -## Security Considerations - -### Authentication & Authorization -- Implement proper token management -- Use secure storage for sensitive data -- Validate user permissions on both client and server -- Implement session timeout and refresh mechanisms - -### Input Validation -- Validate all user inputs -- Sanitize data before processing -- Use type-safe interfaces for data structures -- Implement CSRF protection where applicable - -### Data Protection -- Encrypt sensitive data in transit and at rest -- Implement proper CORS policies -- Use HTTPS for all communications -- Follow OWASP security guidelines - -## Performance Guidelines - -### Code Splitting -- Implement lazy loading for routes -- Split large components into smaller chunks -- Use dynamic imports for heavy dependencies -- Optimize bundle size with tree shaking - -### Caching Strategy -- Cache API responses appropriately -- Implement memoization for expensive calculations -- Use React.memo for component optimization -- Implement proper cache invalidation - -### Monitoring & Metrics -- Track application performance metrics -- Monitor API response times -- Implement error tracking and reporting -- Use performance profiling tools - -### Optimization Techniques -- Minimize re-renders with proper dependency arrays -- Use virtual scrolling for large lists -- Implement debouncing for user inputs -- Optimize images and assets - -## Environment Configuration - -### Environment Variables -```bash -# Development -NODE_ENV=development -API_URL=http://localhost:3000 -ENABLE_OFFLINE_MODE=false - -# Production -NODE_ENV=production -API_URL=https://api.example.com -ENABLE_OFFLINE_MODE=false -``` - -### Configuration Management -- Use environment-specific configuration files -- Validate required environment variables -- Provide sensible defaults for optional variables -- Document all configuration options - -## Deployment Guidelines - -### Containerization -- Use multi-stage builds for production -- Minimize container image size -- Implement health checks -- Use non-root users in containers - -### CI/CD Pipeline -- Automated testing on every commit -- Code quality checks (linting, formatting) -- Security scanning -- Automated deployment to staging/production - -### Monitoring & Logging -- Implement structured logging -- Set up application monitoring -- Configure error alerting -- Track performance metrics - ---- - -## Implementation Notes - -### Language-Specific Adaptations -- **TypeScript**: Use strict type checking and interfaces -- **JavaScript**: Implement JSDoc for type documentation -- **Python**: Use type hints and dataclasses -- **Rust**: Leverage strong type system and error handling -- **Go**: Use interfaces and structured error handling - -### Framework Considerations -- **React**: Follow hooks-first approach and functional components -- **Vue**: Use composition API and proper component structure -- **Angular**: Follow dependency injection and module patterns -- **Svelte**: Leverage reactive statements and stores - -### Testing Framework Adaptations -- **Jest/Vitest**: Use describe/it blocks and proper mocking -- **PyTest**: Use fixtures and parametrized tests -- **Rust**: Use #[cfg(test)] and proper test organization -- **Go**: Use table-driven tests and proper test naming - -This document serves as a comprehensive guide for maintaining consistency across all projects, regardless of the technology stack used. diff --git a/prompt-results/otter-log.md b/prompt-results/otter-log.md deleted file mode 100644 index 000f090..0000000 --- a/prompt-results/otter-log.md +++ /dev/null @@ -1,437 +0,0 @@ -# Cursor Rules - Language-Agnostic Project Standards - -## Overview - -This document defines the architectural patterns, conventions, and best practices for all projects based on the analysis of the otter-log repository. These rules are designed to be language-agnostic and focus on structural organization, design principles, and development workflows. This document was generated off a project in rust. - -## 1. Project Structure & Modularity - -### Core Directory Layout - -``` -project-root/ -├── src/ # Main source code -│ ├── api/ # Business logic layer (services) -│ ├── model/ # Data models and persistence -│ ├── routes/ # HTTP request handlers -│ ├── middleware/ # Cross-cutting concerns -│ ├── utils/ # Shared utilities -│ ├── config/ # Configuration management -│ └── main.rs # Application entry point -├── tests/ # Integration tests -├── migrations/ # Database schema migrations -├── docker/ # Container configuration -├── k8s/ # Kubernetes manifests -├── scripts/ # Build and deployment scripts -├── docs/ # Documentation -├── architecture/ # System design documents -└── .github/ # CI/CD workflows -``` - -### Naming Conventions - -- **Directories**: Use snake_case for directory names -- **Files**: Use snake_case for file names -- **Modules**: Use snake_case for module names -- **Classes/Types**: Use PascalCase for type definitions -- **Functions/Methods**: Use snake_case for function names -- **Constants**: Use SCREAMING_SNAKE_CASE for constants -- **Variables**: Use snake_case for variables - -### Module Organization - -Each domain should follow this structure: -``` -domain/ -├── mod.rs # Module exports -├── model.rs # Data structures -├── dao.rs # Data access objects -├── service.rs # Business logic -├── error.rs # Error definitions -├── response.rs # API response types -└── mock_dao.rs # Test doubles -``` - -## 2. Architectural Layers - -### Layered Architecture Pattern - -1. **Presentation Layer** (`routes/`) - - HTTP request/response handling - - Input validation - - Response formatting - - Route definitions - -2. **Business Logic Layer** (`api/`) - - Service implementations - - Business rules - - Orchestration logic - - Transaction management - -3. **Data Access Layer** (`model/`) - - Data Access Objects (DAOs) - - Repository implementations - - Database interactions - - Caching logic - -4. **Domain Layer** (`model/`) - - Entity definitions - - Value objects - - Domain services - - Business invariants - -### Cross-Cutting Concerns (`middleware/`) - -- Authentication & Authorization -- Logging & Monitoring -- Error handling -- Request/Response transformation -- Rate limiting -- CORS handling - -## 3. Design Principles - -### Separation of Concerns - -- **Single Responsibility**: Each module/class has one reason to change -- **Dependency Inversion**: High-level modules don't depend on low-level modules -- **Interface Segregation**: Clients depend only on interfaces they use -- **Open/Closed**: Open for extension, closed for modification - -### Data Flow Patterns - -1. **Request Flow**: `Route → Service → Repository → Database` -2. **Response Flow**: `Database → Repository → Service → Route` -3. **Error Flow**: `Error → Service → Route → Client` - -### Abstraction Layers - -``` -┌─────────────────────────────────────┐ -│ Presentation │ ← Routes, Controllers -├─────────────────────────────────────┤ -│ Business Logic │ ← Services, Use Cases -├─────────────────────────────────────┤ -│ Data Access │ ← Repositories, DAOs -├─────────────────────────────────────┤ -│ Infrastructure │ ← Database, External APIs -└─────────────────────────────────────┘ -``` - -## 4. Error Handling Strategy - -### Error Hierarchy - -``` -BaseError -├── ValidationError -├── AuthenticationError -├── AuthorizationError -├── NotFoundError -├── DatabaseError -└── InternalError -``` - -### Error Response Format - -```json -{ - "error": { - "type": "error_type", - "message": "Human-readable message", - "code": "ERROR_CODE", - "details": {}, - "timestamp": "2024-01-01T00:00:00Z" - } -} -``` - -### Error Handling Rules - -- Always return structured error responses -- Log errors with appropriate severity levels -- Don't expose internal implementation details -- Provide meaningful error messages -- Include error codes for programmatic handling - -## 5. Testing Strategy - -### Test Organization - -``` -tests/ -├── unit/ # Unit tests -├── integration/ # Integration tests -├── e2e/ # End-to-end tests -└── fixtures/ # Test data -``` - -### Test Naming Conventions - -- **Unit Tests**: `test__` -- **Integration Tests**: `test__` -- **Test Files**: `_test` or `test_` - -### Test Structure - -### Mocking Strategy - -- Create mock implementations for external dependencies -- Use trait-based abstractions for testability -- Implement mock DAOs for database testing -- Use dependency injection for service testing - -## 6. Configuration Management - -### Configuration Structure - -```rust -pub struct Config { - pub database_url: String, - pub jwt_secret: String, - pub port: u16, - pub environment: String, -} - -impl Config { - pub fn from_env() -> Self { - // Load from environment variables - } -} -``` - -## 7. Database Design - -### Database Patterns - -- Use connection pooling -- Implement proper indexing -- Handle database errors gracefully -- Use transactions for multi-step operations - -## 8. API Design - -### RESTful Conventions - -- Use HTTP methods appropriately (GET, POST, PUT, DELETE) -- Return appropriate HTTP status codes -- Use consistent URL patterns -- Implement proper pagination - -### API Response Format - -```json -{ - "data": {}, - "meta": { - "pagination": {}, - "timestamp": "2024-01-01T00:00:00Z" - } -} -``` - -### Authentication - -- Use JWT tokens for stateless authentication -- Implement proper token validation -- Include token expiration -- Support refresh tokens -## 10. Build & Deployment - -### Makefile Structure - -```makefile -# Development -dev-setup: ## Setup development environment -build: ## Build the application -test: ## Run all tests -fmt: ## Format code -lint: ## Run linter - -# Database -db-create: ## Create database -db-migrate: ## Run migrations -db-reset: ## Reset database - -# Docker -docker-build: ## Build Docker image -docker-run: ## Run Docker container -docker-push: ## Push to registry -``` - -## 11. Documentation Standards - -### README Structure - -```markdown -# Project Name - -Brief description of the project. - -## Features - -- Key feature 1 -- Key feature 2 - -## Quick Start - -Installation and setup instructions. - -## API Documentation - -Link to API docs. - -## Development - -Development setup and guidelines. - -## Deployment - -Deployment instructions. -``` - -### Architecture Documentation - -``` -architecture/ -├── README.md # Architecture overview -├── diagrams/ # System diagrams -│ ├── system-overview.md -│ ├── data-flow.md -│ └── deployment.md -├── decisions/ # Architecture decision records -└── specs/ # Technical specifications -``` - -### API Documentation - -- Use OpenAPI/Swagger for API documentation -- Include request/response examples -- Document error codes -- Provide authentication details - -## 12. Development Workflow - -### Git Workflow - -- Use feature branches -- Require pull request reviews -- Run automated tests on PR -- Use conventional commit messages - -### Code Quality - -- Run linters and formatters -- Enforce code style guidelines -- Use static analysis tools -- Maintain test coverage - -### CI/CD Pipeline - -```yaml -name: CI/CD Pipeline - -on: [push, pull_request] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - name: Run tests - run: make test - - name: Run linter - run: make lint -``` - -## 13. Monitoring & Observability - -### Logging Strategy - -- Use structured logging -- Include correlation IDs -- Log at appropriate levels -- Include context information - -### Metrics - -- Application metrics -- Business metrics -- Infrastructure metrics -- Custom dashboards - -### Health Checks - -- Database connectivity -- External service health -- Application readiness -- Custom health indicators - -## 14. Performance Considerations - -### Caching Strategy - -- Application-level caching -- Database query caching -- CDN for static assets -- Cache invalidation strategies - -### Database Optimization - -- Proper indexing -- Query optimization -- Connection pooling -- Read replicas - -### Scalability Patterns - -- Horizontal scaling -- Load balancing -- Microservices architecture -- Event-driven patterns - -## 15. Maintenance & Operations - -### Backup Strategy - -- Database backups -- Configuration backups -- Disaster recovery plans -- Backup testing - -### Monitoring - -- Application monitoring -- Infrastructure monitoring -- Alert configuration -- Incident response - -### Updates & Maintenance - -- Dependency updates -- Security patches -- Feature deprecation -- Version management - ---- - -## Implementation Guidelines - -1. **Start with the structure**: Always begin by setting up the directory structure -2. **Define interfaces first**: Create trait/interface definitions before implementations -3. **Write tests early**: Implement tests alongside features -4. **Document as you go**: Keep documentation current with code changes -5. **Follow the patterns**: Stick to established patterns for consistency -6. **Review regularly**: Periodically review and update these rules - -## Language-Specific Adaptations - -While these rules are language-agnostic, adapt them to your specific language: - -- **Rust**: Use traits instead of interfaces, implement proper error handling -- **Python**: Use abstract base classes, implement type hints -- **TypeScript**: Use interfaces and types, implement proper error handling -- **Go**: Use interfaces, implement proper error handling with custom types - -Remember: The goal is maintainable, testable, and scalable code that follows consistent patterns across the entire project. - diff --git a/prompts/cursor_generator.md b/prompts/cursor_generator.md deleted file mode 100644 index 88e867b..0000000 --- a/prompts/cursor_generator.md +++ /dev/null @@ -1,48 +0,0 @@ -# Prompt: Generate Language-Agnostic Cursor Rules from GitHub Project - -## Task - -Analyze the structure, patterns, and conventions used in the following GitHub repository: -`https://github.com//` - -## Goal - -Generate a **language-agnostic `CURSOR_RULES.md`** file that defines best practices, conventions, and expected structure for all future projects based on this example. - -## Requirements - -### 1. Modularity & Structure - -* Identify and formalize the directory layout (e.g., `src/`, `tests/`, `api/`, `model/`, etc.). -* Define naming conventions for files, modules, and interfaces. - -### 2. Build & Dev Tooling - -* Extract and generalize Makefile targets, scripts, or dev tools used. -* Specify expectations for Docker/Kubernetes files, local development setup, and CI/CD scripts. - -### 3. Documentation & Metadata - -* Describe required documentation files such as `README.md` and an `architecture/` directory. -* Include a template or expected contents for the `architecture/` folder (e.g., flowcharts, mermaid diagrams, spec docs). - -### 4. Testing Strategy - -* Define structure and naming conventions for test files. -* Capture any patterns in unit vs. integration testing organization. - -### 5. Design Principles - -* Identify architectural or engineering principles in use (e.g., separation of concerns, single-responsibility). -* Outline abstraction patterns (DAO, repository, service layer, etc.) and layering guidelines. - -### 6. Language-Agnostic Output - -* Avoid tying rules to specific languages (like Rust, Python, TypeScript) unless absolutely necessary. -* Prefer role-based descriptions (e.g., "data model definition", "business logic layer") over language-specific implementation details. - -## Format - -* Output should be in **Markdown**. -* Use clear headings and bullet points. - diff --git a/prompts/md-file-aggregator.md b/prompts/md-file-aggregator.md deleted file mode 100644 index 09a9f95..0000000 --- a/prompts/md-file-aggregator.md +++ /dev/null @@ -1,39 +0,0 @@ -Prompt: Synthesize Global Architecture Rules from Cursor-Generated Files - -Task - -Take N Cursor-generated CURSOR_RULES.md files (or similar project rules files) that were generated from different language-specific projects and extract the universal, language-agnostic principles they share about how to structure a high-quality software project. - -Input - -N markdown files, each containing project conventions for a specific codebase. - -Goal - -Produce a single summary file that distills the core architectural patterns, project structure conventions, and engineering principles found across the different languages and repositories. - -Requirements - -1. Abstract Over Language - -Focus on intent and design principles rather than syntax or language-specific idioms. - -2. Identify Convergent Patterns Without Preset Assumptions - -Carefully analyze each file on its own terms. Do not assume any fixed directory layout, naming convention, or modular structure.Instead, surface the organic overlaps and recurring themes in how these projects are structured and described—whether in how they organize source files, define responsibilities, manage dependencies, or encapsulate logic. - -3. Normalize Testing Strategy - -Identify shared principles in how testing is approached: test organization, naming conventions, test types, and what testing is expected to cover. - -4. Summarize Core Engineering Beliefs - -Abstract the shared philosophy across projects, including patterns of modularity, encapsulation, dependency management, and clarity of responsibilities. Include any implicit or explicit principles related to maintainability, scale, or team practices. - -5. Output Format - -Markdown with clear headings and bullet points - -Prioritize clarity, conciseness, and general applicability - -Avoid repeating language-specific patterns unless they clarify a higher-order principle From b4c731eb2eff474ac2705345d454634efcd6a67b Mon Sep 17 00:00:00 2001 From: Jean-Michel Bouchard Date: Sat, 13 Jun 2026 11:12:25 -0400 Subject: [PATCH 17/32] Sync laptop brew and shell config Update the macOS Brewfile from the current no-description Homebrew bundle dump. Add guarded git-ai PATH support for bash/zsh and suppress zsh no-EOL markers. Skipped the local git-ai Git trace2 socket because it is machine-local daemon state, not portable dotfiles config. Checks: make check; make check-editor; zsh -n common/shell/.zshrc; bash -n common/shell/.bashrc; git diff --check. Brew bundle check still reports docker-desktop needs install/update. --- common/shell/.bashrc | 1 + common/shell/.zshrc | 3 ++- darwin/Brewfile | 9 ++++++--- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/common/shell/.bashrc b/common/shell/.bashrc index 7430e8f..27fd5d3 100644 --- a/common/shell/.bashrc +++ b/common/shell/.bashrc @@ -139,6 +139,7 @@ export FZF_DEFAULT_OPTS=" [ -d /opt/homebrew/bin ] && PATH="/opt/homebrew/bin:$PATH" [ -d "$HOME/bin" ] && PATH="$HOME/bin:$PATH" [ -d "$HOME/.local/bin" ] && PATH="$HOME/.local/bin:$PATH" +[ -d "$HOME/.git-ai/bin" ] && PATH="$HOME/.git-ai/bin:$PATH" export PATH # Load custom shell functions diff --git a/common/shell/.zshrc b/common/shell/.zshrc index c898b2d..1056ce0 100644 --- a/common/shell/.zshrc +++ b/common/shell/.zshrc @@ -5,6 +5,7 @@ compinit # Load colors autoload -Uz colors && colors setopt prompt_subst +PROMPT_EOL_MARK='' # Git branch info setup autoload -Uz vcs_info @@ -129,7 +130,7 @@ path_prepend() { done } -path_prepend "/opt/homebrew/bin" "/usr/local/bin" "/usr/local/sbin" "$HOME/bin" "$HOME/.cargo/bin" +path_prepend "/opt/homebrew/bin" "/usr/local/bin" "/usr/local/sbin" "$HOME/bin" "$HOME/.cargo/bin" "$HOME/.git-ai/bin" if [[ -d "$HOME/.pyenv" ]]; then export PYENV_ROOT="$HOME/.pyenv" diff --git a/darwin/Brewfile b/darwin/Brewfile index 32a35eb..53006d8 100644 --- a/darwin/Brewfile +++ b/darwin/Brewfile @@ -13,6 +13,7 @@ brew "doppler" brew "duckdb" brew "eksctl" brew "fd" +brew "ffmpeg" brew "findutils" brew "fzf" brew "gawk" @@ -23,6 +24,7 @@ brew "gnu-sed" brew "gnu-tar" brew "gnu-which" brew "go" +brew "go-task" brew "grep" brew "gzip" brew "helm" @@ -38,6 +40,7 @@ brew "minikube" brew "mypy" brew "neovim" brew "node" +brew "ollama" brew "poetry" brew "ripgrep" brew "rtk" @@ -50,16 +53,16 @@ brew "universal-ctags" brew "virtualenv" brew "vite" brew "wget" -brew "hashicorp/tap/terraform" +brew "whisper-cpp" +brew "wireguard-tools" cask "bunch" cask "claude-code@latest" - -# Casks cask "docker-desktop" cask "font-noto-color-emoji" cask "gcloud-cli" cask "slack" cask "spotify" +cask "superwhisper" cargo "sqlx-cli" cargo "worker-build" npm "@openai/codex" From 5629b7fc3b45c13334fecb6ee3e45105dc58dd68 Mon Sep 17 00:00:00 2001 From: Jean-Michel Bouchard Date: Sat, 13 Jun 2026 11:43:39 -0400 Subject: [PATCH 18/32] Refresh jm-home-box state after 2026-06-13 system update - machine-state.md: bump kernel, bash, python, node, docker, kubectl, terraform; drop go/rust from PATH (not installed); replace stale recently-installed list with full AUR explicit-package inventory - machine.toml: expand aur[] to reflect all explicitly installed AUR packages (GPU drivers, nordic theme, swayfx, fonts, apps) Co-Authored-By: Claude Sonnet 4.6 --- linux/arch/ai-context/machine-state.md | 70 +++++++++++++++++--------- machines/jm-home-box/machine.toml | 20 ++++++++ 2 files changed, 67 insertions(+), 23 deletions(-) diff --git a/linux/arch/ai-context/machine-state.md b/linux/arch/ai-context/machine-state.md index 7a4a63d..51e8b38 100644 --- a/linux/arch/ai-context/machine-state.md +++ b/linux/arch/ai-context/machine-state.md @@ -1,55 +1,79 @@ # Machine State > Auto-generated by `refresh-machine-state.sh` -> Last updated: 2026-01-25T18:43:24-05:00 +> Last updated: 2026-06-13T11:42:48-04:00 ## System -- **OS**: Linux 6.17.6-arch1-1 +- **OS**: Linux 7.0.3-arch1-2 (running; 7.0.12-arch1-1 installed, active after reboot) - **Hostname**: jm-home-box - **Architecture**: x86_64 ## Shell - **Current shell**: /bin/bash -- **Bash**: GNU bash, version 5.3.9(1)-release (x86_64-pc-linux-gnu) +- **Bash**: GNU bash, version 5.3.15(1)-release (x86_64-pc-linux-gnu) - **Zsh**: not installed ## Languages | Language | Version | |----------|---------| -| Rust | | -| Python | Python 3.14.2 | -| Node | v25.3.0 | -| Go | go version go1.25.6 X:nodwarf5 linux/amd64 | +| Python | Python 3.14.5 | +| Node | v26.2.0 | +| Go | not on PATH | +| Rust | not on PATH (rust-racer AUR pkg installed) | ## Tools | Tool | Version | |------|---------| -| Git | git version 2.52.0 | -| Docker | Docker version 29.1.4, build 0e6fee6c52 | -| kubectl | Client Version: v1.35.0 | -| Terraform | Terraform v1.14.3 | +| Git | git version 2.54.0 | +| Docker | Docker version 29.5.2, build 79eb04c7d8 | +| kubectl | v1.36.2 | +| Terraform | v1.15.6 | +| 1Password CLI | 2.34.1 | | Neovim | not installed | ## Packages -- **Total installed**: 890 +- **Total installed**: 883 - **Package manager**: pacman -### Recently Installed +### AUR (explicitly installed) ``` -lib32-nettle -lib32-gnutls -lib32-libngtcp2 -vulkan-mesa-implicit-layers -lib32-vulkan-mesa-implicit-layers -lib32-libdisplay-info -libmakepkg-dropins -botan -libblockdev-smart -github-cli +1password +1password-cli +amf-amdgpu-pro +apache-gremlin-console +apache-spark +archey3 +asoundconf +cassandra +ethminer-bin +exodus +lib32-vulkan-amdgpu-pro +nordic-bluish-accent-standard-buttons-theme +nordic-bluish-accent-theme +nordic-darker-standard-buttons-theme +nordic-darker-theme +nordic-standard-buttons-theme +nordic-theme +opencl-amd +openvpn-update-systemd-resolved +python38 +python-dbg +rust-racer +slack-desktop +spotify +swayfx +teamredminer-bin +ttf-meslo +ttf-monaco +vulkan-amdgpu-pro +wshowkeys-git +xmr-stak +yay-bin +zoom ``` diff --git a/machines/jm-home-box/machine.toml b/machines/jm-home-box/machine.toml index b312cf4..8ea79e1 100644 --- a/machines/jm-home-box/machine.toml +++ b/machines/jm-home-box/machine.toml @@ -23,6 +23,26 @@ pacman = [ "zsh", ] aur = [ + "yay-bin", "1password", "1password-cli", + "amf-amdgpu-pro", + "lib32-vulkan-amdgpu-pro", + "vulkan-amdgpu-pro", + "opencl-amd", + "nordic-theme", + "nordic-darker-theme", + "nordic-darker-standard-buttons-theme", + "nordic-bluish-accent-theme", + "nordic-bluish-accent-standard-buttons-theme", + "nordic-standard-buttons-theme", + "swayfx", + "wshowkeys-git", + "ttf-meslo", + "ttf-monaco", + "openvpn-update-systemd-resolved", + "slack-desktop", + "spotify", + "zoom", + "exodus", ] From dbe7b471fe976f9afc892e55159a7c161ab0936f Mon Sep 17 00:00:00 2001 From: Jean-Michel Bouchard Date: Sat, 13 Jun 2026 11:45:49 -0400 Subject: [PATCH 19/32] Install nvim, remove python38; update machine-state accordingly - Installed neovim 0.12.3 (was in machine.toml but missing from system) - Removed python38 3.8.20 (legacy, 111 MiB freed) - machine-state.md: reflect nvim version, drop python38, bump pkg count to 896 Co-Authored-By: Claude Sonnet 4.6 --- linux/arch/ai-context/machine-state.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/linux/arch/ai-context/machine-state.md b/linux/arch/ai-context/machine-state.md index 51e8b38..c749bd3 100644 --- a/linux/arch/ai-context/machine-state.md +++ b/linux/arch/ai-context/machine-state.md @@ -1,7 +1,7 @@ # Machine State > Auto-generated by `refresh-machine-state.sh` -> Last updated: 2026-06-13T11:42:48-04:00 +> Last updated: 2026-06-13T11:52:00-04:00 ## System @@ -33,11 +33,11 @@ | kubectl | v1.36.2 | | Terraform | v1.15.6 | | 1Password CLI | 2.34.1 | -| Neovim | not installed | +| Neovim | NVIM v0.12.3 | ## Packages -- **Total installed**: 883 +- **Total installed**: 896 - **Package manager**: pacman ### AUR (explicitly installed) @@ -62,7 +62,6 @@ nordic-standard-buttons-theme nordic-theme opencl-amd openvpn-update-systemd-resolved -python38 python-dbg rust-racer slack-desktop From 6c30276dc213d746d22860b3632f593184eb3129 Mon Sep 17 00:00:00 2001 From: Jean-Michel Bouchard Date: Sat, 13 Jun 2026 11:49:25 -0400 Subject: [PATCH 20/32] Remove big data stack (cassandra, apache-spark, apache-gremlin-console) 712 MiB freed. Update machine-state.md to reflect removal and drop pkg count to 892. Co-Authored-By: Claude Sonnet 4.6 --- linux/arch/ai-context/machine-state.md | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/linux/arch/ai-context/machine-state.md b/linux/arch/ai-context/machine-state.md index c749bd3..8714c80 100644 --- a/linux/arch/ai-context/machine-state.md +++ b/linux/arch/ai-context/machine-state.md @@ -1,7 +1,7 @@ # Machine State > Auto-generated by `refresh-machine-state.sh` -> Last updated: 2026-06-13T11:52:00-04:00 +> Last updated: 2026-06-13T12:00:00-04:00 ## System @@ -37,7 +37,7 @@ ## Packages -- **Total installed**: 896 +- **Total installed**: 892 - **Package manager**: pacman ### AUR (explicitly installed) @@ -46,11 +46,8 @@ 1password 1password-cli amf-amdgpu-pro -apache-gremlin-console -apache-spark archey3 asoundconf -cassandra ethminer-bin exodus lib32-vulkan-amdgpu-pro From e939765c00f074d3fa1582d991372d64dfdef855 Mon Sep 17 00:00:00 2001 From: Jean-Michel Bouchard Date: Mon, 22 Jun 2026 08:55:18 -0400 Subject: [PATCH 21/32] Fix installer: copy-only default, path-preserving backups, nvim wiring - Default COPY_MODE=true; --symlink flag for explicit opt-in (non-negotiable constraint from combined plan: no symlinks) - backup_file() now preserves directory structure under BACKUP_DIR and shows destination path in both real and dry-run output - install_vim_config() expands dry-run output to list every file individually - Add nvim install step: copies common/nvim/init.vim -> ~/.config/nvim/init.vim (bridges to existing vim config; identical behavior on both machines) Co-Authored-By: Claude Sonnet 4.6 --- install.sh | 82 +++++++++++++++++++++++++++++++++--------------------- 1 file changed, 50 insertions(+), 32 deletions(-) diff --git a/install.sh b/install.sh index 6faf628..c5430a0 100755 --- a/install.sh +++ b/install.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash # ===== Universal Dotfiles Installer ===== # Works on macOS, Linux (Ubuntu/Debian, Arch, RHEL/CentOS, Alpine) -# Usage: ./install.sh [--minimal] [--no-packages] [--dry-run] [--copy] +# Usage: ./install.sh [--minimal] [--no-packages] [--dry-run] [--symlink] # # Installation Order: # 1. OS Detection & Environment Setup @@ -38,7 +38,7 @@ BACKUP_DIR="$HOME/.dotfiles-backup-$(date +%Y%m%d_%H%M%S)" MINIMAL_MODE=false INSTALL_PACKAGES=true DRY_RUN=false -COPY_MODE=false +COPY_MODE=true # Parse arguments while [[ $# -gt 0 ]]; do @@ -55,8 +55,8 @@ while [[ $# -gt 0 ]]; do DRY_RUN=true shift ;; - --copy) - COPY_MODE=true + --symlink) + COPY_MODE=false shift ;; -h|--help) @@ -64,7 +64,7 @@ while [[ $# -gt 0 ]]; do echo " --minimal Install minimal config (no fancy tools)" echo " --no-packages Skip package installation" echo " --dry-run Show what would be done without doing it" - echo " --copy Copy files instead of creating symlinks" + echo " --symlink Use symlinks instead of copies (not recommended)" echo " -h, --help Show this help" exit 0 ;; @@ -206,16 +206,18 @@ install_packages_linux() { esac } -# Backup existing files +# Backup existing files (path-preserving: mirrors directory structure under BACKUP_DIR) backup_file() { local file="$1" if [[ -f "$file" ]] || [[ -L "$file" ]]; then + local rel_path="${file#$HOME/}" + local backup_dest="$BACKUP_DIR/$rel_path" if [[ "$DRY_RUN" == "false" ]]; then - mkdir -p "$BACKUP_DIR" - cp -L "$file" "$BACKUP_DIR/$(basename "$file")" 2>/dev/null || true - log_info "Backed up $file to $BACKUP_DIR" + mkdir -p "$(dirname "$backup_dest")" + cp -L "$file" "$backup_dest" 2>/dev/null || true + log_info "Backed up $file -> $backup_dest" else - log_info "Would backup: $file" + log_info "Would backup: $file -> $backup_dest" fi fi } @@ -307,17 +309,20 @@ install_git_config() { # Install shell functions install_shell_functions() { log_step "Installing shell functions..." - + if [[ "$DRY_RUN" == "false" ]]; then mkdir -p "$HOME/.config/shell-functions" - # Copy all shell function files for func_file in "$DOTFILES_DIR/common/shell-functions/"*.sh; do if [[ -f "$func_file" ]]; then copy_file "$func_file" "$HOME/.config/shell-functions/$(basename "$func_file")" fi done else - log_info "Would install shell functions to ~/.config/shell-functions/" + for func_file in "$DOTFILES_DIR/common/shell-functions/"*.sh; do + if [[ -f "$func_file" ]]; then + log_info "Would copy: $func_file -> ~/.config/shell-functions/$(basename "$func_file")" + fi + done fi } @@ -372,39 +377,41 @@ install_terminal_config() { create_symlink "$DOTFILES_DIR/common/htop/htoprc" "$HOME/.config/htop/htoprc" } -# Install vim configuration +# Install vim + nvim configuration install_vim_config() { log_step "Installing vim configuration..." - - # Create .vim directory and symlink config files + if [[ "$DRY_RUN" == "false" ]]; then mkdir -p "$HOME/.vim/settings" - - # Link vim configuration files - create_symlink "$DOTFILES_DIR/.vim/vimrc" "$HOME/.vim/vimrc" - create_symlink "$DOTFILES_DIR/.vim/plugins.vim" "$HOME/.vim/plugins.vim" - create_symlink "$DOTFILES_DIR/.vim/mappings.vim" "$HOME/.vim/mappings.vim" - create_symlink "$DOTFILES_DIR/.vim/settings.vim" "$HOME/.vim/settings.vim" - create_symlink "$DOTFILES_DIR/.vim/coc-settings.json" "$HOME/.vim/coc-settings.json" - - # Link settings directory files + + copy_file "$DOTFILES_DIR/.vim/vimrc" "$HOME/.vim/vimrc" + copy_file "$DOTFILES_DIR/.vim/plugins.vim" "$HOME/.vim/plugins.vim" + copy_file "$DOTFILES_DIR/.vim/mappings.vim" "$HOME/.vim/mappings.vim" + copy_file "$DOTFILES_DIR/.vim/coc-settings.json" "$HOME/.vim/coc-settings.json" + for settings_file in "$DOTFILES_DIR/.vim/settings/"*.vim; do if [[ -f "$settings_file" ]]; then - create_symlink "$settings_file" "$HOME/.vim/settings/$(basename "$settings_file")" + copy_file "$settings_file" "$HOME/.vim/settings/$(basename "$settings_file")" fi done else - log_info "Would install vim configuration" - return + log_info "Would copy: .vim/vimrc -> ~/.vim/vimrc" + log_info "Would copy: .vim/plugins.vim -> ~/.vim/plugins.vim" + log_info "Would copy: .vim/mappings.vim -> ~/.vim/mappings.vim" + log_info "Would copy: .vim/coc-settings.json -> ~/.vim/coc-settings.json" + for settings_file in "$DOTFILES_DIR/.vim/settings/"*.vim; do + if [[ -f "$settings_file" ]]; then + log_info "Would copy: .vim/settings/$(basename "$settings_file") -> ~/.vim/settings/$(basename "$settings_file")" + fi + done fi - + # Install vim plugins if vim is available if command -v vim >/dev/null 2>&1; then log_step "Installing vim plugins..." if [[ "$DRY_RUN" == "false" ]]; then vim +PlugInstall +qall - - # Compile CoC.nvim if it was installed + if [[ -d "$HOME/.vim/plugged/coc.nvim" ]]; then log_step "Compiling CoC.nvim..." if command -v npm >/dev/null 2>&1; then @@ -417,8 +424,19 @@ install_vim_config() { else log_info "Would install vim plugins and compile CoC.nvim" fi + fi + + log_step "Installing nvim configuration..." + + if [[ -f "$DOTFILES_DIR/common/nvim/init.vim" ]]; then + if [[ "$DRY_RUN" == "false" ]]; then + mkdir -p "$HOME/.config/nvim" + copy_file "$DOTFILES_DIR/common/nvim/init.vim" "$HOME/.config/nvim/init.vim" + else + log_info "Would copy: common/nvim/init.vim -> ~/.config/nvim/init.vim" + fi else - log_warning "vim not found. Skipping plugin installation." + log_warning "common/nvim/init.vim not found, skipping nvim config" fi } From ca1d2e40bad4246d3782445a001deb564b56030f Mon Sep 17 00:00:00 2001 From: Jean-Michel Bouchard Date: Mon, 22 Jun 2026 20:46:08 -0400 Subject: [PATCH 22/32] Fix Sway keybindings and NVIDIA Wayland setup --- common/shell-functions/macos-clipboard.sh | 15 ++ linux/arch/.config/sway/config | 47 +++--- linux/arch/.config/sway/key-bindings | 172 +++++++++++++++++++++ linux/arch/.config/sway/scripts/macos-edit | 25 +++ linux/arch/packages.list | 13 +- scripts/dotfiles.py | 2 + 6 files changed, 252 insertions(+), 22 deletions(-) create mode 100644 common/shell-functions/macos-clipboard.sh create mode 100644 linux/arch/.config/sway/key-bindings create mode 100755 linux/arch/.config/sway/scripts/macos-edit diff --git a/common/shell-functions/macos-clipboard.sh b/common/shell-functions/macos-clipboard.sh new file mode 100644 index 0000000..c64b241 --- /dev/null +++ b/common/shell-functions/macos-clipboard.sh @@ -0,0 +1,15 @@ +# macOS-compatible clipboard commands for Linux shells. +# On macOS, leave the real pbcopy/pbpaste commands untouched. +if [ "$(uname -s 2>/dev/null)" = "Linux" ]; then + if ! command -v pbcopy >/dev/null 2>&1; then + pbcopy() { + wl-copy "$@" + } + fi + + if ! command -v pbpaste >/dev/null 2>&1; then + pbpaste() { + wl-paste "$@" + } + fi +fi diff --git a/linux/arch/.config/sway/config b/linux/arch/.config/sway/config index 647013e..1dc34ee 100644 --- a/linux/arch/.config/sway/config +++ b/linux/arch/.config/sway/config @@ -1,8 +1,8 @@ set $mod Mod4 -set $super Super_L input * { xkb_layout us,ca + xkb_options altwin:super_win } # Home row direction keys, like vim @@ -23,11 +23,12 @@ set $ssh-menu rofi -show ssh # # Default wallpaper (more resolutions are available in @datadir@/backgrounds/sway/) #output * bg @datadir@/backgrounds/sway/Sway_Wallpaper_Blue_1920x1080.png fill -output * bg ~/.config/sway/assets/beautiful-morning-4k-3840x2160.jpg fill +set $wallpaper ~/.config/sway/assets/beautiful-morning-4k-3840x2160.jpg +output * mode 3440x1440@165Hz bg $wallpaper fill # # Example configuration: # -# output HDMI-A-1 resolution 1920x1080 position 1920,0 +# output * resolution 1920x1080 position 0,0 # # You can get the names of your outputs by running: swaymsg -t get_outputs @@ -58,7 +59,8 @@ output * bg ~/.config/sway/assets/beautiful-morning-4k-3840x2160.jpg fill # Basics: # # Start a terminal - bindsym $mod+Return workspace number 1, exec $term + bindsym --to-code $mod+Return workspace number 1, exec $term + bindsym --to-code $mod+KP_Enter workspace number 1, exec $term # Kill focused window bindsym $mod+q kill @@ -76,6 +78,10 @@ output * bg ~/.config/sway/assets/beautiful-morning-4k-3840x2160.jpg fill # Clipboard history bindsym $mod+Ctrl+p exec cliphist list | rofi -dmenu | cliphist decode | wl-copy + # macOS-style app editing shortcuts + bindsym --no-repeat $mod+c exec ~/.config/sway/scripts/macos-edit copy + bindsym --no-repeat $mod+v exec ~/.config/sway/scripts/macos-edit paste + # SSH windows bindsym $mod+Shift+q exec $ssh-menu @@ -97,6 +103,10 @@ output * bg ~/.config/sway/assets/beautiful-morning-4k-3840x2160.jpg fill # mouse button for dragging. floating_modifier $mod normal + # Prevent accidental wheel-click paste while scrolling. + bindsym --whole-window button2 nop + bindsym --whole-window --release button2 nop + # Reload the configuration file bindsym $mod+Shift+c reload @@ -137,17 +147,17 @@ set $ws4 "4" set $ws5 "5" # Switch to workspace - bindsym $mod+1 workspace number $ws1 - bindsym $mod+2 workspace number $ws2 - bindsym $mod+3 workspace number $ws3 - bindsym $mod+4 workspace number $ws4 - bindsym $mod+5 workspace number $ws5 + bindsym --to-code $mod+1 workspace number $ws1 + bindsym --to-code $mod+2 workspace number $ws2 + bindsym --to-code $mod+3 workspace number $ws3 + bindsym --to-code $mod+4 workspace number $ws4 + bindsym --to-code $mod+5 workspace number $ws5 # Move focused container to workspace - bindsym $mod+Shift+1 move container to workspace number $ws1 - bindsym $mod+Shift+2 move container to workspace number $ws2 - bindsym $mod+Shift+3 move container to workspace number $ws3 - bindsym $mod+Shift+4 move container to workspace number $ws4 - bindsym $mod+Shift+5 move container to workspace number $ws5 + bindsym --to-code $mod+Shift+1 move container to workspace number $ws1 + bindsym --to-code $mod+Shift+2 move container to workspace number $ws2 + bindsym --to-code $mod+Shift+3 move container to workspace number $ws3 + bindsym --to-code $mod+Shift+4 move container to workspace number $ws4 + bindsym --to-code $mod+Shift+5 move container to workspace number $ws5 # Note: workspaces can have any name you want, not just numbers. # We just use 1-10 as the default. # @@ -288,17 +298,12 @@ dim_inactive_colors.urgent #900000FF # border_images.unfocused ~/.config/sway/assets/unfocused.png # border_images.urgent ~/.config/sway/assets/urgent.png -# GPU configuration for AMD RX 5700 XT -exec_always "systemctl --user set-environment WLR_DRM_DEVICES=/dev/dri/card1" -exec_always "systemctl --user set-environment AMD_VULKAN_ICD=RADV" -exec_always "systemctl --user set-environment RADV_PERFTEST=gpl" -exec_always "systemctl --user set-environment VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/radeon_icd.x86_64.json" - # XWayland configuration for GPU access xwayland enable # Autostart -exec "systemctl --user import-environment" +exec_always systemctl --user import-environment DISPLAY WAYLAND_DISPLAY SWAYSOCK XDG_CURRENT_DESKTOP XDG_SESSION_DESKTOP XDG_SESSION_TYPE +exec_always dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY SWAYSOCK XDG_CURRENT_DESKTOP XDG_SESSION_DESKTOP XDG_SESSION_TYPE exec mako exec_always ~/.config/waybar/waybar.sh exec wl-paste --watch cliphist store diff --git a/linux/arch/.config/sway/key-bindings b/linux/arch/.config/sway/key-bindings new file mode 100644 index 0000000..62cd6c3 --- /dev/null +++ b/linux/arch/.config/sway/key-bindings @@ -0,0 +1,172 @@ +### Key bindings +# +# Basics: +# + # Start a terminal + bindsym $mod+Return exec $term + + # Kill focused window + bindsym $mod+q kill + + # Start your launcher + bindsym $mod+d exec $menu + + # Drag floating windows by holding down $mod and left mouse button. + # Resize them with right mouse button + $mod. + # Despite the name, also works for non-floating windows. + # Change normal to inverse to use left mouse button for resizing and right + # mouse button for dragging. + floating_modifier $mod normal + + # Reload the configuration file + bindsym $mod+Shift+c reload + + bindsym $mod+c exec wl-copy + bindsym $mod+v exec wl-paste + + # Exit sway (logs you out of your Wayland session) + bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -b 'Yes, exit sway' 'swaymsg exit' + +# +# Moving around: +# + # Move your focus around + bindsym $mod+$left focus left + bindsym $mod+$down focus down + bindsym $mod+$up focus up + bindsym $mod+$right focus right + # Or use $mod+[up|down|left|right] + bindsym $mod+Left focus left + bindsym $mod+Down focus down + bindsym $mod+Up focus up + bindsym $mod+Right focus right + + # Move the focused window with the same, but add Shift + bindsym $mod+Shift+$left move left + bindsym $mod+Shift+$down move down + bindsym $mod+Shift+$up move up + bindsym $mod+Shift+$right move right + # Ditto, with arrow keys + bindsym $mod+Shift+Left move left + bindsym $mod+Shift+Down move down + bindsym $mod+Shift+Up move up + bindsym $mod+Shift+Right move right + + # Switch to workspace + bindsym $mod+1 workspace number $ws1 + bindsym $mod+2 workspace number $ws2 + bindsym $mod+3 workspace number $ws3 + bindsym $mod+4 workspace number $ws4 + bindsym $mod+5 workspace number $ws5 + bindsym $mod+6 workspace number $ws6 + bindsym $mod+7 workspace number $ws7 + bindsym $mod+8 workspace number $ws8 + bindsym $mod+9 workspace number $ws9 + bindsym $mod+0 workspace number $ws10 + # Move focused container to workspace + bindsym $mod+Shift+1 move container to workspace number $ws1 + bindsym $mod+Shift+2 move container to workspace number $ws2 + bindsym $mod+Shift+3 move container to workspace number $ws3 + bindsym $mod+Shift+4 move container to workspace number $ws4 + bindsym $mod+Shift+5 move container to workspace number $ws5 + bindsym $mod+Shift+6 move container to workspace number $ws6 + bindsym $mod+Shift+7 move container to workspace number $ws7 + bindsym $mod+Shift+8 move container to workspace number $ws8 + bindsym $mod+Shift+9 move container to workspace number $ws9 + bindsym $mod+Shift+0 move container to workspace number $ws10 + # Note: workspaces can have any name you want, not just numbers. + # We just use 1-10 as the default. +# +# Layout stuff: +# + # You can "split" the current object of your focus with + # $mod+b or $mod+v, for horizontal and vertical splits + # respectively. + bindsym $mod+b splith + bindsym $mod+v splitv + + # Switch the current container between different layout styles + bindsym $mod+s layout stacking + bindsym $mod+w layout tabbed + bindsym $mod+e layout toggle split + + # Make the current focus fullscreen + bindsym $mod+f fullscreen + + # Toggle the current focus between tiling and floating mode + bindsym $mod+Shift+space floating toggle + + # Swap focus between the tiling area and the floating area + bindsym $mod+space focus mode_toggle + + # Move focus to the parent container + bindsym $mod+a focus parent +# +# Scratchpad: +# + # Sway has a "scratchpad", which is a bag of holding for windows. + # You can send windows there and get them back later. + + # Move the currently focused window to the scratchpad + bindsym $mod+Shift+minus move scratchpad + + # Show the next scratchpad window or hide the focused scratchpad window. + # If there are multiple scratchpad windows, this command cycles through them. + bindsym $mod+minus scratchpad show +# +# Resizing containers: +# +mode "resize" { + # left will shrink the containers width + # right will grow the containers width + # up will shrink the containers height + # down will grow the containers height + bindsym $left resize shrink width 10px + bindsym $down resize grow height 10px + bindsym $up resize shrink height 10px + bindsym $right resize grow width 10px + + # Ditto, with arrow keys + bindsym Left resize shrink width 10px + bindsym Down resize grow height 10px + bindsym Up resize shrink height 10px + bindsym Right resize grow width 10px + + # Return to default mode + bindsym Return mode "default" + bindsym Escape mode "default" +} +bindsym $mod+r mode "resize" + +# Assignment of apps +bindsym $mod+Shift+f exec firefox +bindsym $mod+Shift+s exec steam +assign [class="firefox"] $ws2 +assign [class="slack"] $ws3 +assign [class="steam"] $ws4 + + + +# Unity Assign +for_window [class="^Unity$" title="^Starting Unity...$"] floating enabled +for_window [class="^Unity$" title="^Hold On$"] floating enabled +for_window [class="^Unity$" title="^Preparing Package$"] floating enabled +for_window [class="^Unity$" title="^Importing Package$"] floating enabled + +# opacity terminals +# for_window [app_id="Alacritty"] opacity 75% + +# https://github.com/ValveSoftware/steam-for-linux/issues/1040 +for_window [class="^Steam$" title="^Friends$"] floating enabled +for_window [class="^Steam$" title="Steam - News"] floating enabled +for_window [class="^Steam$" title=".* - Chat"] floating enabled +for_window [class="^Steam$" title="^Settings$"] floating enabled +for_window [class="^Steam$" title=".* - event started"] floating enabled +for_window [class="^Steam$" title=".* CD key"] floating enabled +for_window [class="^Steam$" title="^Steam - Self Updater$"] floating enabled +for_window [class="^Steam$" title="^Screenshot Uploader$"] floating enabled +for_window [class="^Steam$" title="^Steam Guard - Computer Authorization Required$"] floating enabled +for_window [class="^Steam$" title="^Friends$"] floating enabled +for_window [title="^Steam Keyboard$"] floating enabled + +include @sysconfdir@/sway/config.d/* diff --git a/linux/arch/.config/sway/scripts/macos-edit b/linux/arch/.config/sway/scripts/macos-edit new file mode 100755 index 0000000..2b14c50 --- /dev/null +++ b/linux/arch/.config/sway/scripts/macos-edit @@ -0,0 +1,25 @@ +#!/usr/bin/env sh + +focused_app=$( + swaymsg -t get_tree | + jq -r '.. | objects | select(.focused? == true) | .app_id // .window_properties.class // ""' | + head -n 1 +) + +case "$1:$focused_app" in + copy:kitty) + exec wtype -M ctrl -M shift -k c -m shift -m ctrl + ;; + paste:kitty) + exec wtype -M ctrl -M shift -k v -m shift -m ctrl + ;; + copy:*) + exec wtype -M ctrl -k c -m ctrl + ;; + paste:*) + exec wtype -M ctrl -k v -m ctrl + ;; + *) + exit 64 + ;; +esac diff --git a/linux/arch/packages.list b/linux/arch/packages.list index 2e552f5..1405c2c 100644 --- a/linux/arch/packages.list +++ b/linux/arch/packages.list @@ -13,6 +13,17 @@ gzip htop jq kitty +linux-headers +nvidia-open +nvidia-utils +wl-clipboard +wtype +swayfx +waybar +rofi +mako +cliphist +playerctl make nodejs npm @@ -35,4 +46,4 @@ procs bottom httpie yq -neofetch \ No newline at end of file +neofetch diff --git a/scripts/dotfiles.py b/scripts/dotfiles.py index 8d5e88a..5f7ac40 100755 --- a/scripts/dotfiles.py +++ b/scripts/dotfiles.py @@ -97,7 +97,9 @@ def managed_files(machine: dict) -> list[ManagedFile]: if os_name in {"arch"}: add_file(entries, "linux/arch/.config/sway/config", "~/.config/sway/config", "sway") + add_file(entries, "linux/arch/.config/sway/key-bindings", "~/.config/sway/key-bindings", "sway") add_glob(entries, "linux/arch/.config/sway/assets/*", "~/.config/sway/assets", "sway") + add_glob(entries, "linux/arch/.config/sway/scripts/*", "~/.config/sway/scripts", "sway") add_file(entries, ".vim/vimrc", "~/.vim/vimrc", "vim") add_file(entries, ".vim/plugins.vim", "~/.vim/plugins.vim", "vim") From 83886c4ff46ccf7632b18b6de9cf26ab2569af38 Mon Sep 17 00:00:00 2001 From: Jean-Michel Bouchard Date: Tue, 23 Jun 2026 16:08:43 -0400 Subject: [PATCH 23/32] Track desktop GTK and Waybar theming --- linux/arch/.config/gtk-3.0/gtk.css | 279 ++++++++++++++++++ linux/arch/.config/gtk-3.0/settings.ini | 5 + linux/arch/.config/gtk-4.0/gtk.css | 126 ++++++++ linux/arch/.config/gtk-4.0/settings.ini | 5 + linux/arch/.config/sway/config | 3 + linux/arch/.config/waybar/config | 182 ++++++++++++ .../arch/.config/waybar/modules/cpu-graph.sh | 42 +++ .../arch/.config/waybar/modules/docker-k8s.py | 100 +++++++ linux/arch/.config/waybar/modules/docker.py | 62 ++++ linux/arch/.config/waybar/modules/k8s.py | 174 +++++++++++ linux/arch/.config/waybar/modules/mail.py | 42 +++ linux/arch/.config/waybar/modules/spotify.sh | 18 ++ .../waybar/modules/storage-workspace.sh | 24 ++ linux/arch/.config/waybar/modules/storage.sh | 24 ++ .../.config/waybar/modules/system-graph.sh | 27 ++ linux/arch/.config/waybar/modules/weather.sh | 79 +++++ linux/arch/.config/waybar/style.css | 124 ++++++++ linux/arch/.config/waybar/waybar.sh | 10 + scripts/dotfiles.py | 8 + 19 files changed, 1334 insertions(+) create mode 100644 linux/arch/.config/gtk-3.0/gtk.css create mode 100644 linux/arch/.config/gtk-3.0/settings.ini create mode 100644 linux/arch/.config/gtk-4.0/gtk.css create mode 100644 linux/arch/.config/gtk-4.0/settings.ini create mode 100644 linux/arch/.config/waybar/config create mode 100755 linux/arch/.config/waybar/modules/cpu-graph.sh create mode 100644 linux/arch/.config/waybar/modules/docker-k8s.py create mode 100755 linux/arch/.config/waybar/modules/docker.py create mode 100755 linux/arch/.config/waybar/modules/k8s.py create mode 100755 linux/arch/.config/waybar/modules/mail.py create mode 100755 linux/arch/.config/waybar/modules/spotify.sh create mode 100755 linux/arch/.config/waybar/modules/storage-workspace.sh create mode 100755 linux/arch/.config/waybar/modules/storage.sh create mode 100755 linux/arch/.config/waybar/modules/system-graph.sh create mode 100755 linux/arch/.config/waybar/modules/weather.sh create mode 100644 linux/arch/.config/waybar/style.css create mode 100755 linux/arch/.config/waybar/waybar.sh diff --git a/linux/arch/.config/gtk-3.0/gtk.css b/linux/arch/.config/gtk-3.0/gtk.css new file mode 100644 index 0000000..4db69a5 --- /dev/null +++ b/linux/arch/.config/gtk-3.0/gtk.css @@ -0,0 +1,279 @@ +/* + * Local GTK polish for Sway/kitty/mako. + * Nordic-darker remains the base theme; these rules bend GTK dialogs toward + * the desktop palette used by Sway, Waybar, mako, and kitty. + */ + +@define-color jm_bg #221820; +@define-color jm_bg_deep #18121a; +@define-color jm_bg_soft #2a1e2e; +@define-color jm_surface #332635; +@define-color jm_surface_raised #4a3844; +@define-color jm_accent #9d5a7f; +@define-color jm_accent_soft #6b4456; +@define-color jm_text #d0d0d0; +@define-color jm_text_bright #cdd6f4; +@define-color jm_muted #8a8a8a; +@define-color jm_urgent #d68787; + +window, +dialog, +messagedialog, +filechooser, +filechooserdialog { + background-color: @jm_bg_soft; + color: @jm_text; +} + +decoration { + border: 2px solid @jm_accent; + box-shadow: 0 12px 32px rgba(0, 0, 0, 0.55); +} + +headerbar, +headerbar.titlebar, +.titlebar { + background-image: none; + background-color: @jm_bg; + color: @jm_text_bright; + border-bottom: 1px solid @jm_accent_soft; + box-shadow: none; +} + +headerbar label, +.titlebar label { + color: @jm_text_bright; +} + +toolbar, +actionbar, +revealer > box, +filechooser .view, +filechooser placessidebar, +filechooser placessidebar list, +filechooser stack, +filechooser paned, +filechooserdialog .background, +dialog .background { + background-color: @jm_bg_soft; + color: @jm_text; +} + +filechooser paned > separator, +paned > separator, +separator { + background-color: @jm_accent_soft; + color: @jm_accent_soft; + min-width: 1px; + min-height: 1px; +} + +placessidebar { + background-color: @jm_bg; + border-right: 1px solid @jm_accent_soft; +} + +placessidebar row, +list row, +treeview.view, +treeview.view row, +.view { + background-color: @jm_bg; + color: @jm_text; +} + +placessidebar row:hover, +list row:hover, +treeview.view row:hover, +.view:hover { + background-color: @jm_surface; + color: @jm_text_bright; +} + +placessidebar row:selected, +list row:selected, +treeview.view:selected, +treeview.view row:selected, +.view:selected, +.view:selected:focus { + background-color: @jm_accent_soft; + color: @jm_text_bright; +} + +treeview.view header button { + background-image: none; + background-color: @jm_bg_soft; + color: @jm_text; + border-color: @jm_accent_soft; +} + +entry, +spinbutton, +combobox box button.combo, +filechooser entry, +searchbar entry { + background-image: none; + background-color: @jm_bg; + color: @jm_text_bright; + border: 1px solid @jm_accent_soft; + border-radius: 6px; + box-shadow: none; +} + +entry:focus, +spinbutton:focus, +combobox box button.combo:focus { + border-color: @jm_accent; + box-shadow: 0 0 0 1px alpha(@jm_accent, 0.65); +} + +dialog button, +dialog button.flat, +dialog button.image-button, +dialog button.text-button, +messagedialog button, +filechooser button, +filechooser button.flat, +filechooser button.image-button, +filechooser button.text-button, +filechooserdialog button, +filechooserdialog button.flat, +filechooserdialog button.image-button, +filechooserdialog button.text-button, +popover button, +headerbar button, +.titlebar button { + background-image: none; + background-color: @jm_surface; + color: @jm_text; + border: 1px solid @jm_accent_soft; + border-radius: 6px; + box-shadow: none; + text-shadow: none; +} + +dialog button:hover, +dialog button.flat:hover, +dialog button.image-button:hover, +dialog button.text-button:hover, +messagedialog button:hover, +filechooser button:hover, +filechooser button.flat:hover, +filechooser button.image-button:hover, +filechooser button.text-button:hover, +filechooserdialog button:hover, +filechooserdialog button.flat:hover, +filechooserdialog button.image-button:hover, +filechooserdialog button.text-button:hover, +popover button:hover, +headerbar button:hover, +.titlebar button:hover { + background-color: @jm_surface_raised; + color: @jm_text_bright; + border-color: @jm_accent; +} + +dialog button:active, +dialog button:checked, +dialog button.suggested-action, +dialog button.suggested-action:hover, +messagedialog button:active, +messagedialog button:checked, +messagedialog button.suggested-action, +messagedialog button.suggested-action:hover, +filechooser button:active, +filechooser button:checked, +filechooser button.suggested-action, +filechooser button.suggested-action:hover, +filechooserdialog button:active, +filechooserdialog button:checked, +filechooserdialog button.suggested-action, +filechooserdialog button.suggested-action:hover { + background-color: @jm_accent; + color: @jm_text_bright; + border-color: @jm_accent; +} + +dialog button.destructive-action, +dialog button.destructive-action:hover, +messagedialog button.destructive-action, +messagedialog button.destructive-action:hover, +filechooser button.destructive-action, +filechooser button.destructive-action:hover, +filechooserdialog button.destructive-action, +filechooserdialog button.destructive-action:hover { + background-color: @jm_urgent; + color: @jm_bg_deep; + border-color: @jm_urgent; +} + +pathbar button, +filechooser #pathbarbox button { + background-color: @jm_bg; + color: @jm_text; + border-color: transparent; +} + +pathbar button:hover, +filechooser #pathbarbox button:hover { + background-color: @jm_surface; + color: @jm_text_bright; + border-color: @jm_accent_soft; +} + +scrollbar trough { + background-color: @jm_bg; +} + +scrollbar slider { + background-color: @jm_accent_soft; + border-radius: 6px; + min-width: 6px; + min-height: 6px; +} + +scrollbar slider:hover { + background-color: @jm_accent; +} + +popover, +menu, +menuitem, +.context-menu { + background-color: @jm_bg; + color: @jm_text; + border-color: @jm_accent_soft; +} + +menuitem:hover, +menuitem:selected { + background-color: @jm_surface_raised; + color: @jm_text_bright; +} + +tooltip, +.tooltip { + background-color: @jm_bg; + color: @jm_text; + border: 2px solid @jm_accent; + border-radius: 12px; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5); +} + +tooltip *, +.tooltip * { + background-color: transparent; + color: @jm_text; +} + +selection, +dialog *:selected, +filechooser *:selected, +filechooserdialog *:selected { + background-color: @jm_accent; + color: @jm_text_bright; +} + +NautilusWindow { + background-color: transparent; +} diff --git a/linux/arch/.config/gtk-3.0/settings.ini b/linux/arch/.config/gtk-3.0/settings.ini new file mode 100644 index 0000000..a303bbb --- /dev/null +++ b/linux/arch/.config/gtk-3.0/settings.ini @@ -0,0 +1,5 @@ +[Settings] +gtk-theme-name=Nordic-darker +gtk-icon-theme-name=Adwaita +gtk-font-name=FiraCode Nerd Font 10 +gtk-application-prefer-dark-theme=true diff --git a/linux/arch/.config/gtk-4.0/gtk.css b/linux/arch/.config/gtk-4.0/gtk.css new file mode 100644 index 0000000..88514a7 --- /dev/null +++ b/linux/arch/.config/gtk-4.0/gtk.css @@ -0,0 +1,126 @@ +/* + * GTK4 companion to the GTK3 Sway/kitty/mako polish. + * The Firefox portal file chooser is GTK3 today, but these variables keep + * newer GTK apps visually aligned. + */ + +@define-color jm_bg #221820; +@define-color jm_bg_deep #18121a; +@define-color jm_bg_soft #2a1e2e; +@define-color jm_surface #332635; +@define-color jm_surface_raised #4a3844; +@define-color jm_accent #9d5a7f; +@define-color jm_accent_soft #6b4456; +@define-color jm_text #d0d0d0; +@define-color jm_text_bright #cdd6f4; +@define-color jm_muted #8a8a8a; +@define-color jm_urgent #d68787; + +window, +dialog, +filechooser, +dialog.background, +filechooser.background { + background: @jm_bg_soft; + color: @jm_text; +} + +headerbar, +.titlebar { + background: @jm_bg; + color: @jm_text_bright; + border-bottom: 1px solid @jm_accent_soft; + box-shadow: none; +} + +entry, +searchbar entry, +spinbutton, +dropdown button { + background: @jm_bg_deep; + color: @jm_text_bright; + border: 1px solid @jm_accent_soft; + border-radius: 6px; + box-shadow: none; +} + +entry:focus, +spinbutton:focus { + border-color: @jm_accent; + box-shadow: 0 0 0 1px alpha(@jm_accent, 0.65); +} + +dialog button, +filechooser button, +popover button, +headerbar button, +.titlebar button { + background: @jm_surface; + color: @jm_text; + border: 1px solid @jm_accent_soft; + border-radius: 6px; + box-shadow: none; + text-shadow: none; +} + +dialog button:hover, +filechooser button:hover, +popover button:hover, +headerbar button:hover, +.titlebar button:hover { + background: @jm_surface_raised; + color: @jm_text_bright; + border-color: @jm_accent; +} + +dialog button:checked, +dialog button:active, +dialog button.suggested-action, +filechooser button:checked, +filechooser button:active, +filechooser button.suggested-action { + background: @jm_accent; + color: @jm_text_bright; + border-color: @jm_accent; +} + +list, +listview, +columnview, +treeexpander, +row, +placessidebar { + background: @jm_bg; + color: @jm_text; +} + +row:hover { + background: @jm_surface; + color: @jm_text_bright; +} + +row:selected { + background: @jm_accent_soft; + color: @jm_text_bright; +} + +scrollbar trough { + background: @jm_bg; +} + +scrollbar slider { + background: @jm_accent_soft; + border-radius: 6px; +} + +scrollbar slider:hover { + background: @jm_accent; +} + +popover, +popover contents, +tooltip { + background: @jm_bg; + color: @jm_text; + border-color: @jm_accent_soft; +} diff --git a/linux/arch/.config/gtk-4.0/settings.ini b/linux/arch/.config/gtk-4.0/settings.ini new file mode 100644 index 0000000..a303bbb --- /dev/null +++ b/linux/arch/.config/gtk-4.0/settings.ini @@ -0,0 +1,5 @@ +[Settings] +gtk-theme-name=Nordic-darker +gtk-icon-theme-name=Adwaita +gtk-font-name=FiraCode Nerd Font 10 +gtk-application-prefer-dark-theme=true diff --git a/linux/arch/.config/sway/config b/linux/arch/.config/sway/config index 1dc34ee..0b7db17 100644 --- a/linux/arch/.config/sway/config +++ b/linux/arch/.config/sway/config @@ -239,6 +239,9 @@ assign [class="^Steam$"] $ws4 # pavucontrol floating for_window [app_id="pavucontrol" title=".*"] floating enabled, resize set width 1000px height 400px, move position 750 px 750 px +# GTK portal file pickers, e.g. Firefox open/save dialogs +for_window [app_id="xdg-desktop-portal-gtk"] floating enabled, resize set width 1400px height 900px, move position center, opacity 0.96 + # Unity Assign for_window [class="^Unity$" title="^Starting Unity...$"] floating enabled for_window [class="^Unity$" title="^Hold On$"] floating enabled diff --git a/linux/arch/.config/waybar/config b/linux/arch/.config/waybar/config new file mode 100644 index 0000000..4c9f76c --- /dev/null +++ b/linux/arch/.config/waybar/config @@ -0,0 +1,182 @@ +{ + "layer": "bottom", + "position": "top", + "height": 54, + + "modules-left": ["custom/app-launcher", "sway/workspaces", "sway/mode"], + + "modules-center": ["custom/launch-firefox", + "custom/launch-slack", + "custom/launch-spotify", + "custom/launch-steam" + ], + + "modules-right": ["tray", "pulseaudio", "custom/system-graph", "custom/storage", "custom/storage-workspace", "custom/docker", "custom/k8s", "clock"], + + "sway/mode": { + "format": " {}" + }, + + "sway/workspaces": { + "all-outputs": false, + "disable-scroll": true, + "format": "{icon}", + "format-icons": { + "1": "", + "2": "", + "3": " ", + "4": "", + }, + "persistent-workspaces" : { + "1" : [], + "2" : [], + "3" : [], + "4" : [], + } + }, + "sway/window": { + "max-length": 80, + "tooltip": false + }, + "cpu": { + "interval": 10, + "format": "{load} {usage}%" + }, + "memory": { + "interval": 30, + "format": "{}% ", + "max-length": 10 + }, + "clock": { + "format": "{:%a %d %b %H:%M}", + "tooltip": false + }, + "network": { + "format": "{icon}", + "format-alt": "{ipaddr}/{cidr} {icon}", + "format-alt-click": "click-right", + "format-icons": { + "wifi": ["", "" ,""], + "ethernet": ["NET"], + "disconnected": [""] + }, + "on-click": "notify-send `nmcli device` --icon=dialog-information", + "tooltip": false + }, + "custom/app-launcher": { + "format": "", + "on-click": "rofi -show drun -eh 2 &" + }, + "custom/launch-firefox": { + "format": "", + "on-click": "firefox", + "tooltip": false + }, + "custom/launch-spotify": { + "format": "", + "on-click": "spotify", + "tooltip": false + }, + "custom/launch-slack": { + "format": "", + "on-click": "slack -s", + "tooltip": false + }, + "custom/launch-steam": { + "format": "", + "on-click": "steam", + "tooltip": false + }, + "custom/launch-thunderbird": { + "format": "", + "on-click": "thunderbird" + }, + "pulseaudio": { + "format": "{icon}", + "format-alt": "{volume} {icon}", + "format-alt-click": "click-right", + "format-muted": "", + "format-icons": { + "phone": [" ", " ", " ", " "], + "default": ["", "", "", ""] + }, + "scroll-step": 10, + "on-click": "if pgrep pavucontrol ; then pkill pavucontrol; else pavucontrol; fi", + "tooltip": false + }, + "custom/spotify": { + "interval": 1, + "return-type": "json", + "exec": "~/.config/waybar/modules/spotify.sh", + "exec-if": "pgrep spotify", + "escape": true + }, + "custom/storage": { + "format": "{} ", + "format-alt": "{percentage}% ", + "format-alt-click": "click-right", + "return-type": "json", + "interval": 60, + "exec": "~/.config/waybar/modules/storage.sh" + }, + "custom/weather": { + "format": "{}", + "format-alt": "{alt}: {}", + "format-alt-click": "click-right", + "interval": 1800, + "return-type": "json", + "exec": "~/.config/waybar/modules/weather.sh", + "exec-if": "ping wttr.in -c1" + }, + "idle_inhibitor": { + "format": "{icon}", + "format-icons": { + "activated": "", + "deactivated": "" + }, + "tooltip": false + }, + "custom/mail": { + "format": "", + "format-alt": "{alt} ", + "format-alt-click": "click-right", + "interval": 60, + "return-type": "json", + "exec": "~/.config/waybar/modules/mail.py", + "tooltip": false + }, + "tray": { + "icon-size": 16, + "spacing": 10 + }, + "custom/storage-workspace": { + "format": "🗄️ {}", + "format-alt": "🗄️ {percentage}%", + "format-alt-click": "click-right", + "return-type": "json", + "interval": 60, + "exec": "~/.config/waybar/modules/storage-workspace.sh", + "tooltip": true + }, + "custom/system-graph": { + "format": "{}", + "return-type": "json", + "interval": 2, + "exec": "~/.config/waybar/modules/system-graph.sh", + "tooltip": true + }, + "custom/docker": { + "format": "{}", + "return-type": "json", + "interval": 10, + "exec": "~/.config/waybar/modules/docker.py", + "tooltip": true + }, + "custom/k8s": { + "format": "{}", + "return-type": "json", + "interval": 10, + "exec": "~/.config/waybar/modules/k8s.py", + "tooltip": true + } +} diff --git a/linux/arch/.config/waybar/modules/cpu-graph.sh b/linux/arch/.config/waybar/modules/cpu-graph.sh new file mode 100755 index 0000000..f097ff1 --- /dev/null +++ b/linux/arch/.config/waybar/modules/cpu-graph.sh @@ -0,0 +1,42 @@ +#!/bin/bash + +# Get CPU usage history and create a sparkline graph +# Uses Unicode block characters to show CPU history + +HISTORY_FILE="/tmp/waybar-cpu-history" +MAX_POINTS=8 + +# Get current CPU usage +current=$(top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1}') +current_int=$(printf "%.0f" "$current") + +# Read history +if [ -f "$HISTORY_FILE" ]; then + history=$(cat "$HISTORY_FILE") +else + history="" +fi + +# Add current to history +history="$history $current_int" + +# Keep only last MAX_POINTS +history=$(echo $history | awk -v max=$MAX_POINTS '{n=NF-max+1; if(n<1) n=1; for(i=n; i<=NF; i++) printf "%s ", $i}') + +# Save history +echo "$history" > "$HISTORY_FILE" + +# Create sparkline using block characters +blocks=("▁" "▂" "▃" "▄" "▅" "▆" "▇" "█") +graph="" + +for val in $history; do + # Scale value (0-100) to block index (0-7) + idx=$((val * 7 / 100)) + if [ $idx -gt 7 ]; then idx=7; fi + if [ $idx -lt 0 ]; then idx=0; fi + graph="${graph}${blocks[$idx]}" +done + +# Output JSON +echo "{\"text\":\"$graph ${current_int}%\", \"percentage\":$current_int, \"tooltip\":\"CPU: ${current_int}%\"}" diff --git a/linux/arch/.config/waybar/modules/docker-k8s.py b/linux/arch/.config/waybar/modules/docker-k8s.py new file mode 100644 index 0000000..efa6ff5 --- /dev/null +++ b/linux/arch/.config/waybar/modules/docker-k8s.py @@ -0,0 +1,100 @@ +#!/usr/bin/env python3 + +import json +import subprocess + +def run_command(cmd): + """Run a shell command and return output""" + try: + result = subprocess.run(cmd, shell=True, capture_output=True, text=True, timeout=5) + return result.stdout.strip() + except: + return "" + +def get_docker_info(): + """Get Docker container information""" + running = run_command("docker ps -q 2>/dev/null | wc -l") + total = run_command("docker ps -aq 2>/dev/null | wc -l") + + try: + running = int(running) if running else 0 + total = int(total) if total else 0 + except: + running, total = 0, 0 + + return {"running": running, "total": total} + +def get_k8s_info(): + """Get Kubernetes context and pod information""" + context = run_command("kubectl config current-context 2>/dev/null") + + if not context: + return None + + # Get pod counts by status + pods_running = run_command("kubectl get pods --all-namespaces --field-selector=status.phase=Running 2>/dev/null | tail -n +2 | wc -l") + pods_pending = run_command("kubectl get pods --all-namespaces --field-selector=status.phase=Pending 2>/dev/null | tail -n +2 | wc -l") + pods_failed = run_command("kubectl get pods --all-namespaces --field-selector=status.phase=Failed 2>/dev/null | tail -n +2 | wc -l") + + try: + running = int(pods_running) if pods_running else 0 + pending = int(pods_pending) if pods_pending else 0 + failed = int(pods_failed) if pods_failed else 0 + except: + running, pending, failed = 0, 0, 0 + + return { + "context": context, + "pods_running": running, + "pods_pending": pending, + "pods_failed": failed, + "pods_total": running + pending + failed + } + +def main(): + docker_info = get_docker_info() + k8s_info = get_k8s_info() + + # Build display text + if k8s_info: + # Shorten context if too long + context = k8s_info['context'] + short_context = f"{context[:12]}..." if len(context) > 15 else context + + text = f"🐳 {docker_info['running']} ☸ {k8s_info['pods_running']} ({short_context})" + else: + text = f"🐳 {docker_info['running']}" + + # Build tooltip + tooltip_lines = [] + tooltip_lines.append(f"Docker: {docker_info['running']}/{docker_info['total']} running") + + if k8s_info: + tooltip_lines.append(f"Context: {k8s_info['context']}") + tooltip_lines.append(f"Pods Running: {k8s_info['pods_running']}") + if k8s_info['pods_pending'] > 0: + tooltip_lines.append(f"Pods Pending: {k8s_info['pods_pending']}") + if k8s_info['pods_failed'] > 0: + tooltip_lines.append(f"Pods Failed: {k8s_info['pods_failed']}") + else: + tooltip_lines.append("Kubernetes: No context") + + tooltip = "\n".join(tooltip_lines) + + # Add CSS class if there are issues + css_class = "" + if k8s_info and k8s_info['pods_failed'] > 0: + css_class = "critical" + elif k8s_info and k8s_info['pods_pending'] > 0: + css_class = "warning" + + output = { + "text": text, + "tooltip": tooltip, + "class": css_class + } + + print(json.dumps(output)) + +if __name__ == "__main__": + main() diff --git a/linux/arch/.config/waybar/modules/docker.py b/linux/arch/.config/waybar/modules/docker.py new file mode 100755 index 0000000..37faf0c --- /dev/null +++ b/linux/arch/.config/waybar/modules/docker.py @@ -0,0 +1,62 @@ +#!/usr/bin/env python3 + +import json +import subprocess + +def run_command(cmd): + """Run a shell command and return output""" + try: + result = subprocess.run(cmd, shell=True, capture_output=True, text=True, timeout=5) + return result.stdout.strip() + except: + return "" + +def get_docker_info(): + """Get Docker container information""" + running = run_command("docker ps -q 2>/dev/null | wc -l") + total = run_command("docker ps -aq 2>/dev/null | wc -l") + + # Get container names for tooltip + containers = run_command("docker ps --format '{{.Names}}' 2>/dev/null") + + try: + running = int(running) if running else 0 + total = int(total) if total else 0 + except: + running, total = 0, 0 + + return { + "running": running, + "total": total, + "containers": containers.split('\n') if containers else [] + } + +def main(): + docker_info = get_docker_info() + + # Build display text + text = f"🐳 {docker_info['running']}" + + # Build detailed tooltip + tooltip_lines = [f"Docker: {docker_info['running']}/{docker_info['total']} running"] + + if docker_info['containers']: + tooltip_lines.append("\nRunning containers:") + for container in docker_info['containers'][:10]: # Limit to 10 + tooltip_lines.append(f" • {container}") + if len(docker_info['containers']) > 10: + tooltip_lines.append(f" ... and {len(docker_info['containers']) - 10} more") + else: + tooltip_lines.append("No containers running") + + tooltip = "\n".join(tooltip_lines) + + output = { + "text": text, + "tooltip": tooltip + } + + print(json.dumps(output)) + +if __name__ == "__main__": + main() diff --git a/linux/arch/.config/waybar/modules/k8s.py b/linux/arch/.config/waybar/modules/k8s.py new file mode 100755 index 0000000..94c6a95 --- /dev/null +++ b/linux/arch/.config/waybar/modules/k8s.py @@ -0,0 +1,174 @@ +#!/usr/bin/env python3 + +import json +import subprocess +from collections import defaultdict + +def run_command(cmd): + """Run a shell command and return output""" + try: + result = subprocess.run(cmd, shell=True, capture_output=True, text=True, timeout=5) + return result.stdout.strip() + except: + return "" + +def get_k8s_info(): + """Get Kubernetes context and detailed pod/app information""" + context = run_command("kubectl config current-context 2>/dev/null") + + if not context: + return None + + # Get namespace list + namespaces_raw = run_command("kubectl get namespaces --no-headers -o custom-columns=':metadata.name' 2>/dev/null") + namespaces = [ns.strip() for ns in namespaces_raw.split('\n') if ns.strip()] + + # Get all pods with namespace and status + pods_raw = run_command("kubectl get pods --all-namespaces -o custom-columns='NAMESPACE:.metadata.namespace,NAME:.metadata.name,STATUS:.status.phase' --no-headers 2>/dev/null") + + # Parse pods by namespace + pods_by_namespace = defaultdict(lambda: {"running": [], "pending": [], "failed": []}) + total_running = 0 + total_pending = 0 + total_failed = 0 + + for line in pods_raw.split('\n'): + if not line.strip(): + continue + parts = line.split() + if len(parts) >= 3: + namespace, pod_name, status = parts[0], parts[1], parts[2] + + if status == "Running": + pods_by_namespace[namespace]["running"].append(pod_name) + total_running += 1 + elif status == "Pending": + pods_by_namespace[namespace]["pending"].append(pod_name) + total_pending += 1 + elif status in ["Failed", "Error", "CrashLoopBackOff"]: + pods_by_namespace[namespace]["failed"].append(pod_name) + total_failed += 1 + + # Get node info + nodes_ready = run_command("kubectl get nodes --no-headers 2>/dev/null | grep -c ' Ready'") + try: + nodes = int(nodes_ready) if nodes_ready else 0 + except: + nodes = 0 + + # Get deployments for better app understanding + deployments_raw = run_command("kubectl get deployments --all-namespaces -o custom-columns='NAMESPACE:.metadata.namespace,NAME:.metadata.name,READY:.status.readyReplicas,TOTAL:.status.replicas' --no-headers 2>/dev/null") + deployments = [] + for line in deployments_raw.split('\n'): + if not line.strip(): + continue + parts = line.split() + if len(parts) >= 4: + deployments.append({ + "namespace": parts[0], + "name": parts[1], + "ready": parts[2] if parts[2] != '' else '0', + "total": parts[3] if parts[3] != '' else '0' + }) + + return { + "context": context, + "namespaces": namespaces, + "pods_by_namespace": dict(pods_by_namespace), + "pods_running": total_running, + "pods_pending": total_pending, + "pods_failed": total_failed, + "nodes": nodes, + "deployments": deployments + } + +def main(): + k8s_info = get_k8s_info() + + if not k8s_info: + output = { + "text": "☸ -", + "tooltip": "Kubernetes: No context" + } + print(json.dumps(output)) + return + + # Build display text (context shown in tooltip only) + text = f"☸ {k8s_info['pods_running']}" + + # Skip default Kubernetes namespaces + system_namespaces = {'default', 'kube-system', 'kube-public', 'kube-node-lease', 'ingress-nginx'} + + # Build detailed tooltip + tooltip_lines = [ + f"Context: {k8s_info['context']}", + f"Nodes: {k8s_info['nodes']}", + "" + ] + + # Show deployments if any (excluding system namespaces) + custom_deployments = [d for d in k8s_info['deployments'] if d['namespace'] not in system_namespaces] + + if custom_deployments: + tooltip_lines.append("Deployments:") + for dep in custom_deployments[:10]: # Limit to 10 + tooltip_lines.append(f" {dep['namespace']}/{dep['name']}: {dep['ready']}/{dep['total']}") + if len(custom_deployments) > 10: + tooltip_lines.append(f" ... and {len(custom_deployments) - 10} more") + tooltip_lines.append("") + + # Show pods grouped by namespace (only non-empty, non-system ones) + tooltip_lines.append("Namespaces:") + active_namespaces = 0 + for ns in k8s_info['namespaces']: + # Skip system namespaces + if ns in system_namespaces: + continue + + pods = k8s_info['pods_by_namespace'].get(ns, {"running": [], "pending": [], "failed": []}) + running_count = len(pods['running']) + pending_count = len(pods['pending']) + failed_count = len(pods['failed']) + + status_parts = [] + if running_count > 0: + status_parts.append(f"{running_count} running") + if pending_count > 0: + status_parts.append(f"{pending_count} pending") + if failed_count > 0: + status_parts.append(f"{failed_count} failed") + + if status_parts: + tooltip_lines.append(f" {ns}: {', '.join(status_parts)}") + active_namespaces += 1 + + if active_namespaces == 0: + tooltip_lines.append(" (no custom namespaces)") + + # Add totals at bottom + tooltip_lines.append("") + tooltip_lines.append(f"Total: {k8s_info['pods_running']} running") + if k8s_info['pods_pending'] > 0: + tooltip_lines.append(f" {k8s_info['pods_pending']} pending") + if k8s_info['pods_failed'] > 0: + tooltip_lines.append(f" {k8s_info['pods_failed']} failed") + + tooltip = "\n".join(tooltip_lines) + + # Add CSS class if there are issues + css_class = "" + if k8s_info['pods_failed'] > 0: + css_class = "critical" + elif k8s_info['pods_pending'] > 0: + css_class = "warning" + + output = { + "text": text, + "tooltip": tooltip, + "class": css_class + } + + print(json.dumps(output)) + +if __name__ == "__main__": + main() diff --git a/linux/arch/.config/waybar/modules/mail.py b/linux/arch/.config/waybar/modules/mail.py new file mode 100755 index 0000000..abc36ec --- /dev/null +++ b/linux/arch/.config/waybar/modules/mail.py @@ -0,0 +1,42 @@ +#!/usr/bin/python + +import os +import imaplib + +import mailsecrets + +def getmails(username, password, server): + imap = imaplib.IMAP4_SSL(server, 993) + imap.login(username, password) + imap.select('INBOX') + ustatus, uresponse = imap.uid('search', None, 'UNSEEN') + if ustatus == 'OK': + unread_msg_nums = uresponse[0].split() + else: + unread_msg_nums = [] + + fstatus, fresponse = imap.uid('search', None, 'FLAGGED') + if fstatus == 'OK': + flagged_msg_nums = fresponse[0].split() + else: + flagged_msg_nums = [] + + return [len(unread_msg_nums), len(flagged_msg_nums)] + +ping = os.system("ping " + mailsecrets.server + " -c1 > /dev/null 2>&1") +if ping == 0: + mails = getmails(mailsecrets.username, mailsecrets.password, mailsecrets.server) + text = '' + alt = '' + + if mails[0] > 0: + text = alt = str(mails[0]) + if mails[1] > 0: + alt = str(mails[1]) + "  " + alt + else: + exit(1) + + print('{"text":"' + text + '", "alt": "' + alt + '"}') + +else: + exit(1) diff --git a/linux/arch/.config/waybar/modules/spotify.sh b/linux/arch/.config/waybar/modules/spotify.sh new file mode 100755 index 0000000..2ae9dc8 --- /dev/null +++ b/linux/arch/.config/waybar/modules/spotify.sh @@ -0,0 +1,18 @@ +#!/bin/sh + +class=$(playerctl metadata --player=spotify --format '{{lc(status)}}') +icon="" + +if [[ $class == "playing" ]]; then + info=$(playerctl metadata --player=spotify --format '{{artist}} - {{title}}') + if [[ ${#info} > 40 ]]; then + info=$(echo $info | cut -c1-40)"..." + fi + text=$info +elif [[ $class == "paused" ]]; then + text=$icon "paused" +elif [[ $class == "stopped" ]]; then + text=$icon "stopped" +fi + +echo -e "{\"text\":\""$text"\", \"class\":\""$class"\"}" diff --git a/linux/arch/.config/waybar/modules/storage-workspace.sh b/linux/arch/.config/waybar/modules/storage-workspace.sh new file mode 100755 index 0000000..2408b73 --- /dev/null +++ b/linux/arch/.config/waybar/modules/storage-workspace.sh @@ -0,0 +1,24 @@ +#!/bin/sh + +mount="/home/jm/workspace" +warning=80 +critical=90 + +df -h -P -l "$mount" | awk -v warning=$warning -v critical=$critical ' +/workspace.*/ { + text=$4 + tooltip="Workspace: "$2" total, "$3" used, "$4" free ("$5")" + use=$5 + exit 0 +} +END { + class="" + gsub(/%$/,"",use) + if (use > critical) { + class="critical" + } else if (use > warning) { + class="warning" + } + print "{\"text\":\""text"\", \"percentage\":"use",\"tooltip\":\""tooltip"\", \"class\":\""class"\"}" +} +' diff --git a/linux/arch/.config/waybar/modules/storage.sh b/linux/arch/.config/waybar/modules/storage.sh new file mode 100755 index 0000000..77902e3 --- /dev/null +++ b/linux/arch/.config/waybar/modules/storage.sh @@ -0,0 +1,24 @@ +#!/bin/sh + +mount="/" +warning=80 +critical=90 + +df -h -P -l "$mount" | awk -v warning=$warning -v critical=$critical ' +/\/.*/ { + text=$4 + tooltip="Root: "$2" total, "$3" used, "$4" free ("$5")" + use=$5 + exit 0 +} +END { + class="" + gsub(/%$/,"",use) + if (use > critical) { + class="critical" + } else if (use > warning) { + class="warning" + } + print "{\"text\":\""text"\", \"percentage\":"use",\"tooltip\":\""tooltip"\", \"class\":\""class"\"}" +} +' diff --git a/linux/arch/.config/waybar/modules/system-graph.sh b/linux/arch/.config/waybar/modules/system-graph.sh new file mode 100755 index 0000000..6d817bc --- /dev/null +++ b/linux/arch/.config/waybar/modules/system-graph.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +# Simple CPU + Memory display with load indicators + +# Get current CPU usage +cpu_usage=$(top -bn2 -d 0.5 | grep "Cpu(s)" | tail -1 | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1}') +cpu_int=$(printf "%.0f" "$cpu_usage") + +# Get current memory usage +mem_usage=$(free | grep Mem | awk '{printf "%.0f", $3/$2 * 100.0}') + +# Choose icon based on CPU load +if [ $cpu_int -lt 25 ]; then + cpu_icon="" +elif [ $cpu_int -lt 50 ]; then + cpu_icon="" +elif [ $cpu_int -lt 75 ]; then + cpu_icon="" +else + cpu_icon="" +fi + +# Simple compact display +text="${cpu_int}% ${mem_usage}%" +tooltip="CPU: ${cpu_int}%\nMemory: ${mem_usage}%" + +echo "{\"text\":\"$text\", \"tooltip\":\"$tooltip\"}" diff --git a/linux/arch/.config/waybar/modules/weather.sh b/linux/arch/.config/waybar/modules/weather.sh new file mode 100755 index 0000000..303e938 --- /dev/null +++ b/linux/arch/.config/waybar/modules/weather.sh @@ -0,0 +1,79 @@ +#!/bin/bash + +cachedir=~/.cache/rbn +cachefile=${0##*/}-$1 + +if [ ! -d $cachedir ]; then + mkdir -p $cachedir +fi + +if [ ! -f $cachedir/$cachefile ]; then + touch $cachedir/$cachefile +fi + +# Save current IFS +SAVEIFS=$IFS +# Change IFS to new line. +IFS=$'\n' + +cacheage=$(($(date +%s) - $(stat -c '%Y' "$cachedir/$cachefile"))) +if [ $cacheage -gt 1740 ] || [ ! -s $cachedir/$cachefile ]; then + data=($(curl -s https://en.wttr.in/$1\?0qnT 2>&1)) + echo ${data[0]} | cut -f1 -d, > $cachedir/$cachefile + echo ${data[1]} | sed -E 's/^.{15}//' >> $cachedir/$cachefile + echo ${data[2]} | sed -E 's/^.{15}//' >> $cachedir/$cachefile +fi + +weather=($(cat $cachedir/$cachefile)) + +# Restore IFSClear +IFS=$SAVEIFS + +temperature=$(echo ${weather[2]} | sed -E 's/([[:digit:]]+)\.\./\1 to /g') + +#echo ${weather[1]##*,} + +# https://fontawesome.com/icons?s=solid&c=weather +case $(echo ${weather[1]##*,} | tr '[:upper:]' '[:lower:]') in +"clear" | "sunny") + condition="" + ;; +"partly cloudy") + condition="" + ;; +"cloudy") + condition="" + ;; +"overcast") + condition="" + ;; +"mist" | "fog" | "freezing fog") + condition="" + ;; +"patchy rain possible" | "patchy light drizzle" | "light drizzle" | "patchy light rain" | "light rain" | "light rain shower" | "rain") + condition="" + ;; +"moderate rain at times" | "moderate rain" | "heavy rain at times" | "heavy rain" | "moderate or heavy rain shower" | "torrential rain shower" | "rain shower") + condition="" + ;; +"patchy snow possible" | "patchy sleet possible" | "patchy freezing drizzle possible" | "freezing drizzle" | "heavy freezing drizzle" | "light freezing rain" | "moderate or heavy freezing rain" | "light sleet" | "ice pellets" | "light sleet showers" | "moderate or heavy sleet showers") + condition="" + ;; +"blowing snow" | "moderate or heavy sleet" | "patchy light snow" | "light snow" | "light snow showers") + condition="" + ;; +"blizzard" | "patchy moderate snow" | "moderate snow" | "patchy heavy snow" | "heavy snow" | "moderate or heavy snow with thunder" | "moderate or heavy snow showers") + condition="" + ;; +"thundery outbreaks possible" | "patchy light rain with thunder" | "moderate or heavy rain with thunder" | "patchy light snow with thunder") + condition="" + ;; +*) + condition="" + echo -e "{\"text\":\""$condition"\", \"alt\":\""${weather[0]}"\", \"tooltip\":\""${weather[0]}: $temperature ${weather[1]}"\"}" + ;; +esac + +#echo $temp $condition + +echo -e "{\"text\":\""$temperature $condition"\", \"alt\":\""${weather[0]}"\", \"tooltip\":\""${weather[0]}: $temperature ${weather[1]}"\"}" diff --git a/linux/arch/.config/waybar/style.css b/linux/arch/.config/waybar/style.css new file mode 100644 index 0000000..698c017 --- /dev/null +++ b/linux/arch/.config/waybar/style.css @@ -0,0 +1,124 @@ +* { + border: none; + font-family: Helvetica, Sans; + margin: 2.5px; + font-family: Helvetica, Sans; +} + +window { + color: rgba(217, 216, 216, 1); +} + +window#waybar { + background: transparent; +} + +#workspaces { + margin-left: 10px; + font-size: 10px; + background:#843656; + border-radius: 10px 10px 10px 10px; +} + +#workspaces format { + font-size: 20px; +} + +#workspaces button { + padding: 0 10px; + font-size: 20px; + background: transparent; + background-color: transparent; + border: none; + box-shadow: none; + text-shadow: none; + color: rgba(217, 216, 216, 0.4); +} + +#workspaces button.visible, +#workspaces button.focused { + background: transparent; + background-color: transparent; + box-shadow: none; + text-shadow: none; +} + +#workspaces button:hover, +#workspaces button:active { + background: #6b4456; + background-color: #6b4456; + box-shadow: none; + text-shadow: none; +} + +#workspaces button.visible { + color: rgba(217, 216, 216, 1); +} + +#workspaces button.focused { + border-top: 3px solid rgba(217, 216, 216, 1); + border-bottom: 3px solid rgba(217, 216, 216, 0); +} + +#workspaces button.urgent { + color: rgba(238, 46, 36, 1); +} + +.modules-center { + min-width: 25px; +} + +#custom-app-launcher { + border-radius: 10px 10px 10px 10px; + background:#6b4456; +} + +#custom-launch-firefox, #custom-launch-spotify, #custom-launch-slack, #custom-launch-steam { + font-size: 14px; + margin: 0px 6px 0px 10px; + min-width: 25px; +} + +.modules-right { + border-radius: 20px 20px 20px 20px; + background: #6b4456; +} + +#mode, #cpu, #memory, #network, #pulseaudio, #idle_inhibitor, #custom-storage, #custom-spotify, #custom-weather, #custom-mail, #custom-docker, #custom-k8s, #custom-storage-workspace, #custom-system-graph { + margin: 0px 6px 0px 10px; + min-width: 25px; +} + +#tray * { + margin: 0 10px; +} + +#clock { + margin: 0px 16px 0px 10px; + min-width: 140px; +} + +#custom-storage.warning { + color: rgba(255, 210, 4, 1); +} + +#custom-storage.critical { + color: rgba(238, 46, 36, 1); +} + +/* Tooltip styling to match purple theme */ +tooltip { + background: #221820; + border: 2px solid #9d5a7f; + border-radius: 12px; + color: #d0d0d0; + padding: 12px 16px; + font-family: FiraCode Nerd Font, monospace; + font-size: 10px; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5); +} + +tooltip label { + color: #d0d0d0; + font-family: FiraCode Nerd Font, monospace; +} diff --git a/linux/arch/.config/waybar/waybar.sh b/linux/arch/.config/waybar/waybar.sh new file mode 100755 index 0000000..720620c --- /dev/null +++ b/linux/arch/.config/waybar/waybar.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env sh + +# Terminate already running bar instances +killall -q waybar + +# Wait until the processes have been shut down +while pgrep -x waybar >/dev/null; do sleep 1; done + +# Launch main +waybar diff --git a/scripts/dotfiles.py b/scripts/dotfiles.py index 5f7ac40..b46284e 100755 --- a/scripts/dotfiles.py +++ b/scripts/dotfiles.py @@ -100,6 +100,14 @@ def managed_files(machine: dict) -> list[ManagedFile]: add_file(entries, "linux/arch/.config/sway/key-bindings", "~/.config/sway/key-bindings", "sway") add_glob(entries, "linux/arch/.config/sway/assets/*", "~/.config/sway/assets", "sway") add_glob(entries, "linux/arch/.config/sway/scripts/*", "~/.config/sway/scripts", "sway") + add_file(entries, "linux/arch/.config/waybar/config", "~/.config/waybar/config", "waybar") + add_file(entries, "linux/arch/.config/waybar/style.css", "~/.config/waybar/style.css", "waybar") + add_file(entries, "linux/arch/.config/waybar/waybar.sh", "~/.config/waybar/waybar.sh", "waybar") + add_glob(entries, "linux/arch/.config/waybar/modules/*", "~/.config/waybar/modules", "waybar") + add_file(entries, "linux/arch/.config/gtk-3.0/gtk.css", "~/.config/gtk-3.0/gtk.css", "gtk") + add_file(entries, "linux/arch/.config/gtk-3.0/settings.ini", "~/.config/gtk-3.0/settings.ini", "gtk") + add_file(entries, "linux/arch/.config/gtk-4.0/gtk.css", "~/.config/gtk-4.0/gtk.css", "gtk") + add_file(entries, "linux/arch/.config/gtk-4.0/settings.ini", "~/.config/gtk-4.0/settings.ini", "gtk") add_file(entries, ".vim/vimrc", "~/.vim/vimrc", "vim") add_file(entries, ".vim/plugins.vim", "~/.vim/plugins.vim", "vim") From 3bc82b7a6eee7852746224b448aa79adc164141f Mon Sep 17 00:00:00 2001 From: Jean-Michel Bouchard Date: Thu, 25 Jun 2026 22:15:44 -0400 Subject: [PATCH 24/32] Clean up dotfiles: fix themes, remove duplicates, add missing configs (#13) * Clean up dotfiles: fix Linux theme/fonts, remove duplicates, add missing configs - Fix Kitty theme: custom warm purple matching Sway/Waybar/Rofi/Mako palette - Fix Kitty include path (was broken after install.sh copy) - Replace FiraCode Nerd Font with Iosevka Nerd Font (Linux only) - Add OS-specific theme override in install.sh (Linux=purple, macOS=Mocha) - Remove duplicate directories: bash/, config/, git/, shell/ (all shadowed by common/) - Remove .bak files from version control - Add machine.md stubs for debian, fedora, alpine - Guard unprotected source of ~/.local/bin/env in .zshrc and .bashrc - Add install.sh deployment for .tmux.conf, .inputrc, .gdbinit - Move sudo.sh to common/shell-functions/, track sudo-askpass.sh - Add fedora/alpine routing in refresh-machine-state.sh - Include accumulated config updates (vim, shell-functions, git, tmux) Co-Authored-By: Claude Opus 4.6 (1M context) * Add CI workflow to test install.sh across Arch, Debian, and macOS Runs on push/PR: spins up Arch (container), Debian (container), and macOS (native runner) to verify install.sh deploys correctly on each. Checks symlinks, copies, kitty theme per OS, and font config. Co-Authored-By: Claude Opus 4.6 (1M context) * Use FiraCode Nerd Font on Linux (same as macOS) FiraCode Nerd Font is the preferred font on both platforms. Installed via ttf-firacode-nerd on Arch. Co-Authored-By: Claude Opus 4.6 (1M context) * Rewrite CI with deep config validation, not just file existence checks Adds a fast lint job (shell syntax, shellcheck, git config parse, CoC JSON validation) that gates the platform tests. Platform tests now validate configs actually load: - Kitty: headless parse via kitty +runpy with load_config(), checks for bad lines, verifies parsed font/opacity/cursor values - Vim: loads vimrc in ex mode (vim -e, not -es which breaks line continuations), runs PlugInstall --sync - tmux: starts headless server, verifies config loads - Git: parses .gitconfig, counts aliases - Shell: bash -n / zsh -n syntax validation on deployed configs - Fonts: fc-list -q to verify font actually resolves (not fc-match which always falls back) - Theme: verifies correct colors deployed per OS (purple on Linux, Catppuccin Mocha on macOS) Each platform uploads an evidence artifact with install log, deployed file listing, theme contents, git aliases, and vim plugin list. Co-Authored-By: Claude Opus 4.6 (1M context) * Add super+ keybindings to Linux kitty config with ctrl+shift fallbacks Matches the deployed config on the Arch box. Super+ gives macOS-style shortcuts on Linux (Sway passes Super to apps), ctrl+shift+ as fallback. Co-Authored-By: Claude Opus 4.6 (1M context) --------- Co-authored-by: Claude Opus 4.6 (1M context) --- .gitconfig | 20 +- .github/workflows/test-install.yml | 393 +++ .tmux.conf | 18 +- .vim/coc-settings.json | 2 +- .vim/settings/coc-settings.vim | 2 +- .vim/settings/fzf-settings.vim | 10 +- .vim/settings/keybindings.vim | 2 +- .vim/settings/performance.vim | 2 +- .zshrc | 159 +- COC-EXAMPLES.md | 2 +- bash/16bit.colors | 515 ---- bash/16bit.colors.bak | 515 ---- bash/4bit.colors | 31 - bash/escape_functions.default | 1 - bash/hex | 257 -- bash/prompt | 82 - common/README.md | 2 +- common/bash/16bit.colors.bak | 515 ---- common/git/.gitconfig | 2 +- common/git/.gitignore_global | 2 +- common/shell-functions/README.md | 2 +- common/shell-functions/docker-aliases.sh | 2 +- common/shell-functions/docker.sh | 2 +- common/shell-functions/fuzzy-vim.sh | 2 +- common/shell-functions/git-aliases.sh | 2 +- common/shell-functions/git.sh | 2 +- common/shell-functions/k8s.sh | 2 +- common/shell-functions/kubectl-aliases.sh | 2 +- .../shell-functions/modern-tools-aliases.sh | 2 +- common/shell-functions/secrets.sh | 2 +- common/shell-functions/ssh.sh | 2 +- common/shell-functions/sudo.sh | 3 + common/shell-functions/system-aliases.sh | 2 +- common/shell-functions/utils.sh | 2 +- common/shell/.bashrc | 48 +- common/shell/.bashrc.server | 2 +- common/shell/.dircolors | 2 +- common/shell/.zshrc | 15 +- common/themes/custom-purple.conf | 77 + config/current-theme.conf | 80 - config/htop/htoprc | 57 - config/kitty.conf | 52 - config/kitty.conf.bak | 2718 ----------------- config/shell-functions/fuzzy-vim.sh | 44 - config/themes/diff-frappe.conf | 50 - config/themes/diff-latte.conf | 50 - config/themes/diff-macchiato.conf | 50 - config/themes/diff-mocha.conf | 50 - config/themes/frappe.conf | 80 - config/themes/latte.conf | 80 - config/themes/macchiato.conf | 80 - config/themes/mocha.conf | 80 - darwin/README.md | 2 +- git/.gitconfig | 19 - git/.gitignore_global | 1 - install.sh | 110 +- linux/README.md | 2 +- linux/alpine/ai-context/machine.md | 41 + linux/common/current-theme.conf | 77 + linux/common/kitty.conf | 22 +- linux/debian/ai-context/machine.md | 37 + linux/fedora/ai-context/machine.md | 41 + scripts/minimal-bashrc.sh | 2 +- scripts/refresh-machine-state.sh | 6 + scripts/ssh-copy-dotfiles.sh | 2 +- scripts/sudo-askpass.sh | 22 + shell/.dircolors | 32 - shell/.gnu_aliases | 30 - shell/.zshrc | 158 - 69 files changed, 874 insertions(+), 5906 deletions(-) mode change 100644 => 120000 .gitconfig create mode 100644 .github/workflows/test-install.yml mode change 100644 => 120000 .zshrc delete mode 100644 bash/16bit.colors delete mode 100644 bash/16bit.colors.bak delete mode 100644 bash/4bit.colors delete mode 100644 bash/escape_functions.default delete mode 100644 bash/hex delete mode 100644 bash/prompt delete mode 100644 common/bash/16bit.colors.bak create mode 100644 common/shell-functions/sudo.sh create mode 100644 common/themes/custom-purple.conf delete mode 100644 config/current-theme.conf delete mode 100644 config/htop/htoprc delete mode 100644 config/kitty.conf delete mode 100644 config/kitty.conf.bak delete mode 100644 config/shell-functions/fuzzy-vim.sh delete mode 100644 config/themes/diff-frappe.conf delete mode 100644 config/themes/diff-latte.conf delete mode 100644 config/themes/diff-macchiato.conf delete mode 100644 config/themes/diff-mocha.conf delete mode 100644 config/themes/frappe.conf delete mode 100644 config/themes/latte.conf delete mode 100644 config/themes/macchiato.conf delete mode 100644 config/themes/mocha.conf delete mode 100644 git/.gitconfig delete mode 100644 git/.gitignore_global create mode 100644 linux/alpine/ai-context/machine.md create mode 100644 linux/common/current-theme.conf create mode 100644 linux/debian/ai-context/machine.md create mode 100644 linux/fedora/ai-context/machine.md create mode 100755 scripts/sudo-askpass.sh delete mode 100644 shell/.dircolors delete mode 100644 shell/.gnu_aliases delete mode 100644 shell/.zshrc diff --git a/.gitconfig b/.gitconfig deleted file mode 100644 index 30a4f90..0000000 --- a/.gitconfig +++ /dev/null @@ -1,19 +0,0 @@ -[user] - name=Jean-Michel Bouchard - email=jim@polarcoordinates.org -[github] - user=woud420 -[color] - ui = auto -[alias] - st = status -sb - lg = log --stat - diff-master = !echo "diff master...origin/master:" && git diff master...origin/master --stat && echo "" && echo "diff origin/master...master:" && git diff origin/master...master --stat - - cm = commit -m - ca = commit --amend - rb = !git fetch && git rebase && git st - cl = !git reset --hard && git clean -df && git st - - up = !git submodule update --init && git st - submodules-to-master = submodule foreach "git fetch && git checkout master && git rebase" diff --git a/.gitconfig b/.gitconfig new file mode 120000 index 0000000..5576417 --- /dev/null +++ b/.gitconfig @@ -0,0 +1 @@ +common/git/.gitconfig \ No newline at end of file diff --git a/.github/workflows/test-install.yml b/.github/workflows/test-install.yml new file mode 100644 index 0000000..82c737f --- /dev/null +++ b/.github/workflows/test-install.yml @@ -0,0 +1,393 @@ +name: Test install.sh + +on: + push: + branches: [main, "feature/*", "fix/*"] + pull_request: + branches: [main] + +jobs: + # Fast syntax/parse checks that don't need install.sh + lint: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Shell syntax check (bash -n) + run: | + echo "=== Checking shell configs ===" + bash -n common/shell/.bashrc && echo "PASS: .bashrc" + bash -n common/shell/.bashrc.server && echo "PASS: .bashrc.server" + + echo "=== Checking shell functions ===" + fail=0 + for f in common/shell-functions/*.sh; do + bash -n "$f" && echo "PASS: $(basename $f)" || { echo "FAIL: $(basename $f)"; fail=1; } + done + + echo "=== Checking scripts ===" + for f in scripts/*.sh; do + bash -n "$f" && echo "PASS: $(basename $f)" || { echo "FAIL: $(basename $f)"; fail=1; } + done + exit $fail + + - name: Zsh syntax check + run: | + sudo apt-get install -y zsh + zsh -n common/shell/.zshrc && echo "PASS: .zshrc" + + - name: ShellCheck + uses: ludeeus/action-shellcheck@master + with: + scandir: ./common/shell-functions + severity: error + + - name: Git config parse check + run: | + git config --file common/git/.gitconfig --list > /dev/null + echo "PASS: .gitconfig parses ($(git config --file common/git/.gitconfig --get-regexp '^alias\.' | wc -l) aliases found)" + + - name: Vim CoC settings JSON validation + run: | + python3 -c "import json; json.load(open('.vim/coc-settings.json'))" && echo "PASS: coc-settings.json" + + - name: install.sh syntax check + run: bash -n install.sh && echo "PASS: install.sh" + + test-arch: + runs-on: ubuntu-latest + needs: lint + container: + image: archlinux:latest + steps: + - uses: actions/checkout@v4 + + - name: Install dependencies + run: | + pacman -Syu --noconfirm + pacman -S --noconfirm base-devel git zsh vim fzf sudo kitty tmux \ + ttf-firacode-nerd python nodejs npm curl + + - name: Create test user + run: | + useradd -m -s /bin/zsh testuser + echo "testuser ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers + + - name: Run install.sh + run: | + cp -r "$GITHUB_WORKSPACE" /home/testuser/dotfiles + chown -R testuser:testuser /home/testuser/dotfiles + su testuser -c "cd /home/testuser/dotfiles && ./install.sh --no-packages 2>&1" | tee /tmp/install.log + + - name: Verify file deployments + run: | + su testuser -c ' + set -e + echo "=== Symlinks ===" + for f in .bashrc .zshrc .gitconfig .tmux.conf .inputrc .gdbinit; do + test -L ~/$f && echo "PASS: $f -> $(readlink ~/$f)" || { echo "FAIL: $f not symlinked"; exit 1; } + done + for f in .vim/vimrc .vim/plugins.vim .vim/mappings.vim .vim/settings.vim; do + test -L ~/$f && echo "PASS: $f" || { echo "FAIL: $f not symlinked"; exit 1; } + done + + echo "=== Copies ===" + for f in .gnu_aliases .dircolors; do + test -f ~/$f && ! test -L ~/$f && echo "PASS: $f (copied)" || { echo "FAIL: $f"; exit 1; } + done + ls ~/.config/shell-functions/*.sh > /dev/null && echo "PASS: shell-functions deployed" + + echo "=== Kitty ===" + test -f ~/.config/kitty/kitty.conf && echo "PASS: kitty.conf" + test -f ~/.config/kitty/current-theme.conf && echo "PASS: current-theme.conf" + ' + + - name: Validate Kitty config (headless parse) + run: | + su testuser -c ' + kitty +runpy " +import sys +from kitty.config import load_config +bad = [] +opts = load_config(\"$HOME/.config/kitty/kitty.conf\", accumulate_bad_lines=bad) +if bad: + for b in bad: + print(f\"ERROR line {b.number}: {b.line!r} -> {b.exception}\") + sys.exit(1) +print(f\"PASS: kitty.conf parsed\") +print(f\" font_family: {opts.font_family}\") +print(f\" font_size: {opts.font_size}\") +print(f\" background_opacity: {opts.background_opacity}\") +print(f\" cursor_shape: {opts.cursor_shape}\") +" + ' + + - name: Verify Kitty theme is Linux purple + run: | + su testuser -c ' + grep -q "Custom Purple" ~/.config/kitty/current-theme.conf && echo "PASS: Linux purple theme" + grep -q "background.*#221820" ~/.config/kitty/current-theme.conf && echo "PASS: bg=#221820" + grep -q "foreground.*#d0d0d0" ~/.config/kitty/current-theme.conf && echo "PASS: fg=#d0d0d0" + grep -q "#9d5a7f" ~/.config/kitty/current-theme.conf && echo "PASS: accent=#9d5a7f" + ' + + - name: Verify font installed and resolved + run: | + fc-list -q "FiraCode Nerd Font" && echo "PASS: FiraCode Nerd Font installed" || { echo "FAIL: font not found"; exit 1; } + matched=$(fc-match "FiraCode Nerd Font" --format='%{family}') + echo "$matched" | grep -qi "FiraCode" && echo "PASS: fc-match resolves to $matched" || { echo "FAIL: resolved to $matched"; exit 1; } + + - name: Validate Vim config (headless load) + run: | + su testuser -c ' + # Bootstrap vim-plug + curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ + https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim + + # Load vimrc in ex mode (NOT -es, which breaks line continuations) + output=$(vim -e -N -u ~/.vim/vimrc --not-a-term -c "qa!" 2>&1) + rc=$? + if [ $rc -eq 0 ]; then + echo "PASS: vimrc loaded without errors" + else + echo "FAIL: vimrc load errors:" + echo "$output" + exit 1 + fi + + # Install plugins + vim -e -N -u ~/.vim/vimrc --not-a-term -c "PlugInstall --sync" -c "qa!" 2>&1 + echo "PASS: vim-plug PlugInstall completed" + ' + + - name: Validate tmux config (headless) + run: | + su testuser -c ' + tmux -L ci_test -f ~/.tmux.conf new-session -d "true" 2>&1 + rc=$? + if [ $rc -eq 0 ]; then + echo "PASS: tmux config loaded" + echo " Settings:" + tmux -L ci_test show-options -g 2>/dev/null | head -10 + tmux -L ci_test kill-server 2>/dev/null + else + echo "FAIL: tmux config error (exit $rc)" + exit 1 + fi + ' + + - name: Validate git config + run: | + su testuser -c ' + git config --file ~/.gitconfig --list > /dev/null 2>&1 && echo "PASS: .gitconfig" || { echo "FAIL: .gitconfig"; exit 1; } + count=$(git config --file ~/.gitconfig --get-regexp "^alias\." | wc -l) + echo " $count git aliases loaded" + ' + + - name: Collect evidence + if: always() + run: | + mkdir -p /tmp/evidence + su testuser -c ' + echo "--- Deployed files ---" > /tmp/evidence/report.txt + ls -la ~/.bashrc ~/.zshrc ~/.gitconfig ~/.tmux.conf ~/.inputrc ~/.gdbinit 2>&1 >> /tmp/evidence/report.txt + echo "" >> /tmp/evidence/report.txt + echo "--- Kitty config ---" >> /tmp/evidence/report.txt + cat ~/.config/kitty/kitty.conf >> /tmp/evidence/report.txt + echo "" >> /tmp/evidence/report.txt + echo "--- Kitty theme (first 10 lines) ---" >> /tmp/evidence/report.txt + head -10 ~/.config/kitty/current-theme.conf >> /tmp/evidence/report.txt + echo "" >> /tmp/evidence/report.txt + echo "--- Font check ---" >> /tmp/evidence/report.txt + fc-list | grep -i fira >> /tmp/evidence/report.txt 2>&1 + echo "" >> /tmp/evidence/report.txt + echo "--- Git aliases ---" >> /tmp/evidence/report.txt + git config --file ~/.gitconfig --get-regexp "^alias\." >> /tmp/evidence/report.txt 2>&1 + echo "" >> /tmp/evidence/report.txt + echo "--- Shell functions ---" >> /tmp/evidence/report.txt + ls ~/.config/shell-functions/ >> /tmp/evidence/report.txt 2>&1 + echo "" >> /tmp/evidence/report.txt + echo "--- Vim plugins ---" >> /tmp/evidence/report.txt + ls ~/.vim/plugged/ >> /tmp/evidence/report.txt 2>&1 + ' + cp /tmp/install.log /tmp/evidence/ 2>/dev/null || true + + - name: Upload evidence + if: always() + uses: actions/upload-artifact@v4 + with: + name: evidence-arch + path: /tmp/evidence/ + + test-debian: + runs-on: ubuntu-latest + needs: lint + container: + image: debian:bookworm + steps: + - uses: actions/checkout@v4 + + - name: Install dependencies + run: | + apt-get update + apt-get install -y git zsh vim sudo curl tmux python3 fontconfig + + - name: Create test user + run: | + useradd -m -s /bin/zsh testuser + echo "testuser ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers + + - name: Run install.sh + run: | + cp -r "$GITHUB_WORKSPACE" /home/testuser/dotfiles + chown -R testuser:testuser /home/testuser/dotfiles + su testuser -c "cd /home/testuser/dotfiles && ./install.sh --no-packages 2>&1" | tee /tmp/install.log + + - name: Verify file deployments + run: | + su testuser -c ' + set -e + echo "=== Symlinks ===" + for f in .bashrc .zshrc .gitconfig .tmux.conf .inputrc; do + test -L ~/$f && echo "PASS: $f -> $(readlink ~/$f)" || { echo "FAIL: $f not symlinked"; exit 1; } + done + + echo "=== Copies ===" + test -f ~/.gnu_aliases && ! test -L ~/.gnu_aliases && echo "PASS: .gnu_aliases (copied)" + test -f ~/.dircolors && ! test -L ~/.dircolors && echo "PASS: .dircolors (copied)" + + echo "=== Kitty ===" + test -f ~/.config/kitty/kitty.conf && echo "PASS: kitty.conf" + test -f ~/.config/kitty/current-theme.conf && echo "PASS: current-theme.conf" + grep -q "Custom Purple" ~/.config/kitty/current-theme.conf && echo "PASS: Linux purple theme" + ' + + - name: Validate shell configs + run: | + su testuser -c ' + bash -n ~/.bashrc && echo "PASS: .bashrc syntax" + zsh -n ~/.zshrc && echo "PASS: .zshrc syntax" + for f in ~/.config/shell-functions/*.sh; do + bash -n "$f" && echo "PASS: $(basename $f)" || { echo "FAIL: $(basename $f)"; exit 1; } + done + ' + + - name: Validate tmux config + run: | + su testuser -c ' + tmux -L ci_test -f ~/.tmux.conf new-session -d "true" 2>&1 + if [ $? -eq 0 ]; then + echo "PASS: tmux config loaded" + tmux -L ci_test kill-server 2>/dev/null + else + echo "FAIL: tmux config error" + exit 1 + fi + ' + + - name: Validate Vim config + run: | + su testuser -c ' + curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ + https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim + vim -e -N -u ~/.vim/vimrc --not-a-term -c "qa!" 2>&1 + [ $? -eq 0 ] && echo "PASS: vimrc loaded" || { echo "FAIL: vimrc errors"; exit 1; } + ' + + - name: Validate git config + run: | + su testuser -c ' + git config --file ~/.gitconfig --list > /dev/null 2>&1 && echo "PASS: .gitconfig" || { echo "FAIL"; exit 1; } + ' + + - name: Collect evidence + if: always() + run: | + mkdir -p /tmp/evidence + cp /tmp/install.log /tmp/evidence/ 2>/dev/null || true + su testuser -c ' + ls -la ~/.bashrc ~/.zshrc ~/.gitconfig ~/.tmux.conf ~/.inputrc 2>&1 > /tmp/evidence/report.txt + head -10 ~/.config/kitty/current-theme.conf >> /tmp/evidence/report.txt + ' + + - name: Upload evidence + if: always() + uses: actions/upload-artifact@v4 + with: + name: evidence-debian + path: /tmp/evidence/ + + test-macos: + runs-on: macos-latest + needs: lint + steps: + - uses: actions/checkout@v4 + + - name: Install dependencies + run: brew install vim tmux + + - name: Run install.sh + run: ./install.sh --no-packages 2>&1 | tee /tmp/install.log + + - name: Verify file deployments + run: | + set -e + echo "=== Symlinks ===" + for f in .bashrc .zshrc .gitconfig .tmux.conf .inputrc .gdbinit; do + test -L ~/$f && echo "PASS: $f -> $(readlink ~/$f)" || { echo "FAIL: $f not symlinked"; exit 1; } + done + + echo "=== Copies ===" + test -f ~/.gnu_aliases && ! test -L ~/.gnu_aliases && echo "PASS: .gnu_aliases (copied)" + test -f ~/.dircolors && ! test -L ~/.dircolors && echo "PASS: .dircolors (copied)" + + echo "=== Kitty ===" + test -f ~/.config/kitty/kitty.conf && echo "PASS: kitty.conf" + test -f ~/.config/kitty/current-theme.conf && echo "PASS: current-theme.conf" + grep -q "Catppuccin-Mocha" ~/.config/kitty/current-theme.conf && echo "PASS: macOS Catppuccin Mocha theme" + grep -q "FiraCode" ~/.config/kitty/kitty.conf && echo "PASS: FiraCode font (macOS)" + + - name: Validate Vim config + run: | + curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ + https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim + output=$(vim -e -N -u ~/.vim/vimrc --not-a-term -c "qa!" 2>&1) + [ $? -eq 0 ] && echo "PASS: vimrc loaded" || { echo "FAIL: $output"; exit 1; } + vim -e -N -u ~/.vim/vimrc --not-a-term -c "PlugInstall --sync" -c "qa!" 2>&1 + echo "PASS: vim-plug PlugInstall completed" + + - name: Validate tmux config + run: | + tmux -L ci_test -f ~/.tmux.conf new-session -d "true" 2>&1 + if [ $? -eq 0 ]; then + echo "PASS: tmux config loaded" + tmux -L ci_test show-options -g | head -10 + tmux -L ci_test kill-server 2>/dev/null + else + echo "FAIL: tmux config error" + exit 1 + fi + + - name: Validate git config + run: | + git config --file ~/.gitconfig --list > /dev/null 2>&1 && echo "PASS: .gitconfig" || { echo "FAIL"; exit 1; } + echo " $(git config --file ~/.gitconfig --get-regexp '^alias\.' | wc -l) git aliases loaded" + + - name: Collect evidence + if: always() + run: | + mkdir -p /tmp/evidence + cp /tmp/install.log /tmp/evidence/ 2>/dev/null || true + ls -la ~/.bashrc ~/.zshrc ~/.gitconfig ~/.tmux.conf ~/.inputrc ~/.gdbinit > /tmp/evidence/report.txt 2>&1 + head -10 ~/.config/kitty/current-theme.conf >> /tmp/evidence/report.txt + echo "--- Vim plugins ---" >> /tmp/evidence/report.txt + ls ~/.vim/plugged/ >> /tmp/evidence/report.txt 2>&1 + echo "--- Git aliases ---" >> /tmp/evidence/report.txt + git config --file ~/.gitconfig --get-regexp '^alias\.' >> /tmp/evidence/report.txt 2>&1 + + - name: Upload evidence + if: always() + uses: actions/upload-artifact@v4 + with: + name: evidence-macos + path: /tmp/evidence/ diff --git a/.tmux.conf b/.tmux.conf index a952ebb..1fb669b 100644 --- a/.tmux.conf +++ b/.tmux.conf @@ -102,12 +102,12 @@ bind-key K resize-pane -U 10 bind-key H resize-pane -L 10 bind-key L resize-pane -R 10 -# Select panes +# Select panes # NOTE(arslan): See to prevent cycling https://github.com/tmux/tmux/issues/1158 -bind-key j select-pane -D -bind-key k select-pane -U -bind-key h select-pane -L -bind-key l select-pane -R +bind-key j select-pane -D +bind-key k select-pane -U +bind-key h select-pane -L +bind-key l select-pane -R # Disable confirm before killing bind-key x kill-pane @@ -115,7 +115,7 @@ bind-key x kill-pane # This tmux statusbar config was created by tmuxline.vim # on Wed, 25 Nov 2015 set -g status "on" -set -g status-bg "colour236" +set -g status-bg "colour236" set -g status-justify "left" set -g status-position "bottom" set -g status-left-length "100" @@ -177,12 +177,12 @@ run '~/.tmux/plugins/tpm/tpm' # # Next step is to add a line to 'key_binding' setting in Alacritty: # -# - { key: D, mods: Command, chars: "\x06\x76" } +# - { key: D, mods: Command, chars: "\x06\x76" } # # That's it! The followings are the ones that I'm using: # # key_bindings: -# - { key: D, mods: Command, chars: "\x06\x76" } +# - { key: D, mods: Command, chars: "\x06\x76" } # - { key: D, mods: Command|Shift, chars: "\x06\x73" } # - { key: W, mods: Command, chars: "\x06\x78" } # - { key: H, mods: Command, chars: "\x06\x68" } @@ -208,6 +208,6 @@ run '~/.tmux/plugins/tpm/tpm' # such as cmd-j, cmd-left, etc.. , select the option "send hex code" and the # enter the hex code which I want to be executed, hence the tmux sequence. So # when I press CMD + d in iterm, I send the sequence 0x06 0x76, -# which tmux inteprets it as opening a new pane. +# which tmux inteprets it as opening a new pane. ############################################### diff --git a/.vim/coc-settings.json b/.vim/coc-settings.json index bbdf511..aa9f1bc 100644 --- a/.vim/coc-settings.json +++ b/.vim/coc-settings.json @@ -42,4 +42,4 @@ "coc.preferences.formatOnSaveFiletypes": ["python", "javascript", "typescript", "json", "jsonc", "yaml", "rust"], "coc.preferences.colorSupport": true -} \ No newline at end of file +} diff --git a/.vim/settings/coc-settings.vim b/.vim/settings/coc-settings.vim index 9691088..2ae9d73 100644 --- a/.vim/settings/coc-settings.vim +++ b/.vim/settings/coc-settings.vim @@ -82,4 +82,4 @@ nnoremap p :CocListResume " Additional useful commands command! -nargs=0 Format :call CocActionAsync('format') -command! -nargs=0 OR :call CocActionAsync('runCommand', 'editor.action.organizeImport') \ No newline at end of file +command! -nargs=0 OR :call CocActionAsync('runCommand', 'editor.action.organizeImport') diff --git a/.vim/settings/fzf-settings.vim b/.vim/settings/fzf-settings.vim index b6e2166..21fb14d 100644 --- a/.vim/settings/fzf-settings.vim +++ b/.vim/settings/fzf-settings.vim @@ -58,7 +58,7 @@ nnoremap g :RG nnoremap G :RG nnoremap / :Lines -" Vim operations +" Vim operations nnoremap c :call FzfCommands() nnoremap h :Helptags nnoremap m :Marks @@ -102,13 +102,13 @@ function! RipgrepFzf(query, fullscreen) " - Binary file exclusions from g:rg_binary_extensions " - Pipe through awk to shorten paths (keep last 2 components) let command_fmt = 'rg --column --line-number --no-heading --color=always --smart-case --binary -g "!*.{' . g:rg_binary_extensions . '}" -- %s | awk -F: ''{split($1,a,"/"); if(length(a)>2) $1="[..]/"a[length(a)-1]"/"a[length(a)]; else $1=$1; printf "%%s:%%s:%%s:%%s\n", $1, $2, $3, substr($0,index($0,$4))}'' || true' - + " Start with empty results let initial_command = 'echo ""' - + " Only run ripgrep when query is non-empty let reload_command = 'if [ -n "{q}" ]; then ' . printf(command_fmt, '{q}') . '; else echo ""; fi' - + " FZF options: " --phony: Don't run initial command on every keystroke " --bind change:reload: Re-run command when input changes @@ -179,4 +179,4 @@ function! s:execute_command_directly(cmd) catch echo "Command failed: " . cmd endtry -endfunction \ No newline at end of file +endfunction diff --git a/.vim/settings/keybindings.vim b/.vim/settings/keybindings.vim index 06780f6..05605e9 100644 --- a/.vim/settings/keybindings.vim +++ b/.vim/settings/keybindings.vim @@ -1,3 +1,3 @@ " ===== Leader Key Configuration ===== " Set leader key to space for easy access -let mapleader = " " \ No newline at end of file +let mapleader = " " diff --git a/.vim/settings/performance.vim b/.vim/settings/performance.vim index c32bd59..c8650d4 100644 --- a/.vim/settings/performance.vim +++ b/.vim/settings/performance.vim @@ -25,4 +25,4 @@ set noswapfile " Disable swap files (use version control instead) " Note: nobackup and nowritebackup are set in settings.vim for CoC " CoC performance optimization -let g:coc_disable_startup_warning = 1 " Skip CoC startup warnings \ No newline at end of file +let g:coc_disable_startup_warning = 1 " Skip CoC startup warnings diff --git a/.zshrc b/.zshrc deleted file mode 100644 index b10fbdc..0000000 --- a/.zshrc +++ /dev/null @@ -1,158 +0,0 @@ -# Make sure autocomplete works properly -autoload -Uz compinit -compinit - -# Load colors -autoload -Uz colors && colors -setopt prompt_subst - -# Git branch info setup -autoload -Uz vcs_info -precmd() { vcs_info } -zstyle ':vcs_info:*' enable git -zstyle ':vcs_info:git:*' formats ' %b' - -ROSEWATER='%F{#f5e0dc}' -MAUVE='%F{#cba6f7}' -TEAL='%F{#94e2d5}' -PEACH='%F{#fab387}' -SOFT_GRAY='%F{#6c7086}' -RESET='%f%k' - -BUBBLE_BG='%{%K{#f5e0dc}%}' -BUBBLE_FG='%{%F{#1e1e2e}%}' - -function kube_prompt() { - local context=$(kubectl config current-context 2>/dev/null) - if [ -n "$context" ]; then - echo "(k8s:$context)" - fi -} - -function pretty_git() { - # Don't forget the space at the end of the echo - [[ -n "${vcs_info_msg_0_}" ]] && echo "${vcs_info_msg_0_} " -} - -# Custom function to show 🏡 if in home -function pretty_pwd() { - case "$PWD" in - "$HOME") - echo "🏡" - ;; - "$HOME/Documents") - echo "📄" - ;; - "$HOME/Downloads") - echo "📁" - ;; - "$HOME/Pictures") - echo "🖼️" - ;; - "$HOME/Music") - echo "🎵" - ;; - "$HOME/Desktop") - echo "🖥️" - ;; - "$HOME/workspace") - echo "💻" - ;; - *) - echo "%~" - ;; - esac - #if [[ "$PWD" == "$HOME" ]]; then - # echo "🏡" - #else - # echo "%~" - #fi -} - -# Dynamic time color based on hour -function dynamic_time_prompt() { - local hour=$(date +%H) - local color icon - - if (( hour >= 6 && hour < 12 )); then - color=$PEACH - icon='☀️' - elif (( hour >= 12 && hour < 18 )); then - color=$TEAL - icon='☀️' - elif (( hour >= 18 && hour < 21 )); then - color=$MAUVE - icon='🌙' - else - color=$SOFT_GRAY - icon='🌙' - fi - - echo "%{$color%}%*%{$RESET%}" -} - -function build_prompt() { - local GIT_INFO="$(pretty_git)" - local PWD_INFO="$(pretty_pwd)" - - PROMPT="⭐ ${MAUVE}[${ROSEWATER}%n${MAUVE}@${TEAL}${PWD_INFO}${MAUVE}] ${PEACH}${GIT_INFO}${RESET}➔ " -} - -precmd_functions+=(build_prompt) - -function build_rprompt() { - RPROMPT="$(dynamic_time_prompt)" -} - -precmd_functions+=(build_rprompt) - -source ~/.gnu_aliases - -# Soft pastel fzf colors -export FZF_DEFAULT_OPTS=" - --color=fg:#cdd6f4,bg:#1e1e2e,hl:#f38ba8 - --color=fg+:#f5e0dc,bg+:#313244,hl+:#fab387 - --color=info:#89b4fa,prompt:#94e2d5,pointer:#f5c2e7 - --color=marker:#a6e3a1,spinner:#b4befe,header:#cba6f7 - --layout=reverse - --border -" -[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh - -# Load custom shell functions -for f in ~/.config/shell-functions/*.sh; do - source "$f" -done - -function kctx() { - local selected - selected=$(kubectl config get-contexts -o name | \ - fzf --prompt="Select context > " \ - --height=40% \ - --layout=reverse \ - --border \ - --ansi) - - if [[ -n "$selected" ]]; then - kubectl config use-context "$selected" - else - echo "No context selected." - fi -} - -function git-ch() { - local branch - branch=$(git branch --sort=-committerdate | sed 's/* //' | sed 's/^[[:space:]]*//' | \ - fzf --prompt="Checkout branch > " \ - --height=40% \ - --layout=reverse \ - --border) - if [[ -n "$branch" ]]; then - git checkout "$branch" - fi -} - -alias kc=kctx -alias gch="git-ch" - -export PATH="/opt/homebrew/bin:$PATH" diff --git a/.zshrc b/.zshrc new file mode 120000 index 0000000..406d3e8 --- /dev/null +++ b/.zshrc @@ -0,0 +1 @@ +common/shell/.zshrc \ No newline at end of file diff --git a/COC-EXAMPLES.md b/COC-EXAMPLES.md index a1568e1..70f9aab 100644 --- a/COC-EXAMPLES.md +++ b/COC-EXAMPLES.md @@ -202,4 +202,4 @@ gr " Find all usages - Use `:CocCommand` to see all available commands - `` is typically `\` unless remapped - CoC works best with vim 8.1+ or neovim -- Language servers need to be installed separately (npm, pip, etc.) \ No newline at end of file +- Language servers need to be installed separately (npm, pip, etc.) diff --git a/bash/16bit.colors b/bash/16bit.colors deleted file mode 100644 index afc6827..0000000 --- a/bash/16bit.colors +++ /dev/null @@ -1,515 +0,0 @@ -# Based on https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit -local S1="\[\033[38;5;1m\]" #000000 -local S2="\[\033[38;5;2m\]" #800000 -local S3="\[\033[38;5;3m\]" #008000 -local S4="\[\033[38;5;4m\]" #808000 -local S5="\[\033[38;5;5m\]" #000080 -local S6="\[\033[38;5;6m\]" #800080 -local S7="\[\033[38;5;7m\]" #008080 -local S8="\[\033[38;5;8m\]" #c0c0c0 -local S9="\[\033[38;5;9m\]" #808080 -local S10="\[\033[38;5;10m\]" #ff0000 -local S11="\[\033[38;5;11m\]" #00ff00 -local S12="\[\033[38;5;12m\]" #ffff00 -local S13="\[\033[38;5;13m\]" #0000ff -local S14="\[\033[38;5;14m\]" #ff00ff -local S15="\[\033[38;5;15m\]" #00ffff -local S16="\[\033[38;5;16m\]" #ffffff -local S17="\[\033[38;5;17m\]" #000000 -local S18="\[\033[38;5;18m\]" #00005f -local S19="\[\033[38;5;19m\]" #000087 -local S20="\[\033[38;5;20m\]" #0000af -local S21="\[\033[38;5;21m\]" #0000d7 -local S22="\[\033[38;5;22m\]" #0000ff -local S23="\[\033[38;5;23m\]" #005f00 -local S24="\[\033[38;5;24m\]" #005f5f -local S25="\[\033[38;5;25m\]" #005f87 -local S26="\[\033[38;5;26m\]" #005faf -local S27="\[\033[38;5;27m\]" #005fd7 -local S28="\[\033[38;5;28m\]" #005fff -local SA9="\[\033[38;5;29m\]" #008700 -local S30="\[\033[38;5;30m\]" #00875f -local S31="\[\033[38;5;31m\]" #008787 -local S32="\[\033[38;5;32m\]" #0087af -local S33="\[\033[38;5;33m\]" #0087d7 -local S34="\[\033[38;5;34m\]" #0087ff -local S35="\[\033[38;5;35m\]" #00af00 -local S36="\[\033[38;5;36m\]" #00af5f -local S37="\[\033[38;5;37m\]" #00af87 -local S38="\[\033[38;5;38m\]" #00afaf -local S38="\[\033[38;5;39m\]" #00afd7 -local S40="\[\033[38;5;40m\]" #00afff -local S41="\[\033[38;5;41m\]" #00d700 -local S42="\[\033[38;5;42m\]" #00d75f -local S43="\[\033[38;5;43m\]" #00d787 -local S44="\[\033[38;5;44m\]" #00d7af -local S45="\[\033[38;5;45m\]" #00d7d7 -local S46="\[\033[38;5;46m\]" #00d7ff -local S47="\[\033[38;5;47m\]" #00ff00 -local S48="\[\033[38;5;48m\]" #00ff5f -local S49="\[\033[38;5;49m\]" #00ff87 -local S50="\[\033[38;5;50m\]" #00ffaf -local S51="\[\033[38;5;51m\]" #00ffd7 -local S52="\[\033[38;5;52m\]" #00ffff -local S53="\[\033[38;5;53m\]" #5f0000 -local S54="\[\033[38;5;54m\]" #5f005f -local S55="\[\033[38;5;55m\]" #5f0087 -local S56="\[\033[38;5;56m\]" #5f00af -local S57="\[\033[38;5;57m\]" #5f00d7 -local S58="\[\033[38;5;58m\]" #5f00ff -local S59="\[\033[38;5;59m\]" #5f5f00 -local S60="\[\033[38;5;60m\]" #5f5f5f -local S61="\[\033[38;5;61m\]" #5f5f87 -local S62="\[\033[38;5;62m\]" #5f5faf -local S63="\[\033[38;5;63m\]" #5f5fd7 -local S64="\[\033[38;5;64m\]" #5f5fff -local S65="\[\033[38;5;65m\]" #5f8700 -local S66="\[\033[38;5;66m\]" #5f875f -local S67="\[\033[38;5;67m\]" #5f8787 -local S68="\[\033[38;5;68m\]" #5f87af -local S69="\[\033[38;5;69m\]" #5f87d7 -local S70="\[\033[38;5;70m\]" #5f87ff -local S71="\[\033[38;5;71m\]" #5faf00 -local S72="\[\033[38;5;72m\]" #5faf5f -local S73="\[\033[38;5;73m\]" #5faf87 -local S74="\[\033[38;5;74m\]" #5fafaf -local S75="\[\033[38;5;75m\]" #5fafd7 -local S76="\[\033[38;5;76m\]" #5fafff -local S77="\[\033[38;5;77m\]" #5fd700 -local S78="\[\033[38;5;78m\]" #5fd75f -local S79="\[\033[38;5;79m\]" #5fd787 -local S80="\[\033[38;5;80m\]" #5fd7af -local S81="\[\033[38;5;81m\]" #5fd7d7 -local S82="\[\033[38;5;82m\]" #5fd7ff -local S83="\[\033[38;5;83m\]" #5fff00 -local S84="\[\033[38;5;84m\]" #5fff5f -local S85="\[\033[38;5;85m\]" #5fff87 -local S86="\[\033[38;5;86m\]" #5fffaf -local S87="\[\033[38;5;87m\]" #5fffd7 -local S88="\[\033[38;5;88m\]" #5fffff -local S89="\[\033[38;5;89m\]" #870000 -local S90="\[\033[38;5;90m\]" #87005f -local S91="\[\033[38;5;91m\]" #870087 -local S92="\[\033[38;5;92m\]" #8700af -local S93="\[\033[38;5;93m\]" #8700d7 -local S94="\[\033[38;5;94m\]" #8700ff -local S95="\[\033[38;5;95m\]" #875f00 -local S96="\[\033[38;5;96m\]" #875f5f -local S97="\[\033[38;5;97m\]" #875f87 -local S98="\[\033[38;5;98m\]" #875faf -local S99="\[\033[38;5;99m\]" #875fd7 -local S100="\[\033[38;5;100m\]" #875fff -local S101="\[\033[38;5;101m\]" #878700 -local S102="\[\033[38;5;102m\]" #87875f -local S103="\[\033[38;5;103m\]" #878787 -local S104="\[\033[38;5;104m\]" #8787af -local S105="\[\033[38;5;105m\]" #8787d7 -local S106="\[\033[38;5;106m\]" #8787ff -local S107="\[\033[38;5;107m\]" #87af00 -local S108="\[\033[38;5;108m\]" #87af5f -local S109="\[\033[38;5;109m\]" #87af87 -local S110="\[\033[38;5;110m\]" #87afaf -local S111="\[\033[38;5;111m\]" #87afd7 -local S112="\[\033[38;5;112m\]" #87afff -local S113="\[\033[38;5;113m\]" #87d700 -local S114="\[\033[38;5;114m\]" #87d75f -local S115="\[\033[38;5;115m\]" #87d787 -local S116="\[\033[38;5;116m\]" #87d7af -local S117="\[\033[38;5;117m\]" #87d7d7 -local S118="\[\033[38;5;118m\]" #87d7ff -local S119="\[\033[38;5;119m\]" #87ff00 -local S120="\[\033[38;5;120m\]" #87ff5f -local S121="\[\033[38;5;121m\]" #87ff87 -local S122="\[\033[38;5;122m\]" #87ffaf -local S123="\[\033[38;5;123m\]" #87ffd7 -local S124="\[\033[38;5;124m\]" #87ffff -local S125="\[\033[38;5;125m\]" #af0000 -local S126="\[\033[38;5;126m\]" #af005f -local S127="\[\033[38;5;127m\]" #af0087 -local S128="\[\033[38;5;128m\]" #af00af -local S129="\[\033[38;5;129m\]" #af00d7 -local S130="\[\033[38;5;130m\]" #af00ff -local S131="\[\033[38;5;131m\]" #af5f00 -local S132="\[\033[38;5;132m\]" #af5f5f -local S133="\[\033[38;5;133m\]" #af5f87 -local S134="\[\033[38;5;134m\]" #af5faf -local S135="\[\033[38;5;135m\]" #af5fd7 -local S136="\[\033[38;5;136m\]" #af5fff -local S137="\[\033[38;5;137m\]" #af8700 -local S138="\[\033[38;5;138m\]" #af875f -local S139="\[\033[38;5;139m\]" #af8787 -local S140="\[\033[38;5;140m\]" #af87af -local S141="\[\033[38;5;141m\]" #af87d7 -local S142="\[\033[38;5;142m\]" #af87ff -local S143="\[\033[38;5;143m\]" #afaf00 -local S144="\[\033[38;5;144m\]" #afaf5f -local S145="\[\033[38;5;145m\]" #afaf87 -local S146="\[\033[38;5;146m\]" #afafaf -local S147="\[\033[38;5;147m\]" #afafd7 -local S148="\[\033[38;5;148m\]" #afafff -local S149="\[\033[38;5;149m\]" #afd700 -local S150="\[\033[38;5;150m\]" #afd75f -local S151="\[\033[38;5;151m\]" #afd787 -local S152="\[\033[38;5;152m\]" #afd7af -local S153="\[\033[38;5;153m\]" #afd7d7 -local S154="\[\033[38;5;154m\]" #afd7ff -local S155="\[\033[38;5;155m\]" #afff00 -local S156="\[\033[38;5;156m\]" #afff5f -local S157="\[\033[38;5;157m\]" #afff87 -local S158="\[\033[38;5;158m\]" #afffaf -local S159="\[\033[38;5;159m\]" #afffd7 -local S160="\[\033[38;5;160m\]" #afffff -local S161="\[\033[38;5;161m\]" #d70000 -local S162="\[\033[38;5;162m\]" #d7005f -local S163="\[\033[38;5;163m\]" #d70087 -local S164="\[\033[38;5;164m\]" #d700af -local S165="\[\033[38;5;165m\]" #d700d7 -local S166="\[\033[38;5;166m\]" #d700ff -local S167="\[\033[38;5;167m\]" #d75f00 -local S168="\[\033[38;5;168m\]" #d75f5f -local S169="\[\033[38;5;169m\]" #d75f87 -local S170="\[\033[38;5;170m\]" #d75faf -local S171="\[\033[38;5;171m\]" #d75fd7 -local S172="\[\033[38;5;172m\]" #d75fff -local S173="\[\033[38;5;173m\]" #d78700 -local S174="\[\033[38;5;174m\]" #d7875f -local S175="\[\033[38;5;175m\]" #d78787 -local S176="\[\033[38;5;176m\]" #d787af -local S177="\[\033[38;5;177m\]" #d787d7 -local S178="\[\033[38;5;178m\]" #d787ff -local S179="\[\033[38;5;179m\]" #d7af00 -local S180="\[\033[38;5;180m\]" #d7af5f -local S181="\[\033[38;5;181m\]" #d7af87 -local S182="\[\033[38;5;182m\]" #d7afaf -local S183="\[\033[38;5;183m\]" #d7afd7 -local S184="\[\033[38;5;184m\]" #d7afff -local S185="\[\033[38;5;185m\]" #d7d700 -local S186="\[\033[38;5;186m\]" #d7d75f -local S187="\[\033[38;5;187m\]" #d7d787 -local S188="\[\033[38;5;188m\]" #d7d7af -local S189="\[\033[38;5;189m\]" #d7d7d7 -local S190="\[\033[38;5;190m\]" #d7d7ff -local S191="\[\033[38;5;191m\]" #d7ff00 -local S192="\[\033[38;5;192m\]" #d7ff5f -local S193="\[\033[38;5;193m\]" #d7ff87 -local S194="\[\033[38;5;194m\]" #d7ffaf -local S195="\[\033[38;5;195m\]" #d7ffd7 -local S196="\[\033[38;5;196m\]" #d7ffff -local S197="\[\033[38;5;197m\]" #ff0000 -local S198="\[\033[38;5;198m\]" #ff005f -local S199="\[\033[38;5;199m\]" #ff0087 -local S200="\[\033[38;5;200m\]" #ff00af -local S201="\[\033[38;5;201m\]" #ff00d7 -local S202="\[\033[38;5;202m\]" #ff00ff -local S203="\[\033[38;5;203m\]" #ff5f00 -local S204="\[\033[38;5;204m\]" #ff5f5f -local S205="\[\033[38;5;205m\]" #ff5f87 -local S206="\[\033[38;5;206m\]" #ff5faf -local S207="\[\033[38;5;207m\]" #ff5fd7 -local S208="\[\033[38;5;208m\]" #ff5fff -local S209="\[\033[38;5;209m\]" #ff8700 -local S210="\[\033[38;5;210m\]" #ff875f -local S211="\[\033[38;5;211m\]" #ff8787 -local S212="\[\033[38;5;212m\]" #ff87af -local S213="\[\033[38;5;213m\]" #ff87d7 -local S214="\[\033[38;5;214m\]" #ff87ff -local S215="\[\033[38;5;215m\]" #ffaf00 -local S216="\[\033[38;5;216m\]" #ffaf5f -local S217="\[\033[38;5;217m\]" #ffaf87 -local S218="\[\033[38;5;218m\]" #ffafaf -local S219="\[\033[38;5;219m\]" #ffafd7 -local S220="\[\033[38;5;220m\]" #ffafff -local S221="\[\033[38;5;221m\]" #ffd700 -local S222="\[\033[38;5;222m\]" #ffd75f -local S223="\[\033[38;5;223m\]" #ffd787 -local S224="\[\033[38;5;224m\]" #ffd7af -local S225="\[\033[38;5;225m\]" #ffd7d7 -local S226="\[\033[38;5;226m\]" #ffd7ff -local S227="\[\033[38;5;227m\]" #ffff00 -local S228="\[\033[38;5;228m\]" #ffff5f -local S229="\[\033[38;5;229m\]" #ffff87 -local S230="\[\033[38;5;230m\]" #ffffaf -local S231="\[\033[38;5;231m\]" #ffffd7 -local S232="\[\033[38;5;232m\]" #ffffff -local S233="\[\033[38;5;233m\]" #080808 -local S234="\[\033[38;5;234m\]" #121212 -local S235="\[\033[38;5;235m\]" #1c1c1c -local S236="\[\033[38;5;236m\]" #262626 -local S237="\[\033[38;5;237m\]" #303030 -local S238="\[\033[38;5;238m\]" #3a3a3a -local S239="\[\033[38;5;239m\]" #444444 -local S240="\[\033[38;5;240m\]" #4e4e4e -local S241="\[\033[38;5;241m\]" #585858 -local S242="\[\033[38;5;242m\]" #626262 -local S243="\[\033[38;5;243m\]" #6c6c6c -local S244="\[\033[38;5;244m\]" #767676 -local S245="\[\033[38;5;245m\]" #808080 -local S246="\[\033[38;5;246m\]" #8a8a8a -local S247="\[\033[38;5;247m\]" #949494 -local S248="\[\033[38;5;248m\]" #9e9e9e -local S249="\[\033[38;5;249m\]" #a8a8a8 -local S250="\[\033[38;5;250m\]" #b2b2b2 -local S251="\[\033[38;5;251m\]" #bcbcbc -local S252="\[\033[38;5;252m\]" #c6c6c6 -local S253="\[\033[38;5;253m\]" #d0d0d0 -local S254="\[\033[38;5;254m\]" #dadada -local S255="\[\033[38;5;255m\]" #e4e4e4 -local S256="\[\033[38;5;256m\]" #eeeeee - -# background -local BG1="\[\033[48;5;1m\]" -local BG2="\[\033[48;5;2m\]" -local BG3="\[\033[48;5;3m\]" -local BG4="\[\033[48;5;4m\]" -local BG5="\[\033[48;5;5m\]" -local BG6="\[\033[48;5;6m\]" -local BG7="\[\033[48;5;7m\]" -local BG8="\[\033[48;5;8m\]" -local BG9="\[\033[48;5;9m\]" -local BG10="\[\033[48;5;10m\]" -local BG11="\[\033[48;5;11m\]" -local BG12="\[\033[48;5;12m\]" -local BG13="\[\033[48;5;13m\]" -local BG14="\[\033[48;5;14m\]" -local BG15="\[\033[48;5;15m\]" -local BG16="\[\033[48;5;16m\]" -local BG17="\[\033[48;5;17m\]" -local BG18="\[\033[48;5;18m\]" -local BG19="\[\033[48;5;19m\]" -local BG20="\[\033[48;5;20m\]" -local BG21="\[\033[48;5;21m\]" -local BG22="\[\033[48;5;22m\]" -local BG23="\[\033[48;5;23m\]" -local BG24="\[\033[48;5;24m\]" -local BG25="\[\033[48;5;25m\]" -local BG26="\[\033[48;5;26m\]" -local BG27="\[\033[48;5;27m\]" -local BG28="\[\033[48;5;28m\]" -local BGA9="\[\033[48;5;29m\]" -local BG30="\[\033[48;5;30m\]" -local BG31="\[\033[48;5;31m\]" -local BG32="\[\033[48;5;32m\]" -local BG33="\[\033[48;5;33m\]" -local BG34="\[\033[48;5;34m\]" -local BG35="\[\033[48;5;35m\]" -local BG36="\[\033[48;5;36m\]" -local BG37="\[\033[48;5;37m\]" -local BG38="\[\033[48;5;38m\]" -local BG38="\[\033[48;5;39m\]" -local BG40="\[\033[48;5;40m\]" -local BG41="\[\033[48;5;41m\]" -local BG42="\[\033[48;5;42m\]" -local BG43="\[\033[48;5;43m\]" -local BG44="\[\033[48;5;44m\]" -local BG45="\[\033[48;5;45m\]" -local BG46="\[\033[48;5;46m\]" -local BG47="\[\033[48;5;47m\]" -local BG48="\[\033[48;5;48m\]" -local BG49="\[\033[48;5;49m\]" -local BG50="\[\033[48;5;50m\]" -local BG51="\[\033[48;5;51m\]" -local BG52="\[\033[48;5;52m\]" -local BG53="\[\033[48;5;53m\]" -local BG54="\[\033[48;5;54m\]" -local BG55="\[\033[48;5;55m\]" -local BG56="\[\033[48;5;56m\]" -local BG57="\[\033[48;5;57m\]" -local BG58="\[\033[48;5;58m\]" -local BG59="\[\033[48;5;59m\]" -local BG60="\[\033[48;5;60m\]" -local BG61="\[\033[48;5;61m\]" -local BG62="\[\033[48;5;62m\]" -local BG63="\[\033[48;5;63m\]" -local BG64="\[\033[48;5;64m\]" -local BG65="\[\033[48;5;65m\]" -local BG66="\[\033[48;5;66m\]" -local BG67="\[\033[48;5;67m\]" -local BG68="\[\033[48;5;68m\]" -local BG69="\[\033[48;5;69m\]" -local BG70="\[\033[48;5;70m\]" -local BG71="\[\033[48;5;71m\]" -local BG72="\[\033[48;5;72m\]" -local BG73="\[\033[48;5;73m\]" -local BG74="\[\033[48;5;74m\]" -local BG75="\[\033[48;5;75m\]" -local BG76="\[\033[48;5;76m\]" -local BG77="\[\033[48;5;77m\]" -local BG78="\[\033[48;5;78m\]" -local BG79="\[\033[48;5;79m\]" -local BG80="\[\033[48;5;80m\]" -local BG81="\[\033[48;5;81m\]" -local BG82="\[\033[48;5;82m\]" -local BG83="\[\033[48;5;83m\]" -local BG84="\[\033[48;5;84m\]" -local BG85="\[\033[48;5;85m\]" -local BG86="\[\033[48;5;86m\]" -local BG87="\[\033[48;5;87m\]" -local BG88="\[\033[48;5;88m\]" -local BG89="\[\033[48;5;89m\]" -local BG90="\[\033[48;5;90m\]" -local BG91="\[\033[48;5;91m\]" -local BG92="\[\033[48;5;92m\]" -local BG93="\[\033[48;5;93m\]" -local BG94="\[\033[48;5;94m\]" -local BG95="\[\033[48;5;95m\]" -local BG96="\[\033[48;5;96m\]" -local BG97="\[\033[48;5;97m\]" -local BG98="\[\033[48;5;98m\]" -local BG99="\[\033[48;5;99m\]" -local BG100="\[\033[48;5;100m\]" -local BG101="\[\033[48;5;101m\]" -local BG102="\[\033[48;5;102m\]" -local BG103="\[\033[48;5;103m\]" -local BG104="\[\033[48;5;104m\]" -local BG105="\[\033[48;5;105m\]" -local BG106="\[\033[48;5;106m\]" -local BG107="\[\033[48;5;107m\]" -local BG108="\[\033[48;5;108m\]" -local BG109="\[\033[48;5;109m\]" -local BG110="\[\033[48;5;110m\]" -local BG111="\[\033[48;5;111m\]" -local BG112="\[\033[48;5;112m\]" -local BG113="\[\033[48;5;113m\]" -local BG114="\[\033[48;5;114m\]" -local BG115="\[\033[48;5;115m\]" -local BG116="\[\033[48;5;116m\]" -local BG117="\[\033[48;5;117m\]" -local BG118="\[\033[48;5;118m\]" -local BG119="\[\033[48;5;119m\]" -local BG120="\[\033[48;5;120m\]" -local BG121="\[\033[48;5;121m\]" -local BG122="\[\033[48;5;122m\]" -local BG123="\[\033[48;5;123m\]" -local BG124="\[\033[48;5;124m\]" -local BG125="\[\033[48;5;125m\]" -local BG126="\[\033[48;5;126m\]" -local BG127="\[\033[48;5;127m\]" -local BG128="\[\033[48;5;128m\]" -local BG129="\[\033[48;5;129m\]" -local BG130="\[\033[48;5;130m\]" -local BG131="\[\033[48;5;131m\]" -local BG132="\[\033[48;5;132m\]" -local BG133="\[\033[48;5;133m\]" -local BG134="\[\033[48;5;134m\]" -local BG135="\[\033[48;5;135m\]" -local BG136="\[\033[48;5;136m\]" -local BG137="\[\033[48;5;137m\]" -local BG138="\[\033[48;5;138m\]" -local BG139="\[\033[48;5;139m\]" -local BG140="\[\033[48;5;140m\]" -local BG141="\[\033[48;5;141m\]" -local BG142="\[\033[48;5;142m\]" -local BG143="\[\033[48;5;143m\]" -local BG144="\[\033[48;5;144m\]" -local BG145="\[\033[48;5;145m\]" -local BG146="\[\033[48;5;146m\]" -local BG147="\[\033[48;5;147m\]" -local BG148="\[\033[48;5;148m\]" -local BG149="\[\033[48;5;149m\]" -local BG150="\[\033[48;5;150m\]" -local BG151="\[\033[48;5;151m\]" -local BG152="\[\033[48;5;152m\]" -local BG153="\[\033[48;5;153m\]" -local BG154="\[\033[48;5;154m\]" -local BG155="\[\033[48;5;155m\]" -local BG156="\[\033[48;5;156m\]" -local BG157="\[\033[48;5;157m\]" -local BG158="\[\033[48;5;158m\]" -local BG159="\[\033[48;5;159m\]" -local BG160="\[\033[48;5;160m\]" -local BG161="\[\033[48;5;161m\]" -local BG162="\[\033[48;5;162m\]" -local BG163="\[\033[48;5;163m\]" -local BG164="\[\033[48;5;164m\]" -local BG165="\[\033[48;5;165m\]" -local BG166="\[\033[48;5;166m\]" -local BG167="\[\033[48;5;167m\]" -local BG168="\[\033[48;5;168m\]" -local BG169="\[\033[48;5;169m\]" -local BG170="\[\033[48;5;170m\]" -local BG171="\[\033[48;5;171m\]" -local BG172="\[\033[48;5;172m\]" -local BG173="\[\033[48;5;173m\]" -local BG174="\[\033[48;5;174m\]" -local BG175="\[\033[48;5;175m\]" -local BG176="\[\033[48;5;176m\]" -local BG177="\[\033[48;5;177m\]" -local BG178="\[\033[48;5;178m\]" -local BG179="\[\033[48;5;179m\]" -local BG180="\[\033[48;5;180m\]" -local BG181="\[\033[48;5;181m\]" -local BG182="\[\033[48;5;182m\]" -local BG183="\[\033[48;5;183m\]" -local BG184="\[\033[48;5;184m\]" -local BG185="\[\033[48;5;185m\]" -local BG186="\[\033[48;5;186m\]" -local BG187="\[\033[48;5;187m\]" -local BG188="\[\033[48;5;188m\]" -local BG189="\[\033[48;5;189m\]" -local BG190="\[\033[48;5;190m\]" -local BG191="\[\033[48;5;191m\]" -local BG192="\[\033[48;5;192m\]" -local BG193="\[\033[48;5;193m\]" -local BG194="\[\033[48;5;194m\]" -local BG195="\[\033[48;5;195m\]" -local BG196="\[\033[48;5;196m\]" -local BG197="\[\033[48;5;197m\]" -local BG198="\[\033[48;5;198m\]" -local BG199="\[\033[48;5;199m\]" -local BG200="\[\033[48;5;200m\]" -local BG201="\[\033[48;5;201m\]" -local BG202="\[\033[48;5;202m\]" -local BG203="\[\033[48;5;203m\]" -local BG204="\[\033[48;5;204m\]" -local BG205="\[\033[48;5;205m\]" -local BG206="\[\033[48;5;206m\]" -local BG207="\[\033[48;5;207m\]" -local BG208="\[\033[48;5;208m\]" -local BG209="\[\033[48;5;209m\]" -local BG210="\[\033[48;5;210m\]" -local BG211="\[\033[48;5;211m\]" -local BG212="\[\033[48;5;212m\]" -local BG213="\[\033[48;5;213m\]" -local BG214="\[\033[48;5;214m\]" -local BG215="\[\033[48;5;215m\]" -local BG216="\[\033[48;5;216m\]" -local BG217="\[\033[48;5;217m\]" -local BG218="\[\033[48;5;218m\]" -local BG219="\[\033[48;5;219m\]" -local BG220="\[\033[48;5;220m\]" -local BG221="\[\033[48;5;221m\]" -local BG222="\[\033[48;5;222m\]" -local BG223="\[\033[48;5;223m\]" -local BG224="\[\033[48;5;224m\]" -local BG225="\[\033[48;5;225m\]" -local BG226="\[\033[48;5;226m\]" -local BG227="\[\033[48;5;227m\]" -local BG228="\[\033[48;5;228m\]" -local BG229="\[\033[48;5;229m\]" -local BG230="\[\033[48;5;230m\]" -local BG231="\[\033[48;5;231m\]" -local BG232="\[\033[48;5;232m\]" -local BG233="\[\033[48;5;233m\]" -local BG234="\[\033[48;5;234m\]" -local BG235="\[\033[48;5;235m\]" -local BG236="\[\033[48;5;236m\]" -local BG237="\[\033[48;5;237m\]" -local BG238="\[\033[48;5;238m\]" -local BG239="\[\033[48;5;239m\]" -local BG240="\[\033[48;5;240m\]" -local BG241="\[\033[48;5;241m\]" -local BG242="\[\033[48;5;242m\]" -local BG243="\[\033[48;5;243m\]" -local BG244="\[\033[48;5;244m\]" -local BG245="\[\033[48;5;245m\]" -local BG246="\[\033[48;5;246m\]" -local BG247="\[\033[48;5;247m\]" -local BG248="\[\033[48;5;248m\]" -local BG249="\[\033[48;5;249m\]" -local BG250="\[\033[48;5;250m\]" -local BG251="\[\033[48;5;251m\]" -local BG252="\[\033[48;5;252m\]" -local BG253="\[\033[48;5;253m\]" -local BG254="\[\033[48;5;254m\]" -local BG255="\[\033[48;5;255m\]" -local BG256="\[\033[48;5;256m\]" diff --git a/bash/16bit.colors.bak b/bash/16bit.colors.bak deleted file mode 100644 index eba441e..0000000 --- a/bash/16bit.colors.bak +++ /dev/null @@ -1,515 +0,0 @@ -# Based on https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit -local S1="\[\033[38;5;1m\]" -local S2="\[\033[38;5;2m\]" -local S3="\[\033[38;5;3m\]" -local S4="\[\033[38;5;4m\]" -local S5="\[\033[38;5;5m\]" -local S6="\[\033[38;5;6m\]" -local S7="\[\033[38;5;7m\]" -local S8="\[\033[38;5;8m\]" -local S9="\[\033[38;5;9m\]" -local S10="\[\033[38;5;10m\]" -local S11="\[\033[38;5;11m\]" -local S12="\[\033[38;5;12m\]" -local S13="\[\033[38;5;13m\]" -local S14="\[\033[38;5;14m\]" -local S15="\[\033[38;5;15m\]" -local S16="\[\033[38;5;16m\]" -local S17="\[\033[38;5;17m\]" -local S18="\[\033[38;5;18m\]" -local S19="\[\033[38;5;19m\]" -local S20="\[\033[38;5;20m\]" -local S21="\[\033[38;5;21m\]" -local S22="\[\033[38;5;22m\]" -local S23="\[\033[38;5;23m\]" -local S24="\[\033[38;5;24m\]" -local S25="\[\033[38;5;25m\]" -local S26="\[\033[38;5;26m\]" -local S27="\[\033[38;5;27m\]" -local S28="\[\033[38;5;28m\]" -local SA9="\[\033[38;5;29m\]" -local S30="\[\033[38;5;30m\]" -local S31="\[\033[38;5;31m\]" -local S32="\[\033[38;5;32m\]" -local S33="\[\033[38;5;33m\]" -local S34="\[\033[38;5;34m\]" -local S35="\[\033[38;5;35m\]" -local S36="\[\033[38;5;36m\]" -local S37="\[\033[38;5;37m\]" -local S38="\[\033[38;5;38m\]" -local S38="\[\033[38;5;39m\]" -local S40="\[\033[38;5;40m\]" -local S41="\[\033[38;5;41m\]" -local S42="\[\033[38;5;42m\]" -local S43="\[\033[38;5;43m\]" -local S44="\[\033[38;5;44m\]" -local S45="\[\033[38;5;45m\]" -local S46="\[\033[38;5;46m\]" -local S47="\[\033[38;5;47m\]" -local S48="\[\033[38;5;48m\]" -local S49="\[\033[38;5;49m\]" -local S50="\[\033[38;5;50m\]" -local S51="\[\033[38;5;51m\]" -local S52="\[\033[38;5;52m\]" -local S53="\[\033[38;5;53m\]" -local S54="\[\033[38;5;54m\]" -local S55="\[\033[38;5;55m\]" -local S56="\[\033[38;5;56m\]" -local S57="\[\033[38;5;57m\]" -local S58="\[\033[38;5;58m\]" -local S59="\[\033[38;5;59m\]" -local S60="\[\033[38;5;60m\]" -local S61="\[\033[38;5;61m\]" -local S62="\[\033[38;5;62m\]" -local S63="\[\033[38;5;63m\]" -local S64="\[\033[38;5;64m\]" -local S65="\[\033[38;5;65m\]" -local S66="\[\033[38;5;66m\]" -local S67="\[\033[38;5;67m\]" -local S68="\[\033[38;5;68m\]" -local S69="\[\033[38;5;69m\]" -local S70="\[\033[38;5;70m\]" -local S71="\[\033[38;5;71m\]" -local S72="\[\033[38;5;72m\]" -local S73="\[\033[38;5;73m\]" -local S74="\[\033[38;5;74m\]" -local S75="\[\033[38;5;75m\]" -local S76="\[\033[38;5;76m\]" -local S77="\[\033[38;5;77m\]" -local S78="\[\033[38;5;78m\]" -local S79="\[\033[38;5;79m\]" -local S80="\[\033[38;5;80m\]" -local S81="\[\033[38;5;81m\]" -local S82="\[\033[38;5;82m\]" -local S83="\[\033[38;5;83m\]" -local S84="\[\033[38;5;84m\]" -local S85="\[\033[38;5;85m\]" -local S86="\[\033[38;5;86m\]" -local S87="\[\033[38;5;87m\]" -local S88="\[\033[38;5;88m\]" -local S89="\[\033[38;5;89m\]" -local S90="\[\033[38;5;90m\]" -local S91="\[\033[38;5;91m\]" -local S92="\[\033[38;5;92m\]" -local S93="\[\033[38;5;93m\]" -local S94="\[\033[38;5;94m\]" -local S95="\[\033[38;5;95m\]" -local S96="\[\033[38;5;96m\]" -local S97="\[\033[38;5;97m\]" -local S98="\[\033[38;5;98m\]" -local S99="\[\033[38;5;99m\]" -local S100="\[\033[38;5;100m\]" -local S101="\[\033[38;5;101m\]" -local S102="\[\033[38;5;102m\]" -local S103="\[\033[38;5;103m\]" -local S104="\[\033[38;5;104m\]" -local S105="\[\033[38;5;105m\]" -local S106="\[\033[38;5;106m\]" -local S107="\[\033[38;5;107m\]" -local S108="\[\033[38;5;108m\]" -local S109="\[\033[38;5;109m\]" -local S110="\[\033[38;5;110m\]" -local S111="\[\033[38;5;111m\]" -local S112="\[\033[38;5;112m\]" -local S113="\[\033[38;5;113m\]" -local S114="\[\033[38;5;114m\]" -local S115="\[\033[38;5;115m\]" -local S116="\[\033[38;5;116m\]" -local S117="\[\033[38;5;117m\]" -local S118="\[\033[38;5;118m\]" -local S119="\[\033[38;5;119m\]" -local S120="\[\033[38;5;120m\]" -local S121="\[\033[38;5;121m\]" -local S122="\[\033[38;5;122m\]" -local S123="\[\033[38;5;123m\]" -local S124="\[\033[38;5;124m\]" -local S125="\[\033[38;5;125m\]" -local S126="\[\033[38;5;126m\]" -local S127="\[\033[38;5;127m\]" -local S128="\[\033[38;5;128m\]" -local S129="\[\033[38;5;129m\]" -local S130="\[\033[38;5;130m\]" -local S131="\[\033[38;5;131m\]" -local S132="\[\033[38;5;132m\]" -local S133="\[\033[38;5;133m\]" -local S134="\[\033[38;5;134m\]" -local S135="\[\033[38;5;135m\]" -local S136="\[\033[38;5;136m\]" -local S137="\[\033[38;5;137m\]" -local S138="\[\033[38;5;138m\]" -local S139="\[\033[38;5;139m\]" -local S140="\[\033[38;5;140m\]" -local S141="\[\033[38;5;141m\]" -local S142="\[\033[38;5;142m\]" -local S143="\[\033[38;5;143m\]" -local S144="\[\033[38;5;144m\]" -local S145="\[\033[38;5;145m\]" -local S146="\[\033[38;5;146m\]" -local S147="\[\033[38;5;147m\]" -local S148="\[\033[38;5;148m\]" -local S149="\[\033[38;5;149m\]" -local S150="\[\033[38;5;150m\]" -local S151="\[\033[38;5;151m\]" -local S152="\[\033[38;5;152m\]" -local S153="\[\033[38;5;153m\]" -local S154="\[\033[38;5;154m\]" -local S155="\[\033[38;5;155m\]" -local S156="\[\033[38;5;156m\]" -local S157="\[\033[38;5;157m\]" -local S158="\[\033[38;5;158m\]" -local S159="\[\033[38;5;159m\]" -local S160="\[\033[38;5;160m\]" -local S161="\[\033[38;5;161m\]" -local S162="\[\033[38;5;162m\]" -local S163="\[\033[38;5;163m\]" -local S164="\[\033[38;5;164m\]" -local S165="\[\033[38;5;165m\]" -local S166="\[\033[38;5;166m\]" -local S167="\[\033[38;5;167m\]" -local S168="\[\033[38;5;168m\]" -local S169="\[\033[38;5;169m\]" -local S170="\[\033[38;5;170m\]" -local S171="\[\033[38;5;171m\]" -local S172="\[\033[38;5;172m\]" -local S173="\[\033[38;5;173m\]" -local S174="\[\033[38;5;174m\]" -local S175="\[\033[38;5;175m\]" -local S176="\[\033[38;5;176m\]" -local S177="\[\033[38;5;177m\]" -local S178="\[\033[38;5;178m\]" -local S179="\[\033[38;5;179m\]" -local S180="\[\033[38;5;180m\]" -local S181="\[\033[38;5;181m\]" -local S182="\[\033[38;5;182m\]" -local S183="\[\033[38;5;183m\]" -local S184="\[\033[38;5;184m\]" -local S185="\[\033[38;5;185m\]" -local S186="\[\033[38;5;186m\]" -local S187="\[\033[38;5;187m\]" -local S188="\[\033[38;5;188m\]" -local S189="\[\033[38;5;189m\]" -local S190="\[\033[38;5;190m\]" -local S191="\[\033[38;5;191m\]" -local S192="\[\033[38;5;192m\]" -local S193="\[\033[38;5;193m\]" -local S194="\[\033[38;5;194m\]" -local S195="\[\033[38;5;195m\]" -local S196="\[\033[38;5;196m\]" -local S197="\[\033[38;5;197m\]" -local S198="\[\033[38;5;198m\]" -local S199="\[\033[38;5;199m\]" -local S200="\[\033[38;5;200m\]" -local S201="\[\033[38;5;201m\]" -local S202="\[\033[38;5;202m\]" -local S203="\[\033[38;5;203m\]" -local S204="\[\033[38;5;204m\]" -local S205="\[\033[38;5;205m\]" -local S206="\[\033[38;5;206m\]" -local S207="\[\033[38;5;207m\]" -local S208="\[\033[38;5;208m\]" -local S209="\[\033[38;5;209m\]" -local S210="\[\033[38;5;210m\]" -local S211="\[\033[38;5;211m\]" -local S212="\[\033[38;5;212m\]" -local S213="\[\033[38;5;213m\]" -local S214="\[\033[38;5;214m\]" -local S215="\[\033[38;5;215m\]" -local S216="\[\033[38;5;216m\]" -local S217="\[\033[38;5;217m\]" -local S218="\[\033[38;5;218m\]" -local S219="\[\033[38;5;219m\]" -local S220="\[\033[38;5;220m\]" -local S221="\[\033[38;5;221m\]" -local S222="\[\033[38;5;222m\]" -local S223="\[\033[38;5;223m\]" -local S224="\[\033[38;5;224m\]" -local S225="\[\033[38;5;225m\]" -local S226="\[\033[38;5;226m\]" -local S227="\[\033[38;5;227m\]" -local S228="\[\033[38;5;228m\]" -local S229="\[\033[38;5;229m\]" -local S230="\[\033[38;5;230m\]" -local S231="\[\033[38;5;231m\]" -local S232="\[\033[38;5;232m\]" -local S233="\[\033[38;5;233m\]" -local S234="\[\033[38;5;234m\]" -local S235="\[\033[38;5;235m\]" -local S236="\[\033[38;5;236m\]" -local S237="\[\033[38;5;237m\]" -local S238="\[\033[38;5;238m\]" -local S239="\[\033[38;5;239m\]" -local S240="\[\033[38;5;240m\]" -local S241="\[\033[38;5;241m\]" -local S242="\[\033[38;5;242m\]" -local S243="\[\033[38;5;243m\]" -local S244="\[\033[38;5;244m\]" -local S245="\[\033[38;5;245m\]" -local S246="\[\033[38;5;246m\]" -local S247="\[\033[38;5;247m\]" -local S248="\[\033[38;5;248m\]" -local S249="\[\033[38;5;249m\]" -local S250="\[\033[38;5;250m\]" -local S251="\[\033[38;5;251m\]" -local S252="\[\033[38;5;252m\]" -local S253="\[\033[38;5;253m\]" -local S254="\[\033[38;5;254m\]" -local S255="\[\033[38;5;255m\]" -local S256="\[\033[38;5;256m\]" - -# background -local BG1="\[\033[48;5;1m\]" -local BG2="\[\033[48;5;2m\]" -local BG3="\[\033[48;5;3m\]" -local BG4="\[\033[48;5;4m\]" -local BG5="\[\033[48;5;5m\]" -local BG6="\[\033[48;5;6m\]" -local BG7="\[\033[48;5;7m\]" -local BG8="\[\033[48;5;8m\]" -local BG9="\[\033[48;5;9m\]" -local BG10="\[\033[48;5;10m\]" -local BG11="\[\033[48;5;11m\]" -local BG12="\[\033[48;5;12m\]" -local BG13="\[\033[48;5;13m\]" -local BG14="\[\033[48;5;14m\]" -local BG15="\[\033[48;5;15m\]" -local BG16="\[\033[48;5;16m\]" -local BG17="\[\033[48;5;17m\]" -local BG18="\[\033[48;5;18m\]" -local BG19="\[\033[48;5;19m\]" -local BG20="\[\033[48;5;20m\]" -local BG21="\[\033[48;5;21m\]" -local BG22="\[\033[48;5;22m\]" -local BG23="\[\033[48;5;23m\]" -local BG24="\[\033[48;5;24m\]" -local BG25="\[\033[48;5;25m\]" -local BG26="\[\033[48;5;26m\]" -local BG27="\[\033[48;5;27m\]" -local BG28="\[\033[48;5;28m\]" -local BGA9="\[\033[48;5;29m\]" -local BG30="\[\033[48;5;30m\]" -local BG31="\[\033[48;5;31m\]" -local BG32="\[\033[48;5;32m\]" -local BG33="\[\033[48;5;33m\]" -local BG34="\[\033[48;5;34m\]" -local BG35="\[\033[48;5;35m\]" -local BG36="\[\033[48;5;36m\]" -local BG37="\[\033[48;5;37m\]" -local BG38="\[\033[48;5;38m\]" -local BG38="\[\033[48;5;39m\]" -local BG40="\[\033[48;5;40m\]" -local BG41="\[\033[48;5;41m\]" -local BG42="\[\033[48;5;42m\]" -local BG43="\[\033[48;5;43m\]" -local BG44="\[\033[48;5;44m\]" -local BG45="\[\033[48;5;45m\]" -local BG46="\[\033[48;5;46m\]" -local BG47="\[\033[48;5;47m\]" -local BG48="\[\033[48;5;48m\]" -local BG49="\[\033[48;5;49m\]" -local BG50="\[\033[48;5;50m\]" -local BG51="\[\033[48;5;51m\]" -local BG52="\[\033[48;5;52m\]" -local BG53="\[\033[48;5;53m\]" -local BG54="\[\033[48;5;54m\]" -local BG55="\[\033[48;5;55m\]" -local BG56="\[\033[48;5;56m\]" -local BG57="\[\033[48;5;57m\]" -local BG58="\[\033[48;5;58m\]" -local BG59="\[\033[48;5;59m\]" -local BG60="\[\033[48;5;60m\]" -local BG61="\[\033[48;5;61m\]" -local BG62="\[\033[48;5;62m\]" -local BG63="\[\033[48;5;63m\]" -local BG64="\[\033[48;5;64m\]" -local BG65="\[\033[48;5;65m\]" -local BG66="\[\033[48;5;66m\]" -local BG67="\[\033[48;5;67m\]" -local BG68="\[\033[48;5;68m\]" -local BG69="\[\033[48;5;69m\]" -local BG70="\[\033[48;5;70m\]" -local BG71="\[\033[48;5;71m\]" -local BG72="\[\033[48;5;72m\]" -local BG73="\[\033[48;5;73m\]" -local BG74="\[\033[48;5;74m\]" -local BG75="\[\033[48;5;75m\]" -local BG76="\[\033[48;5;76m\]" -local BG77="\[\033[48;5;77m\]" -local BG78="\[\033[48;5;78m\]" -local BG79="\[\033[48;5;79m\]" -local BG80="\[\033[48;5;80m\]" -local BG81="\[\033[48;5;81m\]" -local BG82="\[\033[48;5;82m\]" -local BG83="\[\033[48;5;83m\]" -local BG84="\[\033[48;5;84m\]" -local BG85="\[\033[48;5;85m\]" -local BG86="\[\033[48;5;86m\]" -local BG87="\[\033[48;5;87m\]" -local BG88="\[\033[48;5;88m\]" -local BG89="\[\033[48;5;89m\]" -local BG90="\[\033[48;5;90m\]" -local BG91="\[\033[48;5;91m\]" -local BG92="\[\033[48;5;92m\]" -local BG93="\[\033[48;5;93m\]" -local BG94="\[\033[48;5;94m\]" -local BG95="\[\033[48;5;95m\]" -local BG96="\[\033[48;5;96m\]" -local BG97="\[\033[48;5;97m\]" -local BG98="\[\033[48;5;98m\]" -local BG99="\[\033[48;5;99m\]" -local BG100="\[\033[48;5;100m\]" -local BG101="\[\033[48;5;101m\]" -local BG102="\[\033[48;5;102m\]" -local BG103="\[\033[48;5;103m\]" -local BG104="\[\033[48;5;104m\]" -local BG105="\[\033[48;5;105m\]" -local BG106="\[\033[48;5;106m\]" -local BG107="\[\033[48;5;107m\]" -local BG108="\[\033[48;5;108m\]" -local BG109="\[\033[48;5;109m\]" -local BG110="\[\033[48;5;110m\]" -local BG111="\[\033[48;5;111m\]" -local BG112="\[\033[48;5;112m\]" -local BG113="\[\033[48;5;113m\]" -local BG114="\[\033[48;5;114m\]" -local BG115="\[\033[48;5;115m\]" -local BG116="\[\033[48;5;116m\]" -local BG117="\[\033[48;5;117m\]" -local BG118="\[\033[48;5;118m\]" -local BG119="\[\033[48;5;119m\]" -local BG120="\[\033[48;5;120m\]" -local BG121="\[\033[48;5;121m\]" -local BG122="\[\033[48;5;122m\]" -local BG123="\[\033[48;5;123m\]" -local BG124="\[\033[48;5;124m\]" -local BG125="\[\033[48;5;125m\]" -local BG126="\[\033[48;5;126m\]" -local BG127="\[\033[48;5;127m\]" -local BG128="\[\033[48;5;128m\]" -local BG129="\[\033[48;5;129m\]" -local BG130="\[\033[48;5;130m\]" -local BG131="\[\033[48;5;131m\]" -local BG132="\[\033[48;5;132m\]" -local BG133="\[\033[48;5;133m\]" -local BG134="\[\033[48;5;134m\]" -local BG135="\[\033[48;5;135m\]" -local BG136="\[\033[48;5;136m\]" -local BG137="\[\033[48;5;137m\]" -local BG138="\[\033[48;5;138m\]" -local BG139="\[\033[48;5;139m\]" -local BG140="\[\033[48;5;140m\]" -local BG141="\[\033[48;5;141m\]" -local BG142="\[\033[48;5;142m\]" -local BG143="\[\033[48;5;143m\]" -local BG144="\[\033[48;5;144m\]" -local BG145="\[\033[48;5;145m\]" -local BG146="\[\033[48;5;146m\]" -local BG147="\[\033[48;5;147m\]" -local BG148="\[\033[48;5;148m\]" -local BG149="\[\033[48;5;149m\]" -local BG150="\[\033[48;5;150m\]" -local BG151="\[\033[48;5;151m\]" -local BG152="\[\033[48;5;152m\]" -local BG153="\[\033[48;5;153m\]" -local BG154="\[\033[48;5;154m\]" -local BG155="\[\033[48;5;155m\]" -local BG156="\[\033[48;5;156m\]" -local BG157="\[\033[48;5;157m\]" -local BG158="\[\033[48;5;158m\]" -local BG159="\[\033[48;5;159m\]" -local BG160="\[\033[48;5;160m\]" -local BG161="\[\033[48;5;161m\]" -local BG162="\[\033[48;5;162m\]" -local BG163="\[\033[48;5;163m\]" -local BG164="\[\033[48;5;164m\]" -local BG165="\[\033[48;5;165m\]" -local BG166="\[\033[48;5;166m\]" -local BG167="\[\033[48;5;167m\]" -local BG168="\[\033[48;5;168m\]" -local BG169="\[\033[48;5;169m\]" -local BG170="\[\033[48;5;170m\]" -local BG171="\[\033[48;5;171m\]" -local BG172="\[\033[48;5;172m\]" -local BG173="\[\033[48;5;173m\]" -local BG174="\[\033[48;5;174m\]" -local BG175="\[\033[48;5;175m\]" -local BG176="\[\033[48;5;176m\]" -local BG177="\[\033[48;5;177m\]" -local BG178="\[\033[48;5;178m\]" -local BG179="\[\033[48;5;179m\]" -local BG180="\[\033[48;5;180m\]" -local BG181="\[\033[48;5;181m\]" -local BG182="\[\033[48;5;182m\]" -local BG183="\[\033[48;5;183m\]" -local BG184="\[\033[48;5;184m\]" -local BG185="\[\033[48;5;185m\]" -local BG186="\[\033[48;5;186m\]" -local BG187="\[\033[48;5;187m\]" -local BG188="\[\033[48;5;188m\]" -local BG189="\[\033[48;5;189m\]" -local BG190="\[\033[48;5;190m\]" -local BG191="\[\033[48;5;191m\]" -local BG192="\[\033[48;5;192m\]" -local BG193="\[\033[48;5;193m\]" -local BG194="\[\033[48;5;194m\]" -local BG195="\[\033[48;5;195m\]" -local BG196="\[\033[48;5;196m\]" -local BG197="\[\033[48;5;197m\]" -local BG198="\[\033[48;5;198m\]" -local BG199="\[\033[48;5;199m\]" -local BG200="\[\033[48;5;200m\]" -local BG201="\[\033[48;5;201m\]" -local BG202="\[\033[48;5;202m\]" -local BG203="\[\033[48;5;203m\]" -local BG204="\[\033[48;5;204m\]" -local BG205="\[\033[48;5;205m\]" -local BG206="\[\033[48;5;206m\]" -local BG207="\[\033[48;5;207m\]" -local BG208="\[\033[48;5;208m\]" -local BG209="\[\033[48;5;209m\]" -local BG210="\[\033[48;5;210m\]" -local BG211="\[\033[48;5;211m\]" -local BG212="\[\033[48;5;212m\]" -local BG213="\[\033[48;5;213m\]" -local BG214="\[\033[48;5;214m\]" -local BG215="\[\033[48;5;215m\]" -local BG216="\[\033[48;5;216m\]" -local BG217="\[\033[48;5;217m\]" -local BG218="\[\033[48;5;218m\]" -local BG219="\[\033[48;5;219m\]" -local BG220="\[\033[48;5;220m\]" -local BG221="\[\033[48;5;221m\]" -local BG222="\[\033[48;5;222m\]" -local BG223="\[\033[48;5;223m\]" -local BG224="\[\033[48;5;224m\]" -local BG225="\[\033[48;5;225m\]" -local BG226="\[\033[48;5;226m\]" -local BG227="\[\033[48;5;227m\]" -local BG228="\[\033[48;5;228m\]" -local BG229="\[\033[48;5;229m\]" -local BG230="\[\033[48;5;230m\]" -local BG231="\[\033[48;5;231m\]" -local BG232="\[\033[48;5;232m\]" -local BG233="\[\033[48;5;233m\]" -local BG234="\[\033[48;5;234m\]" -local BG235="\[\033[48;5;235m\]" -local BG236="\[\033[48;5;236m\]" -local BG237="\[\033[48;5;237m\]" -local BG238="\[\033[48;5;238m\]" -local BG239="\[\033[48;5;239m\]" -local BG240="\[\033[48;5;240m\]" -local BG241="\[\033[48;5;241m\]" -local BG242="\[\033[48;5;242m\]" -local BG243="\[\033[48;5;243m\]" -local BG244="\[\033[48;5;244m\]" -local BG245="\[\033[48;5;245m\]" -local BG246="\[\033[48;5;246m\]" -local BG247="\[\033[48;5;247m\]" -local BG248="\[\033[48;5;248m\]" -local BG249="\[\033[48;5;249m\]" -local BG250="\[\033[48;5;250m\]" -local BG251="\[\033[48;5;251m\]" -local BG252="\[\033[48;5;252m\]" -local BG253="\[\033[48;5;253m\]" -local BG254="\[\033[48;5;254m\]" -local BG255="\[\033[48;5;255m\]" -local BG256="\[\033[48;5;256m\]" diff --git a/bash/4bit.colors b/bash/4bit.colors deleted file mode 100644 index 71b5a76..0000000 --- a/bash/4bit.colors +++ /dev/null @@ -1,31 +0,0 @@ -local NONE="\[\033[0m\]" # unsets color to term's fg color - -# regular colors -local K="\[\033[0;30m\]" # black -local R="\[\033[0;31m\]" # red -local G="\[\033[0;32m\]" # green -local Y="\[\033[0;33m\]" # yellow -local B="\[\033[0;34m\]" # blue -local M="\[\033[0;35m\]" # magenta -local C="\[\033[0;36m\]" # cyan -local W="\[\033[0;37m\]" # white - -# emphasized (bolded) colors -local EMK="\[\033[1;30m\]" -local EMR="\[\033[1;31m\]" -local EMG="\[\033[1;32m\]" -local EMY="\[\033[1;33m\]" -local EMB="\[\033[1;34m\]" -local EMM="\[\033[1;35m\]" -local EMC="\[\033[1;36m\]" -local EMW="\[\033[1;37m\]" - -# background colors -local BGK="\[\033[40m\]" -local BGR="\[\033[41m\]" -local BGG="\[\033[42m\]" -local BGY="\[\033[43m\]" -local BGB="\[\033[44m\]" -local BGM="\[\033[45m\]" -local BGC="\[\033[46m\]" -local BGW="\[\033[47m\]" diff --git a/bash/escape_functions.default b/bash/escape_functions.default deleted file mode 100644 index d71cb91..0000000 --- a/bash/escape_functions.default +++ /dev/null @@ -1 +0,0 @@ -local ESC_SEQ_START ="\[\033[" diff --git a/bash/hex b/bash/hex deleted file mode 100644 index 4f9a4f5..0000000 --- a/bash/hex +++ /dev/null @@ -1,257 +0,0 @@ - -#000000 -#800000 -#008000 -#808000 -#000080 -#800080 -#008080 -#c0c0c0 -#808080 -#ff0000 -#00ff00 -#ffff00 -#0000ff -#ff00ff -#00ffff -#ffffff -#000000 -#00005f -#000087 -#0000af -#0000d7 -#0000ff -#005f00 -#005f5f -#005f87 -#005faf -#005fd7 -#005fff -#008700 -#00875f -#008787 -#0087af -#0087d7 -#0087ff -#00af00 -#00af5f -#00af87 -#00afaf -#00afd7 -#00afff -#00d700 -#00d75f -#00d787 -#00d7af -#00d7d7 -#00d7ff -#00ff00 -#00ff5f -#00ff87 -#00ffaf -#00ffd7 -#00ffff -#5f0000 -#5f005f -#5f0087 -#5f00af -#5f00d7 -#5f00ff -#5f5f00 -#5f5f5f -#5f5f87 -#5f5faf -#5f5fd7 -#5f5fff -#5f8700 -#5f875f -#5f8787 -#5f87af -#5f87d7 -#5f87ff -#5faf00 -#5faf5f -#5faf87 -#5fafaf -#5fafd7 -#5fafff -#5fd700 -#5fd75f -#5fd787 -#5fd7af -#5fd7d7 -#5fd7ff -#5fff00 -#5fff5f -#5fff87 -#5fffaf -#5fffd7 -#5fffff -#870000 -#87005f -#870087 -#8700af -#8700d7 -#8700ff -#875f00 -#875f5f -#875f87 -#875faf -#875fd7 -#875fff -#878700 -#87875f -#878787 -#8787af -#8787d7 -#8787ff -#87af00 -#87af5f -#87af87 -#87afaf -#87afd7 -#87afff -#87d700 -#87d75f -#87d787 -#87d7af -#87d7d7 -#87d7ff -#87ff00 -#87ff5f -#87ff87 -#87ffaf -#87ffd7 -#87ffff -#af0000 -#af005f -#af0087 -#af00af -#af00d7 -#af00ff -#af5f00 -#af5f5f -#af5f87 -#af5faf -#af5fd7 -#af5fff -#af8700 -#af875f -#af8787 -#af87af -#af87d7 -#af87ff -#afaf00 -#afaf5f -#afaf87 -#afafaf -#afafd7 -#afafff -#afd700 -#afd75f -#afd787 -#afd7af -#afd7d7 -#afd7ff -#afff00 -#afff5f -#afff87 -#afffaf -#afffd7 -#afffff -#d70000 -#d7005f -#d70087 -#d700af -#d700d7 -#d700ff -#d75f00 -#d75f5f -#d75f87 -#d75faf -#d75fd7 -#d75fff -#d78700 -#d7875f -#d78787 -#d787af -#d787d7 -#d787ff -#d7af00 -#d7af5f -#d7af87 -#d7afaf -#d7afd7 -#d7afff -#d7d700 -#d7d75f -#d7d787 -#d7d7af -#d7d7d7 -#d7d7ff -#d7ff00 -#d7ff5f -#d7ff87 -#d7ffaf -#d7ffd7 -#d7ffff -#ff0000 -#ff005f -#ff0087 -#ff00af -#ff00d7 -#ff00ff -#ff5f00 -#ff5f5f -#ff5f87 -#ff5faf -#ff5fd7 -#ff5fff -#ff8700 -#ff875f -#ff8787 -#ff87af -#ff87d7 -#ff87ff -#ffaf00 -#ffaf5f -#ffaf87 -#ffafaf -#ffafd7 -#ffafff -#ffd700 -#ffd75f -#ffd787 -#ffd7af -#ffd7d7 -#ffd7ff -#ffff00 -#ffff5f -#ffff87 -#ffffaf -#ffffd7 -#ffffff -#080808 -#121212 -#1c1c1c -#262626 -#303030 -#3a3a3a -#444444 -#4e4e4e -#585858 -#626262 -#6c6c6c -#767676 -#808080 -#8a8a8a -#949494 -#9e9e9e -#a8a8a8 -#b2b2b2 -#bcbcbc -#c6c6c6 -#d0d0d0 -#dadada -#e4e4e4 -#eeeeee diff --git a/bash/prompt b/bash/prompt deleted file mode 100644 index 202da4d..0000000 --- a/bash/prompt +++ /dev/null @@ -1,82 +0,0 @@ -# Fancy PWD display function -## The home directory (HOME) is replaced with a ~ -## The last pwdmaxlen characters of the PWD are displayed -## Leading partial directory names are striped off -## /home/me/stuff -> ~/stuff if USER=me -## /usr/share/big_dir_name -> ../share/big_dir_name if pwdmaxlen=20 -## -## Source: WOLFMAN'S color bash promt - - -## ARRANGE $PWD AND STORE IT IN $NEW_PWD -bash_prompt_command() { - # How many characters of the $PWD should be kept - local pwdmaxlen=25 - - # Indicate that there has been dir truncation - local trunc_symbol=".." - - # Store local dir - local dir=${PWD##*/} - - # Which length to use - pwdmaxlen=$(( ( pwdmaxlen < ${#dir} ) ? ${#dir} : pwdmaxlen )) - - NEW_PWD=${PWD/#$HOME/\~} - - local pwdoffset=$(( ${#NEW_PWD} - pwdmaxlen )) - - # Generate name - if [ ${pwdoffset} -gt "0" ] - then - NEW_PWD=${NEW_PWD:$pwdoffset:$pwdmaxlen} - NEW_PWD=${trunc_symbol}/${NEW_PWD#*/} - fi -} - - -## COLORIZE -bash_prompt() { - case $TERM in - xterm*|rxvt*) - local TITLEBAR="\[\033]0;\u:${NEW_PWD}\007\]" - ;; - *) - local TITLEBAR="" - ;; - esac - local NONE="\[\033[0m\]" # unsets color to term's fg color - - source ~/.bash/4bit.colors - source ~/.bash/16bit.colors - - local UC=$S111 # user's color - local HC=$S222 # host color - local PC="\[\033[38;2;255;155;135m\]" - [ $UID -eq "0" ] && UC=$R # root's color - - - PS1="$TITLEBAR ${EMK}[${UC}\u${EMG}@${HC}\h ${PC}\${NEW_PWD}${EMK}]${EMC}\\$ ${S139}" - - - # without colors: PS1="[\u@\h \${NEW_PWD}]\\$ " - # extra backslash in front of \$ to make bash colorize the prompt - - # for terminal line coloring, leaving the rest standard - none="$(tput sgr0)" - trap 'echo -ne "${none}"' DEBUG -} - - -## Bash provides an environment variable called PROMPT_COMMAND. -## The contents of this variable are executed as a regular Bash command -## just before Bash displays a prompt. -## We want it to call our own command to truncate PWD and store it in NEW_PWD -PROMPT_COMMAND=bash_prompt_command - -## Call bash_promnt only once, then unset it (not needed any more) -## It will set $PS1 with colors and relative to $NEW_PWD, -## which gets updated by $PROMT_COMMAND on behalf of the terminal -bash_prompt -unset bash_prompt -## EOF diff --git a/common/README.md b/common/README.md index 4eba887..e18fce9 100644 --- a/common/README.md +++ b/common/README.md @@ -8,4 +8,4 @@ This directory contains configurations that work across all operating systems. - Git configuration - Editor configs (vim, etc.) - GNU tool aliases -- Color schemes and themes \ No newline at end of file +- Color schemes and themes diff --git a/common/bash/16bit.colors.bak b/common/bash/16bit.colors.bak deleted file mode 100644 index eba441e..0000000 --- a/common/bash/16bit.colors.bak +++ /dev/null @@ -1,515 +0,0 @@ -# Based on https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit -local S1="\[\033[38;5;1m\]" -local S2="\[\033[38;5;2m\]" -local S3="\[\033[38;5;3m\]" -local S4="\[\033[38;5;4m\]" -local S5="\[\033[38;5;5m\]" -local S6="\[\033[38;5;6m\]" -local S7="\[\033[38;5;7m\]" -local S8="\[\033[38;5;8m\]" -local S9="\[\033[38;5;9m\]" -local S10="\[\033[38;5;10m\]" -local S11="\[\033[38;5;11m\]" -local S12="\[\033[38;5;12m\]" -local S13="\[\033[38;5;13m\]" -local S14="\[\033[38;5;14m\]" -local S15="\[\033[38;5;15m\]" -local S16="\[\033[38;5;16m\]" -local S17="\[\033[38;5;17m\]" -local S18="\[\033[38;5;18m\]" -local S19="\[\033[38;5;19m\]" -local S20="\[\033[38;5;20m\]" -local S21="\[\033[38;5;21m\]" -local S22="\[\033[38;5;22m\]" -local S23="\[\033[38;5;23m\]" -local S24="\[\033[38;5;24m\]" -local S25="\[\033[38;5;25m\]" -local S26="\[\033[38;5;26m\]" -local S27="\[\033[38;5;27m\]" -local S28="\[\033[38;5;28m\]" -local SA9="\[\033[38;5;29m\]" -local S30="\[\033[38;5;30m\]" -local S31="\[\033[38;5;31m\]" -local S32="\[\033[38;5;32m\]" -local S33="\[\033[38;5;33m\]" -local S34="\[\033[38;5;34m\]" -local S35="\[\033[38;5;35m\]" -local S36="\[\033[38;5;36m\]" -local S37="\[\033[38;5;37m\]" -local S38="\[\033[38;5;38m\]" -local S38="\[\033[38;5;39m\]" -local S40="\[\033[38;5;40m\]" -local S41="\[\033[38;5;41m\]" -local S42="\[\033[38;5;42m\]" -local S43="\[\033[38;5;43m\]" -local S44="\[\033[38;5;44m\]" -local S45="\[\033[38;5;45m\]" -local S46="\[\033[38;5;46m\]" -local S47="\[\033[38;5;47m\]" -local S48="\[\033[38;5;48m\]" -local S49="\[\033[38;5;49m\]" -local S50="\[\033[38;5;50m\]" -local S51="\[\033[38;5;51m\]" -local S52="\[\033[38;5;52m\]" -local S53="\[\033[38;5;53m\]" -local S54="\[\033[38;5;54m\]" -local S55="\[\033[38;5;55m\]" -local S56="\[\033[38;5;56m\]" -local S57="\[\033[38;5;57m\]" -local S58="\[\033[38;5;58m\]" -local S59="\[\033[38;5;59m\]" -local S60="\[\033[38;5;60m\]" -local S61="\[\033[38;5;61m\]" -local S62="\[\033[38;5;62m\]" -local S63="\[\033[38;5;63m\]" -local S64="\[\033[38;5;64m\]" -local S65="\[\033[38;5;65m\]" -local S66="\[\033[38;5;66m\]" -local S67="\[\033[38;5;67m\]" -local S68="\[\033[38;5;68m\]" -local S69="\[\033[38;5;69m\]" -local S70="\[\033[38;5;70m\]" -local S71="\[\033[38;5;71m\]" -local S72="\[\033[38;5;72m\]" -local S73="\[\033[38;5;73m\]" -local S74="\[\033[38;5;74m\]" -local S75="\[\033[38;5;75m\]" -local S76="\[\033[38;5;76m\]" -local S77="\[\033[38;5;77m\]" -local S78="\[\033[38;5;78m\]" -local S79="\[\033[38;5;79m\]" -local S80="\[\033[38;5;80m\]" -local S81="\[\033[38;5;81m\]" -local S82="\[\033[38;5;82m\]" -local S83="\[\033[38;5;83m\]" -local S84="\[\033[38;5;84m\]" -local S85="\[\033[38;5;85m\]" -local S86="\[\033[38;5;86m\]" -local S87="\[\033[38;5;87m\]" -local S88="\[\033[38;5;88m\]" -local S89="\[\033[38;5;89m\]" -local S90="\[\033[38;5;90m\]" -local S91="\[\033[38;5;91m\]" -local S92="\[\033[38;5;92m\]" -local S93="\[\033[38;5;93m\]" -local S94="\[\033[38;5;94m\]" -local S95="\[\033[38;5;95m\]" -local S96="\[\033[38;5;96m\]" -local S97="\[\033[38;5;97m\]" -local S98="\[\033[38;5;98m\]" -local S99="\[\033[38;5;99m\]" -local S100="\[\033[38;5;100m\]" -local S101="\[\033[38;5;101m\]" -local S102="\[\033[38;5;102m\]" -local S103="\[\033[38;5;103m\]" -local S104="\[\033[38;5;104m\]" -local S105="\[\033[38;5;105m\]" -local S106="\[\033[38;5;106m\]" -local S107="\[\033[38;5;107m\]" -local S108="\[\033[38;5;108m\]" -local S109="\[\033[38;5;109m\]" -local S110="\[\033[38;5;110m\]" -local S111="\[\033[38;5;111m\]" -local S112="\[\033[38;5;112m\]" -local S113="\[\033[38;5;113m\]" -local S114="\[\033[38;5;114m\]" -local S115="\[\033[38;5;115m\]" -local S116="\[\033[38;5;116m\]" -local S117="\[\033[38;5;117m\]" -local S118="\[\033[38;5;118m\]" -local S119="\[\033[38;5;119m\]" -local S120="\[\033[38;5;120m\]" -local S121="\[\033[38;5;121m\]" -local S122="\[\033[38;5;122m\]" -local S123="\[\033[38;5;123m\]" -local S124="\[\033[38;5;124m\]" -local S125="\[\033[38;5;125m\]" -local S126="\[\033[38;5;126m\]" -local S127="\[\033[38;5;127m\]" -local S128="\[\033[38;5;128m\]" -local S129="\[\033[38;5;129m\]" -local S130="\[\033[38;5;130m\]" -local S131="\[\033[38;5;131m\]" -local S132="\[\033[38;5;132m\]" -local S133="\[\033[38;5;133m\]" -local S134="\[\033[38;5;134m\]" -local S135="\[\033[38;5;135m\]" -local S136="\[\033[38;5;136m\]" -local S137="\[\033[38;5;137m\]" -local S138="\[\033[38;5;138m\]" -local S139="\[\033[38;5;139m\]" -local S140="\[\033[38;5;140m\]" -local S141="\[\033[38;5;141m\]" -local S142="\[\033[38;5;142m\]" -local S143="\[\033[38;5;143m\]" -local S144="\[\033[38;5;144m\]" -local S145="\[\033[38;5;145m\]" -local S146="\[\033[38;5;146m\]" -local S147="\[\033[38;5;147m\]" -local S148="\[\033[38;5;148m\]" -local S149="\[\033[38;5;149m\]" -local S150="\[\033[38;5;150m\]" -local S151="\[\033[38;5;151m\]" -local S152="\[\033[38;5;152m\]" -local S153="\[\033[38;5;153m\]" -local S154="\[\033[38;5;154m\]" -local S155="\[\033[38;5;155m\]" -local S156="\[\033[38;5;156m\]" -local S157="\[\033[38;5;157m\]" -local S158="\[\033[38;5;158m\]" -local S159="\[\033[38;5;159m\]" -local S160="\[\033[38;5;160m\]" -local S161="\[\033[38;5;161m\]" -local S162="\[\033[38;5;162m\]" -local S163="\[\033[38;5;163m\]" -local S164="\[\033[38;5;164m\]" -local S165="\[\033[38;5;165m\]" -local S166="\[\033[38;5;166m\]" -local S167="\[\033[38;5;167m\]" -local S168="\[\033[38;5;168m\]" -local S169="\[\033[38;5;169m\]" -local S170="\[\033[38;5;170m\]" -local S171="\[\033[38;5;171m\]" -local S172="\[\033[38;5;172m\]" -local S173="\[\033[38;5;173m\]" -local S174="\[\033[38;5;174m\]" -local S175="\[\033[38;5;175m\]" -local S176="\[\033[38;5;176m\]" -local S177="\[\033[38;5;177m\]" -local S178="\[\033[38;5;178m\]" -local S179="\[\033[38;5;179m\]" -local S180="\[\033[38;5;180m\]" -local S181="\[\033[38;5;181m\]" -local S182="\[\033[38;5;182m\]" -local S183="\[\033[38;5;183m\]" -local S184="\[\033[38;5;184m\]" -local S185="\[\033[38;5;185m\]" -local S186="\[\033[38;5;186m\]" -local S187="\[\033[38;5;187m\]" -local S188="\[\033[38;5;188m\]" -local S189="\[\033[38;5;189m\]" -local S190="\[\033[38;5;190m\]" -local S191="\[\033[38;5;191m\]" -local S192="\[\033[38;5;192m\]" -local S193="\[\033[38;5;193m\]" -local S194="\[\033[38;5;194m\]" -local S195="\[\033[38;5;195m\]" -local S196="\[\033[38;5;196m\]" -local S197="\[\033[38;5;197m\]" -local S198="\[\033[38;5;198m\]" -local S199="\[\033[38;5;199m\]" -local S200="\[\033[38;5;200m\]" -local S201="\[\033[38;5;201m\]" -local S202="\[\033[38;5;202m\]" -local S203="\[\033[38;5;203m\]" -local S204="\[\033[38;5;204m\]" -local S205="\[\033[38;5;205m\]" -local S206="\[\033[38;5;206m\]" -local S207="\[\033[38;5;207m\]" -local S208="\[\033[38;5;208m\]" -local S209="\[\033[38;5;209m\]" -local S210="\[\033[38;5;210m\]" -local S211="\[\033[38;5;211m\]" -local S212="\[\033[38;5;212m\]" -local S213="\[\033[38;5;213m\]" -local S214="\[\033[38;5;214m\]" -local S215="\[\033[38;5;215m\]" -local S216="\[\033[38;5;216m\]" -local S217="\[\033[38;5;217m\]" -local S218="\[\033[38;5;218m\]" -local S219="\[\033[38;5;219m\]" -local S220="\[\033[38;5;220m\]" -local S221="\[\033[38;5;221m\]" -local S222="\[\033[38;5;222m\]" -local S223="\[\033[38;5;223m\]" -local S224="\[\033[38;5;224m\]" -local S225="\[\033[38;5;225m\]" -local S226="\[\033[38;5;226m\]" -local S227="\[\033[38;5;227m\]" -local S228="\[\033[38;5;228m\]" -local S229="\[\033[38;5;229m\]" -local S230="\[\033[38;5;230m\]" -local S231="\[\033[38;5;231m\]" -local S232="\[\033[38;5;232m\]" -local S233="\[\033[38;5;233m\]" -local S234="\[\033[38;5;234m\]" -local S235="\[\033[38;5;235m\]" -local S236="\[\033[38;5;236m\]" -local S237="\[\033[38;5;237m\]" -local S238="\[\033[38;5;238m\]" -local S239="\[\033[38;5;239m\]" -local S240="\[\033[38;5;240m\]" -local S241="\[\033[38;5;241m\]" -local S242="\[\033[38;5;242m\]" -local S243="\[\033[38;5;243m\]" -local S244="\[\033[38;5;244m\]" -local S245="\[\033[38;5;245m\]" -local S246="\[\033[38;5;246m\]" -local S247="\[\033[38;5;247m\]" -local S248="\[\033[38;5;248m\]" -local S249="\[\033[38;5;249m\]" -local S250="\[\033[38;5;250m\]" -local S251="\[\033[38;5;251m\]" -local S252="\[\033[38;5;252m\]" -local S253="\[\033[38;5;253m\]" -local S254="\[\033[38;5;254m\]" -local S255="\[\033[38;5;255m\]" -local S256="\[\033[38;5;256m\]" - -# background -local BG1="\[\033[48;5;1m\]" -local BG2="\[\033[48;5;2m\]" -local BG3="\[\033[48;5;3m\]" -local BG4="\[\033[48;5;4m\]" -local BG5="\[\033[48;5;5m\]" -local BG6="\[\033[48;5;6m\]" -local BG7="\[\033[48;5;7m\]" -local BG8="\[\033[48;5;8m\]" -local BG9="\[\033[48;5;9m\]" -local BG10="\[\033[48;5;10m\]" -local BG11="\[\033[48;5;11m\]" -local BG12="\[\033[48;5;12m\]" -local BG13="\[\033[48;5;13m\]" -local BG14="\[\033[48;5;14m\]" -local BG15="\[\033[48;5;15m\]" -local BG16="\[\033[48;5;16m\]" -local BG17="\[\033[48;5;17m\]" -local BG18="\[\033[48;5;18m\]" -local BG19="\[\033[48;5;19m\]" -local BG20="\[\033[48;5;20m\]" -local BG21="\[\033[48;5;21m\]" -local BG22="\[\033[48;5;22m\]" -local BG23="\[\033[48;5;23m\]" -local BG24="\[\033[48;5;24m\]" -local BG25="\[\033[48;5;25m\]" -local BG26="\[\033[48;5;26m\]" -local BG27="\[\033[48;5;27m\]" -local BG28="\[\033[48;5;28m\]" -local BGA9="\[\033[48;5;29m\]" -local BG30="\[\033[48;5;30m\]" -local BG31="\[\033[48;5;31m\]" -local BG32="\[\033[48;5;32m\]" -local BG33="\[\033[48;5;33m\]" -local BG34="\[\033[48;5;34m\]" -local BG35="\[\033[48;5;35m\]" -local BG36="\[\033[48;5;36m\]" -local BG37="\[\033[48;5;37m\]" -local BG38="\[\033[48;5;38m\]" -local BG38="\[\033[48;5;39m\]" -local BG40="\[\033[48;5;40m\]" -local BG41="\[\033[48;5;41m\]" -local BG42="\[\033[48;5;42m\]" -local BG43="\[\033[48;5;43m\]" -local BG44="\[\033[48;5;44m\]" -local BG45="\[\033[48;5;45m\]" -local BG46="\[\033[48;5;46m\]" -local BG47="\[\033[48;5;47m\]" -local BG48="\[\033[48;5;48m\]" -local BG49="\[\033[48;5;49m\]" -local BG50="\[\033[48;5;50m\]" -local BG51="\[\033[48;5;51m\]" -local BG52="\[\033[48;5;52m\]" -local BG53="\[\033[48;5;53m\]" -local BG54="\[\033[48;5;54m\]" -local BG55="\[\033[48;5;55m\]" -local BG56="\[\033[48;5;56m\]" -local BG57="\[\033[48;5;57m\]" -local BG58="\[\033[48;5;58m\]" -local BG59="\[\033[48;5;59m\]" -local BG60="\[\033[48;5;60m\]" -local BG61="\[\033[48;5;61m\]" -local BG62="\[\033[48;5;62m\]" -local BG63="\[\033[48;5;63m\]" -local BG64="\[\033[48;5;64m\]" -local BG65="\[\033[48;5;65m\]" -local BG66="\[\033[48;5;66m\]" -local BG67="\[\033[48;5;67m\]" -local BG68="\[\033[48;5;68m\]" -local BG69="\[\033[48;5;69m\]" -local BG70="\[\033[48;5;70m\]" -local BG71="\[\033[48;5;71m\]" -local BG72="\[\033[48;5;72m\]" -local BG73="\[\033[48;5;73m\]" -local BG74="\[\033[48;5;74m\]" -local BG75="\[\033[48;5;75m\]" -local BG76="\[\033[48;5;76m\]" -local BG77="\[\033[48;5;77m\]" -local BG78="\[\033[48;5;78m\]" -local BG79="\[\033[48;5;79m\]" -local BG80="\[\033[48;5;80m\]" -local BG81="\[\033[48;5;81m\]" -local BG82="\[\033[48;5;82m\]" -local BG83="\[\033[48;5;83m\]" -local BG84="\[\033[48;5;84m\]" -local BG85="\[\033[48;5;85m\]" -local BG86="\[\033[48;5;86m\]" -local BG87="\[\033[48;5;87m\]" -local BG88="\[\033[48;5;88m\]" -local BG89="\[\033[48;5;89m\]" -local BG90="\[\033[48;5;90m\]" -local BG91="\[\033[48;5;91m\]" -local BG92="\[\033[48;5;92m\]" -local BG93="\[\033[48;5;93m\]" -local BG94="\[\033[48;5;94m\]" -local BG95="\[\033[48;5;95m\]" -local BG96="\[\033[48;5;96m\]" -local BG97="\[\033[48;5;97m\]" -local BG98="\[\033[48;5;98m\]" -local BG99="\[\033[48;5;99m\]" -local BG100="\[\033[48;5;100m\]" -local BG101="\[\033[48;5;101m\]" -local BG102="\[\033[48;5;102m\]" -local BG103="\[\033[48;5;103m\]" -local BG104="\[\033[48;5;104m\]" -local BG105="\[\033[48;5;105m\]" -local BG106="\[\033[48;5;106m\]" -local BG107="\[\033[48;5;107m\]" -local BG108="\[\033[48;5;108m\]" -local BG109="\[\033[48;5;109m\]" -local BG110="\[\033[48;5;110m\]" -local BG111="\[\033[48;5;111m\]" -local BG112="\[\033[48;5;112m\]" -local BG113="\[\033[48;5;113m\]" -local BG114="\[\033[48;5;114m\]" -local BG115="\[\033[48;5;115m\]" -local BG116="\[\033[48;5;116m\]" -local BG117="\[\033[48;5;117m\]" -local BG118="\[\033[48;5;118m\]" -local BG119="\[\033[48;5;119m\]" -local BG120="\[\033[48;5;120m\]" -local BG121="\[\033[48;5;121m\]" -local BG122="\[\033[48;5;122m\]" -local BG123="\[\033[48;5;123m\]" -local BG124="\[\033[48;5;124m\]" -local BG125="\[\033[48;5;125m\]" -local BG126="\[\033[48;5;126m\]" -local BG127="\[\033[48;5;127m\]" -local BG128="\[\033[48;5;128m\]" -local BG129="\[\033[48;5;129m\]" -local BG130="\[\033[48;5;130m\]" -local BG131="\[\033[48;5;131m\]" -local BG132="\[\033[48;5;132m\]" -local BG133="\[\033[48;5;133m\]" -local BG134="\[\033[48;5;134m\]" -local BG135="\[\033[48;5;135m\]" -local BG136="\[\033[48;5;136m\]" -local BG137="\[\033[48;5;137m\]" -local BG138="\[\033[48;5;138m\]" -local BG139="\[\033[48;5;139m\]" -local BG140="\[\033[48;5;140m\]" -local BG141="\[\033[48;5;141m\]" -local BG142="\[\033[48;5;142m\]" -local BG143="\[\033[48;5;143m\]" -local BG144="\[\033[48;5;144m\]" -local BG145="\[\033[48;5;145m\]" -local BG146="\[\033[48;5;146m\]" -local BG147="\[\033[48;5;147m\]" -local BG148="\[\033[48;5;148m\]" -local BG149="\[\033[48;5;149m\]" -local BG150="\[\033[48;5;150m\]" -local BG151="\[\033[48;5;151m\]" -local BG152="\[\033[48;5;152m\]" -local BG153="\[\033[48;5;153m\]" -local BG154="\[\033[48;5;154m\]" -local BG155="\[\033[48;5;155m\]" -local BG156="\[\033[48;5;156m\]" -local BG157="\[\033[48;5;157m\]" -local BG158="\[\033[48;5;158m\]" -local BG159="\[\033[48;5;159m\]" -local BG160="\[\033[48;5;160m\]" -local BG161="\[\033[48;5;161m\]" -local BG162="\[\033[48;5;162m\]" -local BG163="\[\033[48;5;163m\]" -local BG164="\[\033[48;5;164m\]" -local BG165="\[\033[48;5;165m\]" -local BG166="\[\033[48;5;166m\]" -local BG167="\[\033[48;5;167m\]" -local BG168="\[\033[48;5;168m\]" -local BG169="\[\033[48;5;169m\]" -local BG170="\[\033[48;5;170m\]" -local BG171="\[\033[48;5;171m\]" -local BG172="\[\033[48;5;172m\]" -local BG173="\[\033[48;5;173m\]" -local BG174="\[\033[48;5;174m\]" -local BG175="\[\033[48;5;175m\]" -local BG176="\[\033[48;5;176m\]" -local BG177="\[\033[48;5;177m\]" -local BG178="\[\033[48;5;178m\]" -local BG179="\[\033[48;5;179m\]" -local BG180="\[\033[48;5;180m\]" -local BG181="\[\033[48;5;181m\]" -local BG182="\[\033[48;5;182m\]" -local BG183="\[\033[48;5;183m\]" -local BG184="\[\033[48;5;184m\]" -local BG185="\[\033[48;5;185m\]" -local BG186="\[\033[48;5;186m\]" -local BG187="\[\033[48;5;187m\]" -local BG188="\[\033[48;5;188m\]" -local BG189="\[\033[48;5;189m\]" -local BG190="\[\033[48;5;190m\]" -local BG191="\[\033[48;5;191m\]" -local BG192="\[\033[48;5;192m\]" -local BG193="\[\033[48;5;193m\]" -local BG194="\[\033[48;5;194m\]" -local BG195="\[\033[48;5;195m\]" -local BG196="\[\033[48;5;196m\]" -local BG197="\[\033[48;5;197m\]" -local BG198="\[\033[48;5;198m\]" -local BG199="\[\033[48;5;199m\]" -local BG200="\[\033[48;5;200m\]" -local BG201="\[\033[48;5;201m\]" -local BG202="\[\033[48;5;202m\]" -local BG203="\[\033[48;5;203m\]" -local BG204="\[\033[48;5;204m\]" -local BG205="\[\033[48;5;205m\]" -local BG206="\[\033[48;5;206m\]" -local BG207="\[\033[48;5;207m\]" -local BG208="\[\033[48;5;208m\]" -local BG209="\[\033[48;5;209m\]" -local BG210="\[\033[48;5;210m\]" -local BG211="\[\033[48;5;211m\]" -local BG212="\[\033[48;5;212m\]" -local BG213="\[\033[48;5;213m\]" -local BG214="\[\033[48;5;214m\]" -local BG215="\[\033[48;5;215m\]" -local BG216="\[\033[48;5;216m\]" -local BG217="\[\033[48;5;217m\]" -local BG218="\[\033[48;5;218m\]" -local BG219="\[\033[48;5;219m\]" -local BG220="\[\033[48;5;220m\]" -local BG221="\[\033[48;5;221m\]" -local BG222="\[\033[48;5;222m\]" -local BG223="\[\033[48;5;223m\]" -local BG224="\[\033[48;5;224m\]" -local BG225="\[\033[48;5;225m\]" -local BG226="\[\033[48;5;226m\]" -local BG227="\[\033[48;5;227m\]" -local BG228="\[\033[48;5;228m\]" -local BG229="\[\033[48;5;229m\]" -local BG230="\[\033[48;5;230m\]" -local BG231="\[\033[48;5;231m\]" -local BG232="\[\033[48;5;232m\]" -local BG233="\[\033[48;5;233m\]" -local BG234="\[\033[48;5;234m\]" -local BG235="\[\033[48;5;235m\]" -local BG236="\[\033[48;5;236m\]" -local BG237="\[\033[48;5;237m\]" -local BG238="\[\033[48;5;238m\]" -local BG239="\[\033[48;5;239m\]" -local BG240="\[\033[48;5;240m\]" -local BG241="\[\033[48;5;241m\]" -local BG242="\[\033[48;5;242m\]" -local BG243="\[\033[48;5;243m\]" -local BG244="\[\033[48;5;244m\]" -local BG245="\[\033[48;5;245m\]" -local BG246="\[\033[48;5;246m\]" -local BG247="\[\033[48;5;247m\]" -local BG248="\[\033[48;5;248m\]" -local BG249="\[\033[48;5;249m\]" -local BG250="\[\033[48;5;250m\]" -local BG251="\[\033[48;5;251m\]" -local BG252="\[\033[48;5;252m\]" -local BG253="\[\033[48;5;253m\]" -local BG254="\[\033[48;5;254m\]" -local BG255="\[\033[48;5;255m\]" -local BG256="\[\033[48;5;256m\]" diff --git a/common/git/.gitconfig b/common/git/.gitconfig index 09473cf..ae84f35 100644 --- a/common/git/.gitconfig +++ b/common/git/.gitconfig @@ -74,4 +74,4 @@ else \ git log --oneline; \ fi; \ - }; f" \ No newline at end of file + }; f" diff --git a/common/git/.gitignore_global b/common/git/.gitignore_global index 1e58af4..66d62f8 100644 --- a/common/git/.gitignore_global +++ b/common/git/.gitignore_global @@ -1 +1 @@ -**/.claude/settings.local.json \ No newline at end of file +**/.claude/settings.local.json diff --git a/common/shell-functions/README.md b/common/shell-functions/README.md index a925174..dc04ac2 100644 --- a/common/shell-functions/README.md +++ b/common/shell-functions/README.md @@ -95,4 +95,4 @@ kctx # Switch context with fzf sshdot user@host # SSH with dotfiles auto-install ``` -Everything is backward compatible and your existing workflow stays the same! \ No newline at end of file +Everything is backward compatible and your existing workflow stays the same! diff --git a/common/shell-functions/docker-aliases.sh b/common/shell-functions/docker-aliases.sh index 4d2a9dd..476ec01 100644 --- a/common/shell-functions/docker-aliases.sh +++ b/common/shell-functions/docker-aliases.sh @@ -1,4 +1,4 @@ #!/bin/bash # Docker aliases (disabled) -# Docker functionality disabled to avoid conflicts \ No newline at end of file +# Docker functionality disabled to avoid conflicts diff --git a/common/shell-functions/docker.sh b/common/shell-functions/docker.sh index fbedf40..d24d510 100644 --- a/common/shell-functions/docker.sh +++ b/common/shell-functions/docker.sh @@ -1,4 +1,4 @@ #!/bin/bash # Docker functions (disabled) -# Docker functionality disabled to avoid conflicts \ No newline at end of file +# Docker functionality disabled to avoid conflicts diff --git a/common/shell-functions/fuzzy-vim.sh b/common/shell-functions/fuzzy-vim.sh index d7dbb44..28189c8 100644 --- a/common/shell-functions/fuzzy-vim.sh +++ b/common/shell-functions/fuzzy-vim.sh @@ -1,4 +1,4 @@ #!/bin/bash # Fuzzy vim (disabled) -# Fuzzy vim functionality disabled - keeping minimal setup \ No newline at end of file +# Fuzzy vim functionality disabled - keeping minimal setup diff --git a/common/shell-functions/git-aliases.sh b/common/shell-functions/git-aliases.sh index c183876..fa32188 100644 --- a/common/shell-functions/git-aliases.sh +++ b/common/shell-functions/git-aliases.sh @@ -1,4 +1,4 @@ #!/bin/bash # Git aliases (disabled) -# Git functionality disabled - keeping minimal setup \ No newline at end of file +# Git functionality disabled - keeping minimal setup diff --git a/common/shell-functions/git.sh b/common/shell-functions/git.sh index 610327c..9068f52 100644 --- a/common/shell-functions/git.sh +++ b/common/shell-functions/git.sh @@ -1,4 +1,4 @@ #!/bin/bash # Git functions (disabled) -# Git functionality disabled - keeping minimal setup \ No newline at end of file +# Git functionality disabled - keeping minimal setup diff --git a/common/shell-functions/k8s.sh b/common/shell-functions/k8s.sh index 6d9a688..874f666 100644 --- a/common/shell-functions/k8s.sh +++ b/common/shell-functions/k8s.sh @@ -1,4 +1,4 @@ #!/bin/bash # K8s functions (disabled) -# K8s functionality disabled - keeping minimal setup \ No newline at end of file +# K8s functionality disabled - keeping minimal setup diff --git a/common/shell-functions/kubectl-aliases.sh b/common/shell-functions/kubectl-aliases.sh index 6d23b2f..6fd5aa2 100644 --- a/common/shell-functions/kubectl-aliases.sh +++ b/common/shell-functions/kubectl-aliases.sh @@ -7,4 +7,4 @@ if ! command -v kubectl >/dev/null 2>&1; then fi # Core kubectl alias -alias k='kubectl' \ No newline at end of file +alias k='kubectl' diff --git a/common/shell-functions/modern-tools-aliases.sh b/common/shell-functions/modern-tools-aliases.sh index 31a3da7..743fb1c 100644 --- a/common/shell-functions/modern-tools-aliases.sh +++ b/common/shell-functions/modern-tools-aliases.sh @@ -1,4 +1,4 @@ #!/bin/bash # Modern tools aliases (disabled) -# Modern tools functionality disabled - keeping minimal setup \ No newline at end of file +# Modern tools functionality disabled - keeping minimal setup diff --git a/common/shell-functions/secrets.sh b/common/shell-functions/secrets.sh index 197fcf9..d1e3729 100644 --- a/common/shell-functions/secrets.sh +++ b/common/shell-functions/secrets.sh @@ -1,4 +1,4 @@ #!/bin/bash # Secrets functions (disabled) -# Secrets functionality disabled - keeping minimal setup \ No newline at end of file +# Secrets functionality disabled - keeping minimal setup diff --git a/common/shell-functions/ssh.sh b/common/shell-functions/ssh.sh index 87921f0..3c6d151 100644 --- a/common/shell-functions/ssh.sh +++ b/common/shell-functions/ssh.sh @@ -1,4 +1,4 @@ #!/bin/bash # SSH functions (disabled) -# SSH functionality disabled - keeping minimal setup \ No newline at end of file +# SSH functionality disabled - keeping minimal setup diff --git a/common/shell-functions/sudo.sh b/common/shell-functions/sudo.sh new file mode 100644 index 0000000..a0c89af --- /dev/null +++ b/common/shell-functions/sudo.sh @@ -0,0 +1,3 @@ +#!/bin/bash +# Sudo askpass for GUI password prompts (used by Claude CLI, etc.) +export SUDO_ASKPASS="$HOME/workspace/dotfiles/scripts/sudo-askpass.sh" diff --git a/common/shell-functions/system-aliases.sh b/common/shell-functions/system-aliases.sh index e30d848..779e2c7 100644 --- a/common/shell-functions/system-aliases.sh +++ b/common/shell-functions/system-aliases.sh @@ -1,4 +1,4 @@ #!/bin/bash # System aliases (disabled) -# System functionality disabled - keeping minimal setup \ No newline at end of file +# System functionality disabled - keeping minimal setup diff --git a/common/shell-functions/utils.sh b/common/shell-functions/utils.sh index a7fafb9..71ee591 100644 --- a/common/shell-functions/utils.sh +++ b/common/shell-functions/utils.sh @@ -1,4 +1,4 @@ #!/bin/bash # Utils functions (disabled) -# Utils functionality disabled - keeping minimal setup \ No newline at end of file +# Utils functionality disabled - keeping minimal setup diff --git a/common/shell/.bashrc b/common/shell/.bashrc index a16f740..2f8e062 100644 --- a/common/shell/.bashrc +++ b/common/shell/.bashrc @@ -80,8 +80,7 @@ pretty_pwd() { echo "💻" ;; *) - # For bash, use \w for relative path - echo "\w" + echo "${PWD/#$HOME/~}" ;; esac } @@ -109,7 +108,7 @@ build_prompt() { local GIT_INFO=$(parse_git_branch) # Note: In bash, we need to escape the $ in the function call PS1="⭐ ${MAUVE}[${ROSEWATER}\u${MAUVE}@${TEAL}\$(pretty_pwd)${MAUVE}]${PEACH}${GIT_INFO}${RESET} ➔ " - + # Optional: Add time to right side of prompt (requires special handling in bash) # For simpler setup, we'll skip the right prompt } @@ -142,11 +141,19 @@ if [ -d ~/.config/shell-functions ]; then done fi -# Add local bin to PATH if exists -[ -d "$HOME/bin" ] && PATH="$HOME/bin:$PATH" -[ -d "$HOME/.local/bin" ] && PATH="$HOME/.local/bin:$PATH" +# PATH helper - prevents duplicates +path_prepend() { + local dir + for dir in "$@"; do + [[ -d "$dir" ]] || continue + case ":$PATH:" in + *":$dir:"*) ;; + *) PATH="$dir:$PATH" ;; + esac + done +} -# Export PATH +path_prepend "/usr/local/bin" "/usr/local/sbin" "$HOME/bin" "$HOME/.local/bin" "$HOME/.cargo/bin" export PATH # Enable color support for ls and grep @@ -171,11 +178,28 @@ alias mv='mv -i' # Make less more friendly for non-text input files [ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)" -# Source shell functions -for func in ~/.config/shell-functions/*.sh; do - [ -r "$func" ] && source "$func" -done +# mise (version manager for Python, Node, etc.) +if command -v mise >/dev/null 2>&1; then + eval "$(mise activate bash)" +fi + +# kubectl context switcher with fzf +kctx() { + local selected + selected=$(kubectl config get-contexts -o name | \ + fzf --prompt="Select context > " \ + --height=40% \ + --layout=reverse \ + --border \ + --ansi) + + if [[ -n "$selected" ]]; then + kubectl config use-context "$selected" + else + echo "No context selected." + fi +} # Source local secrets (if exists) [ -f ~/.env.secrets ] && source ~/.env.secrets -. "$HOME/.local/bin/env" +[ -f "$HOME/.local/bin/env" ] && . "$HOME/.local/bin/env" diff --git a/common/shell/.bashrc.server b/common/shell/.bashrc.server index c531fda..7056381 100644 --- a/common/shell/.bashrc.server +++ b/common/shell/.bashrc.server @@ -110,4 +110,4 @@ if ! shopt -oq posix; then elif [ -f /etc/bash_completion ]; then . /etc/bash_completion fi -fi \ No newline at end of file +fi diff --git a/common/shell/.dircolors b/common/shell/.dircolors index a20008b..ca467d1 100644 --- a/common/shell/.dircolors +++ b/common/shell/.dircolors @@ -29,4 +29,4 @@ or 38;5;204 # orphaned symlink = red *.json 38;5;229 # JSON = yellow # Special cases -Makefile 38;5;216 \ No newline at end of file +Makefile 38;5;216 diff --git a/common/shell/.zshrc b/common/shell/.zshrc index 6f5f34d..9cfe932 100644 --- a/common/shell/.zshrc +++ b/common/shell/.zshrc @@ -8,7 +8,7 @@ setopt prompt_subst # Git branch info setup autoload -Uz vcs_info -precmd() { +precmd() { vcs_info # Set tab title to show current directory (last 2 path components) print -Pn "\e]0;%2~\a" @@ -39,7 +39,7 @@ function kube_prompt() { echo "(k8s:$context)" fi } - + function pretty_git() { # Don't forget the space at the end of the echo [[ -n "${vcs_info_msg_0_}" ]] && echo "${vcs_info_msg_0_} " @@ -131,12 +131,9 @@ path_prepend() { path_prepend "/usr/local/bin" "/usr/local/sbin" "$HOME/bin" "$HOME/.cargo/bin" -if [[ -d "$HOME/.pyenv" ]]; then - export PYENV_ROOT="$HOME/.pyenv" - path_prepend "$PYENV_ROOT/bin" - if command -v pyenv >/dev/null 2>&1; then - eval "$(pyenv init -)" - fi +# mise (version manager for Python, Node, etc.) +if command -v mise >/dev/null 2>&1; then + eval "$(mise activate zsh)" fi [[ -r "$HOME/.gnu_aliases" ]] && source "$HOME/.gnu_aliases" @@ -177,4 +174,4 @@ function kctx() { [[ -f ~/.env.secrets ]] && source ~/.env.secrets export PATH="/opt/homebrew/bin:$PATH" -. "$HOME/.local/bin/env" +[[ -f "$HOME/.local/bin/env" ]] && . "$HOME/.local/bin/env" diff --git a/common/themes/custom-purple.conf b/common/themes/custom-purple.conf new file mode 100644 index 0000000..d84e71e --- /dev/null +++ b/common/themes/custom-purple.conf @@ -0,0 +1,77 @@ +# vim:ft=kitty + +## name: Custom Purple (Sway Desktop Match) +## author: local +## blurb: Warm purple/burgundy theme matching Sway, Waybar, Rofi, and Mako + + +# The basic colors +foreground #d0d0d0 +background #221820 +selection_foreground #221820 +selection_background #9d5a7f + +# Cursor colors +cursor #d0d0d0 +cursor_text_color #221820 + +# URL underline color when hovering with mouse +url_color #9d5a7f + +# Kitty window border colors +active_border_color #9d5a7f +inactive_border_color #4a3844 +bell_border_color #d68787 + +# OS Window titlebar colors +wayland_titlebar_color system +macos_titlebar_color system + +# Tab bar colors +active_tab_foreground #221820 +active_tab_background #9d5a7f +inactive_tab_foreground #d0d0d0 +inactive_tab_background #2a1f27 +tab_bar_background #1a1218 + +# Colors for marks (marked text in the terminal) +mark1_foreground #221820 +mark1_background #9d5a7f +mark2_foreground #221820 +mark2_background #6b4456 +mark3_foreground #221820 +mark3_background #87b8a8 + +# The 16 terminal colors + +# black +color0 #2a1f27 +color8 #4a3844 + +# red +color1 #d68787 +color9 #e09898 + +# green +color2 #a3be8c +color10 #b5d4a1 + +# yellow +color3 #d4a373 +color11 #e0b98a + +# blue +color4 #8a9fc5 +color12 #a0b3d4 + +# magenta +color5 #9d5a7f +color13 #b87a9d + +# cyan +color6 #87b8a8 +color14 #a0ccbb + +# white +color7 #d0d0d0 +color15 #e8e8e8 diff --git a/config/current-theme.conf b/config/current-theme.conf deleted file mode 100644 index 2533db7..0000000 --- a/config/current-theme.conf +++ /dev/null @@ -1,80 +0,0 @@ -# vim:ft=kitty - -## name: Catppuccin-Mocha -## author: Pocco81 (https://github.com/Pocco81) -## license: MIT -## upstream: https://github.com/catppuccin/kitty/blob/main/mocha.conf -## blurb: Soothing pastel theme for the high-spirited! - - - -# The basic colors -foreground #CDD6F4 -background #1E1E2E -selection_foreground #1E1E2E -selection_background #F5E0DC - -# Cursor colors -cursor #F5E0DC -cursor_text_color #1E1E2E - -# URL underline color when hovering with mouse -url_color #F5E0DC - -# Kitty window border colors -active_border_color #B4BEFE -inactive_border_color #6C7086 -bell_border_color #F9E2AF - -# OS Window titlebar colors -wayland_titlebar_color system -macos_titlebar_color system - -# Tab bar colors -active_tab_foreground #11111B -active_tab_background #CBA6F7 -inactive_tab_foreground #CDD6F4 -inactive_tab_background #181825 -tab_bar_background #11111B - -# Colors for marks (marked text in the terminal) -mark1_foreground #1E1E2E -mark1_background #B4BEFE -mark2_foreground #1E1E2E -mark2_background #CBA6F7 -mark3_foreground #1E1E2E -mark3_background #74C7EC - -# The 16 terminal colors - -# black -color0 #45475A -color8 #585B70 - -# red -color1 #F38BA8 -color9 #F38BA8 - -# green -color2 #A6E3A1 -color10 #A6E3A1 - -# yellow -color3 #F9E2AF -color11 #F9E2AF - -# blue -color4 #89B4FA -color12 #89B4FA - -# magenta -color5 #F5C2E7 -color13 #F5C2E7 - -# cyan -color6 #94E2D5 -color14 #94E2D5 - -# white -color7 #BAC2DE -color15 #A6ADC8 diff --git a/config/htop/htoprc b/config/htop/htoprc deleted file mode 100644 index 7a663a2..0000000 --- a/config/htop/htoprc +++ /dev/null @@ -1,57 +0,0 @@ -# Beware! This file is rewritten by htop when settings are changed in the interface. -# The parser is also very primitive, and not human-friendly. -htop_version=3.4.1 -config_reader_min_version=3 -fields=0 48 17 18 38 39 2 46 47 49 1 -hide_kernel_threads=1 -hide_userland_threads=0 -hide_running_in_container=0 -shadow_other_users=0 -show_thread_names=0 -show_program_path=1 -highlight_base_name=0 -highlight_deleted_exe=1 -shadow_distribution_path_prefix=0 -highlight_megabytes=1 -highlight_threads=1 -highlight_changes=0 -highlight_changes_delay_secs=5 -find_comm_in_cmdline=1 -strip_exe_from_cmdline=1 -header_layout=two_50_50 -header_margin=1 -screen_tabs=1 -detailed_cpu_time=0 -cpu_count_from_one=0 -update_process_names=0 -account_guest_in_cpu_meter=0 -color_scheme=0 -enable_mouse=1 -delay=15 -hide_function_bar=0 -header_text=0 -left_meters=AllCPUs Memory Swap -left_meter_modes=1 1 1 -right_meters=Tasks LoadAverage Uptime -right_meter_modes=2 2 2 -tree_sort_key=0 -tree_sort_direction=1 -tree_view=0 -tree_view_always_by_pid=0 -all_branches_collapsed=0 -screen:Main=PID USER PRIORITY NICE M_VIRT M_RESIDENT M_SHARE STATE PERCENT_CPU PERCENT_MEM TIME Command -.sort_key=PERCENT_CPU -.tree_sort_key=PID -.tree_view=0 -.tree_view_always_by_pid=0 -.sort_direction=1 -.tree_sort_direction=1 -.all_branches_collapsed=0 -screen:I/O=PID USER IO_PRIORITY IO_RATE IO_READ_RATE IO_WRITE_RATE PERCENT_SWAP_DELAY PERCENT_IO_DELAY Command -.sort_key=IO_RATE -.tree_sort_key=PID -.tree_view=0 -.tree_view_always_by_pid=0 -.sort_direction=-1 -.tree_sort_direction=1 -.all_branches_collapsed=0 \ No newline at end of file diff --git a/config/kitty.conf b/config/kitty.conf deleted file mode 100644 index 0210e11..0000000 --- a/config/kitty.conf +++ /dev/null @@ -1,52 +0,0 @@ -# vim:fileencoding=utf-8 -# macOS-specific Kitty configuration - -# BEGIN_KITTY_THEME -include current-theme.conf -# END_KITTY_THEME - -font_family FiraCode Nerd Font -font_size 12.5 -macos_option_as_alt left -shell_integration disabled - -cursor_shape beam -cursor_blink_interval 0.6 ease-in-out -background_opacity 0.95 -enable_audio_bell no - -# Scrollback -scrollback_lines 5000 - -# Performance -sync_to_monitor yes -repaint_delay 5 - -# Clipboard -copy_on_select clipboard - -# Terminal title -window_alert_on_bell yes -tab_bar_edge bottom -tab_bar_style powerline -active_tab_font_style bold -inactive_tab_font_style normal -tab_switch_strategy previous - -# macOS Keyboard shortcuts (cmd+) -map cmd+q quit -map cmd+n new_os_window -map cmd+enter new_window -map cmd+t new_tab -map cmd+w close_tab -map cmd+arrow_right next_tab -map cmd+arrow_left previous_tab -map cmd+plus change_font_size all +1.0 -map cmd+minus change_font_size all -1.0 -map cmd+0 change_font_size all 0 -map cmd+f toggle_fullscreen -map cmd+ctrl+l clear_terminal to_cursor_scroll active - -# Word navigation with Option+Arrow keys -map alt+left send_text all \x1b\x62 -map alt+right send_text all \x1b\x66 diff --git a/config/kitty.conf.bak b/config/kitty.conf.bak deleted file mode 100644 index e9b5ddd..0000000 --- a/config/kitty.conf.bak +++ /dev/null @@ -1,2718 +0,0 @@ -# vim:fileencoding=utf-8:foldmethod=marker - -# BEGIN_KITTY_THEME -# Catppuccin-Frappe -include current-theme.conf -# END_KITTY_THEME - -#: Fonts {{{ - -#: kitty has very powerful font management. You can configure -#: individual font faces and even specify special fonts for particular -#: characters. - -# font_family monospace -# bold_font auto -# italic_font auto -# bold_italic_font auto - -#: You can specify different fonts for the bold/italic/bold-italic -#: variants. The easiest way to select fonts is to run the `kitten -#: choose-fonts` command which will present a nice UI for you to -#: select the fonts you want with previews and support for selecting -#: variable fonts and font features. If you want to learn to select -#: fonts manually, read the font specification syntax -#: . - -# font_size 11.0 - -#: Font size (in pts). - -# force_ltr no - -#: kitty does not support BIDI (bidirectional text), however, for RTL -#: scripts, words are automatically displayed in RTL. That is to say, -#: in an RTL script, the words "HELLO WORLD" display in kitty as -#: "WORLD HELLO", and if you try to select a substring of an RTL- -#: shaped string, you will get the character that would be there had -#: the string been LTR. For example, assuming the Hebrew word ירושלים, -#: selecting the character that on the screen appears to be ם actually -#: writes into the selection buffer the character י. kitty's default -#: behavior is useful in conjunction with a filter to reverse the word -#: order, however, if you wish to manipulate RTL glyphs, it can be -#: very challenging to work with, so this option is provided to turn -#: it off. Furthermore, this option can be used with the command line -#: program GNU FriBidi -#: to get BIDI support, because it will force kitty to always treat -#: the text as LTR, which FriBidi expects for terminals. - -# symbol_map - -#: E.g. symbol_map U+E0A0-U+E0A3,U+E0C0-U+E0C7 PowerlineSymbols - -#: Map the specified Unicode codepoints to a particular font. Useful -#: if you need special rendering for some symbols, such as for -#: Powerline. Avoids the need for patched fonts. Each Unicode code -#: point is specified in the form `U+`. You -#: can specify multiple code points, separated by commas and ranges -#: separated by hyphens. This option can be specified multiple times. -#: The syntax is:: - -#: symbol_map codepoints Font Family Name - -# narrow_symbols - -#: E.g. narrow_symbols U+E0A0-U+E0A3,U+E0C0-U+E0C7 1 - -#: Usually, for Private Use Unicode characters and some symbol/dingbat -#: characters, if the character is followed by one or more spaces, -#: kitty will use those extra cells to render the character larger, if -#: the character in the font has a wide aspect ratio. Using this -#: option you can force kitty to restrict the specified code points to -#: render in the specified number of cells (defaulting to one cell). -#: This option can be specified multiple times. The syntax is:: - -#: narrow_symbols codepoints [optionally the number of cells] - -# disable_ligatures never - -#: Choose how you want to handle multi-character ligatures. The -#: default is to always render them. You can tell kitty to not render -#: them when the cursor is over them by using cursor to make editing -#: easier, or have kitty never render them at all by using always, if -#: you don't like them. The ligature strategy can be set per-window -#: either using the kitty remote control facility or by defining -#: shortcuts for it in kitty.conf, for example:: - -#: map alt+1 disable_ligatures_in active always -#: map alt+2 disable_ligatures_in all never -#: map alt+3 disable_ligatures_in tab cursor - -#: Note that this refers to programming ligatures, typically -#: implemented using the calt OpenType feature. For disabling general -#: ligatures, use the font_features option. - -# font_features - -#: E.g. font_features none - -#: Choose exactly which OpenType features to enable or disable. Note -#: that for the main fonts, features can be specified when selecting -#: the font using the choose-fonts kitten. This setting is useful for -#: fallback fonts. - -#: Some fonts might have features worthwhile in a terminal. For -#: example, Fira Code includes a discretionary feature, zero, which in -#: that font changes the appearance of the zero (0), to make it more -#: easily distinguishable from Ø. Fira Code also includes other -#: discretionary features known as Stylistic Sets which have the tags -#: ss01 through ss20. - -#: For the exact syntax to use for individual features, see the -#: HarfBuzz documentation . - -#: Note that this code is indexed by PostScript name, and not the font -#: family. This allows you to define very precise feature settings; -#: e.g. you can disable a feature in the italic font but not in the -#: regular font. - -#: On Linux, font features are first read from the FontConfig database -#: and then this option is applied, so they can be configured in a -#: single, central place. - -#: To get the PostScript name for a font, use the `fc-scan file.ttf` -#: command on Linux or the `Font Book tool on macOS -#: `__. - -#: Enable alternate zero and oldstyle numerals:: - -#: font_features FiraCode-Retina +zero +onum - -#: Enable only alternate zero in the bold font:: - -#: font_features FiraCode-Bold +zero - -#: Disable the normal ligatures, but keep the calt feature which (in -#: this font) breaks up monotony:: - -#: font_features TT2020StyleB-Regular -liga +calt - -#: In conjunction with force_ltr, you may want to disable Arabic -#: shaping entirely, and only look at their isolated forms if they -#: show up in a document. You can do this with e.g.:: - -#: font_features UnifontMedium +isol -medi -fina -init - -# modify_font - -#: Modify font characteristics such as the position or thickness of -#: the underline and strikethrough. The modifications can have the -#: suffix px for pixels or % for percentage of original value. No -#: suffix means use pts. For example:: - -#: modify_font underline_position -2 -#: modify_font underline_thickness 150% -#: modify_font strikethrough_position 2px - -#: Additionally, you can modify the size of the cell in which each -#: font glyph is rendered and the baseline at which the glyph is -#: placed in the cell. For example:: - -#: modify_font cell_width 80% -#: modify_font cell_height -2px -#: modify_font baseline 3 - -#: Note that modifying the baseline will automatically adjust the -#: underline and strikethrough positions by the same amount. -#: Increasing the baseline raises glyphs inside the cell and -#: decreasing it lowers them. Decreasing the cell size might cause -#: rendering artifacts, so use with care. - -# box_drawing_scale 0.001, 1, 1.5, 2 - -#: The sizes of the lines used for the box drawing Unicode characters. -#: These values are in pts. They will be scaled by the monitor DPI to -#: arrive at a pixel value. There must be four values corresponding to -#: thin, normal, thick, and very thick lines. - -# undercurl_style thin-sparse - -#: The style with which undercurls are rendered. This option takes the -#: form (thin|thick)-(sparse|dense). Thin and thick control the -#: thickness of the undercurl. Sparse and dense control how often the -#: curl oscillates. With sparse the curl will peak once per character, -#: with dense twice. Changing this option dynamically via reloading -#: the config or remote control is undefined. - -# underline_exclusion 1 - -#: By default kitty renders gaps in underlines when they overlap with -#: descenders (the parts of letters below the baseline, such as for y, -#: q, p etc.). This option controls the thickness of the gaps. It can -#: be either a unitless number in which case it is a fraction of the -#: underline thickness as specified in the font or it can have a -#: suffix of px for pixels or pt for points. Set to zero to disable -#: the gaps. Changing this option dynamically via reloading the config -#: or remote control is undefined. - -# text_composition_strategy platform - -#: Control how kitty composites text glyphs onto the background color. -#: The default value of platform tries for text rendering as close to -#: "native" for the platform kitty is running on as possible. - -#: A value of legacy uses the old (pre kitty 0.28) strategy for how -#: glyphs are composited. This will make dark text on light -#: backgrounds look thicker and light text on dark backgrounds -#: thinner. It might also make some text appear like the strokes are -#: uneven. - -#: You can fine tune the actual contrast curve used for glyph -#: composition by specifying up to two space-separated numbers for -#: this setting. - -#: The first number is the gamma adjustment, which controls the -#: thickness of dark text on light backgrounds. Increasing the value -#: will make text appear thicker. The default value for this is 1.0 on -#: Linux and 1.7 on macOS. Valid values are 0.01 and above. The result -#: is scaled based on the luminance difference between the background -#: and the foreground. Dark text on light backgrounds receives the -#: full impact of the curve while light text on dark backgrounds is -#: affected very little. - -#: The second number is an additional multiplicative contrast. It is -#: percentage ranging from 0 to 100. The default value is 0 on Linux -#: and 30 on macOS. - -#: If you wish to achieve similar looking thickness in light and dark -#: themes, a good way to experiment is start by setting the value to -#: 1.0 0 and use a dark theme. Then adjust the second parameter until -#: it looks good. Then switch to a light theme and adjust the first -#: parameter until the perceived thickness matches the dark theme. - -# text_fg_override_threshold 0 - -#: A setting to prevent low contrast between foreground and background -#: colors. Useful when working with applications that use colors that -#: do not contrast well with your preferred color scheme. The default -#: value is 0, which means no color overriding is performed. There are -#: two modes of operation: - -#: A value with the suffix ratio represents the minimum accepted -#: contrast ratio between the foreground and background color. -#: Possible values range from 0.0 ratio to 21.0 ratio. For example, to -#: meet WCAG level AA -#: -#: a value of 4.5 ratio can be provided. The algorithm is implemented -#: using HSLuv which enables it to change the -#: perceived lightness of a color just as much as needed without -#: really changing its hue and saturation. - -#: A value with the suffix % represents the minimum accepted -#: difference in luminance between the foreground and background -#: color, below which kitty will override the foreground color. It is -#: percentage ranging from 0 % to 100 %. If the difference in -#: luminance of the foreground and background is below this threshold, -#: the foreground color will be set to white if the background is dark -#: or black if the background is light. - -#: WARNING: Some programs use characters (such as block characters) -#: for graphics display and may expect to be able to set the -#: foreground and background to the same color (or similar colors). If -#: you see unexpected stripes, dots, lines, incorrect color, no color -#: where you expect color, or any kind of graphic display problem try -#: setting text_fg_override_threshold to 0 to see if this is the cause -#: of the problem or consider using the ratio mode of operation -#: described above instead of the % mode of operation. - -#: }}} - -#: Text cursor customization {{{ - -# cursor #cccccc - -#: Default text cursor color. If set to the special value none the -#: cursor will be rendered with a "reverse video" effect. Its color -#: will be the color of the text in the cell it is over and the text -#: will be rendered with the background color of the cell. Note that -#: if the program running in the terminal sets a cursor color, this -#: takes precedence. Also, the cursor colors are modified if the cell -#: background and foreground colors have very low contrast. Note that -#: some themes set this value, so if you want to override it, place -#: your value after the lines where the theme file is included. - -# cursor_text_color #111111 - -#: The color of text under the cursor. If you want it rendered with -#: the background color of the cell underneath instead, use the -#: special keyword: `background`. Note that if cursor is set to none -#: then this option is ignored. Note that some themes set this value, -#: so if you want to override it, place your value after the lines -#: where the theme file is included. - -# cursor_shape block - -#: The cursor shape can be one of block, beam, underline. Note that -#: when reloading the config this will be changed only if the cursor -#: shape has not been set by the program running in the terminal. This -#: sets the default cursor shape, applications running in the terminal -#: can override it. In particular, shell integration -#: in kitty sets -#: the cursor shape to beam at shell prompts. You can avoid this by -#: setting shell_integration to no-cursor. - -# cursor_shape_unfocused hollow - -#: Defines the text cursor shape when the OS window is not focused. -#: The unfocused cursor shape can be one of block, beam, underline, -#: hollow and unchanged (leave the cursor shape as it is). - -# cursor_beam_thickness 1.5 - -#: The thickness of the beam cursor (in pts). - -# cursor_underline_thickness 2.0 - -#: The thickness of the underline cursor (in pts). - -# cursor_blink_interval -1 - -#: The interval to blink the cursor (in seconds). Set to zero to -#: disable blinking. Negative values mean use system default. Note -#: that the minimum interval will be limited to repaint_delay. You can -#: also animate the cursor blink by specifying an easing function. For -#: example, setting this to option to 0.5 ease-in-out will cause the -#: cursor blink to be animated over a second, in the first half of the -#: second it will go from opaque to transparent and then back again -#: over the next half. You can specify different easing functions for -#: the two halves, for example: -1 linear ease-out. kitty supports all -#: the CSS easing functions . Note that turning on animations -#: uses extra power as it means the screen is redrawn multiple times -#: per blink interval. See also, cursor_stop_blinking_after. - -# cursor_stop_blinking_after 15.0 - -#: Stop blinking cursor after the specified number of seconds of -#: keyboard inactivity. Set to zero to never stop blinking. - -# cursor_trail 0 - -#: Set this to a value larger than zero to enable a "cursor trail" -#: animation. This is an animation that shows a "trail" following the -#: movement of the text cursor. It makes it easy to follow large -#: cursor jumps and makes for a cool visual effect of the cursor -#: zooming around the screen. The actual value of this option controls -#: when the animation is triggered. It is a number of milliseconds. -#: The trail animation only follows cursors that have stayed in their -#: position for longer than the specified number of milliseconds. This -#: prevents trails from appearing for cursors that rapidly change -#: their positions during UI updates in complex applications. See -#: cursor_trail_decay to control the animation speed and -#: cursor_trail_start_threshold to control when a cursor trail is -#: started. - -# cursor_trail_decay 0.1 0.4 - -#: Controls the decay times for the cursor trail effect when the -#: cursor_trail is enabled. This option accepts two positive float -#: values specifying the fastest and slowest decay times in seconds. -#: The first value corresponds to the fastest decay time (minimum), -#: and the second value corresponds to the slowest decay time -#: (maximum). The second value must be equal to or greater than the -#: first value. Smaller values result in a faster decay of the cursor -#: trail. Adjust these values to control how quickly the cursor trail -#: fades away. - -# cursor_trail_start_threshold 2 - -#: Set the distance threshold for starting the cursor trail. This -#: option accepts a positive integer value that represents the minimum -#: number of cells the cursor must move before the trail is started. -#: When the cursor moves less than this threshold, the trail is -#: skipped, reducing unnecessary cursor trail animation. - -#: }}} - -#: Scrollback {{{ - -# scrollback_lines 2000 - -#: Number of lines of history to keep in memory for scrolling back. -#: Memory is allocated on demand. Negative numbers are (effectively) -#: infinite scrollback. Note that using very large scrollback is not -#: recommended as it can slow down performance of the terminal and -#: also use large amounts of RAM. Instead, consider using -#: scrollback_pager_history_size. Note that on config reload if this -#: is changed it will only affect newly created windows, not existing -#: ones. - -# scrollback_indicator_opacity 1.0 - -#: The opacity of the scrollback indicator which is a small colored -#: rectangle that moves along the right hand side of the window as you -#: scroll, indicating what fraction you have scrolled. The default is -#: one which means fully opaque, aka visible. Set to a value between -#: zero and one to make the indicator less visible. - -# scrollback_pager less --chop-long-lines --RAW-CONTROL-CHARS +INPUT_LINE_NUMBER - -#: Program with which to view scrollback in a new window. The -#: scrollback buffer is passed as STDIN to this program. If you change -#: it, make sure the program you use can handle ANSI escape sequences -#: for colors and text formatting. INPUT_LINE_NUMBER in the command -#: line above will be replaced by an integer representing which line -#: should be at the top of the screen. Similarly CURSOR_LINE and -#: CURSOR_COLUMN will be replaced by the current cursor position or -#: set to 0 if there is no cursor, for example, when showing the last -#: command output. - -# scrollback_pager_history_size 0 - -#: Separate scrollback history size (in MB), used only for browsing -#: the scrollback buffer with pager. This separate buffer is not -#: available for interactive scrolling but will be piped to the pager -#: program when viewing scrollback buffer in a separate window. The -#: current implementation stores the data in UTF-8, so approximately -#: 10000 lines per megabyte at 100 chars per line, for pure ASCII, -#: unformatted text. A value of zero or less disables this feature. -#: The maximum allowed size is 4GB. Note that on config reload if this -#: is changed it will only affect newly created windows, not existing -#: ones. - -# scrollback_fill_enlarged_window no - -#: Fill new space with lines from the scrollback buffer after -#: enlarging a window. - -# wheel_scroll_multiplier 5.0 - -#: Multiplier for the number of lines scrolled by the mouse wheel. -#: Note that this is only used for low precision scrolling devices, -#: not for high precision scrolling devices on platforms such as macOS -#: and Wayland. Use negative numbers to change scroll direction. See -#: also wheel_scroll_min_lines. - -# wheel_scroll_min_lines 1 - -#: The minimum number of lines scrolled by the mouse wheel. The scroll -#: multiplier wheel_scroll_multiplier only takes effect after it -#: reaches this number. Note that this is only used for low precision -#: scrolling devices like wheel mice that scroll by very small amounts -#: when using the wheel. With a negative number, the minimum number of -#: lines will always be added. - -# touch_scroll_multiplier 1.0 - -#: Multiplier for the number of lines scrolled by a touchpad. Note -#: that this is only used for high precision scrolling devices on -#: platforms such as macOS and Wayland. Use negative numbers to change -#: scroll direction. - -#: }}} - -#: Mouse {{{ - -# mouse_hide_wait 3.0 - -#: Hide mouse cursor after the specified number of seconds of the -#: mouse not being used. Set to zero to disable mouse cursor hiding. -#: Set to a negative value to hide the mouse cursor immediately when -#: typing text. Disabled by default on macOS as getting it to work -#: robustly with the ever-changing sea of bugs that is Cocoa is too -#: much effort. - -# url_color #0087bd -# url_style curly - -#: The color and style for highlighting URLs on mouse-over. url_style -#: can be one of: none, straight, double, curly, dotted, dashed. - -# open_url_with default - -#: The program to open clicked URLs. The special value default will -#: first look for any URL handlers defined via the open_actions -#: facility and if non -#: are found, it will use the Operating System's default URL handler -#: (open on macOS and xdg-open on Linux). - -# url_prefixes file ftp ftps gemini git gopher http https irc ircs kitty mailto news sftp ssh - -#: The set of URL prefixes to look for when detecting a URL under the -#: mouse cursor. - -# detect_urls yes - -#: Detect URLs under the mouse. Detected URLs are highlighted with an -#: underline and the mouse cursor becomes a hand over them. Even if -#: this option is disabled, URLs are still clickable. See also the -#: underline_hyperlinks option to control how hyperlinks (as opposed -#: to plain text URLs) are displayed. - -# url_excluded_characters - -#: Additional characters to be disallowed from URLs, when detecting -#: URLs under the mouse cursor. By default, all characters that are -#: legal in URLs are allowed. Additionally, newlines are allowed (but -#: stripped). This is to accommodate programs such as mutt that add -#: hard line breaks even for continued lines. \n can be added to this -#: option to disable this behavior. Special characters can be -#: specified using backslash escapes, to specify a backslash use a -#: double backslash. - -# show_hyperlink_targets no - -#: When the mouse hovers over a terminal hyperlink, show the actual -#: URL that will be activated when the hyperlink is clicked. - -# underline_hyperlinks hover - -#: Control how hyperlinks are underlined. They can either be -#: underlined on mouse hover, always (i.e. permanently underlined) or -#: never which means that kitty will not apply any underline styling -#: to hyperlinks. Note that the value of always only applies to real -#: (OSC 8) hyperlinks not text that is detected to be a URL on mouse -#: hover. Uses the url_style and url_color settings for the underline -#: style. Note that reloading the config and changing this value -#: to/from always will only affect text subsequently received by -#: kitty. - -# copy_on_select no - -#: Copy to clipboard or a private buffer on select. With this set to -#: clipboard, selecting text with the mouse will cause the text to be -#: copied to clipboard. Useful on platforms such as macOS that do not -#: have the concept of primary selection. You can instead specify a -#: name such as a1 to copy to a private kitty buffer. Map a shortcut -#: with the paste_from_buffer action to paste from this private -#: buffer. For example:: - -#: copy_on_select a1 -#: map shift+cmd+v paste_from_buffer a1 - -#: Note that copying to the clipboard is a security risk, as all -#: programs, including websites open in your browser can read the -#: contents of the system clipboard. - -# clear_selection_on_clipboard_loss no - -#: When the contents of the clipboard no longer reflect the current -#: selection, clear it. This is primarily useful on platforms such as -#: Linux where selecting text automatically copies it to a special -#: "primary selection" clipboard or if you have copy_on_select set to -#: clipboard. - -#: Note that on macOS the system does not provide notifications when -#: the clipboard owner is changed, so there, copying to clipboard in a -#: non-kitty application will not clear selections even if -#: copy_on_select is enabled. - -# paste_actions quote-urls-at-prompt,confirm - -#: A comma separated list of actions to take when pasting text into -#: the terminal. The supported paste actions are: - -#: quote-urls-at-prompt: -#: If the text being pasted is a URL and the cursor is at a shell prompt, -#: automatically quote the URL (needs shell_integration). -#: replace-dangerous-control-codes -#: Replace dangerous control codes from pasted text, without confirmation. -#: replace-newline -#: Replace the newline character from pasted text, without confirmation. -#: confirm: -#: Confirm the paste if the text to be pasted contains any terminal control codes -#: as this can be dangerous, leading to code execution if the shell/program running -#: in the terminal does not properly handle these. -#: confirm-if-large -#: Confirm the paste if it is very large (larger than 16KB) as pasting -#: large amounts of text into shells can be very slow. -#: filter: -#: Run the filter_paste() function from the file paste-actions.py in -#: the kitty config directory on the pasted text. The text returned by the -#: function will be actually pasted. -#: no-op: -#: Has no effect. - -# strip_trailing_spaces never - -#: Remove spaces at the end of lines when copying to clipboard. A -#: value of smart will do it when using normal selections, but not -#: rectangle selections. A value of always will always do it. - -# select_by_word_characters @-./_~?&=%+# - -#: Characters considered part of a word when double clicking. In -#: addition to these characters any character that is marked as an -#: alphanumeric character in the Unicode database will be matched. - -# select_by_word_characters_forward - -#: Characters considered part of a word when extending the selection -#: forward on double clicking. In addition to these characters any -#: character that is marked as an alphanumeric character in the -#: Unicode database will be matched. - -#: If empty (default) select_by_word_characters will be used for both -#: directions. - -# click_interval -1.0 - -#: The interval between successive clicks to detect double/triple -#: clicks (in seconds). Negative numbers will use the system default -#: instead, if available, or fallback to 0.5. - -# focus_follows_mouse no - -#: Set the active window to the window under the mouse when moving the -#: mouse around. On macOS, this will also cause the OS Window under -#: the mouse to be focused automatically when the mouse enters it. - -# pointer_shape_when_grabbed arrow - -#: The shape of the mouse pointer when the program running in the -#: terminal grabs the mouse. - -# default_pointer_shape beam - -#: The default shape of the mouse pointer. - -# pointer_shape_when_dragging beam crosshair - -#: The default shape of the mouse pointer when dragging across text. -#: The optional second value sets the shape when dragging in -#: rectangular selection mode. - -#: Mouse actions {{{ - -#: Mouse buttons can be mapped to perform arbitrary actions. The -#: syntax is: - -#: .. code-block:: none - -#: mouse_map button-name event-type modes action - -#: Where button-name is one of left, middle, right, b1 ... b8 with -#: added keyboard modifiers. For example: ctrl+shift+left refers to -#: holding the Ctrl+Shift keys while clicking with the left mouse -#: button. The value b1 ... b8 can be used to refer to up to eight -#: buttons on a mouse. - -#: event-type is one of press, release, doublepress, triplepress, -#: click, doubleclick. modes indicates whether the action is performed -#: when the mouse is grabbed by the program running in the terminal, -#: or not. The values are grabbed or ungrabbed or a comma separated -#: combination of them. grabbed refers to when the program running in -#: the terminal has requested mouse events. Note that the click and -#: double click events have a delay of click_interval to disambiguate -#: from double and triple presses. - -#: You can run kitty with the kitty --debug-input command line option -#: to see mouse events. See the builtin actions below to get a sense -#: of what is possible. - -#: If you want to unmap a button, map it to nothing. For example, to -#: disable opening of URLs with a plain click:: - -#: mouse_map left click ungrabbed - -#: See all the mappable actions including mouse actions here -#: . - -#: .. note:: -#: Once a selection is started, releasing the button that started it will -#: automatically end it and no release event will be dispatched. - -# clear_all_mouse_actions no - -#: Remove all mouse action definitions up to this point. Useful, for -#: instance, to remove the default mouse actions. - -#: Click the link under the mouse or move the cursor - -# mouse_map left click ungrabbed mouse_handle_click selection link prompt - -#:: First check for a selection and if one exists do nothing. Then -#:: check for a link under the mouse cursor and if one exists, click -#:: it. Finally check if the click happened at the current shell -#:: prompt and if so, move the cursor to the click location. Note -#:: that this requires shell integration -#:: to work. - -#: Click the link under the mouse or move the cursor even when grabbed - -# mouse_map shift+left click grabbed,ungrabbed mouse_handle_click selection link prompt - -#:: Same as above, except that the action is performed even when the -#:: mouse is grabbed by the program running in the terminal. - -#: Click the link under the mouse cursor - -# mouse_map ctrl+shift+left release grabbed,ungrabbed mouse_handle_click link - -#:: Variant with Ctrl+Shift is present because the simple click based -#:: version has an unavoidable delay of click_interval, to -#:: disambiguate clicks from double clicks. - -#: Discard press event for link click - -# mouse_map ctrl+shift+left press grabbed discard_event - -#:: Prevent this press event from being sent to the program that has -#:: grabbed the mouse, as the corresponding release event is used to -#:: open a URL. - -#: Paste from the primary selection - -# mouse_map middle release ungrabbed paste_from_selection - -#: Start selecting text - -# mouse_map left press ungrabbed mouse_selection normal - -#: Start selecting text in a rectangle - -# mouse_map ctrl+alt+left press ungrabbed mouse_selection rectangle - -#: Select a word - -# mouse_map left doublepress ungrabbed mouse_selection word - -#: Select a line - -# mouse_map left triplepress ungrabbed mouse_selection line - -#: Select line from point - -# mouse_map ctrl+alt+left triplepress ungrabbed mouse_selection line_from_point - -#:: Select from the clicked point to the end of the line. If you -#:: would like to select the word at the point and then extend to the -#:: rest of the line, change `line_from_point` to -#:: `word_and_line_from_point`. - -#: Extend the current selection - -# mouse_map right press ungrabbed mouse_selection extend - -#:: If you want only the end of the selection to be moved instead of -#:: the nearest boundary, use move-end instead of extend. - -#: Paste from the primary selection even when grabbed - -# mouse_map shift+middle release ungrabbed,grabbed paste_selection -# mouse_map shift+middle press grabbed discard_event - -#: Start selecting text even when grabbed - -# mouse_map shift+left press ungrabbed,grabbed mouse_selection normal - -#: Start selecting text in a rectangle even when grabbed - -# mouse_map ctrl+shift+alt+left press ungrabbed,grabbed mouse_selection rectangle - -#: Select a word even when grabbed - -# mouse_map shift+left doublepress ungrabbed,grabbed mouse_selection word - -#: Select a line even when grabbed - -# mouse_map shift+left triplepress ungrabbed,grabbed mouse_selection line - -#: Select line from point even when grabbed - -# mouse_map ctrl+shift+alt+left triplepress ungrabbed,grabbed mouse_selection line_from_point - -#:: Select from the clicked point to the end of the line even when -#:: grabbed. If you would like to select the word at the point and -#:: then extend to the rest of the line, change `line_from_point` to -#:: `word_and_line_from_point`. - -#: Extend the current selection even when grabbed - -# mouse_map shift+right press ungrabbed,grabbed mouse_selection extend - -#: Show clicked command output in pager - -# mouse_map ctrl+shift+right press ungrabbed mouse_show_command_output - -#:: Requires shell integration -#:: to work. - -#: }}} - -#: }}} - -#: Performance tuning {{{ - -# repaint_delay 10 - -#: Delay between screen updates (in milliseconds). Decreasing it, -#: increases frames-per-second (FPS) at the cost of more CPU usage. -#: The default value yields ~100 FPS which is more than sufficient for -#: most uses. Note that to actually achieve 100 FPS, you have to -#: either set sync_to_monitor to no or use a monitor with a high -#: refresh rate. Also, to minimize latency when there is pending input -#: to be processed, this option is ignored. - -# input_delay 3 - -#: Delay before input from the program running in the terminal is -#: processed (in milliseconds). Note that decreasing it will increase -#: responsiveness, but also increase CPU usage and might cause flicker -#: in full screen programs that redraw the entire screen on each loop, -#: because kitty is so fast that partial screen updates will be drawn. -#: This setting is ignored when the input buffer is almost full. - -# sync_to_monitor yes - -#: Sync screen updates to the refresh rate of the monitor. This -#: prevents screen tearing -#: when scrolling. -#: However, it limits the rendering speed to the refresh rate of your -#: monitor. With a very high speed mouse/high keyboard repeat rate, -#: you may notice some slight input latency. If so, set this to no. - -#: }}} - -#: Terminal bell {{{ - -# enable_audio_bell yes - -#: The audio bell. Useful to disable it in environments that require -#: silence. - -# visual_bell_duration 0.0 - -#: The visual bell duration (in seconds). Flash the screen when a bell -#: occurs for the specified number of seconds. Set to zero to disable. -#: The flash is animated, fading in and out over the specified -#: duration. The easing function used for the fading can be -#: controlled. For example, 2.0 linear will casuse the flash to fade -#: in and out linearly. The default if unspecified is to use ease-in- -#: out which fades slowly at the start, middle and end. You can -#: specify different easing functions for the fade-in and fade-out -#: parts, like this: 2.0 ease-in linear. kitty supports all the CSS -#: easing functions . - -# visual_bell_color none - -#: The color used by visual bell. Set to none will fall back to -#: selection background color. If you feel that the visual bell is too -#: bright, you can set it to a darker color. - -# window_alert_on_bell yes - -#: Request window attention on bell. Makes the dock icon bounce on -#: macOS or the taskbar flash on Linux. - -# bell_on_tab "🔔 " - -#: Some text or a Unicode symbol to show on the tab if a window in the -#: tab that does not have focus has a bell. If you want to use leading -#: or trailing spaces, surround the text with quotes. See -#: tab_title_template for how this is rendered. - -#: For backwards compatibility, values of yes, y and true are -#: converted to the default bell symbol and no, n, false and none are -#: converted to the empty string. - -# command_on_bell none - -#: Program to run when a bell occurs. The environment variable -#: KITTY_CHILD_CMDLINE can be used to get the program running in the -#: window in which the bell occurred. - -# bell_path none - -#: Path to a sound file to play as the bell sound. If set to none, the -#: system default bell sound is used. Must be in a format supported by -#: the operating systems sound API, such as WAV or OGA on Linux -#: (libcanberra) or AIFF, MP3 or WAV on macOS (NSSound). - -# linux_bell_theme __custom - -#: The XDG Sound Theme kitty will use to play the bell sound. Defaults -#: to the custom theme name specified in the XDG Sound theme -#: specification , falling back to the default -#: freedesktop theme if it does not exist. To change your sound theme -#: desktop wide, create -#: :file:~/.local/share/sounds/__custom/index.theme` with the -#: contents: - -#: [Sound Theme] - -#: Inherits=name-of-the-sound-theme-you-want-to-use - -#: Replace name-of-the-sound-theme-you-want-to-use with the actual -#: theme name. Now all compliant applications should use sounds from -#: this theme. - -#: }}} - -#: Window layout {{{ - -# remember_window_size yes -# initial_window_width 640 -# initial_window_height 400 - -#: If enabled, the OS Window size will be remembered so that new -#: instances of kitty will have the same size as the previous -#: instance. If disabled, the OS Window will initially have size -#: configured by initial_window_width/height, in pixels. You can use a -#: suffix of "c" on the width/height values to have them interpreted -#: as number of cells instead of pixels. - -# enabled_layouts * - -#: The enabled window layouts. A comma separated list of layout names. -#: The special value all means all layouts. The first listed layout -#: will be used as the startup layout. Default configuration is all -#: layouts in alphabetical order. For a list of available layouts, see -#: the layouts . - -# window_resize_step_cells 2 -# window_resize_step_lines 2 - -#: The step size (in units of cell width/cell height) to use when -#: resizing kitty windows in a layout with the shortcut -#: start_resizing_window. The cells value is used for horizontal -#: resizing, and the lines value is used for vertical resizing. - -# window_border_width 0.5pt - -#: The width of window borders. Can be either in pixels (px) or pts -#: (pt). Values in pts will be rounded to the nearest number of pixels -#: based on screen resolution. If not specified, the unit is assumed -#: to be pts. Note that borders are displayed only when more than one -#: window is visible. They are meant to separate multiple windows. - -# draw_minimal_borders yes - -#: Draw only the minimum borders needed. This means that only the -#: borders that separate the window from a neighbor are drawn. Note -#: that setting a non-zero window_margin_width overrides this and -#: causes all borders to be drawn. - -# window_margin_width 0 - -#: The window margin (in pts) (blank area outside the border). A -#: single value sets all four sides. Two values set the vertical and -#: horizontal sides. Three values set top, horizontal and bottom. Four -#: values set top, right, bottom and left. - -# single_window_margin_width -1 - -#: The window margin to use when only a single window is visible (in -#: pts). Negative values will cause the value of window_margin_width -#: to be used instead. A single value sets all four sides. Two values -#: set the vertical and horizontal sides. Three values set top, -#: horizontal and bottom. Four values set top, right, bottom and left. - -# window_padding_width 0 - -#: The window padding (in pts) (blank area between the text and the -#: window border). A single value sets all four sides. Two values set -#: the vertical and horizontal sides. Three values set top, horizontal -#: and bottom. Four values set top, right, bottom and left. - -# single_window_padding_width -1 - -#: The window padding to use when only a single window is visible (in -#: pts). Negative values will cause the value of window_padding_width -#: to be used instead. A single value sets all four sides. Two values -#: set the vertical and horizontal sides. Three values set top, -#: horizontal and bottom. Four values set top, right, bottom and left. - -# placement_strategy center - -#: When the window size is not an exact multiple of the cell size, the -#: cell area of the terminal window will have some extra padding on -#: the sides. You can control how that padding is distributed with -#: this option. Using a value of center means the cell area will be -#: placed centrally. A value of top-left means the padding will be -#: only at the bottom and right edges. The value can be one of: top- -#: left, top, top-right, left, center, right, bottom-left, bottom, -#: bottom-right. - -# active_border_color #00ff00 - -#: The color for the border of the active window. Set this to none to -#: not draw borders around the active window. - -# inactive_border_color #cccccc - -#: The color for the border of inactive windows. - -# bell_border_color #ff5a00 - -#: The color for the border of inactive windows in which a bell has -#: occurred. - -# inactive_text_alpha 1.0 - -#: Fade the text in inactive windows by the specified amount (a number -#: between zero and one, with zero being fully faded). - -# hide_window_decorations no - -#: Hide the window decorations (title-bar and window borders) with -#: yes. On macOS, titlebar-only and titlebar-and-corners can be used -#: to only hide the titlebar and the rounded corners. Whether this -#: works and exactly what effect it has depends on the window -#: manager/operating system. Note that the effects of changing this -#: option when reloading config are undefined. When using titlebar- -#: only, it is useful to also set window_margin_width and -#: placement_strategy to prevent the rounded corners from clipping -#: text. Or use titlebar-and-corners. - -# window_logo_path none - -#: Path to a logo image. Must be in PNG/JPEG/WEBP/GIF/TIFF/BMP format. -#: Relative paths are interpreted relative to the kitty config -#: directory. The logo is displayed in a corner of every kitty window. -#: The position is controlled by window_logo_position. Individual -#: windows can be configured to have different logos either using the -#: launch action or the remote control -#: facility. - -# window_logo_position bottom-right - -#: Where to position the window logo in the window. The value can be -#: one of: top-left, top, top-right, left, center, right, bottom-left, -#: bottom, bottom-right. - -# window_logo_alpha 0.5 - -#: The amount the logo should be faded into the background. With zero -#: being fully faded and one being fully opaque. - -# window_logo_scale 0 - -#: The percentage (0-100] of the window size to which the logo should -#: scale. Using a single number means the logo is scaled to that -#: percentage of the shortest window dimension, while preserving -#: aspect ratio of the logo image. - -#: Using two numbers means the width and height of the logo are scaled -#: to the respective percentage of the window's width and height. - -#: Using zero as the percentage disables scaling in that dimension. A -#: single zero (the default) disables all scaling of the window logo. - -# resize_debounce_time 0.1 0.5 - -#: The time to wait (in seconds) before asking the program running in -#: kitty to resize and redraw the screen during a live resize of the -#: OS window, when no new resize events have been received, i.e. when -#: resizing is either paused or finished. On platforms such as macOS, -#: where the operating system sends events corresponding to the start -#: and end of a live resize, the second number is used for redraw- -#: after-pause since kitty can distinguish between a pause and end of -#: resizing. On such systems the first number is ignored and redraw is -#: immediate after end of resize. On other systems only the first -#: number is used so that kitty is "ready" quickly after the end of -#: resizing, while not also continuously redrawing, to save energy. - -# resize_in_steps no - -#: Resize the OS window in steps as large as the cells, instead of -#: with the usual pixel accuracy. Combined with initial_window_width -#: and initial_window_height in number of cells, this option can be -#: used to keep the margins as small as possible when resizing the OS -#: window. Note that this does not currently work on Wayland. - -# visual_window_select_characters 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ - -#: The list of characters for visual window selection. For example, -#: for selecting a window to focus on with focus_visible_window. The -#: value should be a series of unique numbers or alphabets, case -#: insensitive, from the set 0-9A-Z\-=[];',./\\`. Specify your -#: preference as a string of characters. - -# confirm_os_window_close -1 - -#: Ask for confirmation when closing an OS window or a tab with at -#: least this number of kitty windows in it by window manager (e.g. -#: clicking the window close button or pressing the operating system -#: shortcut to close windows) or by the close_tab action. A value of -#: zero disables confirmation. This confirmation also applies to -#: requests to quit the entire application (all OS windows, via the -#: quit action). Negative values are converted to positive ones, -#: however, with shell_integration enabled, using negative values -#: means windows sitting at a shell prompt are not counted, only -#: windows where some command is currently running. You can also have -#: backgrounded jobs prevent closing, by adding count-background to -#: the setting, for example: -1 count-background. Note that if you -#: want confirmation when closing individual windows, you can map the -#: close_window_with_confirmation action. - -#: }}} - -#: Tab bar {{{ - -# tab_bar_edge bottom - -#: The edge to show the tab bar on, top or bottom. - -# tab_bar_margin_width 0.0 - -#: The margin to the left and right of the tab bar (in pts). - -# tab_bar_margin_height 0.0 0.0 - -#: The margin above and below the tab bar (in pts). The first number -#: is the margin between the edge of the OS Window and the tab bar. -#: The second number is the margin between the tab bar and the -#: contents of the current tab. - -# tab_bar_style fade - -#: The tab bar style, can be one of: - -#: fade -#: Each tab's edges fade into the background color. (See also tab_fade) -#: slant -#: Tabs look like the tabs in a physical file. -#: separator -#: Tabs are separated by a configurable separator. (See also -#: tab_separator) -#: powerline -#: Tabs are shown as a continuous line with "fancy" separators. -#: (See also tab_powerline_style) -#: custom -#: A user-supplied Python function called draw_tab is loaded from the file -#: tab_bar.py in the kitty config directory. For examples of how to -#: write such a function, see the functions named draw_tab_with_* in -#: kitty's source code: kitty/tab_bar.py. See also -#: this discussion -#: for examples from kitty users. -#: hidden -#: The tab bar is hidden. If you use this, you might want to create -#: a mapping for the select_tab action which presents you with a list of -#: tabs and allows for easy switching to a tab. - -# tab_bar_align left - -#: The horizontal alignment of the tab bar, can be one of: left, -#: center, right. - -# tab_bar_min_tabs 2 - -#: The minimum number of tabs that must exist before the tab bar is -#: shown. - -# tab_switch_strategy previous - -#: The algorithm to use when switching to a tab when the current tab -#: is closed. The default of previous will switch to the last used -#: tab. A value of left will switch to the tab to the left of the -#: closed tab. A value of right will switch to the tab to the right of -#: the closed tab. A value of last will switch to the right-most tab. - -# tab_fade 0.25 0.5 0.75 1 - -#: Control how each tab fades into the background when using fade for -#: the tab_bar_style. Each number is an alpha (between zero and one) -#: that controls how much the corresponding cell fades into the -#: background, with zero being no fade and one being full fade. You -#: can change the number of cells used by adding/removing entries to -#: this list. - -# tab_separator " ┇" - -#: The separator between tabs in the tab bar when using separator as -#: the tab_bar_style. - -# tab_powerline_style angled - -#: The powerline separator style between tabs in the tab bar when -#: using powerline as the tab_bar_style, can be one of: angled, -#: slanted, round. - -# tab_activity_symbol none - -#: Some text or a Unicode symbol to show on the tab if a window in the -#: tab that does not have focus has some activity. If you want to use -#: leading or trailing spaces, surround the text with quotes. See -#: tab_title_template for how this is rendered. - -# tab_title_max_length 0 - -#: The maximum number of cells that can be used to render the text in -#: a tab. A value of zero means that no limit is applied. - -# tab_title_template "{fmt.fg.red}{bell_symbol}{activity_symbol}{fmt.fg.tab}{tab.last_focused_progress_percent}{title}" - -#: A template to render the tab title. The default just renders the -#: title with optional symbols for bell and activity. If you wish to -#: include the tab-index as well, use something like: {index}:{title}. -#: Useful if you have shortcuts mapped for goto_tab N. If you prefer -#: to see the index as a superscript, use {sup.index}. All data -#: available is: - -#: title -#: The current tab title. -#: index -#: The tab index usable with goto_tab N goto_tab shortcuts. -#: layout_name -#: The current layout name. -#: num_windows -#: The number of windows in the tab. -#: num_window_groups -#: The number of window groups (a window group is a window and all of its overlay windows) in the tab. -#: tab.active_wd -#: The working directory of the currently active window in the tab -#: (expensive, requires syscall). Use tab.active_oldest_wd to get -#: the directory of the oldest foreground process rather than the newest. -#: tab.active_exe -#: The name of the executable running in the foreground of the currently -#: active window in the tab (expensive, requires syscall). Use -#: tab.active_oldest_exe for the oldest foreground process. -#: max_title_length -#: The maximum title length available. -#: keyboard_mode -#: The name of the current keyboard mode or the empty string if no keyboard mode is active. -#: tab.last_focused_progress_percent -#: If a command running in a window reports the progress for a task, show this progress as a percentage -#: from the most recently focused window in the tab. Empty string if no progress is reported. -#: tab.progress_percent -#: If a command running in a window reports the progress for a task, show this progress as a percentage -#: from all windows in the tab, averaged. Empty string is no progress is reported. - -#: Note that formatting is done by Python's string formatting -#: machinery, so you can use, for instance, {layout_name[:2].upper()} -#: to show only the first two letters of the layout name, upper-cased. -#: If you want to style the text, you can use styling directives, for -#: example: -#: `{fmt.fg.red}red{fmt.fg.tab}normal{fmt.bg._00FF00}greenbg{fmt.bg.tab}`. -#: Similarly, for bold and italic: -#: `{fmt.bold}bold{fmt.nobold}normal{fmt.italic}italic{fmt.noitalic}`. -#: The 256 eight terminal colors can be used as `fmt.fg.color0` -#: through `fmt.fg.color255`. Note that for backward compatibility, if -#: {bell_symbol} or {activity_symbol} are not present in the template, -#: they are prepended to it. - -# active_tab_title_template none - -#: Template to use for active tabs. If not specified falls back to -#: tab_title_template. - -# active_tab_foreground #000 -# active_tab_background #eee -# active_tab_font_style bold-italic -# inactive_tab_foreground #444 -# inactive_tab_background #999 -# inactive_tab_font_style normal - -#: Tab bar colors and styles. - -# tab_bar_background none - -#: Background color for the tab bar. Defaults to using the terminal -#: background color. - -# tab_bar_margin_color none - -#: Color for the tab bar margin area. Defaults to using the terminal -#: background color for margins above and below the tab bar. For side -#: margins the default color is chosen to match the background color -#: of the neighboring tab. - -#: }}} - -#: Color scheme {{{ - -# foreground #dddddd -# background #000000 - -#: The foreground and background colors. - -# background_opacity 1.0 - -#: The opacity of the background. A number between zero and one, where -#: one is opaque and zero is fully transparent. This will only work if -#: supported by the OS (for instance, when using a compositor under -#: X11). Note that it only sets the background color's opacity in -#: cells that have the same background color as the default terminal -#: background, so that things like the status bar in vim, powerline -#: prompts, etc. still look good. But it means that if you use a color -#: theme with a background color in your editor, it will not be -#: rendered as transparent. Instead you should change the default -#: background color in your kitty config and not use a background -#: color in the editor color scheme. Or use the escape codes to set -#: the terminals default colors in a shell script to launch your -#: editor. See also transparent_background_colors. Be aware that using -#: a value less than 1.0 is a (possibly significant) performance hit. -#: When using a low value for this setting, it is desirable that you -#: set the background color to a color the matches the general color -#: of the desktop background, for best text rendering. Note that to -#: workaround window managers not doing gamma-corrected blending kitty -#: makes background_opacity non-linear which means, especially for -#: light backgrounds you might need to make the value much lower than -#: you expect to get good results, see 6218 -#: for details. - -#: If you want to dynamically change transparency of windows, set -#: dynamic_background_opacity to yes (this is off by default as it has -#: a performance cost). Changing this option when reloading the config -#: will only work if dynamic_background_opacity was enabled in the -#: original config. - -# background_blur 0 - -#: Set to a positive value to enable background blur (blurring of the -#: visuals behind a transparent window) on platforms that support it. -#: Only takes effect when background_opacity is less than one. On -#: macOS, this will also control the blur radius (amount of blurring). -#: Setting it to too high a value will cause severe performance issues -#: and/or rendering artifacts. Usually, values up to 64 work well. -#: Note that this might cause performance issues, depending on how the -#: platform implements it, so use with care. Currently supported on -#: macOS and KDE. - -# background_image none - -#: Path to a background image. Must be in PNG/JPEG/WEBP/TIFF/GIF/BMP -#: format. - -# background_image_layout tiled - -#: Whether to tile, scale or clamp the background image. The value can -#: be one of tiled, mirror-tiled, scaled, clamped, centered or -#: cscaled. The scaled and cscaled values scale the image to the -#: window size, with cscaled preserving the image aspect ratio. - -# background_image_linear no - -#: When background image is scaled, whether linear interpolation -#: should be used. - -# transparent_background_colors - -#: A space separated list of upto 7 colors, with opacity. When the -#: background color of a cell matches one of these colors, it is -#: rendered semi-transparent using the specified opacity. - -#: Useful in more complex UIs like editors where you could want more -#: than a single background color to be rendered as transparent, for -#: instance, for a cursor highlight line background or a highlighted -#: block. Terminal applications can set this color using The kitty -#: color control escape code. - -#: The syntax for specifying colors is: color@opacity, where the -#: @opacity part is optional. When unspecified, the value of -#: background_opacity is used. For example:: - -#: transparent_background_colors red@0.5 #00ff00@0.3 - -# dynamic_background_opacity no - -#: Allow changing of the background_opacity dynamically, using either -#: keyboard shortcuts (increase_background_opacity and -#: decrease_background_opacity) or the remote control facility. -#: Changing this option by reloading the config is not supported. - -# background_tint 0.0 - -#: How much to tint the background image by the background color. This -#: option makes it easier to read the text. Tinting is done using the -#: current background color for each window. This option applies only -#: if background_opacity is set and transparent windows are supported -#: or background_image is set. - -# background_tint_gaps 1.0 - -#: How much to tint the background image at the window gaps by the -#: background color, after applying background_tint. Since this is -#: multiplicative with background_tint, it can be used to lighten the -#: tint over the window gaps for a *separated* look. - -# dim_opacity 0.4 - -#: How much to dim text that has the DIM/FAINT attribute set. One -#: means no dimming and zero means fully dimmed (i.e. invisible). - -# selection_foreground #000000 -# selection_background #fffacd - -#: The foreground and background colors for text selected with the -#: mouse. Setting both of these to none will cause a "reverse video" -#: effect for selections, where the selection will be the cell text -#: color and the text will become the cell background color. Setting -#: only selection_foreground to none will cause the foreground color -#: to be used unchanged. Note that these colors can be overridden by -#: the program running in the terminal. - -#: The color table {{{ - -#: The 256 terminal colors. There are 8 basic colors, each color has a -#: dull and bright version, for the first 16 colors. You can set the -#: remaining 240 colors as color16 to color255. - -# color0 #000000 -# color8 #767676 - -#: black - -# color1 #cc0403 -# color9 #f2201f - -#: red - -# color2 #19cb00 -# color10 #23fd00 - -#: green - -# color3 #cecb00 -# color11 #fffd00 - -#: yellow - -# color4 #0d73cc -# color12 #1a8fff - -#: blue - -# color5 #cb1ed1 -# color13 #fd28ff - -#: magenta - -# color6 #0dcdcd -# color14 #14ffff - -#: cyan - -# color7 #dddddd -# color15 #ffffff - -#: white - -# mark1_foreground black - -#: Color for marks of type 1 - -# mark1_background #98d3cb - -#: Color for marks of type 1 (light steel blue) - -# mark2_foreground black - -#: Color for marks of type 2 - -# mark2_background #f2dcd3 - -#: Color for marks of type 1 (beige) - -# mark3_foreground black - -#: Color for marks of type 3 - -# mark3_background #f274bc - -#: Color for marks of type 3 (violet) - -#: }}} - -#: }}} - -#: Advanced {{{ - -# shell . - -#: The shell program to execute. The default value of . means to use -#: the value of of the SHELL environment variable or if unset, -#: whatever shell is set as the default shell for the current user. -#: Note that on macOS if you change this, you might need to add -#: --login and --interactive to ensure that the shell starts in -#: interactive mode and reads its startup rc files. Environment -#: variables are expanded in this setting. - -# editor . - -#: The terminal based text editor (such as vim or nano) to use when -#: editing the kitty config file or similar tasks. - -#: The default value of . means to use the environment variables -#: VISUAL and EDITOR in that order. If these variables aren't set, -#: kitty will run your shell ($SHELL -l -i -c env) to see if your -#: shell startup rc files set VISUAL or EDITOR. If that doesn't work, -#: kitty will cycle through various known editors (vim, emacs, etc.) -#: and take the first one that exists on your system. - -# close_on_child_death no - -#: Close the window when the child process (usually the shell) exits. -#: With the default value no, the terminal will remain open when the -#: child exits as long as there are still other processes outputting -#: to the terminal (for example disowned or backgrounded processes). -#: When enabled with yes, the window will close as soon as the child -#: process exits. Note that setting it to yes means that any -#: background processes still using the terminal can fail silently -#: because their stdout/stderr/stdin no longer work. - -# remote_control_password - -#: Allow other programs to control kitty using passwords. This option -#: can be specified multiple times to add multiple passwords. If no -#: passwords are present kitty will ask the user for permission if a -#: program tries to use remote control with a password. A password can -#: also *optionally* be associated with a set of allowed remote -#: control actions. For example:: - -#: remote_control_password "my passphrase" get-colors set-colors focus-window focus-tab - -#: Only the specified actions will be allowed when using this -#: password. Glob patterns can be used too, for example:: - -#: remote_control_password "my passphrase" set-tab-* resize-* - -#: To get a list of available actions, run:: - -#: kitten @ --help - -#: A set of actions to be allowed when no password is sent can be -#: specified by using an empty password. For example:: - -#: remote_control_password "" *-colors - -#: Finally, the path to a python module can be specified that provides -#: a function is_cmd_allowed that is used to check every remote -#: control command. For example:: - -#: remote_control_password "my passphrase" my_rc_command_checker.py - -#: Relative paths are resolved from the kitty configuration directory. -#: See rc_custom_auth for details. - -# allow_remote_control no - -#: Allow other programs to control kitty. If you turn this on, other -#: programs can control all aspects of kitty, including sending text -#: to kitty windows, opening new windows, closing windows, reading the -#: content of windows, etc. Note that this even works over SSH -#: connections. The default setting of no prevents any form of remote -#: control. The meaning of the various values are: - -#: password -#: Remote control requests received over both the TTY device and the socket -#: are confirmed based on passwords, see remote_control_password. - -#: socket-only -#: Remote control requests received over a socket are accepted -#: unconditionally. Requests received over the TTY are denied. -#: See listen_on. - -#: socket -#: Remote control requests received over a socket are accepted -#: unconditionally. Requests received over the TTY are confirmed based on -#: password. - -#: no -#: Remote control is completely disabled. - -#: yes -#: Remote control requests are always accepted. - -# listen_on none - -#: Listen to the specified socket for remote control connections. Note -#: that this will apply to all kitty instances. It can be overridden -#: by the kitty --listen-on command line option. For UNIX sockets, -#: such as unix:${TEMP}/mykitty or unix:@mykitty (on Linux). -#: Environment variables are expanded and relative paths are resolved -#: with respect to the temporary directory. If {kitty_pid} is present, -#: then it is replaced by the PID of the kitty process, otherwise the -#: PID of the kitty process is appended to the value, with a hyphen. -#: For TCP sockets such as tcp:localhost:0 a random port is always -#: used even if a non-zero port number is specified. See the help for -#: kitty --listen-on for more details. Note that this will be ignored -#: unless allow_remote_control is set to either: yes, socket or -#: socket-only. Changing this option by reloading the config is not -#: supported. - -# env - -#: Specify the environment variables to be set in all child processes. -#: Using the name with an equal sign (e.g. env VAR=) will set it to -#: the empty string. Specifying only the name (e.g. env VAR) will -#: remove the variable from the child process' environment. Note that -#: environment variables are expanded recursively, for example:: - -#: env VAR1=a -#: env VAR2=${HOME}/${VAR1}/b - -#: The value of VAR2 will be /a/b. - -# filter_notification - -#: Specify rules to filter out notifications sent by applications -#: running in kitty. Can be specified multiple times to create -#: multiple filter rules. A rule specification is of the form -#: field:regexp. A filter rule can match on any of the fields: title, -#: body, app, type. The special value of all filters out all -#: notifications. Rules can be combined using Boolean operators. Some -#: examples:: - -#: filter_notification title:hello or body:"abc.*def" -#: # filter out notification from vim except for ones about updates, (?i) -#: # makes matching case insensitive. -#: filter_notification app:"[ng]?vim" and not body:"(?i)update" -#: # filter out all notifications -#: filter_notification all - -#: The field app is the name of the application sending the -#: notification and type is the type of the notification. Not all -#: applications will send these fields, so you can also match on the -#: title and body of the notification text. More sophisticated -#: programmatic filtering and custom actions on notifications can be -#: done by creating a notifications.py file in the kitty config -#: directory (~/.config/kitty). An annotated sample is available -#: . - -# watcher - -#: Path to python file which will be loaded for watchers -#: . Can be -#: specified more than once to load multiple watchers. The watchers -#: will be added to every kitty window. Relative paths are resolved -#: relative to the kitty config directory. Note that reloading the -#: config will only affect windows created after the reload. - -# exe_search_path - -#: Control where kitty finds the programs to run. The default search -#: order is: First search the system wide PATH, then ~/.local/bin and -#: ~/bin. If still not found, the PATH defined in the login shell -#: after sourcing all its startup files is tried. Finally, if present, -#: the PATH specified by the env option is tried. - -#: This option allows you to prepend, append, or remove paths from -#: this search order. It can be specified multiple times for multiple -#: paths. A simple path will be prepended to the search order. A path -#: that starts with the + sign will be append to the search order, -#: after ~/bin above. A path that starts with the - sign will be -#: removed from the entire search order. For example:: - -#: exe_search_path /some/prepended/path -#: exe_search_path +/some/appended/path -#: exe_search_path -/some/excluded/path - -# update_check_interval 24 - -#: The interval to periodically check if an update to kitty is -#: available (in hours). If an update is found, a system notification -#: is displayed informing you of the available update. The default is -#: to check every 24 hours, set to zero to disable. Update checking is -#: only done by the official binary builds. Distro packages or source -#: builds do not do update checking. Changing this option by reloading -#: the config is not supported. - -# startup_session none - -#: Path to a session file to use for all kitty instances. Can be -#: overridden by using the kitty --session =none command line option -#: for individual instances. See sessions -#: in the kitty -#: documentation for details. Note that relative paths are interpreted -#: with respect to the kitty config directory. Environment variables -#: in the path are expanded. Changing this option by reloading the -#: config is not supported. Note that if kitty is invoked with command -#: line arguments specifying a command to run, this option is ignored. - -# clipboard_control write-clipboard write-primary read-clipboard-ask read-primary-ask - -#: Allow programs running in kitty to read and write from the -#: clipboard. You can control exactly which actions are allowed. The -#: possible actions are: write-clipboard, read-clipboard, write- -#: primary, read-primary, read-clipboard-ask, read-primary-ask. The -#: default is to allow writing to the clipboard and primary selection -#: and to ask for permission when a program tries to read from the -#: clipboard. Note that disabling the read confirmation is a security -#: risk as it means that any program, even the ones running on a -#: remote server via SSH can read your clipboard. See also -#: clipboard_max_size. - -# clipboard_max_size 512 - -#: The maximum size (in MB) of data from programs running in kitty -#: that will be stored for writing to the system clipboard. A value of -#: zero means no size limit is applied. See also clipboard_control. - -# file_transfer_confirmation_bypass - -#: The password that can be supplied to the file transfer kitten -#: to skip the -#: transfer confirmation prompt. This should only be used when -#: initiating transfers from trusted computers, over trusted networks -#: or encrypted transports, as it allows any programs running on the -#: remote machine to read/write to the local filesystem, without -#: permission. - -# allow_hyperlinks yes - -#: Process hyperlink escape sequences (OSC 8). If disabled OSC 8 -#: escape sequences are ignored. Otherwise they become clickable -#: links, that you can click with the mouse or by using the hints -#: kitten . The -#: special value of ask means that kitty will ask before opening the -#: link when clicked. - -# shell_integration enabled - -#: Enable shell integration on supported shells. This enables features -#: such as jumping to previous prompts, browsing the output of the -#: previous command in a pager, etc. on supported shells. Set to -#: disabled to turn off shell integration, completely. It is also -#: possible to disable individual features, set to a space separated -#: list of these values: no-rc, no-cursor, no-title, no-cwd, no- -#: prompt-mark, no-complete, no-sudo. See Shell integration -#: for details. - -# allow_cloning ask - -#: Control whether programs running in the terminal can request new -#: windows to be created. The canonical example is clone-in-kitty -#: . -#: By default, kitty will ask for permission for each clone request. -#: Allowing cloning unconditionally gives programs running in the -#: terminal (including over SSH) permission to execute arbitrary code, -#: as the user who is running the terminal, on the computer that the -#: terminal is running on. - -# clone_source_strategies venv,conda,env_var,path - -#: Control what shell code is sourced when running clone-in-kitty in -#: the newly cloned window. The supported strategies are: - -#: venv -#: Source the file $VIRTUAL_ENV/bin/activate. This is used by the -#: Python stdlib venv module and allows cloning venvs automatically. -#: conda -#: Run conda activate $CONDA_DEFAULT_ENV. This supports the virtual -#: environments created by conda. -#: env_var -#: Execute the contents of the environment variable -#: KITTY_CLONE_SOURCE_CODE with eval. -#: path -#: Source the file pointed to by the environment variable -#: KITTY_CLONE_SOURCE_PATH. - -#: This option must be a comma separated list of the above values. -#: Only the first valid match, in the order specified, is sourced. - -# notify_on_cmd_finish never - -#: Show a desktop notification when a long-running command finishes -#: (needs shell_integration). The possible values are: - -#: never -#: Never send a notification. - -#: unfocused -#: Only send a notification when the window does not have keyboard focus. - -#: invisible -#: Only send a notification when the window both is unfocused and not visible -#: to the user, for example, because it is in an inactive tab or its OS window -#: is not currently visible (on platforms that support OS window visibility querying -#: this considers an OS Window visible iff it is active). - -#: always -#: Always send a notification, regardless of window state. - -#: There are two optional arguments: - -#: First, the minimum duration for what is considered a long running -#: command. The default is 5 seconds. Specify a second argument to set -#: the duration. For example: invisible 15. Do not set the value too -#: small, otherwise a command that launches a new OS Window and exits -#: will spam a notification. - -#: Second, the action to perform. The default is notify. The possible -#: values are: - -#: notify -#: Send a desktop notification. The subsequent arguments are optional and specify when -#: the notification is automatically cleared. The set of possible events when the notification is -#: cleared are: focus and next. focus means that when the notification -#: policy is unfocused or invisible the notification is automatically cleared -#: when the window regains focus. The value of next means that the previous notification -#: is cleared when the next notification is shown. The default when no arguments are specified -#: is: focus next. - -#: bell -#: Ring the terminal bell. - -#: command -#: Run a custom command. All subsequent arguments are the cmdline to run. - -#: Some more examples:: - -#: # Send a notification when a command takes more than 5 seconds in an unfocused window -#: notify_on_cmd_finish unfocused -#: # Send a notification when a command takes more than 10 seconds in a invisible window -#: notify_on_cmd_finish invisible 10.0 -#: # Ring a bell when a command takes more than 10 seconds in a invisible window -#: notify_on_cmd_finish invisible 10.0 bell -#: # Run 'notify-send' when a command takes more than 10 seconds in a invisible window -#: # Here %c is replaced by the current command line and %s by the job exit code -#: notify_on_cmd_finish invisible 10.0 command notify-send "job finished with status: %s" %c -#: # Do not clear previous notification when next command finishes or window regains focus -#: notify_on_cmd_finish invisible 5.0 notify - -# term xterm-kitty - -#: The value of the TERM environment variable to set. Changing this -#: can break many terminal programs, only change it if you know what -#: you are doing, not because you read some advice on "Stack Overflow" -#: to change it. The TERM variable is used by various programs to get -#: information about the capabilities and behavior of the terminal. If -#: you change it, depending on what programs you run, and how -#: different the terminal you are changing it to is, various things -#: from key-presses, to colors, to various advanced features may not -#: work. Changing this option by reloading the config will only affect -#: newly created windows. - -# terminfo_type path - -#: The value of the TERMINFO environment variable to set. This -#: variable is used by programs running in the terminal to search for -#: terminfo databases. The default value of path causes kitty to set -#: it to a filesystem location containing the kitty terminfo database. -#: A value of direct means put the entire database into the env var -#: directly. This can be useful when connecting to containers, for -#: example. But, note that not all software supports this. A value of -#: none means do not touch the variable. - -# forward_stdio no - -#: Forward STDOUT and STDERR of the kitty process to child processes. -#: This is useful for debugging as it allows child processes to print -#: to kitty's STDOUT directly. For example, echo hello world -#: >&$KITTY_STDIO_FORWARDED in a shell will print to the parent -#: kitty's STDOUT. Sets the KITTY_STDIO_FORWARDED=fdnum environment -#: variable so child processes know about the forwarding. Note that on -#: macOS this prevents the shell from being run via the login utility -#: so getlogin() will not work in programs run in this session. - -# menu_map - -#: Specify entries for various menus in kitty. Currently only the -#: global menubar on macOS is supported. For example:: - -#: menu_map global "Actions::Launch something special" launch --hold --type=os-window sh -c "echo hello world" - -#: This will create a menu entry named "Launch something special" in -#: an "Actions" menu in the macOS global menubar. Sub-menus can be -#: created by adding more levels separated by the :: characters. - -#: }}} - -#: OS specific tweaks {{{ - -# wayland_titlebar_color system - -#: The color of the kitty window's titlebar on Wayland systems with -#: client side window decorations such as GNOME. A value of system -#: means to use the default system colors, a value of background means -#: to use the background color of the currently active kitty window -#: and finally you can use an arbitrary color, such as #12af59 or red. - -# macos_titlebar_color system - -#: The color of the kitty window's titlebar on macOS. A value of -#: system means to use the default system color, light or dark can -#: also be used to set it explicitly. A value of background means to -#: use the background color of the currently active window and finally -#: you can use an arbitrary color, such as #12af59 or red. WARNING: -#: This option works by using a hack when arbitrary color (or -#: background) is configured, as there is no proper Cocoa API for it. -#: It sets the background color of the entire window and makes the -#: titlebar transparent. As such it is incompatible with -#: background_opacity. If you want to use both, you are probably -#: better off just hiding the titlebar with hide_window_decorations. - -# macos_option_as_alt no - -#: Use the Option key as an Alt key on macOS. With this set to no, -#: kitty will use the macOS native Option+Key to enter Unicode -#: character behavior. This will break any Alt+Key keyboard shortcuts -#: in your terminal programs, but you can use the macOS Unicode input -#: technique. You can use the values: left, right or both to use only -#: the left, right or both Option keys as Alt, instead. Note that -#: kitty itself always treats Option the same as Alt. This means you -#: cannot use this option to configure different kitty shortcuts for -#: Option+Key vs. Alt+Key. Also, any kitty shortcuts using -#: Option/Alt+Key will take priority, so that any such key presses -#: will not be passed to terminal programs running inside kitty. -#: Changing this option by reloading the config is not supported. - -# macos_hide_from_tasks no - -#: Hide the kitty window from running tasks on macOS (⌘+Tab and the -#: Dock). Changing this option by reloading the config is not -#: supported. - -# macos_quit_when_last_window_closed no - -#: Have kitty quit when all the top-level windows are closed on macOS. -#: By default, kitty will stay running, even with no open windows, as -#: is the expected behavior on macOS. - -# macos_window_resizable yes - -#: Disable this if you want kitty top-level OS windows to not be -#: resizable on macOS. - -# macos_thicken_font 0 - -#: Draw an extra border around the font with the given width, to -#: increase legibility at small font sizes on macOS. For example, a -#: value of 0.75 will result in rendering that looks similar to sub- -#: pixel antialiasing at common font sizes. Note that in modern kitty, -#: this option is obsolete (although still supported). Consider using -#: text_composition_strategy instead. - -# macos_traditional_fullscreen no - -#: Use the macOS traditional full-screen transition, that is faster, -#: but less pretty. - -# macos_show_window_title_in all - -#: Control where the window title is displayed on macOS. A value of -#: window will show the title of the currently active window at the -#: top of the macOS window. A value of menubar will show the title of -#: the currently active window in the macOS global menu bar, making -#: use of otherwise wasted space. A value of all will show the title -#: in both places, and none hides the title. See -#: macos_menubar_title_max_length for how to control the length of the -#: title in the menu bar. - -# macos_menubar_title_max_length 0 - -#: The maximum number of characters from the window title to show in -#: the macOS global menu bar. Values less than one means that there is -#: no maximum limit. - -# macos_custom_beam_cursor no - -#: Use a custom mouse cursor for macOS that is easier to see on both -#: light and dark backgrounds. Nowadays, the default macOS cursor -#: already comes with a white border. WARNING: this might make your -#: mouse cursor invisible on dual GPU machines. Changing this option -#: by reloading the config is not supported. - -# macos_colorspace srgb - -#: The colorspace in which to interpret terminal colors. The default -#: of srgb will cause colors to match those seen in web browsers. The -#: value of default will use whatever the native colorspace of the -#: display is. The value of displayp3 will use Apple's special -#: snowflake display P3 color space, which will result in over -#: saturated (brighter) colors with some color shift. Reloading -#: configuration will change this value only for newly created OS -#: windows. - -# linux_display_server auto - -#: Choose between Wayland and X11 backends. By default, an appropriate -#: backend based on the system state is chosen automatically. Set it -#: to x11 or wayland to force the choice. Changing this option by -#: reloading the config is not supported. - -# wayland_enable_ime yes - -#: Enable Input Method Extension on Wayland. This is typically used -#: for inputting text in East Asian languages. However, its -#: implementation in Wayland is often buggy and introduces latency -#: into the input loop, so disable this if you know you dont need it. -#: Changing this option by reloading the config is not supported, it -#: will not have any effect. - -#: }}} - -#: Keyboard shortcuts {{{ - -#: Keys are identified simply by their lowercase Unicode characters. -#: For example: a for the A key, [ for the left square bracket key, -#: etc. For functional keys, such as Enter or Escape, the names are -#: present at Functional key definitions -#: . -#: For modifier keys, the names are ctrl (control, ⌃), shift (⇧), alt -#: (opt, option, ⌥), super (cmd, command, ⌘). - -#: Simple shortcut mapping is done with the map directive. For full -#: details on advanced mapping including modal and per application -#: maps, see mapping . Some -#: quick examples to illustrate common tasks:: - -#: # unmap a keyboard shortcut, passing it to the program running in kitty -#: map kitty_mod+space -#: # completely ignore a keyboard event -#: map ctrl+alt+f1 discard_event -#: # combine multiple actions -#: map kitty_mod+e combine : new_window : next_layout -#: # multi-key shortcuts -#: map ctrl+x>ctrl+y>z action - -#: The full list of actions that can be mapped to key presses is -#: available here . - -# kitty_mod ctrl+shift - -#: Special modifier key alias for default shortcuts. You can change -#: the value of this option to alter all default shortcuts that use -#: kitty_mod. - -# clear_all_shortcuts no - -#: Remove all shortcut definitions up to this point. Useful, for -#: instance, to remove the default shortcuts. - -# action_alias - -#: E.g. action_alias launch_tab launch --type=tab --cwd=current - -#: Define action aliases to avoid repeating the same options in -#: multiple mappings. Aliases can be defined for any action and will -#: be expanded recursively. For example, the above alias allows you to -#: create mappings to launch a new tab in the current working -#: directory without duplication:: - -#: map f1 launch_tab vim -#: map f2 launch_tab emacs - -#: Similarly, to alias kitten invocation:: - -#: action_alias hints kitten hints --hints-offset=0 - -# kitten_alias - -#: E.g. kitten_alias hints hints --hints-offset=0 - -#: Like action_alias above, but specifically for kittens. Generally, -#: prefer to use action_alias. This option is a legacy version, -#: present for backwards compatibility. It causes all invocations of -#: the aliased kitten to be substituted. So the example above will -#: cause all invocations of the hints kitten to have the --hints- -#: offset=0 option applied. - -#: Clipboard {{{ - -#: Copy to clipboard - -# map kitty_mod+c copy_to_clipboard -# map cmd+c copy_to_clipboard - -#:: There is also a copy_or_interrupt action that can be optionally -#:: mapped to Ctrl+C. It will copy only if there is a selection and -#:: send an interrupt otherwise. Similarly, -#:: copy_and_clear_or_interrupt will copy and clear the selection or -#:: send an interrupt if there is no selection. - -#: Paste from clipboard - -# map kitty_mod+v paste_from_clipboard -# map cmd+v paste_from_clipboard - -#: Paste from selection - -# map kitty_mod+s paste_from_selection -# map shift+insert paste_from_selection - -#: Pass selection to program - -# map kitty_mod+o pass_selection_to_program - -#:: You can also pass the contents of the current selection to any -#:: program with pass_selection_to_program. By default, the system's -#:: open program is used, but you can specify your own, the selection -#:: will be passed as a command line argument to the program. For -#:: example:: - -#:: map kitty_mod+o pass_selection_to_program firefox - -#:: You can pass the current selection to a terminal program running -#:: in a new kitty window, by using the @selection placeholder:: - -#:: map kitty_mod+y new_window less @selection - -#: }}} - -#: Scrolling {{{ - -#: Scroll line up - -# map kitty_mod+up scroll_line_up -# map kitty_mod+k scroll_line_up -# map opt+cmd+page_up scroll_line_up -# map cmd+up scroll_line_up - -#: Scroll line down - -# map kitty_mod+down scroll_line_down -# map kitty_mod+j scroll_line_down -# map opt+cmd+page_down scroll_line_down -# map cmd+down scroll_line_down - -#: Scroll page up - -# map kitty_mod+page_up scroll_page_up -# map cmd+page_up scroll_page_up - -#: Scroll page down - -# map kitty_mod+page_down scroll_page_down -# map cmd+page_down scroll_page_down - -#: Scroll to top - -# map kitty_mod+home scroll_home -# map cmd+home scroll_home - -#: Scroll to bottom - -# map kitty_mod+end scroll_end -# map cmd+end scroll_end - -#: Scroll to previous shell prompt - -# map kitty_mod+z scroll_to_prompt -1 - -#:: Use a parameter of 0 for scroll_to_prompt to scroll to the last -#:: jumped to or the last clicked position. Requires shell -#:: integration -#:: to work. - -#: Scroll to next shell prompt - -# map kitty_mod+x scroll_to_prompt 1 - -#: Browse scrollback buffer in pager - -# map kitty_mod+h show_scrollback - -#:: You can pipe the contents of the current screen and history -#:: buffer as STDIN to an arbitrary program using launch --stdin- -#:: source. For example, the following opens the scrollback buffer in -#:: less in an overlay window:: - -#:: map f1 launch --stdin-source=@screen_scrollback --stdin-add-formatting --type=overlay less +G -R - -#:: For more details on piping screen and buffer contents to external -#:: programs, see launch . - -#: Browse output of the last shell command in pager - -# map kitty_mod+g show_last_command_output - -#:: You can also define additional shortcuts to get the command -#:: output. For example, to get the first command output on screen:: - -#:: map f1 show_first_command_output_on_screen - -#:: To get the command output that was last accessed by a keyboard -#:: action or mouse action:: - -#:: map f1 show_last_visited_command_output - -#:: You can pipe the output of the last command run in the shell -#:: using the launch action. For example, the following opens the -#:: output in less in an overlay window:: - -#:: map f1 launch --stdin-source=@last_cmd_output --stdin-add-formatting --type=overlay less +G -R - -#:: To get the output of the first command on the screen, use -#:: @first_cmd_output_on_screen. To get the output of the last jumped -#:: to command, use @last_visited_cmd_output. - -#:: Requires shell integration -#:: to work. - -#: }}} - -#: Window management {{{ - -#: New window - -# map kitty_mod+enter new_window -# map cmd+enter new_window - -#:: You can open a new kitty window running an arbitrary program, for -#:: example:: - -#:: map kitty_mod+y launch mutt - -#:: You can open a new window with the current working directory set -#:: to the working directory of the current window using:: - -#:: map ctrl+alt+enter launch --cwd=current - -#:: You can open a new window that is allowed to control kitty via -#:: the kitty remote control facility with launch --allow-remote- -#:: control. Any programs running in that window will be allowed to -#:: control kitty. For example:: - -#:: map ctrl+enter launch --allow-remote-control some_program - -#:: You can open a new window next to the currently active window or -#:: as the first window, with:: - -#:: map ctrl+n launch --location=neighbor -#:: map ctrl+f launch --location=first - -#:: For more details, see launch -#:: . - -#: New OS window - -# map kitty_mod+n new_os_window -# map cmd+n new_os_window - -#:: Works like new_window above, except that it opens a top-level OS -#:: window. In particular you can use new_os_window_with_cwd to open -#:: a window with the current working directory. - -#: Close window - -# map kitty_mod+w close_window -# map shift+cmd+d close_window - -#: Next window - -# map kitty_mod+] next_window - -#: Previous window - -# map kitty_mod+[ previous_window - -#: Move window forward - -# map kitty_mod+f move_window_forward - -#: Move window backward - -# map kitty_mod+b move_window_backward - -#: Move window to top - -# map kitty_mod+` move_window_to_top - -#: Start resizing window - -# map kitty_mod+r start_resizing_window -# map cmd+r start_resizing_window - -#: First window - -# map kitty_mod+1 first_window -# map cmd+1 first_window - -#: Second window - -# map kitty_mod+2 second_window -# map cmd+2 second_window - -#: Third window - -# map kitty_mod+3 third_window -# map cmd+3 third_window - -#: Fourth window - -# map kitty_mod+4 fourth_window -# map cmd+4 fourth_window - -#: Fifth window - -# map kitty_mod+5 fifth_window -# map cmd+5 fifth_window - -#: Sixth window - -# map kitty_mod+6 sixth_window -# map cmd+6 sixth_window - -#: Seventh window - -# map kitty_mod+7 seventh_window -# map cmd+7 seventh_window - -#: Eighth window - -# map kitty_mod+8 eighth_window -# map cmd+8 eighth_window - -#: Ninth window - -# map kitty_mod+9 ninth_window -# map cmd+9 ninth_window - -#: Tenth window - -# map kitty_mod+0 tenth_window - -#: Visually select and focus window - -# map kitty_mod+f7 focus_visible_window - -#:: Display overlay numbers and alphabets on the window, and switch -#:: the focus to the window when you press the key. When there are -#:: only two windows, the focus will be switched directly without -#:: displaying the overlay. You can change the overlay characters and -#:: their order with option visual_window_select_characters. - -#: Visually swap window with another - -# map kitty_mod+f8 swap_with_window - -#:: Works like focus_visible_window above, but swaps the window. - -#: }}} - -#: Tab management {{{ - -#: Next tab - -# map kitty_mod+right next_tab -# map shift+cmd+] next_tab -# map ctrl+tab next_tab - -#: Previous tab - -# map kitty_mod+left previous_tab -# map shift+cmd+[ previous_tab -# map ctrl+shift+tab previous_tab - -#: New tab - -# map kitty_mod+t new_tab -# map cmd+t new_tab - -#: Close tab - -# map kitty_mod+q close_tab -# map cmd+w close_tab - -#: Close OS window - -# map shift+cmd+w close_os_window - -#: Move tab forward - -# map kitty_mod+. move_tab_forward - -#: Move tab backward - -# map kitty_mod+, move_tab_backward - -#: Set tab title - -# map kitty_mod+alt+t set_tab_title -# map shift+cmd+i set_tab_title - - -#: You can also create shortcuts to go to specific tabs, with 1 being -#: the first tab, 2 the second tab and -1 being the previously active -#: tab, -2 being the tab active before the previously active tab and -#: so on. Any number larger than the number of tabs goes to the last -#: tab and any number less than the number of previously used tabs in -#: the history goes to the oldest previously used tab in the history:: - -#: map ctrl+alt+1 goto_tab 1 -#: map ctrl+alt+2 goto_tab 2 - -#: Just as with new_window above, you can also pass the name of -#: arbitrary commands to run when using new_tab and new_tab_with_cwd. -#: Finally, if you want the new tab to open next to the current tab -#: rather than at the end of the tabs list, use:: - -#: map ctrl+t new_tab !neighbor [optional cmd to run] -#: }}} - -#: Layout management {{{ - -#: Next layout - -# map kitty_mod+l next_layout - - -#: You can also create shortcuts to switch to specific layouts:: - -#: map ctrl+alt+t goto_layout tall -#: map ctrl+alt+s goto_layout stack - -#: Similarly, to switch back to the previous layout:: - -#: map ctrl+alt+p last_used_layout - -#: There is also a toggle_layout action that switches to the named -#: layout or back to the previous layout if in the named layout. -#: Useful to temporarily "zoom" the active window by switching to the -#: stack layout:: - -#: map ctrl+alt+z toggle_layout stack -#: }}} - -#: Font sizes {{{ - -#: You can change the font size for all top-level kitty OS windows at -#: a time or only the current one. - -#: Increase font size - -# map kitty_mod+equal change_font_size all +2.0 -# map kitty_mod+plus change_font_size all +2.0 -# map kitty_mod+kp_add change_font_size all +2.0 -# map cmd+plus change_font_size all +2.0 -# map cmd+equal change_font_size all +2.0 -# map shift+cmd+equal change_font_size all +2.0 - -#: Decrease font size - -# map kitty_mod+minus change_font_size all -2.0 -# map kitty_mod+kp_subtract change_font_size all -2.0 -# map cmd+minus change_font_size all -2.0 -# map shift+cmd+minus change_font_size all -2.0 - -#: Reset font size - -# map kitty_mod+backspace change_font_size all 0 -# map cmd+0 change_font_size all 0 - - -#: To setup shortcuts for specific font sizes:: - -#: map kitty_mod+f6 change_font_size all 10.0 - -#: To setup shortcuts to change only the current OS window's font -#: size:: - -#: map kitty_mod+f6 change_font_size current 10.0 -#: }}} - -#: Select and act on visible text {{{ - -#: Use the hints kitten to select text and either pass it to an -#: external program or insert it into the terminal or copy it to the -#: clipboard. - -#: Open URL - -# map kitty_mod+e open_url_with_hints - -#:: Open a currently visible URL using the keyboard. The program used -#:: to open the URL is specified in open_url_with. - -#: Insert selected path - -# map kitty_mod+p>f kitten hints --type path --program - - -#:: Select a path/filename and insert it into the terminal. Useful, -#:: for instance to run git commands on a filename output from a -#:: previous git command. - -#: Open selected path - -# map kitty_mod+p>shift+f kitten hints --type path - -#:: Select a path/filename and open it with the default open program. - -#: Insert selected line - -# map kitty_mod+p>l kitten hints --type line --program - - -#:: Select a line of text and insert it into the terminal. Useful for -#:: the output of things like: `ls -1`. - -#: Insert selected word - -# map kitty_mod+p>w kitten hints --type word --program - - -#:: Select words and insert into terminal. - -#: Insert selected hash - -# map kitty_mod+p>h kitten hints --type hash --program - - -#:: Select something that looks like a hash and insert it into the -#:: terminal. Useful with git, which uses SHA1 hashes to identify -#:: commits. - -#: Open the selected file at the selected line - -# map kitty_mod+p>n kitten hints --type linenum - -#:: Select something that looks like filename:linenum and open it in -#:: your default editor at the specified line number. - -#: Open the selected hyperlink - -# map kitty_mod+p>y kitten hints --type hyperlink - -#:: Select a hyperlink (i.e. a URL that has been marked as such by -#:: the terminal program, for example, by `ls --hyperlink=auto`). - - -#: The hints kitten has many more modes of operation that you can map -#: to different shortcuts. For a full description see hints kitten -#: . -#: }}} - -#: Miscellaneous {{{ - -#: Show documentation - -# map kitty_mod+f1 show_kitty_doc overview - -#: Toggle fullscreen - -# map kitty_mod+f11 toggle_fullscreen -# map ctrl+cmd+f toggle_fullscreen - -#: Toggle maximized - -# map kitty_mod+f10 toggle_maximized - -#: Toggle macOS secure keyboard entry - -# map opt+cmd+s toggle_macos_secure_keyboard_entry - -#: Unicode input - -# map kitty_mod+u kitten unicode_input -# map ctrl+cmd+space kitten unicode_input - -#: Edit config file - -# map kitty_mod+f2 edit_config_file -# map cmd+, edit_config_file - -#: Open the kitty command shell - -# map kitty_mod+escape kitty_shell window - -#:: Open the kitty shell in a new window / tab / overlay / os_window -#:: to control kitty using commands. - -#: Increase background opacity - -# map kitty_mod+a>m set_background_opacity +0.1 - -#: Decrease background opacity - -# map kitty_mod+a>l set_background_opacity -0.1 - -#: Make background fully opaque - -# map kitty_mod+a>1 set_background_opacity 1 - -#: Reset background opacity - -# map kitty_mod+a>d set_background_opacity default - -#: Reset the terminal - -# map kitty_mod+delete clear_terminal reset active -# map opt+cmd+r clear_terminal reset active - -#:: You can create shortcuts to clear/reset the terminal. For -#:: example:: - -#:: # Reset the terminal -#:: map f1 clear_terminal reset active -#:: # Clear the terminal screen by erasing all contents -#:: map f1 clear_terminal clear active -#:: # Clear the terminal scrollback by erasing it -#:: map f1 clear_terminal scrollback active -#:: # Scroll the contents of the screen into the scrollback -#:: map f1 clear_terminal scroll active -#:: # Clear everything on screen up to the line with the cursor or the start of the current prompt (needs shell integration) -#:: map f1 clear_terminal to_cursor active -#:: # Same as above except cleared lines are moved into scrollback -#:: map f1 clear_terminal to_cursor_scroll active - -#:: If you want to operate on all kitty windows instead of just the -#:: current one, use all instead of active. - -#:: Some useful functions that can be defined in the shell rc files -#:: to perform various kinds of clearing of the current window: - -#:: .. code-block:: sh - -#:: clear-only-screen() { -#:: printf "\e[H\e[2J" -#:: } - -#:: clear-screen-and-scrollback() { -#:: printf "\e[H\e[3J" -#:: } - -#:: clear-screen-saving-contents-in-scrollback() { -#:: printf "\e[H\e[22J" -#:: } - -#:: For instance, using these escape codes, it is possible to remap -#:: Ctrl+L to both scroll the current screen contents into the -#:: scrollback buffer and clear the screen, instead of just clearing -#:: the screen. For ZSH, in ~/.zshrc, add: - -#:: .. code-block:: zsh - -#:: ctrl_l() { -#:: builtin print -rn -- $'\r\e[0J\e[H\e[22J' >"$TTY" -#:: builtin zle .reset-prompt -#:: builtin zle -R -#:: } -#:: zle -N ctrl_l -#:: bindkey '^l' ctrl_l - -#:: Alternatively, you can just add map ctrl+l clear_terminal -#:: to_cursor_scroll active to kitty.conf which works with no changes -#:: to the shell rc files, but only clears up to the prompt, it does -#:: not clear any text at the prompt itself. - -#: Clear to start - -# map cmd+k clear_terminal to_cursor active - -#: Clear scrollback - -# map option+cmd+k clear_terminal scrollback active - -#: Clear screen - -# map cmd+ctrl+l clear_terminal to_cursor_scroll active - -#: Reload kitty.conf - -# map kitty_mod+f5 load_config_file -# map ctrl+cmd+, load_config_file - -#:: Reload kitty.conf, applying any changes since the last time it -#:: was loaded. Note that a handful of options cannot be dynamically -#:: changed and require a full restart of kitty. Particularly, when -#:: changing shortcuts for actions located on the macOS global menu -#:: bar, a full restart is needed. You can also map a keybinding to -#:: load a different config file, for example:: - -#:: map f5 load_config /path/to/alternative/kitty.conf - -#:: Note that all options from the original kitty.conf are discarded, -#:: in other words the new configuration *replace* the old ones. - -#: Debug kitty configuration - -# map kitty_mod+f6 debug_config -# map opt+cmd+, debug_config - -#:: Show details about exactly what configuration kitty is running -#:: with and its host environment. Useful for debugging issues. - -#: Send arbitrary text on key presses - -#:: E.g. map ctrl+shift+alt+h send_text all Hello World - -#:: You can tell kitty to send arbitrary (UTF-8) encoded text to the -#:: client program when pressing specified shortcut keys. For -#:: example:: - -#:: map ctrl+alt+a send_text all Special text - -#:: This will send "Special text" when you press the Ctrl+Alt+A key -#:: combination. The text to be sent decodes ANSI C escapes -#:: so you can use escapes like \e to send control -#:: codes or \u21fb to send Unicode characters (or you can just input -#:: the Unicode characters directly as UTF-8 text). You can use -#:: `kitten show-key` to get the key escape codes you want to -#:: emulate. - -#:: The first argument to send_text is the keyboard modes in which to -#:: activate the shortcut. The possible values are normal, -#:: application, kitty or a comma separated combination of them. The -#:: modes normal and application refer to the DECCKM cursor key mode -#:: for terminals, and kitty refers to the kitty extended keyboard -#:: protocol. The special value all means all of them. - -#:: Some more examples:: - -#:: # Output a word and move the cursor to the start of the line (like typing and pressing Home) -#:: map ctrl+alt+a send_text normal Word\e[H -#:: map ctrl+alt+a send_text application Word\eOH -#:: # Run a command at a shell prompt (like typing the command and pressing Enter) -#:: map ctrl+alt+a send_text normal,application some command with arguments\r - -#: Open kitty Website - -# map shift+cmd+/ open_url https://sw.kovidgoyal.net/kitty/ - -#: Hide macOS kitty application - -# map cmd+h hide_macos_app - -#: Hide macOS other applications - -# map opt+cmd+h hide_macos_other_apps - -#: Minimize macOS window - -# map cmd+m minimize_macos_window - -#: Quit kitty - -# map cmd+q quit - -#: }}} - -#: }}} diff --git a/config/shell-functions/fuzzy-vim.sh b/config/shell-functions/fuzzy-vim.sh deleted file mode 100644 index f1bb864..0000000 --- a/config/shell-functions/fuzzy-vim.sh +++ /dev/null @@ -1,44 +0,0 @@ -# Smart fuzzy vim wrapper (Bash + Zsh compatible) -vim() { - if [[ $# -eq 0 ]]; then - # Check if fzf exists - if ! command -v fzf >/dev/null 2>&1; then - echo "fzf not found, opening normal vim..." >&2 - command vim - return - fi - - # List of directories to ignore - local ignore_dirs=(".git" "node_modules" "vendor" "venv" ".cache") - - # If fd exists, use it. Otherwise fallback to find - if command -v fd >/dev/null 2>&1; then - local fd_cmd="fd --type f" - for dir in "${ignore_dirs[@]}"; do - fd_cmd+=" --exclude $dir" - done - local file=$(eval "$fd_cmd" | fzf --height 40% --reverse --border) - else - local find_cmd="find ." - for dir in "${ignore_dirs[@]}"; do - find_cmd+=" -path \"*/$dir/*\" -prune -o" - done - find_cmd+=" -type f -print" - local file=$(eval "$find_cmd" 2>/dev/null | fzf --height 40% --reverse --border) - fi - - if [[ -n "$file" ]]; then - command vim "$file" - fi - else - command vim "$@" - fi -} - -# 🛡 Fix: Preserve vim autocompletion behavior -if [[ -n "$ZSH_VERSION" ]]; then - compdef _vim vim -elif [[ -n "$BASH_VERSION" ]]; then - complete -o default -o bashdefault vim -fi - diff --git a/config/themes/diff-frappe.conf b/config/themes/diff-frappe.conf deleted file mode 100644 index bac699c..0000000 --- a/config/themes/diff-frappe.conf +++ /dev/null @@ -1,50 +0,0 @@ -# vim:ft=kitty - -## name: Catppuccin Kitty Diff Frappé -## author: Catppuccin Org -## license: MIT -## upstream: https://github.com/catppuccin/kitty/blob/main/themes/diff-frappe.conf -## blurb: Soothing pastel theme for the high-spirited! - -# text -foreground #c6d0f5 -# base -background #303446 -# subtext0 -title_fg #a5adce - -# mantle -title_bg #292c3c -margin_bg #292c3c - -# subtext1 -margin_fg #a5adce -# mantle -filler_bg #292c3c - -# 30% red, 70% base -removed_bg #684b59 -# 50% red, 50% base -highlight_removed_bg #8c5b65 -# 40% red, 60% base -removed_margin_bg #79535f - -# 30% green, 70% base -added_bg #54635a -# 50% green, 50% base -highlight_added_bg #6b8368 -# 40% green, 60% base -added_margin_bg #79535f - -# mantle -hunk_margin_bg #292c3c -hunk_bg #292c3c - -# 40% yellow, 60% base -search_bg #796f64 -# text -search_fg #c6d0f5 -# 30% sky, 70% base -select_bg #506373 -# text -select_fg #c6d0f5 diff --git a/config/themes/diff-latte.conf b/config/themes/diff-latte.conf deleted file mode 100644 index f1f00b3..0000000 --- a/config/themes/diff-latte.conf +++ /dev/null @@ -1,50 +0,0 @@ -# vim:ft=kitty - -## name: Catppuccin Kitty Diff Latte -## author: Catppuccin Org -## license: MIT -## upstream: https://github.com/catppuccin/kitty/blob/main/themes/diff-latte.conf -## blurb: Soothing pastel theme for the high-spirited! - -# text -foreground #4c4f69 -# base -background #eff1f5 -# subtext0 -title_fg #6c6f85 - -# mantle -title_bg #e6e9ef -margin_bg #e6e9ef - -# subtext1 -margin_fg #5c5f77 -# mantle -filler_bg #e6e9ef - -# 30% red, 70% base -removed_bg #e6adbc -# 50% red, 50% base -highlight_removed_bg #e08097 -# 40% red, 60% base -removed_margin_bg #e397aa - -# 30% green, 70% base -added_bg #bad8b8 -# 50% green, 50% base -highlight_added_bg #97c890 -# 40% green, 60% base -added_margin_bg #e397aa - -# mantle -hunk_margin_bg #e6e9ef -hunk_bg #e6e9ef - -# 40% yellow, 60% base -search_bg #e8ca9f -# text -search_fg #4c4f69 -# 30% sky, 70% base -select_bg #a8daf0 -# text -select_fg #4c4f69 diff --git a/config/themes/diff-macchiato.conf b/config/themes/diff-macchiato.conf deleted file mode 100644 index f590b8e..0000000 --- a/config/themes/diff-macchiato.conf +++ /dev/null @@ -1,50 +0,0 @@ -# vim:ft=kitty - -## name: Catppuccin Kitty Diff Macchiato -## author: Catppuccin Org -## license: MIT -## upstream: https://github.com/catppuccin/kitty/blob/main/themes/diff-macchiato.conf -## blurb: Soothing pastel theme for the high-spirited! - -# text -foreground #cad3f5 -# base -background #24273a -# subtext0 -title_fg #a5adcb - -# mantle -title_bg #1e2030 -margin_bg #1e2030 - -# subtext1 -margin_fg #a5adcb -# mantle -filler_bg #1e2030 - -# 30% red, 70% base -removed_bg #614455 -# 50% red, 50% base -highlight_removed_bg #895768 -# 40% red, 60% base -removed_margin_bg #754d5f - -# 30% green, 70% base -added_bg #4b5d55 -# 50% green, 50% base -highlight_added_bg #658068 -# 40% green, 60% base -added_margin_bg #754d5f - -# mantle -hunk_margin_bg #1e2030 -hunk_bg #1e2030 - -# 40% yellow, 60% base -search_bg #756c63 -# text -search_fg #cad3f5 -# 30% sky, 70% base -select_bg #455c6d -# text -select_fg #cad3f5 diff --git a/config/themes/diff-mocha.conf b/config/themes/diff-mocha.conf deleted file mode 100644 index b627460..0000000 --- a/config/themes/diff-mocha.conf +++ /dev/null @@ -1,50 +0,0 @@ -# vim:ft=kitty - -## name: Catppuccin Kitty Diff Mocha -## author: Catppuccin Org -## license: MIT -## upstream: https://github.com/catppuccin/kitty/blob/main/themes/diff-mocha.conf -## blurb: Soothing pastel theme for the high-spirited! - -# text -foreground #cdd6f4 -# base -background #1e1e2e -# subtext0 -title_fg #a6adc8 - -# mantle -title_bg #181825 -margin_bg #181825 - -# subtext1 -margin_fg #a6adc8 -# mantle -filler_bg #181825 - -# 30% red, 70% base -removed_bg #5e3f53 -# 50% red, 50% base -highlight_removed_bg #89556b -# 40% red, 60% base -removed_margin_bg #734a5f - -# 30% green, 70% base -added_bg #475a51 -# 50% green, 50% base -highlight_added_bg #628168 -# 40% green, 60% base -added_margin_bg #734a5f - -# mantle -hunk_margin_bg #181825 -hunk_bg #181825 - -# 40% yellow, 60% base -search_bg #766c62 -# text -search_fg #cdd6f4 -# 30% sky, 70% base -select_bg #3e5767 -# text -select_fg #cdd6f4 diff --git a/config/themes/frappe.conf b/config/themes/frappe.conf deleted file mode 100644 index a785bce..0000000 --- a/config/themes/frappe.conf +++ /dev/null @@ -1,80 +0,0 @@ -# vim:ft=kitty - -## name: Catppuccin Kitty Frappé -## author: Catppuccin Org -## license: MIT -## upstream: https://github.com/catppuccin/kitty/blob/main/themes/frappe.conf -## blurb: Soothing pastel theme for the high-spirited! - - - -# The basic colors -foreground #c6d0f5 -background #303446 -selection_foreground #303446 -selection_background #f2d5cf - -# Cursor colors -cursor #f2d5cf -cursor_text_color #303446 - -# URL underline color when hovering with mouse -url_color #f2d5cf - -# Kitty window border colors -active_border_color #babbf1 -inactive_border_color #737994 -bell_border_color #e5c890 - -# OS Window titlebar colors -wayland_titlebar_color system -macos_titlebar_color system - -# Tab bar colors -active_tab_foreground #232634 -active_tab_background #ca9ee6 -inactive_tab_foreground #c6d0f5 -inactive_tab_background #292c3c -tab_bar_background #232634 - -# Colors for marks (marked text in the terminal) -mark1_foreground #303446 -mark1_background #babbf1 -mark2_foreground #303446 -mark2_background #ca9ee6 -mark3_foreground #303446 -mark3_background #85c1dc - -# The 16 terminal colors - -# black -color0 #51576d -color8 #626880 - -# red -color1 #e78284 -color9 #e78284 - -# green -color2 #a6d189 -color10 #a6d189 - -# yellow -color3 #e5c890 -color11 #e5c890 - -# blue -color4 #8caaee -color12 #8caaee - -# magenta -color5 #f4b8e4 -color13 #f4b8e4 - -# cyan -color6 #81c8be -color14 #81c8be - -# white -color7 #b5bfe2 -color15 #a5adce diff --git a/config/themes/latte.conf b/config/themes/latte.conf deleted file mode 100644 index 31c37bc..0000000 --- a/config/themes/latte.conf +++ /dev/null @@ -1,80 +0,0 @@ -# vim:ft=kitty - -## name: Catppuccin Kitty Latte -## author: Catppuccin Org -## license: MIT -## upstream: https://github.com/catppuccin/kitty/blob/main/themes/latte.conf -## blurb: Soothing pastel theme for the high-spirited! - - - -# The basic colors -foreground #4c4f69 -background #eff1f5 -selection_foreground #eff1f5 -selection_background #dc8a78 - -# Cursor colors -cursor #dc8a78 -cursor_text_color #eff1f5 - -# URL underline color when hovering with mouse -url_color #dc8a78 - -# Kitty window border colors -active_border_color #7287fd -inactive_border_color #9ca0b0 -bell_border_color #df8e1d - -# OS Window titlebar colors -wayland_titlebar_color system -macos_titlebar_color system - -# Tab bar colors -active_tab_foreground #eff1f5 -active_tab_background #8839ef -inactive_tab_foreground #4c4f69 -inactive_tab_background #9ca0b0 -tab_bar_background #bcc0cc - -# Colors for marks (marked text in the terminal) -mark1_foreground #eff1f5 -mark1_background #7287fd -mark2_foreground #eff1f5 -mark2_background #8839ef -mark3_foreground #eff1f5 -mark3_background #209fb5 - -# The 16 terminal colors - -# black -color0 #5c5f77 -color8 #6c6f85 - -# red -color1 #d20f39 -color9 #d20f39 - -# green -color2 #40a02b -color10 #40a02b - -# yellow -color3 #df8e1d -color11 #df8e1d - -# blue -color4 #1e66f5 -color12 #1e66f5 - -# magenta -color5 #ea76cb -color13 #ea76cb - -# cyan -color6 #179299 -color14 #179299 - -# white -color7 #acb0be -color15 #bcc0cc diff --git a/config/themes/macchiato.conf b/config/themes/macchiato.conf deleted file mode 100644 index 21c31bb..0000000 --- a/config/themes/macchiato.conf +++ /dev/null @@ -1,80 +0,0 @@ -# vim:ft=kitty - -## name: Catppuccin Kitty Macchiato -## author: Catppuccin Org -## license: MIT -## upstream: https://github.com/catppuccin/kitty/blob/main/themes/macchiato.conf -## blurb: Soothing pastel theme for the high-spirited! - - - -# The basic colors -foreground #cad3f5 -background #24273a -selection_foreground #24273a -selection_background #f4dbd6 - -# Cursor colors -cursor #f4dbd6 -cursor_text_color #24273a - -# URL underline color when hovering with mouse -url_color #f4dbd6 - -# Kitty window border colors -active_border_color #b7bdf8 -inactive_border_color #6e738d -bell_border_color #eed49f - -# OS Window titlebar colors -wayland_titlebar_color system -macos_titlebar_color system - -# Tab bar colors -active_tab_foreground #181926 -active_tab_background #c6a0f6 -inactive_tab_foreground #cad3f5 -inactive_tab_background #1e2030 -tab_bar_background #181926 - -# Colors for marks (marked text in the terminal) -mark1_foreground #24273a -mark1_background #b7bdf8 -mark2_foreground #24273a -mark2_background #c6a0f6 -mark3_foreground #24273a -mark3_background #7dc4e4 - -# The 16 terminal colors - -# black -color0 #494d64 -color8 #5b6078 - -# red -color1 #ed8796 -color9 #ed8796 - -# green -color2 #a6da95 -color10 #a6da95 - -# yellow -color3 #eed49f -color11 #eed49f - -# blue -color4 #8aadf4 -color12 #8aadf4 - -# magenta -color5 #f5bde6 -color13 #f5bde6 - -# cyan -color6 #8bd5ca -color14 #8bd5ca - -# white -color7 #b8c0e0 -color15 #a5adcb diff --git a/config/themes/mocha.conf b/config/themes/mocha.conf deleted file mode 100644 index f37adf9..0000000 --- a/config/themes/mocha.conf +++ /dev/null @@ -1,80 +0,0 @@ -# vim:ft=kitty - -## name: Catppuccin Kitty Mocha -## author: Catppuccin Org -## license: MIT -## upstream: https://github.com/catppuccin/kitty/blob/main/themes/mocha.conf -## blurb: Soothing pastel theme for the high-spirited! - - - -# The basic colors -foreground #cdd6f4 -background #1e1e2e -selection_foreground #1e1e2e -selection_background #f5e0dc - -# Cursor colors -cursor #f5e0dc -cursor_text_color #1e1e2e - -# URL underline color when hovering with mouse -url_color #f5e0dc - -# Kitty window border colors -active_border_color #b4befe -inactive_border_color #6c7086 -bell_border_color #f9e2af - -# OS Window titlebar colors -wayland_titlebar_color system -macos_titlebar_color system - -# Tab bar colors -active_tab_foreground #11111b -active_tab_background #cba6f7 -inactive_tab_foreground #cdd6f4 -inactive_tab_background #181825 -tab_bar_background #11111b - -# Colors for marks (marked text in the terminal) -mark1_foreground #1e1e2e -mark1_background #b4befe -mark2_foreground #1e1e2e -mark2_background #cba6f7 -mark3_foreground #1e1e2e -mark3_background #74c7ec - -# The 16 terminal colors - -# black -color0 #45475a -color8 #585b70 - -# red -color1 #f38ba8 -color9 #f38ba8 - -# green -color2 #a6e3a1 -color10 #a6e3a1 - -# yellow -color3 #f9e2af -color11 #f9e2af - -# blue -color4 #89b4fa -color12 #89b4fa - -# magenta -color5 #f5c2e7 -color13 #f5c2e7 - -# cyan -color6 #94e2d5 -color14 #94e2d5 - -# white -color7 #bac2de -color15 #a6adc8 diff --git a/darwin/README.md b/darwin/README.md index d856164..2b348df 100644 --- a/darwin/README.md +++ b/darwin/README.md @@ -6,4 +6,4 @@ This directory contains configurations specific to macOS systems. - `Brewfile` - Homebrew packages and casks - Kitty terminal configs with macOS-specific keybindings (cmd+) -- System preferences and defaults \ No newline at end of file +- System preferences and defaults diff --git a/git/.gitconfig b/git/.gitconfig deleted file mode 100644 index 0cc7ab0..0000000 --- a/git/.gitconfig +++ /dev/null @@ -1,19 +0,0 @@ -[user] - name=Jean-Michel Bouchard - email=jim@polarcoordinates.org -[github] - user=woud420 -[color] - ui = auto -[alias] - st = status -sb - lg = log --stat - diff-master = !echo "diff master...origin/master:" && git diff master...origin/master --stat && echo "" && echo "diff origin/master...master:" && git diff origin/master...master --stat - - cm = commit -m - ca = commit --amend - rb = !git fetch && git rebase && git st - cl = !git reset --hard && git clean -df && git st - - up = !git submodule update --init && git st - submodules-to-master = submodule foreach "git fetch && git checkout master && git rebase" \ No newline at end of file diff --git a/git/.gitignore_global b/git/.gitignore_global deleted file mode 100644 index 1e58af4..0000000 --- a/git/.gitignore_global +++ /dev/null @@ -1 +0,0 @@ -**/.claude/settings.local.json \ No newline at end of file diff --git a/install.sh b/install.sh index 17e9092..e3dd04a 100755 --- a/install.sh +++ b/install.sh @@ -115,7 +115,7 @@ detect_os() { OS="unknown" DISTRO="unknown" fi - + log_info "Detected OS: $OS, Distribution: $DISTRO" } @@ -144,7 +144,7 @@ install_packages_macos() { log_info "Would install Homebrew" fi fi - + log_step "Installing packages from Brewfile..." if [[ "$DRY_RUN" == "false" ]]; then brew bundle --file="$DOTFILES_DIR/darwin/Brewfile" || log_warning "Some packages failed to install" @@ -155,7 +155,7 @@ install_packages_macos() { install_packages_linux() { local package_list="" - + case "$DISTRO" in ubuntu|debian) package_list="$DOTFILES_DIR/linux/debian/packages.list" @@ -225,14 +225,14 @@ create_symlink() { local source="$1" local target="$2" local target_dir="$(dirname "$target")" - + if [[ "$DRY_RUN" == "false" ]]; then # Create target directory if it doesn't exist mkdir -p "$target_dir" - + # Remove existing file/link [[ -e "$target" ]] || [[ -L "$target" ]] && rm -f "$target" - + if [[ "$COPY_MODE" == "true" ]]; then # Copy file cp "$source" "$target" @@ -269,7 +269,7 @@ copy_file() { # Install shell configurations install_shell_configs() { log_step "Installing shell configurations..." - + # Determine which shell config to use if [[ "$MINIMAL_MODE" == "true" ]]; then backup_file "$HOME/.bashrc" @@ -279,12 +279,12 @@ install_shell_configs() { backup_file "$HOME/.bashrc" backup_file "$HOME/.zshrc" backup_file "$HOME/.bash_profile" - + create_symlink "$DOTFILES_DIR/common/shell/.bashrc" "$HOME/.bashrc" create_symlink "$DOTFILES_DIR/common/shell/.zshrc" "$HOME/.zshrc" create_symlink "$DOTFILES_DIR/common/shell/.bash_profile" "$HOME/.bash_profile" fi - + # GNU aliases and dircolors backup_file "$HOME/.gnu_aliases" backup_file "$HOME/.dircolors" @@ -295,10 +295,10 @@ install_shell_configs() { # Install git configuration install_git_config() { log_step "Installing git configuration..." - + backup_file "$HOME/.gitconfig" create_symlink "$DOTFILES_DIR/common/git/.gitconfig" "$HOME/.gitconfig" - + # Global gitignore mkdir -p "$HOME/.config/git" create_symlink "$DOTFILES_DIR/common/git/.gitignore_global" "$HOME/.config/git/ignore" @@ -307,7 +307,7 @@ install_git_config() { # Install shell functions install_shell_functions() { log_step "Installing shell functions..." - + if [[ "$DRY_RUN" == "false" ]]; then mkdir -p "$HOME/.config/shell-functions" # Copy all shell function files @@ -321,13 +321,26 @@ install_shell_functions() { fi } +# Install misc dotfiles from repo root +install_misc_dotfiles() { + log_step "Installing misc dotfiles (tmux, inputrc, gdbinit)..." + + local files=(".tmux.conf" ".inputrc" ".gdbinit") + for f in "${files[@]}"; do + if [[ -f "$DOTFILES_DIR/$f" ]]; then + backup_file "$HOME/$f" + create_symlink "$DOTFILES_DIR/$f" "$HOME/$f" + fi + done +} + # Install terminal configuration install_terminal_config() { log_step "Installing terminal configuration..." - + # Kitty config based on OS (using hard copies for kitty to work properly) mkdir -p "$HOME/.config/kitty" - + if [[ "$DRY_RUN" == "false" ]]; then if [[ "$OS" == "macos" ]]; then backup_file "$HOME/.config/kitty/kitty.conf" @@ -338,7 +351,7 @@ install_terminal_config() { cp "$DOTFILES_DIR/linux/common/kitty.conf" "$HOME/.config/kitty/kitty.conf" log_success "Copied linux/common/kitty.conf -> ~/.config/kitty/kitty.conf" fi - + # Copy themes for theme_file in "$DOTFILES_DIR/common/themes/"*.conf; do if [[ -f "$theme_file" ]]; then @@ -346,6 +359,18 @@ install_terminal_config() { log_success "Copied $(basename "$theme_file") -> ~/.config/kitty/" fi done + + # OS-specific theme override (e.g. linux/common/current-theme.conf) + local os_theme_dir="" + if [[ "$OS" == "macos" ]]; then + os_theme_dir="$DOTFILES_DIR/darwin" + else + os_theme_dir="$DOTFILES_DIR/linux/common" + fi + if [[ -f "$os_theme_dir/current-theme.conf" ]]; then + cp "$os_theme_dir/current-theme.conf" "$HOME/.config/kitty/current-theme.conf" + log_success "Copied OS-specific current-theme.conf from $os_theme_dir" + fi else if [[ "$OS" == "macos" ]]; then log_info "Would copy: darwin/kitty.conf -> ~/.config/kitty/kitty.conf" @@ -354,7 +379,7 @@ install_terminal_config() { fi log_info "Would copy kitty themes to ~/.config/kitty/" fi - + # htop config mkdir -p "$HOME/.config/htop" create_symlink "$DOTFILES_DIR/common/htop/htoprc" "$HOME/.config/htop/htoprc" @@ -363,18 +388,18 @@ install_terminal_config() { # Install vim configuration install_vim_config() { log_step "Installing vim configuration..." - + # Create .vim directory and symlink config files if [[ "$DRY_RUN" == "false" ]]; then mkdir -p "$HOME/.vim/settings" - + # Link vim configuration files create_symlink "$DOTFILES_DIR/.vim/vimrc" "$HOME/.vim/vimrc" create_symlink "$DOTFILES_DIR/.vim/plugins.vim" "$HOME/.vim/plugins.vim" create_symlink "$DOTFILES_DIR/.vim/mappings.vim" "$HOME/.vim/mappings.vim" create_symlink "$DOTFILES_DIR/.vim/settings.vim" "$HOME/.vim/settings.vim" create_symlink "$DOTFILES_DIR/.vim/coc-settings.json" "$HOME/.vim/coc-settings.json" - + # Link settings directory files for settings_file in "$DOTFILES_DIR/.vim/settings/"*.vim; do if [[ -f "$settings_file" ]]; then @@ -385,13 +410,13 @@ install_vim_config() { log_info "Would install vim configuration" return fi - + # Install vim plugins if vim is available if command -v vim >/dev/null 2>&1; then log_step "Installing vim plugins..." if [[ "$DRY_RUN" == "false" ]]; then vim +PlugInstall +qall - + # Compile CoC.nvim if it was installed if [[ -d "$HOME/.vim/plugged/coc.nvim" ]]; then log_step "Compiling CoC.nvim..." @@ -416,9 +441,9 @@ install_optional_tools() { log_info "Minimal mode: Skipping optional tools" return fi - + log_step "Installing optional tools..." - + # FZF if ! command -v fzf >/dev/null 2>&1; then log_info "Installing fzf..." @@ -461,6 +486,12 @@ install_ai_context() { ubuntu|debian) machine_src="$DOTFILES_DIR/linux/debian/ai-context/machine.md" ;; + fedora) + machine_src="$DOTFILES_DIR/linux/fedora/ai-context/machine.md" + ;; + alpine) + machine_src="$DOTFILES_DIR/linux/alpine/ai-context/machine.md" + ;; darwin|macos) machine_src="$DOTFILES_DIR/darwin/ai-context/machine.md" ;; @@ -489,6 +520,12 @@ install_ai_context() { ubuntu|debian) state_file="$DOTFILES_DIR/linux/debian/ai-context/machine-state.md" ;; + fedora) + state_file="$DOTFILES_DIR/linux/fedora/ai-context/machine-state.md" + ;; + alpine) + state_file="$DOTFILES_DIR/linux/alpine/ai-context/machine-state.md" + ;; darwin|macos) state_file="$DOTFILES_DIR/darwin/ai-context/machine-state.md" ;; @@ -540,14 +577,14 @@ main() { echo "║ Universal Unix/Linux/macOS ║" echo "╚══════════════════════════════════════════════════════════════╝" echo -e "${NC}" - + detect_os detect_environment - + if [[ "$DRY_RUN" == "true" ]]; then log_warning "DRY RUN MODE - No changes will be made" fi - + # Install packages if requested if [[ "$INSTALL_PACKAGES" == "true" ]] && [[ "$MINIMAL_MODE" == "false" ]]; then case "$OS" in @@ -564,29 +601,30 @@ main() { else log_info "Skipping package installation" fi - + # Install configurations in dependency order install_shell_configs # 1. Shell configs (.bashrc, .zshrc) - foundation install_git_config # 2. Git configuration (.gitconfig) install_shell_functions # 3. Shell functions (depends on shell configs) - install_terminal_config # 4. Terminal configs (kitty, htop) - install_vim_config # 5. Vim setup (plugins, settings, CoC compilation) - install_optional_tools # 6. Optional tools (fzf, etc.) - install_ai_context # 7. AI context files (CLAUDE.md, MACHINE.md, etc.) - install_pacman_hook # 8. Pacman hook for AI context (Arch only) - + install_misc_dotfiles # 4. Misc dotfiles (tmux, inputrc, gdbinit) + install_terminal_config # 5. Terminal configs (kitty, htop) + install_vim_config # 6. Vim setup (plugins, settings, CoC compilation) + install_optional_tools # 7. Optional tools (fzf, etc.) + install_ai_context # 8. AI context files (CLAUDE.md, MACHINE.md, etc.) + install_pacman_hook # 9. Pacman hook for AI context (Arch only) + echo -e "${GREEN}" echo "╔══════════════════════════════════════════════════════════════╗" echo "║ Installation Complete! ║" echo "╚══════════════════════════════════════════════════════════════╝" echo -e "${NC}" - + if [[ -d "$BACKUP_DIR" ]]; then log_info "Backups saved to: $BACKUP_DIR" fi - + log_info "Please run: source ~/.bashrc (or source ~/.zshrc)" - + if [[ "$MINIMAL_MODE" == "false" ]]; then echo log_info "Try these new commands:" diff --git a/linux/README.md b/linux/README.md index f0be892..daca448 100644 --- a/linux/README.md +++ b/linux/README.md @@ -15,4 +15,4 @@ Each distro directory may contain: - Package lists (apt, pacman, dnf) - System service configs - X11/Wayland configs -- Distribution-specific shell configurations \ No newline at end of file +- Distribution-specific shell configurations diff --git a/linux/alpine/ai-context/machine.md b/linux/alpine/ai-context/machine.md new file mode 100644 index 0000000..851ab49 --- /dev/null +++ b/linux/alpine/ai-context/machine.md @@ -0,0 +1,41 @@ +# Machine: Alpine Linux + +## System + +- **OS**: Alpine Linux +- **Package manager**: apk +- **Shell**: zsh +- **Terminal**: Kitty + +## Primary Use + +- Lightweight container and development environment +- General development + +## Package Installation + +```bash +# System packages +sudo apk add + +# Search for packages +apk search + +# Remove packages +sudo apk del + +# Update package index +sudo apk update +``` + +## Paths + +- Dotfiles: `~/workspace/dotfiles` +- Projects: `~/workspace/` + +## Notes + +- Uses musl libc instead of glibc (some binaries may need static builds or compatibility layers) +- Uses OpenRC for service management (not systemd) +- Minimal base system; BusyBox provides core utilities by default +- Modern CLI tools: ripgrep, fd, bat diff --git a/linux/common/current-theme.conf b/linux/common/current-theme.conf new file mode 100644 index 0000000..d84e71e --- /dev/null +++ b/linux/common/current-theme.conf @@ -0,0 +1,77 @@ +# vim:ft=kitty + +## name: Custom Purple (Sway Desktop Match) +## author: local +## blurb: Warm purple/burgundy theme matching Sway, Waybar, Rofi, and Mako + + +# The basic colors +foreground #d0d0d0 +background #221820 +selection_foreground #221820 +selection_background #9d5a7f + +# Cursor colors +cursor #d0d0d0 +cursor_text_color #221820 + +# URL underline color when hovering with mouse +url_color #9d5a7f + +# Kitty window border colors +active_border_color #9d5a7f +inactive_border_color #4a3844 +bell_border_color #d68787 + +# OS Window titlebar colors +wayland_titlebar_color system +macos_titlebar_color system + +# Tab bar colors +active_tab_foreground #221820 +active_tab_background #9d5a7f +inactive_tab_foreground #d0d0d0 +inactive_tab_background #2a1f27 +tab_bar_background #1a1218 + +# Colors for marks (marked text in the terminal) +mark1_foreground #221820 +mark1_background #9d5a7f +mark2_foreground #221820 +mark2_background #6b4456 +mark3_foreground #221820 +mark3_background #87b8a8 + +# The 16 terminal colors + +# black +color0 #2a1f27 +color8 #4a3844 + +# red +color1 #d68787 +color9 #e09898 + +# green +color2 #a3be8c +color10 #b5d4a1 + +# yellow +color3 #d4a373 +color11 #e0b98a + +# blue +color4 #8a9fc5 +color12 #a0b3d4 + +# magenta +color5 #9d5a7f +color13 #b87a9d + +# cyan +color6 #87b8a8 +color14 #a0ccbb + +# white +color7 #d0d0d0 +color15 #e8e8e8 diff --git a/linux/common/kitty.conf b/linux/common/kitty.conf index d5965dd..1256c69 100644 --- a/linux/common/kitty.conf +++ b/linux/common/kitty.conf @@ -2,7 +2,7 @@ # Linux-specific Kitty configuration # BEGIN_KITTY_THEME -include ../../common/themes/current-theme.conf +include current-theme.conf # END_KITTY_THEME font_family FiraCode Nerd Font @@ -32,7 +32,22 @@ active_tab_font_style bold inactive_tab_font_style normal tab_switch_strategy previous -# Linux Keyboard shortcuts (ctrl+shift+) +# Keyboard shortcuts (macOS-style super+ with ctrl+shift+ fallbacks) +map super+q quit +map super+n new_os_window +map super+enter new_window +map super+t new_tab +map super+w close_tab +map super+right next_tab +map super+left previous_tab +map super+plus change_font_size all +1.0 +map super+equal change_font_size all +1.0 +map super+minus change_font_size all -1.0 +map super+0 change_font_size all 0 +map f11 toggle_fullscreen +map super+l clear_terminal to_cursor_scroll active + +# ctrl+shift fallbacks map ctrl+shift+q quit map ctrl+shift+n new_os_window map ctrl+shift+enter new_window @@ -43,5 +58,4 @@ map ctrl+shift+left previous_tab map ctrl+shift+plus change_font_size all +1.0 map ctrl+shift+minus change_font_size all -1.0 map ctrl+shift+0 change_font_size all 0 -map f11 toggle_fullscreen -map ctrl+shift+l clear_terminal to_cursor_scroll active \ No newline at end of file +map ctrl+shift+l clear_terminal to_cursor_scroll active diff --git a/linux/debian/ai-context/machine.md b/linux/debian/ai-context/machine.md new file mode 100644 index 0000000..8559d14 --- /dev/null +++ b/linux/debian/ai-context/machine.md @@ -0,0 +1,37 @@ +# Machine: Debian Linux + +## System + +- **OS**: Debian GNU/Linux +- **Package manager**: apt +- **Shell**: zsh +- **Terminal**: Kitty + +## Primary Use + +- Server and development environment +- General development + +## Package Installation + +```bash +# System packages +sudo apt update && sudo apt install + +# Search for packages +apt search + +# Remove packages +sudo apt remove +``` + +## Paths + +- Dotfiles: `~/workspace/dotfiles` +- Projects: `~/workspace/` + +## Notes + +- Uses systemd for service management +- Stable release cycle; backports available for newer packages +- Modern CLI tools: ripgrep, fd-find, bat (binary names may differ from upstream: `fdfind`, `batcat`) diff --git a/linux/fedora/ai-context/machine.md b/linux/fedora/ai-context/machine.md new file mode 100644 index 0000000..03991da --- /dev/null +++ b/linux/fedora/ai-context/machine.md @@ -0,0 +1,41 @@ +# Machine: Fedora Linux + +## System + +- **OS**: Fedora Linux +- **Package manager**: dnf +- **Shell**: zsh +- **Terminal**: Kitty + +## Primary Use + +- Development environment +- General development + +## Package Installation + +```bash +# System packages +sudo dnf install + +# Search for packages +dnf search + +# Remove packages +sudo dnf remove + +# Enable COPR repos (community packages) +sudo dnf copr enable / +``` + +## Paths + +- Dotfiles: `~/workspace/dotfiles` +- Projects: `~/workspace/` + +## Notes + +- Uses systemd for service management +- SELinux enabled by default +- Rapid release cycle with recent upstream packages +- Modern CLI tools: ripgrep, fd-find, bat diff --git a/scripts/minimal-bashrc.sh b/scripts/minimal-bashrc.sh index 2d28c8c..2888b54 100755 --- a/scripts/minimal-bashrc.sh +++ b/scripts/minimal-bashrc.sh @@ -14,4 +14,4 @@ curl -sSL https://raw.githubusercontent.com/woud420/dotfiles/master/common/shell # Download git config curl -sSL https://raw.githubusercontent.com/woud420/dotfiles/master/common/git/.gitconfig -o ~/.gitconfig -echo "✅ Minimal configs installed! Run: source ~/.bashrc" \ No newline at end of file +echo "✅ Minimal configs installed! Run: source ~/.bashrc" diff --git a/scripts/refresh-machine-state.sh b/scripts/refresh-machine-state.sh index ae587f5..4a9836b 100755 --- a/scripts/refresh-machine-state.sh +++ b/scripts/refresh-machine-state.sh @@ -41,6 +41,12 @@ case "$OS" in debian) OUTPUT_FILE="$DOTFILES_DIR/linux/debian/ai-context/machine-state.md" ;; + fedora) + OUTPUT_FILE="$DOTFILES_DIR/linux/fedora/ai-context/machine-state.md" + ;; + alpine) + OUTPUT_FILE="$DOTFILES_DIR/linux/alpine/ai-context/machine-state.md" + ;; darwin) OUTPUT_FILE="$DOTFILES_DIR/darwin/ai-context/machine-state.md" ;; diff --git a/scripts/ssh-copy-dotfiles.sh b/scripts/ssh-copy-dotfiles.sh index 96d8d3e..79b328a 100755 --- a/scripts/ssh-copy-dotfiles.sh +++ b/scripts/ssh-copy-dotfiles.sh @@ -24,4 +24,4 @@ scp "$DOTFILES_DIR/common/git/.gitignore_global" "$HOST:~/.config/git/ignore" scp "$DOTFILES_DIR/common/shell-functions/"*.sh "$HOST:~/.config/shell-functions/" echo "✅ Dotfiles copied to $HOST" -echo "Run 'source ~/.bashrc' on the remote host" \ No newline at end of file +echo "Run 'source ~/.bashrc' on the remote host" diff --git a/scripts/sudo-askpass.sh b/scripts/sudo-askpass.sh new file mode 100755 index 0000000..9e5fe1d --- /dev/null +++ b/scripts/sudo-askpass.sh @@ -0,0 +1,22 @@ +#!/bin/bash +# Cross-platform sudo askpass helper + +case "$(uname -s)" in + Darwin) + # macOS: use osascript (built-in) + osascript -e 'Tell application "System Events" to display dialog "Password:" default answer "" with hidden answer' -e 'text returned of result' 2>/dev/null + ;; + Linux) + # Linux: prefer rofi, fall back to zenity/kdialog + if command -v rofi &>/dev/null; then + rofi -dmenu -password -p "sudo" -l 0 -theme-str 'window {width: 300px;} listview {enabled: false;}' + elif command -v zenity &>/dev/null; then + zenity --password --title="sudo" + elif command -v kdialog &>/dev/null; then + kdialog --password "sudo" + else + echo "No askpass helper found" >&2 + exit 1 + fi + ;; +esac diff --git a/shell/.dircolors b/shell/.dircolors deleted file mode 100644 index a20008b..0000000 --- a/shell/.dircolors +++ /dev/null @@ -1,32 +0,0 @@ -# ~/.catppuccin-mocho.dircolors - -# File types -di 38;5;117 # directory = sky blue -ln 38;5;153 # symlink = lavender -so 38;5;217 # socket = flamingo -pi 38;5;229 # pipe = yellow -ex 38;5;114 # executable = green -bd 38;5;174 # block special = maroon -cd 38;5;174 # character special = maroon -su 38;5;204 # setuid file = red -sg 38;5;204 # setgid file = red -tw 38;5;204 # sticky other writable = red -ow 38;5;204 # other writable = red -st 38;5;204 # sticky = red -mi 38;5;204 # missing file = red -or 38;5;204 # orphaned symlink = red - -# Extensions -*.rs 38;5;153 # Rust files = lavender -*.py 38;5;153 # Python files = lavender -*.sh 38;5;114 # Shell scripts = green -*.toml 38;5;229 # TOML = yellow -*.yaml 38;5;229 # YAML = yellow -*.yml 38;5;229 # YAML = yellow -*.md 38;5;218 # Markdown = pink -*.txt 38;5;218 # Text = pink -*.log 38;5;229 # Logs = yellow -*.json 38;5;229 # JSON = yellow - -# Special cases -Makefile 38;5;216 \ No newline at end of file diff --git a/shell/.gnu_aliases b/shell/.gnu_aliases deleted file mode 100644 index fdfccd6..0000000 --- a/shell/.gnu_aliases +++ /dev/null @@ -1,30 +0,0 @@ -# Improved safe_alias function -# safe_alias [alias-name] [primary-command] fallback [secondary-command] -safe_alias() { - local program - program="${2%% *}" # Extract first word of command (not args) - if command -v "$program" >/dev/null 2>&1; then - alias "$1"="$2" - else - if [ "$3" = "fallback" ] && [ -n "$4" ]; then - alias "$1"="$4" - fi - fi -} - -# GNU tools with fallback to BSD/macOS system versions -safe_alias ls 'gls --color=auto --group-directories-first' fallback 'ls' -safe_alias sed 'gsed' fallback 'sed' -safe_alias awk 'gawk' fallback 'awk' -safe_alias find 'gfind' fallback 'find' -safe_alias grep 'ggrep' fallback 'grep' -safe_alias xargs 'gxargs' fallback 'xargs' -safe_alias tar 'gtar' fallback 'tar' -safe_alias which 'gwhich' fallback 'which' -safe_alias make 'gmake' fallback 'make' -safe_alias dircolors 'gdircolors' fallback 'dircolors' - -# If dircolors is available, eval LS_COLORS -if command -v dircolors >/dev/null 2>&1; then - eval "$(dircolors -b ~/.dircolors)" -fi \ No newline at end of file diff --git a/shell/.zshrc b/shell/.zshrc deleted file mode 100644 index cecc2f1..0000000 --- a/shell/.zshrc +++ /dev/null @@ -1,158 +0,0 @@ -# Make sure autocomplete works properly -autoload -Uz compinit -compinit - -# Load colors -autoload -Uz colors && colors -setopt prompt_subst - -# Git branch info setup -autoload -Uz vcs_info -precmd() { vcs_info } -zstyle ':vcs_info:*' enable git -zstyle ':vcs_info:git:*' formats ' %b' - -ROSEWATER='%F{#f5e0dc}' -MAUVE='%F{#cba6f7}' -TEAL='%F{#94e2d5}' -PEACH='%F{#fab387}' -SOFT_GRAY='%F{#6c7086}' -RESET='%f%k' - -BUBBLE_BG='%{%K{#f5e0dc}%}' -BUBBLE_FG='%{%F{#1e1e2e}%}' - -function kube_prompt() { - local context=$(kubectl config current-context 2>/dev/null) - if [ -n "$context" ]; then - echo "(k8s:$context)" - fi -} - -function pretty_git() { - # Don't forget the space at the end of the echo - [[ -n "${vcs_info_msg_0_}" ]] && echo "${vcs_info_msg_0_} " -} - -# Custom function to show 🏡 if in home -function pretty_pwd() { - case "$PWD" in - "$HOME") - echo "🏡" - ;; - "$HOME/Documents") - echo "📄" - ;; - "$HOME/Downloads") - echo "📁" - ;; - "$HOME/Pictures") - echo "🖼️" - ;; - "$HOME/Music") - echo "🎵" - ;; - "$HOME/Desktop") - echo "🖥️" - ;; - "$HOME/workspace") - echo "💻" - ;; - *) - echo "%~" - ;; - esac - #if [[ "$PWD" == "$HOME" ]]; then - # echo "🏡" - #else - # echo "%~" - #fi -} - -# Dynamic time color based on hour -function dynamic_time_prompt() { - local hour=$(date +%H) - local color icon - - if (( hour >= 6 && hour < 12 )); then - color=$PEACH - icon='☀️' - elif (( hour >= 12 && hour < 18 )); then - color=$TEAL - icon='☀️' - elif (( hour >= 18 && hour < 21 )); then - color=$MAUVE - icon='🌙' - else - color=$SOFT_GRAY - icon='🌙' - fi - - echo "%{$color%}%*%{$RESET%}" -} - -function build_prompt() { - local GIT_INFO="$(pretty_git)" - local PWD_INFO="$(pretty_pwd)" - - PROMPT="⭐ ${MAUVE}[${ROSEWATER}%n${MAUVE}@${TEAL}${PWD_INFO}${MAUVE}] ${PEACH}${GIT_INFO}${RESET}➔ " -} - -precmd_functions+=(build_prompt) - -function build_rprompt() { - RPROMPT="$(dynamic_time_prompt)" -} - -precmd_functions+=(build_rprompt) - -source ~/.gnu_aliases - -# Soft pastel fzf colors -export FZF_DEFAULT_OPTS=" - --color=fg:#cdd6f4,bg:#1e1e2e,hl:#f38ba8 - --color=fg+:#f5e0dc,bg+:#313244,hl+:#fab387 - --color=info:#89b4fa,prompt:#94e2d5,pointer:#f5c2e7 - --color=marker:#a6e3a1,spinner:#b4befe,header:#cba6f7 - --layout=reverse - --border -" -[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh - -# Load custom shell functions -for f in ~/.config/shell-functions/*.sh; do - source "$f" -done - -function kctx() { - local selected - selected=$(kubectl config get-contexts -o name | \ - fzf --prompt="Select context > " \ - --height=40% \ - --layout=reverse \ - --border \ - --ansi) - - if [[ -n "$selected" ]]; then - kubectl config use-context "$selected" - else - echo "No context selected." - fi -} - -function git-ch() { - local branch - branch=$(git branch --sort=-committerdate | sed 's/* //' | sed 's/^[[:space:]]*//' | \ - fzf --prompt="Checkout branch > " \ - --height=40% \ - --layout=reverse \ - --border) - if [[ -n "$branch" ]]; then - git checkout "$branch" - fi -} - -alias kc=kctx -alias gch="git-ch" - -export PATH="/opt/homebrew/bin:$PATH" \ No newline at end of file From c4c404e22df69e70bfc10ca9b4bb7db147718d5a Mon Sep 17 00:00:00 2001 From: Jean-Michel Bouchard Date: Thu, 9 Jul 2026 13:22:49 -0400 Subject: [PATCH 25/32] Consolidate on install.sh as the single install tool scripts/dotfiles.py and install.sh overlapped on the copy step but split responsibilities: only install.sh could bootstrap a machine (packages, vim plugins, CoC, fzf), while only dotfiles.py knew about the Arch desktop files. One tool is enough: - install.sh gains install_desktop_configs: on Arch, everything under linux/arch/.config/ is copied into ~/.config/ preserving relative paths (sway, waybar, gtk-3.0/4.0, and any future tool configs), with the kitty subdir still applied as theme overlays. - Remove scripts/dotfiles.py, common/bin/dotfiles, and machines/jm-home-box/machine.toml (nothing consumes machine.toml anymore; OS/distro detection covers the real per-machine differences). - Remove the dotfiles-* Makefile targets and rewrite the README convergence section around the single entry point. Co-Authored-By: Claude Fable 5 --- Makefile | 17 +- README.md | 30 ++- common/bin/dotfiles | 5 - install.sh | 27 ++- machines/jm-home-box/machine.toml | 48 ----- scripts/dotfiles.py | 313 ------------------------------ 6 files changed, 37 insertions(+), 403 deletions(-) delete mode 100755 common/bin/dotfiles delete mode 100644 machines/jm-home-box/machine.toml delete mode 100755 scripts/dotfiles.py diff --git a/Makefile b/Makefile index c89a655..f794720 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -.PHONY: all help install install-minimal install-no-packages backup-bash brew-sync clean-backup legacy check test-install check-editor dotfiles-doctor dotfiles-dry-run dotfiles-install dotfiles-diff-live dotfiles-backup +.PHONY: all help install install-minimal install-no-packages backup-bash brew-sync clean-backup legacy check test-install check-editor .ONESHELL: SHELL = /bin/bash @@ -33,21 +33,6 @@ test-install: check-editor: $(DOTFILE_DIR)/scripts/check-editor-parity.sh -dotfiles-doctor: - $(DOTFILE_DIR)/scripts/dotfiles.py doctor - -dotfiles-dry-run: - $(DOTFILE_DIR)/scripts/dotfiles.py install --dry-run - -dotfiles-install: - $(DOTFILE_DIR)/scripts/dotfiles.py install - -dotfiles-diff-live: - $(DOTFILE_DIR)/scripts/dotfiles.py diff-live - -dotfiles-backup: - $(DOTFILE_DIR)/scripts/dotfiles.py backup - # Legacy OS-specific targets (kept for compatibility) legacy: $(OS) linux: apt flatpak git-init stow-linux git-installs profile-source font-cache diff --git a/README.md b/README.md index 7473345..6c79e5d 100644 --- a/README.md +++ b/README.md @@ -179,28 +179,22 @@ To clean old backups (30+ days): make clean-backup ``` -## 🧭 Machine Convergence Workflow +## 🧭 Machine Convergence -The copy-based convergence workflow is being introduced alongside the legacy -installer. It is intended for personal machines where configs should be copied -into place, tracked with a manifest, and checked for drift. +`install.sh` is the single entry point for every machine. It detects the OS +and distribution and installs the right layer on top of `common/`: -```bash -make dotfiles-doctor # Check required/preferred tools for this machine -make dotfiles-dry-run # Preview managed copies without changing files -make dotfiles-backup # Back up managed live files -make dotfiles-install # Copy managed files and write install manifest -make dotfiles-diff-live # Report live files that drift from the repo -``` - -Machine profiles live in `machines//machine.toml`. The current Arch -profile is `machines/jm-home-box/machine.toml`. +- macOS: `darwin/` (Brewfile, kitty) +- Linux: `linux//` packages plus, on Arch, the full desktop + configuration under `linux/arch/.config/` (Sway, Waybar, GTK, kitty theme + overlays) -This path keeps Bash available as a fallback, but converges personal interactive -machines on Zsh, Kitty, and Neovim. +Installs are always copies (never symlinks) with path-preserving backups and +an audit log. Preview any run with `./install.sh --dry-run`. -The active convergence plan is tracked in -`docs/machine-convergence-plan.md`. +This converges personal interactive machines on Zsh, Kitty, and Neovim while +keeping Bash available as a fallback. The history of this effort is recorded +in `docs/machine-convergence-plan.md`. ## 🐳 Container Usage diff --git a/common/bin/dotfiles b/common/bin/dotfiles deleted file mode 100755 index 03bdd95..0000000 --- a/common/bin/dotfiles +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -repo_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" -exec python3 "$repo_dir/scripts/dotfiles.py" "$@" diff --git a/install.sh b/install.sh index 1742ec9..c471f12 100755 --- a/install.sh +++ b/install.sh @@ -410,6 +410,26 @@ install_terminal_config() { install_file "$DOTFILES_DIR/common/htop/htoprc" "$HOME/.config/htop/htoprc" } +# Install Linux desktop configurations (sway, waybar, gtk, rofi, mako, ...) +# Copies everything under linux/arch/.config/ into ~/.config/ preserving +# relative paths, so new tool configs are picked up without listing them here. +install_desktop_configs() { + if [[ "$DISTRO" != "arch" ]] || [[ "$MINIMAL_MODE" == "true" ]]; then + return 0 + fi + + log_step "Installing Arch desktop configurations..." + + local desktop_root="$DOTFILES_DIR/linux/arch/.config" + local src rel + while IFS= read -r -d '' src; do + rel="${src#$desktop_root/}" + # kitty files are applied as theme overlays by install_terminal_config + [[ "$rel" == kitty/* ]] && continue + install_file "$src" "$HOME/.config/$rel" + done < <(find "$desktop_root" -type f -print0 | sort -z) +} + # Install vim + nvim configuration install_vim_config() { log_step "Installing vim configuration..." @@ -571,9 +591,10 @@ main() { install_git_config # 2. Git configuration (.gitconfig) install_shell_functions # 3. Shell functions (depends on shell configs) install_terminal_config # 4. Terminal configs (kitty, htop) - install_vim_config # 5. Vim setup (plugins, settings, CoC compilation) - install_neovim_config # 6. Neovim bridge to Vim config - install_optional_tools # 7. Optional tools (fzf, etc.) - last + install_desktop_configs # 5. Linux desktop configs (sway/waybar/gtk) - arch only + install_vim_config # 6. Vim setup (plugins, settings, CoC compilation) + install_neovim_config # 7. Neovim bridge to Vim config + install_optional_tools # 8. Optional tools (fzf, etc.) - last echo -e "${GREEN}" echo "╔══════════════════════════════════════════════════════════════╗" diff --git a/machines/jm-home-box/machine.toml b/machines/jm-home-box/machine.toml deleted file mode 100644 index 8ea79e1..0000000 --- a/machines/jm-home-box/machine.toml +++ /dev/null @@ -1,48 +0,0 @@ -name = "jm-home-box" -profile = "personal" -os = "arch" -shell = "zsh" -terminal = "kitty" -editor = "nvim" -style = "personal-pink" -sshd = true - -[paths] -workspace = "~/workspace" - -[packages] -pacman = [ - "bash", - "fzf", - "git", - "kitty", - "neovim", - "openssh", - "python", - "ripgrep", - "zsh", -] -aur = [ - "yay-bin", - "1password", - "1password-cli", - "amf-amdgpu-pro", - "lib32-vulkan-amdgpu-pro", - "vulkan-amdgpu-pro", - "opencl-amd", - "nordic-theme", - "nordic-darker-theme", - "nordic-darker-standard-buttons-theme", - "nordic-bluish-accent-theme", - "nordic-bluish-accent-standard-buttons-theme", - "nordic-standard-buttons-theme", - "swayfx", - "wshowkeys-git", - "ttf-meslo", - "ttf-monaco", - "openvpn-update-systemd-resolved", - "slack-desktop", - "spotify", - "zoom", - "exodus", -] diff --git a/scripts/dotfiles.py b/scripts/dotfiles.py deleted file mode 100755 index b46284e..0000000 --- a/scripts/dotfiles.py +++ /dev/null @@ -1,313 +0,0 @@ -#!/usr/bin/env python3 -"""Copy-based dotfiles installer, backup, drift checker, and doctor.""" - -from __future__ import annotations - -import argparse -import datetime as dt -import filecmp -import hashlib -import json -import os -import platform -import shutil -import subprocess -import sys -import tomllib -from dataclasses import dataclass -from pathlib import Path - - -REPO = Path(__file__).resolve().parents[1] -HOME = Path.home() -STATE_DIR = HOME / ".local" / "share" / "dotfiles" -MANIFEST = STATE_DIR / "install-manifest.json" - - -@dataclass(frozen=True) -class ManagedFile: - source: Path - target: Path - label: str - - -def rel(path: Path) -> str: - try: - return str(path.relative_to(REPO)) - except ValueError: - return str(path) - - -def sha256(path: Path) -> str: - digest = hashlib.sha256() - with path.open("rb") as handle: - for chunk in iter(lambda: handle.read(1024 * 1024), b""): - digest.update(chunk) - return digest.hexdigest() - - -def load_machine(name: str | None) -> tuple[str, dict]: - machine = name or platform.node().split(".")[0] - path = REPO / "machines" / machine / "machine.toml" - if not path.exists(): - raise SystemExit(f"No machine profile found at {rel(path)}") - with path.open("rb") as handle: - return machine, tomllib.load(handle) - - -def add_file(entries: list[ManagedFile], source: str, target: str, label: str) -> None: - src = REPO / source - if not src.exists(): - raise SystemExit(f"Managed source is missing: {rel(src)}") - entries.append(ManagedFile(src, Path(target).expanduser(), label)) - - -def add_glob(entries: list[ManagedFile], source_glob: str, target_dir: str, label: str) -> None: - matches = sorted(REPO.glob(source_glob)) - if not matches: - raise SystemExit(f"Managed source glob matched nothing: {source_glob}") - dest = Path(target_dir).expanduser() - for src in matches: - if src.is_file(): - entries.append(ManagedFile(src, dest / src.name, label)) - - -def managed_files(machine: dict) -> list[ManagedFile]: - os_name = machine.get("os") - entries: list[ManagedFile] = [] - - add_file(entries, "common/shell/.zshrc", "~/.zshrc", "shell") - add_file(entries, "common/shell/.bashrc", "~/.bashrc", "shell") - add_file(entries, "common/shell/.bash_profile", "~/.bash_profile", "shell") - add_file(entries, "common/shell/.gnu_aliases", "~/.gnu_aliases", "shell") - add_file(entries, "common/shell/.dircolors", "~/.dircolors", "shell") - - add_file(entries, "common/git/.gitconfig", "~/.gitconfig", "git") - add_file(entries, "common/git/.gitignore_global", "~/.config/git/ignore", "git") - - add_glob(entries, "common/shell-functions/*.sh", "~/.config/shell-functions", "shell-functions") - - if os_name == "darwin": - add_file(entries, "darwin/kitty.conf", "~/.config/kitty/kitty.conf", "kitty") - else: - add_file(entries, "linux/common/kitty.conf", "~/.config/kitty/kitty.conf", "kitty") - add_glob(entries, "common/themes/*.conf", "~/.config/kitty", "kitty") - - add_file(entries, "common/htop/htoprc", "~/.config/htop/htoprc", "htop") - - if os_name in {"arch"}: - add_file(entries, "linux/arch/.config/sway/config", "~/.config/sway/config", "sway") - add_file(entries, "linux/arch/.config/sway/key-bindings", "~/.config/sway/key-bindings", "sway") - add_glob(entries, "linux/arch/.config/sway/assets/*", "~/.config/sway/assets", "sway") - add_glob(entries, "linux/arch/.config/sway/scripts/*", "~/.config/sway/scripts", "sway") - add_file(entries, "linux/arch/.config/waybar/config", "~/.config/waybar/config", "waybar") - add_file(entries, "linux/arch/.config/waybar/style.css", "~/.config/waybar/style.css", "waybar") - add_file(entries, "linux/arch/.config/waybar/waybar.sh", "~/.config/waybar/waybar.sh", "waybar") - add_glob(entries, "linux/arch/.config/waybar/modules/*", "~/.config/waybar/modules", "waybar") - add_file(entries, "linux/arch/.config/gtk-3.0/gtk.css", "~/.config/gtk-3.0/gtk.css", "gtk") - add_file(entries, "linux/arch/.config/gtk-3.0/settings.ini", "~/.config/gtk-3.0/settings.ini", "gtk") - add_file(entries, "linux/arch/.config/gtk-4.0/gtk.css", "~/.config/gtk-4.0/gtk.css", "gtk") - add_file(entries, "linux/arch/.config/gtk-4.0/settings.ini", "~/.config/gtk-4.0/settings.ini", "gtk") - - add_file(entries, ".vim/vimrc", "~/.vim/vimrc", "vim") - add_file(entries, ".vim/plugins.vim", "~/.vim/plugins.vim", "vim") - add_file(entries, ".vim/mappings.vim", "~/.vim/mappings.vim", "vim") - add_file(entries, ".vim/settings.vim", "~/.vim/settings.vim", "vim") - add_file(entries, ".vim/coc-settings.json", "~/.vim/coc-settings.json", "vim") - add_glob(entries, ".vim/settings/*.vim", "~/.vim/settings", "vim") - - add_file(entries, "common/nvim/init.vim", "~/.config/nvim/init.vim", "nvim") - add_file(entries, "common/bin/dotfiles", "~/.local/bin/dotfiles", "bin") - - return entries - - -def backup_root() -> Path: - stamp = dt.datetime.now().strftime("%Y%m%d_%H%M%S") - return HOME / ".dotfiles-backups" / stamp - - -def backup_target(target: Path, root: Path, *, dry_run: bool) -> None: - if not target.exists() and not target.is_symlink(): - return - try: - relative = target.relative_to(HOME) - except ValueError: - relative = Path(target.name) - dest = root / relative - print(f"backup {target} -> {dest}") - if dry_run: - return - dest.parent.mkdir(parents=True, exist_ok=True) - if target.is_symlink(): - link_target = os.readlink(target) - symlink_record = dest.with_name(f"{dest.name}.symlink") - symlink_record.write_text(f"symlink -> {link_target}\n", encoding="utf-8") - if target.exists() and target.is_file(): - shutil.copy2(target, dest) - else: - shutil.copy2(target, dest) - - -def command_backup(args: argparse.Namespace) -> int: - _, machine = load_machine(args.machine) - root = Path(args.output).expanduser() if args.output else backup_root() - for entry in managed_files(machine): - backup_target(entry.target, root, dry_run=args.dry_run) - if not args.dry_run: - print(f"backup saved to {root}") - return 0 - - -def copy_entry(entry: ManagedFile, backup_dir: Path, *, dry_run: bool) -> dict: - changed = True - if entry.target.is_symlink(): - changed = True - elif entry.target.exists() and entry.target.is_file(): - changed = not filecmp.cmp(entry.source, entry.target, shallow=False) - - action = "copy" - if not changed: - action = "unchanged" - print(f"{action} {rel(entry.source)} -> {entry.target}") - - if dry_run or not changed: - return manifest_entry(entry, copied=not dry_run and not changed) - - backup_target(entry.target, backup_dir, dry_run=False) - entry.target.parent.mkdir(parents=True, exist_ok=True) - if entry.target.is_symlink(): - entry.target.unlink() - shutil.copy2(entry.source, entry.target) - return manifest_entry(entry, copied=True) - - -def manifest_entry(entry: ManagedFile, *, copied: bool) -> dict: - data = { - "source": rel(entry.source), - "target": str(entry.target), - "label": entry.label, - "source_sha256": sha256(entry.source), - "copied": copied, - } - if entry.target.exists() and entry.target.is_file(): - data["target_sha256"] = sha256(entry.target) - return data - - -def command_install(args: argparse.Namespace) -> int: - machine_name, machine = load_machine(args.machine) - entries = managed_files(machine) - backup_dir = backup_root() - manifest = { - "machine": machine_name, - "installed_at": dt.datetime.now(dt.UTC).isoformat(), - "repo": str(REPO), - "files": [], - } - for entry in entries: - manifest["files"].append(copy_entry(entry, backup_dir, dry_run=args.dry_run)) - - if args.dry_run: - print("dry run only; no files copied") - return 0 - - STATE_DIR.mkdir(parents=True, exist_ok=True) - MANIFEST.write_text(json.dumps(manifest, indent=2) + "\n", encoding="utf-8") - print(f"manifest written to {MANIFEST}") - return 0 - - -def command_diff_live(args: argparse.Namespace) -> int: - _, machine = load_machine(args.machine) - changed = 0 - missing = 0 - for entry in managed_files(machine): - if not entry.target.exists(): - print(f"missing {entry.target} <- {rel(entry.source)}") - missing += 1 - elif entry.target.is_symlink(): - print(f"symlink {entry.target} <- {rel(entry.source)}") - changed += 1 - elif not filecmp.cmp(entry.source, entry.target, shallow=False): - print(f"changed {entry.target} <- {rel(entry.source)}") - changed += 1 - if changed or missing: - print(f"{changed} changed, {missing} missing") - return 1 - print("managed files match repo sources") - return 0 - - -def command_manifest(args: argparse.Namespace) -> int: - if not MANIFEST.exists(): - print(f"no manifest found at {MANIFEST}") - return 1 - print(MANIFEST.read_text(encoding="utf-8"), end="") - return 0 - - -def has_command(command: str) -> bool: - return shutil.which(command) is not None - - -def command_doctor(args: argparse.Namespace) -> int: - machine_name, machine = load_machine(args.machine) - required = ["python3", "git", "kitty", "rg", "fzf"] - preferred = [machine.get("shell", "zsh"), machine.get("editor", "nvim"), "op"] - if machine.get("sshd"): - preferred.append("sshd") - - print(f"machine: {machine_name}") - print(f"profile: {machine.get('profile', 'unknown')}") - failures = 0 - - for command in required: - status = "ok" if has_command(command) else "missing" - print(f"required {command}: {status}") - failures += status == "missing" - - for command in preferred: - status = "ok" if has_command(command) else "missing" - print(f"preferred {command}: {status}") - - if failures: - print(f"doctor found {failures} missing required tool(s)") - return 1 - return 0 - - -def build_parser() -> argparse.ArgumentParser: - parser = argparse.ArgumentParser(prog="dotfiles") - parser.add_argument("--machine", help="machine profile name; defaults to hostname") - sub = parser.add_subparsers(dest="command", required=True) - - backup = sub.add_parser("backup", help="backup managed live files") - backup.add_argument("--dry-run", action="store_true") - backup.add_argument("--output", help="backup directory") - backup.set_defaults(func=command_backup) - - install = sub.add_parser("install", help="copy managed files into place") - install.add_argument("--dry-run", action="store_true") - install.set_defaults(func=command_install) - - diff_live = sub.add_parser("diff-live", help="compare live managed files to repo") - diff_live.set_defaults(func=command_diff_live) - - manifest = sub.add_parser("manifest", help="print last install manifest") - manifest.set_defaults(func=command_manifest) - - doctor = sub.add_parser("doctor", help="check this machine for expected tools") - doctor.set_defaults(func=command_doctor) - - return parser - - -def main(argv: list[str] | None = None) -> int: - parser = build_parser() - args = parser.parse_args(argv) - return args.func(args) - - -if __name__ == "__main__": - raise SystemExit(main()) From 314f98edce70c8a4feca7f60ee1d0135e87ab0cb Mon Sep 17 00:00:00 2001 From: Jean-Michel Bouchard Date: Thu, 9 Jul 2026 13:33:46 -0400 Subject: [PATCH 26/32] Cherry-pick stranded fixes: CoC fallback, git hooks, rofi/mako, askpass From bugfix/coc-nvim-ci-error: extract a shared compile_coc_nvim helper (npm ci with lockfile, npm install fallback, non-fatal on failure) used by both the vim and nvim paths, replacing two duplicated bare `npm ci` blocks; lightweight typescript-vim + vim-jsx-typescript plugins with polyglot's heavy TS syntax disabled; git-lfs filter in .gitconfig. From the rescued home-box commit 3dabbca: personal global git hooks (pre-commit blocks secrets/conflict markers/oversized files, pre-push runs a configured repo check; both delegate to repo hooks like .husky first), installed copy-based to ~/.config/git/hooks with core.hooksPath set by the installed .gitconfig, plus a make install-git-hooks target. From feature/add-linux-box: the mako notification config, rofi theme.rasi (used by the rofi sudo-askpass prompt), and the Arch README - picked up automatically by install_desktop_configs. sudo askpass: the installer now copies scripts/sudo-askpass.sh to ~/.local/bin/sudo-askpass, and sudo.sh points SUDO_ASKPASS there instead of hardcoding ~/workspace/dotfiles (which was wrong on any machine with a different checkout path). fix/charlie-lab-laptop reviewed for leverage: its only unique content is work-laptop machine captures and Brewfile entries already present or out of scope; nothing further taken. Co-Authored-By: Claude Fable 5 --- .vim/plugins.vim | 5 +- Makefile | 12 +++- common/git/.gitconfig | 7 ++ common/git/hooks/README.md | 39 +++++++++++ common/git/hooks/pre-commit | 106 +++++++++++++++++++++++++++++ common/git/hooks/pre-push | 94 +++++++++++++++++++++++++ common/shell-functions/sudo.sh | 6 +- install.sh | 86 ++++++++++++++++++----- linux/arch/.config/mako/config | 33 +++++++++ linux/arch/.config/rofi/theme.rasi | 96 ++++++++++++++++++++++++++ linux/arch/README.md | 97 ++++++++++++++++++++++++++ 11 files changed, 560 insertions(+), 21 deletions(-) create mode 100644 common/git/hooks/README.md create mode 100755 common/git/hooks/pre-commit create mode 100755 common/git/hooks/pre-push create mode 100644 linux/arch/.config/mako/config create mode 100644 linux/arch/.config/rofi/theme.rasi create mode 100644 linux/arch/README.md diff --git a/.vim/plugins.vim b/.vim/plugins.vim index 338d978..99140bd 100644 --- a/.vim/plugins.vim +++ b/.vim/plugins.vim @@ -8,7 +8,7 @@ endif call plug#begin('~/.vim/plugged') " Polyglot configuration (must be before plugin load) -let g:polyglot_disabled = ['csv'] +let g:polyglot_disabled = ['csv', 'typescript'] " disable heavy yats TS syntax " UI Enhancements Plug 'vim-airline/vim-airline' @@ -21,6 +21,9 @@ Plug 'junegunn/fzf.vim' " Syntax & Language Support Plug 'sheerun/vim-polyglot' +" Lightweight TypeScript/TSX syntax to avoid polyglot/yats slowness on larger files +Plug 'leafgarland/typescript-vim' +Plug 'peitalin/vim-jsx-typescript' Plug 'neoclide/coc.nvim', {'branch': 'release'} if has('nvim') diff --git a/Makefile b/Makefile index f794720..f275276 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -.PHONY: all help install install-minimal install-no-packages backup-bash brew-sync clean-backup legacy check test-install check-editor +.PHONY: all help install install-minimal install-no-packages install-git-hooks backup-bash brew-sync clean-backup legacy check test-install check-editor .ONESHELL: SHELL = /bin/bash @@ -33,6 +33,16 @@ test-install: check-editor: $(DOTFILE_DIR)/scripts/check-editor-parity.sh +install-git-hooks: + mkdir -p $(HOME)/.config/git/hooks + for hook in $(DOTFILE_DIR)/common/git/hooks/*; do \ + if [[ -f "$$hook" && "$$(basename "$$hook")" != "README.md" ]]; then \ + cp -f "$$hook" "$(HOME)/.config/git/hooks/$$(basename "$$hook")"; \ + chmod +x "$(HOME)/.config/git/hooks/$$(basename "$$hook")"; \ + fi; \ + done + git config --global core.hooksPath "~/.config/git/hooks" + # Legacy OS-specific targets (kept for compatibility) legacy: $(OS) linux: apt flatpak git-init stow-linux git-installs profile-source font-cache diff --git a/common/git/.gitconfig b/common/git/.gitconfig index 4be2678..ef367f9 100644 --- a/common/git/.gitconfig +++ b/common/git/.gitconfig @@ -79,3 +79,10 @@ git log --oneline; \ fi; \ }; f" +[filter "lfs"] + clean = git-lfs clean -- %f + smudge = git-lfs smudge -- %f + process = git-lfs filter-process + required = true +[core] + hooksPath = ~/.config/git/hooks diff --git a/common/git/hooks/README.md b/common/git/hooks/README.md new file mode 100644 index 0000000..cfc0cf7 --- /dev/null +++ b/common/git/hooks/README.md @@ -0,0 +1,39 @@ +# Git Hooks + +These are personal, global Git hooks installed through `core.hooksPath`. + +## Behavior + +- `pre-commit` + - preserves repo-local `.husky/pre-commit`, `.githooks/pre-commit`, and `.git/hooks/pre-commit.local`; + - blocks likely secret files; + - blocks large staged files over 10 MiB by default; + - blocks conflict markers; + - blocks generated-looking files unless `JM_ALLOW_GENERATED_EDITS=1`. + +- `pre-push` + - preserves repo-local `.husky/pre-push`, `.githooks/pre-push`, and `.git/hooks/pre-push.local`; + - runs `git config jm.hooks.prePushCommand` when set; + - runs `scripts/pre-push-check` when executable; + - can auto-run `make check`, package `ci`, package `check`, or package `test` when `JM_GIT_HOOKS_AUTO_PRE_PUSH=1`. + +## Escapes + +- Disable all personal hooks for one command: `JM_GIT_HOOKS=0 git commit ...` +- Alternate skip flag: `SKIP_JM_HOOKS=1 git commit ...` +- Allow intentional generated output: `JM_ALLOW_GENERATED_EDITS=1 git commit ...` +- Adjust large file limit: `JM_GIT_HOOKS_MAX_BYTES=20971520 git commit ...` + +## Repo-specific checks + +Prefer an explicit local command: + +```bash +git config jm.hooks.prePushCommand "make check" +``` + +Or add an executable script: + +```bash +scripts/pre-push-check +``` diff --git a/common/git/hooks/pre-commit b/common/git/hooks/pre-commit new file mode 100755 index 0000000..501e2a5 --- /dev/null +++ b/common/git/hooks/pre-commit @@ -0,0 +1,106 @@ +#!/usr/bin/env bash +set -euo pipefail + +if [[ "${JM_GIT_HOOKS:-1}" == "0" || "${SKIP_JM_HOOKS:-0}" == "1" ]]; then + echo "[jm-hooks] pre-commit skipped by environment" + exit 0 +fi + +repo_root="$(git rev-parse --show-toplevel 2>/dev/null || true)" +if [[ -z "$repo_root" ]]; then + exit 0 +fi + +cd "$repo_root" + +run_repo_hook() { + local hook_path="$1" + if [[ -f "$hook_path" ]]; then + echo "[jm-hooks] running repo hook: $hook_path" + if [[ -x "$hook_path" ]]; then + "$hook_path" + else + bash "$hook_path" + fi + fi +} + +mapfile -d '' staged_files < <(git diff --cached --name-only -z --diff-filter=ACMR) +if [[ "${#staged_files[@]}" -eq 0 ]]; then + exit 0 +fi + +# Preserve common repo-local hook systems even when global core.hooksPath is set. +run_repo_hook ".husky/pre-commit" +run_repo_hook ".githooks/pre-commit" +run_repo_hook ".git/hooks/pre-commit.local" + +failures=0 +max_bytes="${JM_GIT_HOOKS_MAX_BYTES:-10485760}" + +is_secret_path() { + local path="$1" + local base + base="$(basename "$path")" + + case "$base" in + .env.example|.env.sample|.env.template|.envrc.example) + return 1 + ;; + .env|.env.*|*.pem|*.key|*.p12|*.pfx|id_rsa|id_ed25519|credentials.json|service-account*.json) + return 0 + ;; + esac + + return 1 +} + +is_generated_blob() { + local path="$1" + git show ":$path" 2>/dev/null \ + | sed -n '1,60p' \ + | grep -Eiq '(do not edit|automatically generated|auto-generated|generated by)' +} + +has_conflict_markers() { + local path="$1" + git show ":$path" 2>/dev/null \ + | grep -Iq . \ + && git show ":$path" 2>/dev/null \ + | grep -nE '^(<<<<<<<|=======|>>>>>>>)' +} + +for file in "${staged_files[@]}"; do + if is_secret_path "$file"; then + echo "[jm-hooks] blocked likely secret file: $file" + echo " Rename to an example/template file or commit with SKIP_JM_HOOKS=1 if intentional." + failures=1 + fi + + if size="$(git cat-file -s ":$file" 2>/dev/null)"; then + if [[ "$size" -gt "$max_bytes" ]]; then + echo "[jm-hooks] blocked oversized staged file: $file (${size} bytes)" + echo " Limit is ${max_bytes} bytes. Use Git LFS or SKIP_JM_HOOKS=1 if intentional." + failures=1 + fi + fi + + if [[ "${JM_ALLOW_GENERATED_EDITS:-0}" != "1" ]] && is_generated_blob "$file"; then + echo "[jm-hooks] staged generated-looking file: $file" + echo " Regenerate from source and set JM_ALLOW_GENERATED_EDITS=1 only when this output is expected." + failures=1 + fi + + if conflict_output="$(has_conflict_markers "$file" || true)" && [[ -n "$conflict_output" ]]; then + echo "[jm-hooks] conflict markers in staged file: $file" + echo "$conflict_output" + failures=1 + fi +done + +if [[ "$failures" -ne 0 ]]; then + echo "[jm-hooks] pre-commit failed" + exit 1 +fi + +echo "[jm-hooks] pre-commit passed" diff --git a/common/git/hooks/pre-push b/common/git/hooks/pre-push new file mode 100755 index 0000000..b34cc85 --- /dev/null +++ b/common/git/hooks/pre-push @@ -0,0 +1,94 @@ +#!/usr/bin/env bash +set -euo pipefail + +if [[ "${JM_GIT_HOOKS:-1}" == "0" || "${SKIP_JM_HOOKS:-0}" == "1" ]]; then + echo "[jm-hooks] pre-push skipped by environment" + exit 0 +fi + +repo_root="$(git rev-parse --show-toplevel 2>/dev/null || true)" +if [[ -z "$repo_root" ]]; then + exit 0 +fi + +cd "$repo_root" + +run_repo_hook() { + local hook_path="$1" + shift + if [[ -f "$hook_path" ]]; then + echo "[jm-hooks] running repo hook: $hook_path" + if [[ -x "$hook_path" ]]; then + "$hook_path" "$@" + else + bash "$hook_path" "$@" + fi + return 0 + fi + return 1 +} + +# Preserve common repo-local hook systems even when global core.hooksPath is set. +if [[ -f ".husky/pre-push" ]]; then + run_repo_hook ".husky/pre-push" "$@" +fi +if [[ -f ".githooks/pre-push" ]]; then + run_repo_hook ".githooks/pre-push" "$@" +fi +if [[ -f ".git/hooks/pre-push.local" ]]; then + run_repo_hook ".git/hooks/pre-push.local" "$@" +fi + +configured_command="$(git config --get jm.hooks.prePushCommand || true)" +if [[ -n "$configured_command" ]]; then + echo "[jm-hooks] running configured pre-push command: $configured_command" + bash -lc "$configured_command" + exit 0 +fi + +if [[ -x "scripts/pre-push-check" ]]; then + echo "[jm-hooks] running scripts/pre-push-check" + scripts/pre-push-check + exit 0 +fi + +if [[ "${JM_GIT_HOOKS_AUTO_PRE_PUSH:-0}" == "1" ]]; then + if [[ -f Makefile ]] && grep -Eq '^check:' Makefile; then + echo "[jm-hooks] running make check" + make check + exit 0 + fi + + if [[ -f package.json ]] && command -v python3 >/dev/null 2>&1; then + script_name="$(python3 - <<'PY' +import json +from pathlib import Path + +try: + package = json.loads(Path("package.json").read_text()) +except Exception: + raise SystemExit(0) + +scripts = package.get("scripts", {}) +for name in ("ci", "check", "test"): + if name in scripts: + print(name) + break +PY +)" + if [[ -n "$script_name" ]]; then + if command -v bun >/dev/null 2>&1 && [[ -f bun.lock || -f bun.lockb ]]; then + echo "[jm-hooks] running bun run $script_name" + bun run "$script_name" + exit 0 + elif command -v npm >/dev/null 2>&1; then + echo "[jm-hooks] running npm run $script_name" + npm run "$script_name" + exit 0 + fi + fi + fi +fi + +echo "[jm-hooks] pre-push passed; no repo-specific check configured" +echo " Set 'git config jm.hooks.prePushCommand \"make check\"' or JM_GIT_HOOKS_AUTO_PRE_PUSH=1 to run checks." diff --git a/common/shell-functions/sudo.sh b/common/shell-functions/sudo.sh index a0c89af..02f50c1 100644 --- a/common/shell-functions/sudo.sh +++ b/common/shell-functions/sudo.sh @@ -1,3 +1,7 @@ #!/bin/bash # Sudo askpass for GUI password prompts (used by Claude CLI, etc.) -export SUDO_ASKPASS="$HOME/workspace/dotfiles/scripts/sudo-askpass.sh" +# The installer copies scripts/sudo-askpass.sh to ~/.local/bin/sudo-askpass, +# so this works regardless of where the dotfiles repo is checked out. +if [[ -x "$HOME/.local/bin/sudo-askpass" ]]; then + export SUDO_ASKPASS="$HOME/.local/bin/sudo-askpass" +fi diff --git a/install.sh b/install.sh index 8bee828..891717d 100755 --- a/install.sh +++ b/install.sh @@ -345,6 +345,33 @@ install_git_config() { install_file "$DOTFILES_DIR/common/git/commit-template.md" "$HOME/.config/git/commit-template.md" } +# Install personal global Git hooks +install_git_hooks() { + log_step "Installing personal git hooks..." + + local hooks_src="$DOTFILES_DIR/common/git/hooks" + local hooks_dest="$HOME/.config/git/hooks" + + if [[ ! -d "$hooks_src" ]]; then + log_warning "Git hooks source not found: $hooks_src" + return + fi + + if [[ "$DRY_RUN" == "false" ]]; then + mkdir -p "$hooks_dest" + for hook_file in "$hooks_src"/*; do + if [[ -f "$hook_file" && "$(basename "$hook_file")" != "README.md" ]]; then + install_file "$hook_file" "$hooks_dest/$(basename "$hook_file")" + chmod +x "$hooks_dest/$(basename "$hook_file")" + fi + done + # core.hooksPath is set by the installed ~/.gitconfig + log_success "Installed git hooks to $hooks_dest" + else + log_info "Would install hooks from $hooks_src to $hooks_dest" + fi +} + # Install shell functions install_shell_functions() { log_step "Installing shell functions..." @@ -363,6 +390,14 @@ install_shell_functions() { fi done fi + + # GUI sudo askpass helper at a stable path (sudo.sh points SUDO_ASKPASS here) + if [[ "$DRY_RUN" == "false" ]]; then + install_file "$DOTFILES_DIR/scripts/sudo-askpass.sh" "$HOME/.local/bin/sudo-askpass" + chmod +x "$HOME/.local/bin/sudo-askpass" + else + log_info "Would copy: scripts/sudo-askpass.sh -> ~/.local/bin/sudo-askpass" + fi } # Install terminal configuration @@ -434,6 +469,36 @@ install_desktop_configs() { done < <(find "$desktop_root" -type f -print0 | sort -z) } +# Compile CoC.nvim after plugin installation (shared by vim + nvim paths) +compile_coc_nvim() { + [[ -d "$HOME/.vim/plugged/coc.nvim" ]] || return 0 + + log_step "Compiling CoC.nvim..." + if ! command -v npm >/dev/null 2>&1; then + log_warning "npm not found. CoC.nvim needs manual compilation: cd ~/.vim/plugged/coc.nvim && npm install" + return 0 + fi + + ( + set +e # don't kill the whole install on a coc build failure + cd "$HOME/.vim/plugged/coc.nvim" || exit 0 + + if [[ -f package-lock.json || -f npm-shrinkwrap.json ]]; then + npm ci + elif [[ -f package.json ]]; then + npm install + else + echo "No package.json / lockfile found in coc.nvim, skipping build" + exit 0 + fi + ) + if [[ $? -eq 0 ]]; then + log_success "CoC.nvim compiled successfully" + else + log_warning "CoC.nvim compilation failed. Retry manually: cd ~/.vim/plugged/coc.nvim && npm install" + fi +} + # Install vim + nvim configuration install_vim_config() { log_step "Installing vim configuration..." @@ -473,15 +538,7 @@ install_vim_config() { if [[ "$DRY_RUN" == "false" ]]; then vim +PlugInstall +qall - if [[ -d "$HOME/.vim/plugged/coc.nvim" ]]; then - log_step "Compiling CoC.nvim..." - if command -v npm >/dev/null 2>&1; then - (cd "$HOME/.vim/plugged/coc.nvim" && npm ci) - log_success "CoC.nvim compiled successfully" - else - log_warning "npm not found. CoC.nvim needs manual compilation: cd ~/.vim/plugged/coc.nvim && npm ci" - fi - fi + compile_coc_nvim else log_info "Would install vim plugins and compile CoC.nvim" fi @@ -522,15 +579,7 @@ install_neovim_config() { log_step "Installing neovim plugins..." nvim --headless +PlugInstall +qall - if [[ -d "$HOME/.vim/plugged/coc.nvim" ]]; then - log_step "Compiling CoC.nvim for neovim..." - if command -v npm >/dev/null 2>&1; then - (cd "$HOME/.vim/plugged/coc.nvim" && npm ci) - log_success "CoC.nvim compiled successfully" - else - log_warning "npm not found. CoC.nvim needs manual compilation: cd ~/.vim/plugged/coc.nvim && npm ci" - fi - fi + compile_coc_nvim else log_warning "nvim not found. Skipping neovim plugin installation." fi @@ -636,6 +685,7 @@ main() { # Install configurations in dependency order install_shell_configs # 1. Shell configs (.bashrc, .zshrc) - foundation install_git_config # 2. Git configuration (.gitconfig) + install_git_hooks # 2b. Personal global Git hooks install_shell_functions # 3. Shell functions (depends on shell configs) install_terminal_config # 4. Terminal configs (kitty, htop) install_desktop_configs # 5. Linux desktop configs (sway/waybar/gtk) - arch only diff --git a/linux/arch/.config/mako/config b/linux/arch/.config/mako/config new file mode 100644 index 0000000..35947e2 --- /dev/null +++ b/linux/arch/.config/mako/config @@ -0,0 +1,33 @@ +# Mako notification daemon config - Purple theme + +# General appearance +font=FiraCode Nerd Font 10 +background-color=#221820 +text-color=#d0d0d0 +border-size=2 +border-radius=16 +padding=15 +margin=10 + +# Position and behavior +sort=-time +layer=overlay +default-timeout=5000 +ignore-timeout=1 +width=400 +height=150 + +# Icons +icon-path=/usr/share/icons/Adwaita +max-icon-size=48 + +# Urgency levels +[urgency=low] +border-color=#626262 + +[urgency=normal] +border-color=#9d5a7f + +[urgency=high] +border-color=#d68787 +default-timeout=0 diff --git a/linux/arch/.config/rofi/theme.rasi b/linux/arch/.config/rofi/theme.rasi new file mode 100644 index 0000000..90f8369 --- /dev/null +++ b/linux/arch/.config/rofi/theme.rasi @@ -0,0 +1,96 @@ +/** + * Rofi Theme - Matching your purple/dark Waybar theme + */ + +* { + bg-main: #221820; + bg-dark: #6b4456; + bg-selected: #9d5a7f; + fg-main: #d0d0d0; + fg-dim: #626262; + border-color: #9d5a7f; + + background-color: transparent; + text-color: @fg-main; + font: "Noto Sans 11"; +} + +window { + background-color: @bg-main; + border: 2px solid; + border-color: @border-color; + border-radius: 16px; + padding: 15px; + width: 600px; +} + +mainbox { + background-color: transparent; + children: [inputbar, listview]; + spacing: 10px; +} + +inputbar { + background-color: transparent; + border: 0px 0px 1px 0px solid; + border-color: @border-color; + padding: 12px 15px; + children: [prompt, entry]; + spacing: 10px; +} + +prompt { + text-color: @border-color; + font: "Noto Sans Bold 11"; +} + +entry { + text-color: @fg-main; + placeholder: ""; + placeholder-color: @fg-dim; +} + +listview { + background-color: transparent; + lines: 8; + spacing: 4px; + scrollbar: false; + cycle: true; +} + +element { + background-color: transparent; + text-color: @fg-main; + border-radius: 8px; + padding: 8px 12px; +} + +element-icon { + size: 24px; + margin: 0px 10px 0px 0px; +} + +element-text { + background-color: transparent; + text-color: inherit; +} + +element selected { + background-color: @bg-selected; + text-color: @fg-main; +} + +element normal.normal { + background-color: transparent; + text-color: @fg-main; +} + +element alternate.normal { + background-color: transparent; + text-color: @fg-main; +} + +element selected.normal { + background-color: @bg-selected; + text-color: @fg-main; +} diff --git a/linux/arch/README.md b/linux/arch/README.md new file mode 100644 index 0000000..9772f09 --- /dev/null +++ b/linux/arch/README.md @@ -0,0 +1,97 @@ +# Arch Linux Desktop Configuration + +This directory contains configuration files for my Arch Linux desktop setup. + +## System Info +- **Window Manager**: SwayFX 0.5.3 (Wayland compositor with rounded corners and effects) +- **Status Bar**: Waybar with custom modules +- **Terminal**: Kitty with FiraCode Nerd Font +- **Launcher**: Rofi +- **Notifications**: Mako +- **GPU**: AMD Radeon RX 5700 XT (RADV driver) +- **Theme**: Purple/dark color scheme + +## What's Included + +### Sway/SwayFX Configuration +- **Location**: `.config/sway/config` +- **Features**: + - 10px rounded corners on windows + - Window shadows and blur effects + - 4px purple borders (#9d5a7f) + - 28px inner gaps, -8px outer gaps + - GPU configuration for AMD RX 5700 XT + - Workspace assignments (Firefox→2, Slack→3, Steam→4) + - Custom keybindings + +### Waybar +- **Location**: `.config/waybar/` +- **Modules**: + - Docker container monitoring (`modules/docker.py`) + - Kubernetes cluster info (`modules/k8s.py`) - filters out system namespaces + - CPU/Memory usage display + - Dual drive monitoring (root + workspace drive) + - Custom app launchers (Firefox, Slack, Spotify, Steam) +- **Theme**: Purple/dark (#6b4456 backgrounds, #9d5a7f accents) +- **Font**: FiraCode Nerd Font 10px for tooltips + +### Kitty Terminal +- **Location**: `.config/kitty/kitty.conf` +- **Settings**: + - Font: FiraCode Nerd Font 12.5 + - Background: #221820 (pink-gray tint) + - 85% opacity with tint + - Matching purple theme + +### Rofi Launcher +- **Location**: `.config/rofi/theme.rasi` +- **Theme**: Purple/dark matching system colors +- **Border radius**: 16px rounded corners + +### Mako Notifications +- **Location**: `.config/mako/config` +- **Theme**: Purple borders, dark background +- **Font**: FiraCode Nerd Font 10px +- **Border radius**: 16px + +## Installation + +1. **Prerequisites**: + ```bash + sudo pacman -S swayfx waybar kitty rofi mako \ + firefox slack-desktop spotify-launcher steam + ``` + +2. **Link configs** (from dotfiles root): + ```bash + ln -sf $(pwd)/linux/arch/.config/sway ~/.config/sway + ln -sf $(pwd)/linux/arch/.config/waybar ~/.config/waybar + ln -sf $(pwd)/linux/arch/.config/kitty ~/.config/kitty + ln -sf $(pwd)/linux/arch/.config/rofi ~/.config/rofi + ln -sf $(pwd)/linux/arch/.config/mako ~/.config/mako + ``` + +3. **Make waybar modules executable**: + ```bash + chmod +x ~/.config/waybar/modules/*.{sh,py} + ``` + +4. **Reload Sway**: + ```bash + swaymsg reload + ``` + +## Color Scheme + +- **Primary Purple**: `#9d5a7f` (borders, accents) +- **Dark Purple-Gray**: `#6b4456` (waybar backgrounds) +- **Background**: `#221820` (pink-gray tint) +- **Text**: `#d0d0d0` (light gray) +- **Unfocused**: `#4a3844` (dark purple-gray) + +## Notes + +- Waybar tooltips use FiraCode Nerd Font for consistency +- Docker and Kubernetes modules require respective CLIs installed +- Sway config includes GPU-specific settings for AMD RX 5700 XT +- All configs use rounded corners (10-16px) for visual consistency From c9693b45f50a136e85ce6d1573ab3997eb530d56 Mon Sep 17 00:00:00 2001 From: Jean-Michel Bouchard Date: Thu, 9 Jul 2026 13:36:57 -0400 Subject: [PATCH 27/32] Close the gaps: local overrides, SSH config, honest docs, Makefile cleanup - Machine-local override hooks now actually exist: ~/.bashrc.local and ~/.zshrc.local are sourced at the end of the shell configs (the README promised this but nothing implemented it), and .gitconfig gains an [include] of ~/.gitconfig.local that wins over shared values - the sanctioned home for tool-appended blocks (git-ai PATH/trace2) that copy-based reinstalls would otherwise clobber. - common/ssh/config is finally installed: copied to ~/.ssh/config.dotfiles and Include'd from ~/.ssh/config so machine-local host entries keep precedence, with IgnoreUnknown UseKeychain so the macOS-only option is harmless on Linux. - Makefile: the broken legacy section is gone (duplicate darwin target, misspelled brews rule with an Intel-only path, backup-bash calling a script that does not exist, no-op profile-source, misleading stow-* aliases, unlink of files nothing installs) and help now matches the targets that exist. - README: real clone URL, master instead of main in the raw one-liner, shell-function table split into what works vs the disabled stubs that are deliberately kept for incremental restore, kubectl section trimmed to the k alias and kctx, accurate git-hooks and AI-context sections. - install.sh closing tips no longer advertise sshdot / k get p, which do not exist. - scripts/update_cursor_tools.py removed (cursor was dropped earlier). - The two-agent convergence plan artifacts from jm-home-box are archived under docs/convergence/ (combined-plan.md and inputs) with docs/reference/color-linux-box.md kept as a container-theming example, and docs/machine-convergence-plan.md marked historical with the decisions that supersede it. Co-Authored-By: Claude Fable 5 --- Makefile | 109 +---- README.md | 62 ++- common/git/.gitconfig | 4 + common/shell/.bashrc | 3 + common/shell/.zshrc | 3 + common/ssh/config | 3 + docs/convergence/combined-plan.md | 444 ++++++++++++++++++++ docs/convergence/conversation-for-plan.md | 4 + docs/convergence/plan-claude.md | 104 +++++ docs/convergence/plan-codex.md | 474 ++++++++++++++++++++++ docs/machine-convergence-plan.md | 9 + docs/reference/color-linux-box.md | 40 ++ install.sh | 28 +- scripts/update_cursor_tools.py | 81 ---- 14 files changed, 1168 insertions(+), 200 deletions(-) create mode 100644 docs/convergence/combined-plan.md create mode 100644 docs/convergence/conversation-for-plan.md create mode 100644 docs/convergence/plan-claude.md create mode 100644 docs/convergence/plan-codex.md create mode 100644 docs/reference/color-linux-box.md delete mode 100755 scripts/update_cursor_tools.py diff --git a/Makefile b/Makefile index f275276..5b448a7 100644 --- a/Makefile +++ b/Makefile @@ -1,11 +1,11 @@ -.PHONY: all help install install-minimal install-no-packages install-git-hooks backup-bash brew-sync clean-backup legacy check test-install check-editor +.PHONY: all help install install-minimal install-no-packages install-dry-run install-copy install-git-hooks check test-install check-editor brew-sync clean-backup .ONESHELL: SHELL = /bin/bash DOTFILE_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST)))) OS := $(shell uname -s | tr '[:upper:]' '[:lower:]') -# Main install targets using new universal installer +# Main install targets using the universal installer all: install install: $(DOTFILE_DIR)/install.sh @@ -43,89 +43,9 @@ install-git-hooks: done git config --global core.hooksPath "~/.config/git/hooks" -# Legacy OS-specific targets (kept for compatibility) -legacy: $(OS) -linux: apt flatpak git-init stow-linux git-installs profile-source font-cache -darwin: brew brew-upgrade git-init stow-darwin git-installs profile-source - - -apt: - $(info You may be prompted for super-user privleges:) - xargs -a linux/debian/packages.list sudo apt-get install -y - -darwin: brew - softwareupdate -aiR - -brew: /usr/local/Homebrew/bin/brew - -brew bundle --file=$(DOTFILE_DIR)/darwin/Brewfile - brew-sync: brew bundle dump --force --file=$(DOTFILE_DIR)/darwin/Brewfile -brew-upgrade: - if brew upgrade ; then brew cleanup ; fi; - -/usr/local/Homebrew/bin/brews: - { \ - set -e ;\ - if hash brew 2> /dev/null; then \ - echo "Brew is already installed."; \ - else \ - /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"; \ - fi ;\ - } - -flatpak: - sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo - -font-cache: - $(info Resetting system font-cache) - $(shell fc-cache -f) - -git-init: - git submodule update --init --recursive - -git-installs: python-dev nodejs-dev - -python-dev: $(HOME)/.pyenv venv-wrapper -nodejs-dev: $(HOME)/.nodenv $(HOME)/.nodenv/plugins/node-build - -$(HOME)/.nodenv: - git clone https://github.com/nodenv/nodenv.git $(HOME)/.nodenv - $(shell cd $HOME/.nodenv && src/configure && make -C src) - -$(HOME)/.nodenv/plugins/node-build: - git clone https://github.com/nodenv/node-build.git $(HOME)/.nodenv/plugins/node-build - -$(HOME)/.pyenv: - git clone https://github.com/pyenv/pyenv.git $(HOME)/.pyenv - -venv-wrapper: - pip3 install --user -U virtualenvwrapper virtualenv - -profile-source: - source $(HOME)/.bash_profile - -backup-bash: - $(DOTFILE_DIR)/bash_backup.sh - -stow-common: install-no-packages - -stow-darwin: stow-common - -stow-linux: stow-common - -stow: stow-$(OS) - -link: install-no-packages - -unlink: - unlink $(HOME)/.bash_aliases - unlink $(HOME)/.bash_logout - unlink $(HOME)/.bash_profile - unlink $(HOME)/.bashrc - unlink $(HOME)/.curlrc - # Cleanup clean-backup: @echo "Removing old backup directories..." @@ -135,21 +55,20 @@ clean-backup: help: @echo "Dotfiles Installation Options:" @echo "" - @echo " make install # Full installation with regular file copies" - @echo " make install-minimal # Minimal config for servers/containers" + @echo " make install # Full installation with regular file copies" + @echo " make install-minimal # Minimal config for servers/containers" @echo " make install-no-packages # Install configs only, skip packages" - @echo " make install-copy # Compatibility alias; files are always copied" - @echo " make install-dry-run # Show what would be installed" - @echo " make dotfiles-doctor # Check expected tools for this machine" - @echo " make dotfiles-dry-run # Preview copy-based convergence installer" - @echo " make dotfiles-install # Copy managed files and write manifest" - @echo " make dotfiles-diff-live # Compare live managed files to repo" - @echo " make dotfiles-backup # Back up live managed files" + @echo " make install-dry-run # Show what would be installed" + @echo " make install-git-hooks # Install personal global Git hooks only" + @echo "" + @echo "Checks:" + @echo " make check # Lint installer scripts + run smoke test" + @echo " make test-install # Run the installer against a temp HOME" + @echo " make check-editor # Verify vim/nvim behavior parity" @echo "" - @echo "Advanced:" - @echo " make legacy # Use legacy OS-specific installation" - @echo " make clean-backup # Remove old backup directories (30+ days)" - @echo " make brew-sync # Update Brewfile with current packages" + @echo "Maintenance:" + @echo " make brew-sync # Update Brewfile with current packages" + @echo " make clean-backup # Remove old backup directories (30+ days)" @echo "" @echo "Direct script usage:" @echo " ./install.sh --help # Show all script options" diff --git a/README.md b/README.md index 6c79e5d..6a7d4f0 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ Personal dotfiles for macOS and Linux with modular shell functions, git workflow ```bash # Clone and install -git clone https://github.com/yourusername/dotfiles.git ~/workspace/projects/dotfiles +git clone https://github.com/woud420/dotfiles.git ~/workspace/projects/dotfiles cd ~/workspace/projects/dotfiles ./install.sh @@ -32,7 +32,7 @@ make install-dry-run # Preview changes ```bash # One-liner for remote servers -curl -fsSL https://raw.githubusercontent.com/yourusername/dotfiles/main/install.sh | bash -s -- --minimal +curl -fsSL https://raw.githubusercontent.com/woud420/dotfiles/master/install.sh | bash -s -- --minimal # SSH with dotfiles ssh user@host 'bash -s' < install.sh --minimal @@ -73,6 +73,8 @@ dotfiles/ | `.gitignore_global` | `~/.config/git/ignore` | Global git ignores | | `.gnu_aliases` | `~/.gnu_aliases` | GNU coreutils aliases for macOS | | `.dircolors` | `~/.dircolors` | Directory colors | +| `common/git/hooks/*` | `~/.config/git/hooks/*` | Personal global Git hooks | +| `common/ssh/config` | `~/.ssh/config.dotfiles` | Shared SSH defaults (Include'd from `~/.ssh/config`) | | `kitty.conf` | `~/.config/kitty/kitty.conf` | Kitty terminal config | | `htoprc` | `~/.config/htop/htoprc` | htop configuration | @@ -82,15 +84,17 @@ All shell functions are installed to `~/.config/shell-functions/`: | File | Purpose | Key Commands | |------|---------|--------------| -| `kubectl-aliases.sh` | Kubernetes shortcuts | `k get p`, `kgpw`, `kdp`, `kshp` | -| `git-aliases.sh` | Git shortcuts | `g`, `gs`, `gaa`, `gcm`, `gp` | -| `git.sh` | Git workflow functions | `git-ch()`, `git-log()`, `git-add()` | -| `ssh.sh` | SSH helpers | `sshdot`, `sshconf`, `ssht` | -| `docker.sh` | Docker helpers | `dex`, `dlog`, `dclean` | -| `utils.sh` | Utilities | `mkcd`, `extract`, `backup` | -| `fuzzy-vim.sh` | Vim/Neovim with fzf | `v` (fuzzy file open) | | `editor.sh` | Editor defaults | `vi`, `vim`, `vimdiff` use Neovim when available | | `which.sh` | Command lookup | Includes shell aliases and functions | +| `sudo.sh` | GUI sudo prompts | Exports `SUDO_ASKPASS` (use `sudo -A`) | +| `macos-clipboard.sh` | Clipboard parity | `pbcopy`/`pbpaste` on Linux (wl-clipboard) | +| `kubectl-aliases.sh` | Kubernetes | `k` (kubectl); `kctx` lives in `.bashrc` | + +The remaining function files (`git.sh`, `git-aliases.sh`, `docker.sh`, +`docker-aliases.sh`, `k8s.sh`, `ssh.sh`, `utils.sh`, `fuzzy-vim.sh`, +`modern-tools-aliases.sh`, `secrets.sh`, `system-aliases.sh`) are currently +**disabled stubs** - kept in place so they can be restored incrementally +without breaking installs. ### Git Aliases (in .gitconfig) @@ -107,18 +111,8 @@ git lg # Pretty log with graph ### Kubectl Aliases ```bash -# Quick shortcuts k # kubectl -kgp # kubectl get pods -kgpw # kubectl get pods -o wide -kdp # kubectl describe pod -klf # kubectl logs -f - -# Functions -kshp # Shell into first pod matching pattern -klp # Logs from first pod matching pattern kctx # Switch context with fzf -kns # Switch namespace with fzf ``` ## 📦 Packages @@ -215,10 +209,34 @@ The installer automatically detects: ## 🔧 Customization ### Local Overrides -Create `~/.bashrc.local` or `~/.zshrc.local` for machine-specific configs. +Machine-specific config lives outside the repo and survives reinstalls: + +- `~/.bashrc.local` / `~/.zshrc.local` - sourced at the end of the shell configs +- `~/.gitconfig.local` - included last by `.gitconfig`, so identity or + tool-appended blocks (e.g. git-ai) win over the shared config +- `~/.ssh/config` - your own host entries stay first; the shared defaults are + pulled in via `Include ~/.ssh/config.dotfiles` + +### Personal Git Hooks + +The installed `.gitconfig` sets `core.hooksPath = ~/.config/git/hooks`. +Installed hooks are intentionally general and local-only: + +- `pre-commit` runs repo hooks like `.husky/pre-commit` first, then blocks + likely secrets, conflict markers, and oversized files. +- `pre-push` runs repo hooks first, then an explicit repo check when configured. + +```bash +JM_GIT_HOOKS=0 git commit ... # Skip personal hooks once +git config jm.hooks.prePushCommand "make check" +make install-git-hooks # Install only the hooks +``` -### Memory Management -The installer respects `CLAUDE.md` files for project-specific context. +### AI Context +The installer copies `common/ai-context/` files into place: +`~/.claude/CLAUDE.md`, `~/AGENTS.md`, and an OS-specific `~/MACHINE.md`. +Machine state snapshots are generated on demand with +`scripts/refresh-machine-state.sh`. ## 📚 Requirements diff --git a/common/git/.gitconfig b/common/git/.gitconfig index ef367f9..f703fed 100644 --- a/common/git/.gitconfig +++ b/common/git/.gitconfig @@ -86,3 +86,7 @@ required = true [core] hooksPath = ~/.config/git/hooks +# Machine-local overrides (identity, tool-appended blocks like git-ai trace2). +# Values here win because git reads includes last. +[include] + path = ~/.gitconfig.local diff --git a/common/shell/.bashrc b/common/shell/.bashrc index dd832ce..aa9f57f 100644 --- a/common/shell/.bashrc +++ b/common/shell/.bashrc @@ -217,3 +217,6 @@ kctx() { # Source local secrets (if exists) [ -f ~/.env.secrets ] && source ~/.env.secrets [ -f "$HOME/.local/bin/env" ] && . "$HOME/.local/bin/env" + +# Machine-local overrides - kept out of the repo, survives reinstalls +[ -f "$HOME/.bashrc.local" ] && . "$HOME/.bashrc.local" diff --git a/common/shell/.zshrc b/common/shell/.zshrc index 8ca13bb..ed1515e 100644 --- a/common/shell/.zshrc +++ b/common/shell/.zshrc @@ -181,3 +181,6 @@ if [[ -d "$HOME/.bun" ]]; then path_prepend "$BUN_INSTALL/bin" [[ -s "$BUN_INSTALL/_bun" ]] && source "$BUN_INSTALL/_bun" fi + +# Machine-local overrides - kept out of the repo, survives reinstalls +[[ -f "$HOME/.zshrc.local" ]] && . "$HOME/.zshrc.local" diff --git a/common/ssh/config b/common/ssh/config index 615d64c..9090c60 100644 --- a/common/ssh/config +++ b/common/ssh/config @@ -1,3 +1,6 @@ +# IgnoreUnknown keeps macOS-only options harmless on Linux openssh +IgnoreUnknown UseKeychain + Host * AddKeysToAgent yes UseKeychain yes diff --git a/docs/convergence/combined-plan.md b/docs/convergence/combined-plan.md new file mode 100644 index 0000000..6a1d979 --- /dev/null +++ b/docs/convergence/combined-plan.md @@ -0,0 +1,444 @@ +# Combined Dotfiles Convergence Plan + +## Agreement + +Codex and Claude agree on the convergence model: + +> Shared tooling behavior should converge in common config. Platform and machine +> presentation should remain intentionally different. + +The merged dotfiles repo should work for the macOS MacBook Pro, the Linux +`jm-home-box`, and future machines without forcing one machine's visual identity +onto another. + +## Source Branches + +- `feature/personal-laptop-combined`: current macOS laptop branch. Treat as + authoritative for recent macOS package state, copy-only installer behavior, + Neovim defaulting, shell updates, and test additions. +- `origin/fix/jm-home-box`: current Linux `jm-home-box` branch. Treat as + authoritative for Arch/Linux package state, Sway/SwayFX visuals, Linux machine + state, and Linux convergence tooling. +- `feature/ai-context`: inspect as an input for machine-state and AI-context + infrastructure. Bring forward useful structure if it fits the final + `machines/` model. +- `feature/add-linux-box`: historical Linux input only. Use for context if a + file exists there that explains a current Linux choice. + +## Core Rules + +1. Shared behavior lives in `common/`. +2. macOS-specific configuration lives in `darwin/`. +3. Linux-specific configuration lives in `linux/`. +4. Machine facts and selected profiles live in `machines//`. +5. Visual identity remains platform or machine specific. +6. Installer behavior must use regular copied files, not symlinks. +7. Installer behavior must preserve path-aware backups and an audit log. +8. Neovim is the target editor when available. +9. `vi`, `vim`, and `vimdiff` should use Neovim when available. +10. `EDITOR` and `VISUAL` should prefer `nvim` when available. +11. `which` should be shell-aware and should see aliases. Do not alias `which` + to `gwhich`. +12. Do not copy local daemon sockets, local runtime state, or installer comments + into shared dotfiles. +13. Do not create a MacBook machine profile unless there are true machine facts + that cannot live in `darwin/` or `common/`. +14. Current installed state on the MacBook Pro and `jm-home-box` is part of the + source of truth. Capture and classify that state before merging branches or + applying installs. + +## Proposed Final Layout + +```text +. +├── common/ +│ ├── bin/ +│ │ └── dotfiles +│ ├── git/ +│ │ ├── .gitconfig +│ │ ├── .gitignore_global +│ │ └── commit-template.md +│ ├── nvim/ +│ │ └── init.vim +│ ├── shell/ +│ │ ├── .bash_profile +│ │ ├── .bashrc +│ │ ├── .bashrc.server +│ │ ├── .gnu_aliases +│ │ └── .zshrc +│ ├── shell-functions/ +│ │ ├── editor.sh +│ │ ├── which.sh +│ │ └── ... +│ ├── ssh/ +│ └── themes/ +├── darwin/ +│ ├── Brewfile +│ ├── kitty.conf +│ └── README.md +├── linux/ +│ ├── arch/ +│ │ ├── packages.list +│ │ ├── ai-context/ +│ │ └── .config/sway/ +│ ├── common/ +│ │ └── kitty.conf +│ └── README.md +├── machines/ +│ └── jm-home-box/ +│ └── machine.toml +├── scripts/ +├── install.sh +├── Makefile +└── README.md +``` + +Potential later addition: + +```text +.agents/ +├── AGENTS.md +├── RTK.md +└── skills/ +``` + +Agent behavior should be shared by default. Do not add machine-specific +`AGENTS.md` files unless a machine truly needs different agent operating rules. + +## Merge Strategy + +Use `feature/personal-laptop-combined` as the practical base because it already +contains the current copy-only installer, audit/test behavior, Neovim defaulting, +and macOS state. + +Then merge `origin/fix/jm-home-box` and preserve Linux-specific files in their +proper layer. + +### Phase 0: Capture Current Installed State + +Before merging or applying anything, capture current reality on both machines in +read-only mode. + +MacBook Pro snapshot: + +- Current dotfiles repo branch, status, remotes, and recent log. +- Managed file checksums and file types. +- Symlink-vs-regular-file audit for managed targets. +- Current Homebrew bundle dump. +- Shell/editor behavior: `type vim`, `which vim`, `which -a vim`, `EDITOR`, + `VISUAL`, `vim --version`, and `nvim --version`. +- Local-only drift such as `git-ai` PATH edits or Git trace2 sockets. + +`jm-home-box` snapshot: + +- Current dotfiles repo branch, status, remotes, and recent log. +- Managed file checksums and file types. +- Symlink-vs-regular-file audit for managed targets. +- Current Arch package state or package list. +- Shell/editor behavior: `type vim`, `which vim`, `which -a vim`, `EDITOR`, + `VISUAL`, `vim --version`, and `nvim --version`. +- Machine-state files. +- Sway, SwayFX, Kitty, theme, and visual state. +- Local-only drift and generated/runtime state. + +Save snapshots outside the repo working tree under timestamped paths, for +example: + +```text +/private/tmp/dotfiles-state-/ +~/convo/dotfiles/state-/ +``` + +Classify every observed drift item before merge work: + +- Shared behavior. +- Platform-specific config. +- Machine-specific facts or visuals. +- Local runtime state. +- Stale/generated artifact. +- Needs human decision. + +Only after this classification should branch merging or installer testing begin. + +Order of work: + +1. Start from clean worktrees on both machines. +2. Capture current installed state on both machines. +3. Classify drift before editing. +4. Fetch all remotes. +5. Create a convergence branch from `feature/personal-laptop-combined`. +6. Inspect `feature/ai-context` for reusable machine-state structure. +7. Merge `origin/fix/jm-home-box`. +8. Resolve conflicts by category, not by blindly picking one side. +9. Run narrow verification after each category. +10. Run full verification on macOS and Linux. +11. Commit the convergence. +12. Push the convergence branch for review. + +## Conflict Resolution Rules + +### Shared Shell + +Files: + +- `common/shell/.zshrc` +- `common/shell/.bashrc` +- `common/shell/.bash_profile` +- `common/shell/.bashrc.server` +- `common/shell/.gnu_aliases` +- `common/shell-functions/*.sh` + +Keep: + +- Guarded portable PATH logic. +- `rtk` conventions where installed. +- `~/.git-ai/bin` only as guarded PATH support, not installer comments. +- `PROMPT_EOL_MARK=''`. +- Shared aliases/functions where the underlying tools exist on both platforms. +- `editor.sh` for `nvim` defaulting. +- `which.sh` for shell-aware lookup. + +Avoid: + +- Hardcoded local daemon paths. +- Platform package-manager aliases that are not guarded. +- Reintroducing `which -> gwhich`. + +### Editor + +Files: + +- `.vim/vimrc` +- `.vim/plugins.vim` +- `.vim/mappings.vim` +- `.vim/settings/*.vim` +- `.vim/coc-settings.json` +- `common/nvim/init.vim` +- `scripts/check-editor-parity.sh` +- `scripts/editor-parity.vim` + +Make Vim-to-Neovim audit a named step: + +1. Compare Vim and Neovim config entry points. +2. Inventory plugins in `.vim/plugins.vim`. +3. Inventory mappings in `.vim/mappings.vim` and `.vim/settings/keybindings.vim`. +4. Inventory settings in `.vim/settings/*.vim`. +5. Guard Vim-only settings so Neovim loads cleanly. +6. Confirm keybindings and editor behavior are identical across machines. +7. Run editor parity checks. + +Neovim is the target editor. Vim config may remain as compatibility/source +material, but new shared editor behavior should converge toward Neovim. + +### Git + +Files: + +- `common/git/.gitconfig` +- `common/git/.gitignore_global` +- `common/git/commit-template.md` + +Keep: + +- Commit template. +- Shared Git aliases. +- Portable GitHub HTTPS-to-SSH rewrite if the user wants that globally. + +Exclude: + +- Local Git trace2 daemon socket paths. +- Machine-local Git runtime state. + +### Terminal and Visuals + +Files: + +- `darwin/kitty.conf` +- `linux/common/kitty.conf` +- `common/themes/*.conf` +- `linux/arch/.config/sway/config` +- `linux/arch/.config/sway/assets/*` + +Keep: + +- macOS Kitty visual identity in `darwin/`. +- Linux pinkish Sway/SwayFX identity in `linux/` and `machines/jm-home-box/`. +- Shared themes only when they are genuinely reusable assets. + +Avoid: + +- Making Linux look like macOS. +- Making macOS look like Linux. +- Moving visual choices into global shared config. + +### Package Management + +Files: + +- `darwin/Brewfile` +- `linux/arch/packages.list` +- other Linux package lists +- `machines/jm-home-box/machine.toml` + +Keep package files platform specific. + +Tools expected to be aligned where possible: + +- `git` +- `nvim` +- `fzf` +- `ripgrep` +- `fd` +- `bat` +- `kitty` +- `rtk` +- `node` + +Do not add macOS casks to Linux package lists. Do not remove Linux packages just +because they do not exist in the Brewfile. + +### Installer + +Files: + +- `install.sh` +- `Makefile` +- `scripts/test-install.sh` + +Keep: + +- Copy-only install behavior. +- No symlink default. +- Path-preserving backups. +- Audit log. +- Platform detection. +- Minimal/container/remote modes where supported. +- Tests proving no symlink install behavior. + +If jm-home-box has Linux-specific install logic, preserve the behavior but adapt +it to copy-only semantics. + +### Scripts + +Create a script classification table during the merge. + +Categories: + +- Shared-safe. +- macOS-only. +- Linux-only. +- `jm-home-box` specific. +- Obsolete/superseded. +- Needs review. + +Do not move scripts solely for tidiness in the first convergence. Move scripts +only when needed to prevent wrong-machine execution or to make machine scope +explicit. + +Include `common/bin/dotfiles` in the inventory and classify it as either a shared +helper or a machine-convergence helper. + +### Skills and Agents + +Inspect: + +- `.agents/skills/` +- `.claude/skills/` +- any symlink or copy relationship between them + +Classify skills as: + +- Shared default behavior. +- Platform specific. +- Machine specific. +- Experimental. + +Do not add machine-specific `AGENTS.md` files by default. Machine specs should +describe facts and roles, not agent behavior. + +## Required Verification + +Run on macOS: + +```bash +make check +make check-editor +zsh -n common/shell/.zshrc +bash -n common/shell/.bashrc +bash -n install.sh +git diff --check +``` + +Run on Linux: + +```bash +make check +make check-editor +zsh -n common/shell/.zshrc +bash -n common/shell/.bashrc +bash -n install.sh +git diff --check +``` + +If a source branch lacks `make check`, use the closest available checks and add +or port the shared `make check` target during convergence. + +Manual behavior checks: + +```bash +source ~/.zshrc +type vim +which vim +which -a vim +vim --version +nvim --version +echo "$EDITOR" +echo "$VISUAL" +``` + +Expected: + +- `vim` is an alias to `nvim` when Neovim exists. +- `which vim` reports `nvim`. +- `which -a vim` shows the alias result and system fallback if present. +- `EDITOR` and `VISUAL` prefer `nvim`. + +Install checks: + +- Installed files are regular files. +- Installed files are not symlinks. +- Existing files are backed up before replacement. +- Backup paths preserve target structure. +- Audit log records mkdir, backup, remove, and copy actions. + +## Open Decisions + +1. Should GitHub HTTPS-to-SSH rewrite be global for all machines? +2. Should `git-ai` PATH support remain shared or move to an optional tool + snippet? +3. Should jm-home-box convergence scripts remain in top-level `scripts/`, or + move under `machines/jm-home-box/` later? +4. Should `.agents/` be added as part of this convergence, or handled as a + follow-up? +5. Should theme selection become explicitly profile-driven, while keeping + current visual files in place? + +## Success Criteria + +The convergence is complete when: + +- The convergence branch contains useful work from both source branches. +- Current installed state was captured on both machines before merge/install + work. +- Observed drift was classified as shared behavior, platform config, machine + facts/visuals, local runtime state, stale/generated artifact, or human + decision. +- MacBook command-line behavior remains consistent with current laptop branch. +- jm-home-box Linux visuals and Sway/SwayFX setup are preserved. +- Neovim behavior is shared. +- Shell aliases/functions are consistent where portable. +- Installer remains copy-only, backed up, and audited. +- Scripts are classified by scope. +- Skills/agents are inventoried if present. +- Verification passes on macOS and Linux. +- Remaining platform-only differences are documented and intentional. diff --git a/docs/convergence/conversation-for-plan.md b/docs/convergence/conversation-for-plan.md new file mode 100644 index 0000000..79d87f7 --- /dev/null +++ b/docs/convergence/conversation-for-plan.md @@ -0,0 +1,4 @@ +{"author":"codex","message":"I have read both planning files and I propose this convergence strategy.\n\nShared behavior should be unified in common/: Neovim as the default editor when available; vi/vim/vimdiff routing to nvim; EDITOR/VISUAL preferring nvim; shell-aware which; shared Git aliases and commit template; rtk conventions; and an installer that uses regular copies, path-preserving backups, and an audit log.\n\nMachine and platform identity should remain separate: macOS package/app choices in darwin/Brewfile, Arch/Linux package choices in linux/arch/packages.list, jm-home-box hardware/state facts in machines/jm-home-box/, macOS Kitty visuals in darwin/, Linux Kitty/Sway/SwayFX pink visual identity in linux/ and machine profile files. We should not make Linux look like macOS or macOS look like Linux.\n\nFor the merge order, I recommend starting from feature/personal-laptop-combined because it already has the copy-only installer, audit/test work, current macOS state, and Neovim defaults. Then merge origin/fix/jm-home-box and preserve Linux-specific package/state/visual files. Conflict resolution should favor shared portable behavior in common/, platform-specific files in darwin/ or linux/, and machine facts in machines/.\n\nI think the final combined plan should include: final layout, merge order, conflict-resolution rules, verification on macOS and Linux, explicit no-symlink/no-local-daemon-state constraints, and open decisions around git-ai PATH, GitHub HTTPS-to-SSH rewrite, agents, and where jm-home-box convergence scripts should live.\n\nClaude, do you agree with this framing? If not, please propose concrete changes. If yes, please say so and add any missing merge rules you think are necessary before we write combined-plan.md.\n"} +{"author":"claude","message":"I agree with the core framing — three-layer model (common/, platform, machine), personal-laptop-combined as the merge base, copy-only installer, nvim everywhere. A few concrete additions I think we need before we write the combined plan:\n\n1. SKILLS LAYER: Neither plan fully accounts for .agents/skills/ (or .claude/skills/ symlink). The jm-home-box branch already has this structure. We should classify skills explicitly: machine-agnostic (kickstart, code-review, deep-research, run, verify, etc.) stay in .agents/skills/ and work on both machines; machine-specific ones (archlinux-update-system is Linux-only, anything brew-dependent is mac-only) get a note in their frontmatter but still live in the same directory. The install.sh should copy .agents/ on both platforms.\n\n2. VIM→NVIM PORT AUDIT MUST BE A NAMED STEP: Saying 'nvim as default' is not enough. Before the merge, someone needs to diff .vim/settings/keybindings.vim + .vim/mappings.vim against common/nvim/init.vim across both branches and produce an explicit list of unported bindings and plugins. This audit should happen in step 3 of the merge, before any install.sh work, so we know exactly what needs to go into common/nvim/init.vim. I'd call this step 'nvim parity audit and port.'\n\n3. SCRIPTS CLASSIFICATION: We should include a table in the combined plan. From what I can see across branches: shared-safe are check-editor-parity.sh, editor-parity.vim, minimal-bashrc.sh, test-install.sh, quick-install.sh, ssh-copy-dotfiles.sh; linux-only are sudo-askpass.sh and dotfiles.py (Arch convergence tooling); mac-oriented is update_cursor_tools.py. The combined plan should say which scripts get installed by default and which are run-on-demand.\n\n4. FEATURE/AI-CONTEXT: Your plan and mine both omit the feature/ai-context branch, which added machine-state context files and a pacman hook. The jm-home-box branch appears to have absorbed this already (linux/arch/ai-context/ exists there). The combined plan should confirm this is already folded in and not a separate merge step.\n\n5. COMMON/BIN/: The jm-home-box branch has common/bin/dotfiles (a helper binary/script). This should appear in the final layout explicitly, not just implied by common/.\n\n6. NO MACHINES/ ENTRY FOR MBP: User has one MBP now. No machines/jm-mbp/ needed. The darwin/ layer is sufficient. We should state this explicitly so no one adds a spurious machine file later.\n\nIf you agree with these six additions, I think we have a complete combined plan and I'm ready to write combined-plan.md. Or propose changes to any of these."} +{"author":"codex","message":"I agree with Claude's six additions and consider them necessary for the combined plan.\n\nRefinements to incorporate into combined-plan.md:\n\n1. Skills/agents layer: include .agents/skills or .claude/skills in the inventory if present, but treat agent behavior as shared default behavior unless a machine truly needs different operating rules. Do not create machine-specific AGENTS.md by default.\n\n2. Named Vim-to-Neovim audit: make this an explicit merge step, not just a desired end state. The audit should compare .vim/vimrc, .vim/plugins.vim, .vim/mappings.vim, .vim/settings/*.vim, .vim/coc-settings.json, and common/nvim/init.vim, then list any plugins, settings, and keybindings that still need to be ported or guarded.\n\n3. Scripts classification: include a table classifying scripts as shared-safe, macOS-only, Linux-only, jm-home-box-specific, obsolete, or needs-review. Do not move scripts solely for tidiness during the first convergence unless the move is needed to prevent wrong-machine execution.\n\n4. feature/ai-context: include it as a branch/input to inspect for machine-state and AI-context infrastructure. Bring forward useful machine-state structure if it does not conflict with the cleaner machines/ model.\n\n5. common/bin: include common/bin/dotfiles in the final layout and classify whether it is a shared helper or machine-convergence helper.\n\n6. No MBP machine profile for now: the MacBook can be represented by darwin/ plus shared common/ defaults. Only add machines// when there are true machine facts, roles, hazards, or profile selections that cannot live cleanly in platform config.\n\nWith those additions, I agree we have consensus. The combined plan should now be written as the agreed plan, with the core principle preserved: shared tooling behavior converges, platform and machine presentation remain intentionally different.\n\n\nAdditional consensus update based on user feedback:\n\nReopening one point based on the user's feedback: our combined plan is missing an explicit state-capture-first phase.\n\nThe problem is not just branch convergence. The current installed state on both machines is part of the source of truth. Before merging or applying anything, the plan should require read-only snapshots of the MacBook Pro and jm-home-box current reality.\n\nI propose adding this as Phase 0:\n\n1. Capture current MBP state: dotfiles branch/status/log, managed file checksums and file types, symlink-vs-regular-file audit, Homebrew bundle dump, shell/editor behavior, and local-only drift such as git-ai PATH or trace2 sockets.\n2. Capture current jm-home-box state: dotfiles branch/status/log, managed file checksums and file types, symlink-vs-regular-file audit, Arch package list or pacman state, shell/editor behavior, machine-state files, Sway/Kitty visual state, and local-only drift.\n3. Save snapshots outside the repo working tree, under timestamped paths.\n4. Classify drift before merging: shared behavior, platform-specific config, machine-specific facts/visuals, local runtime state, stale/generated artifacts, or needs human decision.\n5. Only after that classification should we merge branches or run installer tests.\n\nThis changes the execution strategy from \"merge branches, then install\" to \"capture current reality, classify drift, merge branches, test in temp homes, then apply carefully.\"\n\nClaude, do you agree this Phase 0 should be added to combined-plan.md as a required first phase? If yes, please say so explicitly and add any missing details. If no, please explain the concrete alternative.\n"} +{"author":"claude","message":"Confirmed — we have consensus. Codex's refinements align exactly with my additions. Combined-plan.md has been written and reflects the agreed plan. One item to add that came up in conversation with the user: we need an explicit revert strategy. The combined plan should include: (a) the convergence branch never merges to master until verified on both machines — source branches remain intact as machine-level rollback; (b) the installer's backup mechanism is the file-level revert; (c) a make restore-backup or install.sh --restore target that reads the audit log and reverses every copy operation should be a required deliverable of the installer work, tested before declaring the merge done. I'll add this to combined-plan.md now."} diff --git a/docs/convergence/plan-claude.md b/docs/convergence/plan-claude.md new file mode 100644 index 0000000..1cdc53c --- /dev/null +++ b/docs/convergence/plan-claude.md @@ -0,0 +1,104 @@ +# Dotfiles Unification Research Prompt + +You are analyzing a dotfiles repository (~/workspace/dotfiles) to produce a +concrete merge plan. The goal: one coherent dotfiles setup that works across +two machine classes — a Linux Arch desktop (jm-home-box, pinkish/swayfx +aesthetic) and a macOS MBP (personal-laptop-combined, its own visual identity) +— while sharing everything that should be shared. + +## Branches to analyze (in rough chronological order, newest = ground truth) + +- master — baseline +- feature/add-linux-box — early Arch config attempt +- feature/ai-context — AI context file infra +- feature/personal-laptop — MBP snapshot (older) +- feature/personal-laptop-combined — MBP current state (ground truth for mac) +- fix/jm-home-box — Linux box current state (ground truth for linux) + +For each branch, read the following files if they exist and note what's in them: + - common/shell/.zshrc, common/shell/.bashrc + - common/shell-functions/*.sh (all of them) + - common/nvim/init.vim, .vim/vimrc + - .vim/settings/keybindings.vim, .vim/mappings.vim + - .vim/plugins.vim + - config/kitty.conf, darwin/kitty.conf, linux/common/kitty.conf + - linux/arch/.config/sway/config + - darwin/Brewfile + - linux/arch/packages.list + - machines/jm-home-box/machine.toml + - install.sh + - Makefile + - scripts/*.sh, scripts/*.py + - .agents/skills/ or .claude/skills/ (if present) + - common/git/.gitconfig + +## What to extract per file category + +**Shell (aliases + functions)** +- List every alias and function defined in each branch's shell-functions/ +- Flag: exists on both? Linux-only? Mac-only? Diverged (same name, different impl)? + +**Editor (vim → nvim migration)** +- The user wants to move fully to nvim. Compare .vim/vimrc vs common/nvim/init.vim + across branches. What plugins, keybindings, and settings exist in vim that + are NOT yet in nvim? What's already been ported? +- Identify the full keybinding set from .vim/settings/keybindings.vim and + .vim/mappings.vim on both branches. The goal is these must be identical in nvim + across both machines. + +**Terminal / visual** +- Note what theme/colors each branch uses for kitty. Do NOT propose changing them. +- Note what's sway-specific (Linux only) vs what's kitty config that could be shared. + +**Scripts** +- List every script in scripts/ across branches. Classify: shared-safe, linux-only, + mac-only, or obsolete/superseded. + +**Skills** +- List any agent skills found. Classify: machine-agnostic, linux-only, mac-only. + +**Package management** +- darwin/Brewfile (mac), linux/arch/packages.list and machines/jm-home-box/machine.toml (linux) +- Identify tools present on both that should be kept in sync (same version + expectations, same purpose — e.g. fzf, ripgrep, git, nvim, kitty). + +**Install script** +- Compare install.sh across branches. What does it do on each? Does it handle + both platforms or is it platform-specific? + +## Constraints to respect + +1. Do not touch visual/color config (kitty themes, sway colors, pink aesthetic on linux). +2. nvim is the target editor. vim config should be read for what needs porting, not preserved. +3. Keybindings in nvim must be identical on both machines. +4. Aliases must be identical where the underlying tool exists on both platforms. + Where a tool is platform-specific (e.g. brew, pacman, sway), the alias is + machine-scoped — note it but don't try to unify it. +5. The common/ directory is the right place for shared config. + darwin/ and linux/ are the right place for platform-specific config. + +## Output format + +Produce a structured merge plan with these sections: + +### 1. Branch timeline summary +What changed when, which branch is newest/authoritative per area. + +### 2. Shared config inventory +Table: file/category | linux state | mac state | diverged? | merge action + +### 3. vim → nvim porting gaps +Exact list of keybindings, plugins, and settings in vim that aren't in nvim yet. + +### 4. File layout proposal +Proposed final directory structure showing where each config lives +(common/ vs darwin/ vs linux/arch/ vs machines/). + +### 5. Ordered merge steps +Concrete sequence: what to merge first (low-risk shared shell functions), +what to do last (install.sh unification). Flag anything that needs a human +decision before proceeding. + +### 6. Open questions for the user +Anything ambiguous — tools that exist on one machine but not the other, +diverged aliases with different semantics, skills that could go either way. diff --git a/docs/convergence/plan-codex.md b/docs/convergence/plan-codex.md new file mode 100644 index 0000000..42d32d6 --- /dev/null +++ b/docs/convergence/plan-codex.md @@ -0,0 +1,474 @@ +# Dotfiles Unification Plan - Codex + +## Purpose + +Unify the macOS laptop branch and the Linux jm-home-box branch into one default +dotfiles repository that feels consistent to use everywhere, while preserving +machine-specific visuals and platform-specific system configuration. + +Target branches: + +- `feature/personal-laptop-combined`: current macOS laptop branch and current + source of recent Neovim, copy-install, Brewfile, and shell updates. +- `fix/jm-home-box`: current Linux jm-home-box branch and current source of + Arch, Sway, machine-state, and Linux visual configuration. + +Core rule: + +> Common tooling behavior belongs in shared config. Visual identity and +> platform/machine facts belong in platform or machine profiles. + +## Desired Outcome + +The default branch should work on: + +- The MacBook Pro. +- The Linux jm-home-box. +- Future machines with minimal new machine-specific metadata. + +The user experience should be consistent for: + +- Editor commands: `vi`, `vim`, `vimdiff`, `EDITOR`, and `VISUAL`. +- Neovim behavior, plugins, and keybindings. +- Shell aliases and functions where the underlying tools exist. +- `rtk` command conventions. +- Git aliases and commit template. +- Installer behavior, especially regular copied files, no symlinks, backups, + and audit logs. + +The user experience may remain machine-specific for: + +- Kitty theme choice and colors. +- Sway/SwayFX visuals. +- Linux desktop assets. +- macOS application/cask choices. +- Arch package choices. +- Machine role, hardware facts, and known local hazards. + +## Non-Negotiable Constraints + +1. Do not reintroduce symlink-based installation. +2. Installed dotfiles must be regular copied files. +3. Installer must create path-preserving backups before replacing files. +4. Installer must write an auditable install log. +5. Neovim is the target editor when available. +6. `vi`, `vim`, and `vimdiff` should use Neovim when available. +7. `which` must be shell-aware and must see aliases. Do not alias `which` to + `gwhich`. +8. Do not copy local daemon/socket paths into shared config. +9. Do not flatten Linux and macOS visuals into one global theme. +10. Do not stage unrelated changes during the merge. + +## Proposed Final Layout + +```text +. +├── common/ +│ ├── git/ +│ │ ├── .gitconfig +│ │ ├── .gitignore_global +│ │ └── commit-template.md +│ ├── nvim/ +│ │ └── init.vim +│ ├── shell/ +│ │ ├── .bash_profile +│ │ ├── .bashrc +│ │ ├── .bashrc.server +│ │ ├── .gnu_aliases +│ │ └── .zshrc +│ ├── shell-functions/ +│ │ ├── editor.sh +│ │ ├── which.sh +│ │ └── ... +│ ├── themes/ +│ └── ssh/ +├── darwin/ +│ ├── Brewfile +│ ├── kitty.conf +│ └── README.md +├── linux/ +│ ├── arch/ +│ │ ├── packages.list +│ │ ├── ai-context/ +│ │ └── .config/sway/ +│ ├── common/ +│ │ └── kitty.conf +│ └── README.md +├── machines/ +│ └── jm-home-box/ +│ └── machine.toml +├── scripts/ +├── install.sh +├── Makefile +└── README.md +``` + +Potential future addition: + +```text +.agents/ +├── AGENTS.md +├── RTK.md +└── skills/ +``` + +Do not add machine-specific `AGENTS.md` files unless a machine truly needs +different agent behavior. Machine files should describe facts and role, not +agent operating style. + +## Merge Model + +Use a three-layer model: + +1. Shared behavior layer: `common/`, `.vim/`, `common/nvim/`, shared scripts, + Git config, shell functions, Make targets, install logic. +2. Platform layer: `darwin/`, `linux/`, platform package files, platform + terminal config. +3. Machine layer: `machines//`, hardware/state/role metadata and selected + profile facts. + +When branches conflict: + +- Prefer `common/` only for behavior that should feel identical everywhere. +- Prefer `darwin/` for Homebrew, macOS Kitty config, and macOS-specific setup. +- Prefer `linux/` for Arch packages, Sway, Linux Kitty config, and Linux desktop + setup. +- Prefer `machines/jm-home-box/` for jm-home-box state and inventory. +- Prefer the newest tested installer behavior from the laptop branch where it + enforces copy-only installs, backups, and audit logs. +- Preserve jm-home-box visuals from the Linux branch. + +## Area-by-Area Plan + +### 1. Shell Entry Points + +Files: + +- `common/shell/.zshrc` +- `common/shell/.bashrc` +- `common/shell/.bash_profile` +- `common/shell/.bashrc.server` +- `common/shell/.gnu_aliases` + +Desired result: + +- Shared prompt/tool behavior lives in `common/shell`. +- `rtk` is available through normal PATH behavior where installed. +- `~/.git-ai/bin` may be added through a guarded path check, not as a hardcoded + installer comment. +- zsh `PROMPT_EOL_MARK=''` is okay as shared behavior. +- Homebrew PATH belongs in common shell only as guarded macOS-safe path logic. +- Platform-specific package manager aliases should either be guarded or moved + to platform-specific shell snippets if they become numerous. + +Conflict rule: + +- Keep the shell setup that is guarded and portable. +- Remove local installer comments and absolute local daemon state. + +### 2. Shell Functions and Aliases + +Files: + +- `common/shell-functions/*.sh` + +Desired result: + +- `editor.sh` sets `EDITOR` and `VISUAL` to `nvim` when available and aliases + `vi`, `vim`, and `vimdiff` to Neovim. +- `which.sh` provides shell-aware lookup. It must report aliases in zsh/bash. +- Shared aliases should behave the same on both machines where possible. +- Platform-only aliases must be guarded by command availability or split later + into platform snippets. + +Conflict rule: + +- If the same alias/function exists on both branches with different behavior, + keep the version that is command-availability guarded and less destructive. +- Keep Linux-only workflow helpers only when guarded or clearly placed in Linux + config. + +### 3. Editor: Vim to Neovim + +Files: + +- `.vim/vimrc` +- `.vim/plugins.vim` +- `.vim/mappings.vim` +- `.vim/settings/*.vim` +- `.vim/coc-settings.json` +- `common/nvim/init.vim` +- `scripts/check-editor-parity.sh` +- `scripts/editor-parity.vim` + +Desired result: + +- Neovim is the default editor on both machines. +- `common/nvim/init.vim` bridges to existing Vim config where appropriate. +- Vim-only options are guarded so Neovim does not error. +- Keybindings must be identical across machines. +- Editor parity test must pass for both Vim and Neovim config load. + +Conflict rule: + +- Treat Vim config as source compatibility data, not as the long-term target. +- If Linux branch has editor improvements not in the laptop branch, port them + into the shared Neovim/Vim-compatible layer. +- Do not create a Linux-only editor behavior unless it depends on Linux-only + external tooling. + +### 4. Git + +Files: + +- `common/git/.gitconfig` +- `common/git/.gitignore_global` +- `common/git/commit-template.md` + +Desired result: + +- Commit template is shared. +- Git aliases are shared. +- GitHub HTTPS-to-SSH rewrite can be shared if desired. +- Do not include machine-local Git trace2 socket config. + +Conflict rule: + +- Keep portable Git behavior in `common/git/.gitconfig`. +- Exclude local daemon endpoints and temporary experiments. + +### 5. Terminal and Visual Identity + +Files: + +- `darwin/kitty.conf` +- `linux/common/kitty.conf` +- `common/themes/*.conf` +- `linux/arch/.config/sway/config` +- `linux/arch/.config/sway/assets/*` + +Desired result: + +- macOS keeps its own Kitty visual feel. +- jm-home-box keeps its pinkish Linux/Sway visual identity. +- Shared themes can remain in `common/themes`, but selection is platform or + machine-specific. +- Do not force one visual theme onto all machines. + +Conflict rule: + +- Preserve Linux visual files from `fix/jm-home-box`. +- Preserve macOS visual files from `feature/personal-laptop-combined`. +- Only deduplicate purely identical theme assets. + +### 6. Package Management + +Files: + +- `darwin/Brewfile` +- `linux/arch/packages.list` +- other Linux package lists +- `machines/jm-home-box/machine.toml` + +Desired result: + +- macOS packages stay in `darwin/Brewfile`. +- Arch packages stay in `linux/arch/packages.list`. +- Machine state stays in `machines/jm-home-box/machine.toml` or machine-state + docs. +- Shared tool expectations are documented, not forced through one package file. + +Tools that should exist on both where possible: + +- `git` +- `nvim` +- `fzf` +- `ripgrep` +- `fd` +- `bat` +- `kitty` +- `rtk` +- `node` +- shellcheck-compatible shell scripts if available + +Conflict rule: + +- Do not remove Linux package changes from jm-home-box just because they do not + appear in Brewfile. +- Do not add macOS casks to Linux package lists. + +### 7. Installer + +Files: + +- `install.sh` +- `scripts/test-install.sh` +- `Makefile` + +Desired result: + +- One installer supports macOS, Linux, remote, container, and minimal modes. +- Installer uses copies only. +- Installer backs up targets before replacing. +- Installer writes audit logs. +- Installer copies shared config from `common/`. +- Installer copies platform-specific config from `darwin/` or `linux/` based on + OS. +- Installer can eventually read machine metadata, but should not require it for + normal install. + +Conflict rule: + +- Prefer the copy-only audited installer. +- Preserve Linux-specific install functionality if it exists, but adapt it to + copy-only semantics. +- Never reintroduce stow/symlink behavior as default. + +### 8. Scripts + +Files: + +- `scripts/*.sh` +- `scripts/*.py` + +Desired result: + +- Shared verification scripts stay in `scripts/`. +- Linux-only machine convergence scripts can stay under `scripts/` if named + clearly, or move later under `machines/jm-home-box/scripts/`. +- Script names should make scope obvious. + +Conflict rule: + +- Keep scripts needed for current verification. +- Do not delete jm-home-box convergence tooling unless it is superseded and the + replacement is tested. + +## Ordered Merge Steps + +1. Start from a clean worktree. +2. Fetch all remotes. +3. Create or choose a convergence branch from the intended future default base. +4. Merge `feature/personal-laptop-combined`. +5. Merge `origin/fix/jm-home-box`. +6. Resolve conflicts in this order: + - Git config and commit template. + - Shell entry points. + - Shell functions. + - Vim/Neovim. + - Package lists. + - Terminal/visual config. + - Installer and Makefile. + - Scripts. +7. After each conflict category, run the narrow checks for that category. +8. Run full verification before commit. +9. Commit the convergence with a detailed message. +10. Push the convergence branch and compare against both source branches. + +## Verification Checklist + +Required checks on macOS: + +```bash +make check +make check-editor +zsh -n common/shell/.zshrc +bash -n common/shell/.bashrc +bash -n install.sh +git diff --check +``` + +Required checks on Linux: + +```bash +make check +make check-editor +zsh -n common/shell/.zshrc +bash -n common/shell/.bashrc +bash -n install.sh +git diff --check +``` + +If `make check` does not exist on a source branch, use the closest available +checks and add/port `make check` during convergence. + +Manual behavior checks: + +```bash +source ~/.zshrc +type vim +which vim +which -a vim +vim --version +nvim --version +echo "$EDITOR" +echo "$VISUAL" +``` + +Expected behavior: + +- `vim` is an alias to `nvim` when Neovim exists. +- `which vim` reports `nvim`. +- `which -a vim` shows alias result and system fallback if present. +- `EDITOR` and `VISUAL` prefer `nvim`. + +Install checks: + +- Installed files are regular files, not symlinks. +- Existing files are backed up. +- Backup paths preserve target structure. +- Audit log records mkdir, backup, remove, and copy actions. + +## Human Decisions Needed + +1. Should GitHub HTTPS-to-SSH rewrite be global for all machines? +2. Should `git-ai` PATH support remain shared, or move to an optional tool + snippet? +3. Should jm-home-box convergence scripts remain in top-level `scripts/`, or + move under `machines/jm-home-box/` later? +4. Should `.agents/` be added in this merge, or handled as a separate follow-up? +5. Should common themes remain in `common/themes`, or should theme selection be + explicitly profile-driven? + +## Recommended First Merge Strategy + +Use `feature/personal-laptop-combined` as the practical base because it already +has: + +- Recent copy-only installer behavior. +- Audit log and backup behavior. +- Neovim defaulting and editor parity checks. +- Current MacBook Brewfile and shell updates. + +Then merge `origin/fix/jm-home-box` into it and preserve Linux-specific files +where they belong. + +Expected conflict hotspots: + +- `Makefile` +- `install.sh` +- `common/nvim/init.vim` +- `common/shell/.zshrc` +- `common/shell/.bashrc` +- `common/git/.gitconfig` +- `darwin/Brewfile` +- Linux package/state files +- Kitty/Sway visual files + +Resolution principle: + +> Shared tool behavior should converge. Platform and machine presentation +> should remain intentionally different. + +## Final Success Criteria + +The merge is successful when: + +- A clean branch contains both source branches' useful work. +- MacBook install behavior remains unchanged or improved. +- jm-home-box Linux visuals and Sway setup are preserved. +- Neovim behavior is shared. +- Shell aliases/functions are consistent where portable. +- Installer is copy-only, backed up, and audited. +- The branch passes verification on at least one Mac and one Linux machine. +- Any remaining platform-only differences are documented and intentional. diff --git a/docs/machine-convergence-plan.md b/docs/machine-convergence-plan.md index 5912690..5e5916f 100644 --- a/docs/machine-convergence-plan.md +++ b/docs/machine-convergence-plan.md @@ -1,3 +1,12 @@ +> **Status (2026-07):** historical. The convergence happened on +> `converge/jm-home-box-laptop`; decisions that supersede parts of this plan: +> `install.sh` is the single install tool (`scripts/dotfiles.py` and +> `machines//` were removed), per-machine visual identity is handled +> by the Arch-only overlay in `linux/arch/.config/kitty/`, and machine-local +> runtime state lives in `~/.bashrc.local` / `~/.zshrc.local` / +> `~/.gitconfig.local` rather than the repo. The negotiated two-agent plan this +> executed is archived in `docs/convergence/combined-plan.md`. + # Machine Convergence Plan Goal: keep the same daily capabilities and muscle memory across `jm-home-box`, diff --git a/docs/reference/color-linux-box.md b/docs/reference/color-linux-box.md new file mode 100644 index 0000000..77478b5 --- /dev/null +++ b/docs/reference/color-linux-box.md @@ -0,0 +1,40 @@ +# Terminal background proposal — jm-home-box + +## Color recommendation + +`#181420` — a deep pink-leaning mantle. + +Why this over the current `#000000`: + +- Pure black is harsh and flattens the `background_opacity 0.95` nuance in `linux/common/kitty.conf`. +- It clashes with the Catppuccin Mocha pastel accents already in `common/themes/current-theme.conf`: + - rosewater cursor `#F5E0DC` + - mauve active tab `#CBA6F7` + - pink `#F5C2E7` +- `#181420` is essentially Catppuccin's `mantle` (`#181825`) nudged warm/rose to match the `style = "personal-pink"` identity declared in `machines/jm-home-box/machine.toml`. +- Stays clearly distinct from the `#11111B` tab bar so panel layering still reads. + +## Alternatives + +| Hex | Feel | +| --------- | ------------------------------------------------------------------- | +| `#1E1825` | Warmer base, brighter — closest to original Mocha brightness | +| `#15101A` | More dramatic, deeper warm-rose dark | +| `#11111B` | Catppuccin crust — official deepest, but merges into the tab bar | + +## Machine-only scope plan + +The current installer (`scripts/dotfiles.py`) copies `common/themes/*.conf` to every machine — no override path exists. + +Proposed change: + +1. Add `machines/jm-home-box/themes/current-theme.conf` containing the warm-rose background override. +2. In `scripts/dotfiles.py`, after the existing `add_glob(entries, "common/themes/*.conf", "~/.config/kitty", "kitty")`, add a gated copy of `machines//themes/*.conf` so machine-specific themes win. +3. Revert the uncommitted `#000000` edit in: + - `common/themes/current-theme.conf` + - `config/current-theme.conf` (stale mirror, unused by current installer) + so the upstream Mocha background is restored for any other machine. + +## Tradeoff + +Adds a small piece of machinery to the installer (one `add_glob` call gated on the directory existing) — minor scope creep, but it's the right hook for the per-machine deltas the convergence plan in `docs/machine-convergence-plan.md` already anticipates ("machine identity" classification). diff --git a/install.sh b/install.sh index 891717d..f4206fd 100755 --- a/install.sh +++ b/install.sh @@ -372,6 +372,30 @@ install_git_hooks() { fi } +# Install shared SSH config without clobbering machine-local host entries: +# the shared file lands at ~/.ssh/config.dotfiles and is Include'd from +# ~/.ssh/config, so per-machine hosts keep precedence. +install_ssh_config() { + local src="$DOTFILES_DIR/common/ssh/config" + [[ -f "$src" ]] || return 0 + + log_step "Installing shared SSH config..." + if [[ "$DRY_RUN" == "false" ]]; then + mkdir -p "$HOME/.ssh" + chmod 700 "$HOME/.ssh" + install_file "$src" "$HOME/.ssh/config.dotfiles" + chmod 600 "$HOME/.ssh/config.dotfiles" + if [[ ! -f "$HOME/.ssh/config" ]] || ! grep -q 'config\.dotfiles' "$HOME/.ssh/config"; then + backup_file "$HOME/.ssh/config" + printf '\n# Shared dotfiles SSH defaults (machine-local entries above take precedence)\nInclude ~/.ssh/config.dotfiles\n' >> "$HOME/.ssh/config" + chmod 600 "$HOME/.ssh/config" + audit_action "append" "$src" "$HOME/.ssh/config" "Include directive" + fi + else + log_info "Would copy: common/ssh/config -> ~/.ssh/config.dotfiles (Include'd from ~/.ssh/config)" + fi +} + # Install shell functions install_shell_functions() { log_step "Installing shell functions..." @@ -686,6 +710,7 @@ main() { install_shell_configs # 1. Shell configs (.bashrc, .zshrc) - foundation install_git_config # 2. Git configuration (.gitconfig) install_git_hooks # 2b. Personal global Git hooks + install_ssh_config # 2c. Shared SSH defaults (via Include) install_shell_functions # 3. Shell functions (depends on shell configs) install_terminal_config # 4. Terminal configs (kitty, htop) install_desktop_configs # 5. Linux desktop configs (sway/waybar/gtk) - arch only @@ -715,8 +740,7 @@ main() { echo " git ch # Fuzzy branch checkout" echo " git fadd # Interactive file staging" echo " git flog # Browse commits" - echo " k get p # kubectl get pods" - echo " sshdot user@host # SSH with dotfiles" + echo " kctx # Switch kubectl context with fzf" fi } diff --git a/scripts/update_cursor_tools.py b/scripts/update_cursor_tools.py deleted file mode 100755 index 14ad2d1..0000000 --- a/scripts/update_cursor_tools.py +++ /dev/null @@ -1,81 +0,0 @@ -#!/usr/bin/env python3 -"""Generate tools.yaml for Cursor from brew packages and shell aliases.""" - -from __future__ import annotations - -import json -import os -import subprocess -from pathlib import Path - - -def get_brew_packages() -> list[str]: - """Return a sorted list of installed Homebrew formula packages.""" - brew = subprocess.run(["which", "brew"], capture_output=True, text=True) - if brew.returncode != 0 or not brew.stdout.strip(): - return [] - - try: - result = subprocess.run([ - "brew", - "list", - "--formula", - ], capture_output=True, text=True, check=True) - except subprocess.CalledProcessError: - return [] - packages = [line.strip() for line in result.stdout.splitlines() if line.strip()] - return sorted(packages) - - -def get_shell_aliases() -> dict[str, str]: - """Return shell aliases available in an interactive bash shell.""" - try: - result = subprocess.run( - ["bash", "-ic", "alias"], capture_output=True, text=True, check=True - ) - except subprocess.CalledProcessError: - return {} - aliases: dict[str, str] = {} - for line in result.stdout.splitlines(): - if not line.startswith("alias "): - continue - # alias ll='ls -l' - try: - name, value = line[6:].split("=", 1) - except ValueError: - continue - value = value.strip() - if (value.startswith("'") and value.endswith("'")) or ( - value.startswith('"') and value.endswith('"') - ): - value = value[1:-1] - aliases[name.strip()] = value - return aliases - - -def dump_yaml(data: dict) -> str: - """Return YAML representation of the provided data. - - Falls back to JSON if PyYAML is not available. - """ - try: - import yaml # type: ignore - - return yaml.safe_dump(data, sort_keys=False) - except Exception: - return json.dumps(data, indent=2) - - -def main() -> None: - data = { - "brew_packages": get_brew_packages(), - "aliases": get_shell_aliases(), - } - out_path = Path.home() / ".cursor/generated/tools.yaml" - out_path.parent.mkdir(parents=True, exist_ok=True) - out_path.write_text(dump_yaml(data)) - print(f"Wrote {out_path}") - - -if __name__ == "__main__": - main() From ab5e6c3108edc1ff3fe5ef4105ee6cbb860dfabb Mon Sep 17 00:00:00 2001 From: Jean-Michel Bouchard Date: Thu, 9 Jul 2026 14:00:59 -0400 Subject: [PATCH 28/32] Fix all 34 findings from adversarial review Installer correctness: - First-run no longer aborts: vim/nvim PlugInstall get --- .dircolors | 32 ------- .dircolors-catpuccin | 32 ------- .github/workflows/test-install.yml | 21 ++++- .gitignore | 1 - .gnu_aliases | 32 ------- .profile | 2 - .vim/settings/appearance.vim | 2 +- README.md | 13 ++- common/git/hooks/pre-commit | 11 ++- common/shell-functions/macos-clipboard.sh | 1 + common/shell/.bash_profile | 2 +- common/shell/.bashrc | 26 +++--- common/shell/.bashrc.server | 2 +- common/shell/.zshrc | 2 +- darwin/Brewfile | 1 - install.sh | 100 ++++++++++------------ linux/arch/README.md | 32 +++---- linux/arch/ai-context/machine-state.md | 75 ---------------- linux/common/current-theme.conf | 77 ----------------- scripts/quick-install.sh | 12 +-- 20 files changed, 109 insertions(+), 367 deletions(-) delete mode 100644 .dircolors delete mode 100644 .dircolors-catpuccin delete mode 100644 .gnu_aliases delete mode 100644 .profile delete mode 100644 linux/arch/ai-context/machine-state.md delete mode 100644 linux/common/current-theme.conf diff --git a/.dircolors b/.dircolors deleted file mode 100644 index a20008b..0000000 --- a/.dircolors +++ /dev/null @@ -1,32 +0,0 @@ -# ~/.catppuccin-mocho.dircolors - -# File types -di 38;5;117 # directory = sky blue -ln 38;5;153 # symlink = lavender -so 38;5;217 # socket = flamingo -pi 38;5;229 # pipe = yellow -ex 38;5;114 # executable = green -bd 38;5;174 # block special = maroon -cd 38;5;174 # character special = maroon -su 38;5;204 # setuid file = red -sg 38;5;204 # setgid file = red -tw 38;5;204 # sticky other writable = red -ow 38;5;204 # other writable = red -st 38;5;204 # sticky = red -mi 38;5;204 # missing file = red -or 38;5;204 # orphaned symlink = red - -# Extensions -*.rs 38;5;153 # Rust files = lavender -*.py 38;5;153 # Python files = lavender -*.sh 38;5;114 # Shell scripts = green -*.toml 38;5;229 # TOML = yellow -*.yaml 38;5;229 # YAML = yellow -*.yml 38;5;229 # YAML = yellow -*.md 38;5;218 # Markdown = pink -*.txt 38;5;218 # Text = pink -*.log 38;5;229 # Logs = yellow -*.json 38;5;229 # JSON = yellow - -# Special cases -Makefile 38;5;216 \ No newline at end of file diff --git a/.dircolors-catpuccin b/.dircolors-catpuccin deleted file mode 100644 index ca467d1..0000000 --- a/.dircolors-catpuccin +++ /dev/null @@ -1,32 +0,0 @@ -# ~/.catppuccin-mocho.dircolors - -# File types -di 38;5;117 # directory = sky blue -ln 38;5;153 # symlink = lavender -so 38;5;217 # socket = flamingo -pi 38;5;229 # pipe = yellow -ex 38;5;114 # executable = green -bd 38;5;174 # block special = maroon -cd 38;5;174 # character special = maroon -su 38;5;204 # setuid file = red -sg 38;5;204 # setgid file = red -tw 38;5;204 # sticky other writable = red -ow 38;5;204 # other writable = red -st 38;5;204 # sticky = red -mi 38;5;204 # missing file = red -or 38;5;204 # orphaned symlink = red - -# Extensions -*.rs 38;5;153 # Rust files = lavender -*.py 38;5;153 # Python files = lavender -*.sh 38;5;114 # Shell scripts = green -*.toml 38;5;229 # TOML = yellow -*.yaml 38;5;229 # YAML = yellow -*.yml 38;5;229 # YAML = yellow -*.md 38;5;218 # Markdown = pink -*.txt 38;5;218 # Text = pink -*.log 38;5;229 # Logs = yellow -*.json 38;5;229 # JSON = yellow - -# Special cases -Makefile 38;5;216 diff --git a/.github/workflows/test-install.yml b/.github/workflows/test-install.yml index 457d715..c61fcda 100644 --- a/.github/workflows/test-install.yml +++ b/.github/workflows/test-install.yml @@ -33,7 +33,7 @@ jobs: - name: Zsh syntax check run: | - sudo apt-get install -y zsh + sudo apt-get update && sudo apt-get install -y zsh zsh -n common/shell/.zshrc && echo "PASS: .zshrc" - name: ShellCheck @@ -52,7 +52,8 @@ jobs: python3 -c "import json; json.load(open('.vim/coc-settings.json'))" && echo "PASS: coc-settings.json" - name: install.sh syntax check - run: bash -n install.sh && echo "PASS: install.sh" + run: | + bash -n install.sh && echo "PASS: install.sh" - name: Installer smoke test (temp HOME) run: ./scripts/test-install.sh @@ -78,6 +79,7 @@ jobs: - name: Run install.sh run: | + set -o pipefail cp -r "$GITHUB_WORKSPACE" /home/testuser/dotfiles chown -R testuser:testuser /home/testuser/dotfiles su testuser -c "cd /home/testuser/dotfiles && DOTFILES_FULL_INSTALL=1 ./install.sh --no-packages 2>&1" | tee /tmp/install.log @@ -132,7 +134,7 @@ jobs: - name: Verify Arch kitty theme is personal-pink overlay run: | su testuser -c ' - grep -q "personal-pink" ~/.config/kitty/current-theme.conf && echo "PASS: personal-pink overlay applied" + grep -q "personal-pink" ~/.config/kitty/current-theme.conf && echo "PASS: personal-pink overlay applied" || { echo "FAIL: personal-pink marker missing"; exit 1; } grep -qi "background[^_]*#2A1E2E" ~/.config/kitty/current-theme.conf && echo "PASS: plum background" || { echo "FAIL: expected #2A1E2E background"; exit 1; } ' @@ -202,6 +204,7 @@ jobs: - name: Run install.sh run: | + set -o pipefail cp -r "$GITHUB_WORKSPACE" /home/testuser/dotfiles chown -R testuser:testuser /home/testuser/dotfiles su testuser -c "cd /home/testuser/dotfiles && DOTFILES_FULL_INSTALL=1 ./install.sh --no-packages 2>&1" | tee /tmp/install.log @@ -222,6 +225,10 @@ jobs: echo "=== No desktop configs on non-arch ===" ! test -e ~/.config/sway && echo "PASS: sway config not installed" + + echo "=== AI context ===" + test -f ~/AGENTS.md && echo "PASS: AGENTS.md" + test -f ~/MACHINE.md && echo "PASS: MACHINE.md" ' - name: Validate shell configs @@ -276,7 +283,9 @@ jobs: run: brew install vim - name: Run install.sh - run: ./install.sh --no-packages 2>&1 | tee /tmp/install.log + run: | + set -o pipefail + ./install.sh --no-packages 2>&1 | tee /tmp/install.log - name: Verify file deployments (copies, never symlinks) run: | @@ -292,6 +301,10 @@ jobs: ! grep -q "personal-pink" ~/.config/kitty/current-theme.conf && echo "PASS: no personal-pink leak on macOS" grep -q "FiraCode" ~/.config/kitty/kitty.conf && echo "PASS: FiraCode font (macOS)" + echo "=== AI context ===" + test -f ~/AGENTS.md && echo "PASS: AGENTS.md" + test -f ~/MACHINE.md && echo "PASS: MACHINE.md" + - name: Validate Vim config run: | curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ diff --git a/.gitignore b/.gitignore index 962c6cd..63936bb 100644 --- a/.gitignore +++ b/.gitignore @@ -37,7 +37,6 @@ __pycache__/ .DS_Store # Cursor generated configuration -.config/cursor/generated/ # Generated AI context (machine-specific, not versioned) **/ai-context/machine-state.md diff --git a/.gnu_aliases b/.gnu_aliases deleted file mode 100644 index 055b551..0000000 --- a/.gnu_aliases +++ /dev/null @@ -1,32 +0,0 @@ -# Improved safe_alias function -# safe_alias [alias-name] [primary-command] fallback [secondary-command] -safe_alias() { - local program - program="${2%% *}" # Extract first word of command (not args) - if command -v "$program" >/dev/null 2>&1; then - alias "$1"="$2" - else - if [ "$3" = "fallback" ] && [ -n "$4" ]; then - alias "$1"="$4" - fi - fi -} - -if [ "$(uname -s)" = "Darwin" ]; then - # GNU tools with fallback to BSD/macOS system versions - safe_alias ls 'gls --color=auto --group-directories-first' fallback 'ls' - safe_alias sed 'gsed' fallback 'sed' - safe_alias awk 'gawk' fallback 'awk' - safe_alias find 'gfind' fallback 'find' - safe_alias grep 'ggrep' fallback 'grep' - safe_alias xargs 'gxargs' fallback 'xargs' - safe_alias tar 'gtar' fallback 'tar' - safe_alias which 'gwhich' fallback 'which' - safe_alias make 'gmake' fallback 'make' - safe_alias dircolors 'gdircolors' fallback 'dircolors' - - # If dircolors is available, eval LS_COLORS - if command -v dircolors >/dev/null 2>&1; then - eval "$(dircolors -b ~/.dircolors)" - fi -fi diff --git a/.profile b/.profile deleted file mode 100644 index 4b38a7a..0000000 --- a/.profile +++ /dev/null @@ -1,2 +0,0 @@ - -. "$HOME/.local/bin/env" diff --git a/.vim/settings/appearance.vim b/.vim/settings/appearance.vim index 7ebdcd4..59df65a 100644 --- a/.vim/settings/appearance.vim +++ b/.vim/settings/appearance.vim @@ -6,7 +6,7 @@ set laststatus=2 " Catppuccin theme settings let g:catppuccin_flavour = 'mocha' " latte, frappe, macchiato, mocha -colorscheme catppuccin_mocha +silent! colorscheme catppuccin_mocha " let g:airline_extensions = ['branch'] " let g:airline_extensions = ['branch', 'hunks', 'whitespace'] diff --git a/README.md b/README.md index 6a7d4f0..83ff2c7 100644 --- a/README.md +++ b/README.md @@ -31,11 +31,11 @@ make install-dry-run # Preview changes ### Remote Installation ```bash -# One-liner for remote servers -curl -fsSL https://raw.githubusercontent.com/woud420/dotfiles/master/install.sh | bash -s -- --minimal +# Minimal quick-install (fetches the few server configs it needs) +curl -sSL https://raw.githubusercontent.com/woud420/dotfiles/master/scripts/quick-install.sh | bash -# SSH with dotfiles -ssh user@host 'bash -s' < install.sh --minimal +# Or clone and run the full installer +git clone https://github.com/woud420/dotfiles.git && cd dotfiles && ./install.sh --minimal ``` ## 📁 Directory Structure @@ -122,7 +122,7 @@ kctx # Switch context with fzf Core tools: `awscli`, `bash`, `coreutils`, `git`, `fzf`, `fd`, `ripgrep`, `htop`, `neovim`, `tree`, `wget` Development: `node`, `python`, `rust`, `poetry`, `virtualenv` Kubernetes: `kubernetes-cli`, `helm`, `k9s`, `eksctl`, `minikube` -Infrastructure: `terraform`, `terraformer`, `tflint` +Infrastructure: `terraformer`, `tflint` Apps: `docker`, `docker-desktop`, `slack`, `spotify` ### Linux @@ -148,11 +148,10 @@ Example prompt: ``` ### Fuzzy Everything -- **File search**: `v` to open files with vim-compatible editor config - **Git branches**: `git ch` for interactive checkout - **Git commits**: `git flog` to browse history - **Git staging**: `git fadd` to stage files -- **Kubernetes**: `kctx`/`kns` for context/namespace switching +- **Kubernetes**: `kctx` for context switching ### GNU Tools on macOS Automatically aliases GNU versions to replace BSD utilities: diff --git a/common/git/hooks/pre-commit b/common/git/hooks/pre-commit index 501e2a5..6326ca9 100755 --- a/common/git/hooks/pre-commit +++ b/common/git/hooks/pre-commit @@ -25,7 +25,10 @@ run_repo_hook() { fi } -mapfile -d '' staged_files < <(git diff --cached --name-only -z --diff-filter=ACMR) +staged_files=() +while IFS= read -r -d '' f; do + staged_files+=("$f") +done < <(git diff --cached --name-only -z --diff-filter=ACMR) if [[ "${#staged_files[@]}" -eq 0 ]]; then exit 0 fi @@ -64,10 +67,14 @@ is_generated_blob() { has_conflict_markers() { local path="$1" + # Require a real <<<<<<< marker; bare ======= lines are common as + # heading underlines in plain text and only mean a conflict alongside one. git show ":$path" 2>/dev/null \ | grep -Iq . \ && git show ":$path" 2>/dev/null \ - | grep -nE '^(<<<<<<<|=======|>>>>>>>)' + | grep -qE '^<<<<<<< ' \ + && git show ":$path" 2>/dev/null \ + | grep -nE '^(<<<<<<< |=======$|>>>>>>> )' } for file in "${staged_files[@]}"; do diff --git a/common/shell-functions/macos-clipboard.sh b/common/shell-functions/macos-clipboard.sh index c64b241..bfdfc3f 100644 --- a/common/shell-functions/macos-clipboard.sh +++ b/common/shell-functions/macos-clipboard.sh @@ -1,3 +1,4 @@ +#!/usr/bin/env bash # macOS-compatible clipboard commands for Linux shells. # On macOS, leave the real pbcopy/pbpaste commands untouched. if [ "$(uname -s 2>/dev/null)" = "Linux" ]; then diff --git a/common/shell/.bash_profile b/common/shell/.bash_profile index 6633082..8a0fc60 100644 --- a/common/shell/.bash_profile +++ b/common/shell/.bash_profile @@ -24,4 +24,4 @@ if [ -d "$HOME/.local/bin" ] ; then fi export PATH -. "$HOME/.local/bin/env" +[ -f "$HOME/.local/bin/env" ] && . "$HOME/.local/bin/env" diff --git a/common/shell/.bashrc b/common/shell/.bashrc index aa9f57f..437d43f 100644 --- a/common/shell/.bashrc +++ b/common/shell/.bashrc @@ -114,7 +114,7 @@ dynamic_time_prompt() { build_prompt() { local GIT_INFO=$(parse_git_branch) # Note: In bash, we need to escape the $ in the function call - PS1="⭐ ${MAUVE}[${ROSEWATER}\u${MAUVE}@${TEAL}\$(pretty_pwd)${MAUVE}]${PEACH}${GIT_INFO}${RESET} ➔ " + PS1="⭐ \[${MAUVE}\][\[${ROSEWATER}\]\u\[${MAUVE}\]@\[${TEAL}\]\$(pretty_pwd)\[${MAUVE}\]]\[${PEACH}\]${GIT_INFO}\[${RESET}\] ➔ " # Optional: Add time to right side of prompt (requires special handling in bash) # For simpler setup, we'll skip the right prompt @@ -141,20 +141,6 @@ export FZF_DEFAULT_OPTS=" # Source FZF if available [ -f ~/.fzf.bash ] && source ~/.fzf.bash -# Add local bin to PATH if exists -[ -d /opt/homebrew/bin ] && PATH="/opt/homebrew/bin:$PATH" -[ -d "$HOME/bin" ] && PATH="$HOME/bin:$PATH" -[ -d "$HOME/.local/bin" ] && PATH="$HOME/.local/bin:$PATH" -[ -d "$HOME/.git-ai/bin" ] && PATH="$HOME/.git-ai/bin:$PATH" -export PATH - -# Load custom shell functions -if [ -d ~/.config/shell-functions ]; then - for f in ~/.config/shell-functions/*.sh; do - [ -r "$f" ] && source "$f" - done -fi - # PATH helper - prevents duplicates path_prepend() { local dir @@ -167,9 +153,17 @@ path_prepend() { done } -path_prepend "/usr/local/bin" "/usr/local/sbin" "$HOME/bin" "$HOME/.local/bin" "$HOME/.cargo/bin" +path_prepend "/usr/local/bin" "/usr/local/sbin" "/opt/homebrew/bin" \ + "$HOME/bin" "$HOME/.local/bin" "$HOME/.cargo/bin" "$HOME/.git-ai/bin" export PATH +# Load custom shell functions +if [ -d ~/.config/shell-functions ]; then + for f in ~/.config/shell-functions/*.sh; do + [ -r "$f" ] && source "$f" + done +fi + # Enable color support for ls and grep if [ -x /usr/bin/dircolors ]; then test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)" diff --git a/common/shell/.bashrc.server b/common/shell/.bashrc.server index fcb67f0..8192d86 100644 --- a/common/shell/.bashrc.server +++ b/common/shell/.bashrc.server @@ -41,7 +41,7 @@ else fi # Simple prompt without emoji -PS1="${GREEN}\u${RESET}@${BLUE}\h${RESET}:${CYAN}\w${RESET}${YELLOW}\$(parse_git_branch)${RESET}\$ " +PS1="\[${GREEN}\]\u\[${RESET}\]@\[${BLUE}\]\h\[${RESET}\]:\[${CYAN}\]\w\[${RESET}\]\[${YELLOW}\]\$(parse_git_branch)\[${RESET}\]\$ " # Load GNU aliases if available if [ -f ~/.gnu_aliases ]; then diff --git a/common/shell/.zshrc b/common/shell/.zshrc index ed1515e..44b2771 100644 --- a/common/shell/.zshrc +++ b/common/shell/.zshrc @@ -130,7 +130,7 @@ path_prepend() { done } -path_prepend "/opt/homebrew/bin" "/usr/local/bin" "/usr/local/sbin" "$HOME/bin" "$HOME/.cargo/bin" "$HOME/.git-ai/bin" +path_prepend "/opt/homebrew/bin" "/usr/local/bin" "/usr/local/sbin" "$HOME/bin" "$HOME/.local/bin" "$HOME/.cargo/bin" "$HOME/.git-ai/bin" # mise (version manager for Python, Node, etc.) if command -v mise >/dev/null 2>&1; then diff --git a/darwin/Brewfile b/darwin/Brewfile index 53006d8..3ccb21b 100644 --- a/darwin/Brewfile +++ b/darwin/Brewfile @@ -1,4 +1,3 @@ -tap "hashicorp/tap" brew "argon2" brew "awscli" brew "python@3.13" diff --git a/install.sh b/install.sh index f4206fd..1f8302d 100755 --- a/install.sh +++ b/install.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash # ===== Universal Dotfiles Installer ===== # Works on macOS, Linux (Ubuntu/Debian, Arch, RHEL/CentOS, Alpine) -# Usage: ./install.sh [--minimal] [--no-packages] [--dry-run] [--symlink] +# Usage: ./install.sh [--minimal] [--no-packages] [--dry-run] [--copy] # # Installation Order: # 1. OS Detection & Environment Setup @@ -261,8 +261,6 @@ install_packages_linux() { backup_file() { local file="$1" if [[ -f "$file" ]] || [[ -L "$file" ]]; then - local rel_path="${file#$HOME/}" - local backup_dest="$BACKUP_DIR/$rel_path" if [[ "$DRY_RUN" == "false" ]]; then local backup_path backup_path="$(backup_path_for "$file")" @@ -275,7 +273,7 @@ backup_file() { log_info "Backed up $file to $backup_path" fi else - log_info "Would backup: $file -> $backup_dest" + log_info "Would backup: $file -> $(backup_path_for "$file")" fi fi } @@ -340,7 +338,6 @@ install_git_config() { install_file "$DOTFILES_DIR/common/git/.gitconfig" "$HOME/.gitconfig" # Global gitignore - mkdir -p "$HOME/.config/git" install_file "$DOTFILES_DIR/common/git/.gitignore_global" "$HOME/.config/git/ignore" install_file "$DOTFILES_DIR/common/git/commit-template.md" "$HOME/.config/git/commit-template.md" } @@ -387,9 +384,15 @@ install_ssh_config() { chmod 600 "$HOME/.ssh/config.dotfiles" if [[ ! -f "$HOME/.ssh/config" ]] || ! grep -q 'config\.dotfiles' "$HOME/.ssh/config"; then backup_file "$HOME/.ssh/config" - printf '\n# Shared dotfiles SSH defaults (machine-local entries above take precedence)\nInclude ~/.ssh/config.dotfiles\n' >> "$HOME/.ssh/config" + # Prepend: an Include after a Host block would only apply to that + # host, and IgnoreUnknown must be parsed before any UseKeychain. + { + printf '# Shared dotfiles SSH defaults\nInclude ~/.ssh/config.dotfiles\n\n' + [[ -f "$HOME/.ssh/config" ]] && cat "$HOME/.ssh/config" + } > "$HOME/.ssh/config.tmp$$" + mv "$HOME/.ssh/config.tmp$$" "$HOME/.ssh/config" chmod 600 "$HOME/.ssh/config" - audit_action "append" "$src" "$HOME/.ssh/config" "Include directive" + audit_action "prepend" "$src" "$HOME/.ssh/config" "Include directive" fi else log_info "Would copy: common/ssh/config -> ~/.ssh/config.dotfiles (Include'd from ~/.ssh/config)" @@ -429,7 +432,6 @@ install_terminal_config() { log_step "Installing terminal configuration..." # Kitty config based on OS (using hard copies for kitty to work properly) - mkdir -p "$HOME/.config/kitty" if [[ "$DRY_RUN" == "false" ]]; then audit_action "mkdir" "" "$HOME/.config/kitty" "ensure kitty config directory" fi @@ -469,7 +471,6 @@ install_terminal_config() { fi # htop config - mkdir -p "$HOME/.config/htop" install_file "$DOTFILES_DIR/common/htop/htoprc" "$HOME/.config/htop/htoprc" } @@ -503,8 +504,8 @@ compile_coc_nvim() { return 0 fi - ( - set +e # don't kill the whole install on a coc build failure + # The subshell is the if-condition so a build failure cannot trip set -e + if ( cd "$HOME/.vim/plugged/coc.nvim" || exit 0 if [[ -f package-lock.json || -f npm-shrinkwrap.json ]]; then @@ -515,8 +516,7 @@ compile_coc_nvim() { echo "No package.json / lockfile found in coc.nvim, skipping build" exit 0 fi - ) - if [[ $? -eq 0 ]]; then + ); then log_success "CoC.nvim compiled successfully" else log_warning "CoC.nvim compilation failed. Retry manually: cd ~/.vim/plugged/coc.nvim && npm install" @@ -527,59 +527,41 @@ compile_coc_nvim() { install_vim_config() { log_step "Installing vim configuration..." - # Create .vim directory and copy config files if [[ "$DRY_RUN" == "false" ]]; then mkdir -p "$HOME/.vim/settings" + fi - # Link vim configuration files - install_file "$DOTFILES_DIR/.vim/vimrc" "$HOME/.vim/vimrc" - install_file "$DOTFILES_DIR/.vim/plugins.vim" "$HOME/.vim/plugins.vim" - install_file "$DOTFILES_DIR/.vim/mappings.vim" "$HOME/.vim/mappings.vim" - install_file "$DOTFILES_DIR/.vim/settings.vim" "$HOME/.vim/settings.vim" - install_file "$DOTFILES_DIR/.vim/coc-settings.json" "$HOME/.vim/coc-settings.json" - - # Link settings directory files - for settings_file in "$DOTFILES_DIR/.vim/settings/"*.vim; do - if [[ -f "$settings_file" ]]; then - install_file "$settings_file" "$HOME/.vim/settings/$(basename "$settings_file")" - fi - done - else - log_info "Would copy: .vim/vimrc -> ~/.vim/vimrc" - log_info "Would copy: .vim/plugins.vim -> ~/.vim/plugins.vim" - log_info "Would copy: .vim/mappings.vim -> ~/.vim/mappings.vim" - log_info "Would copy: .vim/coc-settings.json -> ~/.vim/coc-settings.json" - for settings_file in "$DOTFILES_DIR/.vim/settings/"*.vim; do - if [[ -f "$settings_file" ]]; then - log_info "Would copy: .vim/settings/$(basename "$settings_file") -> ~/.vim/settings/$(basename "$settings_file")" - fi - done + # install_file handles dry-run logging itself + install_file "$DOTFILES_DIR/.vim/vimrc" "$HOME/.vim/vimrc" + install_file "$DOTFILES_DIR/.vim/plugins.vim" "$HOME/.vim/plugins.vim" + install_file "$DOTFILES_DIR/.vim/mappings.vim" "$HOME/.vim/mappings.vim" + install_file "$DOTFILES_DIR/.vim/settings.vim" "$HOME/.vim/settings.vim" + install_file "$DOTFILES_DIR/.vim/coc-settings.json" "$HOME/.vim/coc-settings.json" + + for settings_file in "$DOTFILES_DIR/.vim/settings/"*.vim; do + if [[ -f "$settings_file" ]]; then + install_file "$settings_file" "$HOME/.vim/settings/$(basename "$settings_file")" + fi + done + + if [[ "$MINIMAL_MODE" == "true" ]]; then + log_info "Minimal mode: skipping vim plugin installation" + return 0 fi # Install vim plugins if vim is available if command -v vim >/dev/null 2>&1; then log_step "Installing vim plugins..." if [[ "$DRY_RUN" == "false" ]]; then - vim +PlugInstall +qall + # ~/.config/nvim/init.vim" - fi - else - log_warning "common/nvim/init.vim not found, skipping nvim config" - fi } # Install neovim configuration @@ -599,9 +581,14 @@ install_neovim_config() { return fi + if [[ "$MINIMAL_MODE" == "true" ]]; then + log_info "Minimal mode: skipping neovim plugin installation" + return 0 + fi + if command -v nvim >/dev/null 2>&1; then log_step "Installing neovim plugins..." - nvim --headless +PlugInstall +qall + nvim --headless +PlugInstall +qall /dev/null 2>&1; then + if ! command -v fzf >/dev/null 2>&1 && [[ ! -d "$HOME/.fzf" ]]; then log_info "Installing fzf..." if [[ "$DRY_RUN" == "false" ]]; then - git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf - ~/.fzf/install --bin --no-update-rc --no-key-bindings --no-completion + if git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf; then + ~/.fzf/install --bin --no-update-rc --no-key-bindings --no-completion || log_warning "fzf install script failed" + else + log_warning "fzf clone failed; skipping" + fi else log_info "Would install fzf" fi diff --git a/linux/arch/README.md b/linux/arch/README.md index 9772f09..9af4aac 100644 --- a/linux/arch/README.md +++ b/linux/arch/README.md @@ -8,7 +8,6 @@ This directory contains configuration files for my Arch Linux desktop setup. - **Terminal**: Kitty with FiraCode Nerd Font - **Launcher**: Rofi - **Notifications**: Mako -- **GPU**: AMD Radeon RX 5700 XT (RADV driver) - **Theme**: Purple/dark color scheme ## What's Included @@ -20,7 +19,6 @@ This directory contains configuration files for my Arch Linux desktop setup. - Window shadows and blur effects - 4px purple borders (#9d5a7f) - 28px inner gaps, -8px outer gaps - - GPU configuration for AMD RX 5700 XT - Workspace assignments (Firefox→2, Slack→3, Steam→4) - Custom keybindings @@ -36,12 +34,13 @@ This directory contains configuration files for my Arch Linux desktop setup. - **Font**: FiraCode Nerd Font 10px for tooltips ### Kitty Terminal -- **Location**: `.config/kitty/kitty.conf` -- **Settings**: - - Font: FiraCode Nerd Font 12.5 - - Background: #221820 (pink-gray tint) - - 85% opacity with tint - - Matching purple theme +- **Location**: `.config/kitty/current-theme.conf` (Arch-only theme overlay) +- The base config comes from `linux/common/kitty.conf` (installed to + `~/.config/kitty/kitty.conf`); this overlay applies the personal-pink + palette on top: + - Background: #2A1E2E (plum) + - Accent: #9d5a7f + - Font: FiraCode Nerd Font ### Rofi Launcher - **Location**: `.config/rofi/theme.rasi` @@ -62,21 +61,13 @@ This directory contains configuration files for my Arch Linux desktop setup. firefox slack-desktop spotify-launcher steam ``` -2. **Link configs** (from dotfiles root): +2. **Install configs** (from the dotfiles root - configs are copied, never + symlinked; packages come from `linux/arch/packages.list`): ```bash - ln -sf $(pwd)/linux/arch/.config/sway ~/.config/sway - ln -sf $(pwd)/linux/arch/.config/waybar ~/.config/waybar - ln -sf $(pwd)/linux/arch/.config/kitty ~/.config/kitty - ln -sf $(pwd)/linux/arch/.config/rofi ~/.config/rofi - ln -sf $(pwd)/linux/arch/.config/mako ~/.config/mako + ./install.sh ``` -3. **Make waybar modules executable**: - ```bash - chmod +x ~/.config/waybar/modules/*.{sh,py} - ``` - -4. **Reload Sway**: +3. **Reload Sway**: ```bash swaymsg reload ``` @@ -93,5 +84,4 @@ This directory contains configuration files for my Arch Linux desktop setup. - Waybar tooltips use FiraCode Nerd Font for consistency - Docker and Kubernetes modules require respective CLIs installed -- Sway config includes GPU-specific settings for AMD RX 5700 XT - All configs use rounded corners (10-16px) for visual consistency diff --git a/linux/arch/ai-context/machine-state.md b/linux/arch/ai-context/machine-state.md deleted file mode 100644 index 8714c80..0000000 --- a/linux/arch/ai-context/machine-state.md +++ /dev/null @@ -1,75 +0,0 @@ -# Machine State - -> Auto-generated by `refresh-machine-state.sh` -> Last updated: 2026-06-13T12:00:00-04:00 - -## System - -- **OS**: Linux 7.0.3-arch1-2 (running; 7.0.12-arch1-1 installed, active after reboot) -- **Hostname**: jm-home-box -- **Architecture**: x86_64 - -## Shell - -- **Current shell**: /bin/bash -- **Bash**: GNU bash, version 5.3.15(1)-release (x86_64-pc-linux-gnu) -- **Zsh**: not installed - -## Languages - -| Language | Version | -|----------|---------| -| Python | Python 3.14.5 | -| Node | v26.2.0 | -| Go | not on PATH | -| Rust | not on PATH (rust-racer AUR pkg installed) | - -## Tools - -| Tool | Version | -|------|---------| -| Git | git version 2.54.0 | -| Docker | Docker version 29.5.2, build 79eb04c7d8 | -| kubectl | v1.36.2 | -| Terraform | v1.15.6 | -| 1Password CLI | 2.34.1 | -| Neovim | NVIM v0.12.3 | - -## Packages - -- **Total installed**: 892 -- **Package manager**: pacman - -### AUR (explicitly installed) - -``` -1password -1password-cli -amf-amdgpu-pro -archey3 -asoundconf -ethminer-bin -exodus -lib32-vulkan-amdgpu-pro -nordic-bluish-accent-standard-buttons-theme -nordic-bluish-accent-theme -nordic-darker-standard-buttons-theme -nordic-darker-theme -nordic-standard-buttons-theme -nordic-theme -opencl-amd -openvpn-update-systemd-resolved -python-dbg -rust-racer -slack-desktop -spotify -swayfx -teamredminer-bin -ttf-meslo -ttf-monaco -vulkan-amdgpu-pro -wshowkeys-git -xmr-stak -yay-bin -zoom -``` diff --git a/linux/common/current-theme.conf b/linux/common/current-theme.conf deleted file mode 100644 index d84e71e..0000000 --- a/linux/common/current-theme.conf +++ /dev/null @@ -1,77 +0,0 @@ -# vim:ft=kitty - -## name: Custom Purple (Sway Desktop Match) -## author: local -## blurb: Warm purple/burgundy theme matching Sway, Waybar, Rofi, and Mako - - -# The basic colors -foreground #d0d0d0 -background #221820 -selection_foreground #221820 -selection_background #9d5a7f - -# Cursor colors -cursor #d0d0d0 -cursor_text_color #221820 - -# URL underline color when hovering with mouse -url_color #9d5a7f - -# Kitty window border colors -active_border_color #9d5a7f -inactive_border_color #4a3844 -bell_border_color #d68787 - -# OS Window titlebar colors -wayland_titlebar_color system -macos_titlebar_color system - -# Tab bar colors -active_tab_foreground #221820 -active_tab_background #9d5a7f -inactive_tab_foreground #d0d0d0 -inactive_tab_background #2a1f27 -tab_bar_background #1a1218 - -# Colors for marks (marked text in the terminal) -mark1_foreground #221820 -mark1_background #9d5a7f -mark2_foreground #221820 -mark2_background #6b4456 -mark3_foreground #221820 -mark3_background #87b8a8 - -# The 16 terminal colors - -# black -color0 #2a1f27 -color8 #4a3844 - -# red -color1 #d68787 -color9 #e09898 - -# green -color2 #a3be8c -color10 #b5d4a1 - -# yellow -color3 #d4a373 -color11 #e0b98a - -# blue -color4 #8a9fc5 -color12 #a0b3d4 - -# magenta -color5 #9d5a7f -color13 #b87a9d - -# cyan -color6 #87b8a8 -color14 #a0ccbb - -# white -color7 #d0d0d0 -color15 #e8e8e8 diff --git a/scripts/quick-install.sh b/scripts/quick-install.sh index 13727c5..01de94f 100755 --- a/scripts/quick-install.sh +++ b/scripts/quick-install.sh @@ -35,17 +35,17 @@ echo "Installing common configurations..." # Bash configs [ -f "$HOME/.bashrc" ] && mv "$HOME/.bashrc" "$HOME/.bashrc.backup" if [ "$MINIMAL" = "1" ]; then - ln -sf "$DOTFILES_DIR/common/shell/.bashrc.server" "$HOME/.bashrc" + cp -f "$DOTFILES_DIR/common/shell/.bashrc.server" "$HOME/.bashrc" else - ln -sf "$DOTFILES_DIR/common/shell/.bashrc" "$HOME/.bashrc" + cp -f "$DOTFILES_DIR/common/shell/.bashrc" "$HOME/.bashrc" fi -ln -sf "$DOTFILES_DIR/common/shell/.bash_profile" "$HOME/.bash_profile" +cp -f "$DOTFILES_DIR/common/shell/.bash_profile" "$HOME/.bash_profile" # Git config -ln -sf "$DOTFILES_DIR/common/git/.gitconfig" "$HOME/.gitconfig" +cp -f "$DOTFILES_DIR/common/git/.gitconfig" "$HOME/.gitconfig" mkdir -p "$HOME/.config/git" -ln -sf "$DOTFILES_DIR/common/git/.gitignore_global" "$HOME/.config/git/ignore" -ln -sf "$DOTFILES_DIR/common/git/commit-template.md" "$HOME/.config/git/commit-template.md" +cp -f "$DOTFILES_DIR/common/git/.gitignore_global" "$HOME/.config/git/ignore" +cp -f "$DOTFILES_DIR/common/git/commit-template.md" "$HOME/.config/git/commit-template.md" # GNU aliases (copy to avoid symlink on targets) cp -f "$DOTFILES_DIR/common/shell/.gnu_aliases" "$HOME/.gnu_aliases" From 08e4c07f7e6539e10c734f525a9a7cc92e1e26a9 Mon Sep 17 00:00:00 2001 From: Jean-Michel Bouchard Date: Thu, 9 Jul 2026 14:03:07 -0400 Subject: [PATCH 29/32] CI: use bash shell in container jobs, writable evidence dir Debian's default step shell is dash, which rejects set -o pipefail (GitHub's explicit bash shell runs with -eo pipefail built in), and /tmp/evidence was created by root while testuser writes the report. Co-Authored-By: Claude Fable 5 --- .github/workflows/test-install.yml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test-install.yml b/.github/workflows/test-install.yml index c61fcda..3278ff7 100644 --- a/.github/workflows/test-install.yml +++ b/.github/workflows/test-install.yml @@ -78,8 +78,8 @@ jobs: echo "testuser ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers - name: Run install.sh + shell: bash run: | - set -o pipefail cp -r "$GITHUB_WORKSPACE" /home/testuser/dotfiles chown -R testuser:testuser /home/testuser/dotfiles su testuser -c "cd /home/testuser/dotfiles && DOTFILES_FULL_INSTALL=1 ./install.sh --no-packages 2>&1" | tee /tmp/install.log @@ -170,6 +170,7 @@ jobs: if: always() run: | mkdir -p /tmp/evidence + chmod 777 /tmp/evidence cp /tmp/install.log /tmp/evidence/ 2>/dev/null || true su testuser -c ' ls -la ~/.bashrc ~/.zshrc ~/.gitconfig 2>&1 > /tmp/evidence/report.txt @@ -203,8 +204,8 @@ jobs: echo "testuser ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers - name: Run install.sh + shell: bash run: | - set -o pipefail cp -r "$GITHUB_WORKSPACE" /home/testuser/dotfiles chown -R testuser:testuser /home/testuser/dotfiles su testuser -c "cd /home/testuser/dotfiles && DOTFILES_FULL_INSTALL=1 ./install.sh --no-packages 2>&1" | tee /tmp/install.log @@ -260,6 +261,7 @@ jobs: if: always() run: | mkdir -p /tmp/evidence + chmod 777 /tmp/evidence cp /tmp/install.log /tmp/evidence/ 2>/dev/null || true su testuser -c ' ls -la ~/.bashrc ~/.zshrc ~/.gitconfig 2>&1 > /tmp/evidence/report.txt @@ -283,8 +285,8 @@ jobs: run: brew install vim - name: Run install.sh + shell: bash run: | - set -o pipefail ./install.sh --no-packages 2>&1 | tee /tmp/install.log - name: Verify file deployments (copies, never symlinks) From 3c32e6ccbc59594ec39580e876f403c5098e61a3 Mon Sep 17 00:00:00 2001 From: Jean-Michel Bouchard Date: Thu, 9 Jul 2026 19:17:54 -0400 Subject: [PATCH 30/32] Fix all 25 findings from second adversarial review The big two: - Arch installs work again: linux/arch/packages.list still listed exa, delta, and neofetch (renamed/removed from the repos) and swayfx (AUR only), so a default ./install.sh on Arch aborted before installing anything. Renamed to eza/git-delta, moved swayfx to a documented AUR section, added ttf-firacode-nerd (the configs require it; also added the font cask to the Brewfile), and the pacman step now uses --needed with a warning guard instead of aborting the whole install. - vim plugins actually install now: the round-1 ` --- README.md | 6 +- common/ai-context/CLAUDE.md | 7 +- common/git/hooks/pre-commit | 48 ++++++++++--- common/git/hooks/pre-push | 10 +++ common/shell-functions/README.md | 110 +++++------------------------- common/shell/.gnu_aliases | 7 +- common/shell/.zshrc | 2 +- common/ssh/config | 1 - darwin/Brewfile | 1 + docs/reference/color-linux-box.md | 4 ++ install.sh | 39 +++++++---- linux/arch/.config/sway/config | 2 +- linux/arch/.config/waybar/config | 6 +- linux/arch/README.md | 7 ++ linux/arch/packages.list | 10 +-- scripts/refresh-machine-state.sh | 2 + scripts/test-install.sh | 2 +- 17 files changed, 131 insertions(+), 133 deletions(-) diff --git a/README.md b/README.md index 83ff2c7..379b368 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ make install-dry-run # Preview changes ### Remote Installation ```bash -# Minimal quick-install (fetches the few server configs it needs) +# Minimal quick-install (shallow-clones the repo and copies server configs) curl -sSL https://raw.githubusercontent.com/woud420/dotfiles/master/scripts/quick-install.sh | bash # Or clone and run the full installer @@ -214,7 +214,9 @@ Machine-specific config lives outside the repo and survives reinstalls: - `~/.gitconfig.local` - included last by `.gitconfig`, so identity or tool-appended blocks (e.g. git-ai) win over the shared config - `~/.ssh/config` - your own host entries stay first; the shared defaults are - pulled in via `Include ~/.ssh/config.dotfiles` + pulled in via `Include ~/.ssh/config.dotfiles`. Note the shared defaults set + `ForwardAgent yes` globally - convenient across personal machines, but scope + it per-host in a local block if you ssh to hosts you don't control. ### Personal Git Hooks diff --git a/common/ai-context/CLAUDE.md b/common/ai-context/CLAUDE.md index 8dd400f..7f41fd1 100644 --- a/common/ai-context/CLAUDE.md +++ b/common/ai-context/CLAUDE.md @@ -4,9 +4,10 @@ Two files describe the current machine: - `~/MACHINE.md` — static: what this machine is *for*, preferences, paths -- `~/MACHINE-STATE.md` — generated: what's actually installed, versions, recent packages +- a generated state snapshot in the dotfiles repo under `/ai-context/machine-state.md` + (refresh with `scripts/refresh-machine-state.sh`) -If you need current system info, check MACHINE-STATE.md or run commands directly. +If you need current system info, run commands directly or refresh the snapshot. ## General Preferences @@ -38,4 +39,4 @@ I work across multiple organizations. Treat each project independently — don't ## Dotfiles -My dotfiles are at `~/workspace/dotfiles`. If you need to understand my shell setup, git aliases, or tooling, look there. +My dotfiles repo is github.com/woud420/dotfiles (checked out under `~/workspace/`, exact path varies per machine). If you need to understand my shell setup, git aliases, or tooling, look there. diff --git a/common/git/hooks/pre-commit b/common/git/hooks/pre-commit index 6326ca9..5b42cdf 100755 --- a/common/git/hooks/pre-commit +++ b/common/git/hooks/pre-commit @@ -13,9 +13,20 @@ fi cd "$repo_root" +# Repo hooks are repo-controlled code. Delegation is on by default so tools +# like husky keep working, but can be disabled for untrusted clones with +# git config jm.hooks.runRepoHooks false (or --global to flip the default) +repo_hooks_trusted() { + [[ "$(git config --get jm.hooks.runRepoHooks || echo true)" != "false" ]] +} + run_repo_hook() { local hook_path="$1" if [[ -f "$hook_path" ]]; then + if ! repo_hooks_trusted; then + echo "[jm-hooks] skipping repo hook (jm.hooks.runRepoHooks=false): $hook_path" + return 0 + fi echo "[jm-hooks] running repo hook: $hook_path" if [[ -x "$hook_path" ]]; then "$hook_path" @@ -44,13 +55,16 @@ max_bytes="${JM_GIT_HOOKS_MAX_BYTES:-10485760}" is_secret_path() { local path="$1" local base - base="$(basename "$path")" + base="$(basename -- "$path")" case "$base" in .env.example|.env.sample|.env.template|.envrc.example) return 1 ;; - .env|.env.*|*.pem|*.key|*.p12|*.pfx|id_rsa|id_ed25519|credentials.json|service-account*.json) + .env|.env.*|*.pem|*.key|*.p12|*.pfx|*.p8|*.jks|*.keystore|.netrc|.pgpass|credentials.json|service-account*.json) + return 0 + ;; + id_rsa|id_dsa|id_ecdsa|id_ed25519|id_ecdsa_sk|id_ed25519_sk) return 0 ;; esac @@ -60,21 +74,33 @@ is_secret_path() { is_generated_blob() { local path="$1" - git show ":$path" 2>/dev/null \ - | sed -n '1,60p' \ - | grep -Eiq '(do not edit|automatically generated|auto-generated|generated by)' + local base head_blob + base="$(basename -- "$path")" + + # Lockfiles carry generated-by headers but are meant to be committed. + case "$base" in + *.lock|package-lock.json|yarn.lock|bun.lock|bun.lockb|Pipfile.lock|go.sum|flake.lock) + return 1 + ;; + esac + + # Capture instead of piping into grep -q: an early-exiting grep SIGPIPEs + # the producer, and under pipefail that reads as "no match" on big files. + head_blob="$(git show ":$path" 2>/dev/null | sed -n '1,60p')" || true + grep -Eiq '(do not edit|automatically generated|auto-generated|generated by)' <<<"$head_blob" } has_conflict_markers() { local path="$1" + local markers + # Single full-input grep (no -q): early-exiting greps SIGPIPE git show, + # which pipefail turns into a silent pass on files larger than the pipe + # buffer. -I treats binary files as non-matching. + markers="$(git show ":$path" 2>/dev/null | grep -InE '^(<<<<<<< |=======$|>>>>>>> )')" || return 1 # Require a real <<<<<<< marker; bare ======= lines are common as # heading underlines in plain text and only mean a conflict alongside one. - git show ":$path" 2>/dev/null \ - | grep -Iq . \ - && git show ":$path" 2>/dev/null \ - | grep -qE '^<<<<<<< ' \ - && git show ":$path" 2>/dev/null \ - | grep -nE '^(<<<<<<< |=======$|>>>>>>> )' + grep -qE '^[0-9]+:<<<<<<< ' <<<"$markers" || return 1 + printf '%s\n' "$markers" } for file in "${staged_files[@]}"; do diff --git a/common/git/hooks/pre-push b/common/git/hooks/pre-push index b34cc85..506d8ba 100755 --- a/common/git/hooks/pre-push +++ b/common/git/hooks/pre-push @@ -13,10 +13,20 @@ fi cd "$repo_root" +# See pre-commit: disable repo-hook delegation for untrusted clones with +# git config jm.hooks.runRepoHooks false +repo_hooks_trusted() { + [[ "$(git config --get jm.hooks.runRepoHooks || echo true)" != "false" ]] +} + run_repo_hook() { local hook_path="$1" shift if [[ -f "$hook_path" ]]; then + if ! repo_hooks_trusted; then + echo "[jm-hooks] skipping repo hook (jm.hooks.runRepoHooks=false): $hook_path" + return 0 + fi echo "[jm-hooks] running repo hook: $hook_path" if [[ -x "$hook_path" ]]; then "$hook_path" "$@" diff --git a/common/shell-functions/README.md b/common/shell-functions/README.md index 67ae28e..5b37bd2 100644 --- a/common/shell-functions/README.md +++ b/common/shell-functions/README.md @@ -1,100 +1,26 @@ # Shell Functions & Aliases -This directory contains organized shell functions and aliases grouped by tool and purpose. +Sourced by both bash and zsh from `~/.config/shell-functions/` (the installer +copies every `*.sh` file here). -## 📂 Files Overview +## Active -### Core Function Files -- **`fuzzy-vim.sh`** - Enhanced vim wrapper with fuzzy file selection -- **`editor.sh`** - Default editor aliases and environment -- **`ssh.sh`** - SSH and remote connection helpers -- **`git.sh`** - Advanced git workflow functions -- **`k8s.sh`** - Kubernetes management functions -- **`docker.sh`** - Docker container management functions -- **`utils.sh`** - General utility functions -- **`which.sh`** - Shell-aware command lookup that includes aliases +| File | Purpose | +|------|---------| +| `editor.sh` | `vi`/`vim`/`vimdiff` and `EDITOR`/`VISUAL` use Neovim when available | +| `which.sh` | Shell-aware `which` that also reports aliases and functions | +| `sudo.sh` | Exports `SUDO_ASKPASS` (rofi GUI prompt via `sudo -A`) when the helper is installed | +| `macos-clipboard.sh` | `pbcopy`/`pbpaste` parity on Linux (wl-clipboard) | +| `kubectl-aliases.sh` | `k` alias for kubectl (`kctx` lives in the shell rc files) | -### Alias Files -- **`kubectl-aliases.sh`** - Kubectl short aliases (`k get p`, `kgpw`, etc.) -- **`git-aliases.sh`** - Git short aliases (`g`, `gs`, `gc`, etc.) -- **`docker-aliases.sh`** - Docker short aliases (`d`, `dc`, `dr`, etc.) -- **`system-aliases.sh`** - System and file operation aliases -- **`modern-tools-aliases.sh`** - Modern CLI tool replacements +## Disabled stubs -## 🚀 Key Features +The remaining files are deliberately kept as ~90-byte disabled stubs so they +can be restored incrementally without breaking installs: -### Git Integration -**Git Config Aliases** (in `.gitconfig`): -```bash -git ch # Fuzzy branch checkout with preview -git flog # Interactive log browser -git fadd # Select files to stage with preview -git llog # Fuzzy search through commits -``` +`git.sh`, `git-aliases.sh`, `docker.sh`, `docker-aliases.sh`, `k8s.sh`, +`ssh.sh`, `utils.sh`, `fuzzy-vim.sh`, `modern-tools-aliases.sh`, +`secrets.sh`, `system-aliases.sh` -**Shell Aliases** (complement git config): -```bash -g # git -gs # git status -gaa # git add . -gcm "message" # git commit -m "message" -gp # git push -``` - -### Kubectl Power Aliases -```bash -# Resource shortcuts -k get p # kubectl get pods -kgpw # kubectl get pods -o wide -kgpy # kubectl get pods -o yaml -kdp # kubectl describe pod -klf # kubectl logs -f - -# Quick operations -kshp pattern # Shell into first pod matching pattern -klp pattern # Logs from first pod matching pattern -krestart deploy # Restart deployment -``` - -Your dotfiles are now fully updated with: - -## ✅ **Updated Structure:** - -**Git Config (.gitconfig):** -- ✅ Added `git ch` - Fuzzy branch checkout with fzf fallback -- ✅ Added `git flog` - Interactive log browser -- ✅ Added `git fadd` - Fuzzy file staging -- ✅ Added `git llog` - Fuzzy commit search -- ✅ Kept all your existing aliases (`st`, `lg`, `cm`, etc.) - -**Shell Functions (shell-functions/):** -- ✅ All functions moved to `~/.config/shell-functions/` as you wanted -- ✅ Kubectl aliases (`k get p`, `kgpw`, etc.) -- ✅ Git shell aliases (`g`, `gs`, `gp`, etc.) -- ✅ Docker aliases (`d`, `dc`, `dr`, etc.) -- ✅ SSH helpers (`sshdot`, `ssht`, etc.) -- ✅ System utilities and modern tool replacements - -**Installation Scripts:** -- ✅ Updated to copy all shell-functions -- ✅ Remote installation handles new structure - -## 🎯 **Usage:** - -```bash -# Git workflows -git ch # Fuzzy branch select -git fadd # Interactive file staging -git flog # Browse commits -g st # Quick status (shell alias) - -# Kubernetes -k get p # kubectl get pods -kgpw # kubectl get pods -o wide -kctx # Switch context with fzf - -# Remote servers -sshdot user@host # SSH with dotfiles auto-install -``` - -Everything is backward compatible and your existing workflow stays the same! +Restoring one means replacing the stub's body and confirming `bash -n` and +`zsh -n` pass (CI runs ShellCheck at error severity over this directory). diff --git a/common/shell/.gnu_aliases b/common/shell/.gnu_aliases index 1c7cdde..fe5476d 100644 --- a/common/shell/.gnu_aliases +++ b/common/shell/.gnu_aliases @@ -24,8 +24,11 @@ if [ "$(uname -s)" = "Darwin" ]; then safe_alias make 'gmake' fallback 'make' safe_alias dircolors 'gdircolors' fallback 'dircolors' - # If dircolors is available, eval LS_COLORS - if command -v dircolors >/dev/null 2>&1; then + # If a real dircolors binary is available, eval LS_COLORS (command -v would + # match the alias above even when no binary exists on macOS) + if command -v gdircolors >/dev/null 2>&1; then + eval "$(gdircolors -b ~/.dircolors)" + elif [ -x /usr/bin/dircolors ] || [ -x /bin/dircolors ]; then eval "$(dircolors -b ~/.dircolors)" fi fi diff --git a/common/shell/.zshrc b/common/shell/.zshrc index 44b2771..14ef08f 100644 --- a/common/shell/.zshrc +++ b/common/shell/.zshrc @@ -151,7 +151,7 @@ export FZF_DEFAULT_OPTS=" [ -f ~/.fzf.zsh ] && source ~/.fzf.zsh # Load custom shell functions -for f in ~/.config/shell-functions/*.sh; do +for f in ~/.config/shell-functions/*.sh(N); do [[ -r "$f" ]] && source "$f" done diff --git a/common/ssh/config b/common/ssh/config index 9090c60..3654923 100644 --- a/common/ssh/config +++ b/common/ssh/config @@ -12,4 +12,3 @@ Host github.com HostName github.com User git IdentityFile ~/.ssh/github-id-rsa - IdentitiesOnly yes diff --git a/darwin/Brewfile b/darwin/Brewfile index 3ccb21b..3ab3f6e 100644 --- a/darwin/Brewfile +++ b/darwin/Brewfile @@ -65,3 +65,4 @@ cask "superwhisper" cargo "sqlx-cli" cargo "worker-build" npm "@openai/codex" +cask "font-fira-code-nerd-font" diff --git a/docs/reference/color-linux-box.md b/docs/reference/color-linux-box.md index 77478b5..f2a4221 100644 --- a/docs/reference/color-linux-box.md +++ b/docs/reference/color-linux-box.md @@ -1,3 +1,7 @@ +> **Status (2026-07):** historical example of container-based theme derivation. +> `scripts/dotfiles.py` and `machines/` were removed; the shipped theme is the +> Arch-only overlay in `linux/arch/.config/kitty/` (#2A1E2E). + # Terminal background proposal — jm-home-box ## Color recommendation diff --git a/install.sh b/install.sh index 1f8302d..9ddb8e3 100755 --- a/install.sh +++ b/install.sh @@ -224,7 +224,7 @@ install_packages_linux() { if [[ "$DRY_RUN" == "false" ]]; then log_step "Installing packages from $package_list..." # Filter comments and empty lines, then install - grep -v '^#' "$package_list" | grep -v '^$' | xargs sudo pacman -S --noconfirm + grep -v '^#' "$package_list" | grep -v '^$' | xargs sudo pacman -S --needed --noconfirm || log_warning "Some packages failed to install" else log_info "Would install packages from $package_list with pacman" fi @@ -451,11 +451,10 @@ install_terminal_config() { done # Arch-specific theme overrides (e.g. personal-pink plum background) - if [[ "$DISTRO" == "arch" ]]; then + if [[ "$DISTRO" == "arch" || "$DISTRO" == "manjaro" ]]; then for theme_file in "$DOTFILES_DIR/linux/arch/.config/kitty/"*.conf; do [[ -f "$theme_file" ]] || continue - cp "$theme_file" "$HOME/.config/kitty/$(basename "$theme_file")" - log_success "Applied Arch kitty override: $(basename "$theme_file")" + install_file "$theme_file" "$HOME/.config/kitty/$(basename "$theme_file")" done fi else @@ -465,7 +464,7 @@ install_terminal_config() { log_info "Would copy: linux/common/kitty.conf -> ~/.config/kitty/kitty.conf" fi log_info "Would copy kitty themes to ~/.config/kitty/" - if [[ "$DISTRO" == "arch" ]]; then + if [[ "$DISTRO" == "arch" || "$DISTRO" == "manjaro" ]]; then log_info "Would apply Arch kitty overrides from linux/arch/.config/kitty/ to ~/.config/kitty/" fi fi @@ -478,7 +477,7 @@ install_terminal_config() { # Copies everything under linux/arch/.config/ into ~/.config/ preserving # relative paths, so new tool configs are picked up without listing them here. install_desktop_configs() { - if [[ "$DISTRO" != "arch" ]] || [[ "$MINIMAL_MODE" == "true" ]]; then + if [[ "$DISTRO" != "arch" && "$DISTRO" != "manjaro" ]] || [[ "$MINIMAL_MODE" == "true" ]]; then return 0 fi @@ -498,6 +497,11 @@ install_desktop_configs() { compile_coc_nvim() { [[ -d "$HOME/.vim/plugged/coc.nvim" ]] || return 0 + if [[ ! -f "$HOME/.vim/plugged/coc.nvim/package.json" ]]; then + log_warning "coc.nvim present but incomplete (no package.json); rerun :PlugInstall" + return 0 + fi + log_step "Compiling CoC.nvim..." if ! command -v npm >/dev/null 2>&1; then log_warning "npm not found. CoC.nvim needs manual compilation: cd ~/.vim/plugged/coc.nvim && npm install" @@ -510,11 +514,8 @@ compile_coc_nvim() { if [[ -f package-lock.json || -f npm-shrinkwrap.json ]]; then npm ci - elif [[ -f package.json ]]; then - npm install else - echo "No package.json / lockfile found in coc.nvim, skipping build" - exit 0 + npm install fi ); then log_success "CoC.nvim compiled successfully" @@ -553,9 +554,21 @@ install_vim_config() { if command -v vim >/dev/null 2>&1; then log_step "Installing vim plugins..." if [[ "$DRY_RUN" == "false" ]]; then - # /dev/null)" ]]; then + log_success "vim plugins installed" + else + log_warning "no vim plugins present after install; run :PlugInstall manually" + fi compile_coc_nvim else diff --git a/linux/arch/.config/sway/config b/linux/arch/.config/sway/config index 0b7db17..97315b8 100644 --- a/linux/arch/.config/sway/config +++ b/linux/arch/.config/sway/config @@ -311,4 +311,4 @@ exec mako exec_always ~/.config/waybar/waybar.sh exec wl-paste --watch cliphist store -include @sysconfdir@/sway/config.d/* +include /etc/sway/config.d/* diff --git a/linux/arch/.config/waybar/config b/linux/arch/.config/waybar/config index 4c9f76c..ef8709d 100644 --- a/linux/arch/.config/waybar/config +++ b/linux/arch/.config/waybar/config @@ -168,15 +168,17 @@ "custom/docker": { "format": "{}", "return-type": "json", - "interval": 10, + "interval": 30, "exec": "~/.config/waybar/modules/docker.py", + "exec-if": "pgrep -x dockerd", "tooltip": true }, "custom/k8s": { "format": "{}", "return-type": "json", - "interval": 10, + "interval": 30, "exec": "~/.config/waybar/modules/k8s.py", + "exec-if": "sh -c 'command -v kubectl >/dev/null && kubectl config current-context >/dev/null 2>&1'", "tooltip": true } } diff --git a/linux/arch/README.md b/linux/arch/README.md index 9af4aac..40b102d 100644 --- a/linux/arch/README.md +++ b/linux/arch/README.md @@ -72,6 +72,13 @@ This directory contains configuration files for my Arch Linux desktop setup. swaymsg reload ``` +4. **(Optional) auto-refresh the AI machine-state snapshot on package changes** + (the installer deliberately does not enable this; it writes into the repo): + ```bash + sed "s|__DOTFILES_DIR__|$PWD|" linux/arch/hooks/90-refresh-ai-context.hook \ + | sudo tee /etc/pacman.d/hooks/90-refresh-ai-context.hook + ``` + ## Color Scheme - **Primary Purple**: `#9d5a7f` (borders, accents) diff --git a/linux/arch/packages.list b/linux/arch/packages.list index 1405c2c..546ac77 100644 --- a/linux/arch/packages.list +++ b/linux/arch/packages.list @@ -18,8 +18,8 @@ nvidia-open nvidia-utils wl-clipboard wtype -swayfx waybar +ttf-firacode-nerd rofi mako cliphist @@ -39,11 +39,13 @@ wget zsh # Modern alternatives bat -exa -delta +eza +git-delta dust procs bottom httpie yq -neofetch + +# AUR (install with an AUR helper, e.g. paru -S; pacman cannot install these) +# swayfx diff --git a/scripts/refresh-machine-state.sh b/scripts/refresh-machine-state.sh index 354cd64..0973c09 100755 --- a/scripts/refresh-machine-state.sh +++ b/scripts/refresh-machine-state.sh @@ -18,6 +18,8 @@ detect_os() { echo "debian" elif [[ -f /etc/fedora-release ]]; then echo "fedora" + elif [[ -f /etc/alpine-release ]]; then + echo "alpine" else echo "linux" fi diff --git a/scripts/test-install.sh b/scripts/test-install.sh index 2ec5718..72b5e25 100755 --- a/scripts/test-install.sh +++ b/scripts/test-install.sh @@ -71,7 +71,7 @@ grep -q $'\tcopy\t' "$AUDIT_LOG" || fail "audit log has no copy action" ! grep -q $'\tlink\t' "$AUDIT_LOG" || fail "audit log must not contain link actions" grep -q "$ROOT_DIR/common/nvim/init.vim" "$AUDIT_LOG" || fail "audit log does not include neovim init" -grep -q '^vim +PlugInstall +qall$' "$STUB_LOG" || fail "vim plugin install was not invoked" +grep -q '^vim -e -N -u .*PlugInstall --sync.*qa!$' "$STUB_LOG" || fail "vim plugin install was not invoked" grep -q '^nvim --headless +PlugInstall +qall$' "$STUB_LOG" || fail "nvim plugin install was not invoked" printf 'Installer test passed.\n' From b20d0a02253e69346197ae7c283fa53ddd5a7a94 Mon Sep 17 00:00:00 2001 From: Jean-Michel Bouchard Date: Thu, 9 Jul 2026 19:18:35 -0400 Subject: [PATCH 31/32] rc files end with explicit if-blocks so sourcing reports status 0 Co-Authored-By: Claude Fable 5 --- common/shell/.bashrc | 4 +++- common/shell/.zshrc | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/common/shell/.bashrc b/common/shell/.bashrc index 437d43f..a3abfa1 100644 --- a/common/shell/.bashrc +++ b/common/shell/.bashrc @@ -213,4 +213,6 @@ kctx() { [ -f "$HOME/.local/bin/env" ] && . "$HOME/.local/bin/env" # Machine-local overrides - kept out of the repo, survives reinstalls -[ -f "$HOME/.bashrc.local" ] && . "$HOME/.bashrc.local" +if [ -f "$HOME/.bashrc.local" ]; then + . "$HOME/.bashrc.local" +fi diff --git a/common/shell/.zshrc b/common/shell/.zshrc index 14ef08f..928e766 100644 --- a/common/shell/.zshrc +++ b/common/shell/.zshrc @@ -183,4 +183,6 @@ if [[ -d "$HOME/.bun" ]]; then fi # Machine-local overrides - kept out of the repo, survives reinstalls -[[ -f "$HOME/.zshrc.local" ]] && . "$HOME/.zshrc.local" +if [[ -f "$HOME/.zshrc.local" ]]; then + . "$HOME/.zshrc.local" +fi From 27c10b248424a54db34193da5a93c47f9442a545 Mon Sep 17 00:00:00 2001 From: Jean-Michel Bouchard Date: Thu, 9 Jul 2026 22:31:22 -0400 Subject: [PATCH 32/32] Fix all 33 findings from third adversarial review The big ones: - vim plugins genuinely install on vim-only machines now: vim-plug cannot run in ex mode (E31, installs nothing - the nvim pass on this laptop had been masking it by sharing ~/.vim/plugged), so headless installs allocate a pty via script(1) (BSD and util-linux forms). When nvim is present the vim invocation is skipped entirely; both paths report installed-vs-declared plugin counts instead of a non-empty-dir guess, vim-plug downloads atomically (a truncated plug.vim could previously never heal), and compile_coc_nvim warns when coc.nvim was requested but never cloned. Verified: 9/9 plugins in a fresh vim-only HOME. - install_file replaces symlinked ancestors that resolve into the repo: a legacy ~/.vim -> repo/.vim symlink previously made the installer DELETE the repo's own files and copy sources onto themselves - this is the exact migration path both real machines could hit. Verified against a repo copy: symlink becomes a real dir, repo untouched. - quick-install.sh / ssh-copy-dotfiles.sh / minimal-bashrc.sh installed a gitconfig whose core.hooksPath pointed at a directory they never populated, silently disabling ALL git hooks (including repo husky hooks) on machines set up that way. All three now install the hooks; quick-install also detects SSH sessions for server configs. - install_ai_context no longer clobbers a user-curated ~/.claude/ CLAUDE.md (seeded only when absent), skips minimal mode along with the sudo-askpass helper, and covers rhel/centos. Hooks: the jm.hooks.runRepoHooks off-switch now honors git boolean spellings (0/no/off previously failed open on the security control); documented in both READMEs. Desktop: rofi theme actually loads (new config.rasi - nothing referenced theme.rasi), sway screenshot binding invokes grim/slurp instead of a nonexistent sshot (grim+slurp added to packages.list), sway's literal @sysconfdir@ include fixed, spotify.sh paused/stopped branches were command invocations not assignments (+bash shebang for its [[ ]]), storage-workspace.sh no longer hardcodes /home/jm and hides cleanly when the mount is absent, dead files removed (sway/key-bindings, waybar cpu-graph.sh, docker-k8s.py - nothing referenced them), GTK's Nordic theme noted as AUR, pacman hook runs refresh as the owning user via runuser (root-owned repo files otherwise), version_of passes multi-flag commands correctly. Also: neovim added to all Linux package lists (README promised Neovim-first; only the Brewfile delivered it), ui-features.vim is actually sourced (installed but dead), .bashrc.server gets the .bashrc.local hook, nvim dry-run preview matches the real steps, install.sh header tells the truth, README file table covers vim/nvim/ askpass, minimal-mode behavior documented, combined-plan.md gets its historical banner. Co-Authored-By: Claude Fable 5 --- .vim/vimrc | 5 + README.md | 21 ++- common/git/hooks/README.md | 6 +- common/git/hooks/pre-commit | 3 +- common/git/hooks/pre-push | 3 +- common/shell/.bashrc.server | 5 + docs/convergence/combined-plan.md | 6 + install.sh | 147 ++++++++++++--- linux/alpine/packages.list | 1 + linux/arch/.config/rofi/config.rasi | 3 + linux/arch/.config/sway/config | 2 +- linux/arch/.config/sway/key-bindings | 172 ------------------ .../arch/.config/waybar/modules/cpu-graph.sh | 42 ----- .../arch/.config/waybar/modules/docker-k8s.py | 100 ---------- linux/arch/.config/waybar/modules/spotify.sh | 14 +- .../waybar/modules/storage-workspace.sh | 9 +- linux/arch/README.md | 10 +- linux/arch/hooks/90-refresh-ai-context.hook | 2 +- linux/arch/packages.list | 4 + linux/debian/packages.list | 1 + linux/fedora/packages.list | 1 + scripts/minimal-bashrc.sh | 7 + scripts/quick-install.sh | 15 +- scripts/refresh-machine-state.sh | 8 +- scripts/ssh-copy-dotfiles.sh | 6 +- scripts/test-install.sh | 3 +- 26 files changed, 229 insertions(+), 367 deletions(-) create mode 100644 linux/arch/.config/rofi/config.rasi delete mode 100644 linux/arch/.config/sway/key-bindings delete mode 100755 linux/arch/.config/waybar/modules/cpu-graph.sh delete mode 100644 linux/arch/.config/waybar/modules/docker-k8s.py diff --git a/.vim/vimrc b/.vim/vimrc index e274aba..16b6133 100644 --- a/.vim/vimrc +++ b/.vim/vimrc @@ -30,6 +30,11 @@ source ~/.vim/mappings.vim " 6. Extra keybindings - Leader key and custom bindings source ~/.vim/settings/keybindings.vim +" 6b. UI features - popups etc. (self-guarded for vim/nvim differences) +if filereadable(expand('~/.vim/settings/ui-features.vim')) + source ~/.vim/settings/ui-features.vim +endif + " 7. CoC LSP - Language server configuration (after basic settings) source ~/.vim/settings/coc-settings.vim diff --git a/README.md b/README.md index 379b368..9a30e78 100644 --- a/README.md +++ b/README.md @@ -77,6 +77,10 @@ dotfiles/ | `common/ssh/config` | `~/.ssh/config.dotfiles` | Shared SSH defaults (Include'd from `~/.ssh/config`) | | `kitty.conf` | `~/.config/kitty/kitty.conf` | Kitty terminal config | | `htoprc` | `~/.config/htop/htoprc` | htop configuration | +| `.vim/*` | `~/.vim/` | Vim config, settings, and CoC settings | +| `common/nvim/init.vim` | `~/.config/nvim/init.vim` | Neovim bridge to the Vim config | +| `.vim/coc-settings.json` | `~/.vim/` and `~/.config/nvim/` | CoC LSP settings (both editors) | +| `scripts/sudo-askpass.sh` | `~/.local/bin/sudo-askpass` | GUI sudo prompt helper | ### Shell Functions @@ -88,7 +92,7 @@ All shell functions are installed to `~/.config/shell-functions/`: | `which.sh` | Command lookup | Includes shell aliases and functions | | `sudo.sh` | GUI sudo prompts | Exports `SUDO_ASKPASS` (use `sudo -A`) | | `macos-clipboard.sh` | Clipboard parity | `pbcopy`/`pbpaste` on Linux (wl-clipboard) | -| `kubectl-aliases.sh` | Kubernetes | `k` (kubectl); `kctx` lives in `.bashrc` | +| `kubectl-aliases.sh` | Kubernetes | `k` (kubectl); `kctx` lives in the shell rc files | The remaining function files (`git.sh`, `git-aliases.sh`, `docker.sh`, `docker-aliases.sh`, `k8s.sh`, `ssh.sh`, `utils.sh`, `fuzzy-vim.sh`, @@ -123,7 +127,7 @@ Core tools: `awscli`, `bash`, `coreutils`, `git`, `fzf`, `fd`, `ripgrep`, `htop` Development: `node`, `python`, `rust`, `poetry`, `virtualenv` Kubernetes: `kubernetes-cli`, `helm`, `k9s`, `eksctl`, `minikube` Infrastructure: `terraformer`, `tflint` -Apps: `docker`, `docker-desktop`, `slack`, `spotify` +Apps: `docker-desktop` (bundles the docker CLI), `slack`, `spotify` ### Linux @@ -224,18 +228,27 @@ The installed `.gitconfig` sets `core.hooksPath = ~/.config/git/hooks`. Installed hooks are intentionally general and local-only: - `pre-commit` runs repo hooks like `.husky/pre-commit` first, then blocks - likely secrets, conflict markers, and oversized files. + likely secrets, conflict markers, oversized files, and generated-looking + files (lockfiles allowlisted; override with `JM_ALLOW_GENERATED_EDITS=1`). - `pre-push` runs repo hooks first, then an explicit repo check when configured. ```bash JM_GIT_HOOKS=0 git commit ... # Skip personal hooks once +git config jm.hooks.runRepoHooks false # Don't run repo-controlled hooks in an untrusted clone git config jm.hooks.prePushCommand "make check" make install-git-hooks # Install only the hooks ``` +### Minimal mode +`--minimal` (auto-enabled in containers) installs the server bashrc and core +configs only: it skips packages, vim/nvim plugins, desktop configs, the +sudo-askpass helper, and AI context files, but still installs terminal +(kitty/htop) configs. + ### AI Context The installer copies `common/ai-context/` files into place: -`~/.claude/CLAUDE.md`, `~/AGENTS.md`, and an OS-specific `~/MACHINE.md`. +`~/AGENTS.md` and an OS-specific `~/MACHINE.md`; `~/.claude/CLAUDE.md` is +only seeded when absent (an existing customized one is left alone). Machine state snapshots are generated on demand with `scripts/refresh-machine-state.sh`. diff --git a/common/git/hooks/README.md b/common/git/hooks/README.md index cfc0cf7..f6b2344 100644 --- a/common/git/hooks/README.md +++ b/common/git/hooks/README.md @@ -9,7 +9,8 @@ These are personal, global Git hooks installed through `core.hooksPath`. - blocks likely secret files; - blocks large staged files over 10 MiB by default; - blocks conflict markers; - - blocks generated-looking files unless `JM_ALLOW_GENERATED_EDITS=1`. + - blocks generated-looking files unless `JM_ALLOW_GENERATED_EDITS=1` + (common lockfiles like `Cargo.lock`/`yarn.lock` are allowlisted). - `pre-push` - preserves repo-local `.husky/pre-push`, `.githooks/pre-push`, and `.git/hooks/pre-push.local`; @@ -19,6 +20,9 @@ These are personal, global Git hooks installed through `core.hooksPath`. ## Escapes +- Repo-hook delegation runs repo-controlled code; disable it for untrusted + clones with `git config jm.hooks.runRepoHooks false` (add `--global` to + flip the default and re-enable per trusted repo). - Disable all personal hooks for one command: `JM_GIT_HOOKS=0 git commit ...` - Alternate skip flag: `SKIP_JM_HOOKS=1 git commit ...` - Allow intentional generated output: `JM_ALLOW_GENERATED_EDITS=1 git commit ...` diff --git a/common/git/hooks/pre-commit b/common/git/hooks/pre-commit index 5b42cdf..b4571f3 100755 --- a/common/git/hooks/pre-commit +++ b/common/git/hooks/pre-commit @@ -17,7 +17,8 @@ cd "$repo_root" # like husky keep working, but can be disabled for untrusted clones with # git config jm.hooks.runRepoHooks false (or --global to flip the default) repo_hooks_trusted() { - [[ "$(git config --get jm.hooks.runRepoHooks || echo true)" != "false" ]] + # --type=bool normalizes 0/no/off/false; unset or garbage stays trusted + [[ "$(git config --type=bool --get jm.hooks.runRepoHooks 2>/dev/null || echo true)" != "false" ]] } run_repo_hook() { diff --git a/common/git/hooks/pre-push b/common/git/hooks/pre-push index 506d8ba..944c9ce 100755 --- a/common/git/hooks/pre-push +++ b/common/git/hooks/pre-push @@ -16,7 +16,8 @@ cd "$repo_root" # See pre-commit: disable repo-hook delegation for untrusted clones with # git config jm.hooks.runRepoHooks false repo_hooks_trusted() { - [[ "$(git config --get jm.hooks.runRepoHooks || echo true)" != "false" ]] + # --type=bool normalizes 0/no/off/false; unset or garbage stays trusted + [[ "$(git config --type=bool --get jm.hooks.runRepoHooks 2>/dev/null || echo true)" != "false" ]] } run_repo_hook() { diff --git a/common/shell/.bashrc.server b/common/shell/.bashrc.server index 8192d86..88e2fde 100644 --- a/common/shell/.bashrc.server +++ b/common/shell/.bashrc.server @@ -119,3 +119,8 @@ if ! shopt -oq posix; then . /etc/bash_completion fi fi + +# Machine-local overrides - kept out of the repo, survives reinstalls +if [ -f "$HOME/.bashrc.local" ]; then + . "$HOME/.bashrc.local" +fi diff --git a/docs/convergence/combined-plan.md b/docs/convergence/combined-plan.md index 6a1d979..27090c6 100644 --- a/docs/convergence/combined-plan.md +++ b/docs/convergence/combined-plan.md @@ -1,3 +1,9 @@ +> **Status (2026-07):** historical/archived. This is the negotiated two-agent +> plan that the convergence executed; the decisions that superseded parts of it +> are listed in the status header of `docs/machine-convergence-plan.md`. The +> planned backup-restore deliverable was descoped - restores are manual from +> the path-preserving `~/.dotfiles-backup-*` directories using the audit log. + # Combined Dotfiles Convergence Plan ## Agreement diff --git a/install.sh b/install.sh index 9ddb8e3..b8d2b7c 100755 --- a/install.sh +++ b/install.sh @@ -8,18 +8,20 @@ # 2. Package Installation (optional) # 3. Configuration Installation: # - Shell configs (foundation) -# - Git configuration -# - Shell functions & aliases +# - Git configuration + personal git hooks +# - Shared SSH defaults (via Include) +# - Shell functions & sudo-askpass helper # - Terminal configs (kitty, htop) -# - Vim/Neovim setup (plugins, LSP, themes) +# - Linux desktop configs (sway/waybar/gtk, arch only) +# - Vim/Neovim setup (plugins, CoC compilation) # - Optional tools (fzf, etc.) +# - AI context files (CLAUDE.md, AGENTS.md, MACHINE.md) # # Features: # - Auto-detects OS and environment (local/remote/container) -# - Creates backups before changes +# - Creates backups before changes (path-preserving, with an audit log) # - Installs regular file copies, not symlinks # - Compiles CoC.nvim automatically -# - Installs language servers and tools set -e @@ -278,6 +280,36 @@ backup_file() { fi } +# Replace any symlinked ancestor of a target path that resolves into the +# repo checkout with a real directory. Without this, a legacy symlink like +# ~/.vim -> repo/.vim would make install_file delete the REPO's file and +# then copy the source onto itself. +materialize_target_dir() { + local dir="$1" + local ancestor="$dir" + local chain=() + while [[ "$ancestor" != "$HOME" && "$ancestor" != "/" && -n "$ancestor" ]]; do + chain+=("$ancestor") + ancestor="$(dirname "$ancestor")" + done + # Check from the top down so the outermost symlink is replaced first + local i seg resolved + for (( i=${#chain[@]}-1; i>=0; i-- )); do + seg="${chain[$i]}" + if [[ -L "$seg" ]]; then + resolved="$(cd "$seg" 2>/dev/null && pwd -P || true)" + case "$resolved" in + "$DOTFILES_DIR"|"$DOTFILES_DIR"/*) + log_warning "Replacing legacy symlink into the repo: $seg -> $resolved" + rm -f "$seg" + mkdir -p "$seg" + audit_action "unlink" "$resolved" "$seg" "replaced repo symlink with real directory" + ;; + esac + fi + done +} + # Install a regular copied file install_file() { local source="$1" @@ -286,6 +318,7 @@ install_file() { if [[ "$DRY_RUN" == "false" ]]; then # Create target directory if it doesn't exist + materialize_target_dir "$target_dir" mkdir -p "$target_dir" audit_action "mkdir" "" "$target_dir" "ensure target directory" @@ -419,7 +452,9 @@ install_shell_functions() { fi # GUI sudo askpass helper at a stable path (sudo.sh points SUDO_ASKPASS here) - if [[ "$DRY_RUN" == "false" ]]; then + if [[ "$MINIMAL_MODE" == "true" ]]; then + log_info "Minimal mode: skipping sudo-askpass helper" + elif [[ "$DRY_RUN" == "false" ]]; then install_file "$DOTFILES_DIR/scripts/sudo-askpass.sh" "$HOME/.local/bin/sudo-askpass" chmod +x "$HOME/.local/bin/sudo-askpass" else @@ -495,7 +530,12 @@ install_desktop_configs() { # Compile CoC.nvim after plugin installation (shared by vim + nvim paths) compile_coc_nvim() { - [[ -d "$HOME/.vim/plugged/coc.nvim" ]] || return 0 + if [[ ! -d "$HOME/.vim/plugged/coc.nvim" ]]; then + if grep -q "coc.nvim" "$HOME/.vim/plugins.vim" 2>/dev/null; then + log_warning "coc.nvim requested by plugins.vim but not installed; run :PlugInstall manually" + fi + return 0 + fi if [[ ! -f "$HOME/.vim/plugged/coc.nvim/package.json" ]]; then log_warning "coc.nvim present but incomplete (no package.json); rerun :PlugInstall" @@ -550,26 +590,24 @@ install_vim_config() { return 0 fi - # Install vim plugins if vim is available - if command -v vim >/dev/null 2>&1; then + # Install vim plugins. When nvim is present the neovim step handles this + # (same ~/.vim/plugged); headless plain vim needs a pty to run vim-plug. + if command -v nvim >/dev/null 2>&1; then + log_info "nvim present; plugins are installed by the neovim step" + elif command -v vim >/dev/null 2>&1; then log_step "Installing vim plugins..." if [[ "$DRY_RUN" == "false" ]]; then - # Pre-seed vim-plug: the vimrc's own auto-download breaks in ex mode - if [[ ! -f "$HOME/.vim/autoload/plug.vim" ]]; then - curl -fsLo "$HOME/.vim/autoload/plug.vim" --create-dirs \ - https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim \ - || log_warning "could not download vim-plug" - fi - # Ex mode + --not-a-term is the only vim invocation that survives - # without a tty; plain +PlugInstall /dev/null)" ]]; then - log_success "vim plugins installed" + seed_vim_plug + # vim-plug needs a real terminal: ex mode (-e/-es) aborts with E31 + # and installs nothing, so allocate a pty via script(1). + if command -v script >/dev/null 2>&1; then + run_vim_in_pty vim -N -u "$HOME/.vim/vimrc" -c 'PlugInstall --sync' -c 'qa!' \ + || log_warning "vim plugin install failed; run :PlugInstall manually" else - log_warning "no vim plugins present after install; run :PlugInstall manually" + vim -e -N -u "$HOME/.vim/vimrc" --not-a-term -c 'PlugInstall --sync' -c 'qa!' /dev/null 2>&1; then + local cmd + printf -v cmd '%q ' "$@" + script -qec "$cmd" /dev/null /dev/null 2>&1 + else + script -q /dev/null "$@" /dev/null 2>&1 + fi +} + +# Compare installed plugin dirs against what plugins.vim declares. +report_plug_count() { + local expected installed + expected="$(grep -c "^Plug '" "$HOME/.vim/plugins.vim" 2>/dev/null || echo 0)" + installed="$(ls -1 "$HOME/.vim/plugged" 2>/dev/null | wc -l | tr -d ' ')" + if [[ "$installed" -ge "$expected" && "$expected" -gt 0 ]]; then + log_success "vim plugins installed ($installed/$expected)" + else + log_warning "only $installed of $expected vim plugins installed; run :PlugInstall manually" + fi +} + # Install neovim configuration install_neovim_config() { log_step "Installing neovim configuration..." @@ -590,7 +668,11 @@ install_neovim_config() { install_file "$DOTFILES_DIR/common/nvim/init.vim" "$HOME/.config/nvim/init.vim" install_file "$DOTFILES_DIR/.vim/coc-settings.json" "$HOME/.config/nvim/coc-settings.json" else - log_info "Would install neovim configuration" + log_info "Would copy: common/nvim/init.vim -> ~/.config/nvim/init.vim" + log_info "Would copy: .vim/coc-settings.json -> ~/.config/nvim/coc-settings.json" + if [[ "$MINIMAL_MODE" == "false" ]]; then + log_info "Would install neovim plugins and compile CoC.nvim" + fi return fi @@ -601,7 +683,9 @@ install_neovim_config() { if command -v nvim >/dev/null 2>&1; then log_step "Installing neovim plugins..." + seed_vim_plug nvim --headless +PlugInstall +qall ~/AGENTS.md (for Codex/Copilot compatibility) @@ -657,7 +752,7 @@ install_ai_context() { ubuntu|debian) machine_src="$DOTFILES_DIR/linux/debian/ai-context/machine.md" ;; - fedora) + rhel|centos|fedora) machine_src="$DOTFILES_DIR/linux/fedora/ai-context/machine.md" ;; alpine) diff --git a/linux/alpine/packages.list b/linux/alpine/packages.list index f73f670..02fb20d 100644 --- a/linux/alpine/packages.list +++ b/linux/alpine/packages.list @@ -15,5 +15,6 @@ py3-virtualenv tmux tree vim +neovim wget zsh \ No newline at end of file diff --git a/linux/arch/.config/rofi/config.rasi b/linux/arch/.config/rofi/config.rasi new file mode 100644 index 0000000..c635d43 --- /dev/null +++ b/linux/arch/.config/rofi/config.rasi @@ -0,0 +1,3 @@ +configuration { +} +@theme "~/.config/rofi/theme.rasi" diff --git a/linux/arch/.config/sway/config b/linux/arch/.config/sway/config index 97315b8..8605a46 100644 --- a/linux/arch/.config/sway/config +++ b/linux/arch/.config/sway/config @@ -66,7 +66,7 @@ output * mode 3440x1440@165Hz bg $wallpaper fill bindsym $mod+q kill # Screenshot - bindsym $mod+Ctrl+Shift+3 exec sshot + bindsym $mod+Ctrl+Shift+3 exec sh -c 'grim -g "$(slurp)" - | wl-copy' # Start your launcher bindsym $mod+space exec $menu diff --git a/linux/arch/.config/sway/key-bindings b/linux/arch/.config/sway/key-bindings deleted file mode 100644 index 62cd6c3..0000000 --- a/linux/arch/.config/sway/key-bindings +++ /dev/null @@ -1,172 +0,0 @@ -### Key bindings -# -# Basics: -# - # Start a terminal - bindsym $mod+Return exec $term - - # Kill focused window - bindsym $mod+q kill - - # Start your launcher - bindsym $mod+d exec $menu - - # Drag floating windows by holding down $mod and left mouse button. - # Resize them with right mouse button + $mod. - # Despite the name, also works for non-floating windows. - # Change normal to inverse to use left mouse button for resizing and right - # mouse button for dragging. - floating_modifier $mod normal - - # Reload the configuration file - bindsym $mod+Shift+c reload - - bindsym $mod+c exec wl-copy - bindsym $mod+v exec wl-paste - - # Exit sway (logs you out of your Wayland session) - bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -b 'Yes, exit sway' 'swaymsg exit' - -# -# Moving around: -# - # Move your focus around - bindsym $mod+$left focus left - bindsym $mod+$down focus down - bindsym $mod+$up focus up - bindsym $mod+$right focus right - # Or use $mod+[up|down|left|right] - bindsym $mod+Left focus left - bindsym $mod+Down focus down - bindsym $mod+Up focus up - bindsym $mod+Right focus right - - # Move the focused window with the same, but add Shift - bindsym $mod+Shift+$left move left - bindsym $mod+Shift+$down move down - bindsym $mod+Shift+$up move up - bindsym $mod+Shift+$right move right - # Ditto, with arrow keys - bindsym $mod+Shift+Left move left - bindsym $mod+Shift+Down move down - bindsym $mod+Shift+Up move up - bindsym $mod+Shift+Right move right - - # Switch to workspace - bindsym $mod+1 workspace number $ws1 - bindsym $mod+2 workspace number $ws2 - bindsym $mod+3 workspace number $ws3 - bindsym $mod+4 workspace number $ws4 - bindsym $mod+5 workspace number $ws5 - bindsym $mod+6 workspace number $ws6 - bindsym $mod+7 workspace number $ws7 - bindsym $mod+8 workspace number $ws8 - bindsym $mod+9 workspace number $ws9 - bindsym $mod+0 workspace number $ws10 - # Move focused container to workspace - bindsym $mod+Shift+1 move container to workspace number $ws1 - bindsym $mod+Shift+2 move container to workspace number $ws2 - bindsym $mod+Shift+3 move container to workspace number $ws3 - bindsym $mod+Shift+4 move container to workspace number $ws4 - bindsym $mod+Shift+5 move container to workspace number $ws5 - bindsym $mod+Shift+6 move container to workspace number $ws6 - bindsym $mod+Shift+7 move container to workspace number $ws7 - bindsym $mod+Shift+8 move container to workspace number $ws8 - bindsym $mod+Shift+9 move container to workspace number $ws9 - bindsym $mod+Shift+0 move container to workspace number $ws10 - # Note: workspaces can have any name you want, not just numbers. - # We just use 1-10 as the default. -# -# Layout stuff: -# - # You can "split" the current object of your focus with - # $mod+b or $mod+v, for horizontal and vertical splits - # respectively. - bindsym $mod+b splith - bindsym $mod+v splitv - - # Switch the current container between different layout styles - bindsym $mod+s layout stacking - bindsym $mod+w layout tabbed - bindsym $mod+e layout toggle split - - # Make the current focus fullscreen - bindsym $mod+f fullscreen - - # Toggle the current focus between tiling and floating mode - bindsym $mod+Shift+space floating toggle - - # Swap focus between the tiling area and the floating area - bindsym $mod+space focus mode_toggle - - # Move focus to the parent container - bindsym $mod+a focus parent -# -# Scratchpad: -# - # Sway has a "scratchpad", which is a bag of holding for windows. - # You can send windows there and get them back later. - - # Move the currently focused window to the scratchpad - bindsym $mod+Shift+minus move scratchpad - - # Show the next scratchpad window or hide the focused scratchpad window. - # If there are multiple scratchpad windows, this command cycles through them. - bindsym $mod+minus scratchpad show -# -# Resizing containers: -# -mode "resize" { - # left will shrink the containers width - # right will grow the containers width - # up will shrink the containers height - # down will grow the containers height - bindsym $left resize shrink width 10px - bindsym $down resize grow height 10px - bindsym $up resize shrink height 10px - bindsym $right resize grow width 10px - - # Ditto, with arrow keys - bindsym Left resize shrink width 10px - bindsym Down resize grow height 10px - bindsym Up resize shrink height 10px - bindsym Right resize grow width 10px - - # Return to default mode - bindsym Return mode "default" - bindsym Escape mode "default" -} -bindsym $mod+r mode "resize" - -# Assignment of apps -bindsym $mod+Shift+f exec firefox -bindsym $mod+Shift+s exec steam -assign [class="firefox"] $ws2 -assign [class="slack"] $ws3 -assign [class="steam"] $ws4 - - - -# Unity Assign -for_window [class="^Unity$" title="^Starting Unity...$"] floating enabled -for_window [class="^Unity$" title="^Hold On$"] floating enabled -for_window [class="^Unity$" title="^Preparing Package$"] floating enabled -for_window [class="^Unity$" title="^Importing Package$"] floating enabled - -# opacity terminals -# for_window [app_id="Alacritty"] opacity 75% - -# https://github.com/ValveSoftware/steam-for-linux/issues/1040 -for_window [class="^Steam$" title="^Friends$"] floating enabled -for_window [class="^Steam$" title="Steam - News"] floating enabled -for_window [class="^Steam$" title=".* - Chat"] floating enabled -for_window [class="^Steam$" title="^Settings$"] floating enabled -for_window [class="^Steam$" title=".* - event started"] floating enabled -for_window [class="^Steam$" title=".* CD key"] floating enabled -for_window [class="^Steam$" title="^Steam - Self Updater$"] floating enabled -for_window [class="^Steam$" title="^Screenshot Uploader$"] floating enabled -for_window [class="^Steam$" title="^Steam Guard - Computer Authorization Required$"] floating enabled -for_window [class="^Steam$" title="^Friends$"] floating enabled -for_window [title="^Steam Keyboard$"] floating enabled - -include @sysconfdir@/sway/config.d/* diff --git a/linux/arch/.config/waybar/modules/cpu-graph.sh b/linux/arch/.config/waybar/modules/cpu-graph.sh deleted file mode 100755 index f097ff1..0000000 --- a/linux/arch/.config/waybar/modules/cpu-graph.sh +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/bash - -# Get CPU usage history and create a sparkline graph -# Uses Unicode block characters to show CPU history - -HISTORY_FILE="/tmp/waybar-cpu-history" -MAX_POINTS=8 - -# Get current CPU usage -current=$(top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1}') -current_int=$(printf "%.0f" "$current") - -# Read history -if [ -f "$HISTORY_FILE" ]; then - history=$(cat "$HISTORY_FILE") -else - history="" -fi - -# Add current to history -history="$history $current_int" - -# Keep only last MAX_POINTS -history=$(echo $history | awk -v max=$MAX_POINTS '{n=NF-max+1; if(n<1) n=1; for(i=n; i<=NF; i++) printf "%s ", $i}') - -# Save history -echo "$history" > "$HISTORY_FILE" - -# Create sparkline using block characters -blocks=("▁" "▂" "▃" "▄" "▅" "▆" "▇" "█") -graph="" - -for val in $history; do - # Scale value (0-100) to block index (0-7) - idx=$((val * 7 / 100)) - if [ $idx -gt 7 ]; then idx=7; fi - if [ $idx -lt 0 ]; then idx=0; fi - graph="${graph}${blocks[$idx]}" -done - -# Output JSON -echo "{\"text\":\"$graph ${current_int}%\", \"percentage\":$current_int, \"tooltip\":\"CPU: ${current_int}%\"}" diff --git a/linux/arch/.config/waybar/modules/docker-k8s.py b/linux/arch/.config/waybar/modules/docker-k8s.py deleted file mode 100644 index efa6ff5..0000000 --- a/linux/arch/.config/waybar/modules/docker-k8s.py +++ /dev/null @@ -1,100 +0,0 @@ -#!/usr/bin/env python3 - -import json -import subprocess - -def run_command(cmd): - """Run a shell command and return output""" - try: - result = subprocess.run(cmd, shell=True, capture_output=True, text=True, timeout=5) - return result.stdout.strip() - except: - return "" - -def get_docker_info(): - """Get Docker container information""" - running = run_command("docker ps -q 2>/dev/null | wc -l") - total = run_command("docker ps -aq 2>/dev/null | wc -l") - - try: - running = int(running) if running else 0 - total = int(total) if total else 0 - except: - running, total = 0, 0 - - return {"running": running, "total": total} - -def get_k8s_info(): - """Get Kubernetes context and pod information""" - context = run_command("kubectl config current-context 2>/dev/null") - - if not context: - return None - - # Get pod counts by status - pods_running = run_command("kubectl get pods --all-namespaces --field-selector=status.phase=Running 2>/dev/null | tail -n +2 | wc -l") - pods_pending = run_command("kubectl get pods --all-namespaces --field-selector=status.phase=Pending 2>/dev/null | tail -n +2 | wc -l") - pods_failed = run_command("kubectl get pods --all-namespaces --field-selector=status.phase=Failed 2>/dev/null | tail -n +2 | wc -l") - - try: - running = int(pods_running) if pods_running else 0 - pending = int(pods_pending) if pods_pending else 0 - failed = int(pods_failed) if pods_failed else 0 - except: - running, pending, failed = 0, 0, 0 - - return { - "context": context, - "pods_running": running, - "pods_pending": pending, - "pods_failed": failed, - "pods_total": running + pending + failed - } - -def main(): - docker_info = get_docker_info() - k8s_info = get_k8s_info() - - # Build display text - if k8s_info: - # Shorten context if too long - context = k8s_info['context'] - short_context = f"{context[:12]}..." if len(context) > 15 else context - - text = f"🐳 {docker_info['running']} ☸ {k8s_info['pods_running']} ({short_context})" - else: - text = f"🐳 {docker_info['running']}" - - # Build tooltip - tooltip_lines = [] - tooltip_lines.append(f"Docker: {docker_info['running']}/{docker_info['total']} running") - - if k8s_info: - tooltip_lines.append(f"Context: {k8s_info['context']}") - tooltip_lines.append(f"Pods Running: {k8s_info['pods_running']}") - if k8s_info['pods_pending'] > 0: - tooltip_lines.append(f"Pods Pending: {k8s_info['pods_pending']}") - if k8s_info['pods_failed'] > 0: - tooltip_lines.append(f"Pods Failed: {k8s_info['pods_failed']}") - else: - tooltip_lines.append("Kubernetes: No context") - - tooltip = "\n".join(tooltip_lines) - - # Add CSS class if there are issues - css_class = "" - if k8s_info and k8s_info['pods_failed'] > 0: - css_class = "critical" - elif k8s_info and k8s_info['pods_pending'] > 0: - css_class = "warning" - - output = { - "text": text, - "tooltip": tooltip, - "class": css_class - } - - print(json.dumps(output)) - -if __name__ == "__main__": - main() diff --git a/linux/arch/.config/waybar/modules/spotify.sh b/linux/arch/.config/waybar/modules/spotify.sh index 2ae9dc8..3da3be4 100755 --- a/linux/arch/.config/waybar/modules/spotify.sh +++ b/linux/arch/.config/waybar/modules/spotify.sh @@ -1,18 +1,18 @@ -#!/bin/sh +#!/bin/bash -class=$(playerctl metadata --player=spotify --format '{{lc(status)}}') -icon="" +class=$(playerctl metadata --player=spotify --format '{{lc(status)}}' 2>/dev/null) +icon="" if [[ $class == "playing" ]]; then info=$(playerctl metadata --player=spotify --format '{{artist}} - {{title}}') - if [[ ${#info} > 40 ]]; then - info=$(echo $info | cut -c1-40)"..." + if [[ ${#info} -gt 40 ]]; then + info=$(echo "$info" | cut -c1-40)"..." fi text=$info elif [[ $class == "paused" ]]; then - text=$icon "paused" + text="$icon paused" elif [[ $class == "stopped" ]]; then - text=$icon "stopped" + text="$icon stopped" fi echo -e "{\"text\":\""$text"\", \"class\":\""$class"\"}" diff --git a/linux/arch/.config/waybar/modules/storage-workspace.sh b/linux/arch/.config/waybar/modules/storage-workspace.sh index 2408b73..f77c86b 100755 --- a/linux/arch/.config/waybar/modules/storage-workspace.sh +++ b/linux/arch/.config/waybar/modules/storage-workspace.sh @@ -1,17 +1,20 @@ #!/bin/sh -mount="/home/jm/workspace" +mount="$HOME/workspace" warning=80 critical=90 +# Exit quietly (module hides) when the workspace mount does not exist +[ -d "$mount" ] || exit 1 + df -h -P -l "$mount" | awk -v warning=$warning -v critical=$critical ' -/workspace.*/ { +NR==2 { text=$4 tooltip="Workspace: "$2" total, "$3" used, "$4" free ("$5")" use=$5 - exit 0 } END { + if (use == "") { exit 1 } class="" gsub(/%$/,"",use) if (use > critical) { diff --git a/linux/arch/README.md b/linux/arch/README.md index 40b102d..e4683c3 100644 --- a/linux/arch/README.md +++ b/linux/arch/README.md @@ -57,8 +57,11 @@ This directory contains configuration files for my Arch Linux desktop setup. 1. **Prerequisites**: ```bash - sudo pacman -S swayfx waybar kitty rofi mako \ - firefox slack-desktop spotify-launcher steam + sudo pacman -S waybar kitty rofi mako grim slurp \ + firefox spotify-launcher steam + + # AUR (pacman cannot install these; use an AUR helper) + paru -S swayfx slack-desktop nordic-theme ``` 2. **Install configs** (from the dotfiles root - configs are copied, never @@ -75,7 +78,8 @@ This directory contains configuration files for my Arch Linux desktop setup. 4. **(Optional) auto-refresh the AI machine-state snapshot on package changes** (the installer deliberately does not enable this; it writes into the repo): ```bash - sed "s|__DOTFILES_DIR__|$PWD|" linux/arch/hooks/90-refresh-ai-context.hook \ + sed -e "s|__DOTFILES_DIR__|$PWD|" -e "s|__DOTFILES_USER__|$USER|" \ + linux/arch/hooks/90-refresh-ai-context.hook \ | sudo tee /etc/pacman.d/hooks/90-refresh-ai-context.hook ``` diff --git a/linux/arch/hooks/90-refresh-ai-context.hook b/linux/arch/hooks/90-refresh-ai-context.hook index 1b0fea1..77f4480 100644 --- a/linux/arch/hooks/90-refresh-ai-context.hook +++ b/linux/arch/hooks/90-refresh-ai-context.hook @@ -8,4 +8,4 @@ Target = * [Action] Description = Refreshing AI context machine state... When = PostTransaction -Exec = __DOTFILES_DIR__/scripts/refresh-machine-state.sh +Exec = /usr/bin/runuser -u __DOTFILES_USER__ -- __DOTFILES_DIR__/scripts/refresh-machine-state.sh diff --git a/linux/arch/packages.list b/linux/arch/packages.list index 546ac77..08a3b72 100644 --- a/linux/arch/packages.list +++ b/linux/arch/packages.list @@ -22,9 +22,12 @@ waybar ttf-firacode-nerd rofi mako +grim +slurp cliphist playerctl make +neovim nodejs npm python @@ -49,3 +52,4 @@ yq # AUR (install with an AUR helper, e.g. paru -S; pacman cannot install these) # swayfx +# nordic-theme (GTK theme referenced by gtk settings.ini) diff --git a/linux/debian/packages.list b/linux/debian/packages.list index 40fabbd..369a0ef 100644 --- a/linux/debian/packages.list +++ b/linux/debian/packages.list @@ -23,5 +23,6 @@ ripgrep tmux tree vim +neovim wget zsh \ No newline at end of file diff --git a/linux/fedora/packages.list b/linux/fedora/packages.list index 5974d5c..5fc5640 100644 --- a/linux/fedora/packages.list +++ b/linux/fedora/packages.list @@ -25,6 +25,7 @@ cargo tmux tree vim +neovim wget zsh # Modern alternatives diff --git a/scripts/minimal-bashrc.sh b/scripts/minimal-bashrc.sh index 91cfa03..e727c30 100755 --- a/scripts/minimal-bashrc.sh +++ b/scripts/minimal-bashrc.sh @@ -18,4 +18,11 @@ curl -sSL https://raw.githubusercontent.com/woud420/dotfiles/master/common/git/. # Download git commit template curl -sSL https://raw.githubusercontent.com/woud420/dotfiles/master/common/git/commit-template.md -o ~/.config/git/commit-template.md +# Download git hooks (the gitconfig sets core.hooksPath, so they must exist +# or git stops running ANY hooks, including repo-local ones like husky) +mkdir -p ~/.config/git/hooks +curl -sSL https://raw.githubusercontent.com/woud420/dotfiles/master/common/git/hooks/pre-commit -o ~/.config/git/hooks/pre-commit +curl -sSL https://raw.githubusercontent.com/woud420/dotfiles/master/common/git/hooks/pre-push -o ~/.config/git/hooks/pre-push +chmod +x ~/.config/git/hooks/pre-commit ~/.config/git/hooks/pre-push + echo "✅ Minimal configs installed! Run: source ~/.bashrc" diff --git a/scripts/quick-install.sh b/scripts/quick-install.sh index 01de94f..6ef2187 100755 --- a/scripts/quick-install.sh +++ b/scripts/quick-install.sh @@ -21,10 +21,13 @@ fi cd "$DOTFILES_DIR" -# Detect if we're in a container or minimal environment +# Detect if we're in a container, SSH session, or minimal environment if [ -f /.dockerenv ] || [ -n "$CONTAINER" ]; then echo "Container environment detected, using minimal setup..." MINIMAL=1 +elif [ -n "$SSH_CONNECTION" ] || [ -n "$SSH_CLIENT" ]; then + echo "Remote SSH session detected, using server configs..." + MINIMAL=1 else MINIMAL=0 fi @@ -47,6 +50,16 @@ mkdir -p "$HOME/.config/git" cp -f "$DOTFILES_DIR/common/git/.gitignore_global" "$HOME/.config/git/ignore" cp -f "$DOTFILES_DIR/common/git/commit-template.md" "$HOME/.config/git/commit-template.md" +# Git hooks: the gitconfig above sets core.hooksPath, so the hooks must exist +# or git stops running ANY hooks (including repo-local ones like husky) +mkdir -p "$HOME/.config/git/hooks" +for hook in "$DOTFILES_DIR/common/git/hooks/"*; do + base="$(basename "$hook")" + [ -f "$hook" ] && [ "$base" != "README.md" ] || continue + cp -f "$hook" "$HOME/.config/git/hooks/$base" + chmod +x "$HOME/.config/git/hooks/$base" +done + # GNU aliases (copy to avoid symlink on targets) cp -f "$DOTFILES_DIR/common/shell/.gnu_aliases" "$HOME/.gnu_aliases" diff --git a/scripts/refresh-machine-state.sh b/scripts/refresh-machine-state.sh index 0973c09..b087d7d 100755 --- a/scripts/refresh-machine-state.sh +++ b/scripts/refresh-machine-state.sh @@ -63,9 +63,13 @@ mkdir -p "$(dirname "$OUTPUT_FILE")" # Helper: get version if command exists version_of() { local cmd="$1" - local flag="${2:---version}" + shift if command -v "$cmd" &>/dev/null; then - "$cmd" $flag 2>/dev/null | head -n1 + if [[ $# -gt 0 ]]; then + "$cmd" "$@" 2>/dev/null | head -n1 + else + "$cmd" --version 2>/dev/null | head -n1 + fi else echo "not installed" fi diff --git a/scripts/ssh-copy-dotfiles.sh b/scripts/ssh-copy-dotfiles.sh index 10ccda1..9e7d07a 100755 --- a/scripts/ssh-copy-dotfiles.sh +++ b/scripts/ssh-copy-dotfiles.sh @@ -13,7 +13,7 @@ DOTFILES_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" echo "Copying dotfiles to $HOST..." # Create directories -ssh "$HOST" 'mkdir -p ~/.config/shell-functions ~/.config/git' +ssh "$HOST" 'mkdir -p ~/.config/shell-functions ~/.config/git ~/.config/git/hooks' # Copy essential files scp "$DOTFILES_DIR/common/shell/.bashrc.server" "$HOST:~/.bashrc" @@ -24,5 +24,9 @@ scp "$DOTFILES_DIR/common/git/.gitignore_global" "$HOST:~/.config/git/ignore" scp "$DOTFILES_DIR/common/git/commit-template.md" "$HOST:~/.config/git/commit-template.md" scp "$DOTFILES_DIR/common/shell-functions/"*.sh "$HOST:~/.config/shell-functions/" +# Git hooks (the copied gitconfig sets core.hooksPath, so they must exist) +scp "$DOTFILES_DIR/common/git/hooks/pre-commit" "$DOTFILES_DIR/common/git/hooks/pre-push" "$HOST:~/.config/git/hooks/" +ssh "$HOST" 'chmod +x ~/.config/git/hooks/pre-commit ~/.config/git/hooks/pre-push' + echo "✅ Dotfiles copied to $HOST" echo "Run 'source ~/.bashrc' on the remote host" diff --git a/scripts/test-install.sh b/scripts/test-install.sh index 72b5e25..7f09bb9 100755 --- a/scripts/test-install.sh +++ b/scripts/test-install.sh @@ -71,7 +71,8 @@ grep -q $'\tcopy\t' "$AUDIT_LOG" || fail "audit log has no copy action" ! grep -q $'\tlink\t' "$AUDIT_LOG" || fail "audit log must not contain link actions" grep -q "$ROOT_DIR/common/nvim/init.vim" "$AUDIT_LOG" || fail "audit log does not include neovim init" -grep -q '^vim -e -N -u .*PlugInstall --sync.*qa!$' "$STUB_LOG" || fail "vim plugin install was not invoked" +# vim step defers to nvim when nvim exists (stubbed here), so no vim invocation +! grep -q '^vim ' "$STUB_LOG" || fail "vim should not be invoked when nvim is present" grep -q '^nvim --headless +PlugInstall +qall$' "$STUB_LOG" || fail "nvim plugin install was not invoked" printf 'Installer test passed.\n'