Планета Calculate

Облако тэгов

звуковые карты wi-fi udev news полезное работа mail swap abi_x86_32 KDE5 xsel серые листы winbind tracker ДНК cld cp1251 live-flash valve syslog QupZilla kvm cairo-dock автологин настройка цветов принтера freerdp mpg123 форматирование текста профиль пользователя bonding book dwm NetworkManager apvlv CLDG qemu rtorrent uptime rutorrent ati autologin ccze asus n10j press радио mailman BINHOST builder persistence icons bash CSS клавиатура kde5 cldg strategy benchmark zstd форум lm_sensors screenshot alpha пресса feh tun slim maillist lighttpd шаблоны домашний сервер Gnome3 hdmi CSC remoteapp zswap networking flashplayer atom n270 Книги foto тема pam power KDE dhcpcd android textile bond Tor elogv многопоточная закачка asus x86 revision tint browser ati-drivers asterisk lirc vaio games desktop ups ускорение Xorg windows MultiTail instagram BugTracker cpu family mplayer реестр PowerTOP su ПО RT mencoder package unmasking установка net cl-builder vulnerability blog tint2 программист LXC qrencode сайт утилитки на Icon EFI ControlMaster calculate-access помощь день рождение LXD vps рассылка man LTE фидонет pre qupzilla db Calculate E17 wiki umd persistence-mode mirrorselect aufs xfce оптимизация AMD bootchart cryptsetup pxe birthday obmenu доступ rdp LXQt emerge radeon pf-kernel udisks ntfs-3g xen grub openbox midori кодировка CP1251 настройка цветов сканера beta keyboard systemd-udevd Calculate package sound gcc handbook ini.env grc MATE kernel pwkl cds xpak командная строка firefox mate make.conf XZ kernek win7 acl jabber recordmydesktop windows 7 firmware tweaks autounmask ext4 minicom двойная загрузка nextcloud #calculatelinux linux tbn bug xmpp виртуализация benchmarking raid Firefox hibernate calculate2 w2k3 маршрутизатор gnome vpn support calculate-install-gui calculate utilities glx-dock CLC 4G calculate utils otter features profile Windows 7 Huawei new tools CDS dns dhcp настройка цветов фотоаппарата Calculate Linux Enlightenment сглаживание udisks-glue reader цветовой профиль icc фидо перенесено костыли распространение pdf cmc dropbox kde xfce pastebin twitter ssh шрифт authentication cls канал wget uksm LVM world мышка день программиста Midnight Commander lxc-desktop sudo kde nano calculate-sources templates temperature pitivi calculate 2.2 portage CMC xchat ПДУ howto muqss theme звук dvcs meta djvu cl-update-profile X linuxdcpp 1C postgresql apache fontconfig lcdfilter fonts шрифты DPI atheros9285 ratigan монитор экран разрешение CLDXE sony smplayer описание tuxonice flags optimization fonts bluetooth uefi openvpn VirtualBox nm-applet weechat 11.6 backdor qr-code alsa torrent tail forum интервью Audio utilities donation сеты monitoring распространение программ systemd Office security загрузчик dhcp binhost Скоростной алгоритм сжатия LZ4 TV GSC canto браузер CL14 xxkb участие USE samba screensaver MyRuLib lto distro xbmc keyexec python3 Снобизм stage luks pae UTF-8 оптимизация linux lautre дизайн energy saving plan репозиторий Summer Camp 3G курсор мыши dnscrypt install Calculate Utilities Библиотека shorewall gnome3 GPT steam производительность gentoo vlc p2p mp3 Plasma plugn ldap screencast icon w2k8 mc lvm Compose установка Icon в Calculate nexus repo git team CLDC Atheros XFCE cldm сборка из исходников openssh pulseaudio pgo помощь проекту CLDM liveusb ppp0 tap mouse vim перемещаемые профили cl-kernel iptables mirror android kde mtp livecd Gnome cpp livedvd установка linux e4rat calculate3 начало update caffeine binary code dns calculate linux antivirus free documentation calculate-install dmidecode kde и многопоточный звук codelite euse CLSK rip grub2 интернет unclutter freshplayerplugin hdd most openrc container release Либрусек acoola новости SSD bsa font iphone dconf btrfs E17 nut настройка цветов монитора план RSS безопасность ebuild ядро gnome 2 github ncurses markdown почта удаленная сеть qutim разработка xorg packages openldap udisks template calculate postfix ffmpeg ubuntu clementine глобальное меню загрузка CL17 CLSL EAPI 2 CLS обмен опытом E17 Calculate telegram chromium OpenRC Timeless overlay libvirt создание подсветки синтаксиса bittorrent АТС nouveau network calculate-utils server developers вакансия ParaType facebook locale Desktop eudev DNA CCDX irc оптимизация ядра CDS настройка linux atheros calculate linux obconf automagic reestr pptp MidnightCommander cl-console-bg cl CLDX linux CLDL internet history objecticon видео blueman firewall layout Zen softraid CLD подсветка синтаксиса video python dmix debian localepurge google talk-plugin smart блог bash-completion кеширование proxy Icon Calculate USB Creator Calculate Linux Spamassassin брелок programming сервер Cinnamon unicode

Введение в шаблоны Calculate 2.2 часть 3 - настраиваем нижнюю панель в XFCE

Добавил(а) Alexander Tratsevskiy почти 7 года назад

Тема взята из запроса Олега, оставленного на форуме. В примерах используется логин пользователя koboveb.

Задача - пошагово описать действия по созданию шаблона для настроек нижней панели XFCE. Сам файл настроек уже есть.

1. По содержимому настроенного файла нижней панели смотрим пути шаблонов

Смотрим содержимое /home/koboveb/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml:

...
<!--
 Modified Calculate-desktop 2.2.23
 Processing template files:
 /usr/share/calculate/templates/desktop/desktop/40-xfce-4.8/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml
 /usr/share/calculate/templates/desktop/desktop/40-xfce-4.8-always/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml
-->
...

В настоящее время этого пути уже нет (см. новости), т.к. шаблоны перенесены в оверлей. Новые пути находятся в директории /var/lib/layman/calculate/profiles/templates/.

2. Изучаем оригинальные шаблоны для создания своих

Шаблоны настройки всех служб и сервисов находятся в общей директории. В этом есть плюсы и минусы. Среди плюсов - нет фиксированных путей, а значит мы получаем довольно гибкую систему хранения. Среди минусов - дополнительные обязательные проверки на события.

Событий много, среди них установка системы, создание пользовательского профиля, загрузка системы в livecd режиме и т.д. Для этого есть специальные переменные хранящие значения событий. Проще их взять из примера.

Начнём изучение.

2.1. Начальные значения директории templates (/var/lib/layman/calculate/profiles/templates/) устанавливаются утилитами. Путь наложения шаблонов устанавливается в корень, права на файлы и директории 644 и 755 соответственно. Пользователь root:root.

2.2. Директории, как и файлы являются тоже шаблонами. Они имеют те же свойства и теже условия. Их свойства определяются в служебном файле .calculate_directory.

Поэтому смотрим дальше в пути /var/lib/layman/calculate/profiles/templates/desktop/ файл .calculate_directory:
cat /var/lib/layman/calculate/profiles/templates/desktop/.calculate_directory

# Calculate append=skip cl_name==calculate-desktop&&cl_ver>=2.2.1

  • Параметр append указывает на способ объединения. Передав значение "skip", мы пропустим создание директории desktop в корне файловой системы. Более подробно про шаблоны утилит Calculate можно прочесть здесь. Возьмём этот параметр на заметку для создания своего шаблона.

Далее идёт проверка на значения переменных.

  • Проверка cl_name - минимально необходимое условие проверки для вашего шаблона. По ней мы определяем какому пакету утилит принадлежит шаблон. За настройку рабочего стола отвечает пакет calculate-desktop. Каждый пакет может использовать свои переменные и функции, при помощи которых он лучше справится со своими задачами.
  • Далее идёт проверка версии утилит по содержимому переменной cl_ver. В нашем случае она не понадобится.

2.3. Посмотрим свойства следующей директории /var/lib/layman/calculate/profiles/templates/desktop/desktop/.calculate_directory:

# Calculate path=~ name= chmod=0700 chown=#-ur_login-#:#-ur_group-# \
cl_chroot_status==off&&ur_login!=root&&ac_desktop_desktop==up&&ini(main.update)!=off

Здесь мы уже переопределяем пути и права доступа, проверяем события. Директория может называться как угодно, важны её свойства. Рассмотрим их внимательней:

  • path=~ - переодпределяем путь к директории, куда будет переноситься шаблон. Поскольку мы настраиваем учётную запись пользователя, этот путь проще обозначить как ~, вместо значения которой будет использоваться содержимое переменной $HOME пользователя.
  • name= - с отсутствующим именем путь и конечной директории будет равен $HOME.
  • chmod=0700 - установим права доступа.
  • chown=#-ur_login-#:#-ur_group-# - установим владельца. Запись вида #-переменная-# подставляет значение переменной.

Дополнительные проверки:

  • cl_chroot_status==off - проверка на сборку системы. В нашем случае можно не использовать.
  • ur_login!=root - проверка на то что пользователь не root.
  • ac_desktop_desktop==up - событийная переменная, отвечающая за настройку сеанса пользователя.
  • ini(main.update)!=off - дополнительное условие, создаваемое самими шаблонами. При помощи функция ini() переменные в файле ~/.calculate/ini.env хранят информацию о настроенных приложениях. Чтобы исключить повторную настройку и добавить возможность выполнять настройку определённых пакетов повторно. В нашем примере мы не будем использовать этот приём.

2.4. Наконец мы добрались до настроек самого пакета, в который входит рассматриваемый нами файл настроек. Посмотрим свойства следующей директории /var/lib/layman/calculate/profiles/templates/desktop/desktop/40-xfce-4.8/.calculate_directory:

# Calculate append=skip \
belong(xfdesktop)!=&&ini(update.xfce)!=off&&ini(ver.xfce)==&&pkg(xfce-base/xfdesktop)>=4.8

Опция appent=skip пропускает перенос директории. Главной задачей является проверка условий использования её содержимого.

  • belong(xfdesktop)!= - функция возвратит нам непустоту, если будет устанавливаться этот пакет, или настраиваться профиль пользователя.
  • ini(update.xfce)!= и ini(ver.xfce)==- проверка на то, что разрешено обновление настроек и пакет не был настроен. В нашем примере мы отказались от использования этой системы контроля.
  • pkg(xfce-base/xfdesktop)>=4.8 - здесь мы проверяем на то что пакет у нас установлен и на его версию.

2.5. Последующие директории .config/ .config/xfce4 .config/xfce4/xfconf .config/xfce4/xfconf/xfce-perchannel-xml уже не имеют файлов свойств и переносятся в систему как есть, начиная от пути ~, заданного в свойствах директории desktop, если помните.

2.6. Наконец мы добрались до одного из двух шаблонов настройки нашего файла. Посмотрим его заголовок:

# Calculate format=xml_xfce

format=xml_xfce - Здесь мы указываем его формат. Если формат поддерживается утилитами, файл будет объединён с конфигурационным файлом. Вы можете решить для себя, использовать эту возможность или нет. Кроме объединения можно выбрать любое другое действие, например перезапись файла, изменение по регулярному выражению, дописывание в конец, удаление конечного файла, создание ссылки и т.д.

3. Созданим свой шаблон

Шаблоны пользователя могут храниться в директории /var/calculate/templates/ или в /var/calculate/remote/templates/. Второй путь удобно использовать, если у вас есть парк машин и Calculate Directory Server.

Итак, выполним следующие действия:

3.1. Создадим директорию /var/calculate/templates/.
3.2. Создадим в ней директорию XFCE /var/calculate/templates/XFCE и создадим файл свойств для неё .calculate_directory, со следующим содержимым:

# Calculate path=~/.config/xfce4/xfconf/xfce-perchannel-xml name= chmod=0700 chown=#-ur_login-#:#-ur_group-# \
cl_name==calculate-desktop&&ur_login!=root&&ac_desktop_desktop==up&&belong(xfdesktop)!=&&pkg(xfce-base/xfdesktop)>=4.8

3.3. Скопируем в эту директорию наш вариант файла настроек xfce4-panel.xml, например взятый отсюда.
3.4. Не указав формат файла, он будет переписывать существующий. Тем не менее, мне понадобится внести некоторые изменения в него. В частности заменить упоминаемый логин пользователя на переменную ur_login. Для этого, вместо koboveb впишите #-ur_login-#. Просмотреть переменные пакета calculate-desktop можно выполнив cl-desktop -v.

4. Проверим

Проверить настройку рабочего стола можно тремя способами:

4.1. Создать тестового пользователя войти им в сеанс.
4.2. Установив пакет xfdesktop, выполнив emerge -1 xfce-base/xfdesktop.
4.3. Воспользоваться утилитой cl-desktop, выполнив cl-desktop koboveb.

5. Заключение

5.1. В примере не рассматривался шаблон из директории 40-xfce-4.8-always, т.к. он используется только для настройки учётных записей доменных пользователей.

5.2. Можно ли упростить шаблон? Можно. Просто скопируйте в /var/calculate/templates свой пример конфигурационного файла, и допишите вверху следующие настройки шаблона:

# Calculate path=~/.config/xfce4/xfconf/xfce-perchannel-xml chmod=0700 chown=#-ur_login-#:#-ur_group-# \
cl_name==calculate-desktop&&ur_login!=root&&ac_desktop_desktop==up&&belong(xfdesktop)!=&&pkg(xfce-base/xfdesktop)>=4.8

Здесь я указал путь, убрал параметр name, переопределяющий имя, выставил права, затем выполнил проверки. Обратите внимание на очерёдность проверок. Важно, чтобы переменная cl_name стояла первой в списке, т.к. последующие переменные могут принадлежат только этому пакету утилит.


Комментарии

Спасибо!