Инструменты пользователя

Инструменты сайта


tasks:kiosk

Не совсем чистый интернет-киоск, т. к. пользователю нужно, помимо интернета, иметь возможность воткнуть свою флешку или диск и распечатать документ или веб-страницу.

ОС Lubuntu 22.04 LTS.

Первичная настройка

Установить ОС, настроить сеть, далее

# Установить SSH и RDP (опционально)
apt install openssh-server -y
apt install xrdp -y
### Зайти по SSH
# Заменить репозитории (если не сделано при установке)
sed -E -i 's#(ru\.)?(security|archive)\.ubuntu\.com#mirror.yandex.ru#' /etc/apt/sources.list
# Обновить систему
apt update && apt upgrade -y && apt autoremove -y
snap install core22

https://askubuntu.com/questions/1456802/cannot-repair-the-broken-snap-core22-on-ubuntu-22-04

Копирование обоев и значков

Скопировать картинки - обои, кнопку пуск, обои для экрана входа, здесь копируется с Windows-машины

# Кнопка меню
"y" |cmd /c "D:\Downloads\pscp.exe" -P 22 -pw 123456 -v "C:\Users\User\Pictures\kiosk\portal-2-2.svg" admin@t-kiosk1:/home/admin '2>&1'
# Обои
"y" |cmd /c "D:\Downloads\pscp.exe" -P 22 -pw 123456 -v "C:\Users\User\Pictures\kiosk\Inet-cafe-1600x900-*.jpg" admin@t-kiosk1:/home/admin '2>&1'
# Обои для экрана входа (1920x1080)
"y" |cmd /c "D:\Downloads\pscp.exe" -P 22 -pw 123456 -v "C:\Users\User\Pictures\kiosk\wall.png" admin@t-kiosk1:/home/admin '2>&1'

Рассовать скопированные картинки в системе

# Кнопка меню
mv /home/admin/expo-portal-2-2.svg /usr/share/lxqt/graphics
# Обои
mv /home/admin/Inet-ca* /usr/share/lubuntu/wallpapers
# Обои для экрана входа
mv /home/admin/wall.png /usr/share/sddm/themes/lubuntu

Установка/удаление программ

Здесь по требованию начальства нужно было установить Chrome как дополнительный браузер.

### Удаление
apt remove 2048* transmission* quassel* qlipper -y
apt autoremove -y
### Установка 
# Шрифты из Windows (первая команда - принять лицензию)
echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | debconf-set-selections
apt install ttf-mscorefonts-installer -y
# Chrome
snap install chromium

https://askubuntu.com/questions/16225/how-can-i-accept-the-microsoft-eula-agreement-for-ttf-mscorefonts-installer

Офис

# Убрать заставку, tip of the day и what's new
# Сначала удаление, чтобы была идемпотентность
sed -i '
s# --nologo##
s#Exec=.*#& --nologo#
' /usr/share/applications/libreoffice*
# Установить языки
# русский (шаблоны тире и словарь опционально)
apt install libreoffice-l10n-ru # hyphen-ru hunspell-ru
# английский
# apt install hyphen-en-us hunspell-en-us

https://help.libreoffice.org/7.4/en-GB/text/shared/guide/start_parameters.html

Браузер

# Прописать опции (сначала удалить, чтобы была идемпотентность)
sed -i '
s#--no-default-browser-check --no-experiments --no-first-run --disable-extensions --start-maximized ##g
s#/snap/bin/chromium#/snap/bin/chromium --no-default-browser-check --no-experiments --no-first-run --disable-extensions --start-maximized#g
' /var/lib/snapd/desktop/applications/chromium_chromium.desktop

https://peter.sh/experiments/chromium-command-line-switches/
https://askubuntu.com/questions/1145514/how-to-prevent-users-from-installing-extensions-in-google-chrome-without-admin-p
https://askubuntu.com/questions/747118/where-is-the-location-of-application-shortcuts-in-gnome

Почистить кэш из командной строки

The browser cache is stored in different directories depending on whether Chromium is installed as a regular package or as a snap. Examples:
# /usr/bin/chromium   -> traditional package
# /snap/bin/chromium  -> snap
# Installed from regular package
rm -rf ~/.cache/chromium
# Installed from snap
rm -rf ~/snap/chromium/common/.cache/chromium
# Google Chrome
rm -rf ~/.cache/google-chrome

Список принтеров

Chromium нормально не показывает два принтера в списке, он выдаёт один по умолчанию и пункт «Ещё…».
Его нужно нажать и выбрать второй принтер, чтобы он возник в списке.
В дальнейшем при открытии диалога печати в списке будут отображаться оба.

Интерфейс

Настраивается через GUI.

Параметры -> Настройки LXQt -> Системные настройки LXQT
	Ассоциация файлов
		Приложения по умолчанию
			Браузер: поставить Chromium
	Внешний вид (необязательно)
		Шрифт
			Кегль 12 (по умолчанию 11)
	Клавиатура и мышь
		Раскладка клавиатуры
			Проверить раскладки, задать клавиши смены (Alt+Shift)
	Локаль
		Регион
			какой требуется для учётки, это будет языком системы
	Настройки Openbox
		Шрифт (необязательно)
			Название активного окна: Sans Serif 11
			Название неактивного окна: Sans Serif 11
			Заголовок меню: Sans Serif 12
			Пункт меню: Sans Serif 12
			Активная надпись на экране: Sans Serif 12
			Неактивная надпись на экране: Sans Serif 12
		Рабочие столы
			Показывать уведомление при переключении рабочих столов: снять галку
			Количество рабочих столов: 1
	Настройки сеанса
		Основные настройки
			Глобальные сочетания клавиш: выключить и остановить
			Служба уведомлений: выключить и остановить
			Спрашивать подтверждения для завершения сеанса - снять галку
		Автозапуск
			upgNotifier: выключить
	Рабочий стол
		Общие (необязательно)
			Размер значков: 64 (по умолчанию 48)
			Выбрать шрифт: Ubuntu 12 (по умолчанию 11)
		Фон
			Выбрать обои, режим - растянуть по всему экрану
		Расширенные
			Снять галки с Home, Сеть и Компьютер
Панель задач -> ПКМ -> Настроить панель
	Панель
		Размер: 42 пикс (по умолчанию 32)
		Размер значков: 32 пикс (по умолчанию 22)
	Виджеты
		Меню приложений
			Настроить
				Значок: Кнопка меню, что была загружена ранее

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

Принтеры

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

sed -i 's#^BrowseRemoteProtocols.*#BrowseRemoteProtocols none#' /etc/cups/cups-browsed.conf
# или
sudo systemctl stop cups-browsed
sudo systemctl disable cups-browsed

Идиотизм в том, что после этого лишние принтеры в приложениях всё равно видны из-за сервиса avahi.
Нужно добавить интерфейс, откуда они берутся, в запрещённые.

# Выяснить имя нужного интерфейса (одна любая команда)
nmcli device status
nmcli connection show
tcpdump --list-interfaces
ip r
# Прописать его в конфиг
sed -i -E '/#?deny-interfaces/c deny-interfaces=eth0' /etc/avahi/avahi-daemon.conf
# Перезапустить службу
systemctl restart avahi-daemon

https://bugs.launchpad.net/ubuntu/+source/cups/+bug/1753509
https://askubuntu.com/questions/345083/how-do-i-disable-automatic-remote-printer-installation

Настройка принтеров (CUPS) через браузер: http://localhost:631

Если Firefox не видит принтеры, выполнить

sudo snap connect firefox:cups-control

Migrate Linux Printer Configuration

# CUPS stores its configuration at /etc/cups directory, so all you have to do is copy /etc/cups to a new computer. Open terminal and type the commands on old Linux computer:
tar -cvzf /tmp/cups-$(hostname).tar.gz /etc/cups
# Copy /tmp/cups* to new system using SCP or use USB pen driver:
scp /tmp/cups* new.linux.server.com:/tmp
# Now login to new system and type the following commands:
mv /etc/cups /etc/cups.backup
cd /
tar -zxvf /tmp/cups*
# Finally, restart the cups service:
systemctl restart cups.service

https://www.cyberciti.biz/tips/linux-migrate-printer-configuration.html

Скринсейвер

Необязательно, но можно изменить заставку, чтобы комп не сильно напрягался, например, Attraction.
Либо, если у компа есть постоянный доступ в интернет, то можно сделать FontGlide и натравить настройку на корпоративный сайт (новости, анонсы, что-то о будущем), чтобы показывались красивые строки оттуда. Поменять ссылку можно в файле настроек: ~/.xscreensaver

Ещё хорошие заставки: DecayScreen, FadePlot, FlipScreen3D, Flurry, GLSells, GLText, IFS, Pacman, Rocks, Wander.

Пользователи

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

cp -r /home/admin/{.config,Desktop,.xscreensaver} /etc/skel

После копирования настроек все последующие пользователи будут брать их из шаблона.

# Посмотреть настройки по умолчанию
# useradd -D
# Завести пользователей (с созданием домашней папки, иначе не получится войти в систему)
useradd -m english
useradd -m russian
# Удалить пароль - вход будет просто по нажатию Enter
passwd -d english
passwd -d russian

После создания пользователей надо зайти под ними в систему и проверить работоспособность.
Для english поставить локаль en_US и английскую стартовую страницу в браузере.

Копирование профилей

Для восстановления. Идея в том, что после перезагрузки профиль пользователя полностью переустанавливается из копии.

# Сохранение (без копирования прав, чтобы пользователь не мог изменить файлы в шаблоне)
mkdir /etc/profile_templates
rsync -Drl /home/russian /etc/profile_templates
rsync -Drl /home/english /etc/profile_templates
# Восстановление - Cron (/etc/crontab)
@reboot         root    rsync -Drl --delete /etc/profile_templates/russian/ /home/russian; chown -R russian: /home/russian		
@reboot         root    rsync -Drl --delete /etc/profile_templates/english/ /home/english; chown -R english: /home/english
# Восстановление вручную
rsync -Drl --delete /etc/profile_templates/russian/ /home/russian
chown -R russian: /home/russian
rsync -Drl --delete /etc/profile_templates/english/ /home/english
chown -R english: /home/english

Снятие и восстановление образа

Снимается образ с помощью Clonezilla.

После восстановления на новой машине нужно:

  1. Настроить сеть: поменять IP-адрес.
  2. Изменить hostname: sudo hostnamectl set-hostname PC1234
  3. Сменить обои в профилях и шаблонах профилей (.config/pcmanfm-qt/lxqt/settings.conf)
    for i in $(find /home /etc/profile_templates -name 'settings.conf' |grep pcmanfm)
    do
      sed -i 's#_1600x900-.*#_1600x900-02.jpg#' $i
    done

Заметки

LXQt

Посмотреть список каталогов LXQt можно в About LXQt.

userhome=/home/user
 
# Поменять локаль
nano /home/english/.config/lxqt/session.conf
# В шаблоне - nano /etc/skel/.config/lxqt/session.conf
[Environment]
LANG=en_US.UTF-8 # Этого достаточно, если не надо менять региональные настройки
LC_COLLATE=en_US.UTF-8
LC_MEASUREMENT=en_US.UTF-8
LC_MONETARY=en_US.UTF-8
LC_NUMERIC=en_US.UTF-8
LC_TIME=en_US.UTF-8
 
# Панель меню Пуск
# iconSize=22, panelSize=32
sed -i '
s/panelSize=.*/panelSize=42/
s/iconSize=.*/iconSize=32/
' $userhome/.config/lxqt/panel.conf
 
# Обои
sed -i '
s/DesktopIconSize=.*/DesktopIconSize=64/
s/Font=.*/Font="Ubuntu,12,-1,5,50,0,0,0,0,0,Regular"/
s/DesktopShortcuts=.*/DesktopShortcuts=Trash, Computer/
s/Wallpaper=.*/Wallpaper=\/usr\/share\/lubuntu\/wallpapers\/2110-waves-dark.png/
s/WallpaperMode=.*/WallpaperMode=stretch/
' $userhome/.config/pcmanfm-qt/lxqt/settings.conf
#pcmanfm-qt --set-wallpaper /usr/share/lubuntu/wallpapers/2110-waves-dark.png --wallpaper-mode stretch
 
# Игнор уведомлений
sed -i '
s/blackList=.*/blackList=lxqt-panel,lxqt-config-monitor,lxqt-powermanagement/
' $userhome/.config/lxqt/notifications.conf
# https://github.com/lxqt/lxqt/issues/1788

# Выключить уведомление об обновлениях: LXQt Session Settings → Autostart → upgNotifier
/home/english/.config/autostart/upg-notifier-autostart.desktop

[Desktop Entry]
Exec=/usr/libexec/lubuntu-update-notifier/lubuntu-upg-notifier.sh
Hidden=true
Icon=system-software-update
Name=upgNotifier
NoDisplay=true
Type=Application
Version=0.1

Автологин

sudo nano /etc/sddm.conf

[Autologin]
User=<your user name>
Session=Lubuntu
# Relogin=true
# (Usually you don’t need the Relogin line (default false).
# Relogin=true will relogin immediately after you logout. So you will never see the login screen.

Доверять иконкам на рабочем столе

:!: Из крона не работает, только из командной строки под конкретным пользователем и перезахода в систему.

# crontab -e -u english
@reboot    for i in Desktop/*.desktop; do gio set $i metadata::trusted true; done
# chown english:crontab /var/spool/cron/crontab/english
sudo -u admin for i in ~/Desktop/*.desktop; do gio set $i metadata::trusted true; done

Статьи

tasks/kiosk.txt · Последнее изменение: 30.07.2024 19:21 — 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki