web-dev-qa-db-ja.com

Ubuntu 14.04をキオスクにする方法

Ubuntu 14.04 LTSデスクトップをクリーンインストールしましたが、今ではフルスクリーンのWebブラウザーでキオスクに変換したいと考えています。

これは以前は10.04で行われ、完全に機能していましたが、ハードウェアの変更(グラフィック)のため、バージョン14.04の使用を余儀なくされています。

/usr/share/xsessionsにkiosk.desktopを作成し、kiosk.shをインストールしてfirefoxを起動するr-kioskというシェルスクリプトを作成しました。シェルスクリプトは実行可能です。 「キオスク」と呼ばれるユーザーは、自動ログイン(/etc/lightdm/lightdm.conf内)に設定されます。

しかし、今私は立ち往生しています。キオスクユーザーセッションの開始時にkiosk.shを実行したいです。

以前のバージョンでは、これはGUIツールの「ログイン画面設定」または/usr/share/lightdm/lightdm.conf.d/50-ubuntu.confで実行できました。

50-ubuntu.conf"user-session=kiosk"に変更しましたが、開始しません。 「ログイン画面設定」ツールが見つかりません。 14.04で別のユーティリティに置き換えられましたか?

kiosk.sh.desktop~/kiosk/.config/autostart worksに配置しますが、Firefoxがフルスクリーンモードで起動する前にgnome-desktopが表示されるため、ユーザーはデスクトップを操作できます。

ユーザーの自動ログイン後にFirefoxをフルスクリーンで起動するための正しい/最良の方法は何ですか?

ありがとう

トーマス

9
Thomas

私は個人的にすべてのlightdmXsessionを回避し、Firefoxを起動したばかりのXの独自のインスタンスを起動しました。悪夢のように聞こえますが、それは本当にシンプルなUpstartスクリプトです

start on (filesystem and stopped udevtrigger)
stop on runlevel [06]

console output
emits starting-x

respawn

exec Sudo -u thomas startx /etc/X11/Xsession /path/to/kiosk.sh --

明らかに、ユーザー名をこれを実行したいユーザーに変更しますが、それはほとんどそれです。これを/etc/init/x.confとして保存すると、Sudo start xができるようになり、離れてしまいます(起動時にロードされます)。 Firefoxがクラッシュした場合、新しいインスタンスでXをリロードします。

本格的なUbuntuのインストールがそこにある場合、最初にLightDMを無効にする必要があります:

Sudo stop lightdm
echo manual | Sudo tee /etc/init/lightdm.override

そして、あなたのFirefoxプロファイルは完全にあなた次第です。誰かがあなたのプロファイルを壊した場合、あなたはあなたのxサービスを再起動するだけで、クリーンコピーを再び使用するように、いくつかのプロファイル復元でスクリプトを作成したいかもしれません。ただのアイデア。

それ以来、 14.04とChromeを使用してキオスクをゼロから作成する についてのブログ記事を書きました。


ワイヤレス構成の問題については、これをできるだけ多くの一般ユーザーから遠ざけることをお勧めします。 TTYを使用して、かなり簡単に接続をセットアップできます。

Sudo nmcli dev wifi con <SSID> password <password>

これにより、システムへの接続が追加され、接続(および将来的には自動接続)されるはずですが、私はテストしていません。 Sudoも必要ないかもしれませんが、それはすべてメインユーザーが持つ特権に依存します。

ここでバックグラウンドで他のものをロードするよりも単純な利点は、一部の通行人がグラフィカルなネットワーク設定ダイアログにアクセスする可能性がないことです。オペレーターが指示に従うことができる必要があります。

処理できない場合は、かなりkiosk.shを簡単に変更して既存の接続を探し、zenityを尋ねることができます。 -前のnmcliコマンドに入力する質問:

if [[ $(nmcli con | wc -l) == 1 ]]; then
    SSID=$(zenity ...)
    PASS=$(zenity ...)
    nmcli dev wifi con $SSID password $PASS
fi

これは大まかなアイデアです。あなたはそれに取り組む必要があります。より優れたスタンドアロンのグラフィカルネットワークマネージャー構成アプリケーションがあるかもしれません。

7
Oli