问题标签 [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 投票
1 回答
2538 浏览

python - 要求窗口管理器将 matplotlib 绘图窗口“始终位于顶部”?

这个问题听起来很简单,我目前在 Linux 下使用 Xfce4,我希望所有从 python/matplotlib 脚本中弹出的交互式绘图都出现在所有其他窗口的顶部

基本上我希望XWindows能够识别那些图形窗口,然后应用常见的窗口操作。有任何想法吗?

0 投票
2 回答
298 浏览

windows - 如何避免 GUI 调整大小中的瞬时更新?

如果您半快速拖动窗口的顶部或左侧边框,您应该注意到窗口的另一边会振动——它被拖动,但随后会重新调整以增加大小。

当您有动态调整大小的项目时,问题会更严重 - 然后您的一堆控件开始在屏幕上滑动和调整大小,非常明显。

有什么办法可以防止这些瞬态影响?

例如,也许对消息的特定响应序列WM_SIZE可以抑制这种情况?我不知道。

(这似乎发生在我见过的每个框架中,甚至是普通的 Win32。只需打开资源管理器或其他东西并拖动其顶部或左侧边缘,您就会明白我的意思。)

0 投票
2 回答
22751 浏览

c - 获取所有 Xorg 显示器的列表

我想知道如何获得系统上所有 Xorg 显示器的列表,以及与每个显示器关联的屏幕列表。我花了一些时间浏览 Xlib 文档,但找不到可以满足我需求的函数。请假设除了符合 POSIX 的操作系统和 X(例如,没有 GTK)之外,我没有其他依赖项。如果假设这些最小依赖项不可能实现我的要求,那么使用其他库的解决方案就可以了。

非常感谢您的帮助!

0 投票
3 回答
1447 浏览

linux - 阻止 MPlayer 在 Awesome WM 中使用浮点数

我知道 MPlayer 调用了“configurerequest”,因此,它完全忽略了我在 Archlinux、AwesomeWM 中的窗口管理器的规则,它不是平铺的,而是浮动的。有没有办法阻止这种情况发生?谢谢!

0 投票
1 回答
387 浏览

x11 - 将 X11 窗口的部分标记为可拖动

如果我想要一个未装饰的窗口(例如,我可以自己绘制装饰),有没有办法告诉当前 X11 窗口管理器一个窗口区域应该是可拖动的并由窗口管理器管理?我对低级解决方案(Xlib、XCB 或类似)感兴趣。我也在寻找尽可能标准的解决方案。

另外,我可以将窗口区域标记为代表关闭按钮吗?

我问这个是因为如果我可以在窗口的装饰上附加额外的内容会很棒。这受到 Apple 的 OS X 的启发,其中所有装饰都是普通的旧NSViews,并且一些(关闭按钮等)甚至可以以记录的方式访问。添加其他内容也受到 OS X 的启发,可以右键单击与窗口相关联的文档的名称(在标题栏上)并获取文档的路径。同时,即使应用程序没有响应,窗口仍然是可移动的,因此可拖动区域必须以某种方式传递给窗口管理器(即WindowServer,对吗?)。

因此,如果在 X11 下有一种标准方式(或广泛的 FreeDesktop.org 扩展或其他方式)可以做到这一点,我很想知道它。:-)

0 投票
2 回答
1221 浏览

haskell - xmonad:移动新的浮动窗口

本期本期所述,当将 xmonad 与 compton 一起使用时,我的浮动窗口有时会呈现在其他窗口后面。我想尝试的一种可能的解决方法是让 xmonad 稍微移动新的浮动窗口,这应该将它们呈现在其他窗口之上。但是,作为 xmonad 和 Haskell 的新手,我不知道如何实现这一点。

如何告诉 xmonad “创建新的浮动窗口时,将其向右移动一个像素”?

(xmonad-0.10 和 xmonad-contrib-0.10)

0 投票
1 回答
834 浏览

x11 - 儿童友好的平铺窗口管理器

我正在寻找一个平铺窗口管理器,它可以让我的女儿(4 岁)同时运行ucblogo和显示海龟图形。

一点背景:

Ubuntu/Debian 有一个包ucblogo,它可以从控制台运行,或者以图形方式从 X 内部运行。从 X 内部运行它除了其他showturtle命令外,还允许执行将显示 logo-turtle 的命令。乌龟显示在它自己的窗口中,输入有它自己的窗口(通常xterm ucblogo是从它开始的)。图形窗口只有showturtle在发出标志命令后才“启动”,即。它从一开始就不存在。请参阅覆盆子的部分屏幕截图(其中未显示海龟,它位于BXLogo右侧的窗口中):

截图1

整个设置现在在树莓派下运行,但我想给她她自己的上网本,我躺在身边(是的,它只会在“监督”下使用;)。

平铺窗口管理器的概念对我来说有点奇怪,但我正在寻找一个平铺窗口管理器,它允许我显示两个窗口。从 text.input 窗口开始,第二个带有图形的窗口应该在上面。

任何人都可以请我指向一个初学者的资源,了解如何设置平铺窗口管理器来执行上述操作(从一个 fullscreen 开始xterm,然后在第二个窗口出现时,将此窗口平铺在第一个窗口之上或之外)。

我以前尝试ratposion过,但这似乎只能手动平铺,我已经调查过了xmonad,但它有 400 兆的依赖项,而上网本只有大约那么多的免费空间。

多一点教育背景:

我想要一个平铺窗口管理器的原因是我想暂时让所有鼠标/触摸板的杂物远离她。她已经可以使用她的用户名和密码登录,因此使用键盘的概念比鼠标更接近一些。此外,上网本的分辨率只有 800x480 像素,所以我不想在花哨的装饰上浪费任何空间。

0 投票
3 回答
1865 浏览

linux - 直接打开 Xserver 的套接字

我希望了解 Linux 桌面环境如何与 Xserver 一起使用。我在读到大多数窗口管理器不直接打开套接字,而是使用 Xlib 绑定​​来编写 WM 的任何语言,或者您可以使用更高级别的绑定 XCB;但我想知道直接向 Xserver 打开套接字有什么好处?

0 投票
1 回答
803 浏览

java - 如何在 JavaFX 2 中为未装饰的 Stage 提供高级窗口管理器设施?

出于美观和可用性的原因,我的程序使用未装饰的Stage. 我已经实现了核心功能——最小化、最大化、关闭、调整大小和拖动都存在。

现在,我发现该程序缺少一些我认为给定的高级功能:
在 Windows XP 系统上,单击任务栏中的程序条目不再将其最小化。
在 KDE 系统上,拖动不允许任何部分Stage离开屏幕。

每个功能都存在于相应的其他系统上;装饰舞台时,两者都在每个系统上工作。

我想知道我是否可以在我的程序中以某种方式重新创建这种行为,而无需恢复到装饰阶段。StageAPI 似乎没有提供任何帮助。

0 投票
1 回答
2142 浏览

c - 如何在使用 XCB 启动新应用程序时获取事件

我正在尝试制作一个非常简单的窗口管理器用于学习目的。我正在使用Cxcb图书馆。如果启动了新应用程序,我正在尝试引发事件。

现在,我创建了一个根窗口,我可以在其中接收鼠标和键盘事件。我还在窗口顶部画了一个彩色条。当我按下回车键时,xterm 将使用 fork 和 execvp 启动。这一切都很好。

当 xterm(或我认为的任何应用程序)启动时,它会绘制在条形图的顶部(x = 0,y = 0)。我想将它移低一点(x = 0,y = 16)。我想我知道如何移动窗口,使用xcb_configure_window. 但我不知道如何为新启动的应用程序获取事件。

编辑:
经过一番折腾,我得出以下结论:
如果我像这样创建父窗口:

当我生成一个新终端时,我将收到 XCB_CREATE_NOTIFY。但是,我无法在屏幕上绘制任何内容,因为我没有“订阅”该XCB_EVENT_MASK_EXPOSE事件。如果我将 values[0] 行更改为:

我仍然会收到创建事件,但是程序启动后不会立即调用公开事件,因此我的条不会被绘制。不过,一旦我启动一个新终端,它就会得到一个暴露事件,但我的初始绘图不会发生。

我创建父窗口的旧方法是:

这将绘制一个白色背景并绘制我的彩色条,因为它会立即获得 XCB_EVENT_MASK_EXPOSURE 事件。但它不会得到 XCB_CREATE_NOTIFY 事件。

那么获取 XCB_CREATE_NOTIFY 事件和 XCB_EVENT_MASK_EXPOSURE 事件的正确方法是什么?