diff --git a/ROADMAP.md b/ROADMAP.md new file mode 100644 index 0000000..ade017c --- /dev/null +++ b/ROADMAP.md @@ -0,0 +1,238 @@ +# Dotfiles Cleanup & Modernization Roadmap + +This document outlines the target architecture, 3-layer modular structure, and phase-by-phase cleanup tasks to improve the **organization**, **simplicity**, **security**, and **maintainability** of this dotfiles repository across multiple operating systems and specific host machines. + +--- + +## ๐ŸŽฏ Target Directory Structure (Layered Architecture) + +The repository uses a **3-Layer Inheritance Pattern (Common $\rightarrow$ OS $\rightarrow$ Host)**: +1. **`common/`**: Universal dotfiles shared across all operating systems and machines. +2. **`os/`**: Platform-specific defaults, package bases, and bootstrap scripts (Windows, macOS, Linux). +3. **`hosts/`**: Machine-specific configurations, environment paths, hardware overrides, and supplemental package lists (e.g., `CONAN`, `LAST`, `spidey-raspi5`). + +```text +dotfiles/ +โ”œโ”€โ”€ .gitignore +โ”œโ”€โ”€ LICENSE +โ”œโ”€โ”€ README.md +โ”œโ”€โ”€ ROADMAP.md +โ”‚ +โ”œโ”€โ”€ common/ # Layer 1: Universal configs (All OS & Hosts) +โ”‚ โ”œโ”€โ”€ .gitconfig # Base gitconfig (aliases, colors, delta, defaults) +โ”‚ โ”œโ”€โ”€ .ideavimrc # Shared IdeaVim keymaps +โ”‚ โ”œโ”€โ”€ .tmux.conf # Shared Tmux configuration (TPM + theme) +โ”‚ โ”œโ”€โ”€ nvim/ # Unified Neovim configuration (NvChad v2.5) +โ”‚ โ”‚ โ”œโ”€โ”€ init.lua +โ”‚ โ”‚ โ””โ”€โ”€ lua/ +โ”‚ โ”œโ”€โ”€ shell/ # Shared shell definitions +โ”‚ โ”‚ โ”œโ”€โ”€ aliases.sh # Cross-platform aliases (gs, nv, dcp, lsd, etc.) +โ”‚ โ”‚ โ””โ”€โ”€ p10k.zsh # Powerlevel10k prompt theme +โ”‚ โ””โ”€โ”€ browser-plugins/ # Browser extension settings & uBlock filters +โ”‚ โ”œโ”€โ”€ ublock-filters.txt +โ”‚ โ””โ”€โ”€ vimium-options.json +โ”‚ +โ”œโ”€โ”€ os/ # Layer 2: OS-level defaults & tooling +โ”‚ โ”œโ”€โ”€ windows/ +โ”‚ โ”‚ โ”œโ”€โ”€ Microsoft.PowerShell_profile.ps1 # Base Windows profile (loads common + host) +โ”‚ โ”‚ โ”œโ”€โ”€ terminal-settings.json # Default terminal settings (Nord + Catppuccin) +โ”‚ โ”‚ โ”œโ”€โ”€ packages-base.config # Core Windows packages (Git, Neovim, Terminal, 7zip) +โ”‚ โ”‚ โ”œโ”€โ”€ backup-windows.ps1 # Automated backup utility +โ”‚ โ”‚ โ””โ”€โ”€ scripts/ # Windows debloat / utility scripts +โ”‚ โ”œโ”€โ”€ macos/ +โ”‚ โ”‚ โ”œโ”€โ”€ .zshrc # Base macOS zshrc (loads common + host) +โ”‚ โ”‚ โ”œโ”€โ”€ Brewfile.base # Core macOS CLI tools & casks +โ”‚ โ”‚ โ”œโ”€โ”€ backup-mac.sh +โ”‚ โ”‚ โ”œโ”€โ”€ setup-mac.sh +โ”‚ โ”‚ โ””โ”€โ”€ iterm/ # iTerm2 themes & settings +โ”‚ โ””โ”€โ”€ linux/ +โ”‚ โ”œโ”€โ”€ .zshrc # Base Linux zshrc +โ”‚ โ”œโ”€โ”€ backup-linux.sh +โ”‚ โ””โ”€โ”€ setup-linux.sh # Unified Linux bootstrap script +โ”‚ +โ”œโ”€โ”€ hosts/ # Layer 3: Host-specific overrides & extra packages +โ”‚ โ”‚ +โ”‚ โ”œโ”€โ”€ CONAN/ # Host: CONAN (Windows workstation / WSL) +โ”‚ โ”‚ โ”œโ”€โ”€ packages.config # CONAN-specific packages (Visual Studio, CUDA, gradle) +โ”‚ โ”‚ โ”œโ”€โ”€ host-profile.ps1 # CONAN Windows PowerShell environment +โ”‚ โ”‚ โ”œโ”€โ”€ zshrc.zsh # CONAN WSL/Linux Zsh environment (Ruby paths, etc.) +โ”‚ โ”‚ โ””โ”€โ”€ terminal-settings.json # CONAN-specific theme override (Catppuccin Mocha) +โ”‚ โ”‚ +โ”‚ โ”œโ”€โ”€ LAST/ # Host: LAST (Windows portable / dev machine) +โ”‚ โ”‚ โ”œโ”€โ”€ packages.config # LAST-specific packages (fnm, tinytex, zeal) +โ”‚ โ”‚ โ”œโ”€โ”€ host-profile.ps1 # LAST Windows PowerShell environment +โ”‚ โ”‚ โ””โ”€โ”€ zshrc.zsh # LAST WSL/Linux Zsh environment (fnm, local paths) +โ”‚ โ”‚ +โ”‚ โ”œโ”€โ”€ dev-00/ # Host: dev-00 (Linux development server) +โ”‚ โ”‚ โ”œโ”€โ”€ zshrc.zsh # dev-00 Zsh overrides (kubectl plugin, opencode PATH) +โ”‚ โ”‚ โ””โ”€โ”€ packages.txt # dev-00 supplemental packages +โ”‚ โ”‚ +โ”‚ โ”œโ”€โ”€ spidey-raspi5/ # Host: Raspberry Pi 5 +โ”‚ โ”‚ โ”œโ”€โ”€ setup.sh # Headless server provisioning +โ”‚ โ”‚ โ”œโ”€โ”€ zshrc.zsh # Pi Zsh overrides +โ”‚ โ”‚ โ””โ”€โ”€ podman/ # Podman container configs +โ”‚ โ”‚ +โ”‚ โ””โ”€โ”€ nixos/ # Host: NixOS machine +โ”‚ โ”œโ”€โ”€ flake.nix +โ”‚ โ”œโ”€โ”€ configuration.nix +โ”‚ โ””โ”€โ”€ home.nix +โ”‚ +โ”œโ”€โ”€ backups/ # Historical host backups (temporary reference) +โ”‚ โ”œโ”€โ”€ CONAN/ +โ”‚ โ””โ”€โ”€ LAST/ +โ”‚ +โ””โ”€โ”€ scripts/ # Repository maintenance & installation utilities + โ”œโ”€โ”€ install-symlinks.sh # Linux/macOS symlinker (or GNU Stow wrapper) + โ”œโ”€โ”€ Install-Symlinks.ps1 # Windows symlinker + โ””โ”€โ”€ functions.sh +``` + +--- + +## ๐Ÿงฉ How Multi-Host Composition Works + +### 1. PowerShell Profile Composition (Windows) +The base profile (`os/windows/Microsoft.PowerShell_profile.ps1`) establishes common utilities, then dynamically sources the host-specific file if present: + +```powershell +# 1. Load universal aliases +$commonAliases = "$PSScriptRoot\..\..\common\shell\aliases.ps1" +if (Test-Path $commonAliases) { . $commonAliases } + +# 2. Base functions & tab completion (Watch-Command, git-aliases, choco completion) +# ... + +# 3. Dynamically source host profile +$hostProfile = "$PSScriptRoot\..\..\hosts\$env:COMPUTERNAME\host-profile.ps1" +if (Test-Path $hostProfile) { + Write-Host "[INFO] Sourcing host profile: $hostProfile" -ForegroundColor Cyan + . $hostProfile +} +``` + +### 2. Zsh Shell Composition (macOS & Linux / WSL) +The base Zsh configuration (`os/linux/.zshrc` and `os/macos/.zshrc`) loads shared aliases, base plugins, and prompt themes, then dynamically sources host-specific additions and extra plugins: + +```zsh +# 1. Universal aliases & themes +[[ -f "$DOTFILES_DIR/common/shell/aliases.sh" ]] && source "$DOTFILES_DIR/common/shell/aliases.sh" +[[ -f "$DOTFILES_DIR/common/shell/p10k.zsh" ]] && source "$DOTFILES_DIR/common/shell/p10k.zsh" + +# 2. Base plugins (git, zsh-autosuggestions, fzf) +plugins=(git zsh-autosuggestions fzf $ZSH_PLUGINS_EXTRA) + +# 3. Host-specific Zsh overrides & additions (e.g. hosts/CONAN/zshrc.zsh, hosts/dev-00/zshrc.zsh) +HOST_ZSH="$DOTFILES_DIR/hosts/$(hostname)/zshrc.zsh" +if [[ -f "$HOST_ZSH" ]]; then + source "$HOST_ZSH" +fi + +# 4. Optional uncommitted local machine overrides +[[ -f "$HOME/.zshrc.local" ]] && source "$HOME/.zshrc.local" +``` + +**What can `hosts//zshrc.zsh` provide?** +* **Host-specific plugins:** e.g. `ZSH_PLUGINS_EXTRA=(kubectl helm docker)` on development servers. +* **Host-specific paths & env vars:** e.g. CUDA paths, Ruby gem directories, Opencode paths (`$HOME/.opencode/bin`), or AI infra variables (`PAI_DIR`, `DA`, `TIME_ZONE`). +* **Hardware/Network commands:** Specific display outputs (`xrandr`), proxy exports, or AWS profiles (`actx`). + +### 3. Package Management Composition +* **Base Layer:** `os/windows/packages-base.config` installs core essentials (`git`, `neovim`, `microsoft-windows-terminal`, `hack-nerd-font`). +* **Host Layer:** The installation script automatically checks `hosts/$env:COMPUTERNAME/packages.config` (Windows) or `hosts/$(hostname)/packages.txt` (Linux/macOS) and installs supplemental tools (e.g. `visualstudio2022buildtools` on CONAN, `tinytex` on LAST). + +### 4. Git Identity & Platform Includes +`common/.gitconfig` defines shared aliases, colors, and delta pager settings, finishing with an include directive: + +```ini +[include] + path = ~/.gitconfig.local +``` + +Machine-specific emails, GPG signing keys, or work identities live in `~/.gitconfig.local` without modifying tracked repository files. + +--- + +## ๐Ÿ“‹ Cleanup & Migration Action Items + +### Phase 1: Security & Privacy Hardening ๐Ÿšจ + +- [ ] **Fix Insecure Git Credential Storage** + - Replace `helper = store` in base and OS `.gitconfig` files with OS-native credential helpers: + - macOS: `helper = osxkeychain` + - Windows: `helper = manager` (Git Credential Manager) + - Linux: `helper = libsecret` (or `cache --timeout=3600`) +- [ ] **Sanitize Internal Enterprise / Work Tokens in `.npmrc`** + - Remove work-specific internal URLs (`gitlab.create.army.mil`) and auth tokens (`NPM_ASVE_READ_ONLY_TOKEN`) from `mac/.npmrc`. + - Move enterprise registries to a private work config or machine-local `.npmrc`. +- [ ] **Protect Private SSH Hosts & Keys** + - Remove committed hostnames (`mcso-aos`, `atyourservice.benhunter.me`) and key filenames (`LightsailDefaultKey-us-east-2.pem`) from `endeavouros-i3/.ssh/config`. + - Migrate private host entries to an uncommitted `~/.ssh/config.local` with `Include ~/.ssh/config.local` in the template. +- [ ] **Guard Secrets Sourcing** + - Add existence checks before sourcing secrets in shell configurations: + ```zsh + [[ -f "$HOME/.secrets.zshrc" ]] && source "$HOME/.secrets.zshrc" + ``` + +--- + +### Phase 2: Dead Files & Redundancy Elimination ๐Ÿงน + +- [ ] **Remove Binary Blobs in `mac/bin/`** + - Remove `mac/bin/bfg-1.14.0.jar` and `mac/bin/bfg.jar` (~27MB total). + - Update `mac/.zshrc` to use `brew install bfg` or download BFG on-demand. +- [ ] **Remove Outdated Snapshots & Inactive Directories** + - [ ] Delete `mac/old/` (`mac/old/.config/nvim/init.vim`). + - [ ] Delete legacy Vimscript config at root: `.config/nvim/init.vim` and `neovim-install.sh`. + - [ ] Delete dated WSL install snapshot: `wsl/2022-08-07-install.sh`. + - [ ] Delete `.tmux.conf.old` (superseded by modern `.tmux.conf`). +- [ ] **Clean Up Corrupted / Placeholder Files** + - [ ] Remove `mac/.ideavimrc` (10-byte placeholder; root `.ideavimrc` is canonical). +- [ ] **Consolidate Package Lists & Remove Bloated Package Dumps** + - [ ] Remove `endeavouros-i3/pacman/pacman-q-all-installed-packages.txt` (keep explicit list `pacman-packages.txt`). + - [ ] Remove duplicate `Windows/choco/` directory once reconciled with `hosts/` and `Windows/install-choco-packages.ps1`. +- [ ] **Evaluate Host-Specific & Reference Files** + - [ ] Review `ubuntu/.zshrc.conan`, `ubuntu/.zshrc.dev-00`, `ubuntu/.zshrc.last` and migrate unique settings to `hosts//`. + - [ ] Remove `kali-live/.zshrc.default` if stock reference is no longer needed. + - [ ] Review `.tmux.conf.nested` (integrate F12 prefix toggle into main `.tmux.conf` or remove). + +--- + +### Phase 3: Syntax & Shell Bug Fixes ๐Ÿ› + +- [ ] **Fix Lua Syntax Error in Ubuntu Neovim Init** + - Change `# TODO update to use my nvchat-config` to `-- TODO ...` in `ubuntu/.config/nvim/init.lua`. +- [ ] **Fix Pager Typo in Ubuntu Zshrc** + - Change `export PAGER=$(which moor)` to `export PAGER=$(which moar)` in `ubuntu/.zshrc`. +- [ ] **Quote Variables in Scripts** + - Quote `"$SCRIPT_DIR"` in `scripts/functions.sh` to handle paths with spaces safely. + +--- + +### Phase 4: Performance & Path Standardization โšก + +- [ ] **Eliminate Shell Startup Lag in `mac/.zshrc`** + - Replace synchronous subshell `$(brew --prefix)` for Google Cloud SDK with static path check or precomputed `HOMEBREW_PREFIX`. + - Replace `. $(pack completion --shell zsh)` with pre-generated completions in `fpath`. + - Reduce `HISTSIZE=1000000000` to a reasonable in-memory size (e.g. `50000`). +- [ ] **Remove Hardcoded Usernames & Machine Paths** + - Replace `/Users/b2186555/...` in `mac/.zshrc` with `$HOME` variables. + - Replace `/home/ben/...` in `ubuntu/.zshrc` with `$HOME` / `~`. + - Replace hardcoded Kubo path (`C:\Program Files\kubo_v0.24.0\kubo`) with dynamic PATH in CONAN host profile or package manager shim. + +--- + +### Phase 5: Modularization & Architecture Unification ๐Ÿ—๏ธ + +- [ ] **Establish `common/`, `os/`, and `hosts/` Directories** + - Populate `common/` with canonical `.gitconfig`, `.ideavimrc`, `.tmux.conf`, and `nvim/`. + - Populate `hosts/CONAN/` and `hosts/LAST/` with their respective packages and profile overrides. +- [ ] **Unify Neovim Configurations** + - Standardize on a single canonical NvChad v2.5 configuration under `common/nvim/`. + - Configure conditional handling for VSCode Neovim vs standalone terminal Neovim in a single config. +- [ ] **Modularize Git Configuration with `[include]`** + - Place shared aliases, colors, delta pager settings, and default branch in `common/.gitconfig`. + - Use `[include]` / `[includeIf]` for platform-specific and work-specific overrides. +- [ ] **Consolidate Distro Setup Scripts** + - Merge overlapping setup scripts (`setup-ubuntu.sh`, `bootstrap-ubuntu.sh`, `setup-xubuntu.sh`, `setup-wsl-ubuntu.sh`) into a streamlined `os/linux/setup-linux.sh`. +- [ ] **Implement Symlink Automation** + - Create `scripts/Install-Symlinks.ps1` (Windows) and `scripts/install-symlinks.sh` (POSIX) to manage symlinks automatically. diff --git a/Windows/.ideavimrc b/Windows/.ideavimrc deleted file mode 120000 index a7094d2..0000000 --- a/Windows/.ideavimrc +++ /dev/null @@ -1 +0,0 @@ -.ideavimrc \ No newline at end of file diff --git a/Windows/Terminal/old-settings.json b/Windows/Terminal/old-settings.json deleted file mode 100644 index 5204b1d..0000000 --- a/Windows/Terminal/old-settings.json +++ /dev/null @@ -1,339 +0,0 @@ -{ - "$help": "https://aka.ms/terminal-documentation", - "$schema": "https://aka.ms/terminal-profiles-schema", - "actions": [ - { - "command": "paste", - "keys": "ctrl+v" - }, - { - "command": { - "action": "copy", - "singleLine": false - }, - "keys": "ctrl+c" - }, - { - "command": "find", - "keys": "ctrl+shift+f" - }, - { - "command": { - "action": "splitPane", - "split": "auto", - "splitMode": "duplicate" - }, - "keys": "alt+shift+d" - } - ], - "copyFormatting": "none", - "copyOnSelect": false, - "defaultProfile": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}", - "newTabMenu": [ - { - "type": "remainingProfiles" - } - ], - "profiles": { - "defaults": { - "colorScheme": "Nord", - "font": { - "face": "Hack Nerd Font Mono" - } - }, - "list": [ - { - "commandline": "%SystemRoot%\\System32\\WindowsPowerShell\\v1.0\\powershell.exe", - "guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}", - "hidden": false, - "name": "Windows PowerShell" - }, - { - "guid": "{17bf3de4-5353-5709-bcf9-835bd952a95e}", - "hidden": true, - "name": "Ubuntu-22.04", - "source": "Windows.Terminal.Wsl" - }, - { - "commandline": "%SystemRoot%\\System32\\cmd.exe", - "guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}", - "hidden": false, - "name": "Command Prompt" - }, - { - "guid": "{b453ae62-4e3d-5e58-b989-0a998ec441b8}", - "hidden": false, - "name": "Azure Cloud Shell", - "source": "Windows.Terminal.Azure" - }, - { - "guid": "{79eda794-862c-521a-8f39-425d58072a1d}", - "hidden": false, - "name": "Developer Command Prompt for VS 2017", - "source": "Windows.Terminal.VisualStudio" - }, - { - "guid": "{60c3e313-8e1a-58f6-8175-3650c2bd2b26}", - "hidden": false, - "name": "Ubuntu 22.04 LTS", - "source": "CanonicalGroupLimited.Ubuntu22.04LTS_79rhkp1fndgsc" - } - ] - }, - "schemes": [ - { - "background": "#2E3440", - "black": "#3B4252", - "blue": "#81A1C1", - // "brightBlack": "#3B4252", // need to fix this for comments that are hard to read - "brightBlack": "#3B4252", - "brightBlue": "#5E81AC", - "brightCyan": "#88C0D0", - "brightGreen": "#A3BE8C", - "brightPurple": "#B48EAD", - "brightRed": "#D08770", - "brightWhite": "#E5E9F0", - "brightYellow": "#EBCB8B", - "cursorColor": "#EBCB8B", - "cyan": "#88C0D0", - "foreground": "#E5E9F0", - "green": "#8FBCBB", - "name": "Nord", - "purple": "#B48EAD", - "red": "#BF616A", - "selectionBackground": "#434C5E", - "white": "#D8DEE9", - "yellow": "#EBCB8B" - }, - { - "background": "#0C0C0C", - "black": "#0C0C0C", - "blue": "#0037DA", - "brightBlack": "#767676", - "brightBlue": "#3B78FF", - "brightCyan": "#61D6D6", - "brightGreen": "#16C60C", - "brightPurple": "#B4009E", - "brightRed": "#E74856", - "brightWhite": "#F2F2F2", - "brightYellow": "#F9F1A5", - "cursorColor": "#FFFFFF", - "cyan": "#3A96DD", - "foreground": "#CCCCCC", - "green": "#13A10E", - "name": "Campbell", - "purple": "#881798", - "red": "#C50F1F", - "selectionBackground": "#FFFFFF", - "white": "#CCCCCC", - "yellow": "#C19C00" - }, - { - "background": "#012456", - "black": "#0C0C0C", - "blue": "#0037DA", - "brightBlack": "#767676", - "brightBlue": "#3B78FF", - "brightCyan": "#61D6D6", - "brightGreen": "#16C60C", - "brightPurple": "#B4009E", - "brightRed": "#E74856", - "brightWhite": "#F2F2F2", - "brightYellow": "#F9F1A5", - "cursorColor": "#FFFFFF", - "cyan": "#3A96DD", - "foreground": "#CCCCCC", - "green": "#13A10E", - "name": "Campbell Powershell", - "purple": "#881798", - "red": "#C50F1F", - "selectionBackground": "#FFFFFF", - "white": "#CCCCCC", - "yellow": "#C19C00" - }, - { - "background": "#282C34", - "black": "#282C34", - "blue": "#61AFEF", - "brightBlack": "#5A6374", - "brightBlue": "#61AFEF", - "brightCyan": "#56B6C2", - "brightGreen": "#98C379", - "brightPurple": "#C678DD", - "brightRed": "#E06C75", - "brightWhite": "#DCDFE4", - "brightYellow": "#E5C07B", - "cursorColor": "#FFFFFF", - "cyan": "#56B6C2", - "foreground": "#DCDFE4", - "green": "#98C379", - "name": "One Half Dark", - "purple": "#C678DD", - "red": "#E06C75", - "selectionBackground": "#FFFFFF", - "white": "#DCDFE4", - "yellow": "#E5C07B" - }, - { - "background": "#FAFAFA", - "black": "#383A42", - "blue": "#0184BC", - "brightBlack": "#4F525D", - "brightBlue": "#61AFEF", - "brightCyan": "#56B5C1", - "brightGreen": "#98C379", - "brightPurple": "#C577DD", - "brightRed": "#DF6C75", - "brightWhite": "#FFFFFF", - "brightYellow": "#E4C07A", - "cursorColor": "#4F525D", - "cyan": "#0997B3", - "foreground": "#383A42", - "green": "#50A14F", - "name": "One Half Light", - "purple": "#A626A4", - "red": "#E45649", - "selectionBackground": "#FFFFFF", - "white": "#FAFAFA", - "yellow": "#C18301" - }, - { - "background": "#002B36", - "black": "#002B36", - "blue": "#268BD2", - "brightBlack": "#073642", - "brightBlue": "#839496", - "brightCyan": "#93A1A1", - "brightGreen": "#586E75", - "brightPurple": "#6C71C4", - "brightRed": "#CB4B16", - "brightWhite": "#FDF6E3", - "brightYellow": "#657B83", - "cursorColor": "#FFFFFF", - "cyan": "#2AA198", - "foreground": "#839496", - "green": "#859900", - "name": "Solarized Dark", - "purple": "#D33682", - "red": "#DC322F", - "selectionBackground": "#FFFFFF", - "white": "#EEE8D5", - "yellow": "#B58900" - }, - { - "background": "#FDF6E3", - "black": "#002B36", - "blue": "#268BD2", - "brightBlack": "#073642", - "brightBlue": "#839496", - "brightCyan": "#93A1A1", - "brightGreen": "#586E75", - "brightPurple": "#6C71C4", - "brightRed": "#CB4B16", - "brightWhite": "#FDF6E3", - "brightYellow": "#657B83", - "cursorColor": "#002B36", - "cyan": "#2AA198", - "foreground": "#657B83", - "green": "#859900", - "name": "Solarized Light", - "purple": "#D33682", - "red": "#DC322F", - "selectionBackground": "#FFFFFF", - "white": "#EEE8D5", - "yellow": "#B58900" - }, - { - "background": "#000000", - "black": "#000000", - "blue": "#3465A4", - "brightBlack": "#555753", - "brightBlue": "#729FCF", - "brightCyan": "#34E2E2", - "brightGreen": "#8AE234", - "brightPurple": "#AD7FA8", - "brightRed": "#EF2929", - "brightWhite": "#EEEEEC", - "brightYellow": "#FCE94F", - "cursorColor": "#FFFFFF", - "cyan": "#06989A", - "foreground": "#D3D7CF", - "green": "#4E9A06", - "name": "Tango Dark", - "purple": "#75507B", - "red": "#CC0000", - "selectionBackground": "#FFFFFF", - "white": "#D3D7CF", - "yellow": "#C4A000" - }, - { - "background": "#FFFFFF", - "black": "#000000", - "blue": "#3465A4", - "brightBlack": "#555753", - "brightBlue": "#729FCF", - "brightCyan": "#34E2E2", - "brightGreen": "#8AE234", - "brightPurple": "#AD7FA8", - "brightRed": "#EF2929", - "brightWhite": "#EEEEEC", - "brightYellow": "#FCE94F", - "cursorColor": "#000000", - "cyan": "#06989A", - "foreground": "#555753", - "green": "#4E9A06", - "name": "Tango Light", - "purple": "#75507B", - "red": "#CC0000", - "selectionBackground": "#FFFFFF", - "white": "#D3D7CF", - "yellow": "#C4A000" - }, - { - "background": "#300A24", - "black": "#171421", - "blue": "#0037DA", - "brightBlack": "#767676", - "brightBlue": "#08458F", - "brightCyan": "#2C9FB3", - "brightGreen": "#26A269", - "brightPurple": "#A347BA", - "brightRed": "#C01C28", - "brightWhite": "#F2F2F2", - "brightYellow": "#A2734C", - "cursorColor": "#FFFFFF", - "cyan": "#3A96DD", - "foreground": "#FFFFFF", - "green": "#26A269", - "name": "Ubuntu-22.04-ColorScheme", - "purple": "#881798", - "red": "#C21A23", - "selectionBackground": "#FFFFFF", - "white": "#CCCCCC", - "yellow": "#A2734C" - }, - { - "background": "#000000", - "black": "#000000", - "blue": "#000080", - "brightBlack": "#808080", - "brightBlue": "#0000FF", - "brightCyan": "#00FFFF", - "brightGreen": "#00FF00", - "brightPurple": "#FF00FF", - "brightRed": "#FF0000", - "brightWhite": "#FFFFFF", - "brightYellow": "#FFFF00", - "cursorColor": "#FFFFFF", - "cyan": "#008080", - "foreground": "#C0C0C0", - "green": "#008000", - "name": "Vintage", - "purple": "#800080", - "red": "#800000", - "selectionBackground": "#FFFFFF", - "white": "#C0C0C0", - "yellow": "#808000" - } - ] -} \ No newline at end of file diff --git a/Windows/Terminal/settings.json b/Windows/Terminal/settings.json index e31e58e..6ba9c39 100644 --- a/Windows/Terminal/settings.json +++ b/Windows/Terminal/settings.json @@ -209,8 +209,55 @@ "selectionBackground": "#434C5E", "white": "#D8DEE9", "yellow": "#EBCB8B" + }, + { + "background": "#1E1E2E", + "black": "#45475A", + "blue": "#89B4FA", + "brightBlack": "#585B70", + "brightBlue": "#89B4FA", + "brightCyan": "#94E2D5", + "brightGreen": "#A6E3A1", + "brightPurple": "#F5C2E7", + "brightRed": "#F38BA8", + "brightWhite": "#A6ADC8", + "brightYellow": "#F9E2AF", + "cursorColor": "#F5E0DC", + "cyan": "#94E2D5", + "foreground": "#CDD6F4", + "green": "#A6E3A1", + "name": "Catppuccin Mocha", + "purple": "#F5C2E7", + "red": "#F38BA8", + "selectionBackground": "#585B70", + "white": "#BAC2DE", + "yellow": "#F9E2AF" } ], + // Active theme is Nord / system. To use Catppuccin Mocha, set "theme": "Catppuccin Mocha" "theme": "system", - "themes": [] + "themes": + [ + // Catppuccin Mocha tab & window styling: + // { + // "name": "Catppuccin Mocha", + // "tab": { + // "background": "#1E1E2EFF", + // "iconStyle": "default", + // "showCloseButton": "always", + // "unfocusedBackground": null + // }, + // "tabRow": { + // "background": "#181825FF", + // "unfocusedBackground": "#11111BFF" + // }, + // "window": { + // "applicationTheme": "dark", + // "experimental.rainbowFrame": false, + // "frame": null, + // "unfocusedFrame": null, + // "useMica": false + // } + // } + ] } \ No newline at end of file diff --git a/Windows/Terminal/terminal-settings.json b/Windows/Terminal/terminal-settings.json deleted file mode 100644 index 6676afe..0000000 --- a/Windows/Terminal/terminal-settings.json +++ /dev/null @@ -1,215 +0,0 @@ -{ - "$help": "https://aka.ms/terminal-documentation", - "$schema": "https://aka.ms/terminal-profiles-schema", - "actions": - [ - { - "command": - { - "action": "copy", - "singleLine": false - }, - "id": "User.copy.644BA8F2" - }, - { - "command": "paste", - "id": "User.paste" - }, - { - "command": "find", - "id": "User.find" - }, - { - "command": - { - "action": "splitPane", - "split": "auto", - "splitMode": "duplicate" - }, - "id": "User.splitPane.A6751878" - } - ], - "copyFormatting": "none", - "copyOnSelect": false, - "defaultProfile": "{51855cb2-8cce-5362-8f54-464b92b32386}", - "keybindings": - [ - { - "id": "User.copy.644BA8F2", - "keys": "ctrl+c" - }, - { - "id": "User.find", - "keys": "ctrl+shift+f" - }, - { - "id": "User.paste", - "keys": "ctrl+v" - }, - { - "id": "User.splitPane.A6751878", - "keys": "alt+shift+d" - } - ], - "newTabMenu": - [ - { - "type": "remainingProfiles" - } - ], - "profiles": - { - "defaults": - { - "colorScheme": "Campbell", - "font": - { - "face": "Hack Nerd Font", - "size": 11 - } - }, - "list": - [ - { - "guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}", - "hidden": false, - "name": "Windows PowerShell" - }, - { - "colorScheme": "Catppuccin Mocha", - "font": - { - "face": "Hack Nerd Font Mono" - }, - "guid": "{2c4de342-38b7-51cf-b940-2309a097f518}", - "hidden": false, - "name": "Ubuntu", - "source": "Windows.Terminal.Wsl" - }, - { - "bellStyle": "window", - "colorScheme": "Catppuccin Mocha", - "font": - { - "face": "Hack Nerd Font Mono" - }, - "guid": "{51855cb2-8cce-5362-8f54-464b92b32386}", - "hidden": false, - "name": "Ubuntu", - "source": "CanonicalGroupLimited.Ubuntu_79rhkp1fndgsc" - }, - { - "guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}", - "hidden": false, - "name": "Command Prompt" - }, - { - "guid": "{1777cdf0-b2c4-5a63-a204-eb60f349ea7c}", - "hidden": false, - "name": "Alpine", - "source": "Windows.Terminal.Wsl" - }, - { - "guid": "{b453ae62-4e3d-5e58-b989-0a998ec441b8}", - "hidden": false, - "name": "Azure Cloud Shell", - "source": "Windows.Terminal.Azure" - }, - { - "guid": "{2ece5bfe-50ed-5f3a-ab87-5cd4baafed2b}", - "hidden": false, - "name": "Git Bash", - "source": "Git" - }, - { - "guid": "{0bbe4112-4f8f-577e-a404-cfb99845c150}", - "hidden": false, - "name": "Developer Command Prompt for VS 2017", - "source": "Windows.Terminal.VisualStudio" - }, - { - "guid": "{80b4f757-808c-5311-83ff-79bf45eeaddb}", - "hidden": false, - "name": "Developer Command Prompt for VS 2022", - "source": "Windows.Terminal.VisualStudio" - }, - { - "guid": "{50413445-9e5d-5768-ab7a-0fa47c66760d}", - "hidden": false, - "name": "Developer PowerShell for VS 2022", - "source": "Windows.Terminal.VisualStudio" - }, - { - "guid": "{090f1c7e-9587-5f4a-b01b-2a1bb2885eb9}", - "hidden": false, - "name": "Ubuntu", - "source": "Microsoft.WSL" - }, - { - "guid": "{8278f5a3-36c4-5b9f-a3c3-5dd131a76e3a}", - "hidden": false, - "name": "docker-desktop", - "source": "Microsoft.WSL" - }, - { - "guid": "{e071d3a9-684c-532f-a447-06f97d1ac5da}", - "hidden": false, - "name": "docker-desktop", - "source": "Microsoft.WSL" - } - ] - }, - "schemes": - [ - { - "background": "#1E1E2E", - "black": "#45475A", - "blue": "#89B4FA", - "brightBlack": "#585B70", - "brightBlue": "#89B4FA", - "brightCyan": "#94E2D5", - "brightGreen": "#A6E3A1", - "brightPurple": "#F5C2E7", - "brightRed": "#F38BA8", - "brightWhite": "#A6ADC8", - "brightYellow": "#F9E2AF", - "cursorColor": "#F5E0DC", - "cyan": "#94E2D5", - "foreground": "#CDD6F4", - "green": "#A6E3A1", - "name": "Catppuccin Mocha", - "purple": "#F5C2E7", - "red": "#F38BA8", - "selectionBackground": "#585B70", - "white": "#BAC2DE", - "yellow": "#F9E2AF" - } - ], - "theme": "Catppuccin Mocha", - "themes": - [ - { - "name": "Catppuccin Mocha", - "tab": - { - "background": "#1E1E2EFF", - "iconStyle": "default", - "showCloseButton": "always", - "unfocusedBackground": null - }, - "tabRow": - { - "background": "#181825FF", - "unfocusedBackground": "#11111BFF" - }, - "window": - { - "applicationTheme": "dark", - "experimental.rainbowFrame": false, - "frame": null, - "unfocusedFrame": null, - "useMica": false - } - } - ] -} \ No newline at end of file diff --git a/Windows/backup-windows.ps1 b/Windows/backup-windows.ps1 index ebf70c9..0d492e1 100644 --- a/Windows/backup-windows.ps1 +++ b/Windows/backup-windows.ps1 @@ -34,6 +34,7 @@ Write-Host "[DONE ] Backup run logged in $backupReadmePath" $chocoExportPath = Join-Path $backupDir "$env:COMPUTERNAME.packages.config" Write-Host "[STEP ] Backing up Chocolatey packages..." Write-Host "[INFO ] Target: $chocoExportPath" +# TODO: Remove or ignore *.backup files during backup runs to prevent committing duplicate .backup files choco export $chocoExportPath Write-Host "[DONE ] Chocolatey package export complete" # choco list --local-only > "$backupDir\choco-packages.txt" diff --git a/Windows/init.vim b/Windows/init.vim deleted file mode 100644 index ded37d4..0000000 --- a/Windows/init.vim +++ /dev/null @@ -1,7 +0,0 @@ -if exists('g:vscode') - " VSCode extension -else - " ordinary Neovim -endif - -set clipboard+=unnamedplus