Sesja niestandardowa: Okno domyślnie nie przechwytuje pełnego ekranu. 12.04

11

Próbuję utworzyć sesję niestandardową, tworząc plik custom.desktop w /usr/share/xesessionsfolderze. Pamiętaj, że to nie jest żadna gnomeinna sesja. Dla tej sesji stworzyłem własną aplikację, która jest prosta.

Przypadek 1

Przeglądarka Chrome

Zawartość pliku custom.desktop

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

Kwestia

Przeglądarka Chrome uruchamia się w trybie kiosku, ale nie przechwytuje pełnego obszaru ekranu. Niektóre obszary są pozostawione u dołu i po prawej stronie ekranu.


Przypadek 2

Niestandardowa aplikacja pyGTK (szybko)

Zawartość pliku custom.desktop

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

Kwestia

Moja niestandardowa aplikacja pyGTK ma window.fullScreen()w kodzie. Oznacza to, że powinien on otwierać się na pełnym ekranie bez chrome okna (i robi to w normalnej sesji). Ale to także pozostawia wiele miejsca dookoła.

Potrzebuję pomocy

Czy ktoś może mi powiedzieć, co się tutaj dzieje. Myślę, że to jakiś problem z granicami, jak wskazano na stronie http://www.instructables.com/id/Setting-Up-Ubuntu-as-a-Kiosk-Web-Appliance/?ALLSTEPS w kroku 8

Jeśli przypadkiem, Google Chromium nie jest rozciągnięty do krawędzi przy włączonym przełączniku --kiosk, istnieje prosta poprawka. Aby rozciągnąć Chromium, zaloguj się jako zwykły użytkownik i edytuj chromeKiosk.sh, aby nie mieć przełącznika --kiosk. Następnie zaloguj się jako użytkownik z ograniczonym dostępem, kliknij klucz i wybierz opcje. Następnie na zakładce Osobiste rzeczy wybierz Ukryj systemowy pasek tytułu i użyj zwartych ramek. Zamknij ekran opcji i rozciągnij Chromium, aby dopasować go do monitora. Następnie wróć do okna opcji i ustaw opcję Użyj systemowego paska tytułu i ramek. Po wykonaniu tej czynności wyloguj się z ograniczonego użytkownika (może być konieczne ponowne uruchomienie) i zaloguj się do zwykłego użytkownika. Edytuj chromeKiosk.sh z powrotem, aby ponownie włączyć przełącznik --kiosk, a Chromium powinien być pełny ekran przy następnym logowaniu do użytkownika z ograniczonym dostępem.

Gdybym miał użyć niestandardowej pyGTKlub gtkmmaplikacji, jak powinienem obejść ten problem. window.fullScreen()powinien zajmować cały obszar ekranu. Należy to zrobić programowo lub w inny sposób, który można skalować. Muszę to wdrożyć na dużej liczbie maszyn znajdujących się w różnych obszarach geograficznych. Wykonanie tego ręcznie na każdym komputerze nie jest możliwe.

Juzer Ali
źródło

Odpowiedzi:

6

Jest to trudny problem, miałem podobny problem, kiedy próbowałem mieć tylko interfejs oparty na ncurses na komputerze z śledzeniem czasu, problem dla mnie polegał na tym, że gdy nie ma menedżera okien, normalne aplikacje X Window zachowują się dziwnie. Oto moja propozycja:

  1. Zainstaluj menedżera okien ratpoison
    sudo apt-get install ratpoison
    
  2. Odznacz klawisze, które pokazują menu lub pozwalają na uruchamianie terminali lub poleceń, umieszczając to w $ HOME / .ratpoisonrc dom będący użytkownikiem, który uruchomi tryb kiosku
    rozpiąć c
    unbind Cc
    unbind exclam
    rozpiąć C-wykrzyknik
    rozpiąć okres
    
  3. Zamiast dzwonić bezpośrednio do Google-Chrome, umieść skrypt, taki jak wspomniany link instruktażowy
[Wpis na pulpicie]
Kodowanie = UTF-8
Nazwa = Tryb kiosku
Komentarz = Tryb kiosku chromu
Exec = / usr / share / xsessions / chromeKiosk.sh
Typ = zastosowanie
  1. W skrypcie umieść to (pamiętaj, aby było wykonywalne)
#! / bin / bash
trutka na szczury &
xscreensaver -nosplash &
chociaż prawda; zrobić przeglądarkę chromową --kiosk http://google.com; spać 5s; Gotowe

Pracowałem dla mnie z Ubuntu 12.04 i chromem.

Awi
źródło
Masz również bardzo dobry pomysł. +1
nanofarad
1

przypadek 1

Musisz powiedzieć chromowi, jaka jest twoja rozdzielczość ekranu, przepisując plik preferencji ( dolne i prawe wartości). Link, który opublikowałeś, zawiera tę część.

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

(testowany w Ubuntu 12.04)

skrzynka 2

Powiedziałbym, że musisz w jakiś sposób powiedzieć aplikacji pyGTK, jakie są dolne i prawe wartości, odpowiednio, jaka jest rozdzielczość ekranu. Następnie polecenie pełnego ekranu powinno sprawić, że aplikacja obejmie cały ekran, tzn. Nie pozostawi żadnych granic.

Edycja: wygląda na to, że metoda window.fullscreen () powinna generalnie uczynić ją naprawdę pełnoekranową. Dlatego nie trzeba najpierw określać rozdzielczości. Więcej informacji tutaj, ale jestem pewien, że już to wiesz: http://www.pygtk.org/docs/pygtk/class-gtkwindow.html#method-gtkwindow--fullscreen

róż
źródło
0

Przypadek 1 w moim przypadku pomógł mi:

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

Zmieniłem wartości zgodnie z moją rozdzielczością ekranu

„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}

Gregor van Mulder
źródło
Nie mogę tego zmienić ręcznie.
Juzer Ali