From b343c642c7067cb9bd4ca4d121d2fe550f14c034 Mon Sep 17 00:00:00 2001 From: Jianing Wang Date: Wed, 27 Dec 2023 16:04:27 +0800 Subject: [PATCH] version: main 2.3.7 lite 1.2.6 --- .../project.pbxproj | 4 +- .../project.pbxproj | 4 +- OpenInTerminal.xcodeproj/project.pbxproj | 10 +- .../Cursor.imageset/Contents.json | 21 ++++ .../Icons.xcassets/Cursor.imageset/Cursor.png | Bin 0 -> 47209 bytes OpenInTerminal/MainMenu.xib | 4 +- .../Base.lproj/Preferences.storyboard | 104 +++++++++--------- OpenInTerminal/StatusMenuController.swift | 2 +- OpenInTerminalCore/SupportedApps.swift | 2 + Podfile.lock | 6 +- README.md | 79 ++++--------- Resources/README-Lite.md | 27 +++-- Resources/README-de.md | 30 +---- Resources/README-tr.md | 31 +----- Resources/README-zh.md | 39 +------ 15 files changed, 138 insertions(+), 225 deletions(-) create mode 100644 OpenInTerminal/Icons.xcassets/Cursor.imageset/Contents.json create mode 100644 OpenInTerminal/Icons.xcassets/Cursor.imageset/Cursor.png diff --git a/OpenInEditor-Lite/OpenInEditor-Lite.xcodeproj/project.pbxproj b/OpenInEditor-Lite/OpenInEditor-Lite.xcodeproj/project.pbxproj index 9ce1691..bf91bfb 100644 --- a/OpenInEditor-Lite/OpenInEditor-Lite.xcodeproj/project.pbxproj +++ b/OpenInEditor-Lite/OpenInEditor-Lite.xcodeproj/project.pbxproj @@ -338,7 +338,7 @@ "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 10.12; - MARKETING_VERSION = 1.2.5; + MARKETING_VERSION = 1.2.6; PRODUCT_BUNDLE_IDENTIFIER = "wang.jianing.app.OpenInEditor-Lite"; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; @@ -361,7 +361,7 @@ "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 10.12; - MARKETING_VERSION = 1.2.5; + MARKETING_VERSION = 1.2.6; PRODUCT_BUNDLE_IDENTIFIER = "wang.jianing.app.OpenInEditor-Lite"; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; diff --git a/OpenInTerminal-Lite/OpenInTerminal-Lite.xcodeproj/project.pbxproj b/OpenInTerminal-Lite/OpenInTerminal-Lite.xcodeproj/project.pbxproj index a04073c..d29db04 100644 --- a/OpenInTerminal-Lite/OpenInTerminal-Lite.xcodeproj/project.pbxproj +++ b/OpenInTerminal-Lite/OpenInTerminal-Lite.xcodeproj/project.pbxproj @@ -354,7 +354,7 @@ "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 10.12; - MARKETING_VERSION = 1.2.5; + MARKETING_VERSION = 1.2.6; PRODUCT_BUNDLE_IDENTIFIER = "wang.jianing.app.OpenInTerminal-Lite"; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; @@ -378,7 +378,7 @@ "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 10.12; - MARKETING_VERSION = 1.2.5; + MARKETING_VERSION = 1.2.6; PRODUCT_BUNDLE_IDENTIFIER = "wang.jianing.app.OpenInTerminal-Lite"; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; diff --git a/OpenInTerminal.xcodeproj/project.pbxproj b/OpenInTerminal.xcodeproj/project.pbxproj index 4b1d94c..09360ee 100644 --- a/OpenInTerminal.xcodeproj/project.pbxproj +++ b/OpenInTerminal.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 51; + objectVersion = 54; objects = { /* Begin PBXBuildFile section */ @@ -934,7 +934,7 @@ "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 10.12; - MARKETING_VERSION = 2.3.6; + MARKETING_VERSION = 2.3.7; PRODUCT_BUNDLE_IDENTIFIER = wang.jianing.app.OpenInTerminal; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -960,7 +960,7 @@ "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 10.12; - MARKETING_VERSION = 2.3.6; + MARKETING_VERSION = 2.3.7; PRODUCT_BUNDLE_IDENTIFIER = wang.jianing.app.OpenInTerminal; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -983,7 +983,7 @@ "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 10.12; - MARKETING_VERSION = 2.3.5; + MARKETING_VERSION = 2.3.7; PRODUCT_BUNDLE_IDENTIFIER = wang.jianing.app.OpenInTerminalHelper; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; @@ -1007,7 +1007,7 @@ "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 10.12; - MARKETING_VERSION = 2.3.5; + MARKETING_VERSION = 2.3.7; PRODUCT_BUNDLE_IDENTIFIER = wang.jianing.app.OpenInTerminalHelper; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; diff --git a/OpenInTerminal/Icons.xcassets/Cursor.imageset/Contents.json b/OpenInTerminal/Icons.xcassets/Cursor.imageset/Contents.json new file mode 100644 index 0000000..eebe491 --- /dev/null +++ b/OpenInTerminal/Icons.xcassets/Cursor.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "Cursor.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/OpenInTerminal/Icons.xcassets/Cursor.imageset/Cursor.png b/OpenInTerminal/Icons.xcassets/Cursor.imageset/Cursor.png new file mode 100644 index 0000000000000000000000000000000000000000..b03ca96e89a91df22b684aa59c41fe9c99ae8b3d GIT binary patch literal 47209 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

N9W=um_k9 zZ$}_ewO~%W#tEpM+X6uiu95skL{gSXFw#eT=x09OxbO%z=Ns5Qb|RVeLt@&bnysfP zro_Cny^x$>p-|z~RMv$&ZI%FISVk=J8k8%ssOK3VGC(K20IOAz#5@hwnN&SIh6OuB_yEA=~>)-g5o1-;7OX5w*F0BYyXRkP8V5MK`A zYBm8-L$jlo-0%$UXvKYY4XhoI1Bgl+tr<|(3~)Sz3J{Nm6L7%YUF%yGB1QHfTW}i5 z*HC&#U^xgjW!)s(KjSdc0RzB|>2DhnKw%LNHW&>80}2FVV?eG%QVNF{wQ&JRZiih;1#Lw*+n#nXx$ZIfFNoDYX%aXsKEfJANZ(_wZH;< zXvd@#_k1WE(K;lf-m~me_Psz$gsJ~lA{tQeY5U4niJ%CLurPXwfs}?Kyo0aHPZB4< zPC~Mo1Yfo%J7{m$+L|wjA&q#7vyt$F>nEO%P%!CC0GZ0vr$q~p1wlFQjX2132qpl3 zVK*8oi<(SLq*lr7Bs|bYfAKGX#&fEgfs|9H;Iva≧fCKP&^X{i3hH-kh+9MFQ-^ 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\fm#EU}tL&v*Q83 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 zMG>+r^K#LCie3N!0000000000000000000000000000000000000000;QxIBHVl)# T>6tMV00000NkvXXu0mjf)|a9l literal 0 HcmV?d00001 diff --git a/OpenInTerminal/MainMenu.xib b/OpenInTerminal/MainMenu.xib index ebb34cc..a0b8a5f 100644 --- a/OpenInTerminal/MainMenu.xib +++ b/OpenInTerminal/MainMenu.xib @@ -1,8 +1,8 @@ - + - + diff --git a/OpenInTerminal/PreferencesWindow/Base.lproj/Preferences.storyboard b/OpenInTerminal/PreferencesWindow/Base.lproj/Preferences.storyboard index 9f1e035..f4cfe8b 100644 --- a/OpenInTerminal/PreferencesWindow/Base.lproj/Preferences.storyboard +++ b/OpenInTerminal/PreferencesWindow/Base.lproj/Preferences.storyboard @@ -1,8 +1,8 @@ - + - + @@ -63,11 +63,11 @@ - + - + - + @@ -98,15 +98,15 @@ - +

- - + + @@ -123,7 +123,7 @@ - + @@ -171,12 +171,12 @@ - + - + - + @@ -184,7 +184,7 @@ - + @@ -205,14 +205,14 @@ - - - + + + @@ -273,7 +273,7 @@ - + @@ -281,7 +281,7 @@ - + @@ -305,7 +305,7 @@ - + @@ -313,7 +313,7 @@ - + @@ -337,7 +337,7 @@ - + @@ -378,7 +378,7 @@ - + @@ -402,7 +402,7 @@ - + @@ -442,7 +442,7 @@ - + @@ -483,28 +483,28 @@ - + @@ -799,7 +799,7 @@ - + @@ -879,7 +879,7 @@ - + @@ -887,7 +887,7 @@ - + @@ -908,7 +908,7 @@ - + @@ -943,7 +943,7 @@ - + @@ -978,7 +978,7 @@ - + @@ -1013,7 +1013,7 @@ - + @@ -1084,7 +1084,7 @@ - + @@ -1162,7 +1162,7 @@ - + @@ -1170,7 +1170,7 @@ - + @@ -1178,7 +1178,7 @@ - + @@ -1301,10 +1301,10 @@ Gw - + - + diff --git a/OpenInTerminal/StatusMenuController.swift b/OpenInTerminal/StatusMenuController.swift index d8095ba..b5a3776 100644 --- a/OpenInTerminal/StatusMenuController.swift +++ b/OpenInTerminal/StatusMenuController.swift @@ -73,7 +73,7 @@ class StatusMenuController: NSObject, NSMenuDelegate { func assignKeyboardShortcutToMenuItem(_ menuItem: NSMenuItem, userDefaultsKey: String) { if let data = UserDefaults.standard.value(forKey: userDefaultsKey), let shortcut = NSKeyedUnarchiver.unarchiveObject(with: data as! Data) as? MASShortcut { - let flags = NSEvent.ModifierFlags.init(rawValue: shortcut.modifierFlags) + let flags = NSEvent.ModifierFlags.init(rawValue: shortcut.modifierFlags.rawValue) menuItem.keyEquivalentModifierMask = flags menuItem.keyEquivalent = shortcut.keyCodeString.lowercased() } else { diff --git a/OpenInTerminalCore/SupportedApps.swift b/OpenInTerminalCore/SupportedApps.swift index fd8a16c..9e2eb96 100644 --- a/OpenInTerminalCore/SupportedApps.swift +++ b/OpenInTerminalCore/SupportedApps.swift @@ -34,6 +34,7 @@ public enum SupportedApps: String, CaseIterable { case macVim = "MacVim" case typora = "Typora" case nova = "Nova" + case cursor = "Cursor" // JetBrains case appCode = "AppCode" case cLion = "CLion" @@ -121,6 +122,7 @@ public enum SupportedApps: String, CaseIterable { case .macVim: return "org.vim.MacVim" case .typora: return "abnerworks.Typora" case .nova: return "com.panic.Nova" + case .cursor: return "com.todesktop.230313mzl4w4u92" case .appCode: return "com.jetbrains.appcode" case .cLion: return "com.jetbrains.clion" case .fleet: return "com.jetbrains.fleet" diff --git a/Podfile.lock b/Podfile.lock index 8c24a12..8dca72b 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -1,5 +1,5 @@ PODS: - - MASShortcut (2.3.6) + - MASShortcut (2.4.0) DEPENDENCIES: - MASShortcut @@ -9,8 +9,8 @@ SPEC REPOS: - MASShortcut SPEC CHECKSUMS: - MASShortcut: 9c215e8a8a78f3d01ce56da48e2730ab66b538fa + MASShortcut: d9e4909e878661cc42877cc9d6efbe638273ab57 PODFILE CHECKSUM: 2b4279d7287cc3966eddd506fd6403f275c5b72d -COCOAPODS: 1.11.3 +COCOAPODS: 1.14.3 diff --git a/README.md b/README.md index 0bd3ec7..b106a1c 100644 --- a/README.md +++ b/README.md @@ -6,9 +6,9 @@

-English | [OpenInTerminal 中文说明](./Resources/README-zh.md) | [OpenInTerminal Türkçe](./Resources/README-tr.md) | [OpenInTerminal Deutsch](./Resources/README-de.md) +**OpenInTerminal**: English | [中文说明](./Resources/README-zh.md) | [Türkçe](./Resources/README-tr.md) | [OpenInTerminal Deutsch](./Resources/README-de.md) -[OpenInTerminal-Lite English](./Resources/README-Lite.md) | [OpenInTerminal-Lite 中文说明](./Resources/README-Lite-zh.md) | [OpenInTerminal-Lite Deutsch](./Resources/README-Lite-de.md) +**OpenInTerminal-Lite**: [English](./Resources/README-Lite.md) | [中文说明](./Resources/README-Lite-zh.md) | [Deutsch](./Resources/README-Lite-de.md) ## How to use 🚀 @@ -21,22 +21,21 @@ English | [OpenInTerminal 中文说明](./Resources/README-zh.md) | [OpenInTermi | Features | OpenInTerminal | OpenInTerminal-Lite & OpenInEditor-Lite | | --- | --- | --- | -| Support Terminal, [iTerm](https://www.iterm2.com/), [Hyper](https://github.com/zeit/hyper), [Alacritty](https://github.com/jwilm/alacritty) and [kitty](https://sw.kovidgoyal.net/kitty/). | ✅ | ✅ | -| Support TextEdit, [Visual Studio Code](https://code.visualstudio.com/), [VSCode Insiders](https://code.visualstudio.com/insiders/), [Atom](https://atom.io/), [Sublime Text](https://www.sublimetext.com/), [VSCodium](https://github.com/VSCodium/vscodium), [BBEdit](https://www.barebones.com/products/bbedit/), [TextMate](https://macromates.com), [CotEditor](https://coteditor.com/), [MacVim](https://github.com/macvim-dev/macvim), [JetBrains](https://www.jetbrains.com/)(AppCode, CLion, GoLand, IntelliJ IDEA, PhpStorm, PyCharm, RubyMine, WebStorm, Android Studio), and [Typora](https://typora.io/). | ✅ | ✅ | +| Support Terminal, [iTerm](https://www.iterm2.com/), [Hyper](https://github.com/zeit/hyper), [Alacritty](https://github.com/jwilm/alacritty), [kitty](https://sw.kovidgoyal.net/kitty/), [Warp](https://www.warp.dev), [WezTerm](https://wezfurlong.org/wezterm/index.html), [Tabby](https://tabby.sh). | ✅ | ✅ | +| Support TextEdit, Xcode, [Visual Studio Code](https://code.visualstudio.com/), [VSCode Insiders](https://code.visualstudio.com/insiders/), [Atom](https://atom.io/), [Sublime Text](https://www.sublimetext.com/), [VSCodium](https://github.com/VSCodium/vscodium), [BBEdit](https://www.barebones.com/products/bbedit/), [TextMate](https://macromates.com), [CotEditor](https://coteditor.com/), [MacVim](https://github.com/macvim-dev/macvim), [JetBrains](https://www.jetbrains.com/)(AppCode, CLion, GoLand, IntelliJ IDEA, PhpStorm, PyCharm, RubyMine, WebStorm, Android Studio, Fleet), [Typora](https://typora.io/), [Nova](https://nova.app/), [Cursor](https://cursor.sh/). | ✅ | ✅ | | Open in custom apps. (⚠️ Not all apps support.) | ✅ | ✅ | -| Support English, Chinese, French, Russian, Italian, Spanish, Turkish and German | ✅ | ✅ | +| Support English, Chinese, French, Russian, Italian, Spanish, Turkish, German and Korean | ✅ | ✅ | | GUI preferences | ✅ | ❌ | | Support keyboard shortcuts. | ✅ | ❌ | -## OpenInTerminal and OpenInTerminal-Lite (OpenInEditor-Lite) 👀 +## OpenInTerminal vs OpenInTerminal-Lite and OpenInEditor-Lite 👀 -Which one to choose? If you like more powerful features and GUI preferences, then you can use `OpenInTerminal`. If you just need to open terminal faster and more stably, then you can use `OpenInTerminal-Lite`. +Wondering which one to choose? If you're all about fancy features and GUI settings, go for `OpenInTerminal`. But if you just want to open your terminal quickly and without fuss, `OpenInTerminal-Lite` is your buddy. -For me, I prefer `OpenInTerminal-Lite` which only needs to click once to complete the function (and the other needs to click twice 😂) and it is more lightweight. +I personally prefer `OpenInTerminal-Lite`. Why? It's a one-click wonder (while the other makes you click twice 😂) and it's more lightweight. -For `OpenInTerminal-Lite` users: +Check **OpenInTerminal-Lite**: [English](./Resources/README-Lite.md) | [中文说明](./Resources/README-Lite-zh.md) | [Deutsch](./Resources/README-Lite-de.md) -Please check the document: [OpenInTerminal-Lite English](./Resources/README-Lite.md) | [OpenInTerminal-Lite 中文说明](./Resources/README-Lite-zh.md) | [OpenInTerminal-Lite Türkçe](./Resources/README-Lite-tr.md) | [OpenInTerminal-Lite Deutsch](./Resources/README-Lite-de.md) ## How to install 🖥 @@ -81,11 +80,11 @@ Become a sponsor through [GitHub Sponsors](https://github.com/sponsors/Ji4n1ng) ## FAQ ❓
1. What is the difference between OpenInTerminal and OpenInTerminal-Lite?
-

OpenInTerminal currently has a normal version and a lite version. If you like more powerful features and GUI preferences, then you can use OpenInTerminal. If you just need to open terminal faster and more stably, then you can use OpenInTerminal-Lite.

+

OpenInTerminal's got two flavors: the regular and the lite. If you're into fancy features and GUI preferences, stick with the standard OpenInTerminal. But if you just wanna open terminal in a quick and stably way, OpenInTerminal-Lite is your friend.

-
2. I accidentally clicked on the Don't Allow button.
-

You can run the following command in the terminal. This will reset the permissions in the System Preferences.

+
2. Oops, hit Don't Allow button by mistake.
+

No sweat! Just run the following command in your terminal, and it'll reset the permissions in System Preferences.


tccutil reset AppleEvents wang.jianing.app.OpenInTerminal
@@ -94,39 +93,25 @@ Become a sponsor through [GitHub Sponsors](https://github.com/sponsors/Ji4n1ng)
4. Open two Terminal windows on Mojave
-

This problem usually occurs when Terminal is first started. So you can use ⌘W to close Terminal window instead of using ⌘Q to quit Terminal.

+

This problem usually occurs when you first start Terminal. Try using ⌘W to close Terminal window, instead of using ⌘Q to quit Terminal.

-
5. OpenInTerminal Finder extension doesn't work.
-

Currently Finder extension is completely dependent on AppleScript in order to run independently. So it is hard to guarantee its stability. When you find that Finder extension doesn't work properly, you need to hold down the Option(⌥) key, right-click on Finder, and select Relaunch.

-

If your Mac model is a bit old like mine, I suggest you cancel the icon in the context menu in Preferences. If it still crashes frequently, it is recommended to use OpenInTerminal-Lite.

+
5. OpenInTerminal's Finder extension doesn't work.
+

The Finder extension relies on AppleScript. So it's hard to guarantee its stability. When the extension doesn't work properly, try this: hold down the Option(⌥) key, right-click on Finder, and select Relaunch.

+

Got an older Mac like me? Maybe cancel showing the icon in the context menu in Preferences. If it still crashes frequently, consider switching to OpenInTerminal-Lite.

6. OpenInTerminal doesn't work as I expected
-

OpenInTerminal will open terminal or editor as the following order:

+

OpenInTerminal works as the following order:

    -
  • 1. Open the file or folder that you selected.
  • -
  • 2. Open the top Finder window.
  • -
  • 3. Neither. Then open the desktop.
  • +
  • 1. Open the file or folder you selected.
  • +
  • 2. If nothing's selected, it opens the top Finder window.
  • +
  • 3. If there's no Finder window. it opens the desktop.
-

For example, if you select a file in the bottom Finder window and you want to open the above Finder window in terminal, this will not work as you expected according to the above order.

-

Q: I right-click on the desktop but no terminal or editor appears. But actions in status bar menu work.

-

A: Try to select a file(folder) or open a Finder window. Because when you right-click on the desktop and nothing is selected, system does not provide program with the path of selected files. Under this situation, the program does not work.
Currently they(Fidner extension and actions in status bar menu) do not work as the same way. Finder extension is completely dependent on AppleScript in order to run independently, while status bar icon works as before. So they have different behaviors. This problem will be improved in the future.

-
7. The implementation mechanism of OpenInTerminal and why there are two versions.
-

There are two ways to achieve "open in terminal".

-
    -
  • 1. ScriptingBridge. It's faster and more stable than the second one, although the differences are small. OpenInTerminal-Lite and actions of OpenInTerminal in status bar menu are based on this way. Its disadvantage is that applications which use ScriptingBridge to access user's directory infomation or something else cannot be sandboxed.
  • -
  • 2. AppleScript. Finder extension of OpenInTerminal is completely dependent on AppleScript in order to run independently. The first way cannot be applied to Finder extension because it is required to be sandboxed.
  • -
-

Some people want OpenInTerminal to be fast and stable(the lite version), while others want OpenInTerminal to be powerful and easier to configure(the normal version). Some people hope that OpenInTerminal can automatically adapt to dark mode(the normal version), while others just want to open the terminal with one click(the lite version).

-

When one version can no longer meet these needs, OpenInTerminal was split into a normal version and a lite version a few months ago.

-

(BTW, I know there are apps that are sandboxed and can achieve the same effect as OpenInTerminal. But I don't know how it implements this. If anyone knows it and is willing to talk to me, that would be great. I'm very happy to make OpenInTerminal more perfect so that one version is enough.😀)

-
- -
8. My custom app doesn't work.
-

If your custom application cannot work by running the following command, then the application cannot be supported. For example, GitHub Desktop:

+
7. My custom app doesn't work.
+

If your custom application doesn't work with the following command, then it's not supported. For example, GitHub Desktop:

open -a GitHub\ Desktop ~/Desktop
@@ -141,6 +126,7 @@ Become a sponsor through [GitHub Sponsors](https://github.com/sponsors/Ji4n1ng)
  • Support Tabby
  • Support Fleet
  • Support Nova
  • +
  • Support Cursor
  • Support Xcode
  • For kitty users: open in a signle instance instead of a new one
  • @@ -286,24 +272,7 @@ Become a sponsor through [GitHub Sponsors](https://github.com/sponsors/Ji4n1ng) ## Special Thanks to ❤️ -Thanks to all backers and contributors. Your work makes OpenInTerminal better. - -### Contributors - -- [Camji55](https://github.com/Camji55) -- [gucheen](https://github.com/gucheen) -- [uclort](https://github.com/uclort) -- [MatteoCarnelos](https://github.com/MatteoCarnelos) - -### Translators - -- [Dorian Eydoux](https://github.com/dorian-eydoux) -- [techinpark](https://github.com/techinpark) -- [Egor](https://github.com/Rogue85) -- [arendruni](https://github.com/arendruni) -- [panta97](https://github.com/panta97) -- [bkzspam](https://github.com/bkzspam) -- [ystolzenburg](https://github.com/ystolzenburg) +Thanks to all [backers](https://github.com/sponsors/Ji4n1ng) and [contributors](https://github.com/Ji4n1ng/OpenInTerminal/graphs/contributors). Your work makes OpenInTerminal better. ### Reference projects diff --git a/Resources/README-Lite.md b/Resources/README-Lite.md index 651c3f2..dd04c1b 100644 --- a/Resources/README-Lite.md +++ b/Resources/README-Lite.md @@ -36,7 +36,6 @@ English | [中文说明](./README-Lite-zh.md) | [Deutsch](./README-Lite-de.md) ``` brew install --cask openinterminal-lite -# or brew install --cask openineditor-lite ``` @@ -56,12 +55,18 @@ brew install --cask openineditor-lite ## Support ❤️ -Thank you for your support! +Open-source projects cannot live long without your help. If you like OpenInTerminal, please consider supporting this project by becoming a sponsor. Your user icon or company logo shows up on the README with a link to your home page. + +Become a sponsor through [GitHub Sponsors](https://github.com/sponsors/Ji4n1ng) 💖. | PayPal | AliPay | WeChat Pay | | --- | --- | --- | | [paypal.me/ji4ning](https://www.paypal.me/ji4ning) | | | +### Backers & Sponsors + + + ## Settings 🔨 ### 1) Set default terminal (or editor) @@ -192,8 +197,8 @@ defaults write com.googlecode.iterm2 OpenFileInNewWindows -bool true ## FAQ ❓ -
    1. I accidentally clicked on the Don't Allow button.
    -

    You can run the following command in the terminal. This will reset the permissions in the System Preferences.

    +
    1. Oops, hit Don't Allow button by mistake.
    +

    No sweat! Just run the following command in your terminal, and it'll reset the permissions in System Preferences.

    # For OpenInTerminal-Lite:
     tccutil reset AppleEvents wang.jianing.app.OpenInTerminal-Lite
     # For OpenInEditor-Lite:
    @@ -205,20 +210,24 @@ tccutil reset AppleEvents wang.jianing.app.OpenInEditor-Lite
     

    Please do not use backslash \ and double quotes " in the path

    -
    3. Why it cannot automatically switch icons when switching from/to Dark mode
    -

    As for OpenInTerminal-Lite, the icon in Finder Toolbar is app icon not Finder extension icon. And I have not found a API to change the app icon (If you have any good idea, please let me know). -

    Added: Thanks to the contribution (#126) of @MatteoCarnelos, OpenInTerminal-Lite can now automatically switch icons using Hammerspoon.


    -As for OpenInTerminal, the icon of it in Finder Toolbar is Finder extension icon. It can change automatically when switching between dark mode and light mode. So you can try to use OpenInTerminal.

    +
    3. Why it cannot automatically switch icons in Dark mode
    +

    As for OpenInTerminal-Lite, the icon you see in the Finder Toolbar is actually the app icon, not the Finder extension icon. And I haven't found an API yet that lets you swtich the app icon on the fly (got any cool ideas? Do share!). +

    But hey, good news! Thanks to @MatteoCarnelos's awesome contribution (#126), OpenInTerminal-Lite can now automatically switch icons using Hammerspoon.

    4. My custom app doesn't work.
    -

    If your custom application cannot work by running the following command, then the application cannot be supported. For example, GitHub Desktop:

    +

    If your custom application doesn't work with the following command, then it's not supported. For example, GitHub Desktop:

    open -a GitHub\ Desktop ~/Desktop
    ## Changes 🗒
    show all
    +

    version 1.2.6

    +
      +
    • Support Korean
    • +
    • For kitty users: open in a signle instance instead of a new one
    • +

    version 1.2.5

    • Support German
    • diff --git a/Resources/README-de.md b/Resources/README-de.md index 1eeb3a4..8bb4c18 100644 --- a/Resources/README-de.md +++ b/Resources/README-de.md @@ -112,18 +112,7 @@ Danke für Ihre Unterstützung!

      A: Versuchen Sie, eine Datei (oder einen Ordner) auszuwählen oder ein Finder-Fenster zu öffnen. Wenn Sie mit der rechten Maustaste auf den Desktop klicken und nichts ausgewählt ist, stellt das System dem Programm den Pfad der ausgewählten Dateien nicht zur Verfügung. In dieser Situation funktioniert das Programm nicht. Derzeit funktionieren sie (Finder-Erweiterung und Aktionen im Statusleistenmenü) nicht auf die gleiche Weise. Die Finder-Erweiterung ist vollständig abhängig von AppleScript, um unabhängig zu laufen, während das Statusleistensymbol wie bisher funktioniert. Sie haben also unterschiedliche Verhaltensweisen. Dieses Problem wird in Zukunft verbessert werden.

    -
    7. Der Implementierungsmechanismus von OpenInTerminal und warum es zwei Versionen gibt.
    -

    Es gibt zwei Möglichkeiten, "im Terminal öffnen" zu erreichen.

    -
      -
    • 1. ScriptingBridge. Er ist schneller und stabiler als der zweite, obwohl die Unterschiede gering sind. OpenInTerminal-Lite und Aktionen von OpenInTerminal im Statusleistenmenü basieren darauf. Der Nachteil ist, dass Anwendungen, die ScriptingBridge verwenden, um auf die Verzeichnisinformationen des Benutzers oder etwas anderes zuzugreifen, nicht in einer Sandbox untergebracht werden können.
    • -
    • 2. AppleScript. Die Finder-Erweiterung von OpenInTerminal ist komplett von AppleScript abhängig, um unabhängig zu laufen. Der erste Weg kann nicht auf die Finder-Erweiterung angewandt werden, da diese in einer Sandbox laufen muss.
    • -
    -

    Einige Leute wollen, dass OpenInTerminal schnell und stabil ist (die Lite-Version), während andere wollen, dass OpenInTerminal leistungsstark und einfacher zu konfigurieren ist (die normale Version). Einige Leute hoffen, dass OpenInTerminal sich automatisch an den Dunkelmodus anpassen kann (die normale Version), während andere nur das Terminal mit einem Klick öffnen wollen (die lite Version).

    -

    Da eine Version diese Anforderungen nicht mehr erfüllen kann, wurde OpenInTerminal vor einigen Monaten in eine normale Version und eine Lite-Version aufgeteilt.

    -

    (Übrigens weiß ich, dass es Anwendungen gibt, die in einer Sandbox laufen und den gleichen Effekt wie OpenInTerminal erzielen können. Aber ich weiß nicht, wie sie das implementieren. Wenn jemand es weiß und bereit ist, mit mir zu sprechen, wäre das großartig. Ich wäre sehr froh, OpenInTerminal zu perfektionieren, damit eine Version ausreicht 😀)

    -
    - -
    8. Mein benutzerdefiniertes Programm funktioniert nicht.
    +
    7. Mein benutzerdefiniertes Programm funktioniert nicht.

    Wenn Ihre benutzerdefinierte Anwendung nicht mit dem folgenden Befehl funktioniert, kann die Anwendung nicht unterstützt werden. Zum Beispiel, GitHub Desktop:

    open -a GitHub\ Desktop ~/Desktop
    @@ -132,23 +121,6 @@ Danke für Ihre Unterstützung! Vielen Dank an alle Mitwirkenden. Ihre Arbeit macht OpenInTerminal besser. -### Mitwirkende - -- [Camji55](https://github.com/Camji55) -- [gucheen](https://github.com/gucheen) -- [uclort](https://github.com/uclort) -- [MatteoCarnelos](https://github.com/MatteoCarnelos) - -### Übersetzer - -- [Dorian Eydoux](https://github.com/dorian-eydoux) -- [techinpark](https://github.com/techinpark) -- [Egor](https://github.com/Rogue85) -- [arendruni](https://github.com/arendruni) -- [panta97](https://github.com/panta97) -- [bkzspam](https://github.com/bkzspam) -- [ystolzenburg](https://github.com/ystolzenburg) - ### Referenzprojekte - [jbtule/cdto](https://github.com/jbtule/cdto) diff --git a/Resources/README-tr.md b/Resources/README-tr.md index 664fb43..6429f88 100644 --- a/Resources/README-tr.md +++ b/Resources/README-tr.md @@ -112,18 +112,7 @@ Desteğiniz için teşekkürler!

    A: Bir dosyayı(klasörü) seçerek ya da Finder penceresi açarak işlem yapabilirsiniz. Çünkü sağ tık yapıldığında bir öge seçili değilse sistem seçilmiş dosyaların yoluna dair bir program paylaşmaz. Bu durumda da program çalışmaz.
    Şu anda bazı(Finder uzantıları ve durum çubuğundaki işlevler) aynı şekilde çalışmıyor. Durum çubuğu simgelerinin aksine Finder uzantıları bağımsız çalışabilmek için AppleScript'e bağlı. Bu yüzden farklı davranış bimileri sergiliyorlar. Bu problem gelecekte iyileştirilecektir.

    -
    7. OpenInTerminal'in entergrasyon mekanizması ve neden iki versiyon olduğuna dair açıklama.
    -

    "Terminalde aç" işlevini elde etmenin iki yolu var.

    -
      -
    • 1. ScriptingBridge. İkinciye oranla daha hızlı ve daha stabil her ne kadar aralarındaki fark az olsa da.. OpenInTerminal-Lite ve OpenInTerminal'nin işlevi durum çubuğunda bu yolla sağlanmakta. Dezavantajı ise bunu kullanan uygulamalar eğer bunu kullanıcının (depolama konumu olarak) konumuna erişmek veya başka bir amaçla kullanıyorsa sandbox içinde çalıştırılamamakta.
    • -
    • 2. AppleScript. Finder uzantısı olan OpenInTerminal bağımsız çalışabilmek için AppleScript'e bağlı. İlk yol bu amaçla kullanılamıyor çünkü Finder uzantıları sandbox içinde çalışıtırılamamakta.
    • -
    -

    Bazı kişiler OpenInTerminal'in hızlı ve stabil olmasını isterken(lite sürümü), bazıları ise OpenInTerminal'in güçlü ve daha kolay ayarlanabilir olmasını (normal sürüm) istiyor. Bazıları OpenInTerminal'in otomatik olarak karanlık moda geçebilmesini isterken (normal sürüm), bazıları ise tek tıkla OpenInTerminal'i (lite sürüm) açabilmek istiyor.

    -

    Bir sürümü ihtiyaçları artık karşılayamamaya başlayınca, OpenInTerminal normal ve lite olmak üzere iki sürüm olarak ayrıldı.

    -

    (Bu arada, sandbox içinde olup OpenInTerminal ile aynı işleve sahip olan uygulamar olduğunu biliyorum. Ancak bunu nasıl başardıklarını anlayamadım eğer birisi bana nasıl yapıldığını açıklarsa memnun olurum. OpenInTerminal'i tek bir sürümün yeterli geleceği bir düzeye getirmekten mutluluk duyacağıma emin olabilirisiniz.😀)

    -
    - -
    8. Benim özel uygulamam çalışmıyor.
    +
    7. Benim özel uygulamam çalışmıyor.

    Eğer aşağıdaki komutla kullanmak istediğiniz program açılmıyorsa, o program bu uygulama tarafından desteklenmiyor demektir. Örneğin, GitHub Desktop için:

    open -a GitHub\ Desktop ~/Desktop
    @@ -132,24 +121,6 @@ Desteğiniz için teşekkürler! Katkıda bulunan herkese teşekkürler... Uğraşlarınızla OpenInTerminal daha iyi bir hale geliyor. -### Katkıda Bulunanlar - -- [Camji55](https://github.com/Camji55) -- [gucheen](https://github.com/gucheen) -- [uclort](https://github.com/uclort) -- [MatteoCarnelos](https://github.com/MatteoCarnelos) - -### Çevirmenler - -- [bkzspam](https://github.com/bkzspam) -- [Dorian Eydoux](https://github.com/dorian-eydoux) -- [techinpark](https://github.com/techinpark) -- [Egor](https://github.com/Rogue85) -- [arendruni](https://github.com/arendruni) -- [panta97](https://github.com/panta97) -- [bkzspam](https://github.com/bkzspam) -- [ystolzenburg](https://github.com/ystolzenburg) - ### Referans Projeler - [jbtule/cdto](https://github.com/jbtule/cdto) diff --git a/Resources/README-zh.md b/Resources/README-zh.md index ea735dd..b259bfe 100644 --- a/Resources/README-zh.md +++ b/Resources/README-zh.md @@ -21,10 +21,10 @@ | 功能 | OpenInTerminal | OpenInTerminal-Lite & OpenInEditor-Lite | | --- | --- | --- | -| 支持 终端, [iTerm](https://www.iterm2.com/), [Hyper](https://github.com/zeit/hyper), [Alacritty](https://github.com/jwilm/alacritty) 和 [kitty](https://sw.kovidgoyal.net/kitty/) | ✅ | ✅ | -| 支持 文本编辑, [Visual Studio Code](https://code.visualstudio.com/), [VSCode Insiders](https://code.visualstudio.com/insiders/), [Atom](https://atom.io/), [Sublime Text](https://www.sublimetext.com/), [VSCodium](https://github.com/VSCodium/vscodium), [BBEdit](https://www.barebones.com/products/bbedit/),[TextMate](https://macromates.com),[CotEditor](https://coteditor.com/),[MacVim](https://github.com/macvim-dev/macvim), [JetBrains](https://www.jetbrains.com/)(AppCode, CLion, GoLand, IntelliJ IDEA, PhpStorm, PyCharm, RubyMine, WebStorm, Android Studio) 和 [Typora](https://typora.io/) | ✅ | ✅ | +| 支持 终端, [iTerm](https://www.iterm2.com/), [Hyper](https://github.com/zeit/hyper), [Alacritty](https://github.com/jwilm/alacritty), [kitty](https://sw.kovidgoyal.net/kitty/), [Warp](https://www.warp.dev), [WezTerm](https://wezfurlong.org/wezterm/index.html), [Tabby](https://tabby.sh). | ✅ | ✅ | +| 支持 文本编辑, Xcode, [Visual Studio Code](https://code.visualstudio.com/), [VSCode Insiders](https://code.visualstudio.com/insiders/), [Atom](https://atom.io/), [Sublime Text](https://www.sublimetext.com/), [VSCodium](https://github.com/VSCodium/vscodium), [BBEdit](https://www.barebones.com/products/bbedit/), [TextMate](https://macromates.com), [CotEditor](https://coteditor.com/), [MacVim](https://github.com/macvim-dev/macvim), [JetBrains](https://www.jetbrains.com/)(AppCode, CLion, GoLand, IntelliJ IDEA, PhpStorm, PyCharm, RubyMine, WebStorm, Android Studio, Fleet), [Typora](https://typora.io/), [Nova](https://nova.app/), [Cursor](https://cursor.sh/). | ✅ | ✅ | | 打开自定义应用(⚠️ 并不是所有的应用都支持) | ✅ | ✅ | -| 支持中文,英语,法语,俄语,意大利语,西班牙语,土耳其语和德语 | ✅ | ✅ | +| 支持中文,英语,法语,俄语,意大利语,西班牙语,土耳其语, 德语, 韩语 | ✅ | ✅ | | 图形化设置界面 | ✅ | ❌ | | 支持键盘快捷键 | ✅ | ❌ | @@ -108,23 +108,9 @@ brew install --cask openinterminal
  • 2. 打开最上面的访达窗口。
  • 3. 都不是。那么打开桌面。
  • -

    例如,当你在下面的访达窗口中选中了一个文件而你想打开最上面的访达窗口到终端中,按照上面的顺序,这将不会按照你所预期的来工作。

    -

    问:我右键点击了桌面,但是没有打开终端或者编辑器。但是状态栏菜单里的功能却能正常运行。

    -

    答:选中一个文件(文件夹)或者打开一个访达窗口。因为当你右键点击桌面的时候,没有任何东西是被选中的状态,所以系统并不能把选中文件的路径提供给程序使用。在这种情况下,程序将不能正常工作。
    目前访达扩展和状态栏菜单中的功能并不是同一种方式来实现的。访达扩展为了能够独立运行,现在完全基于 AppleScript。然而状态栏菜单中的功能的实现方式还和以前一样。所以它们会有不同的表现行为。这个问题会在未来得到改进。

    -
    7. OpenInTerminal 的实现机制以及为什么会有两个版本
    -

    有两种方法可以实现“打开终端”。

    -
      -
    • 1. ScriptingBridge。它比第二种方式更快更稳定,尽管两者差异很小。OpenInTerminal-LiteOpenInTerminal 中的状态栏菜单操作都是基于这种方式的。它的缺点是使用 ScriptingBridge 访问用户目录信息或其他内容的应用程序不能是沙盒的。
    • -
    • 2. AppleScript。为了能够独立运行,OpenInTerminal 的访达扩展完全依赖 AppleScript。第一种方法不能应用于访达扩展,因为它必须是沙盒的。
    • -
    -

    有些人希望 OpenInTerminal 快速且稳定(精简版),而另一些人希望 OpenInTerminal 功能强大且易于配置(普通版)。有些人希望 OpenInTerminal 能够自动适配黑暗模式(普通版),而另一些人只想一键打开终端(精简版)。

    -

    当一个版本不再满足这些需求时,OpenInTerminal 在几个月之前分化为普通版和精简版。

    -

    (顺便说一句,我知道有些应用程序是沙盒化的,并且可以达到和 OpenInTerminal 相同的效果。但是我不知道它是怎么实现的。如果有人知道它并愿意与我交谈,那就太好了。我非常愿意使 OpenInTerminal 变得更加完美,以至于一个版本就足够了。😀)

    -
    - -
    8. 我的自定义应用不工作
    +
    7. 我的自定义应用不工作

    如果你的自定义应用不能通过运行以下命令正常运行,那么该应用不支持通过 OpenInTerminal 打开。例如,GitHub Desktop:

    open -a GitHub\ Desktop ~/Desktop
    @@ -133,23 +119,6 @@ brew install --cask openinterminal 感谢所有的贡献者。你们的付出让 OpenInTerminal 更棒了。 -### 贡献者 - -- [Camji55](https://github.com/Camji55) -- [gucheen](https://github.com/gucheen) -- [uclort](https://github.com/uclort) -- [MatteoCarnelos](https://github.com/MatteoCarnelos) - -### 译者 - -- [Dorian Eydoux](https://github.com/dorianeydx) -- [techinpark](https://github.com/techinpark) -- [Egor](https://github.com/Rogue85) -- [arendruni](https://github.com/arendruni) -- [panta97](https://github.com/panta97) -- [bkzspam](https://github.com/bkzspam) -- [ystolzenburg](https://github.com/ystolzenburg) - ### 参考项目 - [jbtule/cdto](https://github.com/jbtule/cdto)