В качестве среды рабочего стола я предпочитаю 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-сертификаты, администрирование серверов и поддержка сайтов.
mihmig
Скажите, а в IceWm (или какой-либо другой DE для Linux) уже появилась возможность вызывать меню «Пуск» по нажатию кнопки Win и убирать его при повторном нажатии кнопки Win?
JetMaster
В GNOME по умолчанию кнопка win вызывает эдакий аналог alt+tab но на весь экран и тут же есть строка поиска в котором "безфокусно" (то есть не нужно целиться курсором в это поле) можно набирать название требуемого приложения и тут же его запустить, так что считай виндовый Пуск на минималках. Второе нажатие на win возвращает нас на рабочий стол.
in4
LinuxMint 19.3 MATE, только что проверил.
Работает:
kxx
У меня в icewm под ubuntu и archlinux работает.
geher
Прислединюсь к уже ответившим. В KDE оно давно так. Просто не помню, что когда-то было иначе. В KDE5 точно с самого начала, а это почти 7 лет уже (несколько дней осталось).