Ich finde viele Beispiele, wie man den Mod-Schlüssel in xmonad setzt, aber wie füge ich einen zweiten Mod-Schlüssel hinzu?
Ich finde viele Beispiele, wie man den Mod-Schlüssel in xmonad setzt, aber wie füge ich einen zweiten Mod-Schlüssel hinzu?
Antworten:
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.
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.
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.
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"
}