web-dev-qa-db-ja.com

KDEプラズマ5ロック画面からLinuxを一時停止します

TLDR:KDE LockScreenから一時停止する方法?

私はKDEのデフォルトのロック画面を使用していますが、これはある程度設定できます Kde lockscreen config しかし、ロック画面からPCを一時停止する方法が見つからなかったため、パスワードを入力し、必要になるたびに一時停止する必要があり、非常に不便でした。

現在、KDEプラズマロック画面ファイル(特にLockScreenUi.qml)を変更して、一時停止ボタンを追加しています。しかし、おそらくこれを行うためのより簡単な方法ですか?

また、はい、私は redditの投稿 とkdeフォーラムのいくつかの投稿を解決策なしで見ました。

私の設定:

uname -a
Linux neko 4.15.14-1-Arch #1 SMP PREEMPT Wed Mar 28 17:34:29 UTC 2018 x86_64 GNU/Linux

kded5 --version
kded5 5.45.0

plasmashell --version
plasmashell 5.12.5

パッチ自体は、基本的にデフォルトアイコン付きの一時停止ボタンを追加し、PowerDevil KDEサービスを使用して一時停止します(この使用法のログアウトファイルが見つかりました)

使用ATあなた自身のリスク:

--- /usr/share/plasma/look-and-feel/org.kde.breeze.desktop/contents/lockscreen/LockScreenUi.qml 2018-05-01 16:03:40.000000000 +0300
+++ backups/kde-plasma-lockscreen/LockScreenUi.qml  2018-05-05 19:56:59.764353585 +0300
@@ -31,6 +31,18 @@

     colorGroup: PlasmaCore.Theme.ComplementaryColorGroup

+    function performOperation(what) {
+        var service = dataEngine.serviceForSource("PowerDevil");
+        var operation = service.operationDescription(what);
+        service.startOperationCall(operation);
+    }
+
+    PlasmaCore.DataSource {
+      id: dataEngine
+      engine: "powermanagement"
+      connectedSources: ["PowerDevil"]
+    }
+
     Connections {
         target: authenticator
         onFailed: {
@@ -174,6 +186,11 @@
                         onClicked: mainStack.Push(switchSessionPage)
                         // the current session isn't listed in the model, hence a check for greater than zero, not one
                         visible: (sessionsModel.count > 0 || sessionsModel.canStartNewSession) && sessionsModel.canSwitchUser
+                    },
+                    ActionButton {
+                      text: i18nd("plasma_lookandfeel_org.kde.lookandfeel", "Suspend")
+                      iconSource: "system-suspend"
+                      onClicked: performOperation("suspendToRam")
                     }
                 ]

EDIT1:

KDEバグトラッカー に関する機能のレポートはすでにあります(リンクをありがとう Lekensteyn

3
lundibundi

パッチのおかげで、それは魅力のように機能します!

物理的な電源キーを処理する場合も同じです。

      Keys.onPressed: {
+            if (event.key == 16777399) performOperation("suspendToRam")

kded5 5.67.0およびplasmashell 5.17.5(Gentoo)で動作することが確認されました。

1
Anatol Rosch

どうもありがとうございました!うまく機能します。

私のラップトップにもスリープキーがあるので、もう1行追加しました。

      Keys.onPressed: {
+            if (event.key == 16908292) performOperation("suspendToRam")
            uiVisible = true;
            event.accepted = false;
0
Gábor