web-dev-qa-db-ja.com

カスタムセッション:デフォルトでは、ウィンドウは全画面領域をキャプチャしません。 12.04

/usr/share/xesessionsフォルダーにcustom.desktopファイルを作成して、カスタムセッションを作成しようとしています。これはgnomeやその他のセッションではないことに注意してください。このセッション用に独自のアプリケーションを作成しましたが、これは簡単です。

事例1

Chromeブラウザ

Custom.desktopファイルの内容

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

問題

Chromeブラウザはキオスクモードで起動しますが、画面領域全体をキャプチャしません。一部の領域は画面の下部と右側に残っています。


事例2

カスタムpyGTKアプリ(すばやく)

Custom.desktopファイルの内容

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

問題

私のカスタムpyGTKアプリのコードにはwindow.fullScreen()があります。つまり、ウィンドウchromeなしでフルスクリーンで開く必要があります(通常のセッションでは開きます)。しかし、それもまた、周囲に多くのスペースを残します。

助けが必要

誰でもここで何が起こっているのか教えてもらえますか。 http://www.instructables.com/id/Setting-Up-Ubuntu-as-a-Kiosk-Web-Appliance/?ALLSTEPS で指摘されているように、ボーダーの問題があると思います8

偶然、Google Chromiumが--kioskスイッチが有効になっている状態で端まで伸びていない場合、簡単な修正があります。 Chromiumを拡張するには、通常のユーザーとしてログインし、chromeKiosk.shを編集して--kioskスイッチを使用しないようにします。次に、制限付きユーザーとしてログインし、レンチをクリックしてオプションを選択します。次に、[個人設定]タブで[システムタイトルバーを非表示にする]を選択し、コンパクトな境界線を使用します。オプション画面を閉じ、Chromiumを伸ばしてモニターに合わせます。次に、オプションウィンドウに戻り、[システムのタイトルバーと境界線を使用する]に設定します。これが完了したら、制限されたユーザーからログアウトし(再起動する必要がある場合があります)、通常のユーザーにログインします。再びchromeKiosk.shを編集して--kioskスイッチを含めると、次回制限ユーザーにログインしたときにChromiumがフルスクリーンになります。

カスタムpyGTKまたはgtkmmアプリを使用する場合、この問題を回避するにはどうすればよいですか。 window.fullScreen()は画面領域全体を占める必要があります。これは、プログラムで、またはスケーリング可能な他の方法で実行する必要があります。これを地理的に異なる地域にある多数のマシンに展開する必要があります。すべてのマシンで手動で実行することはできません。

11
Juzer Ali

これはトリッキーなものです。タイムトラッカーpcでncursesベースのインターフェイスのみを使用しようとすると、同様の問題が発生しました。ウィンドウマネージャーが存在しない場合、通常のX Windowアプリケーションは奇妙に動作します。私の提案は次のとおりです。

  1. Ratpoisonウィンドウマネージャーをインストールします
    Sudo apt-get install ratpoison 
    
  2. メニューを表示したり、ターミナルやコマンドを実行したりできるキーボードのバインドを解除し、これを$ HOME/.ratpoisonrcに設定します。ホームは、キオスクモードを実行するユーザーです
    アンバインドc 
    アンバインドC-c 
    アンバインドエクスクラム
    アンバインドC-エクスクラム
    アンバインド期間
    
  3. Google-chromeを直接呼び出すのではなく、説明したインストラクタブルのリンクのようなスクリプトを追加します
 [デスクトップエントリ] 
エンコーディング= UTF-8 
名前=キオスクモード
コメント=クロムキオスクモード
 Exec =/usr/share/xsessions/chromeKiosk.sh 
 Type = Application 
  1. スクリプトにこれを置きます(実行可能にすることを忘れないでください)
#!/ bin/bash 
 ratpoison&
 xscreensaver -nosplash&
 while true;クロムブラウザ--kiosk http://google.com;睡眠5秒;完了

Ubuntu 12.04とクロムで、私のために働いた。

6
Awi

case1

環境設定ファイル(bottomおよびrightの値)を書き換えて、Cromeに画面の解像度を伝える必要があります。投稿したリンクにはその部分が含まれています。

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

(Ubuntu 12.04でテスト済み)

case2

どういうわけか、pyGTKアプリに、画面の解像度とは何であるか、下の値と正しい値を伝える必要があります。次に、fullscreenコマンドを使用して、アプリが画面全体をカバーするようにします。つまり、境界線を残さないようにします。

編集:それは、window.fullscreen()メソッドが一般的にそれを本当にフルスクリーンにするように見えます。したがって、最初に解像度を定義する必要はありません。詳細はこちらですが、すでにこれを知っているはずです: http://www.pygtk.org/docs/pygtk/class-gtkwindow.html#method-gtkwindow--fullscreen

1
rosch

私の場合のケース1はこれが私を助けてくれました:

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

画面解像度に応じて値を変更しました

"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