Любителям тайлинга ...

Лучший тайлинг - авесом. Все кто не согласен - не осилили луа.
Лучший dwm, просто до си вам далеко)))
Ошибки в тексте-неповторимый стиль автора©
Лучший тайлинг - xmonad. Все кто не согласен - не осилили haskell. :D
Gnome 2 >> Unity >> KDE 4 >> Openbox >> Awesome >> Xmonad
GitHub , BitBuket
Haron_Prime
xmonad
Даже не обсуждается :D
Доброго времени. Нужен совет по выбору тайлинга. Пользовался i3 в основном и недавно попробовал spectrwm. Неплохие менеджеры, но кое-чего мне не хватает.
Во-первых, наличие шаблона лейаутов, то бишь, чтобы была возможность заранее установить для конкретного тега способ расположения окон конкретных приложений. Во-вторых, наличие по умолчанию опции похожей на gaps в i3 - возможность создавать зазоры между окнами и баром. По крайней мере с двух сторон.
В-третьих, не обязательно, но желательно наличие бара в комплекте, чтобы был похожий синтаксис при конфигурировании.
В-четвертых, не знаю, как описать максимально понятно. Вот пример на i3. Если запускать приложений с тега1, которое запускается не моментально, а через некоторое время, то если переключить фокус на другой тег и в этот момент появится гуи этого приложения, то оно зацепится за последний зафокусированный тег. Это не очень удобно. Хотелось бы, чтобы была возможность фиксировать приложение на том теге, на котором оно изначально запустилось.
Ну и на последок, возможность в баре создавать интерактивные области, т.е. обработчик кликов мыши с последующими действиями.
Я успел почитать и посмотреть ролики об awesome (много негатива увидил в сторону сложности и непостоянства в конфигах при обновлениях версий), xmonad (немного беспокоит та же сложность ввиду специфичности языка), qtile (показалось сырой и не очень стабильной). Я не против немного поучиться, поработать напильником, но чтобы это принесло именно то, чего я хочу. Так же желательно наличие вм с баром в оф.репах, а не ауре. Буду крайне признателен за ваши советы и подсказки. Прошу прощения, если не там написал пост.
xmonad подходит по всем критериям, кроме вот этого
Seggoy
немного беспокоит та же сложность ввиду специфичности языка

и вот этого
Seggoy
Я не против немного поучиться, поработать напильником, но чтобы это принесло именно то, чего я хочу.
"немного" не получится. Напильником придётся поработать основательно. Если конечно решитесь.
У xmonad потрясающие возможности кастомизации, и именно в силу этого требуется много терпения и желания.
Но результат того стоит.
Gnome 2 >> Unity >> KDE 4 >> Openbox >> Awesome >> Xmonad
GitHub , BitBuket
Haron_Prime
xmonad подходит по всем критериям, кроме вот этого
Seggoy
немного беспокоит та же сложность ввиду специфичности языка

и вот этого
Seggoy
Я не против немного поучиться, поработать напильником, но чтобы это принесло именно то, чего я хочу.
"немного" не получится. Напильником придётся поработать основательно. Если конечно решитесь.
У xmonad потрясающие возможности кастомизации, и именно в силу этого требуется много терпения и желания.
Но результат того стоит.
Спасибо за ответ. Я понимаю, что чем проще, тем менее функционально (обычно). Что касается xmonad, в нем нет возможности задать лейауты, которые я описывал в п.1 и возможности фиксировать запуск приложения на теге п.4. Поправьте если я не прав. Возможно не нашел информацию по этому поводу.
[email protected]
Очень хорош. Но в тайловых wm у меня как-то не прижился - тайлинг там свой есть, да и gtk3 не в тему.



Снизу и сверху один и тот же терминал. Можно настроить так, что от xterm/urxvt сходу и не отличишь.

warlock9000, urxvt не умеет TrueColor и много чего прочего. А поиска встроенного, как на скрине выше, так ни у кого еще и не видел даже.

vasek, на wmfs/wmfs2 даже создатели уже, похоже, забили...

ZetSama
Лучший тайлинг - авесом. Все кто не согласен - не осилили луа.
+555! :)))

Seggoy, выбирать особо не из чего. :)) См. выше. :)

Seggoy
Поправьте если я не прав
не прав
1 -
-- Windows rules:
myManageHook = composeAll . concat $
    [
      [className =? c                --> doF (W.shift "W")   <+> viewShift ("W")   | c <- myWeb]
    , [className =? c                --> doF (W.shift "M")                         | c <- myMail]
    , [className =? c                --> doF (W.shift "E")   <+> viewShift ("E")   | c <- myEdit]
    , [className =? c                --> doF (W.shift "F")   <+> viewShift ("F")   | c <- myFile]
    , [className =? c                --> doF (W.shift "S")   <+> viewShift ("S")   | c <- mySystem]
    , [className =? c                --> doF (W.shift "V")   <+> viewShift ("V")   | c <- myVideo]
    , [className =? c                --> doF (W.shift "P")   <+> viewShift ("P")   | c <- myPic]
    , [className =? c                --> doF (W.shift "J")   <+> viewShift ("J")   | c <- myWork]
    , [className =? c                --> doF (W.shift "T")   <+> viewShift ("T")   | c <- myTorrent]
    , [className =? c                --> doF (W.shift "X")                         | c <- myX]
    , [className =? c                --> doF (W.shift "XI")  <+> viewShift ("XI")  | c <- myXI]
    , [className =? c                --> doF (W.shift "XII") <+> viewShift ("XII") | c <- myXII]

    , [className =? c                --> doCenterFloat                             | c <- myFloatC]
    , [appName   =? a                --> doCenterFloat                             | a <- myFloatA]
    , [title     =? t                --> doCenterFloat                             | t <- myFloatT]
    , [role      =? r                --> doCenterFloat                             | r <- myFloatR]

    , [currentWs =? "W"              --> insertPosition Below Newer]
    , [currentWs =? "M"              --> insertPosition Below Newer]
    , [currentWs =? "E"              --> insertPosition Below Newer]
    , [currentWs =? "T"              --> insertPosition Below Newer]
    , [currentWs =? "X"              --> insertPosition Below Newer]
    , [currentWs =? "XII"            --> insertPosition Below Newer]

    , [className =? "Gis-weather.py" --> doIgnore]
    , [resource  =? "stalonetray"    --> doIgnore]

    , [isDialog                      --> doCenterFloat]

    , [isFullscreen                  --> doFullFloat]

    , [transience']

    , [manageDocks]

    ]
    where
    myWeb     = ["Firefox","Opera","Tor Browser","Vivaldi-snapshot"]
    myMail    = ["Thunderbird"]
    myEdit    = ["Subl3","Atom","Meld","Et","Wps","Wpp","FoxitReader","Zim","Cherrytree"]
    myFile    = ["Pcmanfm"]
    mySystem  = ["pacmanxg","GParted","Sysinfo","Tk","Systemadm","Zenmap"]
    myVideo   = ["mpv","Vlc","Sopcast-player.py","Easytag"]
    myPic     = ["Gimp","Gimp-2.8","Inkscape"]
    myWork    = ["Wine"]
    myTorrent = ["Tixati","Transgui","Transmission-gtk","Transmission-remote-gtk"]
    myX       = ["Gitg","Gitk","SWT"]
    myXI      = ["Hexchat","psi","Psi","Viber","TelegramDesktop"]
    myXII     = ["GitKraken"]

    -- CenterFloat
    myFloatC  = ["Xmessage","Gxmessage","XClock","Galculator","Shutter","Zenity","Nvidia-settings","Pulseaudio-equalizer.py","Gnome-alsamixer","Gsmartcontrol","feh","Gconf-editor","Dconf-editor","Font-manager","Gksu-properties"]
    myFloatA  = ["lxappearance","xarchiver","gmrun","Update"]
    myFloatT  = ["Software Update"]
    myFloatR  = ["task_dialog","messages","pop-up","^conversation$","About"]

2 -

myTL                 =  windowNavigation (mouseResizableTile{masterFrac = (1/2), fracIncrement = (1/100), draggerType = FixedDragger 2 6})
myMTL                =  windowNavigation (mouseResizableTile{masterFrac = (2/3), fracIncrement = (1/100), draggerType = FixedDragger 2 6, isMirrored = True})
myGL                 =  windowNavigation (spacing 1 $ multimastered 2 (1/100) (1/3) $ GridRatio (16/10))
myFCL                =  windowNavigation (spacing 1 $ FixedColumn 1 20 80 10)
myRTL1               =  windowNavigation (spacing 1 $ ResizableTall 1 (1/100) (1/2) [])
myRTL2               =  windowNavigation (spacing 1 $ ResizableTall 2 (1/100) (2/3) [])
myMRTL1              =  windowNavigation (spacing 1 $ Mirror (ResizableTall 1 (1/100) (2/3) []))
myMRTL2              =  windowNavigation (spacing 1 $ Mirror (ResizableTall 2 (1/100) (2/3) []))
myBL                 =  myRTL1 ||| myRTL2 ||| myMRTL1 ||| myMRTL2 ||| Full

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

-- Layouts:
myLayoutHook =  avoidStruts
                $ minimize
                $ Tog.toggleLayouts (noBorders Full)
                $ smartBorders
                $ onWorkspace  "W"    (Full  ||| myTL  ||| myMTL)
                $ onWorkspace  "M"    (myTL  ||| myMTL ||| Full)
                $ onWorkspace  "E"    (myMTL ||| myTL  ||| Full)
                $ onWorkspace  "F"    (myMTL ||| myTL  ||| Full)
                $ onWorkspace  "S"    (myMTL ||| myTL  ||| Full)
                $ onWorkspace  "V"    (Full  ||| myTL  ||| myMTL)
                $ onWorkspace  "P"    (myMTL ||| myTL  ||| Full)
                $ onWorkspace  "J"    (myGL  ||| myTL  ||| myFCL)
                $ onWorkspace  "T"    (myTL  ||| myMTL ||| Full)
                $ onWorkspace  "X"    (myTL  ||| myMTL ||| myGL ||| myFCL)
                $ onWorkspace  "XI"   (myGL  ||| myFCL)
                $ onWorkspace  "XII"  (myMTL ||| myTL)
                $ myBL
Gnome 2 >> Unity >> KDE 4 >> Openbox >> Awesome >> Xmonad
GitHub , BitBuket
Haron_Prime
Haron_Prime
Ваш код выглядит очень впечатляюще и читабельно, но мне он пока не о че мне говорит. Вас не затруднит записать небольшой ролик с переключением тегов во время длительного запуска приложения и шаблоном лейаутов?
R.V.
Seggoy, выбирать особо не из чего. :)) См. выше. :)
Я верю, что что-нибудь найдется
 
Зарегистрироваться или войдите чтобы оставить сообщение.