Киоск: различия между версиями

Материал из ALT Linux Wiki
(→‎Примеры: Расширил скрипт webkiosk для KDE)
Строка 50: Строка 50:
   #!/bin/bash
   #!/bin/bash
   kwin_x11 --replace &
   kwin_x11 --replace &
   PREFERENCES=~/.config/chromium/Default/Preferences
   PREFERENCES=~/.config/chromium/Default/Preferences
   RESOLUTION=$(xdpyinfo | grep -Po "(?<=dimensions:)\s*([0-9]{1,}x[0-9]{1,})" | sed "s: ::g")
   RESOLUTION=$(xdpyinfo | grep -Po "(?<=dimensions:)\s*([0-9]{1,}x[0-9]{1,})" | sed "s: ::g")
Строка 56: Строка 55:
   HEIGHT=$(echo $RESOLUTION | cut -d'x' -f2)
   HEIGHT=$(echo $RESOLUTION | cut -d'x' -f2)
   printf -v WINDOW_PLACEMENT '.browser.window_placement |= {bottom: %s, right: %s, top: 0, left: 0, maximized: true}' $WIDTH $$
   printf -v WINDOW_PLACEMENT '.browser.window_placement |= {bottom: %s, right: %s, top: 0, left: 0, maximized: true}' $WIDTH $$
   jq "$WINDOW_PLACEMENT" $PREFERENCES > tmp.json && mv tmp.json $PREFERENCES
   jq "$WINDOW_PLACEMENT" $PREFERENCES > tmp.json && mv tmp.json $PREFERENCES
   chromium-gost --window-size=$WIDTH,$HEIGHT --start-maximized --no-default-browser-check --kiosk https://basealt.ru
   chromium-gost --window-size=$WIDTH,$HEIGHT --start-maximized --no-default-browser-check --kiosk https://basealt.ru



Версия от 22:47, 6 апреля 2021

Описание

Режим «киоск» служит для ограничения прав пользователей в системе.

Профиль киоска – файл .desktop (обычно из /usr/share/applications), размещаемый в каталог /etc/kiosk. Задать профиль киоска для пользователя можно в модуль ЦУС «Локальные учетные записи» alterator-users (только GUI).

В качестве примера рассмотрим настройку режима «киоск» для пользователя kiosk. Пользователю kiosk будет разрешено использовать только веб-браузер firefox.

Для настройки режима киоска для пользователя, необходимо выполнить следующие действия:

  1. Создать каталог /etc/kiosk (если он еще не создан):
    # mkdir /etc/kiosk
    
  2. Скопировать файл firefox.desktop из /usr/share/applications, в каталог /etc/kiosk:
    # cp /usr/share/applications/firefox.desktop /etc/kiosk/
    
  3. Если необходимо чтобы при запуске веб-браузера открывалась определенная страница, необходимо внести изменения в файл /etc/kiosk/firefox.desktop:
    # vim /etc/kiosk/firefox.desktop
    [Desktop Entry]
    Exec=firefox http://<адрес_сайта>
    
  4. Запустить ЦУС и в модуле «Локальные учетные записи», выбрав учетную запись kiosk (если учетной записи не существует, необходимо ее создать), в выпадающем списке «Режим киоска» выбрать пункт «Веб-браузер (firefox.desktop)» и нажать кнопку «Применить»:
    Режим «киоск» для пользователя kiosk
  5. Завершить сеанс текущего пользователя и войти в систему используя учетную запись пользователя kiosk. Пользователю kiosk будет доступен только веб-браузер firefox, по умолчанию будет загружена страница, адрес которой указан в параметре Exec в файле /etc/kiosk/firefox.desktop.

Так можно запускать любое приложение.

Примечание: Приложение в режиме киоска будет запускаться не на полном экране, поэтому используйте параметры запуска приложения в режиме киоска (например, chromium --kiosk) или разверните окно иными способами.

Примеры

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

WEB-киоск

Файл /etc/kiosk/webkiosk.desktop:

#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Exec=/usr/local/bin/webkiosk
Name=WEB-kiosk
Icon=start

Файл /usr/local/bin/webkiosk (его необходимо сделать исполняемым: chmod +x /usr/local/bin/webkiosk):

  Конфигурация для Mate
  #!/bin/bash
  marco --replace &
  chromium --kiosk --incognito https://ya.ru
  Конфигурация в KDE для запуска браузера на полный экран при любом разрешении
  Предварительно устанавливаем jq
  # apt-get update && apt-get install jq
  
  Затем файл /usr/local/bin/webkiosk заполняем следующим содержимым
  #!/bin/bash
  kwin_x11 --replace &
  PREFERENCES=~/.config/chromium/Default/Preferences
  RESOLUTION=$(xdpyinfo | grep -Po "(?<=dimensions:)\s*([0-9]{1,}x[0-9]{1,})" | sed "s: ::g")
  WIDTH=$(echo $RESOLUTION | cut -d'x' -f1)
  HEIGHT=$(echo $RESOLUTION | cut -d'x' -f2)
  printf -v WINDOW_PLACEMENT '.browser.window_placement |= {bottom: %s, right: %s, top: 0, left: 0, maximized: true}' $WIDTH $$
  jq "$WINDOW_PLACEMENT" $PREFERENCES > tmp.json && mv tmp.json $PREFERENCES
  chromium-gost --window-size=$WIDTH,$HEIGHT --start-maximized --no-default-browser-check --kiosk https://basealt.ru

RDP-киоск

Файл /etc/kiosk/rdpkiosk.desktop:

#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Exec=/usr/local/bin/rdpkiosk
Name=RDP-kiosk
Icon=start

Файл /usr/local/bin/rdpkiosk:

#!/bin/bash
marco --replace &
xfreerdp /v:192.168.0.250 /t:'TS' /f +clipboard /drives /bpp:32 /gdi:sw /cert-ignore +auto-reconnect -sec-nla
/sbin/poweroff #позволит выключать ПК при выходе из терминального сеанса