wake-up-neo.net

Benutzerdefinierte Sitzung: Das Fenster erfasst standardmäßig nicht den gesamten Bildschirmbereich. 12.04

Ich versuche, eine benutzerdefinierte Sitzung zu erstellen, indem ich eine custom.desktop-Datei im Ordner /usr/share/xesessions erstelle. Denken Sie daran, dass dies keine gnome oder eine andere Sitzung ist. Ich habe für diese Sitzung eine eigene Anwendung erstellt, die einfach ist.

Fall 1

Chrome Browser

Inhalt der Datei custom.desktop

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

Problem

Der Chrome-Browser wird im Kioskmodus gestartet, erfasst jedoch nicht den gesamten Bildschirmbereich. Einige Bereiche befinden sich unten und rechts auf dem Bildschirm.


Fall 2

Benutzerdefinierte pyGTK-App (schnell)

Inhalt der Datei custom.desktop

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

Problem

Meine benutzerdefinierte pyGTK-App enthält window.fullScreen() im Code. Das bedeutet, dass es im Vollbildmodus ohne das Fenster chrome geöffnet werden sollte (und dies auch in der normalen Sitzung). Aber auch das lässt viel Platz um ihn herum.

Brauchen Sie Hilfe

Kann mir jemand sagen, was hier los ist. Ich denke, es ist ein Problem mit Rahmen, wie unter http://www.instructables.com/id/Setting-Up-Ubuntu-as-a-Kiosk-Web-Appliance/?ALLSTEPS in Step 8

Wenn Google Chromium bei aktiviertem Schalter --kiosk nicht zufällig bis an die Ränder gedehnt wird, gibt es eine einfache Lösung. Um Chromium zu erweitern, melden Sie sich einfach als normaler Benutzer an und bearbeiten Sie chromeKiosk.sh so, dass der --kiosk-Schalter nicht vorhanden ist. Melden Sie sich dann als eingeschränkter Benutzer an, klicken Sie auf den Schraubenschlüssel und wählen Sie Optionen aus. Wählen Sie dann auf der Registerkarte Persönliches die Option Systemtitelleiste ausblenden und verwenden Sie kompakte Rahmen. Schließen Sie den Optionsbildschirm und strecken Sie Chromium, um es an den Monitor anzupassen. Kehren Sie dann in das Optionsfenster zurück und setzen Sie es auf Titelleiste und Rahmen des Systems verwenden. Melden Sie sich anschließend von Ihrem eingeschränkten Benutzer ab (muss möglicherweise nur neu gestartet werden) und bei Ihrem regulären Benutzer. Bearbeiten Sie chromeKiosk.sh zurück, um den --kiosk-Schalter wieder einzuschließen, und Chromium sollte das nächste Mal, wenn Sie sich bei dem eingeschränkten Benutzer anmelden, im Vollbildmodus sein.

Wenn ich eine benutzerdefinierte pyGTK oder eine gtkmm App verwenden würde, wie soll ich dieses Problem umgehen? window.fullScreen() sollte den gesamten Bildschirmbereich einnehmen. Dies muss programmgesteuert oder auf eine andere skalierbare Weise erfolgen. Ich muss dies auf einer großen Anzahl von Maschinen einsetzen, die sich in verschiedenen geografischen Gebieten befinden. Manuelles Ausführen auf jeder Maschine ist nicht möglich.

11
Juzer Ali

Dies ist ein kniffliges Problem, ich hatte ein ähnliches Problem, als ich versuchte, nur eine ncurses-basierte Schnittstelle auf einem Zeiterfassungs-PC zu haben. Das Problem für mich war, dass normale X Window-Anwendungen sich seltsam verhalten, wenn kein Fenstermanager vorhanden ist. Hier ist mein Vorschlag:

  1. Installieren Sie den Ratpoison Window Manager
    Sudo apt-get install ratpoison 
    
  2. Lösen Sie die Bindung von Tastaturen, die ein Menü anzeigen oder die Ausführung von Terminals oder Befehlen ermöglichen, und geben Sie $ HOME/.ratpoisonrc das Home als Benutzer ein, der den Kiosk-Modus ausführen soll
     Unbind c 
     Unbind C-c 
     Unbind Exclam 
     Unbind C-Exclam 
     Unbind Period 
    
  3. Rufen Sie nicht direkt bei Google Chrome an, sondern fügen Sie ein Skript wie den von Ihnen erwähnten Link instructables ein
 [Desktop-Eintrag] 
 Kodierung = UTF-8 
 Name = Kiosk-Modus 
 Kommentar = Chrom-Kiosk-Modus 
 Exec =/usr/share/xsessions/chromeKiosk.sh 
 Typ = Anwendung 
  1. Schreiben Sie dies in das Skript (denken Sie daran, es ausführbar zu machen)
 #!/bin/bash 
 ratpoison & 
 xscreensaver -nosplash & 
 wahr; tun Chrom-Browser - Kiosk http://google.com; Schlaf 5s; getan

Arbeitete für mich mit Ubuntu 12.04 und Chrom.

6
Awi

case1

Sie müssen Chromium mitteilen, wie hoch Ihre Bildschirmauflösung ist, indem Sie die Voreinstellungsdatei ( untere und rechte Werte) neu schreiben. Der Link, den Sie gepostet haben, enthält diesen Teil.

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

(getestet in Ubuntu 12.04)

case2

Ich würde sagen, Sie müssen Ihrer pyGTK-App irgendwie mitteilen, wie hoch der untere und der rechte Wert bzw. wie hoch die Bildschirmauflösung ist. Dann sollte der Vollbild-Befehl dafür sorgen, dass Ihre App den gesamten Bildschirm abdeckt, d. H. Keine Ränder hinterlässt.

Bearbeiten: Es sieht so aus, als würde die window.fullscreen () -Methode im Allgemeinen den Vollbildmodus aktivieren. Es ist also nicht erforderlich, zuerst die Auflösung zu definieren. Weitere Informationen hier, aber ich bin sicher, dass Sie dies bereits wissen: http://www.pygtk.org/docs/pygtk/class-gtkwindow.html#method-gtkwindow--fullscreen

1
rosch

Fall 1 in meinem Fall hat mir geholfen:

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

Ich habe die Werte entsprechend meiner Bildschirmauflösung geändert

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

0