Von "funktioniert nicht" Ich nehme an, Sie meinen, es kompiliert nicht.
Nach @chi Kommentar, überprüfte ich die Tasten: button6 and 7 are not defined, so dass ein erstes Problem ist. Aber nach this post funktionieren die zusätzlichen Tasten, wenn Sie nur ihre Nummer angeben.
Es sieht so aus, als ob Sie die additionalMouseBindings
-Funktion aus dem XMonad.Util.EZConfig-Modul verwenden. Sein Typ ist:
additionalMouseBindings :: XConfig a -> [((ButtonMask, Button), Window -> X())] -> XConfig a
Sie umgeben es in Backticks, die es in einen Operator verwandelt. Sie zeigen hier nicht den ersten Operanden vom Typ XConfig a
, so dass Sie hier einen ersten Fehler haben könnten. Sie sollten etwas von der Form haben:
yourPreviousConfig `additionalMouseBindings` listOfBindings
Dieser Ausdruck entspricht Ihrer neuen XConfig.
Sie können sehen, dass die Liste der Bindungen für die Maustasten nicht derselbe Typ wie für die Schlüssel ist. Die Elemente der Liste sind vom Typ ((ButtonMask, Button), Window -> X())
: Schaltflächen sind einer Funktion zugeordnet, die eine Window
übernimmt und X()
zurückgibt (während Schlüssel mit Ausdrücken vom Typ X()
verknüpft sind). XMonad ruft die hier angegebene Funktion mit dem angeklickten Fenster als Argument auf. Dir ist das Fenster in deinem Fall egal. spawn "xdotool key super+Down"
ist vom Typ X()
, können Sie das in eine Funktion verwandeln, indem sie ein lambda function eine Window
(oder etwas) hat:
((0, 6), \w -> spawn "xdotool key super+Down")
Oder Sie können const
verwenden, um eine konstante Funktion zu erhalten, die immer spawn "xdotool key super+Down"
zurück:
((0, 6), const $ spawn "xdotool key super+Down")
Schließlich scheint es wirklich übertrieben, xdotool
zu rufen, um Arbeitsbereiche zu wechseln. Vielleicht verwenden Sie bereits some of the functions of the module here in Ihrer Tastenbelegung? Sie können sie auch in Ihren Mausbindungen verwenden. nextWS
und prevWS
sind vom Typ X()
, Sie müssen also konstante Funktionen mit ihnen machen, wie oben.
IIRC, das Kern X11-Protokoll hat nur fünf Tasten. Andere Buttons können mit X-Extensions erkannt werden (XINPUT, vielleicht? Ich habe vergessen), aber ich habe keine Ahnung, ob xmonad auch solche Extensions ausnutzt. – chi