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


15

gnome 3.22.1을 사용하고 있지만 3.18부터 문제가 발생합니다.

그 전에 (정확한 버전을 기억하지 못함) xkb-witch를 사용하여 키보드 레이아웃을 전환 할 수있었습니다 . 간단히 X.org 바인딩을 사용하는 간단한 응용 프로그램입니다.

xkb-switch를 실행하면 3.18 이후에 키보드 레이아웃이 그놈으로 전환되지 않습니다. 추가 조사에 따르면 레이아웃 전환은 작동하지만 매우 짧은 시간 동안 이루어집니다.

이 스크립트를 실행하면 :

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

그러나 그놈 쉘은 그 변화를 인식하지 못하고 레이아웃 표시기에 잘못된 언어를 보여줍니다.

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

그리고이 시점에서 나는 붙어 있습니다. 나는 그놈 쉘 코드에서 문제를 식별 할만 큼 숙련되지 않았습니다. 그것이 그것이 (gnome shell 's) 문제인지 확실하지 않습니다.

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

답변:


9

gnome-shell은 모든 변수에 액세스 할 수있는 DBus의 JS eval 인터페이스를 노출하므로 다음 명령을 사용하면 가능합니다.

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()"

답변 주셔서 감사합니다 – 그것은 많은 인터넷 검색을 저장했습니다! 그리고 이것은 마지막으로 사용 된 입력 방법으로 전환하는 방법입니다 :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()"
Envek

4

입력 방법으로 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명령으로 사용 가능한 모든 레이아웃을 볼 수 있습니다 .

이 접근 방식은 언어 표시기를 변경 하지는 않지만 안정적으로 작동하지만 유의해야합니다 .


setxkbmap us후에는 표준 단축키를 사용하여 레이아웃을 변경할 수있는 방법이 없습니다.
sanmai

@sanmai 똑같지 않음 —을 사용하여 IME (일본어, 중국어 등)가 필요한 언어로 전환하는 것은 불가능합니다 setxkbmap. 또한 setxkbmap현대 WM 환경에서 일반 버그가 발생할 수 있습니다. 자세한 내용은 질문을 참조하십시오.
언더 캣이 Monica

그래도 작동하지 않는 기본 단축키에 대해서는 언급 할 수 없습니다. 사용하는 모든 레이아웃에 대해 사용자 정의 단축키를 사용하고 있습니다.
언더 캣이 Monica

예, 동일하지는 않지만 여전히 기본 스위치를 사용할 수 없습니다. 아시다시피, 일본어 키보드에는 추가 키가 많으며 다른 레이아웃의 경우 여전히 기본 스위치를 사용해야합니다.
sanmai

3

사용 gsettings.

설정 org.gnome.desktop.input-sources.sources받는 리스트, "[]"당신이 사용할 수 있도록 X 서버 없이 키보드 구성을 그놈 쉘 은 이전과 같이 할 수있을 수 있도록, 그것을 구성하려고합니다.

$ gsettings set org.gnome.desktop.input-sources sources '[]'

이 작업을 시도했을 때 setxkbmap설정 대화 상자를 통해 입력 소스를 다시 입력 할 때까지 이후에 입력 한 명령 수에 관계없이 그놈 터미널이 QWERTY에 고정되었습니다 .
Silas S. Brown

0

나는 당신이 시도해야한다고 생각 sudo dpkg-reconfigure keyboard-configuration


0

이전에 마우스를 사용하여 해당 입력 방법을 설정하지 않은 경우에도 명령 행에서 입력 방법을 설정하고 전환 할 수 있습니다.

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

드보락 us+dvorak( Dvorak)의 경우 (또는 gb+dvorak영국에있는 경우 등) 사용하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.