Có thể bằng cách truy vấn gnome-shell thông qua giao diện JS của nó với gdbus call
( src ).
Kịch bản sau đây sẽ xen kẽ giữa hai nguồn đầu vào được cấu hình. Dễ dàng sửa đổi nếu bạn có nhiều hơn.
#!/usr/bin/env bash
cur_idx=$(
gdbus call \
--session \
--dest org.gnome.Shell \
--object-path /org/gnome/Shell \
--method org.gnome.Shell.Eval \
"imports
.ui.status
.keyboard
.getInputSourceManager()
.currentSource
.index" |
cut -d"'" -f2
)
next_idx=$(( 1 - $cur_idx ))
gdbus call \
--session \
--dest org.gnome.Shell \
--object-path /org/gnome/Shell \
--method org.gnome.Shell.Eval \
"imports
.ui
.status
.keyboard
.getInputSourceManager()
.inputSources[$next_idx]
.activate()" \
&> /dev/null
Làm cho nó có thể thực thi được chmod a+x </path/to/script>
và sau đó bạn có thể liên kết nó với một phím tắt tùy chỉnh:
Mở Cài đặt -> Thiết bị -> Bàn phím và nhấp vào nút lựa chọn ' + ' ở dưới cùng để gán tập lệnh cho một số phím tắt
(Đối với Gnome <3.x: Cài đặt -> Thiết bị -> Bàn phím -> Phím tắt tùy chỉnh ).