Bu ilginç bir fikir iyi olurdu! Şimdilik, sadece 'f' anahtarını haritalamak istediğinizi varsayalım. Aklıma gelen yaklaşım, anahtarı herhangi bir pencerenin açık olup olmadığını kontrol eden bir işleve eşlemektir. Eğer bir pencere açılmazsa, yazdığınız karakterle (yani 'f') önceden doldurmak için dmenu başlatır. Eğer başka pencereler açıksa, normalde bu tuşa ne yapmak istersen onu yapar.
main = xmonad $ blah blah blah
`additionalKeys`
[
((0, xK_f), multiMapKey f someAction)
-- other mappings
]
multiMapKey :: Char -> X() -> X()
multiMapKey c someAction =
if ?a window is open?
then launch dmenu with c already entered
else someAction
Notlar:
- Bir pencere zaten açık olup olmadığını öğrenmek için nasıl bilmiyorum, ama xmonad veya xmonad-contrib paketinde bunun için bir işlev bulacaksınız şüpheli .
- Yazılmış bir karakterle dmenu nasıl başlatılacağını bilmiyorum. Belki de yardımcı olacak XMonad.Util.Dmenu bir şey var.
- Haritalamak istediğiniz her tuş için
additionalKeys
numaralı telefondan ayrı bir girişiniz olması gerektiğini düşünüyorum. Belki sadece 26 alfabetik anahtarın haritalanması yeterli olacaktır. Xmonad bağırsaklar hakkında daha fazla bilgi edinmek için
, ben jekor Klip tavsiye: part 1part 2
@closevoter xmonad hakiki Haskell yapılandırılan (yazılı ve) 'dir. Pencereleme sistemini tam anlamıyla programlıyorsunuz. Haskell yazmadan xmonad'ı yapılandıramazsınız. Programlama. – AndrewC