TerminalStyles
0.8.18
Minimum PowerShell version
5.1
Installation Options
Owners
Copyright
(c) 2026 Felipe Cremerius. MIT.
Package Details
Author(s)
- Felipe Cremerius
Tags
WindowsTerminal Terminal Theme ColorScheme Prompt Cursor Background Font Customization Console Dotfiles pwsh iTerm2 zsh bash ANSI Windows MacOS Linux
Functions
Invoke-TerminalStyle Invoke-TerminalStylesUpdate
PSEditions
Dependencies
This module has no dependencies.
Release Notes
v0.8.18: The tuner. "tstyles tune ../styles/eva" DELETED styles/eva, printed "Reverted." and exited 0 -- the scratch directory it removes on every exit path was the style directory, and a tune.json base carrying the same traversal did it with nothing unusual typed. The "Font face" knob was dead on every platform and the first press on it killed the session, losing every adjustment. The tuner's own menu could dye itself invisible, measured at exactly 1.000:1 on the bundled light theme, where the slider that caused it can no longer be read or reversed. "[1] Overwrite" said "(shadows the bundled style)" while destroying a style that had no bundled original; two tune sessions open at once destroyed each other's work; a Save-As over an existing style was a merge, not the replace it promised; and re-tuning silently doubled the adjustments when the base had been re-baked since. Beyond the tuner: a scheme value could smuggle an arbitrary escape sequence into every new shell -- persisted to current-style.osc and replayed on every shell start, indefinitely. "tstyles uninstall" deleted a style you had tuned in place and "tstyles update" reverted it to stock while leaving its tune.json claiming otherwise. "tstyles current" reported no active style right after applying one on Windows Terminal. And the font knob offered a fraction of the monospace families it promised, including three the module's own table already names. Also in this release, from a later pass: the case-sensitivity probe answered backwards on Windows PowerShell 5.1, where .NET Framework echoes the caller's own casing back from Get-Item rather than the directory's, so two spellings of one NTFS directory compared unequal -- green on pwsh 7, red on 5.1, same machine. A bare "tstyles" with stdin or stdout redirected spent the one-time font offer without anyone seeing it: Read-Host returns empty at EOF rather than throwing, and the marker was written regardless, so no interactive session was ever asked again. "tstyles font" walked every font directory on the machine once per catalogue entry instead of once. And a font published as a bare .ttf behind a URL with a query string installed under a name Get-InstalledFontFamily could never find again, so it re-downloaded on every run. A later pass closed two whole classes of defect rather than their instances. CONSENT: Read-Host at EOF returns AutomationNull, which PowerShell treats as an empty collection, so both `-match` and `-notmatch` against an unanswered prompt were FALSY -- every "[y/N]" in the project read as fail-safe and acted instead. "tstyles uninstall" with stdin redirected ran a complete uninstall with nobody having answered, and with -DeleteData would have deleted the data root including your own tuned styles; "tstyles register" wrote the loader into both engines' profiles; and install.ps1 ran Set-ExecutionPolicy unattended, reachable from the documented one-liner install. Consent now goes through one gate that REFUSES rather than assumes when there is no console, with -Yes for automation. BACKUPS: settings.json.bak was being written before the work was known to be possible, so a mistyped -Target on "tstyles reset" or "tstyles font" destroyed the undo of your last real apply; applying a style with no theme.json (a documented, supported shape) destroyed every comment in settings.json while reporting success; and "tstyles reset" on a never-styled profile rewrote the file to do nothing. Also: "pwsh -File apply.ps1" with stdin redirected never returned, and its own documented non-interactive invocation crashed. And shell-init/register now back up your .zshrc and PowerShell profile the first time they touch them, which install.ps1 has always done and the module never did.
FileList
- TerminalStyles.nuspec
- tstyles.ps1
- shell\tstyles.sh
- styles\gitbash\profile.ps1
- styles\golden-forest\profile.ps1
- styles\rain\profile.ps1
- styles\halo\profile.ps1
- styles\marquee\profile.ps1
- styles\kitty\profile.ps1
- styles\lain\profile.ps1
- styles\snowday\profile.ps1
- LICENSE
- lib\picker.ps1
- styles\gitbash\scheme.json
- styles\golden-forest\scheme.json
- styles\rain\scheme.json
- styles\halo\scheme.json
- styles\marquee\scheme.json
- styles\kitty\scheme.json
- styles\lain\scheme.json
- styles\snowday\scheme.json
- terminals.ps1
- lib\color.ps1
- styles\gitbash\theme.json
- styles\golden-forest\theme.json
- styles\rain\theme.json
- styles\halo\theme.json
- styles\marquee\theme.json
- styles\kitty\theme.json
- styles\lain\theme.json
- styles\snowday\theme.json
- README.md
- lib\tune.ps1
- styles\gitbash\prompt.sh
- styles\golden-forest\prompt.sh
- styles\rain\prompt.sh
- styles\halo\prompt.sh
- styles\marquee\prompt.sh
- styles\kitty\prompt.sh
- styles\lain\prompt.sh
- styles\snowday\prompt.sh
- TerminalStyles.psm1
- lib\applystyle.ps1
- styles\gitbash\README.md
- styles\golden-forest\README.md
- styles\rain\README.md
- styles\halo\README.md
- styles\marquee\README.md
- styles\kitty\README.md
- styles\lain\README.md
- styles\snowday\README.md
- TerminalStyles.psd1
- lib\fonts.ps1
- styles\forest\profile.ps1
- styles\eva\profile.ps1
- styles\tombraider\profile.ps1
- styles\sober\profile.ps1
- styles\umbrella\profile.ps1
- styles\garden-rain\profile.ps1
- styles\neon-rain\profile.ps1
- styles\ex-machina\profile.ps1
- fonts.json
- lib\help.ps1
- styles\forest\scheme.json
- styles\eva\scheme.json
- styles\tombraider\scheme.json
- styles\sober\scheme.json
- styles\umbrella\scheme.json
- styles\garden-rain\scheme.json
- styles\neon-rain\scheme.json
- styles\ex-machina\scheme.json
- lib\update.ps1
- styles\forest\theme.json
- styles\eva\theme.json
- styles\tombraider\theme.json
- styles\sober\theme.json
- styles\umbrella\theme.json
- styles\garden-rain\theme.json
- styles\neon-rain\theme.json
- styles\ex-machina\theme.json
- apply.ps1
- lib\background.ps1
- styles\forest\prompt.sh
- styles\eva\prompt.sh
- styles\tombraider\prompt.sh
- styles\sober\prompt.sh
- styles\umbrella\prompt.sh
- styles\garden-rain\prompt.sh
- styles\neon-rain\prompt.sh
- styles\ex-machina\prompt.sh
- shell\appleterminal.js
- lib\wtsettings.ps1
- styles\forest\README.md
- styles\eva\README.md
- styles\tombraider\README.md
- styles\sober\README.md
- styles\umbrella\README.md
- styles\garden-rain\README.md
- styles\neon-rain\README.md
- styles\ex-machina\README.md
Version History
| Version | Downloads | Last updated |
|---|---|---|
| 0.8.19 | 8 | 8/30/2026 |
| 0.8.18 (current version) | 6 | 8/29/2026 |
| 0.8.17 | 9 | 8/27/2026 |
| 0.8.16 | 8 | 8/27/2026 |
| 0.8.15 | 7 | 8/26/2026 |
| 0.8.14 | 3 | 8/26/2026 |
| 0.8.13 | 5 | 8/26/2026 |
| 0.8.12 | 4 | 8/26/2026 |
| 0.8.11 | 6 | 8/26/2026 |
| 0.8.10 | 5 | 8/26/2026 |
| 0.8.9 | 8 | 8/26/2026 |
| 0.8.8 | 5 | 8/25/2026 |
| 0.8.7 | 6 | 8/25/2026 |
| 0.8.6 | 5 | 8/25/2026 |
| 0.8.5 | 4 | 8/25/2026 |
| 0.8.4 | 11 | 8/22/2026 |
| 0.8.3 | 6 | 8/22/2026 |
| 0.8.2 | 5 | 8/21/2026 |
| 0.8.1 | 8 | 8/21/2026 |
| 0.8.0 | 7 | 8/21/2026 |
| 0.7.1 | 21 | 8/7/2026 |
| 0.7.0 | 5 | 8/7/2026 |
| 0.6.3 | 47 | 6/24/2026 |
| 0.6.2 | 15 | 6/13/2026 |
| 0.6.1 | 10 | 5/30/2026 |
| 0.6.0 | 5 | 5/30/2026 |
| 0.5.0 | 6 | 5/30/2026 |
| 0.4.2 | 6 | 5/29/2026 |
| 0.4.1 | 5 | 5/29/2026 |
| 0.4.0 | 5 | 5/29/2026 |
| 0.3.0 | 5 | 5/29/2026 |
| 0.2.2 | 12 | 5/27/2026 |
| 0.2.1 | 12 | 5/27/2026 |
| 0.2.0 | 16 | 5/27/2026 |
| 0.1.0 | 11 | 5/27/2026 |