Xmonad (Вопросы и обсуждение)

ion, dwm, wmii, awesome, xmonad и другие

Модератор: Модераторы разделов

Аватара пользователя
Portnov
Модератор
Сообщения: 1786
Статус: Матёрый линуксоид
ОС: Debian testing/unstable
Контактная информация:

Re: Xmonad

Сообщение Portnov »

Код: Выделить всё

import Graphics.X11.Xlib.Extras
import Graphics.X11.ExtraTypes.XF86

Может, в этом дело?
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Спасибо сказали:
Аватара пользователя
AlexYeCu
Сообщения: 1136
ОС: fedora

Re: Xmonad

Сообщение AlexYeCu »

Ни тот, ни другой совет не помогли. Вообще в инете ОЧЕНЬ много всякого хлама по теме, но ничего конкретного и рабочего. Если у кого есть рабочие конфиги с прописанными super и XF86* — закиньте в тему…
Спасибо сказали:
Аватара пользователя
Portnov
Модератор
Сообщения: 1786
Статус: Матёрый линуксоид
ОС: Debian testing/unstable
Контактная информация:

Re: Xmonad

Сообщение Portnov »

По-моему, я здесь давал уже эту ссылку... Мой конфиг, работающий, правда, с версией из darcs: http://iportnov.ru/files/xmonad.hs .
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Спасибо сказали:
Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian
Контактная информация:

Re: Xmonad

Сообщение diesel »

AlexYeCu писал(а):
13.11.2009 11:03
Ни тот, ни другой совет не помогли. Вообще в инете ОЧЕНЬ много всякого хлама по теме, но ничего конкретного и рабочего. Если у кого есть рабочие конфиги с прописанными super и XF86* — закиньте в тему…

а Вы можете показать что выдает ghc --make .xmonad/xmonad.hs?

PS. так как я написал, работать кажется не должно, но ошибок тоже вылезать не должно.
Спасибо сказали:
Аватара пользователя
AlexYeCu
Сообщения: 1136
ОС: fedora

Re: Xmonad

Сообщение AlexYeCu »

Portnov писал(а):
13.11.2009 11:47
По-моему, я здесь давал уже эту ссылку... Мой конфиг, работающий, правда, с версией из darcs: http://iportnov.ru/files/xmonad.hs .

Так, похоже у нас путаница в понятиях…
По вашему конфигу Super работает как одиночная кнопка. Но как его использовать как дополнительный модификатор? чтобы можно было alt (mod1) оставить для хоткеев xmonad, а super+e, super+w и т.д. для софта?

а Вы можете показать что выдает ghc --make .xmonad/xmonad.hs?


Это что касается XF86*

Код: Выделить всё

$ ghc ~/.xmonad/xmonad.hs

~/.xmonad/xmonad.hs:139:7:
    Couldn't match expected type `(KeyMask, KeySym)'
           against inferred type `[Char]'
    In the expression: "<XF86Search>"
    In the expression: ("<XF86Search>", (spawn "camx"))
    In the first argument of `(++)', namely
        `[((modm .|. shiftMask, xK_Return), spawn $ terminal conf),
          ((modm, xK_p),
           spawn "exe=`dmenu_path | dmenu` && eval \"exec $exe\""),
          ((0, 269025040), spawn "slock"), ((0, xK_Print), spawn "scrot"),
          ....]'


Вообще, конечно, дурдом редкостный. Зачем было всё так переусложнять?

UP: XF86* я как только не прописывал, вариантов пять. Но кроме явного указания keysym ничего не работает…
Спасибо сказали:
Аватара пользователя
Portnov
Модератор
Сообщения: 1786
Статус: Матёрый линуксоид
ОС: Debian testing/unstable
Контактная информация:

Re: Xmonad

Сообщение Portnov »

Клавиша win как модификатор (чтобы там win-e) - это mod4, обычно.

Ну а касательно приведённого сообщения об ошибке - судя по всему, вы пытаетесь использовать оба способа задания горячих клавиш (стандартный и через EZConfig) в одном списке, получается ерунда, конечно.
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Спасибо сказали:
Аватара пользователя
AlexYeCu
Сообщения: 1136
ОС: fedora

Re: Xmonad

Сообщение AlexYeCu »

Portnov писал(а):
13.11.2009 15:17
Клавиша win как модификатор (чтобы там win-e) - это mod4, обычно.


Вот это поподробней можно?

Portnov писал(а):
13.11.2009 15:17
Ну а касательно приведённого сообщения об ошибке - судя по всему, вы пытаетесь использовать оба способа задания горячих клавиш (стандартный и через EZConfig) в одном списке, получается ерунда, конечно.


Очень может быть. Проверю.

UP: всё равно xmonad упирается копытами и знать не хочет, что такое мультимедийные кнопки… Понять не могу, что ей надо. И откуда она вообще читает соответствие кейкодов и названий клавиш — у меня такое чувство, что горе-разработчики ударились в экзотику с этим вопросом…

UP2:
Использование super как модификатора:

Код: Выделить всё

import XMonad.Util.CustomKeys
, ((mod4Mask, xK_e ), spawn "terminal")


C XF86 пока ничего умнее не придумал:

Код: Выделить всё

--XF86Mail
    , ((0, 0x1008ff19 ), spawn "firefox")
--XF86Home
    , ((0, 0x1008ff33 ), spawn "konqueror $HOME")
--XF86WebCam
    , ((0, 0x1008ff8f ), spawn "camx")
Спасибо сказали:
C10H15N
Сообщения: 277
Статус: \(0_0)/ !!111

Re: Xmonad

Сообщение C10H15N »

А как сделать чтобы скрипт или приложение могли управлять иксмонадом?
Допустим что-то выполняется , если ошибка- меня перекидывает на 3 десктоп и переключает там layout на full , к примеру.В обычных вм при помощи wmctrl такое можно проделать, а с иксмонадом что-то оно не работет в должной мере -пока максимум что получилось-это переключаться на указанный десктоп.
Спасибо сказали:
C10H15N
Сообщения: 277
Статус: \(0_0)/ !!111

Re: Xmonad

Сообщение C10H15N »

Никто не знает что ли, или я какие-то всем очевидные вещи спрашиваю?

Вобщем wmctrl негодный, сделал при помощи xdotool -оно имитирует нажатия кнопок, которые уже и отрабатывает xmonad.Но для переключения сразу на нужный layout, а не циклически, пришлось задействовать XMonad.Layout.LayoutCombinators.
Спасибо сказали:
Аватара пользователя
Portnov
Модератор
Сообщения: 1786
Статус: Матёрый линуксоид
ОС: Debian testing/unstable
Контактная информация:

Re: Xmonad

Сообщение Portnov »

AlexYeCu
См. мой конфиг, например. Ссылку я дал. Соответствие имён и кейкодов берётся, как и в остальных языках - из заголовочных файлов^W^Wсоответствующих модулей-биндингов X11. В частности, из Graphics.X11.ExtraTypes.XF86.

Код: Выделить всё

import Graphics.X11.ExtraTypes.XF86

...
, ((0, xF86XK_Mail ), spawn "firefox")
...

Всё стандартно.

C10H15N
См. XMonad.Hooks.ServerMode.
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Спасибо сказали:
Аватара пользователя
AlexYeCu
Сообщения: 1136
ОС: fedora

Re: Xmonad

Сообщение AlexYeCu »

Код: Выделить всё

main=do
   xmonad $ defaultConfig
     {  ...
 ,layoutHook=smartBorders $
           --avoidStruts $
           gaps [(U,24), (R,0)] $
           onWorkspace "system" (mosaic 2 [3,2] ||| ResizableTall 1 (3/100) (1/2) [] ||| TwoPane) $
           onWorkspace "im" (withIM (1%7) (ClassName "Pidgin") Grid ||| mosaic 2 [3,2] ||| ResizableTall 1 (3/100) (1/2) []) $
           onWorkspace "sip" (withIM (1%7) (ClassName "Skype") Grid ||| mosaic 2 [3,2] ||| ResizableTall 1 (3/100) (1/2) []) $
           onWorkspace "www" (mosaic 2 [3,2] ||| noBorders Full ||| simpleTabbed ||| Circle) $
           onWorkspace "files" (mosaic 2 [3,2] ||| spiral (6/7) ||| Circle ||| noBorders Full) $
           onWorkspace "text" (mosaic 2 [3,2]  ||| StackTile 1 (3/100) (1/2) ||| noBorders Full ||| Circle) $
           onWorkspace "media" (mosaic 2 [3,2] ||| noBorders Full ||| Circle ||| simpleTabbed) $
           onWorkspace "code" (mosaic 2 [3,2] ||| noBorders Full ||| ResizableTall 1 (3/100) (1/2) []) $
           onWorkspace "graphics" (mosaic 2 [3,2] ||| noBorders Full) $
           onWorkspace "office" (mosaic 2 [3,2] ||| StackTile 1 (3/100) (1/2) ||| noBorders Full ||| simpleTabbed)

}


Код: Выделить всё

Couldn't match expected type `GHC.Word.Word32'
           against inferred type `PerWorkspace
                                    (Choose
                                       XMonad.Layout.Mosaic.Mosaic
                                       (Choose
                                          StackTile
                                          (Choose
                                             (ModifiedLayout
                                                XMonad.Layout.NoBorders.WithBorder Full)
                                             (ModifiedLayout
                                                (Decoration TabbedDecoration DefaultShrinker)
                                                XMonad.Layout.Simplest.Simplest))))
                                    l2
                                    Window'
      Expected type: l2 Window -> Window
      Inferred type: l2 Window
                     -> PerWorkspace
                          (Choose
                             XMonad.Layout.Mosaic.Mosaic
                             (Choose
                                StackTile
                                (Choose
                                   (ModifiedLayout XMonad.Layout.NoBorders.WithBorder Full)
                                   (ModifiedLayout
                                      (Decoration TabbedDecoration DefaultShrinker)
                                      XMonad.Layout.Simplest.Simplest))))
                          l2
                          Window
    In the second argument of `($)', namely
        `onWorkspace
           "office"
           (mosaic 2 [3, 2]
          ||| StackTile 1 (3 / 100) (1 / 2)
            ||| noBorders Full ||| simpleTabbed)'
    In the second argument of `($)', namely
        `onWorkspace "graphics" (mosaic 2 [3, 2] ||| noBorders Full)
       $ onWorkspace
           "office"
           (mosaic 2 [3, 2]
          ||| StackTile 1 (3 / 100) (1 / 2)
            ||| noBorders Full ||| simpleTabbed)'


Где ошибка?
Спасибо сказали:
Аватара пользователя
Portnov
Модератор
Сообщения: 1786
Статус: Матёрый линуксоид
ОС: Debian testing/unstable
Контактная информация:

Re: Xmonad

Сообщение Portnov »

Скорее всего, проблема в том, что у вас последний onWorkspace ни к чему не применён (это же модификатор, а не лэйаут). Надо примерно так:

Код: Выделить всё

onWorkspace ... $ onWorkspace ... $ onWorkspace ... Full

Вместо Full в конце можно любой layout - имеется ввиду, что он будет применяться на тех воркспейсах, которые не перечислены в цепочке onWorkspace.

А ещё может быть, где-то скобку забыли закрыть. В редакторе с подсветкой скобок посмотрите ;)
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Спасибо сказали:
Аватара пользователя
BlackStar
Сообщения: 1338
Статус: We are all Kosh
ОС: Fedora 10
Контактная информация:

Re: Xmonad

Сообщение BlackStar »

Пробую по аналогии с Pidgin сделать так чтобы Empathy ростер не растягивался на весь экран:

Код: Выделить всё

myLayout = smartBorders $ onWorkspace "im" (gridIM 0.25 empathyRoster) $ Mirror tiled ||| tiled ||| Full
  where
     -- default tiling algorithm partitions the screen into two panes
     tiled   = Tall nmaster delta ratio

     -- The default number of windows in the master pane
     nmaster = 1

     -- Default proportion of screen occupied by master pane
     ratio   = 1/2

     -- Percent of screen to increment by when resizing panes
     delta   = 3/100

     -- Pidgin Roster
     pidginRoster = And (ClassName "Pidgin") (Role "buddy_list")
     empathyRoster = And (ClassName "Empathy") (Role "contact_list")

но это не работает. И если можно как прописать в конфигурации одновременно и pidgin и empathy?
LightLang Team
Спасибо сказали:
Аватара пользователя
Portnov
Модератор
Сообщения: 1786
Статус: Матёрый линуксоид
ОС: Debian testing/unstable
Контактная информация:

Re: Xmonad

Сообщение Portnov »

Ну, раз не работает - значит, неправильно класс и/или роль указали. Одновременно -
... gridIM 0.25 (pidginRoster `Or` empathyRoster) ...
Только при такой конфигурации при запуске одновременно pidgin и empathy в область ростера попадёт кто попало, второму не повезло. Если надо более умное поведение - см. X,L.ComboP.
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Спасибо сказали:
Аватара пользователя
lordinferius
Сообщения: 26
ОС: Fedora 11

Re: Xmonad

Сообщение lordinferius »

Привет всем. Я недавно начал использовать xmonad. У меня вот такая проблема: я сделал свой конфиг, но он не хочет компилироваться. Выдаёт такое сообщение:
[eugene@komm ~]$ xmonad --recompile
Error detected while loading xmonad configuration file: /home/eugene/.xmonad/xmonad.hs

on the commandline:
Warning: -no-recomp is deprecated: Use -fforce-recomp instead

xmonad.hs:29:10:
The last statement in a 'do' construct must be an expression

Please check the file for errors.


Вот источник, с помощью которого я делал свой конфиг:

http://haskell.org/haskellwiki/Xmonad/Conf...darcs_xmonad.hs

А вот мой конфиг:

Код: Выделить всё

import XMonad
import System.Exit

import qualified XMonad.StackSet as W
import qualified Data.Map        as M
-------------------------------------

import XMonad.Hooks.DynamicLog
import XMonad.Hooks.ManageDocks

-------------------------------------

import XMonad.Layout.ResizableTile
import XMonad.Layout.NoBorders

-------------------------------------

import XMonad.Actions.Warp
import XMonad.Actions.WindowGo
import XMonad.Actions.UpdatePointer

-------------------------------------

import XMonad.Util.Run
import XMonad.Util.Loggers

-------------------------------------

main = do h <- spawnPipe "dzen2 -fn -*-terminus-medium-r-*-*-14-*-*-*-*-*-*-u -bg black -fg '#a8a3f7' -ta l -e 'onstart=lower'"
        xmonad $ kommunistConfig h

kommunistConfig h = myUrgencyHook $
  defaultConfig
  {
  borderWidth = 2
  , terminal = "urxvt"
  , workspaces = myWorkspaces
  , normalBorderColor = "#0090ff"
  , focusedBorderColor = "#000000"
  , logHook = myDynamicLog h >> updatePointer (Relative 1 1)
  , mouseBindings = myMouseBindings
  , manageHook = manageHook defaultConfig <+> myManageHook
  , layoutHook = myLayoutHook
  , focusFollowsMouse = True
  , startupHook = return ()
  , keys = myKeys
  , modMask = mod1Mask
  , startupHook = return()
  }


myUrgencyHook = withUrgencyHook dzenUrgencyHook
  { args = ["-bg", "yellow", "-fg", "black"] }

myWorkspaces :: [String]
myWorkspaces = ["1:internets","2:jabber","3:music","4:configs","5:video","6","7","8","9"]

myDynamicLog h = dynamicLogWithPP $ kommunistPP
  { ppExtras = [ date "%a %b %d   %I:%M %p"
             , loadAvg
             ]
  , ppOrder  = \(ws:l:t:exs) -> [t,l,ws]++exs
  , ppOutput = hPutStrLn h
  o, ppTitle  = shorten 45
  }

myMouseBindings (XConfig {XMonad.modMask = modMask}) = M.fromList $

    -- mod-button1, Set the window to floating mode and move by dragging
    [ ((modMask, button1), (\w -> focus w >> mouseMoveWindow w))

    -- mod-button2, Raise the window to the top of the stack
    , ((modMask, button2), (\w -> focus w >> windows W.swapMaster))

    -- mod-button3, Set the window to floating mode and resize by dragging
    , ((modMask, button3), (\w -> focus w >> mouseResizeWindow w))

    -- you may also bind events to the mouse scroll wheel (button4 and button5)
    ]

myKeys conf@(XConfig {XMonad.modMask = modMask}) = M.fromList $

    -- launch a terminal
    [ ((modMask, xK_Return), spawn $ XMonad.terminal conf)

    -- launch dmenu
    --, ((modMask,               xK_p     ), spawn "exe=`dmenu_path | dmenu` && eval \"exec $exe\"")

    -- launch gmrun
    --, ((modMask .|. shiftMask, xK_p     ), spawn "gmrun")
    , ((modMask   , xK_F2        ), spawn "gmrun")

    -- close focused window
    , ((modMask .|. shiftMask, xK_c     ), kill)

     -- Rotate through the available layout algorithms
    , ((modMask,               xK_space ), sendMessage NextLayout)

    --  Reset the layouts on the current workspace to default
    , ((modMask .|. shiftMask, xK_space ), setLayout $ XMonad.layoutHook conf)

    -- Resize viewed windows to the correct size
    , ((modMask,               xK_n     ), refresh)

    -- Move focus to the next window
    , ((modMask,               xK_Tab   ), windows W.focusDown)

    -- Move focus to the next window
    --, ((modMask,               xK_j     ), windows W.focusDown)

    -- Move focus to the previous window
    --    , ((modMask,               xK_k     ), windows W.focusUp  )

    -- Run Exaile music player
    --, ((modMask,               xK_m     ), spawn "exaile" )

    -- Swap the focused window and the master window
    --, ((modMask,               xK_Return), windows W.swapMaster)

    -- Swap the focused window with the next window
    , ((modMask .|. shiftMask, xK_j     ), windows W.swapDown  )

    -- Swap the focused window with the previous window
    , ((modMask .|. shiftMask, xK_k     ), windows W.swapUp    )

    -- Shrink the master area
    , ((modMask,               xK_h     ), sendMessage Shrink)

    -- Expand the master area
    , ((modMask,               xK_l     ), sendMessage Expand)

    -- Expand non-master window
    , ((modMask,               xK_e     ), sendMessage MirrorExpand)

    -- Shrink non-master window
    , ((modMask,               xK_s     ), sendMessage MirrorShrink)

    -- Push window back into tiling
    , ((modMask,               xK_t     ), withFocused $ windows . W.sink)

    -- Increment the number of windows in the master area
    --, ((modMask              , xK_comma ), sendMessage (IncMasterN 1))

    -- Deincrement the number of windows in the master area
    --, ((modMask              , xK_period), sendMessage (IncMasterN (-1)))

    -- toggle the status bar gap
    -- TODO, update this binding with avoidStruts , ((modMask              , xK_b     ),

    -- Quit xmonad
    , ((modMask .|. shiftMask, xK_q     ), io (exitWith ExitSuccess))

    -- Restart xmonad
    , ((modMask              , xK_q     ), restart "xmonad" True)

    -- run web-browser
    , ((modMask                          , xK_i         ), spawn "opera")

    -- run MCabber in urxvt
    , ((modMask                          , xK_j     ), spawn "urxvt -e mcabber")

    ]
    ++

    --
    -- mod-[1..9], Switch to workspace N
    -- mod-shift-[1..9], Move client to workspace N
    --
    [((m .|. modMask, k), windows $ f i)
        | (i, k) <- zip (XMonad.workspaces conf) [xK_1 .. xK_9]
        , (f, m) <- [(W.greedyView, 0), (W.shift, shiftMask)]]


myManageHook :: ManageHook                                      -- (0)
myManageHook = composeAll $
                   -- auto-float certain windows
                 [ className =? c --> doCenterFloat | c <- myFloats ] -- (4)
                 ++
                 --[ title =? t     --> doFloat | t <- myFloatTitles ]

                   -- send certain windows to certain workspaces
                 [ className =? "Opera" --> doF (W.shift "1:internets")  -- (0,0a)
                 --, className =? "XDvi" --> doF (W.shift "dv")      -- (0,0a)
                   -- unmanage docks such as gnome-panel and dzen
                 , manageDocks                                     -- (3)
                 ]
    -- windows to auto-float
    where myFloats = [-- "Volume"
                     "XClock"
                     --, "Network-admin"
                     , "Xmessage"
                     --, "gnome-search-tool"
                     ]
--          myFloatTitles = ["Bridge Bid", "xbuffy"]

myLayoutHool = avoidStruts (tiled ||| Mirror tiled ||| Full) ||| Full
  where
     -- default tiling algorithm partitions the screen into two panes
     tiled   = Tall nmaster delta ratio

     -- The default number of windows in the master pane
     nmaster = 1

     -- Default proportion of screen occupied by master pane
     ratio   =  3/5

     -- Percent of screen to increment by when resizing panes
     delta   = 3/100

-------------------------------------------------------------


Подскажите, в чём проблема? Конфиг, взятый с xmonad.org, компилируется и работает
Спасибо сказали:
Аватара пользователя
AlexYeCu
Сообщения: 1136
ОС: fedora

Re: Xmonad

Сообщение AlexYeCu »

xmonad+pidgin
Настройкой layout вот для такой картинки не поделитесь?
Спасибо сказали:
Аватара пользователя
Portnov
Модератор
Сообщения: 1786
Статус: Матёрый линуксоид
ОС: Debian testing/unstable
Контактная информация:

Re: Xmonad

Сообщение Portnov »

Это стандартный вариант

withIM (1%6) (Role "buddy_list") Grid

Там ещё dwmStyle применён для заголовков окон.
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Спасибо сказали:
Аватара пользователя
AlexYeCu
Сообщения: 1136
ОС: fedora

Re: Xmonad

Сообщение AlexYeCu »

Обнаружил занятный баг. Если окно «растайлировать», проще говоря потащить с зажатым alt`ом и сделать «плавающим», то до тех пор пока окно не подвергнется ресайзу (мышью или обратным помещением во фрейм и сменой раскладки), на него невозможно установить фокус. И окно при этом не перерисовывается. После ресайза в нём отображается всё, что было введено во время «подвисания». Кто-нибудь сталкивался, победил?
Спасибо сказали:
shiz
Сообщения: 4

Re: Xmonad

Сообщение shiz »

AlexYeCu писал(а):
05.12.2009 00:12
Обнаружил занятный баг. Если окно «растайлировать», проще говоря потащить с зажатым alt`ом и сделать «плавающим», то до тех пор пока окно не подвергнется ресайзу (мышью или обратным помещением во фрейм и сменой раскладки), на него невозможно установить фокус. И окно при этом не перерисовывается. После ресайза в нём отображается всё, что было введено во время «подвисания». Кто-нибудь сталкивался, победил?


повторить не получилось. "таскал" оперу, терминалы. фокус нормально переключается, окошки не замерзают.
Спасибо сказали:
Аватара пользователя
AlexYeCu
Сообщения: 1136
ОС: fedora

Re: Xmonad

Сообщение AlexYeCu »

shiz писал(а):
05.12.2009 12:39
повторить не получилось. "таскал" оперу, терминалы. фокус нормально переключается, окошки не замерзают.

Я перерыл xmonad-овский багтрекер и тоже подобного не нашёл. Засниму десктоп — покажу. Я сейчас проверяю на бажность разные layout`ы, SimpleCross и Roldex выкинуты по причине (благо первый тот же circle, а второй — баловство), заметил баг с Tabbed — отображаются только первый раз, если на воркспейсе больше одного layout`а...
Вот разобраться с рецептом Portnov`а с определением tear-off меню и иже сними осталось...


Понадобилось на одном воркспейсе разместить ростеры pidgin и skype по разным сторонам экрана.
Решил сделать также как и с The Gimp:

Код: Выделить всё

gimp = withIM (0.11) (Role "gimp-toolbox") $
             reflectHoriz $
             withIM (0.15) (Role "gimp-dock") (Dishes 2 (1/6))


--iml = withIM (1%4) (ClassName "Pidgin" `And` Role "buddy_list") $
--         reflectHoriz $
--          withIM (1%4) (ClassName "Skype" `And` Role "MainWindow") (mosaic 1.5 [])

Но!

Код: Выделить всё

ghc .xmonad/xmonad.hs

.xmonad/xmonad.hs:450:6:
    No instance for (LayoutModifier XMonad.Layout.IM.AddRoster a)
      arising from a use of `withIM' at .xmonad/xmonad.hs:450:6-63
    Possible fix:
      add an instance declaration for
      (LayoutModifier XMonad.Layout.IM.AddRoster a)

А с gimp всё работает…

UP: и можно ли как-либо подружить LayoutCombinators и perWorkspace?
Спасибо сказали:
ProFfeSsoRr
Сообщения: 16
ОС: Arch

Re: Xmonad

Сообщение ProFfeSsoRr »

Подскажите пожалуйста, пользуюсь Krusader из KDE4, ну а самого KDE нет, поэтому он рисует окна копирования-перемещения свои (в KDE4 там в трее это отображается). Так вот - у этих окон нет никаких опознавательных признаков, по которым их можно было бы делать плавающими. У главного окна крусадера есть WM_ROLE, а у этих его вообще нет. Как бы написать все-таки правило в xmonad, чтобы если WM_CLASS Kusader безо всяких WM_ROLE, то плавающее окно, а если WM_ROLE=mainwindow#1, то управлять таким окном?
Спасибо сказали:
C10H15N
Сообщения: 277
Статус: \(0_0)/ !!111

Re: Xmonad

Сообщение C10H15N »

А трей приделать, не?
Спасибо сказали:
Аватара пользователя
landgraf
Сообщения: 2142
Статус: *бунту ненавистник
ОС: linux
Контактная информация:

Re: Xmonad

Сообщение landgraf »

Продолжаю мучаться с ICAclient (Citrix) под tiling WM. В сабже дочерние окошки клиента (меню и все окна вроде "открыть" "настройки" и т.п.) открываются в левом верхнем углу размером в 1 пиксель. Во fluxbox работает нормально. simpleFloat layout делал, не помогает
Спасибо сказали:
Аватара пользователя
AlexYeCu
Сообщения: 1136
ОС: fedora

Re: Xmonad

Сообщение AlexYeCu »

Как можно задать координаты для появления Float фреймов? По дефолту 0,0 (верхний левый угол экрана), хотелось бы отцентрировать либо привязать к координатам мышиного курсора (как диалоги). Перерыл xmonad`овскую справку на предмет чего бы импортнуть, но как-то не обнаружилось дельного.
Спасибо сказали:
C10H15N
Сообщения: 277
Статус: \(0_0)/ !!111

Re: Xmonad

Сообщение C10H15N »

Отцентрировать- doCenterFloat
За мышью (и вобще по размещению)- http://www.google.ru/url?q=http://xmonad.o...WjFwBK9bgn-Pi6g
Спасибо сказали:
Аватара пользователя
AlexYeCu
Сообщения: 1136
ОС: fedora

Re: Xmonad

Сообщение AlexYeCu »

А вот ещё явление: на некоторых окнах conky и stalonetray пропадают. conky на секунду, stalonetray на более продолжительный срок — чуть не минуту значки перерисовывает. Примеры таких окон: klamav, krita. Т.е. только Qt3. В случае с klamav ненадолго притормаживает и отрисовка его собственного окна. Чисто внешне похоже, что софтины не могут поделить видеобуфер.
UP: Только при включённом xcompmgr.
UP2: Правильно сформулированный вопрос — это половина ответа :)

Код: Выделить всё

xcompmgr -CFS
убирает баг со stalonetray. Есть мысль ещё и в conky отключить double_buffering.
Спасибо сказали:
Аватара пользователя
AlexYeCu
Сообщения: 1136
ОС: fedora

Re: Xmonad

Сообщение AlexYeCu »

А можно как-нибудь gaps отключить на одном рабочем столе? Т.е. чтобы все рабочие столы с gaps стартовали, а один без?
И как игнорить док на всех воркспейсах кроме одного?

И такой момент: позиционирование курсора в меню java-приложений. Обычно выделяется пункт над курсором. Это решаемо? На официальном форуме говорится о возможных проблемах с java, но там только про «серые блобы» вместо окон. Про позиционирование курсорра нет ничего.
Спасибо сказали:
Аватара пользователя
Kain666
Сообщения: 131
ОС: Archlinux

Re: Xmonad

Сообщение Kain666 »

AlexYeCu писал(а):
03.01.2010 01:13
А можно как-нибудь gaps отключить на одном рабочем столе? Т.е. чтобы все рабочие столы с gaps стартовали, а один без?
И как игнорить док на всех воркспейсах кроме одного?

И такой момент: позиционирование курсора в меню java-приложений. Обычно выделяется пункт над курсором. Это решаемо? На официальном форуме говорится о возможных проблемах с java, но там только про «серые блобы» вместо окон. Про позиционирование курсорра нет ничего.


Отвечу только про gaps, я сделал бы как-то так:

myLayout = onWorkspace "web" (tallLayoutGap)
$ onWorkspace "im" (tallLayoutNoGap)
$ tallLayoutGap
where
gap = gaps [(U,18)]
tallBasic = ResizableTall 1 (1 % 100) (4 % 5) []
tallLayoutGap = named "tallGap" $ gap $ tallBasic
tallLayoutNoGap = named "tallNoGap" $ tallBasic

Думаю принцип понятен.
Archlinux <strike>ion3</strike>xmonad urxvt ncmpcpp emacs screen <strike>gajim</strike>qutim rtorrent
Спасибо сказали:
Аватара пользователя
AlexYeCu
Сообщения: 1136
ОС: fedora

Re: Xmonad

Сообщение AlexYeCu »

shiz писал(а):
05.12.2009 12:39
повторить не получилось. "таскал" оперу, терминалы. фокус нормально переключается, окошки не замерзают.


Как выяснилось, «замерзание окон» имеет место только при работающем xcompmgr. Запускайте — сразу увидите баг.
Важно, окно должно быть одно на воркспейсе.

Думаю, это можно обойти, проверяя не является ли окно единственным/растянутым на весь экран, и если да, то по перетаскиваню мышью делать doСenterFloat с ресайзом до 3/4 экрана, к примеру. Т.е. приблизить поведение фрейма к поведению распахнутого окна в CompizFusion или Win Se7en.
Спасибо сказали:
Аватара пользователя
Portnov
Модератор
Сообщения: 1786
Статус: Матёрый линуксоид
ОС: Debian testing/unstable
Контактная информация:

Re: Xmonad

Сообщение Portnov »

Вот примерно так, если интересно: http://dumpz.org/16374/
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Спасибо сказали:
Ответить