Sesi kustom: Jendela tidak menangkap area layar penuh secara default. 12,04

11

Saya mencoba membuat sesi khusus dengan membuat file custom.desktop di /usr/share/xesessionsfolder. Ingat ini bukan gnomesesi lain. Saya telah membuat aplikasi saya sendiri untuk sesi ini, yang sederhana.

Kasus 1

Browser Chrome

Isi file custom.desktop

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

Isu

Browser Chrome dimulai dalam mode kios tetapi tidak menangkap area layar yang lengkap. Beberapa area tertinggal di bagian bawah dan kanan layar.


Kasus 2

Aplikasi pyGTK khusus (Cepat)

Isi file custom.desktop

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

Isu

Aplikasi pyGTK kustom saya ada window.fullScreen()dalam kode. Itu berarti harus terbuka di layar penuh tanpa krom jendela (dan itu tidak di bawah sesi normal). Tapi itu juga, menyisakan banyak ruang di sekitarnya.

Butuh bantuan

Adakah yang bisa memberi tahu saya apa yang terjadi di sini. Saya pikir ini beberapa masalah dengan perbatasan sebagaimana ditunjukkan di http://www.instructables.com/id/Setting-Up-Ubuntu-as-a-Kiosk-Web-Appliance/?ALLSTEPS pada Langkah 8

Jika kebetulan, Google Chromium tidak meregang ke tepian dengan sakelar --kiosk diaktifkan, ada perbaikan sederhana. Untuk meregangkan Chromium, masuklah sebagai pengguna biasa dan edit chromeKiosk.sh untuk tidak mengaktifkan --kiosk. Kemudian masuk sebagai pengguna terbatas, klik kunci pas dan pilih opsi. Kemudian pada tab Barang Pribadi pilih Sembunyikan bilah judul sistem dan gunakan batas ringkas. Tutup layar opsi dan rentangkan Chromium agar sesuai dengan monitor. Kemudian kembali ke jendela opsi dan mengaturnya untuk Menggunakan bilah judul dan batas sistem. Setelah ini selesai, logout dari pengguna terbatas Anda (mungkin perlu reboot) dan login ke pengguna biasa Anda. Edit chromeKiosk.sh kembali untuk memasukkan sakelar --kiosk lagi dan Chromium akan menjadi layar penuh saat berikutnya Anda masuk ke pengguna yang dibatasi.

Jika saya menggunakan kebiasaan pyGTKatau gtkmmaplikasi, bagaimana saya harus mengatasi masalah ini. window.fullScreen()harus menempati area layar lengkap. Ini harus dilakukan secara terprogram atau dalam beberapa cara lain yang dapat skala. Saya harus menggunakan ini pada sejumlah besar mesin yang berlokasi di wilayah geografis yang berbeda. Melakukannya secara manual di setiap mesin tidak dimungkinkan.

Juzer Ali
sumber

Jawaban:

6

Ini rumit, saya punya masalah yang sama, ketika mencoba untuk hanya memiliki antarmuka berbasis ncurses pada pc pelacak waktu, masalahnya bagi saya adalah ketika tidak ada window manager hadir, aplikasi X Window normal berperilaku aneh. Ini proposal saya:

  1. Instal window manager ratpoison
    sudo apt-get install ratpoison
    
  2. Lepaskan ikatan keyboard yang menampilkan menu atau memungkinkan Anda untuk mengeksekusi terminal atau perintah, dengan meletakkannya di $ HOME / .ratpoisonrc rumah menjadi pengguna yang akan menjalankan mode kios
    melepaskan ikatan c
    melepaskan ikatan Cc
    lepas ikatan seru
    lepaskan ikatan C-exclam
    periode tidak mengikat
    
  3. Alih-alih menelepon langsung ke google-chrome, letakkan skrip seperti tautan yang dapat diperintahkan yang Anda sebutkan
[Entri Desktop]
Pengkodean = UTF-8
Name = Mode Kios
Komentar = Mode Kios Chromium
Exec = / usr / share / xsessions / chromeKiosk.sh
Type = Aplikasi
  1. Pada skrip taruh ini (ingat untuk membuatnya bisa dieksekusi)
#! / bin / bash
racun tikus &
xscreensaver -nosplash &
sementara benar; lakukan chromium-browser --kiosk http://google.com; tidur 5s; selesai

Bekerja untuk saya, dengan Ubuntu 12,04 dan chromium.

Awi
sumber
Anda juga punya ide yang sangat bagus. +1
nanofarad
1

kasus 1

Anda perlu memberi tahu kromium tentang resolusi layar Anda dengan menulis ulang file preferensi (nilai bawah dan kanan ). Tautan yang Anda poskan termasuk bagian itu.

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

(diuji di Ubuntu 12.04)

case2

Saya akan mengatakan Anda harus entah bagaimana memberi tahu aplikasi pyGTK Anda apa nilai-nilai bawah dan kanan, masing-masing apa resolusi layarnya. Maka perintah layar penuh harus membuat aplikasi Anda mencakup semua layar yaitu tidak meninggalkan batas.

Sunting: sepertinya metode window.fullscreen () secara umum membuatnya benar-benar fullscreen. Jadi tidak perlu menentukan resolusi terlebih dahulu. Info lebih lanjut di sini, tapi saya yakin Anda sudah tahu ini: http://www.pygtk.org/docs/pygtk/class-gtkwindow.html#method-gtkwindow--fullscreen

Rosch
sumber
0

Kasus 1 dalam kasus saya ini membantu saya:

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

Saya mengubah nilai sesuai resolusi layar saya

"window_placement": {"bawah": 1024, "kiri": 0, "dimaksimalkan": benar, "kanan": 1280, "atas": 0, "work_area_bottom": 1024, "work_area_left": 0, "work_area_right" : 1280, "work_area_top": 0}

gregor van mulders
sumber
Saya tidak bisa mengubahnya secara manual.
Juzer Ali