Xmonadでデュアルディスプレイ
Xmonadでデュアルディスプレイに関する設定をしたので、
その時のメモ
Xmonadのデュアルディスプレイについて
XMonadのデュアルディスプレイは、一つのディスプレイに
一つのワークスペースを分り振るものであって、
一つのワークスペースをディスプレイ二つ分に拡張するものではありません。
このあたりは、前に使っていたXFCEとは異なることだったため、勘違いしていました。
設定について
設定ですが
XMonadでデュアルディスプレイを使うために次を設定しました。
-- ~/.xmonad/xmonad.hs import XMonad import XMonad.Hooks.DynamicLog import XMonad.Hooks.ManageDocks import XMonad.Util.Run(spawnPipe) import XMonad.Util.EZConfig(additionalKeys, additionalKeysP) import System.IO -- 次を新しくインポートした import qualified XMonad.StackSet as W myManageHook = composeAll -- floatさせるアプリケーション [ className =? "Gimp" --> doFloat, -- 次はtildaでなくTildaにしないといけない className =? "Tilda" --> doFloat ] main = do -- .xmobarrcの設定 xmproc <- spawnPipe "/usr/bin/xmobar ~/.xmobarrc" xmonad $ defaultConfig { -- terminalにはxfceのterminalを使う terminal = "terminal", manageHook = manageDocks <+> myManageHook <+> manageHook defaultConfig, layoutHook = avoidStruts $ layoutHook defaultConfig, logHook = dynamicLogWithPP xmobarPP { ppOutput = hPutStrLn xmproc, ppTitle = xmobarColor "green" "" . shorten 50 } -- , modMask = modmask } `additionalKeysP` myKeys -- ここでデュアルディスプレイに関する設定をした -- 具体的には、 -- M-S-rを押すことで -- ディスプレイ0にワークスペース1を出力し -- ディスプレイ1にワークスペース8を出力 -- するようにしました。 -- 作業していくなかで、どのディスプレイにどのワークスペース -- が割り振られているか分からなくなるときがあるので、 -- そのときにこれを使うと便利です myKeys = [("M-S-r", do screenWorkspace 0 >>= flip whenJust (windows.W.view) (windows . W.greedyView) "1" screenWorkspace 1 >>= flip whenJust (windows.W.view) (windows . W.greedyView) "8")]