Per "non funziona", suppongo che intendi che non viene compilato.
Dopo il commento @chi, ho controllato i pulsanti: button6 and 7 are not defined, quindi questo è un primo problema. Ma secondo lo this post i pulsanti extra funzionano se si dà il proprio numero.
Sembra che si stia utilizzando la funzione additionalMouseBindings
dal modulo XMonad.Util.EZConfig. Il suo tipo è:
Si sta circondando in apici inversi che lo trasforma in un operatore. Qui non stai mostrando il primo operando, di tipo XConfig a
, quindi potresti avere un primo errore qui. Si dovrebbe avere qualcosa del formato:
yourPreviousConfig `additionalMouseBindings` listOfBindings
Quell'espressione è uguale al nuovo XConfig.
Si può vedere che l'elenco di collegamenti per i pulsanti del mouse non è lo stesso dei tasti. Gli elementi dell'elenco sono di tipo ((ButtonMask, Button), Window -> X())
: i pulsanti sono associati a una funzione che prende uno Window
e restituisce X()
(mentre i tasti sono associati alle espressioni di tipo X()
). XMonad chiamerà la funzione specificata qui con la finestra cliccata come argomento. Non ti interessa della finestra nel tuo caso. spawn "xdotool key super+Down"
è di tipo X()
, è possibile trasformarla in una funzione che prende un Window
(o nulla) facendo una lambda function:
((0, 6), \w -> spawn "xdotool key super+Down")
Oppure è possibile utilizzare const
per ottenere una funzione costante che ritorna sempre spawn "xdotool key super+Down"
:
Infine, sembra davvero eccessivo chiamare xdotool
per passare da uno spazio di lavoro all'altro. Forse stai già utilizzando some of the functions of the module here nelle associazioni di tasti? Puoi usarli anche nelle associazioni del mouse. nextWS
e prevWS
sono di tipo X()
, quindi è necessario fare funzioni costanti con loro, come sopra.
IIRC, il protocollo X11 principale ha solo cinque pulsanti. Altri pulsanti possono essere rilevati usando le estensioni X (XINPUT, forse? Ho dimenticato), ma non ho idea se xmonad sfrutti anche tali estensioni. – chi