我在Arch论坛上看到了一些类似的问题,但是我还没有找到解决方案。
所以我在Fedora 17 x64的XFCE4中运行XMonad 0.1,并且我也安装了xmonad-contrib。这是我的xmonad.hs文件:
import System.Posix.Env (getEnv)
import Data.Maybe (maybe)
import Control.Monad
import XMonad.Hooks.SetWMName
import qualified XMonad.StackSet as W
import XMonad.Util.EZConfig
import XMonad
import XMonad.Config.Desktop
import XMonad.Config.Gnome
import XMonad.Config.Kde
import XMonad.Config.Xfce
main = do
session <- getEnv "DESKTOP_SESSION"
xmonad $ xfceConfig --(maybe desktopConfig desktop session)
{
modMask = mod4Mask
, terminal = "gnome-terminal"
, logHook = takeTopFocus >> setWMName "LG3D"
}
`additionalKeys` [ ((mod4Mask, xK_p), spawn "dmenu_run")
,((mod4Mask, xK_v), spawn "gvim")
]
-----------------------------------------
------------Custom Keys------------------
-----------------------------------------
-----------------------------------------
------------Other horrible stuff---------
-----------------------------------------
desktop "gnome" = gnomeConfig
desktop "kde" = kde4Config
desktop "xfce" = xfceConfig
desktop "xmonad-gnome" = gnomeConfig
desktop _ = desktopConfig
atom_WM_TAKE_FOCUS ::
X Atom
atom_WM_TAKE_FOCUS =
getAtom "WM_TAKE_FOCUS"
takeFocusX ::
Window
-> X ()
takeFocusX w =
withWindowSet . const $ do
dpy <- asks display
wmtakef <- atom_WM_TAKE_FOCUS
wmprot <- atom_WM_PROTOCOLS
protocols <- io $ getWMProtocols dpy w
when (wmtakef `elem` protocols) $
io . allocaXEvent $ \ev -> do
setEventType ev clientMessage
setClientMessageEvent ev w wmprot 32 wmtakef currentTime
sendEvent dpy w False noEventMask ev
takeTopFocus ::
X ()
takeTopFocus =
withWindowSet $ maybe (setFocusX =<< asks theRoot) takeFocusX . W.peek
您会在
additionalKeys
部分注意到,我有2个绑定(bind)。两者都使用mod4Mask
,这也是我的默认mod key 。对于gvim,第二个绑定(bind)非常有效。问题在于,对于dmenu,第一个绑定(bind)完全不执行任何操作。奇怪的是,如果将mod4Mask
(用于dmenu)更改为mod1Mask
,则可以正常工作。另外,如果我从终端运行dmenu,它也可以正常工作。编辑:mod4Mask和P似乎不产生/做任何事情。
有任何想法吗?这个配置对我来说似乎很好,我不知道为什么它不起作用。
最佳答案
我不知道出什么问题了,但是我有一些调试建议。
您使用哪种键盘?我们?英国?还有别的吗
关于linux - XMonad不会使用mod4Mask产生任何东西,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12764021/