하이퍼 키와 슈퍼 키가 같은 일을하지 않게하는 방법은 무엇입니까?


8

xkb를 사용하여 특정 단축키에 대해 AutoKey와 함께 사용하기 때문에 올바른 Windows 키 (RWIN)를 Hyper_R로 다시 매핑했습니다. 편집해서 했어요

/usr/share/X11/xkb/symbols/pc

RWIN 라인 수정 :

  key <RWIN> {  [ Hyper_R   ]   };

( 여기 나를 안내 한 답변이 있습니다 )

내가 알 수 있듯이이 작동하고 올바른 Windows 키가 이제 Hyper_R을 시작합니다. 그러나 우분투 (Xubuntu에서 정확히 말하면)에서 Hyper와 Super는 어떻게 든 같은 일을하고있는 것 같습니다. 따라서 Super + e는 편집기를 시작하고 Hyper + e도 시작합니다.

이것이 왜 또는 어디서이 동작을 변경할 수 있는지 잘 모르겠습니다. Hyper와 Super가 다른 수정자가 되길 원합니다.


대화가 13.10에 있다고 생각하지는 않지만 여기 에 문제가 있습니다 ...
Wilf

그러나 이것은 어딘가에서 구성 할 수 있어야합니다.
Alexander Rechsteiner

에서 찾을 수 있습니다dconf-editor
Wilf

1
고마워, 그러나 운이 없다. 젠장, 리눅스 에서이 키보드를 다시 매핑하면 당뇨병이 생깁니다.
Alexander Rechsteiner 2013

+1 : 콩코드 (당뇨병 부위). 우분투에서 키보드를 관리하는 방법에 대한 훌륭하고 포괄적이며 자세한 안내서를 찾을 수 없었습니다. gnome-control-center, gnome-tweak-tool, xkbd, xmodmap 사이에는 일련의 상호 작용이 있으며, 이는 상당히 복잡하고 최악의 문서화되지 않습니다. 링크가 있으면 공유하십시오! (실제로 아무도 모르는 것 같지만, bugs.launchpad.net/ubuntu/+source/gnome-settings-daemon/+bug/…의 수정 가능성을 참조하십시오 )
Rmano

답변:


11

어떤 이유로 우분투는 현재 Super와 Hyper를 Mod4에 할당합니다. 이것을 / usr / share / X11 / xkb / symbols / pc에서 볼 수 있습니다 :

 key <SUPR> {   [ NoSymbol, Super_L ]   };
 modifier_map Mod4   { <SUPR> };

 key <HYPR> {   [ NoSymbol, Hyper_L ]   };
 modifier_map Mod4   { <HYPR> };

루트를 변경하거나 시스템 파일을 수정할 필요없이 별도의 수정 자에 super 및 hyper를 배치하도록 이것을 변경할 수있었습니다. 나는 확실히 xkb 전문가가 아니기 때문에 이것이 최선의 방법인지 확실하지 않지만 그것은 나를 위해 신뢰할 수있는 방법입니다.

먼저 로컬 심볼 파일을 만듭니다. $ {HOME} /. config / xkb / symbols / local에 광산이 있습니다. Super는 Mod3에, Hyper는 Mod4에 할당합니다.

default  partial modifier_keys
xkb_symbols "superhyper" {

    modifier_map Mod3 { Super_L, Super_R };

    key <SUPR> {    [ NoSymbol, Super_L ]   };
    modifier_map Mod3   { <SUPR> };

    key <HYPR> {    [ NoSymbol, Hyper_L ]   };
    modifier_map Mod4   { <HYPR> };
};

그런 다음 기존지도를 다시 컴파일하여 "로컬"을 추가하십시오.

setxkbmap -print | sed -e '/xkb_symbols/s/"[[:space:]]/+local&/' | xkbcomp -I${HOME}/.config/xkb - ${DISPLAY}

로그인 할 때 실행할 스크립트에 넣으십시오. 일반 사용자로 실행할 수 있습니다.


HYPR을 Mod3으로 변경하기 위해 해당 파일을 편집 할 수 있습니까?
Alex Moore-Niemi

3
당신은 이것을 할 수 있습니다. 편집하지 않으면 시스템 업데이트가 변경 사항을 덮어 쓰지 않습니다.
ergosys

나 자신을 위해, 나는 raw.githubusercontent.com/jabbalaci/dotfiles/master/.Xmodmap 과 함께 간단하게 작동 했지만 신비적으로 계속 멈추고 있습니다 ...
Alex Moore-Niemi

또한 내가 찾은 대답 방법의 단점은 키보드가 분리되어 무작위 글리치로 인해 USB 통신이 끊어지면 스크립트를 다시 실행해야한다는 것입니다. 자동으로 다시 실행할 수있는 방법이있을 수 있지만 살펴 보지는 않았습니다. 다행히 임의의 글리치 문제는 한 달에 한 번 정도 발생합니다. 시스템 파일을 편집하면 문제가되지 않습니다. 그래서 플러스와 마이너스가 있습니다.
ergosys

1
나는 그것을 사용합니다. : setxkbmap을의 - 옵션 '하이퍼 캡'이 내가 사용하는, 그래서 그것을 위해 통조림 설정은 이미
ergosys

3

으로 xmodmap당신이 개 명령이 동작을 변경할 수 있습니다 :

## Hyper_L is mod4 by default, we will "move" it to Mod3
xmodmap -e "remove mod4 = Hyper_L"
xmodmap -e "add mod3 = Hyper_L"
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.