Спеціальний сеанс: вікно за замовчуванням не охоплює повний екран. 12.04


11

Я намагаюся створити власну сесію, створивши файл custom.desktop у /usr/share/xesessionsпапці. Пам'ятайте, це не gnomeсесія чи інша. Я створив власну програму для цього сеансу, які прості.

Випадок 1

Браузер Chrome

Зміст файлу custom.desktop

[Desktop Entry]
Name=Internet Kiosk
Comment=This is an internet kiosk
Exec=google-chrome --kiosk
TryExec=
Icon=
Type=Application

Проблема

Браузер Chrome запускається в режимі кіоску, але не охоплює повну площу екрана. Деяка область зліва внизу та в правій частині екрана.


Випадок 2

Спеціальна програма pyGTK (швидко)

Зміст файлу custom.desktop

[Desktop Entry]
Name=Custom Kiosk
Comment=This is a custom kiosk
Exec=~/MyCustomPyGTKApp
TryExec=
Icon=
Type=Application

Проблема

У моєму користувальницькому додатку pyGTK є window.fullScreen()код. Це означає, що він повинен відкриватися на весь екран без хромованого вікна (і це відбувається під час звичайного сеансу). Але це теж залишає багато місця навколо нього.

Потрібна допомога

Хто-небудь може сказати мені, що тут відбувається. Я думаю, що це проблема з межами, як зазначено на http://www.instructables.com/id/Setting-Up-Ubuntu-as-a-Kiosk-Web-Appliance/?ALLSTEPS на кроці 8

Якщо випадково Google Chromium не розтягується до країв з увімкненим перемикачем --kiosk, є просте виправлення. Щоб розтягнути Chromium, просто увійдіть як звичайний користувач та відредагуйте chromeKiosk.sh, щоб не було комутатора --kiosk. Потім увійдіть як обмежений користувач, клацніть гайковий ключ та виберіть параметри. Потім на вкладці Особисті речі виберіть Сховати рядок заголовка системи та скористайтеся компактними рамками. Закрийте екран параметрів і розтягніть Chromium, щоб відповідати монітору. Потім поверніться у вікно параметрів та встановіть його на Використовувати рядок заголовка системи та межі системи. Після цього вийдіть із обмеженим користувачем (може знадобитися лише перезавантажити) та увійдіть до свого звичайного користувача. Відредагуйте chromeKiosk.sh назад, щоб знову включити перемикач --kiosk, і Chromium повинен бути на весь екран наступного разу, коли ви ввійдете до обмеженого користувача.

Якби я користувався користувачем pyGTKабо gtkmmдодатком, як мені вирішити цю проблему. window.fullScreen()повинна займати всю зону екрану. Це потрібно зробити програмно або іншим способом, який може мати масштаб. Мені доводиться розгортати це на великій кількості машин, розташованих у різних географічних районах. Робити це вручну на кожній машині неможливо.

Відповіді:


6

Це хитра проблема, у мене була схожа проблема, коли я намагався мати лише інтерфейс на основі ncurses на ПК відстежувача часу, проблема для мене полягала в тому, що коли немає віконного менеджера, звичайні програми X Window поводяться дивно. Ось моя пропозиція:

  1. Встановити менеджер вікон ratpoison
    sudo apt-get install ratpoison
    
  2. Від’єднайте клавіатури, що відображає меню або дозволяє виконувати термінали чи команди, вводячи це в $ HOME / .ratpoisonrc дома, коли він є користувачем, який запустить режим кіоску
    розв’язувати c
    відкрутити Cc
    розв'язати вигук
    розв'язати C-вигук
    період розв’язування
    
  3. Замість того, щоб дзвонити безпосередньо на google-chrome, поставте такий сценарій, як згадане вами посилання instructables
[Запис на робочому столі]
Кодування = UTF-8
Назва = Режим кіоску
Коментар = Режим кіоску Chromium
Exec = / usr / share / xsesions / chromeKiosk.sh
Тип = Додаток
  1. На сценарій поставте це (не забудьте зробити його виконуваним)
#! / бін / баш
щур &
xscreensaver -nosplash &
поки правда; зробити Chrome-браузер - кіоск http://google.com; сон 5с; зроблено

Працював для мене, з Ubuntu 12.04 та хромом.


Ви також маєте дуже гарну ідею. +1
нанофарад

1

випадок1

Вам потрібно повідомити хрому, якою є роздільна здатність екрана, переписавши файл налаштувань ( нижнє та право значення). Посилання, яке ви опублікували, включає цю частину.

#!/bin/bash

prefs=~/.config/chromium/Default/Preferences

cat $prefs |\
perl -pe "s/\"bottom.*/\"bottom\": $(xrandr | grep \* | cut -d' ' -f4 | cut -d'x' -f2),/" \
> $prefs

cat $prefs |\
perl -pe "s/\"right.*/\"right\": $(xrandr | grep \* | cut -d' ' -f4 | cut -d'x' -f1),/" \
> $prefs

chromium-browser

(випробувано в Ubuntu 12.04)

випадок2

Я б сказав, що ви повинні якось сказати вашому додатку pyGTK, що таке нижнє і праве значення, відповідно, яка роздільна здатність екрана. Тоді команда на повноекранному екрані повинна змусити ваш додаток охоплювати весь екран, тобто не залишати меж.

Редагувати: схоже, метод window.fullscreen () повинен зробити його справді повноекранним. Тому не потрібно спочатку визначати роздільну здатність. Більше інформації тут, але я впевнений, що ви вже знаєте це: http://www.pygtk.org/docs/pygtk/class-gtkwindow.html#method-gtkwindow--fullscreen


0

Випадок 1 у моєму випадку мені це допомогло:

sudo nano sudo ~ / .config / chrium / Default / Preferences

Я змінив значення відповідно до роздільної здатності екрана

"window_placement": {"знизу": 1024, "зліва": 0, "максимально": вірно, "право": 1280, "вгору": 0, "work_area_bottom": 1024, "work_area_left": 0, "work_area_right" : 1280, "work_area_top": 0}


Я не можу змінити це вручну.
Юзер Алі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.