Releases: polyipseity/obsidian-terminal
rolling
A rolling release that contains the build artifacts for the latest commit. See readme § installation for more information.
3.22.0
3.22.0
Minor Changes
-
7dd4079: Add Python packaging (
pyproject.toml,uv.lock) and Python tests.- Provide a reproducible Python environment for tests and tools.
- Add unit tests:
tests/test_docstrings.pyand
tests/test_module_exports.py. - Ensure CI runs the new Python tests and update related files.
-
64a2f23: Fix Option key for Scandinavian/German keyboards on macOS by adding macOptionKeyPassthrough setting. (GH#92 by @jsade)
-
25a8a10: Introduce a new global Font Family setting that acts as a fallback for
all terminal profiles. Per‑profileterminalOptions.fontFamilystill
overrides this value. Changes propagate immediately to any open terminal
instances. (GH#102 by @ChornyiDev) -
939b1bd: Add a new "Profile defaults" settings section and store global
terminalOptionsthat apply to every terminal instance unless a
profile overrides them. A modal is used for editing options, and real-time
updates propagate to open terminals. The previous singlefontFamilysetting
has been removed in favor of this more flexible system. -
ab83e53: Refactor
src/terminal/unix_pseudoterminal.pyto replace ad-hoc selector callbacks
with small, well-documented context-manager handler classes and tighten type
annotations.- Introduce
_SelectorHandler,_PipePty,_PipeStdin, and_ProcessCmdIOto
centralize FD registration/unregistration and improve EOF handling. - Add type hints, docstrings, and safer unregister logic — improves maintainability
and robustness without changing public behavior.
- Introduce
-
ee93ddb: Restore focus to previous non-terminal pane when unfocusing terminal.
When using the toggle focus hotkey or unfocus command, focus now returns to the last active non-terminal pane (e.g., your note) instead of just blurring the terminal. This improves the workflow when using the terminal in a side panel. (GH#85 by @Mendi23)
-
54f5990: Add a default profile setting and command to open a selected profile directly from the ribbon button or command palette. (GH#83 by @archedark)
Patch Changes
-
c922f59: Fix profile name display in profile list
Updated
profile-name-formatsandprofile-list.namer-in all translation files to use{{info.nameOrID}}for proper fallback to profile ID when name is empty. Improved format to "Type: Name" style for better readability. Resolves GH#63. -
89eea3e: Added helper to apply shallow diffs to xterm options and wire live
updates when terminal options change. Includes tests. -
2d95186: Emit ESC+CR when the user presses Shift+Enter in the terminal emulator. This
matches the behavior expected by Claude Code and other TUI applications and
prevents modified enters from being interpreted as plain CR. (GH#89 by @davidszp)
3.21.0
3.21.0
Minor Changes
- 51872cb: Add a new "Follow theme" option that makes the terminal automatically match Obsidian's colors and update when switching themes. (GH#74 by @davidszp)
- 7fe1a14: Start integrated
zsh,bash, and Git Bash sessions as login shells so user config files load properly and PATH behaves as expected. (GH#75 by @liuhedev) - 7fe1a14: Improve the profile picker by showing only terminal profiles compatible with your current OS, reducing clutter and avoiding unusable options. (GH#75 by @liuhedev)
- 5486c6a: Preserve terminal scroll position across state saves and tab switches by adding a single
scrollLinefield with a bottom sentinel. (GH#71 by @mokasz)
Patch Changes
-
6a6dbd8: Add Japanese translation (GH#68 by @oimus1976)
Added Japanese translation file and updated locales configuration.
-
39f6fd5: Fix invalid JSON in translation files: (GH#66 by @HNIdesu)
assets/locales/zh-Hans/translation.jsonassets/locales/zh-Hant/translation.json
The entry
components.select-profile.item-text-temporarycontained unmatched brackets, which caused parsing errors and broke localization loading. This patch corrects the brackets so the JSON validates properly. -
eae27fd: Widen modals to ensure they are usable on all themes by disabling
dynamicWidth. This makes the profile editor and list modals have a width that can be set by theme CSS. (GH#60 by @haydenholligan)