От «не работает» Я полагаю, вы имеете в виду, что он не компилируется.
После комментария @chi я проверил кнопки: button6 and 7 are not defined, так что это первая проблема. Но согласно this post дополнительные кнопки работают, если вы просто укажете их номер.
Похоже, вы используете функцию additionalMouseBindings
из модуля XMonad.Util.EZConfig. Его тип:
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")
Или вы можете использовать const
, чтобы получить постоянную функцию, которая всегда возвращает spawn "xdotool key super+Down"
:
((0, 6), const $ spawn "xdotool key super+Down")
И, наконец, кажется, что на самом деле слишком сложно вызвать xdotool
для переключения рабочих областей. Возможно, вы уже используете some of the functions of the module here в ваших привязках клавиш? Вы также можете использовать их в своих привязках для мыши. nextWS
и prevWS
имеют тип X()
, поэтому вам нужно сделать с ними постоянные функции, например, выше.
IIRC, основной протокол X11 имеет только пять кнопок. Другие кнопки можно обнаружить с помощью X-расширений (XINPUT, может быть, я забыл), но я не знаю, использует ли xmonad такие расширения. – chi