Пользовательская сессия: Окно не получает полноэкранную область по умолчанию. 12.04

Я пытаюсь создать пользовательскую сессию путем создания custom.desktop файла в /usr/share/xesessions папка. Помните, что это не a 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 не расширяется к краям с - переключатель киоска включил существует простая фиксация. Для протяжения Хрома просто входят в систему как обычный пользователь и редактируют chromeKiosk.sh, чтобы не иметь - переключатель киоска. Затем войдите в систему как ограниченный пользователь, нажмите ключ и выберите опции. Затем на вкладке Personal Stuff выбор Скрывает системную строку заголовка и использует компактные границы. Закройте экран опций и расширьте Хром для установки монитору. Затем возвратитесь в окно настроек и установите его для Использования системной строки заголовка и границ. После того, как это сделано, выйдите из своего ограниченного пользователя (возможно, нуждался бы только к перезагрузке), и войдите в своего обычного пользователя. Отредактируйте chromeKiosk.sh назад для включения - переключатель киоска снова и Хром должны быть полным экраном в следующий раз, когда Вы входите в ограниченного пользователя.

Если я должен был использовать пользовательское pyGTK или a gtkmm приложение, как я должен обойти эту проблему. window.fullScreen() должен занять полную экранную область. Это должно быть сделано программно или некоторым другим способом, который может масштабироваться. Я должен развернуть это на большом количестве машин, расположенных в различных географических районах. Выполнение его вручную на каждой машине не возможно.

11
задан 27 September 2012 в 19:50

3 ответа

Это - хитрое, у меня была подобная проблема при попытке иметь только ncurses базирующийся интерфейс на ПК программы учета рабочего времени, проблема для меня состояла в том, что, когда никакой менеджер окон не существует, нормальные приложения X Window ведут себя странно. Вот мое предложение:

  1. Менеджер окон крысиного яда установки
    sudo apt-get install ratpoison
    
  2. Развяжите клавиатуры, который показывает меню или позволяет Вам выполнять терминалы или команды, помещая это в $HOME/.ratpoisonrc домашнее существо пользователь, который выполнит режим киоска
    unbind c
    unbind C-c
    unbind exclam
    unbind C-exclam
    unbind period
    
  3. Вместо того, чтобы звонить непосредственно в Google Chrome, помещенный сценарий как ссылка instructable, Вы упомянули
[Desktop Entry]
Encoding=UTF-8
Name=Kiosk Mode
Comment=Chromium Kiosk Mode
Exec=/usr/share/xsessions/chromeKiosk.sh
Type=Application
  1. На сценарии, помещенном это (не забудьте делать это исполняемым файлом),
#!/bin/bash
ratpoison &
xscreensaver -nosplash &
while true; do chromium-browser --kiosk http://google.com; sleep 5s; done

Работавший для меня, с Ubuntu 12.04 и хромом.

6
ответ дан 21 October 2019 в 10:54

case1

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

#!/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)

case2

я сказал бы, что необходимо так или иначе сказать pyGTK приложение, каковы нижняя часть и правильные значения, соответственно каково разрешение экрана. Затем полноэкранная команда должна заставить Ваше приложение касаться всего экрана т.е. не покинуть любые границы.

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

1
ответ дан 21 October 2019 в 10:54

Случай 1 в моем случае это выручило меня:

sudo нано 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}

0
ответ дан 21 October 2019 в 10:54

Другие вопросы по тегам:

Похожие вопросы: