标签: desktop-environment

是否可以使用 D-Bus 控制 Gnome Shell 中的窗口管理?

我希望能够使用 D-Bus 以编程方式与 Gnome 3 中的窗口管理器进行通信。我想完成的任务是:

  • 监听新窗口
  • 获取窗口标志(例如跳过寻呼机标志)
  • 获取 X 窗口 ID
  • 最大化、最小化窗口
  • 升高、降低车窗
  • 隐藏窗口 目的是创建一个类似任务栏的应用程序。

我知道xdotoolswmctrl等工具,但这些都是非常彻底的工具:没有侦听器来查找新窗口是否已实例化/映射,拿铁咖啡与窗口标题字符串一起使用。

我也尝试过使用 python-xlib,但是缺乏文档或技术性文档过多使得实现任何目标都非常困难。

D-Bus 似乎适合此类操作。我可以使用 D-Bus 来做到这一点吗?有没有办法使用 Python 来做到这一点?您能提供一些例子吗?

gnome window-manager desktop-environment d-bus x11

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

各种桌面环境如何刷新桌面背景?

在 XFCE 4.10 中,我可以使用xfdesktop --reload.

我想知道如何为尽可能多的其他桌面环境(Unity、KDE、LXDE、Mate、Cinnamon、GNOME2、GNOME3...)做同样的事情。

desktop desktop-environment

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

哪些桌面环境不需要 D-Bus?

是否有不需要 D-Bus 的桌面环境(即类似于 Gnome、KDE、Xfce 等)?

最佳答案最好给出一个包含列表,或者确认当今的桌面环境必然依赖于 D-Bus(可能给出一个原因?)

desktop-environment d-bus

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

客户端装饰背后的故事是什么?

因此,Gnome 应用程序当前使用 Exclusive Client Side Decorations, 以及GTK Header Bar包含buttons, menus, title

  • 实施客户端装饰背后的故事是什么?
  • 这只是 Gnome 开发者的想法吗?
  • 为什么变化如此剧烈,在适应之前甚至没有办法恢复?当 Gnome3 使用现代 UI 时,仍然存在 gnome2 回退会话,对吧?
  • Gnome 应用程序是否只能在 Gnome 桌面环境上使用?让它们在其他桌面环境上看起来很尴尬,用户要么切换到 Gnome DE,要么完全停止使用 Gnome 应用程序?

Ubuntu 使用单独的桌面环境(Unity),这与客户端装饰相冲突,因为我认为统一合并标题栏和应用程序菜单以节省空间的整个概念变得无关紧要。因此,他们从 Gnome 应用程序中删除了Client Side DecorationsHeader Bar代码,以使它们看起来像以前使用窗口管理器一样。所有基于 ubuntu 的二进制兼容发行版都受益于此。

但是像 debian 这样的发行版(及其二进制兼容发行版)不会对上游代码进行重大更改,并且会受到严重影响。

window-manager desktop-environment gnome3

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

如何配置 XFCE 来处理按键释放时的键盘快捷键\热键\向上,而不是按键

在 XFCE 上使用应用程序时,按下与 XFCE 热键重叠的键盘快捷键\热键,我发现 XFCE 热键效果反而发生了。

例如,Eclipse IDE有热键:Shift + Alt + S,而XFCE则使用热键 切换键盘布局Shift + Alt

因此,当我按下时Shift + Alt,键盘布局会在我有机会完成热键组合并按下之前发生变化S

一位同事建议这是因为 XFCE 在按下热键时处理热键而不是在释放热键时处理热键

我不想更改这些快捷方式,因为我一直使用 Windows 和 Linux,我不想让自己感到困惑。

我的问题是:

  • 如何配置 XFCE 在按键释放时处理热键,而不是在按键时处理热键
  • Enlightenment、Gnome 3、Mate、Cinnamon 是否比 XFCE 更好地处理键盘热键?或者至少以我在这里提到的方式,即释放按键,而不是按下按键。
  • 还有哪些其他桌面环境在释放而不是按下时处理热键?

keyboard-shortcuts desktop-environment xfce

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

Dockerfile、Docker 镜像和可重现环境

有关 docker 的常见文档和注释提到了版本控制和共享 Dockerfile 这应该让任何人都可以构建相同的映像。这听起来不错,但是,我们通常有这样的命令。

RUN apt-get update
pip install..
Run Code Online (Sandbox Code Playgroud)

这可能会根据运行时间安装不同的东西/版本/补丁,并使调试变得困难。

另一方面,共享 docker 镜像并不能给您带来诸如版本控制和查看两个镜像之间到底有什么不同之类的好处。

  • 其中哪一个(dockerfile 与 image)应该作为开发和部署使用的参考?
  • Dockerfile 是否应该提供有关确切更新的更多详细信息?即使这样,基础映像也可能会根据您运行的时间而有所不同。

desktop-environment docker reproducible-build

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

如何在 xdg-open / mimeopen 上设置未知文件的默认应用程序?

在我的 Lubuntu (18.10) 上,xdg-open当文件未与任何应用程序关联时启动 VLC 播放器。

$ xdg-mime query filetype jquery.js
application/javascript
$ xdg-mime query default application/javascript # no output
$ xdg-open jquery.js
Error: no "view" mailcap rules found for type "application/javascript"
Opening "/tmp/jquery.js" with VLC media player  (application/javascript)
Run Code Online (Sandbox Code Playgroud)

对于某些文件,它会启动 Calibre 的电子书查看器(例如 .rb)。


编辑我深入研究xdg-open并发现它执行以下命令:

  1. xdg-mime query filename "$file"使用和检查文件类型xdg-mime query default $filetype
  2. run-mailcap --action=view "$file"
  3. mimeopen -L -n "$file"

问题出在mimeopen上。

那么如何更改 mimeopen以使用 Featherpad 或特定应用程序打开任何未知文件?换句话说,如果 mimeopen 找不到任何合适的应用程序,我想设置默认后备应用程序。

user-default desktop-environment vlc mime-types xdg-open

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

在 GNOME 中,如何使用 Xfce (Alt) 或 Primary OS (Super) 等热键来移动和调整窗口大小?

在Xfce中,我们可以按住Alt按键,使用鼠标左键移动窗口,或者使用鼠标右键调整窗口大小。同样,在elementary OS中也有该Super键,但是在GNOME中,如何设置该Super键来拖动或调整窗口大小?

desktop-environment gnome3

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

装载驱动器而不是可移动驱动器

我已将以下行添加到我的文件中/etc/fstab以挂载 ramdisk。

none /media/ramdisk tmpfs nodev,nosuid,noexec,nodiratime,size=2048M 0 0
Run Code Online (Sandbox Code Playgroud)

它在我的桌面上显示为可移动驱动器,并且在状态栏和扩展坞中显示为可移动驱动器,如下所示。

可移动驱动器菜单 扩展坞中的可拆卸驱动器

我怎样才能禁用这个功能?我应该使用不同的选项安装它吗?我需要调整一些桌面设置吗?

我知道我可以通过禁用相关扩展来解决这个问题,但我希望“真正的”可移动驱动器显示在那里。

我不认为它相关,但我在 Fedora 38 上使用 GNOME 44。

desktop-environment mount removable-storage

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

如果我不登录桌面环境,桌面环境还会消耗RAM吗?

对于 Linux(Ubuntu、Debian 等),不同的桌面环境消耗不同数量的资源(RAM)。Gnome 和 KDE 往往比 XFCE / LXDE / LXQT 等其他操作系统消耗更多 RAM:

https://unihost.com/help/how-to-choose-linux-desktop-environment-ram-usage/

我想知道如果我不通过桌面环境的 GUI 登录,而仅使用 ssh 与操作系统交互,这些桌面环境的 RAM 使用情况是否仍然会产生影响?

例如,我有一个 Debian Gnome 和一个 Debian XFCE。打开两台机器后,我只使用SSH与它们交互。在这种情况下,它们使用相同数量的 RAM 吗?

ssh gnome debian desktop-environment ram

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