如何将焦点放在xorg中的单个窗口上?

问题描述

我不太熟悉xorg和xlib libraray。我不是C程序员。我安装了st-simple终端。听到这样的事实:我们只能在没有窗口管理器的xorg服务器中运行终端或浏览器在在线文章中,并在Arch Wiki上进行了确认。 因此,我尝试了。

startx /usr/local/bin/st

st确实开始了,但是它没有焦点。尽管我可以写它。我只想要一个解决方案,该解决方案告诉我如何在没有焦点的光标使我离开时给予st焦点。

预先感谢

解决方法

st可能不相信PointerRoot和关注焦点鼠标。尝试使用XSetInputFocus(3)明确指定焦点。

如果您具有C编译器并安装了xorg -dev或-devel软件包,请尝试在您的st终端中运行 内部:

echo '
#include <X11/Xlib.h>
#include <stdlib.h>
int main(){
    Display *dpy; char *ws; Window w;
    if((dpy = XOpenDisplay(0)) && (ws = getenv("WINDOWID")) && (w = strtoul(ws,0))){
        XSetInputFocus(dpy,w,RevertToPointerRoot,0); XSync(dpy,False);
    }
}' | cc -Wall -lX11 -x c - -o getfocus && ./getfocus

可能有诸如xdotool之类的实用程序可以执行此操作,但据我所知,默认情况下未安装它们。

更好的办法是修复该“ suckless”终端仿真器,使其吸取更少的东西,而不使用窗口管理器和点对点接口。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...