Я нашел много примеров того, как установить ключ мода в xmonad, но как мне добавить второй ключ мода?
4 ответа
Вы можете использовать xmodmap, чтобы добавить вторую клавишу, например, в Mod1, чтобы нажатие любого из них работало с modMask = mod1Mask.
Вы можете просто или ключи вместе ... смотреть:
$ ghci
> :m + XMonad
> :t (.|.)
(.|.) :: (Data.Bits.Bits a) => a -> a -> a
> :t mod1Mask
mod1Mask :: KeyMask
> :t mod2Mask
mod2Mask :: KeyMask
> :t mod1Mask .|. mod2Mask
mod1Mask .|. mod2Mask :: KeyMask
Так что вы можете видеть вас ИЛИ две ключевые маски вместе, чтобы получить желаемый результат. Это все, что нужно, так что вы просто используете его как последнюю строку там.
myAwesomeModMask = mod1Mask .|. mod3Mask
-- or whatever you want it to be
И это все, что нужно сделать.
Редактировать: Ах, подождите, вы хотите, чтобы две разные клавиши независимо действовали в качестве клавиши Mod. Это в настоящее время невозможно, я думаю, поскольку код в настоящее время стоит. Решение: проверьте исходный код и отредактируйте его самостоятельно, а затем Cabal установите его снова; это было бы небольшое изменение.
Просто чтобы расширить ответ Даниэля Шоупа, я делаю это в xmonad, используя супер ключ (ключ windows), но я не устанавливаю anyting в xmonad.hs (кроме установки modMask = mod4Mask). Используя xmodmap, я установил левый элемент управления в качестве второго суперключа со следующим в моем.Файл Xmodmap:
remove Control = Control_L
keysym Control_L = Super_L
add Control = Control_L
Вы также можете использовать xmodmap для смены заглавных букв и контроля, установки правильного управления на супер, и т.д., но помните, что изменения будут работать только в X, а не в виртуальных терминалах.
Вы можете связать ключи мода с другим mod1, отредактировав значение xMadad.hs modMask.
Пример, привязка к ключу mod4 (часто «Win»):
import XMonad
main = xmonad defaultConfig
{ modMask = mod4Mask
, terminal = "urxvt"
}