суббота, 17 апреля 2021 г.

Настройка IceWM в Opensuse и Manjaro

Мой опыт знакомства с линукс начинался с KDE 3.5 в далёком 2004 году. Так исторически сложилось, что я всегда пользовался исключительно интегрированными рабочими средами: KDE 3-5, Gnome 2-Mate, XFCE и Cinnamon. Мимо меня прошли мимо менеджеры окон, в том числе и тайлинговые. Хотя я о многих слышал и читал, но попользоваться как-то не получилось. Хотя лет 7 назад я запускал icewm, который устанавливается по-умолчанию в Opensuse. Видимо на случай, если кеды рухнут. Ну вы же знаете - плазма не падает! :-)

И вот у меня выпало свободное время, когда дома все дела переделаны, а на огороде ещё что-то делать рано. Мельком потыкав FVWM и JWM понял, что мне это не особо нужно. Я вспомнил об "ледяном менеджере окон", который славится невероятно низким потреблением ресурсов, стабильностью, большим набором тем, а так же тем, что готов из коробки. 

Для начало поделюсь первым впечатлением от icewm: быстрый, напоминает форточки конца 90ых, какого-то своего файлового менеджера не имеет. Настроек шрифтов нет, но что ещё довольно странно - это то, что нет индикатора расскладки клавиатуры. Почесав тыковку, я вначале его снёс и забил на неделю, но потом всё же решил вернуться и посмотреть подробнее... и увлёкся так, что реализовал почти все свои хотелки и потребности. 

Эта статья - попытка обобщить свой опыт настройки этого WM на дистрибутиве Opensuse Tumbleweed KDE (установлен на старом ноутбуке с видеокартой radeon) и Manjaro Mate (стационарный компьютер с видеокартой intel). Для чего эти подробности? - я ставил задачу реализовать запасной рабочий стол, который использует по-максимуму установленные приложения, которые входят в состав интегрированных сред. Частично мне это удалось, а что-то и пришлось доставлять.

Для начала рассмотрим настройки icewm: всё находится в папке ./icewm в пользовательском каталоге. Конфиги - обычные текстовые.

keys - горячие клавиши

preferences - точные настройки

startup - исполняемый файл для запуска приложений при старте

theme - выбор темы

programs - дополнительное меню для программ

toolbar - настройка размещения иконок на панели для вызова приложений

Ноутбук. Opensuse. Кеды 5 размера. Система обновлена. Я доустановил пакеты: icewm-themes (темы) kmix (регулятор громкости, не потребовал зависимостей) NetworkManager-applet (для конфигурации и просмотра настоек сети из трея) pcmanfm (файловый менеджер на базе GTK).

Файл startup представляет следующий вид:

#!/bin/bash

setxkbmap -layout "us,ru(winkeys)" -model "pc105" -option "grp:ctrl_shift_toggle,grp_led:scroll" &

nm-applet &

kmix &

Первая команда настраивает клавиши для смены расскладки и индикаторы клавиатуры для отображения. 

 А в файл preferences имеется 1 строчка - она отключает уведомление о почте в трее:

TaskBarShowMailboxStatus=0 

Также мне пришлось настроить X сервер для того, чтобы избавиться от тиринга. Для этого я создал файл 20-radeon.conf в каталоге /usr/share/X11/xorg.conf.d со следующим строками:

Section "Device"
    Identifier "AMD GPU"
    Driver "radeon"
    Option "TearFree" "on"
EndSection

Естественно, после необходимо выйти из сеанса и снова зайти или перезагрузить компьютер. Отдельно мне хотелось бы отметить, что из всех установленных приложений нормально не работал файловый менеджер dolphin. Заместо него был установлен вначале pcmanfm-qt (требовал меньше зависимостей), но он вылетал при попытке зайти в настройки и выглядел плохо. Тогда был установлен обычный pcmanfm, который абсолютно нормально себя чувствует и работает. В настройках ФМ необходимо изменить вызов терминала по-умолчанию на xterm.

Рис.1 - файловые менеджеры

На скриншоте отлично видно, что у dolphin отсутствуют кнопки свернуть, развернуть. Также он очень медленно запускался, но что ещё более странно папки и файлы нельзя было открыть с помощью мышки, хотя выделение работало. 


Рис.2 - информация о системе и потреблении ОЗУ

На скриншоте потребление памяти 285 МБ, тогда как в Кедах обычно в районе 370-450 МБ. В целом всё работает очень шустро и гладко. Нет особых тормозов. Ноутбук 2009 года выпуска! Однозначно данное окружение позволит сохранить аккумулятор. 

Ах да, чуть не забыл - наудивление прекрасно работает и вызывается штатная кедовская скриншотилка. Мелочь, а приятно!

Стационарный ПК - довольно производительная машинка конца 2015 года с 16 ГБ ОЗУ на борту и SSD. Manjaro обновлён. Среда МАТЕ - одна из моих любимых. Сразу хочу отметить, что мне не удалось установить темы - пакеты конфликтуют. Установил вручную, скопировав их с ноутбука. Архив с темами можно скачать с ВК по этой ссылке, но необходимо войти в свою учётную запись. Темы располагаются по адресу: /usr/share/icewm/themes Не забудьте изменить владельца на root:root с правами доступа 755.

Также потребовалось устранить тиринг - необходимо создать файл 20-intel.conf с содержимым:

Section "Device"
    Identifier "Intel Graphics"
    Driver "intel"
    Option "AccelMethod" "SNA"
    Option "TearFree" "true"
EndSection

И разместить его по адресу: /etc/X11/xorg.conf.d незабывая выставить права 755 и владельца root:root Компьютер также необходимо перезагрузить или перелогиниться. Правда тут есть интересный момент - тиринга совершенно нет почему-то в FVWM, хотя в самом MATE он есть, если отключить composite, но что ещё более странно в том же icewm тиринга также нет, если не устанавливать обои! Всё же надёжнее создать волшебный файлик и забыть об этой проблеме. К сожалению, есть один момент, если воспользоваться 3D полноэкранными игрушками или запустить экранную заставку, то тиринг снова появляется. Устранить можно только перелогинившись в систему.

В меню отсутствовал пункт запуска файлового менеджера caja, для этого я создал файл programs в папке настроек ~/.icewm с таким содержимым:

prog "Файловый менеджер Caja" file-manager caja

prog "Демон хранителя экрана" xscreensaver xscreensaver

где prog - это вызов, 1 имя пункта меню, 2 группа значков 3 команда запуска

Точно такой же формат имеет и файл toolbar, я тоже его изменил под себя.

В этой связке дистрибутив-МАТЕ мне удалось использовать родные мятные аплеты, файл startup имеет следующий вид:

#!/bin/bash

setxkbmap -layout "us,ru(winkeys)" -model "pc105" -option "grp:ctrl_shift_toggle,grp_led:scroll" &

nm-applet &

mate-volume-control-status-icon &

mate-power-manager &

Файл preferences позволяет настроить рабочий стол - либо задать фон с помощью строчки (убрать знак #):

DesktopBackgroundColor="#4682B4" (коды можно найти в интернете)

Либо установить своё изображение и растянуть его на весь рабочий стол:

DesktopBackgroundImage="/home/nelson/Изображения/ваш_файл.jpg"

DesktopBackgroundScaled=1

Отмечу, что в этом дистрибутиве имеется программа volumeicon - миниатюрный регулятор громкости, так что необязательно использовать аплеты от среды МАТЕ. Такой вот мини-лайфхак. Ну и конечно же мне нужна скриншотилка. Я воспользовался статьёй из интернета, но написал 2 скрипта и повесил на горячие клавиши. 1 делает скриншот всего стола 2 позволяет выделить часть экрана. Я не стал делать скриншот активного окна. Второе сочетание клавиш взял из среды Cinnamon. Для этого необходимо создать файлы screenshot и screenshotzone со следующим содержимым и разместить их в каталоге /usr/local/bin:

для первого код

#!/bin/bash
DATE=`date +%Y-%m-%d\ %H-%M-%S`
import -window root "$HOME/Изображения/screenshot $DATE.png"

для второго код

#!/bin/bash
DATE=`date +%Y-%m-%d\ %H-%M-%S`
import "$HOME/Изображения/screenshot $DATE.png"

Т.е. я немного изменил логику работы скриптов - добавил секунды к имени файла, а иначе он перезаписывает, а скриншоты обычно делаются чаще, чем раз в минуту, а также добавил новый скрипт для захвата зон на экране. При желании можно изменить и путь, что я лично и сделал. Скриншоты делает довольно известная программа imagemagick Также добавлю, что скрипты должны быть исполняемыми, иметь права 755 и владельца root:root Для применения я рекомендую перелогиниться, хотя возможно и можно и просто перезагрузить WM через менюшку.

Далее мы должны назначить горячие клавиши для вызова скриптов. Для этого создаём файл keys в папке настроек icewm со следующими строчками:

key "Print" screenshot
key "Shift+Print" screenshotzone

Мне бы хотелось отдельно отметить следующие моменты настроек в Manjaro. Для того, чтобы все приложения и горячие клавиши работали корректно, необходимо на экране входа в систему выбирать: Сеанс Icewm, именно сеанс, а не просто icewm! И второй момент - у меня после входа выключался NumLock (цифровая клавиатура). Данное поведение проще всего исправить так - в настройках менеджера входа включаем NumLock. Что до работы приложений на данном ПК - всё открывается молниеносно, каких-то особых глюков не замечено. Шрифты не особо ШГ :-) Потребление памяти в пределах 240 мб, тот же МАТЕ потребляет в районе 560 МБ в htop и через свой системный монитор до 900 МБ.Из приятных моментов - в VLC не пропадает меню в полноэкранном режиме. Оно пропадало в МАТЕ, если включён композитинг окон.

Рис.3 - icewm на ПК с Манжаро

Для того, чтобы добавить отображение раскладки клавиатуры в трей, необходимо установить программу xxkb и настроить её (не забываем про автозапуск!). Файл конфигурации ~/.xxkbrc располагается в домашней директории пользователя и содержит следующие параметры:

XXkb.image.path: /usr/share/xxkb/
XXkb.mainwindow.type:tray
XXkb.group.base: 1
XXkb.group.alt: 2
XXkb.mainwindow.enable: yes
XXkb.mainwindow.image.1: en15.xpm
XXkb.mainwindow.image.2: ru15.xpm
XXkb.mainwindow.image.3:
XXkb.mainwindow.image.4:
XXkb.mainwindow.appicon: yes
XXkb.mainwindow.geometry: 20x20+2+2
XXkb.mainwindow.in_tray: true
XXkb.button.enable: no
XXkb.controls.add_when_start: yes
XXkb.controls.add_when_create: yes
XXkb.controls.add_when_change: no
XXkb.controls.focusout: no
XXkb.mainwindow.label.enable: no

Вот так выглядит индикатор раскладки клавиатуры: 

Рис.4 - русская раскладка
Рис.5 - английская раскладка

К сожалению, несколько позже был обнаружен досадный баг - если перезапустить icewm через меню, то иконка пропадает... Поиск решений в сети ясности не внёс, но был найден другой индикатор и одновременно переключатель раскладок клавиатуры gxkb. Отмечу приятный момент - он не требует настроек перед первым запуском, сразу подхватывает текущие настройки. Настройки также выполняются через редактирование текстового файла ~/.config/gxkb/gxkb.cfg Почитать о всех опциях можно ТУТ. С этим переключателем никаких проблем нет.

Рис.6 - русская раскладка в gxkb
Рис.7 - английская раскладка в gxkb

В принципе это всё можно было и не делать, так как на стационарном ПК у меня используется светодиод на самой клавиатуре Scroll Lock, но на ноутбуке такого нет. Тем более решение настолько простое, что нет смысла отказываться от маленьких удобств.

В заключении: я получил удовольствие от ручной настройки icewm с помощью конфигов. Именно в такие моменты начинаешь понимать, какой гигантский путь проделали интегрированные рабочие среды для удобства настройки и эксплуатации. И одновременно с этим полное погружение в смысл фразы KISS (не усложняй). Линукс тем и прекрасен, что можно проводить эксперименты, получать опыт и всё это бесплатно! 

1 комментарий:

  1. зарегистрировалась для того, чтобы сказать спасибо =) очень мне было полезно

    ОтветитьУдалить