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


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

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

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

Оффлайн Morisson

  • Автор темы
  • Модератор форума
  • Старожил
  • *
  • Сообщений: 2686
    • Просмотр профиля
Установка Xmonad + Xmobar в Ubuntu
« : 14 Апрель 2017, 19: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, 08:19:22 от Morisson »
Acer E5-571G; Intel Corei5; GPU: IntelHD 4400 + Nvidia 820M; SSD 250 Гб + HDD 500 Гб; RAM 12 Гб, UEFI без загрузчика.
Arch Linux; WM: Xmonad ;ядро: linux-zen

Оффлайн skybour

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

Оффлайн Morisson

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

Кстати, Xmonad может работать с xfce, Gnome, openbox, lxde, KDE вместе, заменяя оконный менеджер
Acer E5-571G; Intel Corei5; GPU: IntelHD 4400 + Nvidia 820M; SSD 250 Гб + HDD 500 Гб; RAM 12 Гб, UEFI без загрузчика.
Arch Linux; WM: Xmonad ;ядро: linux-zen

Оффлайн skybour

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

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

Оффлайн Morisson

  • Автор темы
  • Модератор форума
  • Старожил
  • *
  • Сообщений: 2686
    • Просмотр профиля
Re: Установка Xmonad + Xmobar в Ubuntu
« Ответ #4 : 14 Апрель 2017, 20:29:22 »
skybour, В моем гите.

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


Пользователь добавил сообщение 14 Апрель 2017, 20:31:37:
А ты их под спойлеры, под спойлеры
Тогда вообще скучно))
Прикинь, книжка в спойлерах)
« Последнее редактирование: 14 Апрель 2017, 20:31:37 от Morisson »
Acer E5-571G; Intel Corei5; GPU: IntelHD 4400 + Nvidia 820M; SSD 250 Гб + HDD 500 Гб; RAM 12 Гб, UEFI без загрузчика.
Arch Linux; WM: Xmonad ;ядро: linux-zen

Оффлайн mahinist

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

Оффлайн τοΖεη

  • Заслуженный пользователь
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 8259
  • Arch Linux • XMonad WM
    • Просмотр профиля
Re: Установка Xmonad + Xmobar в Ubuntu
« Ответ #6 : 14 Апрель 2017, 20:46:00 »
Отнюдь не возбраняется пользоваться чужими конфигами
Возбраняется, ибо:
  • ничему не учит (личный опыт)
  • неизвестно, будет ли автор обновлять своё детище
  • если автор со временем не обновляет т конфиг в соответствии с новыми изменениями в коде haskell, то смело можно схлопотать кривизну отображения разных функций после текущего обновления, а они нередки
Крайне рекомендую не работать на чужих конфигах, как пример - да, но не более того.
Лучше всего - брать каждую функцию и подключать, смотреть, что происходит.
Тем самым можно определить место ошибки весьма легко.
Далее, напротив каждого параметра в кофиге лучше прописать кратко, что это.
« Последнее редактирование: 14 Апрель 2017, 20:57:54 от τοΖεη »
# find / -iname '*τοΖεη*'
# /God's_Universe/Book_Of_Life_aka_LordJC_protected/τοΖεη
Subject description -->> Not an ideal but s@ved 4eVer. Final destination -->> Kingdom Of Heaven

Оффлайн ecc83

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

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

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

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

 

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

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

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

Оффлайн Haron Prime

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

Оффлайн Morisson

  • Автор темы
  • Модератор форума
  • Старожил
  • *
  • Сообщений: 2686
    • Просмотр профиля
Re: Установка Xmonad + Xmobar в Ubuntu
« Ответ #9 : 14 Апрель 2017, 21:39:38 »
Я писал пользоваться,  а не копировать! :)

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

Пользователь добавил сообщение 14 Апрель 2017, 22:05:23:
Касательно "выпиливания" юнити, считаю это не логично.
Это логично, если что-то уже стоит и ты созрел))
« Последнее редактирование: 14 Апрель 2017, 22:05:23 от Morisson »
Acer E5-571G; Intel Corei5; GPU: IntelHD 4400 + Nvidia 820M; SSD 250 Гб + HDD 500 Гб; RAM 12 Гб, UEFI без загрузчика.
Arch Linux; WM: Xmonad ;ядро: linux-zen

Оффлайн ecc83

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

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

Оффлайн τοΖεη

  • Заслуженный пользователь
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 8259
  • Arch Linux • XMonad WM
    • Просмотр профиля
Re: Установка Xmonad + Xmobar в Ubuntu
« Ответ #11 : 14 Апрель 2017, 22:23:30 »
ecc83, тема не для флуда.
Надеюсь, мы поняли друг-друга.
# find / -iname '*τοΖεη*'
# /God's_Universe/Book_Of_Life_aka_LordJC_protected/τοΖεη
Subject description -->> Not an ideal but s@ved 4eVer. Final destination -->> Kingdom Of Heaven

Оффлайн Morisson

  • Автор темы
  • Модератор форума
  • Старожил
  • *
  • Сообщений: 2686
    • Просмотр профиля
Re: Установка Xmonad + Xmobar в Ubuntu
« Ответ #12 : 14 Апрель 2017, 23: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
Acer E5-571G; Intel Corei5; GPU: IntelHD 4400 + Nvidia 820M; SSD 250 Гб + HDD 500 Гб; RAM 12 Гб, UEFI без загрузчика.
Arch Linux; WM: Xmonad ;ядро: linux-zen

Оффлайн Morisson

  • Автор темы
  • Модератор форума
  • Старожил
  • *
  • Сообщений: 2686
    • Просмотр профиля
Re: Установка Xmonad + Xmobar в Ubuntu
« Ответ #13 : 22 Апрель 2017, 08: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, 10: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, 10:48:19 от Morisson »
Acer E5-571G; Intel Corei5; GPU: IntelHD 4400 + Nvidia 820M; SSD 250 Гб + HDD 500 Гб; RAM 12 Гб, UEFI без загрузчика.
Arch Linux; WM: Xmonad ;ядро: linux-zen

 

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