Так в xmonad тоже можно заранее экран на части поделить?
Я почему-то думал, что WindowNavigation --- это только для keybinding-ов, чтоб удобней перемещаться по окошкам.
WindowNavigation - это действительно только дял кейбиндингов.Для деления на части заранее существует LaoutCombo и, основанное на ней
LayoutCombinators , предоставляющее несколько удобных синтаксических констукций (*//*, **||*, итд.). WindowNavigation только предоставляет несколько функций для кидания окошек между лайоутами внутри Combo.
Не так давно появилась еще удобная LaoyutComboP, там можно указать (класс|тайтл|роль) окна,которое будет привязанно к определенному лайоуту внутри комбо.
То есть оно похоже на LayoutIM, только гибче.
Ну с этим вроде всё понятно.
Получается я раньше в принципе то же самое делал, только без *|* и */*.
Теперь следующий вопрос
а между табами можно как нибудь по человечески переключаться, а то они не всегда подряд открываются?
И ещё, почему
myMainLayout = toggleLayouts (noBorders Full)(avoidStruts(windowNavigation $ (myTabs *||* (combineTwo (Grid) (myTabs) (myTabs)))))
работает, а если вместо Grid использовать HintedGrid, то вылазит ошибка No instance for (LayoutClass Grid ())
работает, а если вместо Grid использовать HintedGrid, то вылазит ошибка No instance for (LayoutClass Grid ())
Потому что HintedGrid:
You can use this module with the following in your ~/.xmonad/xmonad.hs:
import XMonad.Layout.HintedGrid
Then edit your layoutHook by adding the Grid layout:
myLayouts = Grid False ||| Full ||| etc..
main = xmonad defaultConfig { layoutHook = myLayouts }
Automatic mirroring of hinted layouts doesn't work very well, so this Grid comes with built-in mirroring. Grid False is the normal layout, Grid True is the mirrored variant (rotated by 90 degrees).
Проще говоря потому что layout'а HintedGrid - нет. Ктстати а зачем: (combineTwo (Grid) (myTabs) (myTabs))? Почему тогда уже не: (myTabs */* myTabs)?
petrun, спасиба знал что пишу что-то неправильно, но не знал в чем. Давно этим занимался.
Вообще хотелось бы в идеале (myTabs *|* (combineTwo(HintedGrid)(myTabs)(myTabs)))
Просто Grid не подходит всё из-за того же mplayer-а. (написал с Grid просто для примера)
А подскажите, что и как можно прикрутить в качестве панельки со списком окон к Xmonad-у, но чтоб место не занимала, а вызывалась по хоткеям? А то я порой не помню, где что, но место отьедать на экране постоянно не хочется.
Как можно идентифицировать приложения, запущенные в терминале для управления ими с помощью manageHook? Может, можно при запуске отдельной программы в своём терминале прописать этому окну какое-то уникальное свойство?
Я так люблю свою страну, и ненавижу государство! (LUMEN) Дверь не ломай - пробуй в неё войти. (Кукрыниксы)
Спасибо. Но хотелось бы что-то универсальное для любого иксового окна. Я, вот, пользуюсь terminator-ом в качестве эмулятора терминала. А в нём можно жёстко задать только заголовок окна (и это не очень удобно).
Я так люблю свою страну, и ненавижу государство! (LUMEN) Дверь не ломай - пробуй в неё войти. (Кукрыниксы)
Потихоньку осваиваю xmonad. Накопилось несколько новых вопросов.
Как сделать окна firefox удобных для работы размеров? Поясню, многие его окошки, которые по логике должны быть плавающими, на самом деле такими не являются ("Настройки", "Загрузки"), а если их делать через myManageHook плавающими, то они занимают весь экран.
И второй вопрос. Можно ли xmonad подружить с stardict. Нагуглил только одно описание, как это сделать через XMonad.Util.NamedScratchpad но как оказалось это доступно только для форка xmonad - bluetile.
> а если их делать через myManageHook плавающими, то они занимают весь экран.
Сталкивался с подобным.Это файерфокс запомнил размеры,чтоль.Надо вначале сделать их нужного размера,а потом уж doFloat.Алсо, для плавающих окон http://iportnov.blogspot.com/2009/01/xmonad.html
Сейчас использую Xmonad в связке с KDE, но в принципе понимаю, что KDE мне особо и не нужен, если смогу адекватно заменить его удобства. А именно:
1) вроде как в качестве панели можно использовать xmobar, но сколько я его не пытался запустить, какие конфиги не делал - он не стартует, ругаясь на конфиг.
2) в качестве мини-консоли для вызова по горячей клавише для запуска программ вроде как предназначен dzen, но опять же - он где и как вообще настраивается, и как должен появляться? Вообще по нему не нашел ничего, будто бы прога настолько очевидна и проста, что даже пары слов о нем чиркануть не надо.
3) как вылогиниваться, выключать комп, перезагружаться? В KDE при использовании KDM все понятно - в главном меню все пункты есть, и на кнопку питания на системнике можно любое действие повесить. А если без KDE и без KDM, то как оно все?
4) ничего не понимаю с автозагрузкой. Пробовал добавить в .xinitrc все программы, которые мне нужны - не стартуют, стартует только xmonad и все. Пробовал сделать скрипт, а в .xinitrc добавить только exec ~/xmonad-start.sh - так опять же из всего скрипта только xmonad и запускается. А если потом самому этот скрипт запустить уже из xmonad, то все проги корректно стартуют.
5) как настроить внешний вид GTK приложений? В KDE у меня qt-gtk-engine стоит, а тут ведь надо какой-то обходной путь.
4) ничего не понимаю с автозагрузкой. Пробовал добавить в .xinitrc все программы, которые мне нужны - не стартуют, стартует только xmonad и все. Пробовал сделать скрипт, а в .xinitrc добавить только exec ~/xmonad-start.sh - так опять же из всего скрипта только xmonad и запускается. А если потом самому этот скрипт запустить уже из xmonad, то все проги корректно стартуют.
А как у вас выглядит запускающий скрипт? Должен быть такого вида:
А можно ли сделать так, чтобы по горячей клавиши циклически переключать два воркспейса между собой? В идеале это будут два последних воркспейса, на которые я переключался Mod+цифра
да, я сейчас пока смутно представляю как сделать раздельные файлы конфигурации для них, да так чтобы во время перезагрузки xmonad'а панельки адекватно перезапустились
Можно рядом с xmproc <- spawnPipe ... добавить запуск второго xmobar с другим конфигом типа такого:
xmproctwo <- spawnPipe "/home/shiz/build/bin/xmobar /home/shiz/.xmonad/twoconfig" или посмотреть что-нибудь из возможностей haskell по запуску программ и средствами haskell стартовать второй xmobar с нужным конфигом.
Можно рядом с xmproc <- spawnPipe ... добавить запуск второго xmobar с другим конфигом типа такого:
xmproctwo <- spawnPipe "/home/shiz/build/bin/xmobar /home/shiz/.xmonad/twoconfig" или посмотреть что-нибудь из возможностей haskell по запуску программ и средствами haskell стартовать второй xmobar с нужным конфигом.
программу можно запустить просто spawnPipe "[прога]", но если пременить новые нстройки через Alt+Q, то старый экземпляр программы не убьется а новый запуститься. вот в чем крсяк.
>старый экземпляр программы не убьется а новый запуститься.
Так запускайте killall программа & программа
И некчему в сам Иксмонад пихать, выносите во внешний скрипт-это банально удобней (не надо его пересобирать при изменениях-хоть мелочь, но всё-таки).
Если нужно использовать их как отдельные клавиши - то они называются xK_Super_R и _L соответственно. Если как модификаторы - то это обычно mod4. Уточнить можно с помощью xev и xmodmap.
Как отдельные. Увы, у меня xmonad почему-то ругается на xK_Super_L…
Кстати, так и не смог прописать XF86Standby и аналогичные… Только кейсимом, т.е. 0x… , что неудобно как-то.
Причём помню, что как-то прописывал, правда давно. Увы, весь гугл перерыл, ничего внятного по теме не нашёл, хоть список поддерживаемых XF86-клавиш на официальном форуме получился приличный.