LINUX.ORG.RU

xmonad.hs, плавающие окна, как?


0

1

Что-то никак неполучается сделать нужные окна плавающими, скажем skype или qutim.

--
-- An example, simple ~/.xmonad/xmonad.hs file.
-- It overrides a few basic settings, reusing all the other defaults.
--

import XMonad
import XMonad.Util.EZConfig
import XMonad.ManageHook
import XMonad.Hooks.ManageHelpers
import XMonad.Layout.NoBorders


main = xmonad $ defaultConfig
    { borderWidth        = 2
    , modMask            = mod4Mask
    , terminal           = "urxvt"
    , normalBorderColor  = "#cccccc"
    , layoutHook = smartBorders $ layoutHook defaultConfig
    , startupHook = myStartupHook
    , focusedBorderColor = "#cd8b00"
--    , manageHook    = myManageHook <+> manageHook defaultConfig -- uses default too
    , manageHook    = myManageHook
    } `additionalKeysP` myKeys



myKeys = [ ("M-i", spawn "firefox"),
           ("M-m", spawn "smplayer"),
           ("M-e", spawn "evince"),
           ("M-a", spawn "audacious"),
           ("M-b", spawn "book"),
           ("M-t", spawn "/home/savgur/bin/time.sh")
         ]

-- myStartupHook = spawn "feh --bg-scale wallpapers/live-green.png" 
myStartupHook = spawn "sh ~/.xmonad/xmstartup.sh"

myManageHook :: ManageHook
myManageHook = composeOne [
           isFullscreen -?> doFullFloat

--           , resource =? "qutim" --> doFloat
--           , resource =? "stalonetray" -?> doIgnore
         ]

--myManageHook :: ManageHook
--myManageHook =
--    [
--      appName  =? "Skype"   --> doFloat,
      -- other lines with appName/className/title --> doFloat
--      isFullscreen --> doFullFloat
--      composeOne [ isFullscreen -?> doFullFloat ]
--    ]
Если раскоментирую строки получу примерно слудующее:
Error detected while loading xmonad configuration file: /home/guram/.xmonad/xmonad.hs

xmonad.hs:42:13:
    Couldn't match expected type `Maybe (Data.Monoid.Endo WindowSet)'
           against inferred type `Data.Monoid.Endo WindowSet'
      Expected type: MaybeManageHook
      Inferred type: ManageHook
    In the expression: resource =? "qutim" --> doFloat
    In the first argument of `composeOne', namely
        `[isFullscreen -?> doFullFloat, resource =? "qutim" --> doFloat,
        resource =? "stalonetray" -?> doIgnore]'

Please check the file for errors.
Что не так делаю? Поделитесь плиз конфигом с плавающими окнами.



Последнее исправление: savgur (всего исправлений: 3)

у меня сделано примерно так:

myManageHook = composeAll $
             [ title =? "app1"        --> doFloat
             , className =? "App2"    --> doFloat
             , className =? "App3"    --> doFloat
             ...
             ]
DJAnto
()
Ответ на: комментарий от savgur

> Что есть appName, className и title?

это иксовые WM_CLASS (там два значения, первое — appName, второе — className) и WM_NAME соответственно. Можно узнать, запустив xprop и выбрав то приложение, у которого хотим узнать атрибуты.

DJAnto
()
Ответ на: комментарий от savgur

А как просто запустить плавающее окно, не добаляя его в xmonad.hs. К примеру я запускаю приложение на Java, у которого WM_CLASS все время разный. Как бы их запускать чтоб сделать плавающими?

savgur
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.