标签: kde-plasma

登录 slack-desktop 无法在 4.23.0 64 位 (Ubuntu) 上运行

在应用程序中,转到“文件”>“工作区”>“登录新工作区”会启动一个浏览器窗口。在浏览器中选择工作区后,它会启动一个返回到 slack 的深层链接,但它不起作用。Slack 桌面上没有任何反应。

当检查链接过程中运行的命令时,KDE 似乎正在修改链接。我该怎么做才能解决这个问题?

linux authentication slack kde-plasma

95
推荐指数
6
解决办法
3万
查看次数

如何在 KDE 上强制/开始使用 Java 中的 GTKLookAndFeel?

首先,使用 gnome 不是一个选项(但可以安装它的库)。

我需要知道使用当前安装的 KDE 外观和 KDE 感觉来显示 Java Swing 桌面应用程序需要什么。理想情况下,该解决方案应该允许我应用看起来像底层窗口系统的外观和感觉(即:用于 Windows 的 Windows LNF、用于 Gnome (GTK) 的 GTK LNF、用于 KDE (QT) 的 QT LNF、其他平台的默认系统)。

在 KDE 下,您也可以将其配置为对 GTK 应用程序使用当前的 KDE 主题。因此,如果该解决方案适用于 GTK,那就没问题了。

当我在 Gnome (Ubuntu 8.04) 下运行以下代码时,Java 应用程序看起来很漂亮。它与其他应用程序集成得很好:

try {
  // Set System L&F
  UIManager.setLookAndFeel(
  UIManager.getSystemLookAndFeelClassName());
} catch(Exception e) { //Handle it }
Run Code Online (Sandbox Code Playgroud)

然而,如果我在 Debian (Lenny) 下使用 KDE 运行同样的事情,UIManager.getSystemLookAndFeelClassName() 调用将返回 Java 默认值。如果我继续强制它使用 GTK LNF,则该应用程序将无法运行。有些字段是看不见的,有些字段则不合适,一切都无法使用:

try {
  //Force the GTK LNF on top of KDE, but **it doesn't work**
  UIManager.setLookAndFeel("com.sun.java.swing.plaf.gtk.GTKLookAndFeel"); …
Run Code Online (Sandbox Code Playgroud)

java gtk swing look-and-feel kde-plasma

5
推荐指数
1
解决办法
1万
查看次数

在linux上生成有效的ical文件

有没有一种简单的方法可以为单个约会创建有效的icalendar文件,在Linux命令行上提供日期、时间、标题和描述?请注意,此数据可能必须正确转义。我查看了 konsolecalendar (kde),但它在我的 kubuntu linux 上似乎被破坏了。

linux shell icalendar kde-plasma

5
推荐指数
1
解决办法
4539
查看次数

如何通过脚本控制 KDE 监视器配置?

每天早上我来上班,将正在睡觉的笔记本电脑插入办公桌上的大显示器,然后摆弄这个对话框:

\n\n

KDE“显示设置”对话框的屏幕截图

\n\n

我想这种摆弄的结果是“显示设置”应用程序将新的显示器配置写入某个文件,然后向窗口管理器发送一些信号以注意到设置已更改。我想自己做这件事并直接控制它,为此目的以及其他目的。

\n\n

如果我能找到生成 \xe2\x80\x98Display Settings\xe2\x80\x99 对话框的进程的名称,我可以运行它并strace查看它在做什么,但我还没有找到要么出去。

\n\n

我的问题是:

\n\n
\n

该对话框属于哪个程序?我会在输出中寻找什么ps来识别它?当它更改监视器配置时,它实际上在做什么?

\n
\n

scripting configuration multiple-monitors kde-plasma

5
推荐指数
1
解决办法
2120
查看次数

使用notify-send远程Linux桌面通知

我在 zmq 中制作了一个客户端-服务器系统,它将帮助向登录到网络上所有计算机的人员发送大量通知。

客户端守护进程在所有不同的计算机上以 root 身份运行。但是,当消息发送到此类客户端并且调用“通知发送”时,该消息不会在用户桌面上弹出。我看到的错误是:

(通知发送:8670):GLib-GObject-CRITICAL **:g_object_unref:断言“G_IS_OBJECT(对象)”失败

我相信这是因为通知发送只能通过图形界面发送。或者通过在该特定用户下运行守护程序而不是作为 root 并设置 DISPLAY=:0

1)有没有办法发送通知,如notify-send或kdialog等,在root下运行客户端守护进程而不是用户本身?

2)还有其他方法可以更优雅地实现这一点吗?

3)并且,可以以任何方式使用 dbus 来做到这一点吗?

python linux dbus notify kde-plasma

5
推荐指数
1
解决办法
1298
查看次数

如何从源代码构建 KDE Dolphin?

我使用的是 Ubuntu 15.04 x64。

我从git://anongit.kde.org/dolphin克隆了 Dolphin 存储库。然后我继续通过以下方式构建目录:

mkdir build
cd build
cmake ..
Run Code Online (Sandbox Code Playgroud)

但是当我运行 CMake 命令时,我得到:

-- The C compiler identification is GNU 4.9.2
-- The CXX compiler identification is GNU 4.9.2
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- …
Run Code Online (Sandbox Code Playgroud)

ubuntu build kde-plasma

5
推荐指数
2
解决办法
4860
查看次数

Matplotlib 中具有边际 KDE 图和多个类别的散点图

我想要 Matplotlib 中的一个函数类似于Matlab 的“scatterhist”函数,它采用“x”和“y”轴的连续值,加上一个分类变量作为输入;并生成一个散点图,其中包含边际 KDE 图和两个或多个不同颜色的分类变量作为输出:Matlab/Mathworks“scatterhist”示例我在 Matplotlib 中 找到了带有边缘直方图的散点图示例,在 Seaborn jointplot 中找到了边缘直方图在 Matplotlib 中找到了重叠直方图在 Matplotib 中找到了边缘 KDE 图;但我还没有找到任何将散点图与边际 KDE 图结合起来并用颜色编码来指示不同类别的示例。

如果可能的话,我想要一个使用“vanilla”Matplotlib而不使用Seaborn的解决方案,因为这将避免依赖性并允许使用标准Matplotlib命令完全控制和自定义绘图外观。

我打算尝试根据上面的例子写一些东西;但在此之前,我想检查一下类似的功能是否已经可用,如果没有,那么将不胜感激有关最佳使用方法的任何指导。

margin matplotlib histogram scatter-plot kde-plasma

5
推荐指数
1
解决办法
3820
查看次数

如何从命令行确定我的 KDE 桌面是否处于锁定屏幕状态?

我有一个在后台运行的程序,它只是每 N 秒截取一次屏幕截图。

例如:

#!/bin/sh

while true; do
  take-screenshot
  sleep 10
done

Run Code Online (Sandbox Code Playgroud)

我想要实现的只是在屏幕未锁定的情况下截取屏幕截图。例如:

#!/bin/sh

while true; do
  if ! screen-is-locking; then
    take-screenshot
    sleep 10
  fi
done
Run Code Online (Sandbox Code Playgroud)

如何确定我的桌面是否在命令行中锁定?

linux x11 desktop kde-plasma

5
推荐指数
1
解决办法
987
查看次数

如何以编程方式显示/隐藏 KDE plasmoid 的工具提示?

有没有办法使等离子工具提示以编程方式显示/隐藏?

我尝试在ToolTipArea紧凑表示上设置 a ,并尝试用 a 触发它Timer- 它不起作用(常规工具提示不断显示,但仅在悬停于等离子图标(又名compactRepresentation)时:

import QtQuick 2.0
import QtQuick.Layouts 1.1
import org.kde.plasma.plasmoid 2.0
import org.kde.plasma.core 2.0 as PlasmaCore
import org.kde.plasma.components 3.0 as PlasmaComponents
import org.kde.plasma.extras 2.0 as PlasmaExtras

Item {
    Layout.preferredWidth: 200
    Layout.preferredHeight: 300

    Plasmoid.preferredRepresentation: Plasmoid.compactRepresentation

    Plasmoid.compactRepresentation: Item
    {
        anchors.fill: parent

        MouseArea
        {
            onClicked:
            {
                 plasmoid.expanded = !plasmoid.expanded
            }
        }

        PlasmaCore.ToolTipArea
        {
            id: toolTip
            width: parent.width
            height: parent.height
            anchors.fill: parent
            mainItem: tooltipContentItem
            active: false
            interactive: true
        }

        Timer
        {
            interval: 3000 …
Run Code Online (Sandbox Code Playgroud)

tooltip plasmoid qml kde-plasma

5
推荐指数
0
解决办法
236
查看次数

检测 Qt 中当前使用的桌面的深色应用程序风格/主题

在我们基于 Qt 的 C++ 应用程序中,我尝试根据用户是否配置了深色或明亮主题来自动切换应用程序样式。

我已经弄清楚了更改发生时的通知(见下文,供其他人参考)。

我的主要问题是可靠地检测当前在 Linux 上使用的是深色主题还是明亮主题(对于 Windows,请参见下文);在 XFCE 上,此答案中提到的 QPalette 颜色角色检查有效,但这对我来说在 Gnome 和 KDE Plasma 上不起作用(在 Ubuntu 22.04 和 Fedora 36 下测试,我的应用程序针对 Qt 版本 6.5beta2 和 6.4.2 构建, 分别); 那里的颜色似乎仍然取自我在同一台机器上设置为 XFCE 主题的颜色(当启动 xfce4-appearance-settings 并在那里更改主题时,我的应用程序会接受更改)。不过,我想适应当前桌面的深色模式设置。

所以,我的问题是:如何可靠地检测Qt 上当前使用的桌面的应用程序暗模式?如果 Qt 中没有直接可用的东西,我并不反对实现一些特定于平台的自定义代码,但如果它无需使用其他库即可工作,那就太好了。

我看到的QApplication::setPalette注释可能与这里相关,即“某些样式并不使用调色板进行所有绘图,例如,如果它们使用本机主题引擎。”,这些都是关于什么的?我没有看到此功能的文档链接,并且快速搜索术语“qt 本机主题引擎”似乎也没有产生任何有用的结果。

由于在 Linux 上,每当系统主题发生更改时,都会可靠地触发一些事件(见下文),我想 Qt可以检测到主题更改,它只是不公开公开有关它的数据?

收到主题更改通知

  • 在 Linux 上:通过监听QEvent::StyleChange应用程序 QMainWindow 的事件;两个警告和一个旁注:

    • 尽管QWidget::changeEvent 文档明确提到了该事件,但它不会触发changeEvent(对我来说),但必须通过更通用的方式捕获QWidget::event
    • StyleChange 似乎只从某些 Qt 6.4 版本开始触发(在我的测试中,它不是由 5.15.2 和 6.3.1 触发,而是由 6.4.2 和 6.5.0beta2 …

c++ qt gnome kde-plasma

5
推荐指数
1
解决办法
2597
查看次数