![让 xdotool 使用不同的键盘布局输入一些文本](https://linux22.com/image/1089743/%E8%AE%A9%20xdotool%20%E4%BD%BF%E7%94%A8%E4%B8%8D%E5%90%8C%E7%9A%84%E9%94%AE%E7%9B%98%E5%B8%83%E5%B1%80%E8%BE%93%E5%85%A5%E4%B8%80%E4%BA%9B%E6%96%87%E6%9C%AC.png)
我的情况:我有一台运行 Ubuntu 16.04 的带德文键盘布局的笔记本电脑。它通过 QEmu/KVM 托管 Android VM,该 VM 也配置为德文键盘布局。
当我使用真实硬件键盘在虚拟机中输入内容时,它工作得很好。但是,由于客户系统不支持共享剪贴板(或者我太笨了,无法设置它),我想在主机上使用xclip
和xdotool
来模拟将主机剪贴板内容输入到虚拟机中。
我绑定到键盘快捷键的命令是:
bash -c 'sleep 0.5 ; xdotool type --clearmodifiers "$(xsel -b)"'
它完成了它的工作并输入了主机剪贴板缓冲区中的任何内容。不幸的是,当我使用它向我的虚拟机中输入内容时,似乎会出现一些键盘布局混乱。例如,在虚拟机中https://youtube.com
变成httpsÖ//zoutube.com
。
对我来说,这看起来就像xdotool
是使用英文 QWERTZ 键盘布局来打字,而不是我到处配置的德文布局,因为在英文布局中德文键Ö用于 ` :,并且键Y和Z也被交换了(还有其他差异)。
我该如何教导xdotool
我的 VM 或任何导致混淆的组件使用正确的键盘布局进行打字?
答案1
这可能不是最干净的解决方案,但对我来说有效。
setxkbmap
在命令前使用xdotool
:
$ xdotool type azerty
qwerty
$ setxkbmap fr && xdotool type azerty
azerty
您可以通过将当前布局包含在配置文件中来避免在脚本中更改键盘布局.xinitrc
。如果文件不存在,请创建该文件。
setxkbmap fr
答案2
如果您想在 ubuntu 中将其用作热键,请使用以下命令:
sh -c 'setxkbmap de && xdotool type [email protected]'