问题标签 [metacity]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3825 浏览

python - 从 Python 中发现 Gnome/Linux/Ubuntu 上哪个窗口处于活动状态?

有没有办法从 Python 中获取当前打开的所有窗口的列表并查看顶部的窗口(即活动的?)?

这是在 Ubuntu Linux 上使用 Gnome。

wnck 看起来可能会这样做,但它非常缺乏文档。

0 投票
1 回答
1346 浏览

root - 如何找到排除任何 GNOME 面板或其他 GNOME“事物”的根窗口的 X 几何图形?

我需要找到一种方法来获取适合传递给某些 X 窗口命令-geometry选项的几何图形,以便保证覆盖所有不与 GNOME 本身管理的任何东西重叠的 X 根窗口(例如,GNOME 面板窗口)。这与xwininfo -root将返回整个 X 根窗口的几何图形的输出不同,并且必然包括 GNOME 面板消耗的不动产。因为我不再使用 KDE,所以我不需要对 KDE 也一样。

我希望能够使用 X windows 命令行实用程序获得该几何图形,而不必求助于 Xlib 编程(即,我想从脚本中这样做)。这些脚本可以依赖于 GNOME 命令行实用程序。

使用基本数学“减去” GNOME 面板是一种选择,但前提是我可以保证我只需要考虑唯一的 GNOME 面板 X 窗口。但我怀疑 GNOME 面板窗口并不是唯一需要考虑的窗口。我这么说是因为底部有一个窗口xwininfo显示为“底部扩展边缘面板”,它可能会或可能不会在房地产方面发生冲突,因为仅当鼠标移动到 X 根的最底部时才会显示窗户。但如果 GNOME 面板真的是唯一需要考虑的面板,那么这种“减法”方法可能就足够了。

我的用例是这样的:我正在使用rdesktop将 RDP 导入各种 Microsoft Windows 桌面。用户需要在执行之前决定 rdesktopX 窗口的尺寸,因为它在显示后无法调整大小。我需要该窗口来消耗最大数量的根窗口不动产,只要它不与 GNOME 管理的窗口(如 GNOME 面板)冲突。我现在正在做的是在调用 的包装器脚本中硬编码特定桌面的几何图形rdesktop,但这无法达到我想要的效果,因为我在各种桌面上工作,这些桌面必然会在显示硬件上有所不同,从而导致 X 根窗口中的变化几何学。将 X 根窗口的几何图形馈送到rdesktop命令导致 RDP 窗口超出 GNOME 桌面上的可见区域,因为 GNOME 的窗口管理器将实际的左上角向下推以避免与 GNOME 面板重叠,结果是 RDP 窗口的一部分被鼠标操作隐藏.

我尝试使用xwininfo -root -children来查看是否可以在 X 根的直接后代中找到一些 X 窗口,该窗口始终是我可以用来提取这些维度的窗口,但名称看​​起来像是 GNOME 桌面软件的实现细节(或 metacity WM),或两者兼而有之,可能不是我想要依赖的东西。

0 投票
1 回答
122 浏览

c - 在 Gnome/metacity 中,我们可以将键绑定到需要用户从键盘输入的命令吗?

全部,

我有一个用 C 语言编写的小实用程序,需要用户按一个键来进行菜单选择。代码很简单:

它抓住了击键,不需要等待 ENTER。它可以从命令行正常工作,但是,当我尝试将命令绑定到 Gnome/metacity 中的热键时,它会等待击键,但击键似乎不是作为命令的输入处理的,而是好像这是一个单独的命令。例如。如果我的击键是“1”并且我在终端中,我会看到:

“zsh:找不到命令:1”

我已经尝试过没有“系统”行,但没有任何改变。是否有一些特殊版本的“getchar”可以与 GUI 一起使用?顺便说一句,该程序的非交互式版本在绑定到热键时可以正常工作,因此该程序基本上可以正常工作,只是不能交互式使用。

谢谢

0 投票
0 回答
593 浏览

qt - Qt 应用程序在 Gnome/Fedora 下崩溃 X 会话 (QDialog)

我写了一个很小的 ​​Qt4 (C++) 应用程序,除了显示一个列表之外,它并没有做太多的事情。它是一个 QDialog,所以按 Escape 会关闭它。

现在,如果我连续执行此操作(运行,然后关闭)大约 3 到 8 次,我的 X 会话会崩溃并且我会看到我的登录屏幕。如果我杀死我的程序而不是优雅地关闭它,这不会发生。

自然地,我查看了我的代码,尤其是退出时执行的代码。然而,这只是一个很小的析构函数,它删除了一些以前分配的变量。将这些行注释掉(-> 退出时不再执行代码)不会改变任何内容。调用 QApplication::exit() 也会崩溃。

我目前在这个开发系统上使用 Gnome,如果这很重要的话。

我真的不知道要找什么。有任何想法吗?

编辑:试图找到罪魁祸首,我已经逐条注释掉了代码。但是,我现在基本上删除了所有内容,除了显示 QDialog 的代码并且崩溃仍然发生。

这是代码:

主文件

正如你所看到的,这个程序什么都不做(除了显示一个QDialog,但那是Qt,不是我的程序)。我不明白 2 行代码(+ Qt 代码,应该可以工作,因为每天有数百万人使用它)如何使我的 X 会话崩溃。到目前为止,我只在带有 Gnome 3 的 Fedora 16 上对其进行了测试。

Edit2:在同一个系统上用 KDE 和 LXDE 测试它(相同的二进制文件),没有崩溃。同样在带有 Gnome、KDE ​​和 LXDE 的 Ubuntu 上,没有崩溃。必须与 Gnome3/Fedora 有关...

0 投票
2 回答
1376 浏览

gnome - 如何在 GNOME2 / metacity 中自动提升所有工作区的窗口?

假设我想在一个工作区中运行

然后我在不同的工作区处理其他东西。如何在我所在的任何工作区而不是我输入命令的原始工作区中弹出这个 zenity 窗口?还是更容易让它在所有工作区中弹出?

0 投票
3 回答
2990 浏览

gnome-shell - gnome-shell 3.16 窗口标题

在 3.16 之前,从最大化的窗口中删除窗口标题很容易 - 只需编辑 metacity-theme.xml 文件。但是,3.16 使用客户端装饰,metacity 无法控制窗口装饰。是否有另一种隐藏窗口标题的方法,或者至少使它们更小?

0 投票
0 回答
71 浏览

linux - Qt4:metacity左上角出现窗口

我在 Metacity 上的 qt4 中的窗口外观有问题。最初的问题是该窗口出现在另一个窗口下,通过单击按钮从该窗口中调用它。我通过发送 _NET_ACTIVE_WINDOW 在 Compiz 上解决了这个问题,但在 metacity 上它仍然无法正常工作。经过几个小时的谷歌搜索,我尝试了这个:

这只是一种解决方法,但它实际上使窗口出现在上方。这就是另一个问题发生的地方:如果显示了窗口并且我将焦点更改为调用它的窗口并按下按钮,我的窗口将出现在它应该出现的同一位置上方。但是如果我关闭窗口并再次调用它,它会出现在左上角。有谁知道为什么会这样?提前致谢。

0 投票
1 回答
6604 浏览

x11 - 如何使用 Yocto Project 工具更改窗口管理器?

我的意图

我有一张由 BitBake 生成的图像,我有兴趣将窗口管理器更改为 metacity 或类似的东西。

我的过程

我已经添加require recipes-graphics/images/core-image-x11.bb到我的核心配方中,它提供了一个简单的 Matchbox 终端窗口,但似乎没有其他功能。如果我添加matchbox-desktopand matchbox-session-sato,它会增加一点可用性,但不是我想要的。

我已将OpenEmbedded 元数据索引中层的metacity_2.34.13.bb配方中的默认包包含在我的核心图像的变量中。这会安装几个组件,包括. 如果我运行该命令,我会收到以下消息:meta-gnomeIMAGE_INSTALLmetacity/usr/bin

我已经导航到/usr/share/glib-2.0/schemas并运行glib-compile-schemas .,然后运行:

再次。现在,输出是:

我还没有找到适用于我的具体情况的此错误的明确解决方案。

更新(2/29):

我现在可能已经使用以下命令找到了解决此错误的方法:

在这一点上,我似乎在我的一个 VT 上运行了一些东西。我可以像glxgears在那个 VT 中那样运行演示(glxgears包含在mesa-demos配方中),但我不知道如何实际创建一个可用的环境。

我的问题

  1. 我没有使用太多来自meta-openembedded/meta-gnome(just metacity) 或meta/recipes-gnome( adwaita-icon-theme, gnome-desktop3, gsettings-desktop-schemasand gtk+3) 的东西,所以我是否错过了一些自动添加 metacity 的配方?
  2. (如果不是问题 1)我该如何解决这个错误Window manager error: Unable to open X display
0 投票
1 回答
282 浏览

qt - 在 X 上运行的 Qt5 程序可以禁用最小化和关闭吗?

我正在编写一个在 X 上运行的 C++ Qt5 应用程序。它将在其下运行的窗口管理器是Metacity。我有一些要求我不知道如何解决:

  1. 窗户不能关闭
  2. 窗口一定不能最小化
  3. 窗口必须始终在顶部

我使用以下方法实现了要求 3:

但是,右键单击窗口标题仍然会显示一个弹出菜单:

在此处输入图像描述

从此菜单中,用户可以关闭“始终位于顶部”设置,并且“最小化”和“关闭”选项仍然可用。我试过了:

但是,这个功能似乎不能用这个窗口管理器做我想要的,因为没有功能被禁用。

一个后备位置是:

  • 如果应用程序曾经关闭,则重新启动应用程序(由于其他原因已经存在)
  • 如果窗口被最小化,将其恢复到正常大小

另一个后备位置是:

  • 使用Qt::X11BypassWindowManagerHint它完全避免了窗口管理器,并以某种方式实现窗口移动和调整大小。

理想情况下,我想继续使用窗口管理器来提供窗口移动和大小功能,但关闭我不需要的功能。


(请尽量避免诸如“你不应该那样做”或“这是一个愚蠢的想法”之类的评论 - 是的,我知道,但这个应用程序不适合一般用途,它只用于专门的环境,它是主题到不是我写的要求。)