Plugin: Terminal - integrated terminals in Obsidian

The latest version is 3.13.0, released on 2023-09-22.

Contributions are welcome, especially translation!

Original (OUTDATED)

:wave: Hi everyone! I want to share the my new (also first) plugin, Terminal.

The plugin brings integrated terminals like those in Visual Studio Code into Obsidian. There are other features too, which can be found in the repository.

Please do read README.md in the aforementioned repository link carefully as there are extra setup needed. For example, installing Python 3.11/+ is recommended.

The plugin has just been accepted into community plugins. Its version is 2.7.0. For now, it is only extensively tested on Windows and I would like help testing on Linux and macOS. Feedback is wanted! :grinning:

9 Likes

Absolutely loving it, we are getting ever closer the obsidian ide!

3 Likes

2.9.0

Hello everyone, I managed to get the integrated terminal working on Linux and macOS as well, so I want to post an update here. The following changelog is copied from the release description.

Changelog

After lots of hard work, v2.9.0 is finally ready! :sweat_smile:

Fixes

  • Fix integrated terminals on Linux and macOS (more generally, Unix). Python 3.10/+ is required but Python packages psutil and pywinctl are no longer required on Unix platforms. This should address the problem with integrated terminals of GH#2. (7812e8f148a0f52c2f576dded17266de07e3cebc5dbea610f75dbadce28d54b90c8549fb6c24fc6e)
  • Change default Python executable to python3 to avoid starting Python 2. (ba931427b1e5e2dd4a716ff90946e7a855eb5aea)
  • Fix error handling. (905d52e06eb83c6f915c9bb4fa4fcb2afece73278ac982e97ab32249135ffe36cc7ffc03548af059)

Internals

  • Validate language files. (e919a7cf4fa165a92dc9c91f40f448ef9ae999c529fdad08527e7b798277d0aed4b231aedf77105e)
  • Housekeeping.

Miscellaneous

  • Allow plugin to be enabled on mobile. It does nothing though. (cb40072e533b1dc20d441485817bced1b49b55eab400a4412f29fda901e579b7b2968305579ac4f1)
  • Add all languages available in Obsidian (untranslated except for 2). (29fdad08527e7b798277d0aed4b231aedf77105e)
  • Update translations.
  • Update README.md.

Known bugs

  • Opening external terminals is still broken on Linux and macOS.

Full changelog: 2.8.1...2.9.0

2.10.0

I think this will be the last post for a while. The plugin experience is satisfying for all three platforms now so development will slow down. Don’t worry, there is still a lot of features to be implemented (see the todo section in readme).

Changelog

Notices

  • Updating the plugin starting from this version to a newer version will no longer close all active terminal views. (Does not include updating from a previous version to this version.)
  • Please reset your settings and reconfigure it.
  • Linux, macOS: Please specify a terminal emulator (not a shell) for external terminal, and a shell (not a terminal emulator) for internal terminal.
  • macOS: This is not necessary if you have only used the release versions. But just in case, you might need to reset settings to apply the external terminal cwd fix.
  • macOS: The external terminal cwd fix is implemented by passing $PWD as the first argument to the external terminal. This might cause issues with non-default terminals. You may need to edit executables.darwin.extArgs in .obsidian/plugins/terminal/data.json to remove the first argument. Also see the hint.
  • mobile: You can only change settings on mobile for now.
  • Hint: There are hidden settings to set the launching arguments in .obsidian/plugins/terminal/data.json. Search for intArgs and extArgs. I still need to figure out how to present the hidden settings in the settings UI well.

Features

  • Terminal view no longer closes when the underlying process terminates. (934eb24e2c7106e1122c8c29e4160ca5d55749ef)
  • Add terminal restoration message in the format of * Restored history at (time). (5dd1efb5709af6d5f7dae7ee5d4b813fc4156612)
  • Add menu to restart terminal and resizer. Access by right-clicking terminal tab header. (313b4b8f0c2ec2f71d79fd519925aab71cfff910)
  • Add settings to disable annoying notices. (602954ee0ee619368ffb770310262656ee1a1551)
  • Add settings to specify external terminal separately. (a80466f309483f6971c29b85d5825449ab93c448)

Fixes

  • Terminal view persists when updating the plugin. (934eb24e2c7106e1122c8c29e4160ca5d55749ef)
  • Windows: Pressing Ctrl-C will no longer close the resizer sometimes. (fc95167374d3174ce94ce47ecc8bb41709b2c535)
  • Fix “reset all” not resetting all settings. (133a141e10b09f9bf29c59ed5ffaa6cde5594b72)
  • (See notices) Mobile: Fix plugin not loading. (3b55de2c48bb5bbcb35f7a4d5a533b58d520670d63c99375fbf29ef9fa6cbf27dd527071987a13fd)
  • (See notices) Linux, macOS: Fix external terminal not opening by separating external and internal terminal executable. (a80466f309483f6971c29b85d5825449ab93c448)
  • (See notices) macOS: Fix external terminal not starting in the specified cwd. Might not work with non-default terminals. (0b66970f065160e713067bb930bedf97f7f71793)

Internals

  • Housekeeping.
  • Refactor terminal files.
  • Handle more uncaught errors. Less errors in the developer console!
  • Update npm packages. (02f455b7c8b196116d45d98dd8fe51f750671b59)
  • Improve build scripts. (02b0174ec8b6252dcd98fbc1925069db41d5ab23)

Full changelog: 2.9.0...2.10.0

2.11.0

Just adding a crucial feature (text searching) that I personally need, so you get another update!

Changelog

Features

  • Add GPU acceleration! Now scrolling the terminal is super smooth. (078c36818bfbb038501bd4302e5c45ead53f12ba)
  • Improve settings UI. (e3790ae02a7839aca2ef8659a16fcacebbc02d52)
  • Add setting to specify terminal renderer. (related to GPU acceleration) (e029c710f3cda5b9dd209c517702ad1360754f20)
  • Add find in terminal function! Right-click terminal tab header to access it. (925328b32c11470ae195b5061afe05b84d0f0d1b)

Fixes

  • Fix unable to unfocus from terminal. (22cd684673b69860f442d86cac5d2ae9546c85a2)
  • Fix reset all settings not resetting all settings. Again… (270530dde452ef0db5a0bf5ee813dc6d7072fa79)
  • Decrease the chance that the terminal resizer fails to initialize. (ba9c34f4be014d641670ba1b01d53ec6d1723c18, 781a4ec764628439aca519d7cc31e69f84e7f00e)
  • Improve accuracy of terminal resizer. (76c85dffda284e95a1deb234198bbf4db2e7fb8a)

Internals

  • Housekeeping.
  • Handle more uncaught errors.
  • Add several minor terminal addons. (9d3e38acf096517f5425fd2dd7c53a45ed5bbfaf6ab523fbe7f328e758c7e6d88e149ba95b769d7a)
  • Log discarded errors. (ab836e6bc692cd3806ee0ab77aa78a01d2211f4b)
  • Fix encoding of Python stdios. (8fbb087d6f00798434118bc86c46a4f15ad6b37b)
  • Make win32_resizer.py report inability to find the correct window. (028cde8159a12e7f346db74a472bdcb8c0fed907)

Full changelog: 2.10.0...2.11.0

3.0.0

Please report any bugs with the new features!

Changelog

A major version bump as there are many shiny new features this time! :sparkles:

Notices

  • Please reconfigure your settings. Old settings will likely be overwritten.

  • Now usable and useful on mobile! (You can only open developer console, however…)

Features

  • Implement terminal profiles! Comes with several presets. (dda444885bd032fc4c85e9d9b95ace90be706d68)

  • Implement editing arguments. (dda444885bd032fc4c85e9d9b95ace90be706d68)

  • Allowing specifying Python executable per profile. (dda444885bd032fc4c85e9d9b95ace90be706d68)

  • Add buttons to undo and reload all settings. (d12898142b16a3daed0b1e4826b5f759fecaffc2)

  • Add commands and context menus to select terminal profile. (804a3448f58d44a6bea9cccfde579fb1fc7ed4cd)

  • Add a ribbon to select terminal profile. (9ea5c140102342e6916c596257ce32c16c440b87)

  • New terminal type: Console. It prints messages from the developer console. Works on mobile. (3619f5865d054269819095cbad912184377e66e8)

  • Implement editing terminal. You can change terminal profile and working directory. (c9909513604d5b2b2f15cbe9dbeb9936a7c85018)

Fixes

  • Fix unable to find after terminal restart. (5586baa16320da28acb6c3a64f4b73c58e760013)

  • Fix escaping arguments. (a4fd03d737fe86b1d2ccd9bb59aa0429445a4fb0)

  • Make context menu usable on mobile by keeping contentEl. (0ec66b4e632a272e199b7c506189ef303a5b5b97)

  • Fix updating terminal tab name. (1e7adcc23abeef98fb96ac587aaf4912209af10d)

  • Fix find in terminal styling on mobile. (7de6c2a69715882e076fae5b42940daa7c28add635e8e5f6fdeb90986b193a4bfcab952788faa1ff)

Internals

  • Improve code, as always.

  • Improve build scripts.

  • Settings are validated and fixed on loading. (5b78d4d10f1dff36abfc30c6695ac2755eb8045d)

  • Freeze as const-ed objects. (5023e90fd54a9457d1182526e4d5d18e22311049)

  • Update npm packages.

Full changelog: 2.11.0...3.0.0

1 Like

3.1.0

This update focuses on quality of life improvements.

Notices

  • You can actually download the plugin on mobile now. Somehow this has not been caught for a long time.
  • Settings will probably be broken again. The plugin will attempt to fix it without changing it as much as possible. In case it goes wrong, you can recover the previous setting from the plugin itself now.

Features

  • Add settings recovery. It can recover settings that are valid JSON but not completely valid for plugin settings (like settings from a previous version). (a8d702240730e4a50c22787b718409a948dd0bca)
  • Add importing settings and exporting settings from the command palette. Using a file requires navigating to a markdown file first. (e76949eb6694fcc4655a3b0d269116e199dc17b1)
  • Add raw editing of settings. You can import and export settings there as well. (6b8314252451d42c4de5a0d0e9218a9617e3cca8)
  • Make history navigation buttons of the terminal view work. Using the Edit context menu item will add history. (69c49596b289b9de8d91f4315ed1d719c8a5a189)
  • Read readme and changelog (this very file you are reading now) from the plugin itself. They can be accessed from the command palette or the settings UI. (3d0c514231585a40bea5f8baf2a6e246d6ab9e35)
  • Open changelog on plugin update. (29baeb4914ace485c6f3f3d4b489f1fdd876af87)
  • Intercept all key when the terminal is focused. (4e18bdc49320b8230dec5ad155e67692cd79b40d)
  • Add keys to clear terminal (<Ctrl+Shift+K>; macOS: <Cmd+K>), start find in terminal (<Ctrl+Shift+F>; macOS: <Cmd+F>), and toggle focus of terminal (<Ctrl+Shift+`>; macOS: <Cmd+`>). Closes GH#7. (9a384ff055709300069386258ff447fd27affbe9)
  • Add 2 settings to control where to open terminal. Closes GH#3. (ba871ff161d536ea8d6576d8f7467f4425797370)
  • Add Python executable checking button in profile settings. It checks and prints the version in a notice. Could help with GH#9. (dce6ead590417c2df470f327388f8f67bae2f5a51521bd5fd5d59012f94ca35aeb21e48c0c9b9929)
  • Open readme on first install of the plugin. (0e89d05b0269f9e912094f3364a33f6a1f65b3e6)

Improvements

  • Improve typing negative numbers in settings. (e89f36a8f957524b685452d4c7cd1221e1595839)
  • Make settings UI <Tab>-friendly. (196f1230e0e3e8a2411318d822fbf2f94880a81e19c3fa8cc3f34e00fc874bcbbafe96ab1466c4ea)
  • Various minor improvements to UIs.
  • Ribbons translate automatically. (22a299013504439aecd78db4456a6866c47ebd67f58cbff9ff941b67072f64eae9ed2674bd4400fe)
  • No more empty terminal tab name (Terminal: ). (535aa52a46fe67ffed93cd84d7903bfe1442c493)
  • More information about profiles are displayed. (eb73553fb53e8292b9e73088567bc1dfcc61f322, 8b45a6e420a1b3130351c964f3240c5cbecd398c5f59ab6d60d51635214f54123e34d61b7aa87cc3)

Fixes

  • Fix a setting reset button. (555001371e16562bb34a92291571d1d2f82d5b7e)
  • Mobile: Fix unclickable modal close button. (e9fc80f68a353bb1c60d29c45ccd5f5baaf058ac)
  • Fix spawning terminal notice spam. (d8a69103629340970589a23e2d71120ef2111052)
  • Make plugin downloadable on mobile by downgrading minimum app version. (165b414e68e26027bcf677795bdc5d2d01380680)
  • Fix empty Python executable not disabling Python. Fixes GH#8. (09f2b3d1b0ae23867827977f2dbbba6b6f4f6460)
  • Windows: Fix pressing <Ctrl+C> exiting the terminal resizer. (5bff3f0749f16be80bfeb8a3ba903b0f8c6f79c4)
  • Mobile: Fix bottom of terminal view covered by navbar. (3230ca61defe56429358fcf368fade77abb6991d, dc875923e67300e2a0826d4e9332c51c2f42c19b)

Internals

  • Improve UI code using UpdatableUI.
  • Potentially invalid data are validated. If invalid, they are fixed and logged. (ad9e9bf0c2def5e4bcb999fdff05b776e988d11b, 1d4cc6abd5ab0bba1a74d9c7aa1854d5e949aecf, d6c1b5b298114cd267e2d7101a053e2dfb60a1e1)
  • Rewrite translation files to use vocabularies. (c5ba24d8707fc814a3d5d87f0e9ace97124ffd2e)
  • Handle missing translation keys and interpolation. (575cbfeb4293f7d602124f6470f5fb95ccf3b99c)
  • Improve plugin loading. (71f2e948c8dcee77ced2f772aeac204ab7f8dcf5)

Miscellaneous

  • Change license from “MIT” to “AGPL-3.0-or-later”. (77d9d9477b0dc1d56ab3b0cd36d3ba53ef5e52ff)
  • Improve documentation. Closes GH#4 and GH#6. (57a85254e1fd7bf9ed5a6feab08784b26d983090, 25df148d992056b8378ff42d459120f4c48b52f3)

Full changelog: 3.0.0...3.1.0

1 Like

3.2.0

Emulating a text area in a terminal is insane…

Notices

  • The minimum API version has been bumped to v1.1.13. Please update your app to the latest version. (e2733c5c36003db5556819088b50bad29671d4e0)

Features

  • Developer console terminal is now interactive. You can evaluate code like the normal developer console now. (Spent too much time on this.) (bcdd8dbff0d652c8eb9a389f734db2c3a5891323e2d8690767f81958b1a0d95ac412a12ac3ab0c33)
  • You can set custom title of the terminal from the shell (if your shell supports it). (3718829159b1c5960dec430df78ed5d70c4a9abb)
  • Four new options for ‘New instance behavior’. They are ‘New left tab’, ‘New left split’, ‘New right tab’, and ‘New right split’. (bcdd8dbff0d652c8eb9a389f734db2c3a5891323)

Improvements

  • All settings should have an icon representing it. (eb1a647d0336041a7f705a3476f18bd5ed738913)
  • Improve find in terminal.
    • Autofocus on the find input when you activate it. (7d0c857e9bd68e4b15028dc0e5e9cc5e187ac5f5)
    • Pressing Esc when focused on find in terminal closes it. (2ce8bdcd182c3abaf20bddacf925a84693cb8e50, 7f13dd47fd5dab814bf9028a12f5e91c2bbdf67d)
    • Add ARIA labels. (c747a490a158c7891effb24642d790ca58699de9)
  • Improve working directory handling to reduce confusion like in GH#12. (55b917052b371eb566976af7d13b6345c64554ef, 985b6100ef14e9f0933de0859dd0e8872e217490)
  • Add double confirm dialog hint. (0f043376fb6f2528b826066128666baa855c774d)
  • Make terminal resizing extremely responsive. (73a7836522d56e92b064a76a09bf18fc87d7ec42)
  • Find in terminal now has intro and outro transitions. (bcdd8dbff0d652c8eb9a389f734db2c3a5891323ef39cb1177af6cc108f8e61d179eff89056b48f8)
  • Add ‘Clear’ button to terminal context menu. (1a2f3104b6034065b1f7e1a0e5cd410254eef52c)

Fixes

  • Fix some translation strings. (88cbcf603ff0429d26f1616b7af67bf4cf27f3f9, 2a4a4cfe45f4ffd787feb134ef0545af7a832fb5)
  • Unfocusing terminal also works when find in terminal is focused. (f7cde90970128bd4bbf1578fb2e1d3249451a628)
  • Improve compatibility with pop-out windows. (798b2988875e0688f7602efb20fbd6702edf00f959955f4ee1e9102dd956537464e53b88cc1a6d12, f38d0082a0fc9cccbb75c7383aa6c35810b1e9b87b8364086873ebeee11fd506c2f139708be6e740)

Internals

  • Load translations on demand. (268c684ec97f858d5a6ef030130b834eda305442)
  • Delay removing exit code temp file to print less warnings to the console. (6923553979451e1da6200c7ac01e637f2f2563ae)
  • Avoid using non-standard functions. (44dcfaf89f7638e77e7e0c0306c12c14ac613e00, 8de1c59e2e6ca6afebf4c7f0fd676077d1a07502)
  • Only create one ConsolePseudoterminal. (bd97d08b1186584d607a8530b116c1aad1d9a761)
  • Use reference-counted RefPseudoterminal in preparation for duplicating terminals. (02249373db897a683628cd8363199ba512d55686)

Full changelog: 3.1.0...3.2.0

1 Like

3.3.0

Just a small release to push out the unpublished changes.

Features

  • Add Windows Subsystem for Linux preset as suggested in GH#14. (7a787996ddf96403ee29dfb13c0f9a9961853474720388c0fdf0833137df479e43f24524939252c2)

Improvements

  • Improve startup time significantly by initializing developer console on demand. (c023f15e48c04cda8ecd3e4a4cf9f258e86f4a5e)
  • Stablize CSS class names for custom Svelte components. This should make it way easier to maintain custom CSS for them. (d9e306563c8b8396c79c4b57e69287af45b604b3)
  • Rewrite developer console paging algorithm. It should fix most (if not all) bugs with it, including resizing. (8a94ef19610e2d4b689dde4ae5bc5843d55b264f)

Fixes

  • Fix creating instances near existing ones in left and right leaves. (f055a3b8e77e0349eacbf66a55a21f7784280061)

Full changelog: 3.2.0...3.3.0

3.4.1 (2023-03-14)

Fixes

  • Fix error opening documentation. (df085f2a505983592f7d50e31bdc3d52a89f29f3)

Full changelog: 3.4.0...3.4.1

3.4.0 (2023-03-14)

This update focuses on performance of plugin loading. The loading time has been decreased significantly, making it more viable for slow platforms (like mobile).

Features

  • Add Git Bash preset. Helps with GH#15. (4b2b63cf2ab0477a4dcd22e78db7e4103c6b0d8cd9543e88c407b19180a3f25371de7391f0160857)

Improvements

  • Throttle terminal resizing to reduce flickering. (04899b5f6ae3eef1a4561ba022db5ebbab9f785ff947c780c7c38f8bb4e2f02c163de0b72024dfe8)
  • Compress JSON and text files, decreasing bundle size from ~1.8 MB to ~1.45 MB. (ed2e4b671518ec79c6de8f11e3889cae574ea9cb, 1e98d9429e788e472dc83caa61824a1338e54586)
  • Reduce startup time by ~80%. (fe93210ffd44ccf1b1e48d625963140f008fea83, a199af9baf212a419d3ff503878bd6b835e762f4ddd3f3a16e67d29b4ba3a07beeeae05cfcb36fc4)

Miscellaneous

  • Add npm commands to install the plugin. (854e1338072f325b6e450817b568244f89693dce)

Internals

  • Make monkey patches more resilient to errors. (af35b0176e1f11e32be5764ff17f93a2a01e8f7f)

Full changelog: 3.3.0...3.4.0

1 Like

3.5.1 (2023-03-28)

Fixes

  • mobile: Fix ‘Save to HTML’. It no longer does nothing on Android and soft locks Obsidian on iOS. (b1201a089a3f3447e09249651434995b11bb283b)

Features

  • The latest commit for the plugin can now be installed using Obsidian42 - BRAT. (5f263690e80d6298eb02ffade41a10beedd4ce1fbda61d4ee1a82c7b9694912ae0353e178f0f0756)

Improvements

  • Use CSS to hide the status bar, making the hiding customizable. (84c55993db3d3e8a86d283e83df0c58dfa4d8eaf)

Full changelog: 3.5.0...3.5.1

3.5.0 (2023-03-20)

Features

  • Add 6 external profile presets. Helps with GH#16. (c9a51249d35fe429d5cc4eb8a307612177de896e)

  • Automatically pin new terminal tabs to avoid accidentally terminating terminals. Configurable in settings. (beb24cc25802750b1681358e42fd74ccbe51f83a)

  • Add support for dragging and dropping files into the terminal to paste their filepaths. See GH#16. (7c5e4617072d1b77a7d9f11b0e886c8e9d051f91)

Fixes

  • Fix invalid regex crashing find in terminal. (9da6bb9494fa0079fb1b60a8140277e1dbff9860)

Full changelog: 3.4.1...3.5.0

3.6.0 (2023-04-04)

Features

  • Add ‘root directory’ button next to working directory when editing a terminal view. (4991ccb8548b3034f8f753924f1fbd95523259be)

  • Add ‘focus on new instance’ setting. (c7db57e1328da5883a3587d0d812905bc30f58e1)

  • Add ‘restore history’ profile setting. (c1b3a69dbd71d7fecc080e5b6791b81260dc6ccf)

  • Add ‘success exit codes’ profile setting. (3d9aaca914837df324200307e634d1f7f4cd42da)

Improvements

  • Developer console history can be kept now. (7ced419b9762ff92a28cadf0355a54f0200b6209)

Full changelog: 3.5.1...3.6.0

1 Like

3.7.0 (2023-04-11)

Features

  • Add 3 profile presets: ‘powershell: External’, ‘powershell: Integrated’, and ‘pwsh: External’. powershell stands for Windows PowerShell while pwsh stands for PowerShell Core. (1767d2d9f80a269ba24eecd0c45fd8bf0ed9050c)

  • Color messages in developer console. (107826a45b255367f336e00e0cb518f1851a8306)

Improvements

  • Speed up (re)starting a new developer console significantly. (5a407cc9ed9b3e985f63d56aa7aed4a3b17e33ae)

  • Improve developer console messages significantly. (e6b5ae83c448398105ec11444722852a6a1b11b4)

Full changelog: 3.6.0...3.7.0

3.8.0 (2023-04-29)

Features

  • Patch require so that require("obsidian") works in the developer console. (89cf2cc34a64f8cd373c8e3dd8da1e7b3f020f5c)
  • Add internal support for custom terminal options. (80df07f698450947b04ef2f5b69e11ce52f5d9dc)
  • Add raw data editing for profiles like the one for settings. You can use this to configure terminal options (refer to xterm.js documentation). An UI for terminal options will be added shortly. Address GH#11 and GH#16. (fbe2de717c5e46436c929240c8450839139ce7c1)

Fixes

  • Fix re-enabling plugin overwriting history due to unloaded CSS. (e02e43918c82dcb8f9641dc2ca2be208e23a3caa)

Improvements

  • Improve the icon for whole words in find in terminal. (dfb3da51878bd8b7e9004afffc9097e3e01c79a8)
  • Decrease loading time by ~20%. (c4ea4912e5f9b412d31df70b3881570a47faebae)

Full changelog: 3.7.0...3.8.0

3.9.2 (2023-07-01)

Improvements

  • Improve Python code. (977dd978b3acb3ae272407d9112f1c88433f0c4a, 1757d54dee038cb35f8aca4e3e44b601d3ac6c4e, 5d7c6a92aee1a7c07c88da611d457ec6bd00becd)
  • Update npm packages to remove vulnerabilities. (5d7c6a92aee1a7c07c88da611d457ec6bd00becdaa2e327b6abdf91f93f8bb7c9db7e00d52a829b7)

Full changelog: 3.9.1...3.9.2

3.9.1 (2023-05-25)

Improvements

  • Large refactoring of the code base. There may (or may not) be new bugs. (8f910b554e97d2bb819575b59f9af3b85c8ac7b01a6476a9b67beb1083b7cabaf4a9d0782c7f49e2)

  • Add support for pnpm. (ed08a97ee2f50bd1869580f8b9f46e945be80093621e8b56b91c5570fa7f628a27b6a7a6834c2b50)

  • Remove confusing “Malformed data” notice. Fixes GH#19. (4d8a0fa459c5d982160bdfedc5e09ac9f9dd19f3)

Full changelog: 3.9.0...3.9.1

3.9.0 (2023-05-10)

  • The minimum Obsidian version has been increased to v1.2.5. (dbc26a396f3d97cb625e577d10ebc537f5548493)

  • Add donation options. (15ef8207a3df00b23fc54d1a75ec842925f602ef58df51d64977e93cd98b44f58f0f246e37953214, b59e915611f2ce6de83f5eab68165ac06726bcdc, 420ee154c526298387fb52fb4c40b432486793b3)

Features

  • Implement top-level await in the developer console. (7d2219e9bceef8459504c820099ff3c61bd737bd)

  • Inject context variable $$ into the developer console. It can be used to dynamically change terminal options. The API is available in sources/@types/obsidian-terminal.d.ts#DeveloperConsoleContext. (557fd14fc31f0da351d1690852d387f2fd600fac)

  • Add setting Open changelog on update. (881f39889974a543bac876f933e1e330bfff6f27)

Improvements

  • Cleanup documentation view. Extra useless functions are removed. (7c3e4dae5112f6d95780c610219a3c5dd4098364)

Full changelog: 3.8.0...3.9.0

3.10.0 (2023-07-10)

Features

  • Add font terminal options. Closes GH#20. (ed9077348755cc863958a39a5cf45d4b55720d0df3145847ff37a438e090e33d399943e4461ad381)

Fixes

  • Fix typing into the find textbox not working. (629143c952181524a886b07b4602290a207bf1fa)
  • Fix wrong find results when no matches. (691f1a2aa8dc759486f610ea3e7a7f83bc7e865a)

Improvements

  • Show when the profile is invalid in the Type setting. (46c8598cb2e14dafd1e6266366e6479cb10e036c)

Full changelog: 3.9.2...3.10.0

3.11.1

Patch Changes

  • 8bdd430: Make the require patch more compatible with other require patches.
  • 7155fd4: Simplify DeveloperConsolePseudoterminal#eval even further.
  • 0a3e545: Fixes significant regression of plugin loading performance.
  • d7918a9: Simplify code for evaluating code inputted via the developer console pseudoterminal.

3.11.0

Minor Changes

  • 289ec4e: Add command “Open developer console”.
  • d22f7bf: Add setting Expose internal modules.

Patch Changes

  • 53e76ca: Add settings sections.

Pre-changesets Changelog

  • Upgrade minimum Obsidian version to v1.2.8. (85d498d7cecf28b07e0562c4d9c1c793bf0344c0)

Fixes

  • Fix the command to export settings to clipboard. (993dff6c94b7e70e53c42afdad3fa8e56324a3aa)
  • Fix lifecycle management. (993dff6c94b7e70e53c42afdad3fa8e56324a3aa, 46771b52d6db6c1523a959d8204bc921bd7121ca, 30377ac69a596a1e38fab881510f840fe66a5afc)
  • Fix terminal throttling. (993dff6c94b7e70e53c42afdad3fa8e56324a3aa, 279c7ff8ca187e4efdb583cbac4a1d931c93713ebcd569e156a7637a90e7cfbd8cba3610ef6752d6)
  • Fix updateView not updating the inner title. (45603f33109f10be0bc7c040fa1addc42153d92f)
  • Fix failing to load the plugin if settings are malformed. (45603f33109f10be0bc7c040fa1addc42153d92f)

Full changelog: 3.10.0...3.11.0

3.12.0

Minor Changes

  • eab5420: Implement source mapping. Inputs are mapped to <stdin>.

3.12.1

Patch Changes

  • 9441f4b: Fix plugin potentially failing to load. This may happen if Community plugins > Debug startup time is disabled. When it is disabled, Obsidian removes source maps, which erraneously removes JavaScript strings intentionally containinig source map-like content.

3.12.2

Patch Changes

  • 7981fe3: Prefix source map location with plugin ID.
  • 8452b18: Respect existing source maps when source mapping.
  • 9751bc9: Limit console history to 1024 entries.

3.12.3

Patch Changes

  • 01942f8: Fix Python resizer not working with the latest Python packages.

3.13.0

Debloating data.json and bugfixes.

Minor Changes

  • 9afd2d0: Move settings recovery and lastReadChangelogVersion to localStorage. (6d612c570926387ee6b5991475cb993517a39d45)

Patch Changes