Skip to content

v0.4.0

Choose a tag to compare

@bmmmm bmmmm released this 19 Jun 09:50

Added

  • fish shell support (pwdtintii.plugin.fish, requires fish 3.5+) — a full
    native port: resolves identical directory keys, families, shades, and registry
    hashes as the bash/zsh plugins and emits byte-identical OSC-11 hex. Shares the
    same per-dir PID registry, so a fish pane and a bash/zsh pane in the same
    directory still get distinct shades. fzf commands (pt view, the picker, the
    hub) force SHELL=/bin/sh so fzf's POSIX binds run correctly. Opt-in aliases
    in examples/aliases.fish; install is a manual source line. Pinned by a new
    tests/fish.bats (19 tests) that compares fish output against bash.
  • tmux per-pane tinting — when $TMUX is set, the tint is applied with
    tmux select-pane -P "bg=#..." instead of the global OSC-11 sequence, keeping
    each pane's color isolated (OSC 11 would colour the whole terminal, so multiple
    panes in one window would fight over a single background). pt off resets the
    pane style (bg=default). Known limitation: the fzf live-preview tint (while
    the picker or viewer is open) still uses OSC 11 even inside tmux; the
    steady-state prompt path is per-pane, and the background snaps back to per-pane
    when the picker closes.
  • pt view — a merged list+preview browser: an fzf picker over the families
    with a colored preview pane that ctrl-t cycles through swatch and contrast
    views across the dark and light palettes. Read-only — it previews; pt pick
    pins. Reachable from the pt menu and as ptview.
  • APCA in pt contrast — each shade is now scored against the theme text in
    APCA Lc alongside the WCAG ratio. The colored contrast view paints the scores
    in each shade's best-readable foreground (the tone the engine recommends).

Changed

  • The pt pick and pt view fzf menus are high-contrast over the live tint: the
    family list is colored per-line (--ansi) in a tone that contrasts the tinted
    background — light on the dark palette, dark on the light one — so a ctrl-t
    toggle reflows the list in place and the focused row is a legible pill.
    Previously the list inherited the terminal's ANSI foreground, with no
    guaranteed contrast against the tint.
  • The pt pick ctrl-t dark/light toggle is flicker-free: it reloads the list,
    preview, and header in place instead of restarting fzf (which redrew the whole
    screen).
  • The pt hub menu adapts to the terminal width: the list pane is sized to its
    widest action row so the glosses are no longer ellipsized, and the description
    preview reflows to fill its pane instead of being hard-wrapped (the
    markers). On a terminal too narrow to fit both side by side, the preview stacks
    below the list so each keeps the full width.

Removed

  • scripts/preview.sh — the static palette dump is folded into pt view's
    colored browser. pt preview stays as a back-compat alias for pt view.

Fixed

  • The ctrl-t dark/light flip in pt pick and pt view now repaints the
    terminal background together with the list and swatches instead of lagging a
    keystroke behind (the background used to catch up only on the next arrow key).
    The live tint is routed through fzf's coordinated execute-silent, not a raw
    OSC write during the transform, which fzf's renderer dropped.
  • Closing the picker or viewer (ENTER/ESC) no longer flashes the terminal's
    default background: fzf renders inline (sub-100% height), so its exit never
    repaints the whole frame.
  • After a ctrl-t toggle to the other group, committing a pick no longer
    disables the ctrl-t toggle on the next pt pick. The plugin compares palette
    paths by inode (-ef, matching the CLI), so a committed PWDTINTII_PALETTE in
    a bin/.. or symlinked form is still recognized as the bundled palette.
  • The prompt hook preserves $?, so a prompt that shows the last command's exit
    status (zsh %?, or a bash prompt reading a captured $?) is no longer reset
    to success on every command by the background emit.
  • A PROMPT_COMMAND array (bash 5.1+) no longer double-registers the hook and
    emits OSC 11 twice per prompt — the install now scans every element.
  • A custom palette or overrides file without a trailing newline keeps its last
    row instead of silently dropping it.
  • The zsh plugin runs cleanly under a user's setopt nounset, matching the bash
    plugin under set -u.