首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从KDE等离子5锁屏挂起linux

从KDE等离子5锁屏挂起linux
EN

Unix & Linux用户
提问于 2018-05-05 17:36:34
回答 2查看 3K关注 0票数 11

如何从KDE LockScreen中挂起?

我使用的是KDE的默认锁定屏幕,您可以在某种程度上配置它

但是我还没有找到办法把我的电脑挂在锁屏上,所以我不得不输入我的密码,然后每次我需要的时候都挂起它,这是非常不方便的。

目前,我修改了KDE等离子锁屏文件(特别是LockScreenUi.qml),以添加挂起按钮。但也许这是一种更简单的方法?

也是的,我看到了reddit邮报和一些没有任何解决方案的kde论坛上的帖子。

我的配置:

代码语言:javascript
复制
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服务进行挂起(找到了这个使用注销文件)。

冒着自己的风险使用:

代码语言:javascript
复制
--- /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程序跟踪器上的特性已经有了一个报告(谢谢莱肯斯廷提供的链接)

EN

回答 2

Unix & Linux用户

发布于 2020-03-29 10:54:05

谢谢你的贴片,它很有魅力!

与处理物理电源键相同:

代码语言:javascript
复制
      Keys.onPressed: {
+            if (event.key == 16777399) performOperation("suspendToRam")

确认在kded5 5.67.0plasmashell 5.17.5 (Gentoo)上工作。

更新2020-06: kde刷新修补程序-血浆/等离子体-工作区-5.18.5

代码语言:javascript
复制
--- /usr/share/plasma/look-and-feel/org.kde.breeze.desktop/contents/lockscreen/LockScreenUi.qml.orig    2020-06-25 00:50:49.181771074 +0300
+++ /usr/share/plasma/look-and-feel/org.kde.breeze.desktop/contents/lockscreen/LockScreenUi.qml 2020-06-25 00:56:23.750323655 +0300
@@ -38,6 +38,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: {
@@ -125,6 +137,8 @@
             }
         }
         Keys.onPressed: {
+            if (event.key == 16908292) performOperation("suspendToRam")
+            if (event.key == 16777399) performOperation("suspendToRam")
             uiVisible = true;
             event.accepted = false;
         }
@@ -279,6 +293,11 @@
                         anchors{
                             verticalCenter: parent.top
                         }
+                    },
+                    ActionButton {
+                        text: i18nd("plasma_lookandfeel_org.kde.lookandfeel", "Suspend")
+                        iconSource: "system-suspend"
+                        onClicked: performOperation("suspendToRam")
                     }
                 ]
票数 5
EN

Unix & Linux用户

发布于 2019-09-29 11:46:01

非常感谢!效果很好。

我的笔记本电脑也有一个睡眠键,所以我又增加了一行:

代码语言:javascript
复制
      Keys.onPressed: {
+            if (event.key == 16908292) performOperation("suspendToRam")
            uiVisible = true;
            event.accepted = false;
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/441989

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档