명령줄에서 gnome 3의 키보드 레이아웃을 변경하는 방법

명령줄에서 gnome 3의 키보드 레이아웃을 변경하는 방법

gnome 3.22.1을 사용하고 있는데 3.18부터 문제가 있습니다.

이 전에는 (정확한 버전을 기억할 수 없음) 다음을 사용하여 키보드 레이아웃을 전환할 수 있었습니다.xkbitch, 내부적으로 X.org 바인딩을 사용하는 간단한 애플리케이션입니다.

3.18 이후에 xkb-switch를 실행하면 gnome의 키보드 레이아웃이 전환되지 않습니다. 추가 조사 결과 레이아웃 전환이 효과적이었지만 수명이 짧은 것으로 나타났습니다.

이 스크립트를 실행하는 경우:

for i in $(seq 1000); do
  lang=$(xkb-switch -s ru; xkb-switch);
  if [[ "$lang" == "ru" ]]; then
    echo $lang;
  fi;
done

운이 얼마나 좋은지에 따라 3~20개의 "성공적인" 레이아웃 스위치를 얻을 수 있습니다.

이 문제를 인터넷 검색한 후 다음을 얻었습니다.제안:

gsettings set org.gnome.desktop.input-sources current 0

설정은 변경되지만 레이아웃은 동일하게 유지됩니다.

레이아웃을 변경하는 "해킹" 방법을 찾았습니다.

setxkbmap us,ru
setxkbmap ru,us

그러나 gnome Shell은 변경 사항을 알지 못하고 레이아웃 표시기에 잘못된 언어를 표시합니다.

이 문제에 대해 게시했습니다(죄송합니다. 평판이 충분하지 않습니다. https://bbs.archlinux.org/viewtopic.php?pid=1657582 https://github.com/ierton/xkb-switch/issues/15) , 하지만 좋은 답변을 얻을 수 있는 행운은 없습니다.

이 시점에서 나는 막혔습니다. 나는 그놈 쉘 코드의 문제를 식별할 만큼 기술적으로 능숙하지 않습니다. 나는 이것이 (그놈 쉘) 문제인지조차 확신하지 못합니다.

내가 원하는 건 하나야그놈 센스터미널에서 키보드 레이아웃을 전환하는 방법. 누구든지 올바른 방향으로 나를 가리킬 수 있습니까? 이것을 버그로 신고해야 합니까(특히 gsettings를 통해 키보드 레이아웃을 변경할 수 없다는 사실)?

답변1

gnome-shell은 모든 변수에 액세스할 수 있는 DBus에 JS 평가 인터페이스를 노출하므로 이 기능은 다음을 사용하여 달성할 수 있습니다.

gdbus call --session --dest org.gnome.Shell \
--object-path /org/gnome/Shell \
--method org.gnome.Shell.Eval \
 "imports.ui.status.keyboard.getInputSourceManager().inputSources[0].activate()"

그러면 0번째 레이아웃이 활성화됩니다. 활용도가 낮은 無変換일본어 키보드 에 이러한 명령을 쉽게 할당할 수 있습니다 変換.

신용 거래.


마지막으로 사용한 입력 방법(댓글에서)으로 전환하는 방법은 다음과 같습니다.

gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell \
--method org.gnome.Shell.Eval "imports.ui.status.keyboard.getInputSourceManager()._mruSources[1].activate()"

답변2

IBus를 입력 방법(기본값)으로 사용하는 경우 다음을 사용하여 입력을 변경할 수 있습니다 ibus.

# Set the layout to US English
ibus engine xkb:us::eng
# Set the input method to Japanese Mozc IME
ibus engine mozc-jp
# Set the layout to Russian
ibus engine xkb:ru::rus

이 명령을 사용하면 사용 가능한 모든 레이아웃을 볼 수 있습니다 ibus list-engine.

이 접근법은 다음과 같다는 점에 유의해야 합니다.아니요안정적으로 작동하더라도 언어 표시기를 변경하십시오.

답변3

이전에 마우스로 입력 방법을 설정한 적이 없더라도 명령줄에서 설정하고 전환할 수 있습니다.

gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'ru')]"

Dvořák의 경우 us+dvorak(또는 gb+dvorak영국이나 다른 지역에 있는 경우)를 사용하세요.

답변4

내 생각엔 네가 시도해 봐야 할 것 같아sudo dpkg-reconfigure keyboard-configuration

관련 정보