
Ubuntu日本語フォーラム

ログインしていません。
xmonadをしばらく利用しているとキー操作を受け付けなくなってしまい、デスクトップの切り替えや、xmonadの再起動などが行えなくなります。
推定される原因や、原因追求のための手段について教えていただけないでしょうか。
<xmonad.hs>
import XMonad
import DBus
import XMonad.Hooks.DynamicLog
import XMonad.Hooks.ManageDocks
import XMonad.Util.Run(spawnPipe)
import XMonad.Util.EZConfig(additionalKeys, additionalKeysP)
import XMonad.Actions.SpawnOn
import System.IO
import Graphics.X11.ExtraTypes.XF86
import qualified XMonad.StackSet as W
import XMonad.Hooks.EwmhDesktops
import XMonad.Hooks.ManageHelpers (composeOne, isFullscreen, isDialog, doFullFloat, doCenterFloat)
myManageHook = composeAll
-- floatさせるアプリケーション
[ className =? "Vlc" --> doFloat,
-- 次はtildaでなくTildaにしないといけない
className =? "Tilda" --> doFloat
]
myManageHook2 = composeAll. concat $
[ [ className =? c --> doCenterFloat| c <- floats]
, [ resource =? r --> doIgnore | r <- ignore]
, [ resource =? "gecko" --> doF (W.shift "net") ]
, [ isFullscreen --> doFullFloat]
, [ isDialog --> doCenterFloat]]
where floats = ["sdlpal", "MPlayer", "Gimp", "qemu-system-x86_64", "Gnome-typing-monitor", "Vlc" ]
ignore = []
main = do
xmproc <- spawnPipe "/usr/bin/xmobar /home/kuma/.xmobarrc" -- .xmoabrrcのパスを記述しておく
xmonad $ defaultConfig
{ manageHook = manageDocks <+> myManageHook <+> myManageHook2 <+> manageHook defaultConfig
, layoutHook = avoidStruts $ layoutHook defaultConfig
, startupHook = myStartupHook
, logHook = dynamicLogWithPP $ xmobarPP
{ ppOutput = hPutStrLn xmproc
, ppTitle = xmobarColor "green" "" . shorten 50
}
-- , modMask = mod4Mask -- WindowsキーをModキーとしてバインドする
, handleEventHook = fullscreenEventHook
}
`additionalKeys`
[ ((mod4Mask .|. shiftMask, xK_z), spawn "xscreensaver-command -lock")
, ((controlMask, xK_Print), spawn "sleep 0.2; scrot -s")
, ((0, xK_Print), spawn "scrot")
]
`additionalKeysP`
myKeys
myStartupHook = spawn "/home/kuma/script/shuffle_wallpaper.sh"
-- ここでデュアルディスプレイに関する設定をした
-- 具体的には、
-- 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")]
<環境>
以下環境でxmonadを利用しています。
PC:Thinkpad X260
OS:Ubuntu16.04LTS
<dmesg>
dmesgの出力は以下の通りです。(抜粋)
[ 0.000000] Linux version 4.4.0-45-generic (buildd@lgw01-34) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.2) ) #66-Ubuntu SMP Wed Oct 19 14:12:37 UTC 2016 (Ubuntu 4.4.0-45.66-generic 4.4.21)
[ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-4.4.0-45-generic.efi.signed root=UUID=49631f38-adbc-4079-b5d3-1dfb79751a3d ro quiet splash vt.handoff=7
オフライン