gnome / unity에서 setxkbmap을 사용하여 키보드 레이아웃 옵션을 영구적으로 설정


28

우분투 13.10 1 (그리고 아마도 업스트림 그놈)은 매우 성가신 버그를 도입했습니다 . 키보드 레이아웃 스위치 단축키를 누르면 포커스가 일부 시스템 창으로 이동 한 다음 바로 가기를 누른 창으로 다시 이동합니다. 포커스를 잃을 때 트위터 (브라우저에서)가 응답 텍스트 입력 필드를 닫는 등 일부 응용 프로그램에는 포커스 변경에 바인딩 된 작업이 있습니다. 따라서 우분투의 기본 키보드 스위처는 고정 될 때까지 나에게 적합하지 않습니다.

X에는 ​​스위칭 메커니즘이 내장되어 있으며 초점 전환을 포함하지 않고 즉시 전환됩니다 (그놈 스위처도 때때로 지연됨).

xkbmap 옵션을 설정하여 재부팅 후에도 설정이 유지되고 Gnome에 의해 재설정되지 않도록하려면 어떻게해야합니까?

내가 시도한 것 :

먼저 setxkbmap을 실행하십시오.

setxkbmap -layout "us,ru"
setxkbmap -option "grp:caps_toggle,grp_led:scroll,compose:ralt"

그러나 그것은 작동합니다 :

  1. 현재 세션
  2. Gnome이 덮어 쓰기 전까지 (예 : gconf의 org.gnome.desktop.input-sources트리거 에서 무언가를 터치하면 재설정)

둘째, Xorg 설정에 xkb 옵션 추가 :

또 다른 옵션은 xorg config에 다음을 추가하는 것입니다.

Section "InputClass"
        Identifier "system-keyboard"
        MatchIsKeyboard "on"
        Option "XkbLayout" "us,ru"
        Option "XkbModel" "pc105"
        Option "XkbVariant" "pc105"
        Option "XkbOptions" "grp:rctrl_toggle,grp_led:scroll"
EndSection

Xorg는 시작하는 동안 다음을 이해합니다.

[    33.791] (**) Option "xkb_rules" "evdev"
[    33.791] (**) Option "xkb_model" "pc105"
[    33.791] (**) Option "xkb_layout" "us,ru"
[    33.791] (**) Option "xkb_variant" "pc105"
[    33.791] (**) Option "xkb_options" "grp:rctrl_toggle,grp_led:scroll"

그러나 전환 구성은 나중에 그놈에 의해 재설정됩니다.

셋째, gconf

여기에 이미지 설명을 입력하십시오

나는이 xkb-optionssources에서 설정 org.gnome.desktop.input-sources하지만, 그놈은 여전히 하나의 영어 레이아웃에 XKB를 설정합니다 :

$ setxkbmap -print -verbose 10
Setting verbose level to 10
locale is C
Trying to load rules file ./rules/evdev...
Trying to load rules file /usr/share/X11/xkb/rules/evdev...
Success.
Applied rules from evdev:
rules:      evdev
model:      pc105
layout:     us
options:    grp_led:scroll
Trying to build keymap using the following components:
keycodes:   evdev+aliases(qwerty)
types:      complete
compat:     complete+ledscroll(group_lock)
symbols:    pc+us+inet(evdev)
geometry:   pc(pc105)
xkb_keymap {
    xkb_keycodes  { include "evdev+aliases(qwerty)" };
    xkb_types     { include "complete"  };
    xkb_compat    { include "complete+ledscroll(group_lock)"    };
    xkb_symbols   { include "pc+us+inet(evdev)" };
    xkb_geometry  { include "pc(pc105)" };
};

넷째, gconf의 또 다른 옵션

여기에 이미지 설명을 입력하십시오

설정 org.gnome.settings-daemon.peripherals.keyboard도 작동하지 않습니다. 아무것도 변하지 않습니다.

Upd 1 : 제거 할 것을 권장하는 토론이 있습니다/usr/lib/gnome-settings-daemon-3.0/libkeyboard.so . 적어도 이것은 xkbmap의 일부 리셋을 수정합니다 (즉, 잠금 화면 후).

1 14.04를 사용하지만 초점을 잃는 문제는 여전히 해결되지 않았습니다. ( 업스트림 그놈에서 확인되지 않은 보고서 )


그놈에서 레이아웃을 올바르게 설정 한 다음 두 setxkbmap명령을에 추가 ~/.profile하시겠습니까? 그렇게하면 로그인 할 때마다 실행되며 Gnome에 동일한 설정이 있으므로 재설정되면 아무 것도 변경하지 않아야합니다.
terdon

1
@terdon은 화면 잠금 후에도 재설정됩니다. 그리고 그것은 "us-only, no switch"상태로 재설정되고에 정의 된 설정으로 재설정되지 않습니다 org.gnome.desktop.input-sources.
kolen

이상한. 당신이 있습니까 장해야 유니티을 그놈을 사용하고 있지? dconf-editor? 대신 일반 GUI를 통해 설정을 변경해 보셨습니까 ?
terdon

@terdon 그렇습니다. 단일이지만 키맵을 재설정 할 수있는 gnome-settings-daemon과 같은 gnome의 항목을 잃어 버립니다.
kolen

Unity GUI에서 올바른 설정을 시도해 보셨습니까?
terdon

답변:


19

X에서 키보드 설정을 재설정하는 그놈을 방지하려면이 명령을 사용하십시오.

gsettings set org.gnome.settings-daemon.plugins.keyboard active false

이것은 나를 위해 작동합니다.


4
우분투 14.04에서 이것을 시도했지만 아무것도하지 않습니다. 설명이 있습니까? 어떻게 작동해야합니까?
Nickolai Leschov

2
14.04에서 나를 위해 작동
ndemou

2
다른 모든 것을 시도한 후 16.04에서 나를 위해 일합니다.
Leonardo Castro

1
17.04에서 작동하는 유일한 방법입니다.
Cnly

1
우분투는 실제로 일정 기간 동안 단일 설정 데몬을 만들었지 만 이제는 다시 그놈으로 돌아 가기 때문에 계속 작동 할 수 있습니다.
dragon788

6

나는 당신처럼이 문제를 극복했지만 Ubuntu 14.04 (LTS), Xubuntu, xfce 4.12 및 xkbd (xfce goodies)를 사용했습니다. 키보드 레이아웃을 변경하는 Ctrl + Space는 작동했지만 Alt + Shift는 작동하지 않았습니다 (수정 자 전용 키).

마침내 일을하게되었습니다

1. Run ibus-setup (Keyboard Input Methods application).
2. Goto Advanced tab.
3. Check 'Use system keyboard layout'.
4. Click 'Close'

5. Run xfce4-keyboard-settings (Keyboard application).
6. Goto Layout tab.
7. Uncheck 'Use system defaults'
8. Select 'Keyboard model' (typically 'Generic 105-key (Intl) PC' will do)
9. Set 'Change layout option' to your required switching keys combination (typically Alt+Shift will do).
10. Add languages to 'Keyboard layout'.
11. Click 'Close'.
12. Restart the computer

끝났습니다! 키보드 레이아웃을 변경하려면 Alt + Shift를 사용하십시오.


1
xfce4-keyboard-settings특히 gnome / unity에 대한 도움을 요청하는 데 질문에 사용 하는 것이 좋습니다 .
Nickolai Leschov

2

방금 화면 잠금 에서이 기사 를 읽었으며 관련이있을 수 있습니다. 이 기사에 따르면 스크린 잠금은 입력 장치를 차단하고 로케일을 조작하는 의도 된 결과를 낳습니다. 몇 가지 옵션이있는 것 같습니다.

  1. 화면 잠금 중지, 아마도 비슷한 기능을하는 인사말 화면도 포함됩니다.
  2. 다른 전원 관리 도구 사용
  3. im-switching을 위해 ibus 사용 중지 (FCITX?)
  4. 여기에 설명 된대로 화면 잠금 해제 이벤트에 대한 후크를 작성 하십시오 .

우분투 데브 메일 링리스트에서 찾을 수있는이 이벤트 및 관련 이벤트에 대한 흥미로운 토론이 있습니다 : https://lists.ubuntu.com/archives/ubuntu-devel/2013-November/037768.html


1

사용자에 의해 해결 WOF 우분투 버그 추적기, 우분투 14.10에 사용 gxkb를 :

https://bugs.launchpad.net/gnome-settings-daemon/+bug/1244090/comments/39

이 해결 방법은 우분투 14.10에서 작동했습니다.

  • 설정-> 텍스트 입력에서 모든 입력 소스를 제거하고 영어 만 남겨 두십시오.
  • gxkb 설치 (레이아웃 스위처) : sudo apt-get install gxkb
  • gnome-tweak-tool을 통해 시작 응용 프로그램에 gxkb 추가
  • ~ / .config / gxkb에서 gxkb 핫키 설정 (기본값은 alt_shift이지만 14.10에서는 작동하지 않습니다. ctrl_shift는 정상적으로 작동합니다)

ps 새 버전의 gxkb에는 우분투 용 appindicator가 있습니다. ppa : zen-root / gxkb-stable을 통해 설치 가능


(아직 시도하지 않음)
kolen

E : 패키지 gxkb를 찾을 수 없음
e18r

0

먼저 setxkbmap을 실행하십시오.

setxkbmap-레이아웃 "us, ru"setxkbmap-옵션 "grp : caps_toggle, grp_led : scroll, compose : ralt"

그러나 그것은 작동합니다 :

For current session
Until Gnome will overwrite it (for example touching something in gconf's org.gnome.desktop.input-sources triggers reset).

뿐만 아니라 그놈은 "재설정"하기 만합니다. Logitech 마우스에 대해 동일한 유형의 작업을 수행해야하므로 재부팅 할 때마다 유지하는 방법을 알고 있습니다. 여러 가지 버튼이있어 특정 방식으로 다시 매핑하고 다시 시작할 때 설정해야했습니다.

그래서 당신이하는 일은 텍스트 파일을 만드는 것입니다. 그런 다음 해당 텍스트 파일에서 다음을 입력하십시오.

#!/bin/bash

바로 아래에 명령을 입력하십시오. 예를 들어 내 마우스는 다음과 같습니다.

#!/bin/bash
xinput set-button-map "Logitech USB-PS/2 Optical Mouse" 1 2 3 4 5 8 9 6 7 10 11 12 13 14 15 16

다음으로 원하는 이름으로 저장하고 홈 디렉토리와 같은 곳으로 옮깁니다. "영원히"거기 있어야합니다.

그런 다음 시작 응용 프로그램을 열고 시작에 파일을 추가하면 세션 동안에 만 지속될 것에 대해 걱정할 필요가 없습니다. 방금 추가 한 파일을 통해 설정이 다시 표시되므로 컴퓨터를 다시 부팅해도됩니다.

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