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

11

Ich versuche, eine benutzerdefinierte Sitzung zu erstellen, indem ich eine custom.desktop-Datei im /usr/share/xesessionsOrdner erstelle . Denken Sie daran, dass dies keine gnomeoder eine andere Sitzung ist. Ich habe meine eigene Anwendung für diese Sitzung 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 startet im Kioskmodus, erfasst jedoch nicht den gesamten Bildschirmbereich. Ein Bereich befindet sich links 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()den Code. Das heißt, es sollte im Vollbildmodus ohne Fensterchrom geöffnet werden (und dies unter der normalen Sitzung). Aber auch das lässt viel Platz um sich herum.

Brauchen Sie Hilfe

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

Wenn Google Chromium zufällig nicht aktiviert ist und der Schalter --kiosk aktiviert ist, 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 Schalter --kiosk nicht vorhanden ist. Melden Sie sich dann als eingeschränkter Benutzer an, klicken Sie auf den Schraubenschlüssel und wählen Sie Optionen. Wählen Sie dann auf der Registerkarte Persönliches Material die Titelleiste des Systems ausblenden und verwenden Sie kompakte Rahmen. Schließen Sie den Optionsbildschirm und dehnen Sie Chromium entsprechend dem Monitor. Gehen Sie dann zurück in das Optionsfenster und setzen Sie es auf Systemtitelleiste und Rahmen verwenden. Melden Sie sich danach von Ihrem eingeschränkten Benutzer ab (möglicherweise muss er nur neu gestartet werden) und melden Sie sich bei Ihrem regulären Benutzer an. Bearbeiten Sie chromeKiosk.sh zurück, um den Schalter --kiosk wieder einzuschließen, und Chromium sollte beim nächsten Anmelden beim eingeschränkten Benutzer im Vollbildmodus angezeigt werden.

Wie sollte ich dieses Problem umgehen, wenn ich eine benutzerdefinierte App pyGTKoder eine gtkmmApp verwenden würde? 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 in verschiedenen geografischen Gebieten bereitstellen. Es ist nicht möglich, dies manuell auf jeder Maschine zu tun.

Juzer Ali
quelle

Antworten:

6

Dies ist eine knifflige Angelegenheit. Ich hatte ein ähnliches Problem, als ich versuchte, nur eine ncurses-basierte Schnittstelle auf einem Time-Tracker-PC zu haben. Das Problem für mich war, dass sich normale X Window-Anwendungen 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 diese in $ HOME / .ratpoisonrc ein, wobei das Heim der Benutzer ist, der den Kioskmodus ausführt
    lösen c
    Cc lösen
    Ausschluss aufheben
    C-Ausschluss lösen
    Aufhebungszeitraum
    
  3. Anstatt direkt bei Google-Chrome anzurufen, fügen Sie ein Skript wie den von Ihnen erwähnten Link für Anweisungen ein
[Desktop-Eintrag]
Codierung = UTF-8
Name = Kioskmodus
Kommentar = Chromium Kiosk-Modus
Exec = / usr / share / xsessions / chromeKiosk.sh
Typ = Anwendung
  1. Fügen Sie dies in das Skript ein (denken Sie daran, es ausführbar zu machen).
#! / bin / bash
Rattengift &
xscreensaver -nosplash &
während wahr; Chrom-Browser - Kiosk http://google.com; Schlaf 5s; erledigt

Arbeitete für mich mit Ubuntu 12.04 und Chrom.

Awi
quelle
Sie haben auch eine sehr gute Idee. +1
Monica wieder einsetzen - ζ--
1

Fall 1

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, dass Sie Ihrer pyGTK-App irgendwie mitteilen müssen, wie hoch die unteren und rechten Werte bzw. die Bildschirmauflösung sind. Dann sollte der Vollbildbefehl Ihre App dazu bringen, den gesamten Bildschirm abzudecken, dh keine Grenzen zu lassen.

Bearbeiten: Es sieht so aus, als ob die window.fullscreen () -Methode es im Allgemeinen wirklich im Vollbildmodus machen sollte. Sie müssen also nicht zuerst die Auflösung 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

rosch
quelle
0

Fall 1 in meinem Fall hat mir das geholfen:

sudo nano sudo ~ / .config / chrium / Standard / Einstellungen

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}

gregor van mulders
quelle
Ich kann es nicht manuell ändern.
Juzer Ali