web-dev-qa-db-ja.com

スクリーンセーバーからUbuntuのログイン画面に直接ウェイクアップする方法

(a.k.a。パスワードを入力せずにユーザーを切り替える方法、パートII)( パートIを参照

妻用と自分用のユーザーアカウントを持つUbuntu9.10を持っています。 「Wake-from-screensaver」の結果、パスワードを入力しなくても「ユーザーを選択」する必要があります。私はWindowsでそれを行う方法を知っていますが、Linuxは(まだ)得意ではありません。

この一部は 私の以前の質問 で回答されました。これは、パスワードなしでログイン画面を通過するのに役立ちました(起動後、「ユーザーの切り替え」を選択した後)が、スクリーンセーバーが起動してウェイクアップするとこの場合も、システムは「ユーザーの選択」画面を表示しません。代わりに、スクリーンセーバーをオフにして最新のユーザーのデスクトップを表示するか、(スクリーンセーバーが画面をロックするように設定されている場合)ユーザーのパスワードの入力を求めます([ユーザーの切り替え]ボタンをクリックして簡単に超えることができます。同じユーザーを再度選択する)。

そのため、ログイン(「ユーザーの選択」)画面が処理されました。 (任意の)スクリーンセーバーを現在のユーザーのデスクトップではなく、スリープ解除時にログイン画面に戻すにはどうすればよいですか?Windowsはこれを実行できます、私は ' Linuxもできると確信していますが、どうすればよいでしょうか。

あなたは奇妙な微調整の習慣を作っていますね?

とにかく、これは奇妙ですが、面白いです。完全な解決策がないと言って申し訳ありませんが、回答が必要な興味深い項目がいくつか見つかりました。彼らはあなたにここからどこへ行くべきかについてのいくつかの考えを与えるかもしれません。

  • Gnome-スクリーンセーバーのFAQ は、セッションのアイドル状態が変化したときにスクリーンセーバーがDBusシグナルを発することを示しています。

    スクリーンセーバーがアクティブまたは非アクティブになったときにアクションを実行する方法はありますか?または、セッションがアイドル状態になったときですか?

    1つの方法は、gnome-screensaverからのD-Bus信号を監視することです。 (...)

    FAQは例dbus-monitorコマンドを提供します:

    dbus-monitor --session "type='signal',interface='org.gnome.ScreenSaver',member='SessionIdleChanged'"
    

    interfacememberの詳細はUbuntu9.10では古くなっていると思いますが;適切な値はinterface = org.freedesktop.ConsoleKit.Sessionおよびのようですmember = IdleHintChanged。 ( ConsoleKitドキュメント を参照してください。)

    スクリーンセーバーロックが有効になっている場合、IdleHintChangedシグナルが発行されますafterパスワードがロック解除ダイアログに正常に入力されました。

  • コマンドgdmflexiserver -xnestをコマンドラインから使用して、ログイン画面に戻ることができます。 Xセッション内で単独で機能しますが、dbus-launchを使用して、たとえばSSHセッションから実行できます。

    DISPLAY=:0 dbus-launch gdmflexiserver -xnest
    

    これにより、「ユーザーの切り替え...」メニューオプションと同じように、現在のユーザーセッションをログアウトせずに、GDMログイン画面が「アクティブ化」されます。少なくとも私が知る限り)。

秘訣は、これら2つを接着する方法を見つけることです。あなたがやりたいことは基本的に次のように思えます。

  1. スクリーンセーバーのロックを無効にします。
  2. すべてのセッションでIdleHintChangedシグナルをリッスンするリスナーをDBusに登録します。
  3. 信号を検出したら、リスナーにgdmflexiserverコマンドを実行させます。

パスワードプロンプトが表示されないようにするには、手順1が必要です。手順2が正しく機能し、手順3が開始されると、システムがスクリーンセーバーから出たときにいつでもログインウィンドウが表示されます。しかし、ステップ2は、私がどのように行うべきかわからないことです。

2
quack quixote

この質問は何年も前のものであることを理解していますが、一部のユーザーはまだこれを検索している可能性があります。

起動時に画面をロックするよりもUbuntuログイン画面を好む場合があります(たとえば、暗号化された家の壁紙さえ表示しない)。これはUbuntu 12.10および13.04で可能です(以前のバージョンについてはわかりません)。

したがって、これを行うには、Dconf Editor(Ubuntu 12.10+にプリインストールされています)を開き、次の場所に移動します。

org> gnome> desktop> screensaver

コマンドを入力しますdbus-launch gdmflexiserver -xnest変数embedded-keyboard-commandの場合。次に、同じスキーマについてembedded-keyboard-enabledを確認します。

1
AliN

ここで私自身の答えを提供する必要があります。それは、私が求めているものに対する(簡単な)解決策が明らかにないということです。

解決策潜在的にが存在しますが、それは完全ではなく、Linuxの深い理解が必要です-最初の回答に見られるように。ですから、それは私が「その」答えとして受け入れることについて正しいと感じる、すぐに使える答えではありません。

質問:

(任意の)スクリーンセーバーを、現在のユーザーのデスクトップではなく、スリープ解除時にログイン画面に戻すにはどうすればよいですか?

回答:できません。