Wie man Xmonad dazu bringt, zwei Mod-Tasten zu verwenden

Antworten:

6

Sie können xmodmap verwenden, um zB Mod1 eine zweite Taste hinzuzufügen, sodass das Drücken einer der beiden Tasten mit modMask = mod1Mask funktioniert.


quelle
4

Sie können einfach oder die Schlüssel zusammen ... sehen:

$ 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

Wie Sie sehen können, ODER zwei Schlüsselmasken zusammen, um das gewünschte Ergebnis zu erzielen. Das ist alles was es braucht, also benutzt du es einfach wie die letzte Zeile dort.

myAwesomeModMask = mod1Mask .|. mod3Mask
-- or whatever you want it to be

Und das ist alles, was dazu gehört.

Edit: Ah warte, du willst, dass zwei verschiedene Tasten unabhängig voneinander als Mod-Taste fungieren. Das ist derzeit unmöglich, denke ich, wie der Code derzeit steht. Lösung: Überprüfen Sie die Quelle, bearbeiten Sie sie selbst und installieren Sie sie erneut. Es wäre eine kleine Veränderung.

Robert Massaioli
quelle
2

Um die Antwort von Daniel Schoepe zu erweitern, mache ich dies in xmonad mit der Super-Taste (der Windows-Taste), aber ich setze nichts in xmonad.hs (außer modMask = mod4Mask). Mit xmodmap habe ich das linke Steuerelement als zweiten Superschlüssel mit den folgenden Angaben in meiner .Xmodmap-Datei festgelegt:

remove Control = Control_L
keysym Control_L = Super_L
add Control = Control_L

Sie können xmodmap auch verwenden, um die Feststelltaste und die Steuerung auszutauschen, die rechte Steuerung ebenfalls auf Super zu setzen usw. Beachten Sie jedoch, dass die Änderungen nur in X und nicht in virtuellen Terminals funktionieren.

Silfheed
quelle
0

Sie können Mod-Schlüssel an andere mod1 binden, indem Sie Ihren modMask-Wert für xmonad.hs bearbeiten.

Ein Beispiel für die Bindung an den mod4-Schlüssel (häufig 'Win'):

import XMonad

main = xmonad defaultConfig
         { modMask = mod4Mask
         , terminal = "urxvt"
         }
Avis
quelle
Dies bindet modMask nur an den Win-Schlüssel. Ich möchte es an zwei Tasten binden, damit das Drücken einer der beiden Tasten funktioniert
Arthur Ulfeldt
Entschuldigung, aber ich weiß auch nicht, wie ich das machen soll
Avis
0

Sie können beide modMaskOptionen an dieselbe Aktion binden . Dies kann erreicht werden, indem cotcatMapSie Ihre Initiale eingeben (Taste, Aktion) List.

JoeGomain
quelle