Xmonad-привязать ключ к цепочке команд

Я использую модуль EZConfig для Xmonad. Я хотел бы связать ModMask s в первый ход мой нынешний фокусируемым окном моим другом экране, а затем переместите свое внимание на другие мои экрана.

С помощью модуля CycleWS это будет достигнуто путем запуска "shiftNextScreen", а затем "nextScreen"

можно ли привязать две команды к одной клавише?

кроме того, я пыталась

((modMask, xK_s),
     shiftNextScreen nextScreen)

но это не работает, потому что nextScreen становится аргументом для shiftNextScreen, что не имеет никакого смысла. Я вообще не знаю Хаскелла.

16
задан Fawkes5
28.03.2023 15:17 Количество просмотров материала 3106
Распечатать страницу

1 ответ

кажется, до сих пор никто не мог ответить на ваш вопрос. Позвольте мне попробовать:

TL; DR

((modMask, xK_s),
     sequence_ [shiftNextScreen, nextScreen])

должны работать.

почему?

если вы посмотрите наhttp://xmonad.org/xmonad-docs/xmonad-contrib/XMonad-Actions-CycleWS.html,

вы видите следующие типы для ваших функций:

nextScreen :: X ()
shiftNextScreen :: X ()

вместе со знанием того, что X-Монада и тип привязки клавиш (ButtonMask,KeySym), X () что вы хотите is:

комбината nextScreen и shiftNextScreen получить результат типа X ()

если мы просто составим список следующим образом:

[nextScreen,shiftNextScreen] у нас типа [X ()], а не то, что мы хотим.

как мы знаем, что X-монада, быстрый поиск по hoogle появляется sequence_

что дает нам:

sequence_ [shiftNextScreen, nextScreen]

, который дает типа X () и поэтому действительное действие для правой стороны ключа отображение.

5
отвечен Predator117 2023-03-29 23:05

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх