Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Установка Xmonad + Xmobar в Ubuntu  (Прочитано 30359 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Morisson

  • Автор темы
  • Гость
Установка Xmonad + Xmobar в Ubuntu
« : 14 Апреля 2017, 18:37:38 »
ВНИМАНИЕ!!! НЕ РЕКОМЕНДУЕТСЯ НОВИЧКАМ! Но ведь всегда нужно с чего-то начинать ;)


Добрый день! Или вечер.. Кому как.
Цель данной темы- провести небольшую экскурсию в  чудеснейший, захватывающий мир ( :)) "кулхацкерского" ( 8)) тайлового оконного менеджера Xmonad. Пользуюсь им с недавних пор, со многими вещами еще не разобрался, далеко не со многими. Возникшие проблемы пытаюсь решать по мере их поступления.

Люди, "наставившие меня на путь истинный" ;),- ув. Haron Prime и τοΖεη, оказавшие неоценимую помощь в освоении, за что им почет и спасибо.

Долго разглагольствовать не буду, начнем.
Для начала необходимо определиться со списком приложений, помимо основных пакетов, которые мы будем использовать в своей системе. Естественно, это при выборе пактов мы будем руководствоваться в первую очередь функциональностью, легковесностью, и, что весьма немаловажно, отсутствием лишних зависимостей.
Установим основные пакеты нашего WM.
sudo apt-get install xmonad xmobarГде:
xmonad- собственно WM
xmobar- легкий бар, созданный специально для использования с xmonad, также написанный на языке Haskell.
В принципе, прикрутить можно практически любую панель, но я использую именно xmobar. Он легок, функционален и благородно аскетичен.)
Не торопимся перезагружаться..
Установим дополнительные приложения, с которыми жизнь станет медом)) Можно использовать любой софт, но мы же хотим вписаться в концепцию, не так ли?
sudo apt-get install pcmanfm mplayer-vaapi ranger mocp atril scrot dmenu gmrun arandr compton w3m feh rxvt-unicodepcmanfm- файловый менеджер, в представлении не нуждается, в принципе, можно использовать штатный Nautilus, однако он ИМХО тяжел, громоздок
mplayer-vaapi- консольный мультимедиа плеер с поддержкой vaapi, если у вас не Intel- можно использовать просто mplayer, поддерживает просмотр потокового видео
ranger- консольный файловый менеджер, очень легкий, функциональный, поддерживает предпросмотр изображений, редактируемые сочетания клавиш,... короче супер.))
mocp- консольный плеер, кому-то понравится ncmpcpp, но я, почему-то пользую его
atril- легковесный просмотрщик pdf
dmenu, gmrun- легкие меню приложений, выполняющие также роль командной строки, через которые мы будем запускать приложения, также можно просматривать каталоги
arandr- GUI xrandr, который, помимо прочего, позволяет тырить сохранять скрипты для использования при настройке многомониторных конфигураций
compton- легкий композитный менеджер (лично мне от него нужна прозрачность, тени, с тирингом справляется драйвер, тот который умеет Option "TearFree" "true"  ;) )
w3m- консольный веб-браузер, который необходим для предпросмотра изображений в ranger, однако, в случае чего, если X-ы сломаете, например ))) с него можно и в нете посидеть
feh- легкий просмотрщик изображений, с помощью которого мы установим обои рабочего стола
rxvt-unicode- эмулятор терминала, наподобие xterm
scrot- легкий скриншотер, настраиваемый, можно задать отсрочку, качество, формат, место сохранения и проч.

Пользовательские настройки xmonad хранятся в ~/.xmonad/xmonad.hs, xmobar- ~/.xmobarrc или ~/.xmonad/xmobar.hs
Конфигурация xmonad представляет собой исполняемый код языка Haskell, о чем свидетельствует расширение .hs

Отнюдь не возбраняется пользоваться чужими конфигами и делиться своими.

При изменении конфигурации (xmonad.hs) требуется перекомпилировать программу. Не пугайтесь, делается это очень просто, быстро и на ходу командой:
xmonad --recompile && xmonad --restartС xmobar- также:
killall xmobar && xmobar
ВО ИЗБЕЖАНИЕ КУРЬЕЗОВ ОТКЛЮЧИТЕ АВТОМАТИЧЕСКИЙ ВХОД В СИСТЕМУ)) ДАБЫ В СЛУЧАЕ ЧЕГО ОКУНУТЬСЯ В ПРИВЫЧНЫЕ ЛАМПОВЫЕ ОБЪЯТИЯ UNITY

Для начала отключим ненавистный менеджер входа в систему
sudo systemctl disable lightdmПосле перезагрузки вы попадете в консоль, где нужно ввести логин и пароль. Чтобы загрузиться в Unity-
startx /usr/bin/unityДля загрузки в xmonad:
startx /usr/bin/xmonadЗагрузку обеспечивает файл xinitrc, который по умолчанию находится в /etc/X11/xinit/.

Чтобы использовать данный файл с пользовательскими конфигами можно скопировать его в домашнюю директорию под именем .xinitrc и дополнить содержимым, как в моем примере

При перезагрузке и выборе окружения Xmonad из своего GDM, LIGHTDM, ... DM мы попадаем в нечто темное и неприятное). Если вы куда-то попали, значит Xmonad работает.

Основная клавиша модификатор по умолчанию- Alt.
Нажимаем Alt+Enter- так мы вызовем эмулятор терминала, который используется по умолчанию в нашей системе. Комбинации клавиш по умолчанию

Основная документация Xmonad, Xmobar
А еще я начинал здесь

Мои конфиги на Гитхаб, пути сохранены.

ДОПОЛНЕНИЯ, вопросы, предложения с радостью буду приняты. Всего не описать, поэтому, как уже выше написал, проблемы будем решать (а они разрешимые) по мере поступления. Конфиги на Гитхаб откомментированы на русском, разобраться будет несложно.

ЗЫ. Камнями/палками/утюгами не кидать

И немного скринов, как это дело обстоит у меня.
(Нажмите, чтобы показать/скрыть)

И да, радость все же есть)))
(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 22 Апреля 2017, 07:19:22 от Morisson »

Оффлайн skybour

  • Старожил
  • *
  • Сообщений: 2213
    • Просмотр профиля
Re: Установка Xmonad + Xmobar в Ubuntu
« Ответ #1 : 14 Апреля 2017, 19:12:51 »
(Нажмите, чтобы показать/скрыть)

Morisson

  • Автор темы
  • Гость
Re: Установка Xmonad + Xmobar в Ubuntu
« Ответ #2 : 14 Апреля 2017, 19:17:13 »
skybour, Это уже другая тема))))
Тогда вообще выгонют отсюда за длиннющие топики)
В принципе, если запилишь xmonad- можно смело:
sudo apt-get purge unity-desktop))))

Кстати, Xmonad может работать с xfce, Gnome, openbox, lxde, KDE вместе, заменяя оконный менеджер

Оффлайн skybour

  • Старожил
  • *
  • Сообщений: 2213
    • Просмотр профиля
Re: Установка Xmonad + Xmobar в Ubuntu
« Ответ #3 : 14 Апреля 2017, 19:25:28 »
Тогда вообще выгонют отсюда за длиннющие топики)
А ты их под спойлеры, под спойлеры :)

Нужно сделать акцент на том, что urxvt настраивается в Xresources/Xdefaults иначе после выпиливания юнити-десктопа может быть сюрприз.

Morisson

  • Автор темы
  • Гость
Re: Установка Xmonad + Xmobar в Ubuntu
« Ответ #4 : 14 Апреля 2017, 19:29:22 »
skybour, В моем гите.

Пользователь добавил сообщение 14 Апреля 2017, 19:31:06:
после выпиливания юнити-десктопа
Пока о выпиливании, автологине, и скрипте выбора WM при входе- рано. Дойдет


Пользователь добавил сообщение 14 Апреля 2017, 19:31:37:
А ты их под спойлеры, под спойлеры
Тогда вообще скучно))
Прикинь, книжка в спойлерах)
« Последнее редактирование: 14 Апреля 2017, 19:31:37 от Morisson »

Оффлайн mahinist

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 3861
  • Ubuntu-20.04, Archlinux, Blackarchlinux, Gentoo
    • Просмотр профиля
Re: Установка Xmonad + Xmobar в Ubuntu
« Ответ #5 : 14 Апреля 2017, 19:45:33 »
Прикинь, книжка в спойлерах
А Wiki зачем , пиши сколько хочешь и для всех  :D
31-регион

toZen

  • Автор темы
  • Гость
Re: Установка Xmonad + Xmobar в Ubuntu
« Ответ #6 : 14 Апреля 2017, 19:46:00 »
Отнюдь не возбраняется пользоваться чужими конфигами
Возбраняется, ибо:
  • ничему не учит (личный опыт)
  • неизвестно, будет ли автор обновлять своё детище
  • если автор со временем не обновляет т конфиг в соответствии с новыми изменениями в коде haskell, то смело можно схлопотать кривизну отображения разных функций после текущего обновления, а они нередки
Крайне рекомендую не работать на чужих конфигах, как пример - да, но не более того.
Лучше всего - брать каждую функцию и подключать, смотреть, что происходит.
Тем самым можно определить место ошибки весьма легко.
Далее, напротив каждого параметра в кофиге лучше прописать кратко, что это.
« Последнее редактирование: 14 Апреля 2017, 19:57:54 от τοΖεη »

Оффлайн ecc83

  • Старожил
  • *
  • Сообщений: 2121
  • Ubuntu Mate 22.04 LTS
    • Просмотр профиля
Re: Установка Xmonad + Xmobar в Ubuntu
« Ответ #7 : 14 Апреля 2017, 19:52:00 »
Пока о выпиливании, автологине, и скрипте выбора WM при входе- рано. Дойдет

У меня тоже самодельная система, правда на базе openbox. Про сабж слышал, но не видел. Нужно буде на тренировочном компе попробовать

Касательно "выпиливания" юнити, считаю это не логично. Зачем его ставить, если он не нужен? Можно брать дистрибутив server, ставить базовую систему, а дальше всё что пожелаешь. В таком случае не остается лишнего "мусора".

А автологин в консоли, автозапуск иксов, автостарт wifi без графических утилит это без проблем. Если кто не знает, поделюсь.

 

Пользователь добавил сообщение 14 Апреля 2017, 19:31:37:

А ты их под спойлеры, под спойлеры
Тогда вообще скучно)) Прикинь, книжка в спойлерах)

Так может просто создать тему, прибить вверху её как "инструкцию" по установке-настройке подобной системы и без возможности в неё писать другим

Оффлайн Haron Prime

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 11313
  • Нетолерантный социопат
    • Просмотр профиля
Re: Установка Xmonad + Xmobar в Ubuntu
« Ответ #8 : 14 Апреля 2017, 20:09:08 »
Возбраняется,
Присоединюсь к мнению.
XMonad - это прежде всего конструктор с большим количеством дополнительных модулей, который каждый создаёт именно так, как требуется именно ему.
Я умышленно написал "создаёт". Это отнюдь не опечатка.
Дело в том, что файл xmonad.hs не является фалом конфигурации в привычном смысле. В большинстве случаев вы устанавливаете приложение, которое уже скомпилировано с определённым набором опций. Чтобы получить дополнительные плюшки или изменить дефолтное поведение, вы изменяете настройки в файле конфигурации. Программа их учитывает при работе, т.к. они имеют более высокий приоритет, нежели дефолтные.
С xmonad'ом это не так. Файл xmonad.hs по своему назначению служит для несколько другой цели. Согласно перечисленным в нём модулям и параметрам присходит сборка исполняемого файла командой xmonad --recompile. В результате вы получаете свой абсолютно уникальный wm. По своему назначению xmonad.hs соответствует файлам конфигурации, которые включают в исходники программ и которые перечитываются, когда вы набираете в терминале команду
configureво время сборки программ из исходников.
Именно поэтому, внесение любых изменений в данный файл требует перекомпиляции xmonad.
Но этого не стоит пугаться - перекомпиляция не требует мощного железа или продолжительного времени. Всё происходит за пару секунд даже на слабых машинах.
« Последнее редактирование: 14 Апреля 2017, 20:16:12 от Haron Prime »

Morisson

  • Автор темы
  • Гость
Re: Установка Xmonad + Xmobar в Ubuntu
« Ответ #9 : 14 Апреля 2017, 20:39:38 »
Я писал пользоваться,  а не копировать! :)

Пользователь добавил сообщение 14 Апреля 2017, 21:04:29:
Крайне рекомендую не работать на чужих конфигах, как пример - да, но не более того.
Ха. Один человек понял, про что я...

Пользователь добавил сообщение 14 Апреля 2017, 21:05:23:
Касательно "выпиливания" юнити, считаю это не логично.
Это логично, если что-то уже стоит и ты созрел))
« Последнее редактирование: 14 Апреля 2017, 21:05:23 от Morisson »

Оффлайн ecc83

  • Старожил
  • *
  • Сообщений: 2121
  • Ubuntu Mate 22.04 LTS
    • Просмотр профиля
Re: Установка Xmonad + Xmobar в Ubuntu
« Ответ #10 : 14 Апреля 2017, 21:22:06 »
Это логично, если что-то уже стоит и ты созрел))

Ну если кто то созрел и у него стоит, тогда конечно

toZen

  • Автор темы
  • Гость
Re: Установка Xmonad + Xmobar в Ubuntu
« Ответ #11 : 14 Апреля 2017, 21:23:30 »
ecc83, тема не для флуда.
Надеюсь, мы поняли друг-друга.

Morisson

  • Автор темы
  • Гость
Re: Установка Xmonad + Xmobar в Ubuntu
« Ответ #12 : 14 Апреля 2017, 22:39:00 »
Ну, пожалуй, продолжу.

Она из сильных сторон тайлинга- сочетания клавиш для вызова часто используемых приложений, которых бывает великое множество.
Коды клавиш узнать командой:
xev | grep keycode и нажав на поле нужную клавишу т.е. на своем примере из моего Гита:
((mod4Mask, xK_t), spawn "thunderbird")mod4Mask,- главная клавиша-модификатор (Win у меня)
xK_t- t

((controlMask .|. mod1Mask, xK_t), spawn "urxvtc")controlMask- Ctrl
.|.- разделитель между клавишами-модификаторами, читай "+"
mod1Mask- Alt
xK_t- t

Morisson

  • Автор темы
  • Гость
Re: Установка Xmonad + Xmobar в Ubuntu
« Ответ #13 : 22 Апреля 2017, 07:12:13 »
Xmonad поддерживает огромное количество разнообраных компоновок. От обычных и привычных пользователю других тайловых WM плиточной, плавающей, режима вкладок, до замысловатых мозаичных, magnifier (не знаю, как перевести, увеличительных, что ли))) и специальных компоновок для соц. сетей.

Я пользуюсь 4-мя. Ну не считая плавающих окон)) Разберем на примере:
--ТАЙЛИНГ
myLayoutHook = spacing 6 $ avoidStruts
                $ toggleLayouts (noBorders Full)
                $ smartBorders
                $ minimize
                $ tiled ||| mosaic 2 [3,2] ||| Full ||| magnifier (Tall 1 0.3 0.5)
                     where
                     tiled   = Tall nmaster delta ratio
                     nmaster = 1
                     delta   = 0.01
                     ratio   = 0.5
Как видим, и уже успели заметить комментирование здесь производится "--". Все в строке после двух тире считается комментарием и не участвует в программе.
И так у меня имеется 4 компоновки:
1- tiled, собственно плиточная, где после "where" описаны параметры (количество мастер-окон, шаг изменения размера, соотношение размеров)



2- mosaic, мозаичная, внешне похожа на предыдущую, отличается способом изменения соотношения размеров главного окна (то, что в фокусе). Изменение размеров здесь происходит в процентном соотношении одновременно по всем сторонам именно окна в фокусе, размеры также описаны (2 [3,2])




3- full, полноэкранный режим окна в фокусе.

4- magnifier, "увеличилка", "лупа". Окно в фокусе увеличивается и Выдвигается на передний план (соотнношения и размеры также описаны)



Выше компоновок описаны параметры: расстояние между окнами 6 px, не рисовать границу окна в фокусе в полноэкранном режиме, умные границы окна и т.д.
Также, окна можно развернуть/свернуть, "оторвать" от закрепленного места- сделать плавающим, поддерживается изменение размеров


Продолжение следует...

Пользователь добавил сообщение 22 Апреля 2017, 09:46:58:
Забыл рассказать об одной немаловажной вещи- настройка эмулятора терминала rxvt-unicode
Этот эмулятор отличается от других тем, что поддерживает большое количество расширений, позволяет изменять комбинации плавиш, легковесный, поддерживает quake- подобный вид (всплывающее окно) и многое другое. Он очень похож на xterm, но, по-моему более настраиваемый.


Установка описан в первом посте. Самое замечательное- расширения, perls, располагаются по пути /usr/lib/urxvt/perl/
Скачиваем (не стесняемся) архив c моего гита и распаковываем (с заменой) в /usr/lib/urxvt/
Теперь осталось настроить наш эмулятор.
Настройка производится в файле ~/.Xresources
Однако, я это делаю в ~/.Xdefaults. Так настройки применяются сразу после сохранения файла.
Первым делом нам необходимо:
1) включить наши расширения
URxvt.perl-ext-common:default,url-select,clipboard,keyboard-select2) Установить нужный шрифт
URxvt.font:xft:Terminus Re33:size=14:antialias=false:hinting=true:lcdfilter=lcddefault:dpi=96:hintstyle=hintsfull:autohint=true:rgba=rgb!
3) Указать приложение по умолчанию для открытия кликабельных инет-ссылок, у меня это Chrome
URxvt.urlLauncher:google-chrome-stable4) Назначим сочетания клавиш копирование/вставка, по умолчанию используются сочетания, как в xterm. У меня Ctrl+C/Ctrl+V копирование/вставка соответственно ;-)
URxvt.iso14755:               false
URxvt.keysym.Control-c:perl:clipboard:copy
URxvt.keysym.Control-v:perl:clipboard:paste
где в первой строке мы отключаем стандартные сочетания согласно iso14755. Если этого не сделать- Ctrl будет занят.

Здесь же настраивается разрежение шрифта
URxvt*letterSpace:                 -1
Глубина цвета
URxvt.depth: 32Также, ~/.Xdefaults и ~/.Xresources поддерживает настройку не только rxvt-unicode, но и xterm, к примеру
Отключим, например, скроллбары всех поддерживаемых эмуляторов:
*scrollBar:        falseИли можно указать конкретно наш эмулятор:
URxvt.scrollBar:        false
Цветовая гамма настраивается 16-ричной кодировкой либо просто соответствующим названием цвета на английском языке согласно таблице
#FFFFFF -белый или просто "white"))

Мой ~/.Xdefaults-  на Гите

У меня после подобных преобразований


Слева- XTerm, справа RXVT-unicode (найдите 10-отличий;-)
« Последнее редактирование: 22 Апреля 2017, 09:48:19 от Morisson »

Оффлайн rodnik.jizni

  • Новичок
  • *
  • Сообщений: 24
    • Просмотр профиля
Re: Установка Xmonad + Xmobar в Ubuntu
« Ответ #14 : 26 Апреля 2018, 08:42:23 »
 а в режиме компоновки FULL реально сделать чтоб все приложения переходили в полноценный полноэкранный режим?

 

Страница сгенерирована за 0.041 секунд. Запросов: 21.