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

window - 使用 xlib 生成 ButtonPress 事件

我正在尝试编写自己的窗口管理器来使用 Xlib/X11。我有一些麻烦。为了实现一些目标,我决定抓取鼠标指针并过滤鼠标事件。

我已经使用 XGrabPointer 将所有鼠标消息重定向到我的应用程序,但是有问题 - 我无法获得窗口的 XID,它应该检索消息。此外,我不确定我是否更正了填充 xevent 结构。

0 投票
1 回答
4546 浏览

macos - OSX Quartz Event Taps:事件类型和如何编辑事件

这是我的代码:

首先..如果我想编辑事件怎么办?例如,我监听 keyDown 事件,如果它是“a”,我将其转为“b”,或者实时编辑鼠标位置,或者例如简单地捕获一个事件并使其无效(禁用特定的例如键..)

第二.. CGEventType 是用一个仅列出几种类型的枚举定义的.. 例如,当我点击 CMD 时,我得到一个 12,但这与枚举中指定的值不匹配.. 我错过了什么?

0 投票
5 回答
35816 浏览

linux - 构建窗口管理器

我的一个新家庭项目将是一个简单的窗口管理器,但在开始之前我需要知道一些事情:

  • 哪种语言最好?
  • 在哪里可以获得一些学习资源?
0 投票
5 回答
6441 浏览

linux - 如何以编程方式切换到compiz中的特定窗口?

是否有命令告诉 compiz 我们要放在前面并将焦点设置到特定窗口?我们应该如何识别该命令中的窗口?

这个问题背后的原因是以下用例

假设我们有一个 wiki 来记录我们发现的任何有趣的东西。使用键盘快捷键将带有我们的 Wiki 页面的浏览器窗口放在前面并立即开始输入然后用另一个组合键切换到我们之前工作的应用程序会非常方便

我知道ALT+TAB在最后两个使用的窗口之间切换,但不能支持更复杂的应用程序组合。例如浏览器+Eclipse+ Wiki

如果有类似描述的命令,很容易从 KDE 或 GNOME 界面为其添加快捷方式

0 投票
2 回答
2036 浏览

wxpython - 在工作区/虚拟桌面之间移动窗口

我有一个仅限 Linux 的 wxPython 应用程序,其 wxFrame 用作菜单/工具栏,它可以打开独立于工具栏本身的新窗口。
由于用户可以将这些窗口中的任何一个移动到任何虚拟工作区,我正在寻找一种在用户激活窗口时将工具栏移动到当前工作区的方法。
我尝试使用 Raise(),但这样工具栏也获得了焦点,我不希望这样。请注意,我不能使工具栏具有粘性,因为我不想在每个工作区都使用它。

谢谢!

(wxPython 2.8.9.1,Ubuntu 9.04)

跟进:

我检查了xfwm4的源代码,看看它是如何“将窗口移动到工作区 N”的。它使用_NET_WM_DESKTOP 提示,所以我正在尝试使用 Python 来实现它。这是我现在的代码:

看起来代码有点成功,因为 xprop 检测到更改:

但问题是窗口没有移动到所需的工作区:/

我应该使用 python-xlib 而不是 pygtk 吗?如果是这种情况,我如何从 wxFrame(或 gtk.Window 或 XID)中获取相应的 Xlib.Window?

跟进2:

使用 xprop 也会发生同样的情况。

它检测到更改的 _NET_WM_DESKTOP,但窗口仍然存在:/ 但是,我注意到以下内容:

  • 窗口的图标化版本出现在预期的工作区
  • 如果我在“源”工作区上图标化窗口,它就会消失

所以,也许我也应该向窗口管理器发送某种“刷新”消息..?

0 投票
5 回答
1646 浏览

c++ - 窗口处理管理器

我有一个运行三个应用程序的 Windows 机器。当应用程序启动时,每个应用程序都会创建一个无边界窗口,该窗口的位置使得它们以特定方式重叠。

目前,当我单击底部窗口上的控件时,它会到达窗口堆栈的顶部。

我需要确保每个窗口在窗口堆栈中保持其顺序,即使窗口接收到输入。

我在想我需要编写一些简单的窗口管理器来维护窗口的正确 Z 顺序。

问题是,我需要知道一个特定的窗口是否改变了位置。我发现有一条 WM_WINDOWPOSCHANGING 消息,但我的理解是该消息被发送到位置已更改的窗口。

我需要以某种方式通知我的窗口管理器应用程序 Z 顺序已更改。

有什么方法可以捕获所有 WM_ 消息并确定该消息是否适用于我希望控制的窗口之一?

0 投票
4 回答
1325 浏览

window-managers - Windows 的窗口管理器的名称

我有一个简单的问题,

我搜索 Windows 窗口管理器的确切名称。

对于 Unix:X 窗口系统

Mac : 石英

窗户:?

谢谢。

0 投票
1 回答
2210 浏览

java - 如何停止/解决 Java 应用程序在 Linux 窗口管理器中窃取焦点

我们想在 Java 中快速制作小部件原型。我们将它们覆盖在以专有的第 3 方图形包编写的显示器顶部。我们发现 Java GUI 从窗口管理器中窃取了键盘焦点。

窗口管理器是 fvwm,我尝试对其进行配置,以便将 Java 应用程序设置为不获得焦点,此外,如果它确实获得焦点,则将其拿走并将其提供给其他 GUI。

如果我用 Java 应用程序运行它,它就不起作用(只要鼠标在 Java GUI 上它就有键盘焦点)——如果我用一些标准的 X GUI 小部件(XEyes)代替 Java GUI,它就像一个魅力. 这为 Java 不尊重 ICCCM 的说法(由 fvwm 的人员维护)提供了一些可信度。

我想知道其他人是否已经解决了这个问题,如果解决了,如何解决。到目前为止,我有几个选择来尝试解决这个问题:

1)旋转Java设置,希望如果我在那里关闭焦点,它可能会将焦点控制交还给窗口管理器(到目前为止,我已经在父JFrame上尝试过“setFocusable(false)”。这不起作用。A线程“ http://java.sun.com/javase/6/webnotes/trouble/TSG-Desktop/html/awt.html#gdaao ”表示我应该改为“Window.setFocusableWindowState(false)” 有问题的GUI没有尚未在 Window 中重做,但我也不完全相信 Java 会放弃焦点

2) 使用 JNI 在 Java 程序中进行低级 X 调用。我认为这可能会奏效,但是,我从来没有玩过低级别 X。我不确定我应该使用什么调用(XtSetKeyboardFocus() 应该是危险的调用......)或者我如何识别我正在操作的 GUI(在这方面 fvwm 很好,因为他们有一个允许您单击另一个 GUI 并找出它的“名称”和“类”的 GUI)

3)使用“更强”的窗口管理器。一些不使用 ICCCM 的窗口管理器可能能够更好地处理 Java。当然,经理太多了,我不知道该专注于什么。同样,许多似乎缺乏按应用指定重点(大多数似乎只关心广泛的政策)。

0 投票
10 回答
5825 浏览

winforms - Mono winforms 应用程序在 Ubuntu 中全屏显示?

只是想知道是否有一种已知的方法可以让 Mono System.Windows.Forms 应用程序在 Ubuntu/Gnome 上全屏显示。

Mono 是 2.4.2.3 Ubuntu 是 9.10

在 Windows 上执行此操作需要 pinvoke,显然不会在这里工作。

这就是我将窗口边框设置为无,将窗口位置设置为中心,并将状态设置为最大化:

替代文字 http://dl.dropbox.com/u/116092/misc/permalink/joggler/screenshot01.png

更新。

也试过:

  • this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
    this.WindowState = System.Windows.Forms.FormWindowState.Maximized;

  • CTRL-F11

  • 文本 = 字符串。空;// 无标题
    MaximizeBox = false;
    最小化框 = 假;
    控制框 = 假;
    FormBorderStyle = 无;
    WindowState = 最大化;

  • FormBorderStyle = FormBorderStyle.None;
    位置 = 新点 (0, 0);
    大小 = Screen.PrimaryScreen.Bounds.Size;

所有这些我都得到了相同的结果。

我遇到了一个涉及 _NET_WM_STATE_FULLSCREEN 的 pinvoke 的线索,但就我所知。对此的任何指示将不胜感激。

0 投票
1 回答
72 浏览

window-managers - 更改后 Fluxbox 编译问题

我正在尝试在这里进行更改:http: //fluxbox-wiki.org/index.php?title=Howto_Make_dblclick_titlebar_maximize

我正在使用通量盒源的当前 git 版本。

我假设这些指令可能对当前的 git 版本不再有效。

在 void FluxboxWindow::setupWindow() 函数中,我看不到对 CommandRef 或框架的引用。

我想知道我是否有可能在知识有限的情况下确定他们应该在该功能中的位置?

我仍在努力学习编程,但还不够了解他们应该去哪里。我假设我不能只在该函数的任何位置粘贴建议的行,但为什么不呢?

如果需要,我可以粘贴源代码,但我不确定粘贴到哪里。