我想找到C/Xorg代码来"输入"鼠标左键单击.我期待一行代码,但我发现用C写的唯一的东西大约是二十几行而且它们无论如何都不起作用:(它似乎可以在Windows中完成,但我在Linux中.
问题的原因是我编写了一个实用程序,可以让我使用键盘在几个屏幕之间移动鼠标指针.唯一的问题是,如果我移动到一个窗口abc曾经的位置,但另一个窗口xyz已经加载到同一位置的顶部,鼠标指针移动到xyz就好了,但是xyz没有焦点 - 直到我左键单击鼠标.所以,我想在我的代码中构建'click'.
我尝试过的代码不起作用是基于XSendEvent().
我对 linux 比较陌生,并且疯狂地尝试精益 bash,最终是 zsh。无论如何,目前这让我很难过:
#!/bin/bash
history -s "a_string"
Run Code Online (Sandbox Code Playgroud)
.... 不起作用。我已经对这个想法尝试了十几种变体,但没有任何效果。有任何想法吗?
我想知道是否可以编写一个 zsh 脚本,该脚本将向提示符写入命令但不执行它,即将它留在那里供我编辑,然后在我准备好时执行。我可以通过省略最后的“\C-m”来使用键绑定来做类似的事情。例如:
bindkey -s "\e[1;3C" "howdy!"
Run Code Online (Sandbox Code Playgroud)
...我按 Alt+RightArrow 和文本“你好!” 在提示符下打印并留在那里。
我也可以通过将我的命令写入历史文件然后用向上箭头调用它来做我想做的事情。我试过 'echo -n sometext' 但它不起作用。
我可以编写一个脚本来退出(说)“你好!”在命令行上吗?实际上,我希望脚本基于几件事构建一个复杂的命令,但我希望脚本将其留在 CLI 上进行最终编辑,因此必须防止自动执行。
提前致谢。
全部,
尽管我对 bash 感到厌恶,但我想我应该尝试一下 zsh,它似乎被很好地谈论。所以,我立刻就遇到了这堵砖墙:
function z
{
var="ls -l"
"$var"
}
Run Code Online (Sandbox Code Playgroud)
在 bash 中执行“ls -l”,在 zsh 中它给我“找不到命令:ls -l”,因为我对 zsh 完全陌生,所以我不知道它和 bash 之间可能有什么不同,这会导致多于。