Использование IceWM и Raspberry Pi в качестве основного PC: делюсь темой, конфигурацией и несколькими советами

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!

В качестве среды рабочего стола я предпочитаю KDE. KDE надежна, настраиваема всевозможными способами, и к тому же замечательно работает. Она относится к вам как к ответственному взрослому, а не ребенку, как GNOME в наши дни или XFCE после перехода на GTK3. Потребление ОЗУ соответствует норме: чаще всего голый KDE (Debian или Arch) использует 300 МБ RAM. Это с отключенным Baloo (индексатор поиска) и Akonadi (бэкенд базы данных PIM). Отличное поведение по умолчанию, низкое потребление ресурсов и гибкая настройка, почему тогда этот пост назван «IceWM»? Дома я использую небольшое устройство на ARM (Raspberry PI 4 c SSD) в качестве основного компьютера, и его ресурсы ограничены. KDE на нем работает нормально, но немного медленнее, чем на моей рабочей машине. IceWM, с другой стороны, использует менее 30 МБ RAM и меньше CPU. Программа icewmbg, создающая фон рабочего стола, потребляет вдвое больше оперативной памяти, чем сама IceWM! IceWM, наряду с Awesome, — один из моих любимых оконных менеджеров. Он очень настраиваемый и предоставляет все, что мне нужно. После переключения с KDE на IceWM, машина ощущается намного быстрее. Это заметно по некоторым мелким деталям, например по вводу текста и отсутствию небольших лагов тут и там. В этой статье приведены моя конфигурация IceWM, включая объяснение некоторых параметров, моя тема IceWM, а также несколько советов и трюков по настройке остальной части рабочего стола.

Потребление ресурсов

Касательно использования памяти. Вот, что говорит ps_mem.py на моей машине 

Private  +   Shared  =  RAM used        Program

352.0 KiB + 500.0 KiB = 852.0 KiB       icewm-session
384.0 KiB + 546.0 KiB = 930.0 KiB       xscreensaver
  3.3 MiB +   6.4 MiB =   9.7 MiB       xdm (2)
  8.2 MiB +  10.5 MiB =  18.7 MiB       NetworkManager
 11.2 MiB +  16.6 MiB =  27.8 MiB       icewm
 15.9 MiB +  42.1 MiB =  58.0 MiB       klipper
 28.5 MiB +  33.1 MiB =  61.6 MiB       firewalld
 25.8 MiB +  46.1 MiB =  71.9 MiB       nm-applet
 20.7 MiB +  52.7 MiB =  73.3 MiB       konsole
 34.8 MiB +  69.3 MiB = 104.0 MiB       dolphin
 58.3 MiB +  60.3 MiB = 118.7 MiB       icewmbg
 68.9 MiB + 150.3 MiB = 219.3 MiB       sublime_text
 57.1 MiB + 186.8 MiB = 243.9 MiB       Xorg
300.9 MiB + 330.4 MiB = 631.3 MiB       thunderbird
341.6 MiB + 558.7 MiB = 900.3 MiB       firefox (3)

Я не привел некоторые менее полезные детали, но все-таки это адекватное потребление для такого небольшого компьютера. Немного серфинга, немного письма и немного электронной почты. Разработка на C++ (в CLion) вполне выполнима, хотя я предпочитаю старый добрый vim, т. к. CLion на этой машине работает довольно медленно. CMake, make и gcc работают нормально, хотя изначально они были немного медленнее: ccache очень помогает при повторной компиляции. Но для большей части работы, связанной с программированием, я использую свой рабочий компьютер. 

На машине изначально стояла полностью настроенная KDE5. Большинство этих настроек перешло в IceWM, например более крупный курсор в QT приложениях. Я не уверен, как новая установка IceWM справится с этими изменениями. Имейте в виду, если что-то из нижеперечисленного у вас не работает, возможно, это потому, что KDE сделала это за меня.

Мой Raspberry Pi находится в специальном кейсе для охлаждения и SSD. Обзор Джеффа Герлинга заставил меня купить его. Отличный выбор, приятный кейс. Прочтите обзор, чтобы узнать больше.

Пока что можно сделать вывод о том, что IceWM работает очень быстро. KDE такой же шустрый на моем рабочем компьютере, имеющим i9 и 128 ГБ ОЗУ. Но IceWM стоит на Raspberry Pi, небольшой плате ARM c 1.5 ГГц, на которой KDE по-прежнему быстр, но все же имеет заметное отставание. Pi работает под управлением Arch Linux Arm, но изначально запускал по умолчанию Raspbian. Это никак не повлияло на скорость KDE.

Использование noscript для отключения javascript в Firefox очень помогло. Я все еще могу включить его, когда захочу, но это экономит много Web Content процессов, поедающих ресурсы.

Конфигурация

Прежде, чем начать что-то делать, убедитесь, что у вас есть файлы конфигурации в вашей домашней директории:

mkdir ~/.icewm/
cp -R /usr/share/icewm/* ~/.icewm/

Я немного изменил предоставляемую по умолчанию конфигурацию. Я не использую рабочие области (workspace), поэтому они исчезли с панели задач, как и значок почты. Размер шрифта немного увеличен и включен MenuMouseTracking (иначе мне пришлось бы щелкать каждый элемент начального меню, а не наводить на него курсор). Команда grep удаляет все, что начинается с # (комментарий), и пустые строки, показывая только внесенные мной изменения:

$ grep -E -v -e «^#» -e «^$» .icewm/preferences 

MenuMouseTracking=1 

SmartPlacement=1 
SnapMove=1 

TaskBarShowMailboxStatus=0 
TaskBarShowWindowListMenu=0 
TaskBarShowWorkspaces=0 

ActiveButtonFontNameXft=«sans-serif:size=14:bold»
ActiveTaskBarFontNameXft=«sans-serif:size=14:bold»
ActiveWorkspaceFontNameXft=«sans-serif:size=14»
ApmFontNameXft=«monospace:size=14»
ClockFontNameXft=«monospace:size=14»
TitleFontNameXft=«sans-serif:size=14»
ToolButtonFontNameXft=«sans-serif:size=14»
ToolTipFontNameXft=«sans-serif:size=14»

DesktopBackgroundImage=»~/wallpaper.jpeg»
DesktopBackgroundScaled=1 

KeySysAddressBar=«Alt+Space»

KeySysCollapseTaskBar=«»
KeyWinMenu=«»

NetworkStatusDevice=»[eth]*»

Пустые KeySysCollapseTaskBar и KeyWinMenu предназначены для отключения этих сочетаний клавиш. Я привык к ALT + SPACE для krunner (выполнение команд), более простая версия встроена в IceWM. Я настроил ее в параметре KeySysAddressBar на сочетание ALT+ SPACE (которое сначала было для KeyWinMenu). Эти клавиши превращают панель задач в текстовое поле для ввода команды. Ниже приведены два скриншота (с панелью задач и текстовым полем):

Не так настраиваемо, как в krunner или dmenu, зато встроено.

KeySysCollapseTaskBar конфликтует с предпочитаемым мной шорткатом для clipboard manager (CTRL+ALT+H), поэтому он не установлен.

Опции для фона рабочего стола (начинаются с DesktopBackground) очевидны. SnapMove и SmartPlacement позволяют окнам привязываться друг к другу при перемещении или открытии нового.

Window Snapping / Expose / Tiling

Мне нравится функция Window Snapping в KDE (и в Windows), поэтому я настроил в файле .icewm/keys следующие шорткаты:

key «Alt+Left» icesh -f left top sizeto 50% 100%
key «Alt+Right» icesh -f right top sizeto 50% 100%

Это позволяет нажимать Alt и клавишу со стрелкой, чтобы изменить размер окна точно до половины экрана влево или вправо. 

Если не работает, убедитесь, что окно не развернуто (нажмите ALT + F10).

В качестве тайлового оконного менеджера я предпочитаю Awesome, но, к моему удивлению, оказалось, что что в IceWM есть два встроенных сочетания клавиш для тайловых окон:

#  Tiles all windows from top to bottom maximized horizontally.
# KeySysTileHorizontal="Alt+Shift+F3"

#  Tiles all windows from left to right maximized vertically.
# KeySysTileVertical="Alt+Shift+F2"

Вы можете многому научиться, прочитав файлы конфигурации.

Menu Maker

В меню по умолчанию нет списка полезных приложений. В этой ситуации на помощь приходит утилита mmaker. Вот команда, которую я использую для обновления меню:

mmaker -f --no-legacy --no-debian icewm -t Konsole

Она не включает ни DebianStyle меню, ни консольные приложения (такие как alsamixer). Мне нравится Konsole в качестве терминала по умолчанию, иначе это был бы xterm.

Тема

На скриншоте ниже показана тема, которую я использую. Это SilverXP, но с большими курсорами из K-ath-Leen. Ничего особенного, просто копируем SilverXP в новую папку, затем копируем туда курсоры и устанавливаем в качестве своей темы:

cp -r .icewm/themes/SilverXP .icewm/themes/RemyXP
cp -r .icewm/themes/K-ath-Leen/cursors .icewm/themes/RemyXP/

На рабочем столе нет иконок. Я не пользуюсь ими, вместо этого использую ALT + SPACE (krunner, dmenu, что угодно) или значки панели инструментов.

Трей

В правой части панели инструментов находится трей с несколькими (встроенными в IceWM) графиками мониторинга, значками и часами. Ничего особенного, просто то, что мне нравится.

По умолчанию здесь есть значок конверта, который я отключил.

Панель инструментов 

Рядом с кнопкой Start у меня есть несколько кнопок для запуска приложений:

Это настраивается в файле .icewm/toolbar. Иконки могут быть найдены где-то в директории /usr/share/icons, но без расширения.

Формат каждой строки:

  • prog (строковый литерал).

  • Name of program.

  • Icon filename (название файла иконки) без расширения. Установите тире, если хотите показывать Name.

  • Binary to execute (исполняемый файл).

Вот мой список:

prog «Konsole» utilities-terminal konsole
prog «Dolphin» system-file-manager dolphin
prog «Sublime Text» kwrite subl 
prog  «Mozilla Firefox»  firefox  /usr/bin/firefox
prog  «Mozilla Thunderbird»  thunderbird  /usr/bin/thunderbird

Полный путь к иконке Dolphin — /usr/share/icons/breeze/apps/32/system-file-manager.svg.

Размер курсора

Мне нравятся, когда элементы пользовательского интерфейса крупные. Не только размер шрифта, но и курсор мыши. У меня это было настроено через панель системных настроек KDE. Вот команда gsettings, чтобы сделать это на стороне GTK:

gsettings set org.gnome.desktop.interface cursor-size 48

На стороне KDE эта команда записывает файл конфигурации:

kwriteconfig5 --file ~/.config/kcminputrc --group Mouse --key cursorTheme breeze_cursors

В этом файле вы можете изменить размер курсора:

[Mouse]
cursorSize=48
cursorTheme=breeze_cursors

Выйдите из системы и снова войдите, чтобы изменения стали активными. В ArchWiki на странице Cursor Themes перечислены другие способы изменения размера курсора

Увеличенный размер шрифта в приложениях QT

Мне нравится большой размер шрифта, и при использовании KDE это одна из опций в меню настроек. После переключения на IceWM, все приложения QT5 вернулись к меньшему шрифту по умолчанию. Приложения GTK по-прежнему имеют крупный шрифт. На StackOverflow я нашел исправление для увеличения размера шрифта во всех приложениях QT5. Отредактируйте следующий файл:

vim /etc/profile.d/qt-fontsize.sh

Поместите туда следующее:

# For the graphical elements
export QT_SCALE_FACTOR=1.5 

# To make the fonts readable
export QT_FONT_DPI=96

Вы должны выйти из системы и войти заново, чтобы сделать изменения активным.

Вот скриншот до и после, чтобы показать разницу. Слева значения по умолчанию, справа конфигурация, указанная выше.

Автозапуск приложений

Вам необходимо создать скрипт для автоматического запуска приложений при входе в систему, например апплета менеджера сети или clipboard менеджера. Сначала создайте скрипт и сделайте его исполняемым:

touch ~/.icewm/startup
chmod +x ~/.icewm/startup

Отредактируйте его в своём любимом редакторе. Ниже моя версия. sleep 1 здесь нужен для приложений в трее, потому что в противном случае они открываются в виде окон, что выглядит странно.

#!/bin/sh

# allow notifications
/usr/lib/notification-daemon-1.0/notification-daemon &

# start network manager
sleep 1 && nm-applet &

# enable screensaver
xscreensaver -nosplash &

# clipboard manager
sleep 1 && /bin/parcellite &

#screenshots
sleep 1 && /bin/shutter &

Дата-центр ITSOFT — размещение и аренда серверов и стоек в двух дата-центрах в Москве. За последние годы UPTIME 100%. Размещение GPU-ферм и ASIC-майнеров, аренда GPU-серверов, лицензии связи, SSL-сертификаты, администрирование серверов и поддержка сайтов.

Источник: https://habr.com/ru/company/itsoft/blog/567092/


Интересные статьи

Интересные статьи

Вторая часть полностью посвящена описанию программного обеспечения, используемого на роботе. Так как разработанный робот (pi-tank) по большому счету рассчитан на начинающих роботострои...
Данная публикация не относится к материалам серии «вот он event horizon», а наоборот, как советчик по применению признанных методов анализа БигДата (BigDate) в практической деятельности п...
В 4 части (вы же прочли первую, вторую и третью, да?) мы возвращаемся к нашей цели – создание фильтра для лица в стиле Snapchat, используя то, что мы уже узнали об отслеж...
Нередко при работе с Bitrix24 REST API возникает необходимость быстро получить содержимое определенных полей всех элементов какого-то списка (например, лидов). Традиционн...
Привет, Хабр! В данной статье, ориентированной на новичков, я бы хотел дать несколько советов по оптимизации использования приложением памяти устройства, дабы постоянно не получать OutOfMemory, а...