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 ).