80-lxpanel


Страница от Андрей Савон

К концу пятого дня вынужденного безделия можно сделать две вещи:

  1. Сосчитать спички в новом коробке, и в случае недостачи обратится с претензией к спичечой фабрике.
  2. Вкорячить в Slax LXpanel.

Я не агрессивен, поэтому выбрал второй вариант.
LXpanel - легковесная панель инструментов с неплохим функционалом и отличной оптимизацией в плане потребления ресурсов. Является продолжением проекта FBpanel. Почивший предок задумывался и разрабатывался как альтернативная панель инструментов fluxbox, что ясно из его названия, но был заброшен по неизвестным мне причинам. Разработчики LXDE довели панель до ума и используют в своём проекте.
Далее следует скучное описание процесса. Если вам это не интересно - смело прокручивайте вниз до слов “Для тех, кто не читал”
>>>>>>>>>>>
Мотив: штатная панель Fluxbox убога до безобразия. Томас попытался её немного допилить, но видимо, пилил “на скору руку”, и результат меня не устроил.
Допилы Томаса заключаются в двух кнопках, болтающихся в трее:
  1. volumeicon - регулирует громкость и вызывывает микшер. Потребляет 18мб оперативы.

  1. systrayicon - её единственное назначение - вызвать меню выключения/перезагрузки (fblogout). Ради этой высокой цели она весь сеанс болтается в трее и потребляет ещё 18мб

Кроме того, я вынужден использовать fbxkb, так как штатный обработчик раскладки в Slax не предусмотрен. Это ещё 18мб.
18+18+18=54мб Для данного функционала многовато (мягко говоря).
Качаю LXpanel:
apt install --download-only lxpanel
Получаю несколько пакетов. Не особо церемонясь распаковываю их архиватором и объединяю.
Получаю папку с программой весом в 6мб, которые после удаления лишних локалей превращаются в 2мб. Редко увидишь такие жирные локали :). Создаю модуль весом в 1.1мб. Активирую. Запускаю:
lxpanel
Запускается, но говорит, что другой системный трей уже запущен, и по этой причине она не может запустить свой. Всё ясно, надо отключить системный трей fluxbox.
Открываю /root/.fluxbox/init, нахожу там строку:
session.screen0.toolbar.tools: RootMenu, iconbar, systemtray, clock
и привожу её к следующему виду:
session.screen0.toolbar.tools: none
заодно отключаю видимость панели инструментов fluxbox:
session.screen0.toolbar.visible: false
Перезапускаю fluxbox:
fluxbox-remote restart
и снова запускаю lxpanel:
lxpanel
Теперь всё работает.
Благодарю модуль fbxkb за долгую службу верой и правдой, затем деактивирую его и удаляю.
Осталось отключить ставшие ненужными кнопки systrayicon и volumeicon, поскольку lxpanel имеет собственные апплеты обработчика раскладки и управления громкостью. Они более симпатичные и менее прожорливые.
Для начала я просто убью ненавистные кнопки:
killall systrayicon
killal volumeicon
Теперь отключаю их навсегда. Для этого редактирую /root/.fluxbox/startup. В итоге он должен выглядеть так:
#!/bin/sh
#
# fluxbox startup-script:
#
# Lines starting with a '#' are ignored.
# Change your keymap:
xmodmap "/root/.Xmodmap"
# merge xresource settings
xrdb -merge ~/.Xresources
# set keyboard layout
fbsetkb $(cat ~/.fluxbox/kblayout)
/usr/bin/setxkbmap -layout 'us,ru' -option 'grp:lalt_lshift_toggle,grp_led:scroll'
# setup bookmarks for file manager
gtk-bookmarks-update
# Share common directories with guest user. This is necessary
# because some apps like chromium must be running under guest
for dir in Desktop Documents Downloads Music Pictures Public Templates Videos; do
if ! mountpoint /root/$dir; then
mount --bind /home/guest/$dir /root/$dir
fi
done
# set background color and big wait mouse cursor
xsetroot -solid '#111111'
xsetroot -xcf /usr/share/icons/breeze_cursors/cursors/watch 37
# preload compton and fluxbox to cache
(compton --help; fluxbox --help) >/dev/null 2>&1
# Keep black screen for first second while the sound plays.
# This slows startup a little, but it is nicer effect.
SND=/usr/share/sounds/startup.wav
if [ -r $SND ]; then
cat $SND > /dev/null # preload
aplay $SND &
sleep 1 &
SOUNDPID=$!
fi
# Debian-local change:
# - fbautostart has been added with a quick hack to check to see if it
# exists. If it does, we'll start it up by default.
which fbautostart > /dev/null
if [ $? -eq 0 ]; then
fbautostart
fi
# We need to postpone compton after fluxbox starts, else it won't set
# the transparency of toolbar properly... So we check the fehbg file,
# which is created by fluxbox at the phase when it sets background.
# Once the file exist, fluxbox-toolbar is already started
SIGNAL1=~/.fehbg
SIGNAL2=~/.fehbg2
rm -f $SIGNAL1 2>/dev/null
rm -f $SIGNAL2 2>/dev/null
(
while [ ! -e $SIGNAL1 ]; do
sleep 0.1
done
touch $SIGNAL2
exec compton --sw-opti -e 0.9 --fade-exclude 'role*="fluxbox-toolbar"' --opacity-rule '70:role*="fluxbox-toolbar"' --no-fading-destroyed-argb -D 5 -c -f -l -2 -t -2 -r 0 -o 1 -z --shadow-exclude 'bounding_shaped'
) &
# gen screen resolutions to fluxbox menu
xrandr 2>/dev/null | fgrep x | fgrep . | sort -n | tr -s " " | cut -d " " -f 2 \
| sed -r "s:(.*):[exec] (\\1) {fbscreensize \\1}:" > ~/.fluxbox/menu_resolution
# In all cases, wait for the sound sleeper.
# If startup took longer (sound completed already), no extra wait
wait $SOUNDPID
# And last but not least we start fluxbox.
# Because it is the last app you have to run it with exec before it.
exec fluxbox
Создаю ярлык автозапуска для lxpanel и помещаю его в /root/.config/autostart . Создать ярлык - это значит создать файл с именем lxpanel.desktop и наполнить его следующим содержимым:
[Desktop Entry]
Type=Application
Name=lxpanel
Exec=sleep 3 && lxpanel
StartupNotify=true
Terminal=false
Чтобы этот вариант автозагрузки работал, вам нужен fbautostart - крохотный модуль, который сканирует директории автозапуска и запускает обнаруженные ярлыки. Вы можете скачать его по ссылке ниже или установить самостоятельно из репозиториев Debian:
apt install fbautostart
Если же по какой-то причине вам не хочется иметь его в системе, то можно прописать автозапуск панели первой строкой в файле /root/.fluxbox/apps:
[startup] {sleep 3 && lxpanel}
sleep 3 нужен для устранения нежелательных визуальных эффектов при загрузке. Панель загружается очень быстро, а тормознутый compton очень медленно и не успевает обработать прозрачность, в результате чего панелька несколько секунд выглядит серой. Чисто моя прихоть, можете не реализовывать :).
Если вы совсем новичок, то следующим шагом стоит выполнить следующие действия:
Клик ПКМ на панели >> Настройки панели >> Дополнительно
Значение поля “ Команда для выхода из системы” изменить на:
fblogout
Теперь всё готово, можно перезагрузить компьютер.
Полевые испытания:
--Одна панель с кучей апплетов. Потребление RAM - 27мб
--Создаю вторую панель справа (можно создавать неограниченное количество панелей). Потребление RAM - 31мб
--Создаю ещё 2 панели (итого - 4: сверху, снизу, справа и слева), назначаю всем автоскрытие, набиваю апплетами и ярлыками. Потребление RAM - 37мб
По-моему - весьма неплохо.
Панель подхватывает темы GTK. Можно задать свой файл темы, который будет неизменным. Можно задать фоновое изображение или установить цвет/прозрачность. Читайте man lxpanel и lxpanel -h
Весь интерфейс на русском, перевод качественный, настройки простые. Думаю, разберётесь.
О модуле:
В мой модуль уже зашиты модифицированный файл startup и ярлык автозапуска. Вам остается только закинуть их в папку modules, изменить две строчки в файле init и перезагрузить машину.
Ну и как обещал, кратко:
Для тех, кто не читал:
  1. Открыть файл /root/.fluxbox/init , найти и изменить следующие 2 строки:

session.screen0.toolbar.tools: RootMenu, iconbar, systemtray, clock
привести к виду:
session.screen0.toolbar.tools: none
session.screen0.toolbar.visible: true
привести к виду:
session.screen0.toolbar.visible: false
  1. Скачать два файла по ссылкам ниже и поместить в папку modules.

  1. Перезагрузить комп.

  1. Клик ПКМ на панели >> Настройки панели >> Дополнительно
Значение поля “ Команда для выхода из системы” изменить на:
fblogout
Всем удачи и прочих благ!
https://yadi.sk/d/h2uu1_9VKTOFfA
https://yadi.sk/d/AxI58gxcZ6Jp_Q

ОГЛАВЛЕНИЕ
НАЗАД

Комментариев нет:

Отправить комментарий

Примечание. Отправлять комментарии могут только участники этого блога.