XMonad 0.13

UPD

-- Базовые модули
import XMonad hiding ( (|||) )  -- Главный модуль
import Data.List
import Data.Ratio ((%))
import Foreign.C (CChar)
import Graphics.X11.Xlib
import Graphics.X11.ExtraTypes.XF86
import System.Exit
import System.IO
import qualified Data.Map        as M
import qualified Data.ByteString as B
import qualified XMonad.StackSet as W -- Управление клиентами (окнами)
-- Хуки
import XMonad.Hooks.DynamicLog -- Хук для обновления информации в баре
import XMonad.Hooks.ManageDocks -- Автоматическое управление программами типа док (баром)
import XMonad.Hooks.ManageHelpers -- Доп.функции ManageHooks
import XMonad.Hooks.UrgencyHook hiding (Never)
import XMonad.Hooks.EwmhDesktops
-- Утили
import XMonad.Util.Run(spawnPipe) -- Для запуска внешний приложений/скриптов
import XMonad.Util.EZConfig(additionalKeys) -- Улучшение конфигурации, использование доп.хоткеев
-- Пользовательские настройки
myTerm = "urxvt"
myBorderColor = "#000000"
myBorderColorFocused = "#8E8E8E"
myModMask = mod1Mask

myKeys conf@(XConfig {XMonad.modMask = modm}) = M.fromList $
    [
      ((mod1Mask .|. shiftMask, xK_q), kill)
    , ((mod1Mask, xK_Right), windows W.focusDown)
    , ((mod1Mask, xK_Left), windows W.focusUp)
    , ((mod1Mask, xK_Down), windows W.focusDown)
    , ((mod1Mask, xK_Up), windows W.focusUp)
    , ((controlMask, xK_Print), spawn "scrot -u -q 85 home/seggoy/Documents/screens/%m-%d-%Y-%H-%M-%S-focused.png")
    ]

myManageHook = composeAll . concat $
    [
-- Тут должны быть правила для размещения окон

    [isDialog                             --> doCenterFloat]

    , [isFullscreen                       --> doFullFloat]

    , [transience']

    , [manageDocks]
    ]

main = do -- главная функция
    xmproc <- spawnPipe "/usr/bin/xmobar ~/.xmobarrc" -- Подключение XMobar
    xmonad $ ewmh $ withUrgencyHookC NoUrgencyHook urgencyConfig def
        {
             terminal = myTerm
            , borderWidth = 1
            , modMask = myModMask
            , keys = myKeys
            , normalBorderColor = myBorderColor
            , focusedBorderColor = myBorderColorFocused
            , manageHook =  manageHook def <+> myManageHook
            , layoutHook = avoidStruts  $  layoutHook defaultConfig
            , logHook = dynamicLogWithPP xmobarPP
                                { ppOutput = hPutStrLn xmproc
                                , ppTitle = xmobarColor "green" "" . shorten 50
                                }
        }
Gnome 2 >> Unity >> KDE 4 >> Openbox >> Awesome >> Xmonad
GitHub , BitBuket
Стер, добавил последний, который UPD. Ошибок нет, но хоткеи не работают, а xmobar вообще пропал.
Seggoy
Добавил еще модуль
import qualified Data.Map        as M
ругался на отутствие M, вроде как он.
Обычно он так ругается, когда переменная объявляется, но не используется
В данном случае это
import qualified Data.Map as M
я это уже исправил в конфиге выше - там есть строка

myKeys conf@(XConfig {XMonad.modMask = modm}) = M.fromList $
Gnome 2 >> Unity >> KDE 4 >> Openbox >> Awesome >> Xmonad
GitHub , BitBuket
Поправка, xmobar отсутсвтует только там, где есть какие-либо окна. Если открыть пустой воркспейс, он отображается.
Seggoy
Ошибок нет, но хоткеи не работают, а xmobar вообще пропал.

UPD2

-- Базовые модули
import XMonad hiding ( (|||) )  -- Главный модуль
import Data.List
import Data.Ratio ((%))
import Foreign.C (CChar)
import Graphics.X11.Xlib
import Graphics.X11.ExtraTypes.XF86
import System.Exit
import System.IO
import qualified Data.Map        as M
import qualified Data.ByteString as B
import qualified XMonad.StackSet as W -- Управление клиентами (окнами)
-- Хуки
import XMonad.Hooks.DynamicLog -- Хук для обновления информации в баре
import XMonad.Hooks.ManageDocks -- Автоматическое управление программами типа док (баром)
import XMonad.Hooks.ManageHelpers -- Доп.функции ManageHooks
import XMonad.Hooks.UrgencyHook hiding (Never)
import XMonad.Hooks.EwmhDesktops
-- Утили
import XMonad.Util.Run(spawnPipe) -- Для запуска внешний приложений/скриптов
import XMonad.Util.EZConfig(additionalKeys) -- Улучшение конфигурации, использование доп.хоткеев
-- Пользовательские настройки
myTerm = "urxvt"
myBorderColor = "#000000"
myBorderColorFocused = "#8E8E8E"
myModMask = mod1Mask

myKeys conf@(XConfig {XMonad.modMask = modm}) = M.fromList $
    [
      ((modm .|. shiftMask, xK_q), kill)
    , ((modm, xK_Right), windows W.focusDown)
    , ((modm, xK_Left), windows W.focusUp)
    , ((modm, xK_Down), windows W.focusDown)
    , ((modm, xK_Up), windows W.focusUp)
    , ((0 .|. controlMask, xK_Print), spawn "scrot -u -q 85 home/seggoy/Documents/screens/%m-%d-%Y-%H-%M-%S-focused.png")
    ]
    ++
    [((m .|. modm, k), windows $ f i)
        | (i, k) <- zip (XMonad.workspaces conf) [xK_1, xK_2, xK_3, xK_4, xK_5, xK_6, xK_7, xK_8, xK_9, xK_0, xK_minus, xK_equal]
        , (f, m) <- [(W.greedyView, 0), (W.shift, shiftMask)]]

    ++
    [((m .|. modm, key), screenWorkspace sc >>= flip whenJust (windows . f))
        | (key, sc) <- zip [xK_w, xK_e, xK_r] [0..]
        , (f, m) <- [(W.view, 0), (W.shift, shiftMask)]]

-- Mouse bindings: default actions bound to mouse events
myMouseBindings (XConfig {XMonad.modMask = modm}) = M.fromList $
    [ ((modm, button1), (\w -> focus w >> mouseMoveWindow w
                                       >> windows W.shiftMaster))
    , ((modm, button2), (\w -> focus w >> windows W.shiftMaster))
    , ((modm, button3), (\w -> focus w >> mouseResizeWindow w
                                       >> windows W.shiftMaster))
    ]

myManageHook = composeAll . concat $
    [
-- Тут должны быть правила для размещения окон

    [isDialog                             --> doCenterFloat]

    , [isFullscreen                       --> doFullFloat]

    , [transience']

    , [manageDocks]
    ]

main = do -- главная функция
    xmproc <- spawnPipe "/usr/bin/xmobar ~/.xmobarrc" -- Подключение XMobar
    xmonad $ ewmh $ withUrgencyHookC NoUrgencyHook urgencyConfig def
        {
             terminal = myTerm
            , borderWidth = 1
            , modMask = myModMask
            , keys = myKeys
            , normalBorderColor = myBorderColor
            , focusedBorderColor = myBorderColorFocused
            , manageHook =  manageHook def <+> myManageHook
            , layoutHook = avoidStruts  $  layoutHook defaultConfig
            , logHook = dynamicLogWithPP xmobarPP
                                { ppOutput = hPutStrLn xmproc
                                , ppTitle = xmobarColor "green" "" . shorten 50
                                }
        }
Gnome 2 >> Unity >> KDE 4 >> Openbox >> Awesome >> Xmonad
GitHub , BitBuket
Haron_Prime
покурю только...

Бедный Haron_Prime... Сочувствую. Не на было так xmonad хвалить. :)) Поклонники замучают... :)))
Seggoy
Поправка, xmobar отсутсвтует только там, где есть какие-либо окна. Если открыть пустой воркспейс, он отображается.
Проверь конфиг UPD2 - там хоткеи должны работать
Сейчас буду смотреть, что не так с xmobar'ом

P.S> кстати, вот такая форма записи неправильна
((controlMask, xK_Print), spawn "scrot -u -q 85 home/seggoy/Documents/screens/%m-%d-%Y-%H-%M-%S-focused.png")
клавиша-модификатор должна быть указана обязательно!
если она не используется, то прописывается ноль
((0 .|. controlMask, xK_Print), spawn "scrot -u -q 85 home/seggoy/Documents/screens/%m-%d-%Y-%H-%M-%S-focused.png")
Если кроме клавиши-модификатора используется ещё одна (Ctrl или Shift), то их следует разделять
Пример
    , ((mod1Mask .|. controlMask,        0x35), spawn "XMTop-mem")                                       --Alt+Ctrl+5
    , ((mod1Mask .|. shiftMask,          0x35), spawn "XMdf-h")                                          --Alt+Shift+5
Gnome 2 >> Unity >> KDE 4 >> Openbox >> Awesome >> Xmonad
GitHub , BitBuket
R.V.
Бедный Haron_Prime... Сочувствую. Не на было так xmonad хвалить. :)) Поклонники замучают... :)))
))))
А шо таки делать? (С) :)
Gnome 2 >> Unity >> KDE 4 >> Openbox >> Awesome >> Xmonad
GitHub , BitBuket
 xmonad.hs:36:58: error:
    * Couldn't match type `[t0]`
                     with `Query (Data.Monoid.Endo WindowSet)`
      Expected type: ManageHook
        Actual type: [t0]
                 {manageHook = manageHook def <+> myManageHook,
                       layoutHook = avoidStruts $ layoutHook defaultConfig,
                       logHook = dynamicLogWithPP
                                    (xmobarPP
                                               {ppOutput = hPutStrLn xmproc,
                                                ppTitle = xmobarColor "green" "" . shorten 50})}`
Строчка
manageHook =  manageHook def <+> myManageHook
Хотя он определен вроде как
myManageHook = composeAll . concat $
    [
-- Тут должны быть правила для размещения окон
    [isDialog                             --> doCenterFloat]
    , [isFullscreen                       --> doFullFloat]
    , [transience']
    , [manageDocks]
    ]
 
что-то не понимаю, чем ему не нравится 36-я строка.... (((
вроде бы всё нормально...
Ща подумаю...
Gnome 2 >> Unity >> KDE 4 >> Openbox >> Awesome >> Xmonad
GitHub , BitBuket
 
Зарегистрироваться или войдите чтобы оставить сообщение.