
Debian squeeze를 실행하는 컴퓨터에서 디스플레이 관리자(xdm, gdm 또는 kdm을 사용해 보았습니다)를 사용하여 로그인하면 Sawfish 키나 마우스 바인딩이 아무런 영향을 미치지 않습니다. 텍스트 모드로 로그인한 다음 실행하면 startx
모든 것이 잘 작동합니다.
fvwm을 시도하면 대부분의 바인딩도 작동하지 않지만 일부 마우스 바인딩은 작동합니다.
디스플레이 관리자를 사용하여 로그인할 때 사용자 정의 세션을 실행하여 내 ~/.xsession
.. ~/.profile; . ~/.xinitrc
Sawfish와 Fvwm이 내 바인딩을 인식하지 못하는 원인은 무엇입니까? 디스플레이 관리자를 사용하는 것과 실행하는 것은 어떻게 다릅니까 startx
? 바인딩 작업을 어떻게 수행할 수 있나요?
답변1
Sawfish의 문제점과 해결 방법을 알고 있지만 디스플레이 관리자를 사용하면 왜 이런 동작이 발생하는지 잘 모르겠습니다.
내 개인 키보드 레이아웃에는 Num Lock 키가 없고 수정자 Mod2에는 할당된 키가 없습니다. Sawfish가 시작되면 Num Lock에 할당된 수정자는 무시됩니다. 수정자에 키가 할당되지 않은 경우 Sawfish는 이를 무시하지 않으므로 keyMod2가 켜져 있을 때 바인딩(필수)이 트리거되지 않습니다 .
Fvwm도 비슷하게 동작합니다. 수정자 열의 바인딩은 Mod2가 켜져 있는지 여부에 관계없이 항상 작동한다는 점에서 추가적인 미묘함이 있습니다 A
. 명시적 수정자가 설정된 바인딩만 효과가 없습니다.
어떤 이유에서인지 아직 파악하지 못했지만 디스플레이 관리자를 사용하여 로그인하면 Num Lock 수정자가 켜져 있는 것으로 기록됩니다(사용자 이름과 비밀번호를 입력하면 꺼져 있음에도 불구하고 키보드의 Num Lock LED 버튼이 나타남). 꺼져 있습니다). 이로 인해 Fvwm 및 Sawfish는 명령에 바인딩된 이벤트 대신 Mod2+ 키보드 이벤트를 수신하게 됩니다 .keykey
저는 Mod2를 사용하지 않기 때문에 다음과 같이 이 문제를 해결할 수 있습니다.Num Lock 끄기.xsession
:
python -c 'from ctypes import *
X11 = cdll.LoadLibrary("libX11.so.6")
display = X11.XOpenDisplay(None)
X11.XkbLockModifiers(display, c_uint(0x0100), c_uint(16), c_uint(0))
X11.XCloseDisplay(display)'
아니면 Mod2를 완전히 비활성화하세요.
xkbset nullify mod2