问题标签 [window-managers]

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 回答
778 浏览

python - python wnck 在 pdb.set_trace() 之后才返回任何数据

在 Ubuntu Linux / Gnome 上,我正在尝试使用 python 的 wnck 绑定来获取所有打开的窗口的列表。

我的代码如下所示:

输出是这样的:

第一次get_windows()调用返回[]一个空列表。第二个get_windows()调用返回打开的窗口列表。在 中pdb,我只按c继续,什么也不做(在 pdb 中)。

如果我注释掉pdb,这两个get_windows()调用都会返回[]。如果我get_windows()在 pdb 之前多次重复调用,则什么都没有。如果我get_windows()在 pdb 之后多次重复调用,我会不断得到一个完整的列表。

为什么这个调用只在一个空的 pdb 之后才起作用?如何在没有 pdb 的情况下使其工作?

0 投票
1 回答
603 浏览

linux - 通过编译代码在 linux 中操作窗口大小?

我编写了几个脚本,使用 xrandr、grep 和 wmctrl 将窗口最大化到屏幕大小的一半(以便于并排放置窗口),如下所示:

有没有办法更本地地做到这一点?该脚本在我的桌面上运行良好,但在我的笔记本电脑上会有半秒的延迟,这有点烦人。

0 投票
1 回答
1058 浏览

xlib - Xlib - 聚焦模式

我正在为学校编写一个简单的窗口管理器(使用 xlib),但我遇到了一个问题。我真的不喜欢默认的 X11 焦点模式:'sloppy focus'(焦点跟随鼠标指针)所以我想改变这种行为。

我正在覆盖 EnterNotify 事件,但我的注意力仍然很草率。有人可以告诉我正确的方向吗?

谢谢

0 投票
1 回答
492 浏览

python - 在 Python 中监控用户“行为”的好方法?

我正在寻找简单的 API 来获取有关用户在 Python 中使用他的计算机的信息。

什么是相关的:

  • Keypresses, mouse events [PyKeylogger?] # 我知道这已经在 SO 中讨论过了
  • 了解有关正在运行的进程的信息
  • 更难的是,了解有关具有焦点的窗口的信息(它的名称?)# 这真的很有趣
  • 更难的是,我可以向系统询问更多信息吗?(例如,我可以查询此窗口中特定图形元素中显示的文本吗?假设它是一个浏览器,我可以获得当前的 url 吗?)

我希望答案是关于 Linux 系统的,但如果它更容易,我也对 Windows 替代品感兴趣。我现在不太关心便携性。

我想在 Linux 下有运行 shell 脚本和检索输出的后备,但我想知道这是否是常见的方法,或者某些 API 是否已经很好地包装了这个。

对于这个问题的含糊之处,我很抱歉,但实际上是我试图评估在某些 API 下我可以轻松获得的信息范围,并了解哪些工具对于这类工作是“常用的”。

感谢您提供的所有信息。

0 投票
2 回答
95 浏览

linux - 如何从命令行在 *nix 中将文件显示为“已选择”?

是否有一种半通用机制可以通过命令行显示在各种 *nix 窗口管理器中选择的文件?例如,在 Windows 中,我可以说以下内容:

…并且资源管理器将显示该文件并为您选择它。在 OS XI 中可以这样说:

……它也会这样做。我的问题是,有没有办法在窗口管理器的各种流行的 *nix 风格中做同样的事情(有点普遍)?显然“打开包含文件夹”很简单,但我想采取额外的步骤,用选定的特定文件实际打开它。任何帮助表示赞赏。

最好的。

0 投票
2 回答
8223 浏览

x11 - 编写窗口管理器的现代方法

我正在尝试编写一个窗口管理器。(实际上,我已经编写了一个操作系统和一个编译器,但这不是重点。)

XLib 和 xcb 并不是很讨厌,至少不是按照例如 win32 标准,但它们绝对是非常古老的,并且不能很好地适合体面的抽象来让我的生活更轻松。不仅如此,现代高级语言明显缺乏良好的绑定。

我的问题是:现在这些低级的东西真的有必要吗?是否存在可以为我封装所有讨厌的东西的库?我有一个模糊的记忆,启蒙运动的人做过这样的事情,但是什么也找不到。或者像 GDK 这样的现代小部件库是否有足够的功能,我不需要接触 Xlib 层?

任何具有 Java 绑定的库都特别令人感兴趣...

0 投票
1 回答
839 浏览

python - 窗口管理器应该如何处理 ConfigureRequestEvent?

为了我的罪过(以及为了有趣的学习经验),我正在编写一个窗口管理器(我知道,我知道)。

我正在使用 python 和 XCB (python-xpyb)。

到目前为止,我已经发现我需要在根窗口上使用 SubStructureRedirect 掩码,并且我成功地传递了与应用程序的顶级窗口相关的事件。我正在通过启动 xterm 来测试它。

我得到一个 ConfigureRequestEvent,然后是一个暂停,然后是另一个 ConfigureRequestEvent,然后是一个 MapRequestEvent。

当我得到 MapRequestEvent 时,我调用connection.core.MapWindowChecked(e.window)它,它可以工作,但映射一个只有一个像素或两个宽/高的窗口。

那么,我的问题是,我应该如何处理 ConfigureRequestEvent 以使窗口大小正确(假设这就是我所缺少的)?

更准确地说,我到底叫什么?MapWindowChecked 是一个明显的选择,但我似乎无法找到如何实际配置宽度/高度。我猜它是 ConfigureWindow,但接受的参数对我来说似乎很模糊。上次我调用它时,我使用了 xcb.xproto.CW.EventMask,但 CW 中的所有标志似乎都与宽度/高度无关。

PS 关于所有这些的文档对我来说似乎非常难以捉摸。我查看了几个据称使用 xcb 的 python 窗口管理器,它们似乎使用自己的自定义版本和额外的功能。此外,检查/调试正在运行的窗口管理器(也负责映射调试器的窗口)是一个 PITA,因此我在这里问。可能会更好使用两台机器或一个虚拟机或其他东西。

谢谢。

0 投票
4 回答
5056 浏览

android - 为什么在android中恢复活动会导致BadTokenException?

伙计们——谁能解释一下这个堆栈?请注意,我的代码不在其上。如果您搜索任何这些例外情况,那么遇到此问题的每个人都试图在活动终止后创建对话框,这似乎不是这种情况。这只是一个简单的活动简历。我经常看到该领域的客户报告此异常,并希望尽可能纠正它。

更新:

这是我能够远程检索此堆栈的方法。首先,我在活动的 onCreate 顶部添加了一个 uncaughtExceptionHandler:

在我的 RemoteUploadExceptionHandler 类中,我有以下代码:

这是每小时向我发送许多堆栈的代码,就像我上面显示的那样。

此外,如果您通过google 代码搜索查看 ActivityThread 代码,您可以在调用 addView 之前看到此检查:

因此,该活动尚未完成,因此它应该仍然有效。

此外,行号似乎与您在 google 源代码中看到的不匹配。签出 2.3.3 源代码中的 ActivityThread.java 文件。第 2268 行在私有方法 createThumbnailBitmap 中。崩溃客户端上传的Build Version是10,说明SDK_INT是10,所以是2.3.3。

0 投票
3 回答
1180 浏览

python - 在 Linux 中从打开的窗口中获取内容

我想收集数据并最终从 linux 的打开窗口中解析它。

一个例子——假设一个终端窗口是打开的。我需要检索显示在该窗口上的所有数据。检索后,我会对其进行解析以获取输入的特定命令。

那么有可能做到这一点吗?如果是这样,怎么做?我更喜欢使用 python 来编码这整个事情。

我猜测,首先我必须为打开的窗口获取某种 ID,然后使用某种库从我拥有的 ID 的窗口中获取内容。

请帮忙。我是个新手。

0 投票
1 回答
294 浏览

ruby - Ruby 中的桌面环境

我想使用 Ruby 为 Ubuntu 创建一个非常简单的窗口管理器。我应该从哪里开始?我对 Qt 有点熟悉(从我以前使用 C++ 开始),但我不介意使用其他框架。