{ "main": { "id": "f290dba6faa373b1", "type": "split", "children": [ { "id": "47eb01fe2fbcf08b", "type": "tabs", "children": [ { "id": "47007bbe2be161cb", "type": "leaf", "state": { "type": "markdown", "state": { "file": "Minutes/2024-01-11.md", "mode": "source", "source": false } } }, { "id": "adb326c169cbc013", "type": "leaf", "state": { "type": "markdown", "state": { "file": "README.md", "mode": "source", "source": false } } }, { "id": "15571c3e82bd1547", "type": "leaf", "state": { "type": "terminal:documentation", "state": { "terminal:documentation": { "data": "# obsidian-terminal\n\n## 3.14.0\n\n### Minor Changes\n\n- 20cd669: Check Python and package versions as well after pressing the \"Check\" button in the \"Python executable\" settings. Resolves [GH#22](https://github.com/polyipseity/obsidian-terminal/issues/22).\n- 9a2a89b: Change focus and defocus hotkey to `Ctrl`+`Shift`+`` ` `` for macOS as well. Fixes [GH#31](https://github.com/polyipseity/obsidian-terminal/issues/31).\n\n### Patch Changes\n\n- 959915a: Add profile preset `iTerm2: External`. Helps with [GH#32](https://github.com/polyipseity/obsidian-terminal/issues/32).\n- 30198e0: Fix the macOS terminal profiles not setting the cwd properly. To fix your macOS terminal profiles, add `\"$PWD\"` (including `\"`) as the only argument of the profile.\n- a619365: Fix terminal finder broken when its width is small. (34e11eaf89813215290a25daf76c680be53dff1f)\n\n## 3.13.0\n\nDebloating `data.json` and bugfixes.\n\n### Minor Changes\n\n- 9afd2d0: Move settings `recovery` and `lastReadChangelogVersion` to `localStorage`. (6d612c570926387ee6b5991475cb993517a39d45)\n\n### Patch Changes\n\n- 0879e6d: Fix `layout-change` loop freezing Obsidian if another plugin calls `getViewState` in a `layout-change` listener. An example is `obsidian-image-toolkit` (https://github.com/sissilab/obsidian-image-toolkit/blob/c59bfa18c5cdb267a5f5a62637ff8e3b663cbb0f/src/main.ts#L39-L55). Fixes [GH#26](https://github.com/polyipseity/obsidian-terminal/issues/26).\n- e0b40c0: Fix caret scrolling the editor to make itself visible every second. (0879e6d0a8a6c1eebef730376bd7df58fdfba4a5)\n- 14bfcb1: Remove debug statements. (+f9fc1874e2c0b0b6c486ae6a13e52bf09cef588d)\n\n## 3.12.3\n\n### Patch Changes\n\n- 01942f8: Fix Python resizer not working with the latest Python packages.\n\n## 3.12.2\n\n### Patch Changes\n\n- 7981fe3: Prefix source map location with plugin ID.\n- 8452b18: Respect existing source maps when source mapping.\n- 9751bc9: Limit console history to 1024 entries.\n\n## 3.12.1\n\n### Patch Changes\n\n- 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.\n\n## 3.12.0\n\n### Minor Changes\n\n- eab5420: Implement source mapping. Inputs are mapped to ``.\n\n## 3.11.1\n\n### Patch Changes\n\n- 8bdd430: Make the `require` patch more compatible with other `require` patches.\n- 7155fd4: Simplify `DeveloperConsolePseudoterminal#eval` even further.\n- 0a3e545: Fixes significant regression of plugin loading performance.\n- d7918a9: Simplify code for evaluating code inputted via the developer console pseudoterminal.\n\n## 3.11.0\n\n### Minor Changes\n\n- 289ec4e: Add command \"Open developer console\".\n- d22f7bf: Add setting `Expose internal modules`.\n\n### Patch Changes\n\n- 53e76ca: Add settings sections.\n\n### Pre-changesets Changelog\n\n- Upgrade minimum Obsidian version to v1.2.8. (`85d498d7cecf28b07e0562c4d9c1c793bf0344c0`)\n\n**Fixes**\n\n- Fix the command to export settings to clipboard. (`993dff6c94b7e70e53c42afdad3fa8e56324a3aa`)\n- Fix lifecycle management. (`993dff6c94b7e70e53c42afdad3fa8e56324a3aa`, `46771b52d6db6c1523a959d8204bc921bd7121ca`, `30377ac69a596a1e38fab881510f840fe66a5afc`)\n- Fix terminal throttling. (`993dff6c94b7e70e53c42afdad3fa8e56324a3aa`, `279c7ff8ca187e4efdb583cbac4a1d931c93713e`..`bcd569e156a7637a90e7cfbd8cba3610ef6752d6`)\n- Fix `updateView` not updating the inner title. (`45603f33109f10be0bc7c040fa1addc42153d92f`)\n- Fix failing to load the plugin if settings are malformed. (`45603f33109f10be0bc7c040fa1addc42153d92f`)\n\n**Full changelog**: [`3.10.0...3.11.0`](https://github.com/polyipseity/obsidian-terminal/compare/3.10.0...3.11.0)\n\n## 3.10.0 (2023-07-10)\n\n**Features**\n\n- Add font terminal options. Closes [GH#20](https://github.com/polyipseity/obsidian-terminal/issues/20). (`ed9077348755cc863958a39a5cf45d4b55720d0d`..`f3145847ff37a438e090e33d399943e4461ad381`)\n\n**Fixes**\n\n- Fix typing into the find textbox not working. (`629143c952181524a886b07b4602290a207bf1fa`)\n- Fix wrong find results when no matches. (`691f1a2aa8dc759486f610ea3e7a7f83bc7e865a`)\n\n**Improvements**\n\n- Show when the profile is invalid in the `Type` setting. (`46c8598cb2e14dafd1e6266366e6479cb10e036c`)\n\n**Full changelog**: [`3.9.2...3.10.0`](https://github.com/polyipseity/obsidian-terminal/compare/3.9.2...3.10.0)\n\n## 3.9.2 (2023-07-01)\n\n**Improvements**\n\n- Improve Python code. (`977dd978b3acb3ae272407d9112f1c88433f0c4a`, `1757d54dee038cb35f8aca4e3e44b601d3ac6c4e`, `5d7c6a92aee1a7c07c88da611d457ec6bd00becd`)\n- Update npm packages to remove vulnerabilities. (`5d7c6a92aee1a7c07c88da611d457ec6bd00becd`..`aa2e327b6abdf91f93f8bb7c9db7e00d52a829b7`)\n\n**Full changelog**: [`3.9.1...3.9.2`](https://github.com/polyipseity/obsidian-terminal/compare/3.9.1...3.9.2)\n\n## 3.9.1 (2023-05-25)\n\n**Improvements**\n\n- Large refactoring of the code base. There may (or may not) be new bugs. (`8f910b554e97d2bb819575b59f9af3b85c8ac7b0`..`1a6476a9b67beb1083b7cabaf4a9d0782c7f49e2`)\n- Add support for `pnpm`. (`ed08a97ee2f50bd1869580f8b9f46e945be80093`..`621e8b56b91c5570fa7f628a27b6a7a6834c2b50`)\n- Remove confusing \"Malformed data\" notice. Fixes [GH#19](https://github.com/polyipseity/obsidian-terminal/issues/19). (`4d8a0fa459c5d982160bdfedc5e09ac9f9dd19f3`)\n\n**Full changelog**: [`3.9.0...3.9.1`](https://github.com/polyipseity/obsidian-terminal/compare/3.9.0...3.9.1)\n\n## 3.9.0 (2023-05-10)\n\n- The minimum Obsidian version has been increased to v1.2.5. (`dbc26a396f3d97cb625e577d10ebc537f5548493`)\n- Add donation options. (`15ef8207a3df00b23fc54d1a75ec842925f602ef`..`58df51d64977e93cd98b44f58f0f246e37953214`, `b59e915611f2ce6de83f5eab68165ac06726bcdc`, `420ee154c526298387fb52fb4c40b432486793b3`)\n\n**Features**\n\n- Implement top-level `await` in the developer console. (`7d2219e9bceef8459504c820099ff3c61bd737bd`)\n- 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`](sources/%40types/obsidian-terminal.d.ts). (`557fd14fc31f0da351d1690852d387f2fd600fac`)\n- Add setting `Open changelog on update`. (`881f39889974a543bac876f933e1e330bfff6f27`)\n\n**Improvements**\n\n- Cleanup documentation view. Extra useless functions are removed. (`7c3e4dae5112f6d95780c610219a3c5dd4098364`)\n\n**Full changelog**: [`3.8.0...3.9.0`](https://github.com/polyipseity/obsidian-terminal/compare/3.8.0...3.9.0)\n\n## 3.8.0 (2023-04-29)\n\n**Features**\n\n- Patch `require` so that `require(\"obsidian\")` works in the developer console. (`89cf2cc34a64f8cd373c8e3dd8da1e7b3f020f5c`)\n- Add internal support for custom terminal options. (`80df07f698450947b04ef2f5b69e11ce52f5d9dc`)\n- Add raw data editing for profiles like the one for settings. You can use this to configure terminal options (refer to [`xterm.js` documentation](https://github.com/xtermjs/xterm.js/blob/2fdb46919ce7a329afe65fe69bcf948d310a2b8a/typings/xterm.d.ts#L26)). An UI for terminal options will be added shortly. Address [GH#11](https://github.com/polyipseity/obsidian-terminal/issues/11) and [GH#16](https://github.com/polyipseity/obsidian-terminal/issues/16). (`fbe2de717c5e46436c929240c8450839139ce7c1`)\n\n**Fixes**\n\n- Fix re-enabling plugin overwriting history due to unloaded CSS. (`e02e43918c82dcb8f9641dc2ca2be208e23a3caa`)\n\n**Improvements**\n\n- Improve the icon for `whole words` in find in terminal. (`dfb3da51878bd8b7e9004afffc9097e3e01c79a8`)\n- Decrease loading time by ~20%. (`c4ea4912e5f9b412d31df70b3881570a47faebae`)\n\n**Full changelog**: [`3.7.0...3.8.0`](https://github.com/polyipseity/obsidian-terminal/compare/3.7.0...3.8.0)\n\n## 3.7.0 (2023-04-11)\n\n**Features**\n\n- Add 3 profile presets: 'powershell: External', 'powershell: Integrated', and 'pwsh: External'. `powershell` stands for Windows PowerShell while `pwsh` stands for PowerShell Core. (`1767d2d9f80a269ba24eecd0c45fd8bf0ed9050c`)\n- Color messages in developer console. (`107826a45b255367f336e00e0cb518f1851a8306`)\n\n**Improvements**\n\n- Speed up (re)starting a new developer console significantly. (`5a407cc9ed9b3e985f63d56aa7aed4a3b17e33ae`)\n- Improve developer console messages significantly. (`e6b5ae83c448398105ec11444722852a6a1b11b4`)\n\n**Full changelog**: [`3.6.0...3.7.0`](https://github.com/polyipseity/obsidian-terminal/compare/3.6.0...3.7.0)\n\n## 3.6.0 (2023-04-04)\n\n**Features**\n\n- Add 'root directory' button next to working directory when editing a terminal view. (`4991ccb8548b3034f8f753924f1fbd95523259be`)\n- Add 'focus on new instance' setting. (`c7db57e1328da5883a3587d0d812905bc30f58e1`)\n- Add 'restore history' profile setting. (`c1b3a69dbd71d7fecc080e5b6791b81260dc6ccf`)\n- Add 'success exit codes' profile setting. (`3d9aaca914837df324200307e634d1f7f4cd42da`)\n\n**Improvements**\n\n- Developer console history can be kept now. (`7ced419b9762ff92a28cadf0355a54f0200b6209`)\n\n**Full changelog**: [`3.5.1...3.6.0`](https://github.com/polyipseity/obsidian-terminal/compare/3.5.1...3.6.0)\n\n## 3.5.1 (2023-03-28)\n\n**Fixes**\n\n- mobile: Fix 'Save to HTML'. It no longer does nothing on Android and soft locks Obsidian on iOS. (`b1201a089a3f3447e09249651434995b11bb283b`)\n\n**Features**\n\n- The latest commit for the plugin can now be installed using [Obsidian42 - BRAT](https://obsidian.md/plugins?id=obsidian42-brat). (`5f263690e80d6298eb02ffade41a10beedd4ce1f`..`bda61d4ee1a82c7b9694912ae0353e178f0f0756`)\n\n**Improvements**\n\n- Use CSS to hide the status bar, making the hiding customizable. (`84c55993db3d3e8a86d283e83df0c58dfa4d8eaf`)\n\n**Full changelog**: [`3.5.0...3.5.1`](https://github.com/polyipseity/obsidian-terminal/compare/3.5.0...3.5.1)\n\n## 3.5.0 (2023-03-20)\n\n**Features**\n\n- Add 6 external profile presets. Helps with [GH#16](https://github.com/polyipseity/obsidian-terminal/issues/16). (`c9a51249d35fe429d5cc4eb8a307612177de896e`)\n- Automatically pin new terminal tabs to avoid accidentally terminating terminals. Configurable in settings. (`beb24cc25802750b1681358e42fd74ccbe51f83a`)\n- Add support for dragging and dropping files into the terminal to paste their filepaths. See [GH#16](https://github.com/polyipseity/obsidian-terminal/issues/16). (`7c5e4617072d1b77a7d9f11b0e886c8e9d051f91`)\n\n**Fixes**\n\n- Fix invalid regex crashing find in terminal. (`9da6bb9494fa0079fb1b60a8140277e1dbff9860`)\n\n**Full changelog**: [`3.4.1...3.5.0`](https://github.com/polyipseity/obsidian-terminal/compare/3.4.1...3.5.0)\n\n## 3.4.1 (2023-03-14)\n\n**Fixes**\n\n- Fix error opening documentation. (`df085f2a505983592f7d50e31bdc3d52a89f29f3`)\n\n**Full changelog**: [`3.4.0...3.4.1`](https://github.com/polyipseity/obsidian-terminal/compare/3.4.0...3.4.1)\n\n## 3.4.0 (2023-03-14)\n\nThis update focuses on performance of plugin loading. The loading time has been decreased significantly, making it more viable for slow platforms (like mobile).\n\n**Features**\n\n- Add Git Bash preset. Helps with [GH#15](https://github.com/polyipseity/obsidian-terminal/issues/15). (`4b2b63cf2ab0477a4dcd22e78db7e4103c6b0d8c`..`d9543e88c407b19180a3f25371de7391f0160857`)\n\n**Improvements**\n\n- Throttle terminal resizing to reduce flickering. (`04899b5f6ae3eef1a4561ba022db5ebbab9f785f`..`f947c780c7c38f8bb4e2f02c163de0b72024dfe8`)\n- Compress JSON and text files, decreasing bundle size from ~1.8 MB to ~1.45 MB. (`ed2e4b671518ec79c6de8f11e3889cae574ea9cb`, `1e98d9429e788e472dc83caa61824a1338e54586`)\n- Reduce startup time by ~80%. (`fe93210ffd44ccf1b1e48d625963140f008fea83`, `a199af9baf212a419d3ff503878bd6b835e762f4`..`ddd3f3a16e67d29b4ba3a07beeeae05cfcb36fc4`)\n\n**Miscellaneous**\n\n- Add npm commands to install the plugin. (`854e1338072f325b6e450817b568244f89693dce`)\n\n**Internals**\n\n- Make monkey patches more resilient to errors. (`af35b0176e1f11e32be5764ff17f93a2a01e8f7f`)\n\n**Full changelog**: [`3.3.0...3.4.0`](https://github.com/polyipseity/obsidian-terminal/compare/3.3.0...3.4.0)\n\n## 3.3.0 (2023-03-06)\n\nJust a small release to push out the unpublished changes.\n\n**Features**\n\n- Add Windows Subsystem for Linux preset as suggested in [GH#14](https://github.com/polyipseity/obsidian-terminal/issues/14). (`7a787996ddf96403ee29dfb13c0f9a9961853474`..`720388c0fdf0833137df479e43f24524939252c2`)\n\n**Improvements**\n\n- Improve startup time significantly by initializing developer console on demand. (`c023f15e48c04cda8ecd3e4a4cf9f258e86f4a5e`)\n- Stablize CSS class names for custom Svelte components. This should make it way easier to maintain custom CSS for them. (`d9e306563c8b8396c79c4b57e69287af45b604b3`)\n- Rewrite developer console paging algorithm. It should fix most (if not all) bugs with it, including resizing. (`8a94ef19610e2d4b689dde4ae5bc5843d55b264f`)\n\n**Fixes**\n\n- Fix creating instances near existing ones in left and right leaves. (`f055a3b8e77e0349eacbf66a55a21f7784280061`)\n\n**Full changelog**: [`3.2.0...3.3.0`](https://github.com/polyipseity/obsidian-terminal/compare/3.2.0...3.3.0)\n\n## 3.2.0 (2023-02-27)\n\nEmulating a text area in a terminal is insane...\n\n**Notices**\n\n- The minimum API version has been bumped to v1.1.13. Please update your app to the latest version. (`e2733c5c36003db5556819088b50bad29671d4e0`)\n\n**Features**\n\n- Developer console terminal is now interactive. You can evaluate code like the normal developer console now. (Spent too much time on this.) (`bcdd8dbff0d652c8eb9a389f734db2c3a5891323`...`e2d8690767f81958b1a0d95ac412a12ac3ab0c33`)\n- You can set custom title of the terminal from the shell (if your shell supports it). (`3718829159b1c5960dec430df78ed5d70c4a9abb`)\n- Four new options for 'New instance behavior'. They are 'New left tab', 'New left split', 'New right tab', and 'New right split'. (`bcdd8dbff0d652c8eb9a389f734db2c3a5891323`)\n\n**Improvements**\n\n- All settings should have an icon representing it. (`eb1a647d0336041a7f705a3476f18bd5ed738913`)\n- Improve find in terminal.\n - Autofocus on the find input when you activate it. (`7d0c857e9bd68e4b15028dc0e5e9cc5e187ac5f5`)\n - Pressing `Esc` when focused on find in terminal closes it. (`2ce8bdcd182c3abaf20bddacf925a84693cb8e50`, `7f13dd47fd5dab814bf9028a12f5e91c2bbdf67d`)\n - Add ARIA labels. (`c747a490a158c7891effb24642d790ca58699de9`)\n- Improve working directory handling to reduce confusion like in [GH#12](https://github.com/polyipseity/obsidian-terminal/issues/12). (`55b917052b371eb566976af7d13b6345c64554ef`, `985b6100ef14e9f0933de0859dd0e8872e217490`)\n- Add double confirm dialog hint. (`0f043376fb6f2528b826066128666baa855c774d`)\n- Make terminal resizing extremely responsive. (`73a7836522d56e92b064a76a09bf18fc87d7ec42`)\n- Find in terminal now has intro and outro transitions. (`bcdd8dbff0d652c8eb9a389f734db2c3a5891323`...`ef39cb1177af6cc108f8e61d179eff89056b48f8`)\n- Add 'Clear' button to terminal context menu. (`1a2f3104b6034065b1f7e1a0e5cd410254eef52c`)\n\n**Fixes**\n\n- Fix some translation strings. (`88cbcf603ff0429d26f1616b7af67bf4cf27f3f9`, `2a4a4cfe45f4ffd787feb134ef0545af7a832fb5`)\n- Unfocusing terminal also works when find in terminal is focused. (`f7cde90970128bd4bbf1578fb2e1d3249451a628`)\n- Improve compatibility with pop-out windows. (`798b2988875e0688f7602efb20fbd6702edf00f9`..`59955f4ee1e9102dd956537464e53b88cc1a6d12`, `f38d0082a0fc9cccbb75c7383aa6c35810b1e9b8`..`7b8364086873ebeee11fd506c2f139708be6e740`)\n\n**Internals**\n\n- Load translations on demand. (`268c684ec97f858d5a6ef030130b834eda305442`)\n- Delay removing exit code temp file to print less warnings to the console. (`6923553979451e1da6200c7ac01e637f2f2563ae`)\n- Avoid using non-standard functions. (`44dcfaf89f7638e77e7e0c0306c12c14ac613e00`, `8de1c59e2e6ca6afebf4c7f0fd676077d1a07502`)\n- Only create one `ConsolePseudoterminal`. (`bd97d08b1186584d607a8530b116c1aad1d9a761`)\n- Use reference-counted `RefPseudoterminal` in preparation for duplicating terminals. (`02249373db897a683628cd8363199ba512d55686`)\n\n**Full changelog**: [`3.1.0...3.2.0`](https://github.com/polyipseity/obsidian-terminal/compare/3.1.0...3.2.0)\n\n## 3.1.0 (2023-02-20)\n\nThis update focuses on quality of life improvements.\n\n**Notices**\n\n- You can actually download the plugin on mobile now. Somehow this has not been caught for a long time.\n- 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.\n\n**Features**\n\n- 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`)\n- Add importing settings and exporting settings from the command palette. Using a file requires navigating to a markdown file first. (`e76949eb6694fcc4655a3b0d269116e199dc17b1`)\n- Add raw editing of settings. You can import and export settings there as well. (`6b8314252451d42c4de5a0d0e9218a9617e3cca8`)\n- Make history navigation buttons of the terminal view work. Using the `Edit` context menu item will add history. (`69c49596b289b9de8d91f4315ed1d719c8a5a189`)\n- 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`)\n- Open changelog on plugin update. (`29baeb4914ace485c6f3f3d4b489f1fdd876af87`)\n- Intercept all key when the terminal is focused. (`4e18bdc49320b8230dec5ad155e67692cd79b40d`)\n- 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`)\n- Add 2 settings to control where to open terminal. Closes GH#3. (`ba871ff161d536ea8d6576d8f7467f4425797370`)\n- Add Python executable checking button in profile settings. It checks and prints the version in a notice. Could help with GH#9. (`dce6ead590417c2df470f327388f8f67bae2f5a5`..`1521bd5fd5d59012f94ca35aeb21e48c0c9b9929`)\n- Open readme on first install of the plugin. (`0e89d05b0269f9e912094f3364a33f6a1f65b3e6`)\n\n**Improvements**\n\n- Improve typing negative numbers in settings. (`e89f36a8f957524b685452d4c7cd1221e1595839`)\n- Make settings UI <Tab>-friendly. (`196f1230e0e3e8a2411318d822fbf2f94880a81e`..`19c3fa8cc3f34e00fc874bcbbafe96ab1466c4ea`)\n- Various minor improvements to UIs.\n- Ribbons translate automatically. (`22a299013504439aecd78db4456a6866c47ebd67`..`f58cbff9ff941b67072f64eae9ed2674bd4400fe`)\n- No more empty terminal tab name (`Terminal: `). (`535aa52a46fe67ffed93cd84d7903bfe1442c493`)\n- More information about profiles are displayed. (`eb73553fb53e8292b9e73088567bc1dfcc61f322`, `8b45a6e420a1b3130351c964f3240c5cbecd398c`..`5f59ab6d60d51635214f54123e34d61b7aa87cc3`)\n\n**Fixes**\n\n- Fix a setting reset button. (`555001371e16562bb34a92291571d1d2f82d5b7e`)\n- Mobile: Fix unclickable modal close button. (`e9fc80f68a353bb1c60d29c45ccd5f5baaf058ac`)\n- Fix spawning terminal notice spam. (`d8a69103629340970589a23e2d71120ef2111052`)\n- Make plugin downloadable on mobile by downgrading minimum app version. (`165b414e68e26027bcf677795bdc5d2d01380680`)\n- Fix empty Python executable not disabling Python. Fixes GH#8. (`09f2b3d1b0ae23867827977f2dbbba6b6f4f6460`)\n- Windows: Fix pressing <Ctrl+C> exiting the terminal resizer. (`5bff3f0749f16be80bfeb8a3ba903b0f8c6f79c4`)\n- Mobile: Fix bottom of terminal view covered by navbar. (`3230ca61defe56429358fcf368fade77abb6991d`, `dc875923e67300e2a0826d4e9332c51c2f42c19b`)\n\n**Internals**\n\n- Improve UI code using `UpdatableUI`.\n- Potentially invalid data are validated. If invalid, they are fixed and logged. (`ad9e9bf0c2def5e4bcb999fdff05b776e988d11b`, `1d4cc6abd5ab0bba1a74d9c7aa1854d5e949aecf`, `d6c1b5b298114cd267e2d7101a053e2dfb60a1e1`)\n- Rewrite translation files to use vocabularies. (`c5ba24d8707fc814a3d5d87f0e9ace97124ffd2e`)\n- Handle missing translation keys and interpolation. (`575cbfeb4293f7d602124f6470f5fb95ccf3b99c`)\n- Improve plugin loading. (`71f2e948c8dcee77ced2f772aeac204ab7f8dcf5`)\n\n**Miscellaneous**\n\n- Change license from \"MIT\" to \"AGPL-3.0-or-later\". (`77d9d9477b0dc1d56ab3b0cd36d3ba53ef5e52ff`)\n- Improve documentation. Closes GH#4 and GH#6. (`57a85254e1fd7bf9ed5a6feab08784b26d983090`, `25df148d992056b8378ff42d459120f4c48b52f3`)\n\n**Full changelog**: [`3.0.0...3.1.0`](https://github.com/polyipseity/obsidian-terminal/compare/3.0.0...3.1.0)\n\n## 3.0.0 (2023-02-12)\n\nA major version bump as there are many shiny new features this time! ✨\n\n**Notices**\n\n- Please reconfigure your settings. Old settings will likely be overwritten.\n- Now usable and useful on mobile! (You can only open developer console, however...)\n\n**Features**\n\n- Implement terminal profiles! Comes with several presets. (`dda444885bd032fc4c85e9d9b95ace90be706d68`)\n- Implement editing arguments. (`dda444885bd032fc4c85e9d9b95ace90be706d68`)\n- Allowing specifying Python executable per profile. (`dda444885bd032fc4c85e9d9b95ace90be706d68`)\n- Add buttons to undo and reload all settings. (`d12898142b16a3daed0b1e4826b5f759fecaffc2`)\n- Add commands and context menus to select terminal profile. (`804a3448f58d44a6bea9cccfde579fb1fc7ed4cd`)\n- Add a ribbon to select terminal profile. (`9ea5c140102342e6916c596257ce32c16c440b87`)\n- New terminal type: Console. It prints messages from the developer console. Works on mobile. (`3619f5865d054269819095cbad912184377e66e8`)\n- Implement editing terminal. You can change terminal profile and working directory. (`c9909513604d5b2b2f15cbe9dbeb9936a7c85018`)\n\n**Fixes**\n\n- Fix unable to find after terminal restart. (`5586baa16320da28acb6c3a64f4b73c58e760013`)\n- Fix escaping arguments. (`a4fd03d737fe86b1d2ccd9bb59aa0429445a4fb0`)\n- Make context menu usable on mobile by keeping `contentEl`. (`0ec66b4e632a272e199b7c506189ef303a5b5b97`)\n- Fix updating terminal tab name. (`1e7adcc23abeef98fb96ac587aaf4912209af10d`)\n- Fix find in terminal styling on mobile. (`7de6c2a69715882e076fae5b42940daa7c28add6`..`35e8e5f6fdeb90986b193a4bfcab952788faa1ff`)\n\n**Internals**\n\n- Improve code, as always.\n- Improve build scripts.\n- Settings are validated and fixed on loading. (`5b78d4d10f1dff36abfc30c6695ac2755eb8045d`)\n- Freeze `as const`-ed objects. (`5023e90fd54a9457d1182526e4d5d18e22311049`)\n- Update npm packages.\n\n**Full changelog**: [`2.11.0...3.0.0`](https://github.com/polyipseity/obsidian-terminal/compare/2.11.0...3.0.0)\n\n## 2.11.0 (2023-01-28)\n\n**Features**\n\n- Add GPU acceleration! Now scrolling the terminal is super smooth. (`078c36818bfbb038501bd4302e5c45ead53f12ba`)\n- Improve settings UI. (`e3790ae02a7839aca2ef8659a16fcacebbc02d52`)\n- Add setting to specify terminal renderer. (related to GPU acceleration) (`e029c710f3cda5b9dd209c517702ad1360754f20`)\n- Add find in terminal function! Right-click terminal tab header to access it. (`925328b32c11470ae195b5061afe05b84d0f0d1b`)\n\n**Fixes**\n\n- Fix unable to unfocus from terminal. (`22cd684673b69860f442d86cac5d2ae9546c85a2`)\n- Fix reset all settings not resetting all settings. Again... (`270530dde452ef0db5a0bf5ee813dc6d7072fa79`)\n- Decrease the chance that the terminal resizer fails to initialize. (`ba9c34f4be014d641670ba1b01d53ec6d1723c18`, `781a4ec764628439aca519d7cc31e69f84e7f00e`)\n- Improve accuracy of terminal resizer. (`76c85dffda284e95a1deb234198bbf4db2e7fb8a`)\n\n**Internals**\n\n- Housekeeping.\n- Handle more uncaught errors.\n- Add several minor terminal addons. (`9d3e38acf096517f5425fd2dd7c53a45ed5bbfaf`..`6ab523fbe7f328e758c7e6d88e149ba95b769d7a`)\n- Log discarded errors. (`ab836e6bc692cd3806ee0ab77aa78a01d2211f4b`)\n- Fix encoding of Python stdios. (`8fbb087d6f00798434118bc86c46a4f15ad6b37b`)\n- Make `win32_resizer.py` report inability to find the correct window. (`028cde8159a12e7f346db74a472bdcb8c0fed907`)\n\n**Full changelog**: [`2.10.0...2.11.0`](https://github.com/polyipseity/obsidian-terminal/compare/2.10.0...2.11.0)\n\n## 2.10.0 (2023-01-23)\n\n**Notices**\n\n- 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.)\n- Please reset your settings and reconfigure it.\n- Linux, macOS: Please specify a terminal emulator (not a shell) for external terminal, and a shell (not a terminal emulator) for internal terminal.\n- 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.\n- 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.\n- mobile: You can only change settings on mobile for now.\n- 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.\n\n**Features**\n\n- Terminal view no longer closes when the underlying process terminates. (`934eb24e2c7106e1122c8c29e4160ca5d55749ef`)\n- Add terminal restoration message in the format of ` * Restored history at (time)`. (`5dd1efb5709af6d5f7dae7ee5d4b813fc4156612`)\n- Add menu to restart terminal and resizer. Access by right-clicking terminal tab header. (`313b4b8f0c2ec2f71d79fd519925aab71cfff910`)\n- Add settings to disable annoying notices. (`602954ee0ee619368ffb770310262656ee1a1551`)\n- Add settings to specify external terminal separately. (`a80466f309483f6971c29b85d5825449ab93c448`)\n\n**Fixes**\n\n- Terminal view persists when updating the plugin. (`934eb24e2c7106e1122c8c29e4160ca5d55749ef`)\n- Windows: Pressing `Ctrl-C` will no longer close the resizer sometimes. (`fc95167374d3174ce94ce47ecc8bb41709b2c535`)\n- Fix \"reset all\" not resetting all settings. (`133a141e10b09f9bf29c59ed5ffaa6cde5594b72`)\n- (See notices) Mobile: Fix plugin not loading. (`3b55de2c48bb5bbcb35f7a4d5a533b58d520670d`..`63c99375fbf29ef9fa6cbf27dd527071987a13fd`)\n- (See notices) Linux, macOS: Fix external terminal not opening by separating external and internal terminal executable. (`a80466f309483f6971c29b85d5825449ab93c448`)\n- (See notices) macOS: Fix external terminal not starting in the specified cwd. Might not work with non-default terminals. (`0b66970f065160e713067bb930bedf97f7f71793`)\n\n**Internals**\n\n- Housekeeping.\n- Refactor terminal files.\n- Handle more uncaught errors. Less errors in the developer console!\n- Update npm packages. (`02f455b7c8b196116d45d98dd8fe51f750671b59`)\n- Improve build scripts. (`02b0174ec8b6252dcd98fbc1925069db41d5ab23`)\n\n**Full changelog**: [`2.9.0...2.10.0`](https://github.com/polyipseity/obsidian-terminal/compare/2.9.0...2.10.0)\n\n## 2.9.0 (2023-01-21)\n\nAfter lots of hard work, v2.9.0 is finally ready! 😅\n\n**Fixes**\n\n- 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](https://github.com/polyipseity/obsidian-terminal/issues/2). (`7812e8f148a0f52c2f576dded17266de07e3cebc`..`5dbea610f75dbadce28d54b90c8549fb6c24fc6e`)\n- Change default Python executable to `python3` to avoid starting Python 2. (`ba931427b1e5e2dd4a716ff90946e7a855eb5aea`)\n- Fix error handling. (`905d52e06eb83c6f915c9bb4fa4fcb2afece7327`..`8ac982e97ab32249135ffe36cc7ffc03548af059`)\n\n**Internals**\n\n- Validate language files. (`e919a7cf4fa165a92dc9c91f40f448ef9ae999c5`..`29fdad08527e7b798277d0aed4b231aedf77105e`)\n- Housekeeping.\n\n**Miscellaneous**\n\n- Allow plugin to be enabled on mobile. It does nothing though. (`cb40072e533b1dc20d441485817bced1b49b55ea`..`b400a4412f29fda901e579b7b2968305579ac4f1`)\n- Add all languages available in Obsidian (untranslated except for 2). (`29fdad08527e7b798277d0aed4b231aedf77105e`)\n- Update translations.\n- Update `README.md`.\n\n**Known bugs**\n\n- Opening external terminals is still broken on Linux and macOS.\n\n**Full changelog**: [`2.8.1...2.9.0`](https://github.com/polyipseity/obsidian-terminal/compare/2.8.1...2.9.0)\n\n## 2.8.1 (2023-01-14)\n\n**Fixes**\n\n- Fix failing to load plugin. (`fc07030d02699323f103b9609590ca5f6d6245ef`)\n- Housekeeping.\n\n**Full changelog**: [`2.8.0...2.8.1`](https://github.com/polyipseity/obsidian-terminal/compare/2.8.0...2.8.1)\n\n## 2.8.0 (2023-01-14)\n\n**Features**\n\n- Add 2 new plugin settings.\n - Hide status bar (`86c6602bd2b6b2e93f13e182ae11daa413a28cf3`)\n - Enable Windows 'conhost.exe' workaround (`e2710eca0e38570e812cd7beb467b71223a4696c`)\n\n**Improvements**\n\n- Log error and notify user if terminal resizer fails to start. (`5be0367243ad9a4655f9b09575d6a17ee317a707`)\n\n**Fixes**\n\n- Fix terminal not starting if terminal resizer fails to start. (`459ac226e08bc8898885731a41de6406af10c322`)\n- Fix text escaping unnecessarily in notice messages. (`0dc8152517d29f896021beeafd355c4f2b8d2907`)\n\n**Full changelog**: [`2.7.0...2.8.0`](https://github.com/polyipseity/obsidian-terminal/compare/2.7.0...2.8.0)\n\n## 2.7.0 🥳 (2023-01-12)\n\nThe plugin has just been [accepted](https://github.com/obsidianmd/obsidian-releases/pull/1472) into community plugins! 🥳\n\nYou can now get the plugin here instead: https://obsidian.md/plugins?id=terminal\n\nNo, there is no celebration for this. 😞\n\n**Features**\n\n- Add setting to configure or disable Python terminal resizer.\n\n**Fixes**\n\n- Fix integrated terminal not resizing when the terminal is not focused.\n- Fix integrated terminal window not hidden when Python terminal resizer is unavailable.\n- Fix potential issues with `cmd.exe` argument escaping.\n- Housekeeping.\n\n**Others**\n\n- The view type of terminal is changed from `terminal:terminal-view` to `terminal:terminal`. Existing views will break unless you know how to modify `.obsidian/workspace.json` to fix it.\n- Improve `README.md` significantly.\n- Create `CHANGELOG.md` (the file you are viewing now).\n\n**Full changelog**: [`2.6.1...2.7.0`](https://github.com/polyipseity/obsidian-terminal/compare/2.6.1...2.7.0)\n\n## 2.6.1 (2023-01-06)\n\n- Fix 2 bugs.\n- Housekeeping.\n\n**Full Changelog**: [`2.6.0...2.6.1`](https://github.com/polyipseity/obsidian-terminal/compare/2.6.0...2.6.1)\n\n## 2.6.0 (2023-01-05)\n\n- Add the `Save as HTML` functioin to the tab context menu.\n\n**Full Changelog**: [`2.5.1...2.6.0`](https://github.com/polyipseity/obsidian-terminal/compare/2.5.1...2.6.0)\n\n## 2.5.1 (2023-01-02)\n\n- No user-facing changes.\n- Fix tiny memory leak sources.\n- Less errors in the developer console.\n- Housekeeping.\n\n**Full Changelog**: [`2.5.0...2.5.1`](https://github.com/polyipseity/obsidian-terminal/compare/2.5.0...2.5.1)\n\n## 2.5.0 (2023-01-02)\n\n- Implement terminal history restoration.\n- Change default Linux terminal executable to `xterm-256color`.\n- Housekeeping.\n\n**Full Changelog**: [`2.4.2...2.5.0`](https://github.com/polyipseity/obsidian-terminal/compare/2.4.2...2.5.0)\n\n## 2.4.2 (2023-01-01)\n\n- Change icons of reset buttons to icons that represent the corresponding settings.\n- Improve a setting translation.\n- Housekeeping.\n\n**Full Changelog**: [`2.4.1...2.4.2`](https://github.com/polyipseity/obsidian-terminal/compare/2.4.1...2.4.2)\n\n## 2.4.1 (2023-01-01)\n\n- No user-facing changes.\n- Various minor code improvements.\n\n**Full Changelog**: [`2.4.0...2.4.1`](https://github.com/polyipseity/obsidian-terminal/compare/2.4.0...2.4.1)\n\n## 2.4.0 (2023-01-01)\n\n- Add language settings.\n - Translated text are dynamically updated when language is changed.\n- Add support for 2 locales: `简体中文` (`zh-Hans`), `繁體中文` (`zh-Hant`)\n- Fix various bugs.\n- Improve code.\n\n**Full Changelog**: [`2.3.3...2.4.0`](https://github.com/polyipseity/obsidian-terminal/compare/2.3.3...2.4.0)\n\n## 2.3.3 (2022-12-31)\n\n- Fix terminal persistence across Obsidian restarts.\n\n**Full Changelog**: [`2.3.2...2.3.3`](https://github.com/polyipseity/obsidian-terminal/compare/2.3.2...2.3.3)\n\n## 2.3.2 (2022-12-31)\n\n- No user-facing changes.\n- Improve code.\n\n**Full Changelog**: [`2.3.1...2.3.2`](https://github.com/polyipseity/obsidian-terminal/compare/2.3.1...2.3.2)\n\n## 2.3.1 (2022-12-31)\n\n- Configure esbuild to build an even smaller `main.js`.\n- Fix status bar hiding and error ignoring.\n- Improve code.\n\n**Full Changelog**: [`2.3.0...2.3.1`](https://github.com/polyipseity/obsidian-terminal/compare/2.3.0...2.3.1)\n\n## 2.3.0 (2022-12-30)\n\n- Hide status bar when the terminal is focused to avoid obstruction.\n- Improve terminal resizing.\n- Change internal structure of settings data. (You may need to reset or delete settings.)\n- Potentially reduce plugin loading time.\n- Code improvement.\n\n**Full Changelog**: [`2.2.0...2.3.0`](https://github.com/polyipseity/obsidian-terminal/compare/2.2.0...2.3.0)\n\n## 2.2.0 (2022-12-29)\n\n- Commands now work outside of editing mode (i.e. reading mode).\n- Improve reporting exit code of terminals.\n- Fix web links in terminal view not opening.\n- The backing terminal is automatically resized with Python 3.\n - Makes the terminal more usable generally, especially TUIs.\n - Tested on Windows only.\n - Python 3 is only required for this enhancement, otherwise it remains optional.\n - Run `pip install psutil pywinctl` before using.\n- Code improvement.\n\n**Full Changelog**: [`2.1.0...2.2.0`](https://github.com/polyipseity/obsidian-terminal/compare/2.1.0...2.2.0)\n\n## 2.1.0 (2022-12-27)\n\n- Add `Notice timeout` setting.\n- Various minor quality-of-life changes.\n- Implement internationalization and localization.\n- Fix various bugs.\n- Optimize code.\n\n**Full Changelog**: [`2.0.0...2.1.0`](https://github.com/polyipseity/obsidian-terminal/compare/2.0.0...2.1.0)\n\n## 2.0.0 (2022-12-27)\n\n- Add functionality to embed terminals inside Obsidian.\n\n**Full Changelog**: [`1.0.0...2.0.0`](https://github.com/polyipseity/obsidian-terminal/compare/1.0.0...2.0.0)\n\n## 1.0.0 (2022-12-26)\n\nInitial release.\n\n**Full Changelog**: [`0.0.1...1.0.0`](https://github.com/polyipseity/obsidian-terminal/compare/0.0.1...1.0.0)\n\n## 0.0.1 (2022-12-26)\n\n**Full Changelog**: [`0.0.0...0.0.1`](https://github.com/polyipseity/obsidian-terminal/compare/0.0.0...0.0.1)\n\n## 0.0.0 (2022-12-26)\n\n**Full Changelog**: [`717c0adec4eca8744da20e9d10a504f5edd95a3a...0.0.0`](https://github.com/polyipseity/obsidian-terminal/compare/717c0adec4eca8744da20e9d10a504f5edd95a3a...0.0.0)\n", "displayTextI18nKey": "translation:generic.documentations.changelog", "iconI18nKey": "asset:generic.documentations.changelog-icon" } } } }, { "id": "62036a98ae522a6e", "type": "leaf", "state": { "type": "terminal:documentation", "state": { "terminal:documentation": { "data": "# Terminal for Obsidian [![release](https://img.shields.io/github/v/release/polyipseity/obsidian-terminal)][latest release] [![Obsidian downloads](https://img.shields.io/badge/dynamic/json?logo=Obsidian&color=%238b6cef&label=downloads&query=$[\"terminal\"].downloads&url=https://raw.githubusercontent.com/obsidianmd/obsidian-releases/master/community-plugin-stats.json)][community plugin] [![Python](https://img.shields.io/badge/Python-≥3.10-gold?labelColor=blue&logo=Python&logoColor=white)][Python]\n\n[Buy Me a Coffee]: https://buymeacoffee.com/polyipseity\n[Buy Me a Coffee/embed]: https://img.buymeacoffee.com/button-api/?text=Buy%20me%20a%20coffee&emoji=&slug=polyipseity&button_colour=40DCA5&font_colour=ffffff&font_family=Lato&outline_colour=000000&coffee_colour=FFDD00\n[Obsidian]: https://obsidian.md/\n[Python]: https://python.org/downloads/\n[changelog]: https://github.com/polyipseity/obsidian-terminal/blob/main/CHANGELOG.md\n[community plugin]: https://obsidian.md/plugins?id=terminal\n[latest release]: https://github.com/polyipseity/obsidian-terminal/releases/latest\n[other things]: https://github.com/polyipseity/obsidian-monorepo\n[plugin library]: https://github.com/polyipseity/obsidian-plugin-library\n[repository]: https://github.com/polyipseity/obsidian-terminal\n[trailer]: https://raw.githubusercontent.com/polyipseity/obsidian-terminal/main/assets/trailer.png\n\nIntegrate consoles, shells, and terminals inside [Obsidian].\n\n[![Buy Me a Coffee/embed]][Buy Me a Coffee]\n\n__[Repository] · [Changelog] · [Community plugin] · [Other things] · [Features](#features) · [Installation](#installation) · [Usage](#usage) · [Contributing](#contributing) · [Security](#security)__\n\n![Trailer]\n\nFor first time users, read the [installation](#installation) section first!\n\nThis file is automatically opened on first install. You can reopen it in settings or command palette.\n\n## Features\n\n- Start external terminals from Obsidian.\n- Integrate terminals into Obsidian.\n- Has an emulated developer console usable on all platforms.\n- Supports multiple terminal profiles.\n- Has built-in keyboard shortcuts.\n- Automatically save and restore integrated terminal history.\n- Find in terminal.\n- Save terminal history as file.\n- Customize terminal appearance.\n\n## Installation\n\n1. Install plugin.\n\t- Community plugins\n\t\t1. Install the [plugin][community plugin] from community plugins directly.\n\t- Manual\n\t\t1. Create directory `terminal` under `.obsidian/plugins` of your vault.\n\t\t2. Place `manifest.json`, `main.js`, and `styles.css` from the [latest release] into the directory.\n\t- Building (latest)\n\t\t1. Clone this repository, including its submodules.\n\t\t2. Install [npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm).\n\t\t3. Run `npm install` in the root directory.\n\t\t4. Run `npm run obsidian:install ` in the root directory.\n\t- [Obsidian42 - BRAT](https://obsidian.md/plugins?id=obsidian42-brat) (latest)\n\t\t- See [their readme](https://github.com/TfTHacker/obsidian42-brat#readme).\n2. (optional for Windows, recommended) Install Python and dependencies.\n\t1. Install [Python] 3.10/+.\n\t2. (Windows only) Run `pip3 install psutil==5.9.5 pywinctl==0.0.50 typing_extensions==4.7.1`. \n\t3. Configure Python executable in plugin settings. Press the \"Check\" button to validate the Python configuration.\n3. Enable plugin.\n4. (optional) Configure plugin settings.\n\n## Usage\n\n- To start a new external or integrated terminal\n\t- Ribbon\n\t\t1. Click on the `Open terminal` ribbon.\n\t\t2. Choose the desired profile.\n\t- Context menu\n\t\t1. Right-click on files, folders, or tab headers.\n\t\t2. Choose the desired action (and profile).\n\t- Command palette\n\t\t1. Press `Ctrl`+`P` or click on the `Open command palette` ribbon next to the left window border.\n\t\t2. Choose the desired action (and profile).\n- To save and restore integrated terminal history\n\t1. Keep the terminal open when exiting Obsidian.\n\t2. Terminal history will be restored next time Obsidian is opened.\n- Additional actions\n\t- Includes\n\t\t- Find in terminal: (1), (4)\n\t\t- Clear terminal: (1), (4)\n\t\t- Restart terminal: (1)\n\t\t- Edit terminal: (1)\n\t\t- Save terminal history as file: (1)\n\t\t- Export, import, or edit settings: (2), (3)\n\t\t- Open documentation: (2), (3)\n\t- Available by\n\t\t- (1) Right-click on tab header/`More options`\n\t\t- (2) Open settings\n\t\t- (3) Open command palette\n\t\t- (4) Use keyboard shortcuts\n\n### Keyboard shortcuts\n\n__Terminal tab is focused__\n- Focus terminal: `Ctrl`+`Shift`+`` ` ``\n- Inherits global keyboard shortcuts\n\n__Terminal is focused__\n- Focus terminal tab/Unfocus terminal: `Ctrl`+`Shift`+`` ` ``\n- Clear terminal: `Ctrl`+`Shift`+`K`, `Command`+`K` (macOS)\n- Find in terminal: `Ctrl`+`Shift`+`F`, `Command`+`F` (macOS)\n\n### Profiles\n\nThis plugin comes with several profile presets that you can reference.\n\nWhen setting up a terminal profile, you need to distinguish between shells and terminal emulators. (Search online if needed.) Generally, integrated profiles only work with shells while external ones only work with terminal emulators.\n\n#### Examples\n\n__Shells__\n- Bash: `bash`\n- Bourne shell: `sh`\n- Command Prompt: `cmd`\n- Dash: `dash`\n- Git Bash: `\\bin\\bash.exe` (e.g. `C:\\Program Files\\Git\\bin\\bash.exe`)\n- PowerShell Core: `pwsh`\n- Windows PowerShell: `powershell`\n- Windows Subsystem for Linux: `wsl` or `wsl -d `\n- Z shell: `zsh`\n\n__Terminal emulators__\n- Command Prompt: `cmd`\n- GNOME Terminal: `gnome-terminal`\n- Konsole: `konsole`\n- Terminal (macOS): `/System/Applications/Utilities/Terminal.app/Contents/macOS/Terminal \"$PWD\"`\n- Windows Terminal: `wt`\n- iTerm2: `/Applications/iTerm.app/Contents/MacOS/iTerm2 \"$PWD\"`\n- xterm: `xterm`\n\n### Miscellaneous\n\nThis plugin patches `require` so that `require(\"obsidian\")` and other Obsidian modules work in the developer console. It is toggleable as `Expose internal modules` in settings.\n\nIn the developer console, a context variable `$$` is passed into the code, which can be used to dynamically change terminal options.\n\nThe full API is available from [`sources/@types/obsidian-terminal.ts`](sources/%40types/obsidian-terminal.ts).\n\n## Contributing\n\nContributions are welcome!\n\n### Todos\n\nThe todos here, ordered alphabetically, are things planned for the plugin. There are no guarantees that they will be completed. However, we are likely to accept contributions for them.\n\n- Connect to remote shells.\n- Copy terminal tabs.\n- Create ad-hoc profile in `Open terminal: Select`.\n- Detect sandboxed environment and notify users.\n- Edit profile before opening terminal in `Open terminal: Select` when a modifier key is pressed.\n- External link confirmation.\n- Filter console log by severity in the developer console.\n- Fix broken section links in builtin documentations.\n- Indicate that the terminal resizer has crashed or is disabled.\n- Shared terminal tabs.\n- Vim mode switch.\n\n### Translating\n\nTranslation files are under [`assets/locales/`](assets/locales/). Each locale has its own directory named with its corresponding __[IETF language tag](https://wikipedia.org/wiki/IETF_language_tag)__. Some translation keys are missing here and instead located at [`obsidian-plugin-library`][plugin library].\n\nTo contribute translation for an existing locale, modify the files in the corresponding directory.\n\nFor a new locale, create a new directory named with its language tag and copy [`assets/locales/en/translation.json`](assets/locales/en/translation.json) into it. Then, add an entry to [`assets/locales/en/language.json`](assets/locales/en/language.json) in this format:\n```JSONc\n{\n\t// ...\n\t\"en\": \"English\",\n\t\"(your-language-tag)\": \"(Native name of your language)\",\n\t\"uwu\": \"Uwuish\",\n\t// ...\n}\n```\nSort the list of languages by the alphabetical order of their language tags. Then modify the files in the new directory. There will be errors in [`assets/locales.ts`](assets/locales.ts), which you can ignore and we will fix them for you. You are welcome to fix them yourself if you know TypeScript.\n\nWhen translating, keep in mind the following things:\n- Do not translate anything between `{{` and `}}` (`{{example}}`). They are __interpolations__ and will be replaced by localized strings at runtime.\n- Do not translate anything between `$t(` and `)` (`$t(example)`). They refer to other localized strings. To find the localized string being referred to, follow the path of the key, which is separated by dots (`.`). For example, the key [`youtu.be./dQw4w9WgXcQ`](https://youtu.be./dQw4w9WgXcQ) refers to:\n```JSONc\n{\n\t// ...\n\t\"youtu\": {\n\t\t// ...\n\t\t\"be\": {\n\t\t\t// ...\n\t\t\t\"/dQw4w9WgXcQ\": \"I am 'youtu.be./dQw4w9WgXcQ'!\",\n\t\t\t// ...\n\t\t},\n\t\t// ...\n\t},\n\t// ...\n}\n```\n- The keys under `generic` are vocabularies. They can be referred in translation strings by `$t(generic.key)`. Refer to them as much as possible to standardize translations for vocabularies that appear in different places.\n- It is okay to move interpolations and references to other localized strings around to make the translation natural. It is also okay to not use some references used in the original translation. However, it is NOT okay to not use all interpolations.\n\n## Security\n\nWe hope that there will never be any security vulnerabilities, but unfortunately it does happen. Please [report](#reporting-a-vulnerability) them!\n\n### Supported versions\n\n| Version | Supported |\n|-|-|\n| latest | ✅ |\n| outdated | ❌ |\n\n### Reporting a vulnerability\n\nPlease report a vulerability by opening an new issue. We will get back to you as soon as possible.\n", "displayTextI18nKey": "translation:generic.documentations.readme", "iconI18nKey": "asset:generic.documentations.readme-icon" } } } } ], "currentTab": 1 }, { "id": "05bc0192019031d9", "type": "tabs", "children": [ { "id": "622476b778d9cab1", "type": "leaf", "state": { "type": "markdown", "state": { "file": "README.md", "mode": "source", "source": false } } } ] } ], "direction": "vertical" }, "left": { "id": "bf0e1b9221021564", "type": "split", "children": [ { "id": "859ab85499dde237", "type": "tabs", "children": [ { "id": "8549341c1cff42f9", "type": "leaf", "state": { "type": "file-explorer", "state": { "sortOrder": "alphabetical" } } }, { "id": "867fb554251503e4", "type": "leaf", "state": { "type": "search", "state": { "query": "", "matchingCase": false, "explainSearch": false, "collapseAll": false, "extraContext": false, "sortOrder": "alphabetical" } } }, { "id": "e4d06d34d7ed4590", "type": "leaf", "state": { "type": "bookmarks", "state": {} } } ] } ], "direction": "horizontal", "width": 300 }, "right": { "id": "315bb5e51013c285", "type": "split", "children": [ { "id": "82857fef719b051e", "type": "tabs", "children": [ { "id": "a26ebcd8c4032fd8", "type": "leaf", "state": { "type": "backlink", "state": { "file": "README.md", "collapseAll": false, "extraContext": false, "sortOrder": "alphabetical", "showSearch": false, "searchQuery": "", "backlinkCollapsed": false, "unlinkedCollapsed": true } } }, { "id": "6961e8f96faf80f6", "type": "leaf", "state": { "type": "outgoing-link", "state": { "file": "README.md", "linksCollapsed": false, "unlinkedCollapsed": true } } }, { "id": "c18ce75115061de2", "type": "leaf", "state": { "type": "tag", "state": { "sortOrder": "frequency", "useHierarchy": true } } }, { "id": "50e984f36a29bcd9", "type": "leaf", "state": { "type": "outline", "state": { "file": "README.md" } } } ] } ], "direction": "horizontal", "width": 300, "collapsed": true }, "left-ribbon": { "hiddenItems": { "switcher:Open quick switcher": false, "graph:Open graph view": false, "canvas:Create new canvas": false, "daily-notes:Open today's daily note": false, "templates:Insert template": false, "command-palette:Open command palette": false } }, "active": "8549341c1cff42f9", "lastOpenFiles": [ "Minutes/2024-01-11.md", "README.md", "Welcome.md", "Minutes" ] }