"작동하지 않습니다"라는 말은 컴파일하지 않는다고 가정합니다.
@chi 주석 다음에 나는 button6 and 7 are not defined 버튼을 검사 했으므로 이것이 가장 큰 문제입니다. 그러나 this post에 따르면 방금 번호를 입력하면 추가 버튼이 작동합니다.
XMonad.Util.EZConfig 모듈의 additionalMouseBindings
함수를 사용하는 것 같습니다. 유형은 다음과 같습니다.
additionalMouseBindings :: XConfig a -> [((ButtonMask, Button), Window -> X())] -> XConfig a
연산자를 조작하는 역 따옴표로 묶습니다. 여기에 첫 번째 피연산자 인 XConfig a
이 표시되지 않으므로 여기서 첫 번째 오류가 발생할 수 있습니다. 다음과 같은 형식이 있어야합니다.
yourPreviousConfig `additionalMouseBindings` listOfBindings
그 표현식은 새로운 XConfig와 같습니다.
마우스 버튼의 바인딩 목록이 키의 유형과 일치하지 않음을 알 수 있습니다. 목록의 요소는 ((ButtonMask, Button), Window -> X())
유형입니다. 단추는 Window
을 사용하는 함수에 연결되고 X()
을 반환합니다 (반면 키는 X()
형식의 식과 연결됨). XMonad는 클릭 한 창으로 여기서 지정한 함수를 인수로 호출합니다. 당신은 당신 사건의 창문에 관심이 없습니다. spawn "xdotool key super+Down"
유형 X()
의, 당신은 제작하여 Window
(또는 무엇이든)를받는 함수로 그를 설정 할 수있는 lambda function :
((0, 6), \w -> spawn "xdotool key super+Down")
또는 당신은 항상 spawn "xdotool key super+Down"
를 돌려 일정한 기능을 얻을 수 const
를 사용할 수 있습니다
를
((0, 6), const $ spawn "xdotool key super+Down")
마지막으로 xdotool
을 호출하여 작업 영역을 전환하는 것은 과도한 것처럼 보입니다. 키 바인딩에 some of the functions of the module here을 이미 사용하고 계신지요? 마우스 바인딩에서도 사용할 수 있습니다. nextWS
및 prevWS
은 X()
유형이므로 위와 같이 상수 함수를 사용해야합니다.
IIRC의 핵심 X11 프로토콜에는 버튼이 5 개뿐입니다. 다른 버튼은 X 확장 (XINPUT, 아마도? 잊어 버렸습니다)을 사용하여 감지 할 수 있습니다. 그러나 xmonad가 이러한 확장을 사용하는지 여부는 알지 못합니다. – chi