GDMなしでGnome 3で画面をロックするにはどうすればよいですか?


50

ユーザーメニューに「ロック」オプションは表示されず、標準のショートカット(Ctrl+ LまたはCtrl+ Alt+ L)は何もしません。

Gnome Shell 3.8.3とXDM 1.1.11でFedora 19を実行しています。

GDMのXDMCPサポートが壊れているためXDMを使用していますが、Fedora 19にアップグレードする前に、XDMを使用していてもロックオプションがありました。

私は自分の研究の結果を反映した回答を投稿しました。基本的に、GDMを実行せずにGnome 3.8に画面ロックを統合することは不可能であると述べています。

しかし、より良い答えが利用できることを本当に願っています-したがって、私が見落としているこれを行う方法がある場合は、独自の答えを追加してください。


1
試してくださいCtrl + Alt + L。動作しますか?
m0nhawk

1
@ m0nhawkいいえ、それも機能しません。それを反映するために質問を更新しました。
jcsanyi

奇妙なことに、それは私のために動作します。そして、設定-キーボード-ショートカット-システムで何が設定されていLock screenますか?
m0nhawk

Gnome 3.8のGDMなしの@ m0nhawk?
jcsanyi

2
@ m0nhawkショートカットはCtrl + L-に設定されていますが、それは何もしません。
jcsanyi

回答:


38

いくつかの調査の後、私は自分の質問に対する答えを投稿するのに十分な情報を持っていると思います。

Gnome Shell 3.6以前では、古いgnome-screensaverプログラムが存在し、GDMが実行されていない場合はgnome-screensaver起動され、画面をロックできます。

Gnome Shell 3.8(Fedora 19に含まれる)以降、gnome-screensaverサポートは完全に削除されました。これは3つの理由で行われました。スクリーンセーバーが不要な機能と見なされるという事実とコードの複雑さの削減、そして最終的にWaylandへの移動にはスクリーンセーバー、ロックなどのサポートがコンポジターに必要になるという事実です。

したがって、画面をロックするGnome統合の唯一の方法は、GDMを実行することです。これは、画面をロックするよう指示するdbusメッセージに応答します。他のディスプレイマネージャ(XDMなど)は、このdbusメッセージに応答するように設計されていないため、画面をロックできません。


このリンクから:

古いバージョンのgnomeでは、コマンドgnome-screensaver-command -lは画面をロックします。gnome-screensaverはgnome 3.8ではもうないので、dbus呼び出しを送信する必要があります。これはGDMによって処理されると思います。

$ dbus-send --type=method_call --dest=org.gnome.ScreenSaver \
    /org/gnome/ScreenSaver org.gnome.ScreenSaver.Lock

2
@slimに感謝しますが、GDMを実行していない限り、編集したコマンドは実際には何も実行しません。質問への回答には役立ちません。
jcsanyi

2
もちろん、そのサイトがなくなった場合に備えて、リンクのコンテンツを引き続き表示したいと思います。
slm

@スリム良い点。内容を引用として編集しました。
jcsanyi


15

これはGnome 3.14で機能します。標準インストール、カスタマイズなし。

gnome-screensaver-command --lock

それは、あなたがそれを持っていないそうだとすれば、Gnomeの3.26.2にインストールする必要がありますsudo apt-get install gnome-screensaver
右脚

gdm最近の更新で壊れたために動作しませんでした(sddmに切り替える必要がありました...)
Per Lundberg

10

Gnome Shell(3.14)でxscreensaver(Debian上)を使用して画面ロックを有効にする方法:

(注:gnome-screensaverパッケージは現在Debian sidに存在しますが、使用可能ではないようです)

  1. xscreensaverパッケージをインストールします(オプションでxscreensaver-dataおよびxscreensaver-data-extra)
  2. 実行xscreensaverして、好きなようにスクリーンセーバーを設定します。「0分後に画面をロックする」を選択してください。
  3. GNOMEキーボード設定で、[ショートカット]タブを選択し、[カスタムショートカット]を選択します
  4. [+]ボタンをクリックし、名前およびxscreensaver-command -lコマンドとして必要なものを入力します。OKをクリックします。
  5. [無効]をクリックして、画面をロックするキーの組み合わせを入力します(私の場合はCtrl-Alt-Lです)。これが「システム」の下のGDM「ロック画面」ショートカットと競合しないことを確認してください。
  6. ロック可能な画面をお楽しみください。

警告:通知ポップアップはロックされた画面上に引き続き表示されます。これが問題になる場合は、LightDM Lock Screen拡張機能などの別のソリューションを見つける必要があります。


1
このオプションを提供してくれてありがとう。これがDebian JessieのGnome 3.14.1で私のために働いた唯一のものです
-sanimalp

この答えを書いてから、使用を伴う別のオプションを発見しましたmate-screensaver(本質的には古いGNOMEスクリーンセーバーと同じです)。これには、ここで説明するように、偽のセッションマネージャーを記述する必要があります)。
ジョエルクロス

4

私がdebian、ubuntu、およびrhel7でうまく使用した回避策は、gnomeセッションにログインすると自動的に開始される短いpythonスクリプトを作成することです。rhel7では、ロックするキーの組み合わせはsuper + lであることに注意してください。

次のように/etc/xdg/autostart/gscreenlock.pyを作成します。

#!/usr/bin/python

import dbus
import dbus.service
import dbus.glib
import gobject
import os

class ScreenDbusObj(dbus.service.Object):
    def __init__(self):
        session_bus = dbus.SessionBus()
        bus_name=dbus.service.BusName("org.gnome.ScreenSaver",bus=session_bus)
        dbus.service.Object.__init__(self,bus_name, '/org/gnome/ScreenSaver')

    @dbus.service.method("org.gnome.ScreenSaver")
    def Lock(self):
        os.system( "xscreensaver-command -lock" )


if __name__ == '__main__':
    object=ScreenDbusObj()
    gobject.MainLoop().run()

次に、実行可能にします。

chmod a+rx /etc/xdg/autostart/gscreenlock.py

/etc/xdg/autostart/gscreenlock.desktopを次のように編集します。

[Desktop Entry]
Type=Application
Encoding=UTF-8
Name=gscreenlock
TryExec=/etc/xdg/autostart/gscreenlock.py
Exec=/etc/xdg/autostart/gscreenlock.py
NoDisplay=true
NotShowIn=XFCE;KDE;
Comment=Allows screen locking in gnome

2

画面ロックはgnome-screensaverGNOME 3.8まで処理されていました。アプリケーションはGNOMEチームによって廃止され、その機能はgnome-shell、gnome-session、およびGDMに分割されました。

物事をうまく機能させたいだけなら、を使ってうまくいくかもしれませんxscreensaver


2

@jcsanyiは、それがどのように機能するかの背景説明を行いました。

さまざまな理由でGDM3を使用できず(たとえば、このバグ)、LigthDMに切り替えたユーザーには、画面をロックするために使用できるコマンドがあります(他のDMでも機能する可能性があります。チェック済み):

dm-toolロック

より便利にするために settings -> Keyboard -> Scroll to the bottom -> Click "+" button -> Create new custom shortcut using the command above、このようにします。

ここに画像の説明を入力してください

Super+L組み合わせを使用するには、おそらく既存のシステムLock screenショートカットを他の組み合わせに再割り当てする必要があります。


これはFedora 30 Gnome 3.32.2で機能しました。しかし、FedoraにはGDMの代わりにデフォルトの実行ディスプレイマネージャーとしてlightdmがあり、デフォルトのロック画面ショートカットSuper+Lはどのプログラムに送られますか?
イワンファン

2

この回答はFedora 30 GNOME 3.32.2に基づいています

Linuxデスクトップの場合、通常、画面をロックするためのデフォルトのショートカットキーはSuper-LまたはCtrl-Alt-Lです。ただし、動作しない場合があり、画面をロックする方法を見つけることができません。これは、マシンが現在実行しているディスプレイマネージャーと関係があります。を実行して確認でき$ systemctl status display-managerます。gdmこのショートカットがGDM-GNOME Display Managerによって処理されるため、表示される場合、デフォルトのショートカットが機能するはずです。以下のようなディスプレイマネージャの他の種類がありlightdmsddmlxdmkdm、とはxdm。いずれかを実行している場合、デフォルトのショートカットは機能しない場合があります。ただし、実行することでいつでもロックを試みることができ$ dm-tool lock、それが機能する場合は、このコマンドのカスタムショートカットを追加できます。あなたはから、例えば、別のディスプレイマネージャに切り替えたいことlightdmgdm、もしそうなら以下を行います:

$ dnf install gdm
$ systemctl disable lightdm
$ systemctl enable gdm
$ reboot

0

デフォルトのショートカットはShift+Ctrl+Alt+Lockです。

これを見つけて、「キーボード」アプリの「ショートカット」タブを使用して編集できます。


コメントを参照してください。「ショートカットはCtrl + Lに設定されています-しかし、それは何もしません。」
sourcejedi

GDMの代わりにXDMを使用している場合でも、FedoraバージョンXでこれが再び機能し始めたという答えであれば、Fedoraのバージョンを指定する必要があります:)。こんにちは、StackExchangeへようこそ。
sourcejedi

0

Debian BusterでGNOME Shellバージョン3.30とLightdmを使用して動作する回避策を見つけました。これが何かを壊すかどうかはわかりませんが、異常なことに気づいていません。

  1. パッケージをインストールする cinnamon-screensaver
  2. /usr/bin/cinnamon-screensaverスタートアップアプリケーションに追加する
  3. コマンドのキーボードショートカットを作成します。 cinnamon-screensaver-command -l
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.