Пользовательский сеанс: Окно не захватывает всю область экрана по умолчанию. 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()код. Это означает, что он должен открываться в полноэкранном режиме без окна Chrome (и это происходит при обычной сессии). Но это тоже оставляет много места вокруг.

Нужна помощь

Может кто-нибудь сказать мне, что здесь происходит. Я думаю, что некоторые проблемы с границами, как указано на 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 установить ratpoison
    
  2. Отключите клавиатуры, которые показывают меню или позволяют вам выполнять терминалы или команды, поместив это в $ HOME / .ratpoisonrc, где пользователь будет работать в режиме киоска.
    убрать с
    убрать Cc
    уберите восклицание
    убрать C-exclam
    период отмены
    
  3. Вместо того, чтобы напрямую звонить в google-chrome, поместите скрипт, как ссылка на Instructables, которую вы упомянули
[Desktop Entry]
Кодирование = UTF-8
Название = Режим киоска
Комментарий = Режим киоска Chromium
Exec = / USR / доли / xsessions / chromeKiosk.sh
Type = Application
  1. На сценарии поставить это (не забудьте сделать его исполняемым)
#! / Bin / Баш
крысиный яд &
xscreensaver -nosplash &
пока правда; сделать браузер chromium --kiosk http://google.com; сон 5с; сделано

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

Awi
источник
У вас также есть очень хорошая идея. +1
нанофарад
1

Дело 1

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

#!/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, каковы нижние и правильные значения, соответственно, каково разрешение экрана. Тогда команда fullscreen должна заставить ваше приложение покрывать весь экран, то есть не оставлять никаких границ.

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

Rosch
источник
0

Случай 1 в моем случае это помогло мне:

sudo nano sudo ~ / .config / chrium / По умолчанию / Настройки

Я изменил значения в соответствии с моим разрешением экрана

"window_placement": {"bottom": 1024, "left": 0, "maximized": true, "right": 1280, "top": 0, "work_area_bottom": 1024, "work_area_left": 0, "work_area_right" : 1280, "work_area_top": 0}

Грегор ван Малдерс
источник
Я не могу изменить это вручную.
Джузер Али