diff --git a/README.md b/README.md index 18114ee..61413ba 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,7 @@ Personal dotfiles. Configs are organized by where they get linked: | -------------- | ------------ | --------------------------------- | | `home_root` | `~` | `.zshrc`, `.wezterm.lua`, `.nanorc` | | `home_config` | `~/.config` | `nvim`, `ohmyposh`, `zellij`, `ghostty` | +| `windows` | Windows-only | `windows-terminal/settings.json` | | `lk-installers`| n/a | helper scripts to install tooling | ## Linux / macOS (GNU stow) @@ -35,6 +36,15 @@ pwsh -File .\link-dotfiles.ps1 The repo stays the source of truth — edit files under `home_root` / `home_config` and the linked locations update live. +### Windows Terminal + +`windows/windows-terminal/settings.json` is linked into the Terminal package +folder (`...\Microsoft.WindowsTerminal_*\LocalState\settings.json`) by +`link-dotfiles.ps1`. Because it's linked, changes you make in the Terminal UI +write straight back into this repo. The settings include the **Australis** +color scheme and the **VictorMono Nerd Font Mono** profile font; install the +font (see below) so glyphs render. + ## Installers | Script | Platform | Purpose | diff --git a/link-dotfiles.ps1 b/link-dotfiles.ps1 index 0a4a843..91d7a53 100644 --- a/link-dotfiles.ps1 +++ b/link-dotfiles.ps1 @@ -102,4 +102,15 @@ Get-ChildItem -LiteralPath (Join-Path $repo 'home_config') -Force | Where-Object { $skip -notcontains $_.Name } | ForEach-Object { Link-Item $_.FullName (Join-Path $configDir $_.Name) } +# Windows Terminal lives in a package folder outside the stow tree, so link its +# settings.json explicitly. Skipped silently if Terminal isn't installed. +$wtPkg = Get-ChildItem (Join-Path $env:LOCALAPPDATA 'Packages') -Filter 'Microsoft.WindowsTerminal_*' -Directory -ErrorAction SilentlyContinue | + Select-Object -First 1 +$wtSrc = Join-Path $repo 'windows\windows-terminal\settings.json' +if ($wtPkg -and (Test-Path $wtSrc)) { + $wtDest = Join-Path $wtPkg.FullName 'LocalState\settings.json' + Write-Host "windows-terminal -> $wtDest" + Link-Item $wtSrc $wtDest +} + Write-Host "Done." -ForegroundColor Green diff --git a/windows/windows-terminal/settings.json b/windows/windows-terminal/settings.json new file mode 100644 index 0000000..9e8fe0b --- /dev/null +++ b/windows/windows-terminal/settings.json @@ -0,0 +1,143 @@ +{ + "$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": + { + "action": "splitPane", + "split": "auto", + "splitMode": "duplicate" + }, + "id": "User.splitPane.A6751878" + }, + { + "command": "find", + "id": "User.find" + } + ], + "copyFormatting": "none", + "copyOnSelect": false, + "defaultProfile": "{574e775e-4f2a-5b96-ac1e-a2962a402336}", + "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": "Australis", + "font": + { + "face": "VictorMono Nerd Font Mono", + "size": 11, + "features": + { + "calt": 1, + "liga": 1 + } + }, + "antialiasingMode": "grayscale", + "cursorShape": "bar", + "intenseTextStyle": "all", + "opacity": 95, + "padding": "10", + "scrollbarState": "visible", + "snapOnInput": true, + "useAcrylic": false + }, + "list": + [ + { + "commandline": "%SystemRoot%\\System32\\WindowsPowerShell\\v1.0\\powershell.exe", + "guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}", + "hidden": false, + "name": "Windows PowerShell" + }, + { + "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" + }, + { + "elevate": true, + "guid": "{574e775e-4f2a-5b96-ac1e-a2962a402336}", + "hidden": false, + "name": "PowerShell", + "opacity": 95, + "source": "Windows.Terminal.PowershellCore", + "useAcrylic": true + } + ] + }, + "schemes": + [ + { + "name": "Australis", + "foreground": "#a9bcc3", + "background": "#222531", + "cursorColor": "#6388d8", + "selectionBackground": "#6388d8", + "black": "#222531", + "red": "#ff491a", + "green": "#16b866", + "yellow": "#e1c631", + "blue": "#6388d8", + "purple": "#9d78ff", + "cyan": "#00b1a8", + "white": "#a9bcc3", + "brightBlack": "#373b46", + "brightRed": "#ff854f", + "brightGreen": "#51e08a", + "brightYellow": "#ffe14e", + "brightBlue": "#a4c4ff", + "brightPurple": "#d8adff", + "brightCyan": "#42dcd1", + "brightWhite": "#cce7ec" + } + ], + "themes": [], + "windowingBehavior": "useAnyExisting" +} \ No newline at end of file