[РЕШЕНО] Xmonad - не могу победить xmobar и лэйауты

Доброго дня, форумчане.
В связи с ограничением рабочего пространства (осталось 2 монитора из трёх) решил использовать таловый WM - остановился на xmonad.
Но никак не могу настроить бар. Он либо не хочет принимать мой конфиг (запускаю в .xinitrc xmobar /home/x/.xmonad/xmobar.hs) и иксы зависают с пустым раб. столом не реагируя ни на один шорткей, либо (если я укажу неверный путь к кофигу) загружается дефолтный бар, но он перекрывается окнами, что меня не устраивает совсем.
Понял что дело скорее всего в лэйаутах


.....................

--LayoutHook
myLayoutHook  =  onWorkspace "6:VM" webL $ onWorkspace "8:vid" webL $ onWorkspace "7:games" webL  $ standardLayouts
   where
   standardLayouts =   avoidStruts  $ (tiled |||   Mirror tiled ||| Grid ||| Full)

        Layouts
    tiled     = smartBorders (ResizableTall 1 (2/100) (1/2) [])

    full      = noBorders Full

        --Im Layout
    --Show pidgin tiled left and skype right
       imLayout = avoidStruts $ smartBorders $ withIM ratio pidginRoster $ reflectHoriz $ withIM skypeRatio skypeRoster (tiled ||| reflectTiled ||| Grid) where
                chatLayout      = Grid
            ratio = (1%9)
                skypeRatio = (1%8)
                pidginRoster    = And (ClassName "Pidgin") (Role "buddy_list")
                skypeRoster  = (ClassName "Skype")     `And`
                               (Not (Title "Options")) `And`
                                              (Not (Role "Chats"))    `And`
                                                            (Not (Role "CallWindowForm"))
    --Weblayout
    webL      = avoidStruts $  full ||| tiled ||| reflectHoriz tiled

        VirtualLayout
        fullL = avoidStruts $ full

.....................
-- Main --
main = do
    xmproc <- spawnPipe "xmobar"
    spawn "sh /home/x/.xmonad/autostart.sh"
    xmonad $ withUrgencyHook NoUrgencyHook $ defaultConfig  {
        manageHook = myManageHook
        , layoutHook = avoidStruts myLayoutHook

...................
Так вот если закомментировать определение myLayoutHook, но оставить его в main - стандартный бар не перекрывается окнами, но xmonad запускается с ошибкой
А если убрать ", layoutHook = avoidStruts myLayoutHook " из main - снова перекрывается.

Стоят xmonad-git и xmobar-git

Кто-нибудь использует xmonad? Поделитесь рабочими конфигами плиз, я их под себя уж доведу, а стандартный конфиг бара почему-то нерабочий от слова совсем... Или я криворукий совсем стал. А конфиги для самого xmonad я брал из вики, но у всех одна беда с лэйаутами.

И ещё один вопрос: в i3 $mod+Left|Right|... это перемещение фокуса, а с шифтом - перемещение клиентов. Очень удобно как по мне, есть ли в xmonad'e такие функции?
timere mori ambulantes
akmkin
Поделитесь рабочими конфигами
xmonad.hs
xmobarrc

akmkin
есть ли в xmonad'e такие функции?
есть
modm + J (k)
modm + Shift + j(k)
Gnome 2 >> Unity >> KDE 4 >> Openbox >> Awesome >> Xmonad
GitHub , BitBuket
Спасибо большое за столь быстрый ответ! К вечеру потестирую )
timere mori ambulantes
Нет, к сожалению ничего не вышло...
Бар не подхватывается
$ xmobar ~/.xmonad/xmobar.hs
xmobar: /home/x/.xmonad/xmobar.hs: hGetContents: invalid argument (invalid byte sequence
Бар не запускаю - работают все определённые вами шорткеи и стандартный бар
Запускаю из .xinitrc - иксы виснут...
Ничего не понимаю уже.
timere mori ambulantes
akmkin,
у меня запуск xmobar нигде отдельно не прописан - он сам запускается при старте xmonad

.xinirc
#!/bin/sh
export LANG=ru_UA.UTF-8
export MM_CHARSET=UTF-8
export GTK2_RC_FILES="$HOME/.gtkrc-2.0"
export LIBVA_DRIVER_NAME=vdpau
export VDPAU_DRIVER=nouveau

if [ -d /etc/X11/xinit/xinitrc.d ]; then
for f in /etc/X11/xinit/xinitrc.d/*; do
  [ -x "$f" ] && . "$f"
done
unset f
fi

if [ -z "$DBUS_SESSION_BUS_ADDRESS" ]; then
    eval "$(dbus-launch --sh-syntax --exit-with-session)"
fi

/usr/bin/xdg-user-dirs-update &
setxkbmap -layout us,ru -variant -option grp:caps_toggle,terminate:ctrl_alt_bksp &
xsetroot -cursor_name left_ptr &
xsetroot -solid '#000000' &
xset s 6999 &
xset dpms 6000 6001 6002 &
xset m 5/2 0 &
numlockx &
perWindowLayoutD &
compton -b &
urxvtd -q -f -o &
pcmanfm -d &
feh --bg-center /home/haron/Pictures/pics/xmonad/XMONAD011-2.png &
stalonetray &
python3 /home/haron/lib/gis-weather/gis-weather.py &
exec xmonad

что касается ошибки при запуске - у меня в конфиге xmobar прописано слишком много своих скриптов
закомментируйте/удалите все подключённые мною скрипты (Run Com бла-бла-бла), оставьте только встроенные функции xmobar

второе - используемые шрифты
у меня в основном используется Terminus Re33 - это не стандартный системный шрифт,я его ставил отдельно
Вы откорректировали конфиг под свои шрифты?
Terminus Re33 есть в ауре

 font = "xft:Terminus Re33:size=12:antialias=true:hinting=true"
, additionalFonts = ["xft:Terminus:size=12:weight=bold:antialias=true:hinting=true","xft:Terminus Re33:size=4:antialias=true:hinting=true"][/code]
Gnome 2 >> Unity >> KDE 4 >> Openbox >> Awesome >> Xmonad
GitHub , BitBuket
P.S> кстати, xmobarrc.hs у меня лежит в отдельном каталоге, а чтоб не прописывать каждый раз путь к конфигу я в хомяке создал симлинк на него ~/.xmobarrc - так он подхватывается автоматически

P.P.S>
вот так выглядит xmobar с этим конфигом


P.P.P.S> также надо отредактировать строку вывода текущей скорости сети,
ту, которая Run Network "enp3s0" - пропишите в неё используемый на Вашем компе интерфейс вместо enp3s0

а лучше всего - запустите xmobar из терминала c дефолтным конфигом и посмотрите, как он будет себя вести и что писать в терминале
используемые в конфиге скрипты есть здесь
только это вряд ли поможет - их тоже нужно проверять и подгонять под конкретную систему, я же их под свой комп лепил )))
Gnome 2 >> Unity >> KDE 4 >> Openbox >> Awesome >> Xmonad
GitHub , BitBuket
Haron_Prime
закомментируйте/удалите все подключённые мною скрипты
Сразу именно так и сделал))
Шрифт этот в системе есть, но я поставил свой когда увидел эту ошибку

Haron_Prime
P.S> кстати, xmobarrc.hs у меня лежит в отдельном каталоге, а чтоб не прописывать каждый раз путь к конфигу я в хомяке создал симлинк на него ~/.xmobarrc - так он подхватывается автоматически
Скорее всего дело именно в этом - сейчас же попробую

Насчёт скриптов - сразу же всё левое удалил, так что дело точно не в этом.
timere mori ambulantes
akmkin,
Покажите, что в итоге получилось (конфиг)
Gnome 2 >> Unity >> KDE 4 >> Openbox >> Awesome >> Xmonad
GitHub , BitBuket
akmkin, главную функцию строят по разному, например, Haron_Prime, как я понял, выбрал такой вариант
main = do
xmonad =<< xmobar myConfig
….......
Я, когда экспериментировал, использовал такой вариант
main = xmonad =<< statusBar myBar myPP toggleStrutsKey myConfig
myBar = "xmobar"
…....
вывод xmobar (температура и др) прописываются в ~/.xmobarrc
И когда берешь примеры из разных мест, нужно обращать внимание как построена главная функция
Привожу минимум xmonad.hs по моему построению
-- Импорт
import XMonad
import XMonad.Hooks.DynamicLog
import XMonad.Hooks.ManageDocks
import qualified XMonad.StackSet as W
-- Основная функция
main = xmonad =<< statusBar myBar myPP toggleStrutsKey myConfig
-- Команда для запуска бара
myBar = "xmobar"
-- Настройка пользовательских PP - определяют то, что пишется в бар
myPP = xmobarPP
     { ppCurrent         = xmobarColor "red" "" . wrap "<" ">"
     , ppHidden          = xmobarColor "blue" "" . wrap "<" ">"
     , ppHiddenNoWindows = xmobarColor "green" "" . wrap "<" ">"
--     , ppTitle           = xmobarColor "blue"  "" . shorten 40
     , ppTitle           = (\str -> "")
     , ppLayout          = xmobarColor "red" ""
--     , ppOrder           = \(ws:_:t:_) -> [ws,t]
     }
-- Назначение клавиш для переключения промежутков бара
toggleStrutsKey XConfig {XMonad.modMask = modMask} = (modMask, xK_b)
-- Главная настройка
myConfig = defaultConfig
         { terminal      = "Terminator"
         , workspaces    = ["1-Term","2-FM","3-web","4-Media","5-Office","6","7","8"]
         , manageHook    = composeAll
                         [ className =? "Terminator"  --> doF (W.shift "1-Term")
                         , className =? "Pcmanfm"     --> doF (W.shift "2-FM")
                         , className =? "Firefox"     --> doF (W.shift "3-web")
                         ]
          }
Пример ~/.xmobarrc
Config { font          = "xft:Bitstream Vera Sans Mono:size=11:bold:antialias=true"
       , bgColor       = "#000000"
       , fgColor       = "#FFFFFF"
       , position      = Top
       , lowerOnStart  = True
       , commands      = [ Run StdinReader
                       , Run Com "date" ["+%a%e-%b %k:%M"] "mydate" 600
                       , Run Cpu ["-t", "Cpu: <total>% "
                             , "-L", "10"
                             , "-H", "65"
                             , "-l", "blue"
                             , "-n", "green"
                             , "-h", "red"
                       ] 60
                       , Run Memory ["-t","Mem: <usedratio>% "
                             , "-L", "10"
                             , "-H", "65"
                             , "-l", "blue"
                             , "-n", "green"
                             , "-h", "red"
                       ] 60

                       , Run CoreTemp ["Temp:C"
                             , "-L", "53"
                             , "-H", "65"
                             , "-l", "blue"
                             , "-n", "green"
                             , "-h", "red"
                       ] 60
                       ]
       , sepChar =  "%"   -- delineator between plugin names and straight text
       , alignSep = "}{"  -- separator between left-right alignment
       , template = "%StdinReader% }{%coretemp%  %cpu%  %memory%  <fc=#00FF00>%mydate%</fc> "
       }
Ошибки не исчезают с опытом - они просто умнеют
О, да! Спасибо огромное! Наконец-то я его завёл )))
Дело было действительно в расположении конфига бара - создал симлинк в дашней директории и всё окей!
Вот теперь можно пилить xmonad под себя )))

П.С. Шрифт на всякий случай переустановил )))
timere mori ambulantes
 
Зарегистрироваться или войдите чтобы оставить сообщение.