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


11

/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()にはコードが含まれています。つまり、ウィンドウクロムなしでフルスクリーンで開く必要があります(通常のセッションでは開きます)。しかし、それもまた、周囲に多くのスペースを残しています。

助けが必要

誰もがここで何が起こっているのか教えてもらえますか。私はそのいくつかの問題がで尖ったアウトなど国境を考える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()画面領域全体を占める必要があります。これは、プログラムで、またはスケーリング可能な他の方法で実行する必要があります。これを地理的に異なる地域にある多数のマシンに展開する必要があります。すべてのマシンで手動で実行することはできません。

回答:


6

これはトリッキーなものです。タイムトラッカーpcでncursesベースのインターフェイスのみを使用しようとすると、同様の問題が発生しました。私の提案は次のとおりです。

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

Ubuntu 12.04とクロムを使用して、私のために働きました。


あなたも非常に良い考えを持っています。+1
モニカの復活-ζ--

1

case1

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

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


0

私の場合のケース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}


手動で変更することはできません。
ユザーアリ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.