J'essaie de créer une session personnalisée en créant un fichier custom.desktop dans le dossier /usr/share/xesessions
. Rappelez-vous qu'il ne s'agit pas d'une gnome
ou d'une autre session. J'ai créé ma propre application pour cette session, qui sont simples.
Contenu du fichier custom.desktop
[Desktop Entry]
Name=Internet Kiosk
Comment=This is an internet kiosk
Exec=google-chrome --kiosk
TryExec=
Icon=
Type=Application
Le navigateur Chrome démarre en mode kiosque mais ne capture pas la totalité de la zone d'écran. Certaines zones sont laissées en bas et à droite de l'écran.
Contenu du fichier custom.desktop
[Desktop Entry]
Name=Custom Kiosk
Comment=This is a custom kiosk
Exec=~/MyCustomPyGTKApp
TryExec=
Icon=
Type=Application
Mon application pyGTK personnalisée a window.fullScreen()
dans le code. Cela signifie qu'il devrait s'ouvrir en plein écran sans la fenêtre chrome (et cela se fait sous la session normale). Mais cela aussi laisse beaucoup d’espace autour.
Quelqu'un peut-il me dire ce qui se passe ici. Je pense que son problème avec les frontières, comme indiqué à la page http://www.instructables.com/id/Setting-Up-Ubuntu-as-a-Kiosk-Web-Appliance/?ALLSTEPS in Step 8
Si, par hasard, Google Chromium n'est pas étendu sur les bords avec le commutateur --kiosk activé, il existe une solution simple. Pour étirer Chromium, connectez-vous simplement en tant qu'utilisateur régulier et modifiez chromeKiosk.sh pour ne pas utiliser le commutateur --kiosk. Puis connectez-vous en tant qu'utilisateur restreint, cliquez sur la clé et choisissez les options. Ensuite, dans l’onglet Personal Stuff, sélectionnez Masquer la barre de titre du système et utilisez des bordures compactes. Fermez l’écran des options et étirez le chrome pour s’adapter au moniteur. Revenez ensuite dans la fenêtre des options et réglez-le sur Utiliser la barre de titre et les bordures du système. Une fois que cela est fait, déconnectez-vous de votre utilisateur restreint (vous devrez peut-être simplement redémarrer) et connectez-vous à votre utilisateur habituel. Editez chromeKiosk.sh afin d'inclure à nouveau le commutateur --kiosk et Chromium devrait être en plein écran la prochaine fois que vous vous connecterez à l'utilisateur restreint.
Si je devais utiliser une application personnalisée pyGTK
ou gtkmm
, comment devrais-je résoudre ce problème? window.fullScreen()
devrait occuper toute la surface de l'écran. Cela doit être fait par programme ou d'une autre manière qui peut évoluer. Je dois le déployer sur un grand nombre de machines situées dans différentes zones géographiques. Il est impossible de le faire manuellement sur chaque machine.
C’est un problème épineux. J’ai eu un problème similaire. Lorsque je n’avais qu’une interface basée sur ncurses sur un PC de suivi du temps, le problème était que, quand aucun gestionnaire de fenêtres n’était présent, les applications X Window normales se comportaient bizarrement. Voici ma proposition:
Sudo apt-get install ratpoison
dissocier c dissocier C-c dissocier exclam dissocier C-exclam dissocier période
[Entrée du bureau] Encodage = UTF-8 Nom = Mode Kiosque Commentaire = Mode Kiosque chrome Exec =/usr/share/xsessions/chromeKiosk.sh Type = Application
#!/bin/bash ratpoison & xscreensaver -nosplash & while true; do chrome-browser --kiosk http://google.com; dormir 5s; terminé
Travaillé pour moi avec Ubuntu 12.04 et chrome.
case1
Vous devez indiquer au chrome quelle est votre résolution d'écran en réécrivant son fichier de préférences (valeurs en bas et à droite). Le lien que vous avez posté comprend cette partie.
#!/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
(testé dans Ubuntu 12.04)
case2
Je dirais que vous devez en quelque sorte dire à votre application pyGTK quelles sont les valeurs inférieure et droite, respectivement, quelle est la résolution de l'écran. Ensuite, la commande plein écran doit permettre à votre application de couvrir tout l’écran, c’est-à-dire de ne pas laisser de bordures.
Edit: il semble que la méthode window.fullscreen () devrait en général le rendre vraiment plein écran. Donc, pas besoin de définir la résolution en premier. Plus d'informations ici, mais je suis sûr que vous connaissez déjà ceci: http://www.pygtk.org/docs/pygtk/class-gtkwindow.html#method-gtkwindow--fullscreen
Cas 1 dans mon cas, cela m'a aidé:
Sudo nano Sudo ~/.config/chrium/Par défaut/Préférences
J'ai changé les valeurs en fonction de la résolution de mon écran
"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}