1 min read

KDE 与 Xmonad

之前我写过一篇博客 openSUSE 下的 xmonad,讲的是完整的 xmonad 环境,这篇讲 KDE 下如何使用 xmonad,好处是 KDE 的许多功能都可以使用,只是窗口管理器换成 xmonad。

系统环境:openSUSE 13.2

安装 Xmonad

参照前一篇说明,使用 cabal 安装 xmonad。

配置 xmonad.hs

打开 ~/.xmonad/xmonad.hs 文件,将内容改为如下

import System.IO

import XMonad
import XMonad.Config.Kde
import XMonad.Hooks.SetWMName
import XMonad.Util.WindowProperties (getProp32s)

main = do
  xmonad kde4Config {
    terminal = "konsole"
  , modMask = mod4Mask
  , startupHook = setWMName "LG3D"
  , manageHook = ((className =? "krunner") >>= return . not --> manageHook kde4Config)
      <+> (kdeOverride --> doFloat)
}

kdeOverride :: Query Bool
kdeOverride = ask >>= \w -> liftX $ do
    override <- getAtom "_KDE_NET_WM_WINDOW_TYPE_OVERRIDE"
    wt <- getProp32s "_NET_WM_WINDOW_TYPE" w
    return $ maybe False (elem $ fromIntegral override) wt

设置窗口管理器

先用 which 命令查看 xmonad 路径:

sam@linux-qo4p:~|master⚡⇒  which xmonad 
/home/sam/.cabal/bin/xmonad

~/.kde4/env 目录(如果是 Plasma5 的话则是在 ~/.config/plasma-workspace/env **)下创建 **set_window_manager.sh 文件,添加如下内容:

export KDEWM=/home/sam/.cabal/bin/xmonad

修改文件权限,允许文件执行:

$ chmod 755 set_window_manager.sh

注销 KDE 会话,然后再登录进去,KDE 的窗口管理器已经从 kwin 换成 Xmonad 了,如下图:

[resp_image id=’14769′ caption=” ]

附录

  1. 存放在 Github 上的我的 xmonad.hs 配置文件

Google Code 上的一个 xmonad.hs 配置文件(英文)

HaskellWiki 教你如何在 KDE 下使用 Xmonad(英文)

报告问题 修订