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

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


tasks:kiosk

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
tasks:kiosk [20.01.2024 09:43] – [Офис] viacheslavtasks:kiosk [30.07.2024 19:21] (текущий) – внешнее изменение 127.0.0.1
Строка 1: Строка 1:
 +Не совсем чистый интернет-киоск, т. к. пользователю нужно, помимо интернета, иметь возможность воткнуть свою флешку или диск и распечатать документ или веб-страницу.
 +
 +ОС Lubuntu 22.04 LTS.
 +
 +===== Первичная настройка =====
 +Установить ОС, настроить сеть, далее
 +<code bash>
 +# Установить 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
 +</code>
 +https://askubuntu.com/questions/1456802/cannot-repair-the-broken-snap-core22-on-ubuntu-22-04
 +
 +==== Копирование обоев и значков ====
 +Скопировать картинки - обои, кнопку пуск, обои для экрана входа, здесь копируется с Windows-машины
 +<code powershell>
 +# Кнопка меню
 +"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'
 +</code>
 +Рассовать скопированные картинки в системе
 +<code bash>
 +# Кнопка меню
 +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
 +</code>
 +
 +==== Установка/удаление программ ====
 +Здесь по требованию начальства нужно было установить Chrome как дополнительный браузер.
 +<code bash>
 +### Удаление
 +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
 +</code>
 +https://askubuntu.com/questions/16225/how-can-i-accept-the-microsoft-eula-agreement-for-ttf-mscorefonts-installer
 +==== Офис ====
 +<code bash>
 +# Убрать заставку, 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
 +</code>
 +https://help.libreoffice.org/7.4/en-GB/text/shared/guide/start_parameters.html
 +
 +==== Браузер ====
 +<code bash>
 +# Прописать опции (сначала удалить, чтобы была идемпотентность)
 +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
 +</code>
 +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
 +
 +=== Почистить кэш из командной строки ===
 +<code bash>
 +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
 +</code>
 +
 +=== Список принтеров ===
 +Chromium нормально не показывает два принтера в списке, он выдаёт один по умолчанию и пункт "Ещё...".\\
 +Его нужно нажать и выбрать второй принтер, чтобы он возник в списке.\\
 +В дальнейшем при открытии диалога печати в списке будут отображаться оба.
 +
 +==== Интерфейс ====
 +Настраивается через GUI.
 +<code>
 +Параметры -> Настройки 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)
 + Виджеты
 + Меню приложений
 + Настроить
 + Значок: Кнопка меню, что была загружена ранее
 +</code>
 +Сделать ярлыки на рабочем столе и в панели быстрого запуска.
 +
 +==== Принтеры ====
 +Настроить принтеры, отключить службу обнаружения, чтобы система не предлагала пользователю список в 100500 принтеров.
 +<code bash>
 +sed -i 's#^BrowseRemoteProtocols.*#BrowseRemoteProtocols none#' /etc/cups/cups-browsed.conf
 +# или
 +sudo systemctl stop cups-browsed
 +sudo systemctl disable cups-browsed
 +</code>
 +
 +Идиотизм в том, что после этого лишние принтеры в приложениях всё равно видны из-за сервиса avahi.\\
 +Нужно добавить интерфейс, откуда они берутся, в запрещённые.
 +<code bash>
 +# Выяснить имя нужного интерфейса (одна любая команда)
 +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
 +</code>
 +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 не видит принтеры, выполнить
 +<code bash>
 +sudo snap connect firefox:cups-control
 +</code>
 +
 +=== Migrate Linux Printer Configuration ===
 +<code bash>
 +# 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
 +</code>
 +https://www.cyberciti.biz/tips/linux-migrate-printer-configuration.html
 +==== Скринсейвер ====
 +Необязательно, но можно изменить заставку, чтобы комп не сильно напрягался, например, Attraction.\\
 +Либо, если у компа есть постоянный доступ в интернет, то можно сделать FontGlide и натравить настройку на корпоративный сайт (новости, анонсы, что-то о будущем), чтобы показывались красивые строки оттуда. Поменять ссылку можно в файле настроек: ''~/.xscreensaver''
 +
 +Ещё хорошие заставки: DecayScreen, FadePlot, FlipScreen3D, Flurry, GLSells, GLText, IFS, Pacman, Rocks, Wander.
 +
 +
 +===== Пользователи =====
 +Нужны 2 пользователя - с английским и русским интерфейсом.\\
 +Сначала копируем настройки из админского профиля в каталог шаблона
 +<code bash>
 +cp -r /home/admin/{.config,Desktop,.xscreensaver} /etc/skel
 +</code>
 +После копирования настроек все последующие пользователи будут брать их из шаблона.
 +<code bash>
 +# Посмотреть настройки по умолчанию
 +# useradd -D
 +# Завести пользователей (с созданием домашней папки, иначе не получится войти в систему)
 +useradd -m english
 +useradd -m russian
 +# Удалить пароль - вход будет просто по нажатию Enter
 +passwd -d english
 +passwd -d russian
 +</code>
 +
 +После создания пользователей надо зайти под ними в систему и проверить работоспособность.\\
 +Для english поставить локаль en_US и английскую стартовую страницу в браузере.
 +
 +==== Копирование профилей ====
 +Для восстановления. Идея в том, что после перезагрузки профиль пользователя полностью переустанавливается из копии.
 +<code bash>
 +# Сохранение (без копирования прав, чтобы пользователь не мог изменить файлы в шаблоне)
 +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
 +</code>
 +
 +===== Снятие и восстановление образа =====
 +Снимается образ с помощью Clonezilla.
 +
 +После восстановления на новой машине нужно:
 +  - Настроить сеть: поменять IP-адрес.
 +  - Изменить hostname: ''sudo hostnamectl set-hostname PC1234''
 +  - Сменить обои в профилях и шаблонах профилей (''.config/pcmanfm-qt/lxqt/settings.conf'') <code bash>for i in $(find /home /etc/profile_templates -name 'settings.conf' |grep pcmanfm)
 +do
 +  sed -i 's#_1600x900-.*#_1600x900-02.jpg#' $i
 +done
 +</code>
 +
 +===== Заметки =====
 +==== LXQt ====
 +Посмотреть список каталогов LXQt можно в About LXQt.
 +<code bash>
 +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
 +</code>
 +
 +# Выключить уведомление об обновлениях:
 +LXQt Session Settings -> Autostart -> upgNotifier\\
 +''/home/english/.config/autostart/upg-notifier-autostart.desktop''
 +<code>
 +[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
 +</code>
 +
 +==== Автологин ====
 +''sudo nano /etc/sddm.conf''
 +<code bash>
 +[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.
 +</code>
 +
 +==== Доверять иконкам на рабочем столе ====
 +:!: Из крона не работает, только из командной строки под конкретным пользователем и перезахода в систему.
 +<code bash>
 +# 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
 +</code>
 +
 +===== Статьи =====
 +Creating a kiosk with Linux: https://oofhours.com/2023/05/02/creating-a-kiosk-with-linux/\\
  

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki