我希望能够使用 D-Bus 以编程方式与 Gnome 3 中的窗口管理器进行通信。我想完成的任务是:
我知道xdotools或wmctrl等工具,但这些都是非常彻底的工具:没有侦听器来查找新窗口是否已实例化/映射,拿铁咖啡与窗口标题字符串一起使用。
我也尝试过使用 python-xlib,但是缺乏文档或技术性文档过多使得实现任何目标都非常困难。
D-Bus 似乎适合此类操作。我可以使用 D-Bus 来做到这一点吗?有没有办法使用 Python 来做到这一点?您能提供一些例子吗?
在 XFCE 4.10 中,我可以使用xfdesktop --reload.
我想知道如何为尽可能多的其他桌面环境(Unity、KDE、LXDE、Mate、Cinnamon、GNOME2、GNOME3...)做同样的事情。
是否有不需要 D-Bus 的桌面环境(即类似于 Gnome、KDE、Xfce 等)?
最佳答案最好给出一个包含列表,或者确认当今的桌面环境必然依赖于 D-Bus(可能给出一个原因?)
因此,Gnome 应用程序当前使用 Exclusive Client Side Decorations, 以及GTK Header Bar包含buttons, menus, title。
Ubuntu 使用单独的桌面环境(Unity),这与客户端装饰相冲突,因为我认为统一合并标题栏和应用程序菜单以节省空间的整个概念变得无关紧要。因此,他们从 Gnome 应用程序中删除了Client Side Decorations和Header Bar代码,以使它们看起来像以前使用窗口管理器一样。所有基于 ubuntu 的二进制兼容发行版都受益于此。
但是像 debian 这样的发行版(及其二进制兼容发行版)不会对上游代码进行重大更改,并且会受到严重影响。
在 XFCE 上使用应用程序时,按下与 XFCE 热键重叠的键盘快捷键\热键,我发现 XFCE 热键效果反而发生了。
例如,Eclipse IDE有热键:Shift + Alt + S,而XFCE则使用热键 切换键盘布局Shift + Alt。
因此,当我按下时Shift + Alt,键盘布局会在我有机会完成热键组合并按下之前发生变化S。
一位同事建议这是因为 XFCE 在按下热键时处理热键,而不是在释放热键时处理热键。
我不想更改这些快捷方式,因为我一直使用 Windows 和 Linux,我不想让自己感到困惑。
我的问题是:
有关 docker 的常见文档和注释提到了版本控制和共享 Dockerfile ,这应该让任何人都可以构建相同的映像。这听起来不错,但是,我们通常有这样的命令。
RUN apt-get update
pip install..
Run Code Online (Sandbox Code Playgroud)
这可能会根据运行时间安装不同的东西/版本/补丁,并使调试变得困难。
另一方面,共享 docker 镜像并不能给您带来诸如版本控制和查看两个镜像之间到底有什么不同之类的好处。
在我的 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并发现它执行以下命令:
xdg-mime query filename "$file"使用和检查文件类型xdg-mime query default $filetyperun-mailcap --action=view "$file"mimeopen -L -n "$file"问题出在mimeopen上。
那么如何更改 mimeopen以使用 Featherpad 或特定应用程序打开任何未知文件?换句话说,如果 mimeopen 找不到任何合适的应用程序,我想设置默认后备应用程序。
在Xfce中,我们可以按住Alt按键,使用鼠标左键移动窗口,或者使用鼠标右键调整窗口大小。同样,在elementary OS中也有该Super键,但是在GNOME中,如何设置该Super键来拖动或调整窗口大小?
我已将以下行添加到我的文件中/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。
对于 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 吗?