Chuyển sang nguồn đầu vào cụ thể


23

Trong Mac OS X, có một phím tắt để chuyển đổi giữa kích hoạt nguồn đầu vào.

alt text

Có thể chuyển đổi đến một ngôn ngữ cụ thể? Vì vậy, nếu bạn có 3 phương thức nhập, bạn có thể có 3 phím tắt: Ctrl-1 cho tiếng anh Ctrl-2 cho tiếng Tây Ban Nha và Ctrl-3 cho tiếng Nga.


Bố trí bàn phím và ngôn ngữ giao diện là độc lập. Và vì ngôn ngữ giao diện chỉ áp dụng sau khi khởi động lại chương trình, mọi thứ bạn có được bằng phím tắt sẽ bị phủ nhận bởi yêu cầu khởi động lại ứng dụng.
Daniel Beck

Tôi không quan tâm đến việc thay đổi ngôn ngữ giao diện. Chỉ có ngôn ngữ đầu vào là quan tâm.
Nikem

Tôi sắp xếp hợp lý và làm rõ câu hỏi của bạn. Vui lòng hoàn nguyên nếu bạn nghĩ tôi đã làm gì đó sai (Tôi mới làm điều này).
Daniel Beck

Câu trả lời:


6

Tôi trình bày với bạn, "giải pháp" xấu nhất có thể:

  • Cho phép hỗ trợ cho các thiết bị trợ giúp trong Tùy chọn hệ thống »Truy cập toàn cầu ,
  • và hiển thị menu Nguồn đầu vào trong thanh thực đơn trong Tùy chọn hệ thống »Ngôn ngữ và văn bản .
  • Đảm bảo phím tắt Ctrl-F8 được định nghĩa cho Di chuyển tiêu điểm đến menu trạng thái trong Tùy chọn hệ thống »Bàn phím» Phím tắt »Bàn phím & amp; Nhập văn bản .
  • Đảm bảo menu Nguồn đầu vào là mục menu ngoài cùng bên trái có thể được di chuyển bằng cách kéo trong khi giữ Cmd xuống.

Sử dụng AppleScript Editor và viết ba tập lệnh, mỗi tập lệnh có mã sau đây:

tell application "System Events"
    key code 100 using control down # press Ctrl-F8
    delay 0.5 # wait a bit, UI might be slow
    key code 125 # press down to open the menu
    keystroke "german" # name of your desired language, in my case tested using German
    key code 36 # press enter
end tell

Lưu một lần cho mỗi ngôn ngữ, chuyển đổi tên của ngôn ngữ. Nếu bạn muốn nhấn các phím khác nhau hoặc gán một cái gì đó khác với Ctrl-F8, thay thế bằng các mã khóa đây . Bạn cũng có thể di chuyển menu Nguồn đầu vào từ vị trí ngoài cùng bên trái của nó bằng cách chèn một vài mũi tên bên phải bấm phím.

Gọi các tập lệnh theo cách bạn muốn, ví dụ: sử dụng trình khởi chạy ứng dụng của bạn (Quicksilver, Launchbar, v.v.) hoặc bọc chúng trong Dịch vụ bằng Automator và gán cho chúng các phím tắt Tùy chọn hệ thống »Bàn phím» Phím tắt »Dịch vụ .


1
@Nikem Nó có hoạt động không?
Daniel Beck

1
Vâng, nó đã làm việc.
Nikem

1
Anda, Daniel, mặc dù tôi đã chọn một giải pháp khác, tuy nhiên cảm ơn bạn đã giới thiệu cho tôi về Action Script and Services :)
Nikem

@Nikem Bạn được chào đón. Vui lòng bỏ phiếu cho câu trả lời của tôi bằng cách nhấp vào "tam giác mũi tên lên" bên cạnh nếu bạn thấy câu trả lời này hữu ích. Bạn cũng có thể chấp nhận một câu trả lời (chỉ ra đó là câu trả lời bạn thích nhất và xem xét vấn đề của bạn đã được giải quyết) bằng cách nhấp vào dấu tick bên cạnh nó. Nhân tiện, ActionScript là Adobe, đây là AppleScript.
Daniel Beck

@Daniel Trên thực tế, tôi không biết nên trả lời câu trả lời nào. Tôi đã chọn của tôi, nhưng của bạn có thể sử dụng rộng rãi hơn ...
Nikem

11

Tôi đã đưa ra một giải pháp đẹp hơn một chút trong AppleScript, cho bạn biết tên của Bố cục Bàn phím mà bạn muốn chuyển sang. Tạo một chức năng như thế này:

on changeKeyboardLayout(layoutName)
 tell application "System Events" to tell process "SystemUIServer"
   tell (1st menu bar item of menu bar 1 whose description is "text input") to {click, click (menu 1's menu item layoutName)}
 end tell
end changeKeyboardLayout

và sau đó gọi nó bằng

 changeKeyboardLayout("English")
 changeKeyboardLayout("German")

Xin lưu ý rằng tên của Bố cục Bàn phím được bản địa hóa, tức là trên một hệ thống của Đức, ví dụ trên sẽ cần phải gọi "Tiếng Anh" và "Tiếng Đức".


Chắc chắn là đẹp hơn của tôi. Tôi thực sự nên học AppleScript của tôi đúng cách.
Daniel Beck

6

Một lựa chọn sẽ là tải về thay đổi gán phím tắt cho các lệnh shell như changeInput U.S..

Bạn cũng có thể sử dụng KeyRemap4MacBook:

<?xml version="1.0"?>
<root>
  <vkchangeinputsourcedef>
    <name>KeyCode::VK_CHANGE_INPUTSOURCE_HIRAGANA</name>
    <inputsourceid_equal>com.apple.inputmethod.Kotoeri.Japanese</inputsourceid_equal>
  </vkchangeinputsourcedef>
  <item>
    <name>change_inputsources</name>
    <identifier>change_inputsources</identifier>
    <autogen>__KeyToKey__ KeyCode::E, VK_OPTION | ModifierFlag::NONE, KeyCode::VK_CHANGE_INPUTSOURCE_ENGLISH</autogen>
    <autogen>__KeyToKey__ KeyCode::H, VK_OPTION | ModifierFlag::NONE, KeyCode::VK_CHANGE_INPUTSOURCE_HIRAGANA</autogen>
  </item>
</root>

Xem tài liệu riêng tư .

VK_CHANGE_INPUTSOURCE_ENG setup được xác định trong vkchangeinputsourcedef.xml . Bạn có thể xem ID của các nguồn đầu vào từ Event Viewer.app. Không có | ModifierFlag::NONE ví dụ cài đặt đầu tiên cũng sẽ áp dụng cho tùy chọn-lệnh-E. Xem nguồn cho giá trị mã khóa cài đặt được xác định trước .


4

Tôi biết đó là một câu hỏi cũ. Nhưng ngay cả vào cuối năm 2016, tôi vẫn không tìm thấy một giải pháp đơn giản và tốt đẹp. Do đó, tôi đã thực hiện IMEShortcut , hoạt động trên Sierra. Bạn có thể chỉ định một phím tắt tùy chỉnh cho bất kỳ phương thức nhập cụ thể nào. Xin vui lòng cho nó một shot. Và nếu các bạn tìm thấy bất kỳ lỗi nào, tôi rất sẵn lòng giúp đỡ.

Cũng thế, Karabiner (được gọi là KeyRemap4MacBook) là một tùy biến bàn phím tuyệt vời cho Mac. Nhưng nó hơi phức tạp và hiện đang bị hỏng trên Sierra. Nếu bạn đang sử dụng Yosemite hoặc El Capitan, đó sẽ là một lựa chọn tốt khác.


Cảm ơn IMEShortcut! Nó rất đẹp Tôi sẵn sàng trả 5 đô la hoặc hơn cho nó nếu bạn đã thêm các biểu tượng vào thanh thực đơn để hiển thị ngôn ngữ hoạt động (vì vậy tôi không cần phải có CẢ HAI IMEshortcut và biểu tượng ứng dụng trong thanh thực đơn của tôi chiếm không gian). Tôi cũng muốn có thể tùy chỉnh biểu tượng được sử dụng, ví dụ tôi muốn sử dụng đầu vào tiếng Pháp của Canada vì nó gần với QWERTY của Hoa Kỳ hơn, nhưng tôi muốn thấy một lá cờ Pháp vì một lá cờ Canada không tượng trưng cho "tiếng Pháp" tôi. Những điều đó sẽ làm cho nó tuyệt vời!
iconoclast

1

Tôi có một giải pháp khác làm tôi hài lòng nhất. KeyRemap4MacBook là ứng dụng cho phép bạn sắp xếp lại các nút bàn phím. Trong số những thứ khác, nó cho phép một số, hoàn toàn không hỗ trợ cho việc thay đổi ngôn ngữ. Vì vậy, chúng tôi một số cấu hình tùy chỉnh nó làm những gì tôi muốn.

Nhược điểm:  - ứng dụng của bên thứ ba  - chỉ hỗ trợ ngôn ngữ giới hạn

Ưu điểm:  - Về mặt khái niệm đẹp hơn một chút khi chạy tập lệnh trên UI


Tôi không tìm thấy bất cứ điều gì liên quan đến việc sử dụng linh hoạt các nguồn đầu vào trên trang web, chỉ một số hành động được mã hóa cứng liên quan đến tiếng Nga / tiếng Anh. Bạn có thể xây dựng?
Daniel Beck

Nó không linh hoạt. Nó chỉ xảy ra rằng nó hỗ trợ chuyển sang tiếng Anh và tiếng Nga (và bây giờ là tiếng Armenia), đó là ngôn ngữ tôi cần. Và nó cho phép bạn ánh xạ các tổ hợp phím tùy ý cho các hành động đó. Chuyển sang ngôn ngữ trong trường hợp của tôi.
Nikem

Tôi đang gặp khó khăn trong việc tìm cách thiết lập điều này với Karabiner.
Ivan Balashov

1

Trên AppleScript, bạn chỉ phải lấy cmd + "khoảng trắng" (hoặc một cái gì đó khác, những gì bạn thay đổi nguồn bàn phím).

Và tất cả những gì bạn cần:

    key code 49 using command down

49 - mã của nút 'dấu cách' trong ASCII cho AppleScript.

Tái bút: đừng quên truy cập cho bạn tiện ích AppleScript trong Tùy chọn hệ thống.


1

Tìm kawa - ứng dụng khá đơn giản để đáp ứng chính xác nhu cầu của bạn. Cài đặt phím tắt để chuyển trực tiếp sang nguồn đầu vào cần thiết.


1
Chào mừng đến với Siêu người dùng. Xin vui lòng đọc Làm thế nào để giới thiệu phần mềm sau đó chỉnh sửa câu trả lời của bạn bao gồm ít nhất là thông tin bắt buộc tối thiểu (các mục trong Dũng cảm ). Bài viết không có thông tin này có thể bị xóa. Cảm ơn đã đóng góp.
Twisty Impersonator

0

Điều này liên kết có một video về cách làm điều đó. Nó đã có một chiếc bánh nóng với "lệnh + dấu cách", nhưng phím nóng nổi bật cũng là "lệnh + dấu cách". Tiêu điểm vượt quá phím nóng, do đó, việc chuyển đổi ngôn ngữ không xảy ra. Video trong liên kết sẽ chỉ cho bạn cách thay đổi phím nóng để bạn có thể bật phím nóng.

Chúc may mắn,


1
Anh ấy đã biết cách chuyển đổi giữa các ngôn ngữ, anh ấy muốn chuyển đổi đến một cái cụ thể , vì anh ta có thể có nhiều hơn 2 kích hoạt.
Daniel Beck

Vâng, chính xác như Daniel đã nói. Tôi có 3 ngôn ngữ nhập và cần chọn một ngôn ngữ cụ thể.
Nikem

Xin lỗi ... tôi đã hiểu nhầm câu hỏi. Tôi nghĩ rằng bạn đang cố gắng tạo ra một cách để chuyển đổi giữa các ngôn ngữ bằng một phím nóng.
David
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.