을 그것은 흥미로운 아이디어가 좋은 것입니다! 잠시 동안 'f'키만 매핑한다고 가정 해 봅시다. 내 마음에 오는 접근 방식은 어떤 창이 열려 있는지 확인하는 함수에 키를 매핑하는 것입니다. 열려있는 창이없는 경우 dmenu를 시작하고 방금 입력 한 문자 (즉 'f')로 미리 채 웁니다. 열려있는 다른 창이있는 경우 일반적으로 수행 할 키를 원하는대로 수행합니다.
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
주 :
- 나는 윈도우가 이미 열려 있는지 확인하는 방법을 몰라,하지만 난 당신이 xmonad 또는 xmonad-있는 contrib 패키지에 이것에 대한 기능을 찾을 수 있습니다 의심 .
- 이미 입력 한 문자로 dmenu를 시작하는 방법을 모르겠습니다. 어쩌면 XMonad.Util.Dmenu에 뭔가 도움이 될 것입니다.
- 매핑하려는 각 키에 대해
additionalKeys
에 별도의 항목이 있어야한다고 생각합니다. 26 개의 알파벳 키만 매핑하면 충분할 것입니다. Xmonad의 내장에 대한 자세한 학습을위한
, 나는 jekor의 비디오를 권장합니다 part 1part 2
@closevoter의 xmonad 정품 하스켈 구성 (서면)입니다. 말 그대로 윈도우 시스템을 프로그래밍하십시오. 당신은 haskell을 쓰지 않고 xmonad를 설정할 수 없다. 그것은 프로그래밍입니다. – AndrewC