我想为linux制作文本替换程序。即我键入类似.alog的东西,它被/ usr / local / apache / logs /替换。我知道我可以用alaises做到这一点,但是我经常远程登录没有这些问题的机器。
我也有兴趣为学习目的这样做。
我在网上看到一些关于抓取并在X中发送按键的信息,但我找不到工作区中所有窗口的信息。
非常感谢任何有关如何执行此操作的建议。
答案 0 :(得分:1)
您可能希望以窗口管理器的代码作为起点;窗口管理器将键绑定到工作而不管窗口,这可能是一个好的开始。 dwm
被广泛认为具有漂亮的代码。
setup()
似乎直接将其事件掩码添加到根窗口:
screen = DefaultScreen(dpy);
root = RootWindow(dpy, screen);
/* ... */
/* select for events */
wa.cursor = cursor[CurNormal];
wa.event_mask = SubstructureRedirectMask|SubstructureNotifyMask|ButtonPressMask|PointerMotionMask
|EnterWindowMask|LeaveWindowMask|StructureNotifyMask|PropertyChangeMask;
XChangeWindowAttributes(dpy, root, CWEventMask|CWCursor, &wa);
XSelectInput(dpy, root, wa.event_mask);
grabkeys();