首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在icewm中注册一个快捷键来键入一个对话框?

如何在icewm中注册一个快捷键来键入一个对话框?
EN

Ask Ubuntu用户
提问于 2019-11-10 10:19:51
回答 2查看 256关注 0票数 1

我正在尝试设置快捷键,以键入常见的对话。我可以在终端或icewm命令栏(甚至从gmrun)中使用xdotool类型:

xdotool key Aacute

但是以下键映射(在icewm文件中)不起作用:

代码语言:javascript
复制
key "Ctrl+Alt+a"                  xdotool key Aacute
key "Ctrl+Alt+a"                  xdotool --delay 1000 key Aacute

相反,当我键入快捷方式(如果在终端或文本编辑器中)时,我只看到光标闪烁一次,但没有发生任何其他情况。下面显示了一个弹出窗口,因此键代码本身是正确的:

代码语言:javascript
复制
key "Ctrl+Alt+a"                  zenity --info --text="shortcut works"

是否有人有办法注册键绑定,以便实际在活动应用程序中键入对话框?

EN

回答 2

Ask Ubuntu用户

回答已采纳

发布于 2019-11-14 08:47:13

我无法使我原来的解决方案工作,所以我改变了键盘映射。默认的美国键盘映射没有我所需要的对话,但国际版本有。试试看:

setxkbmap -layout 'us(intl)'

但是,在默认情况下,国际化版本对某些键使用compose。例如,“字符不再立即响应”。因此,我选择了基于美国键盘创建自己的键盘映射。

我创建了一个新文件:/usr/share/X11/xkb/symbols/erik

代码语言:javascript
复制
partial default alphanumeric_keys
xkb_symbols "basic" {
  include "us"
  include "eurosign(5)"

    key <AC01> { [         a,          A,        aacute,           Aacute ] };
    key <AD03> { [         e,          E,        eacute,           Eacute ] };
    key <AD08> { [         i,          I,        iacute,           Iacute ] };
    key <AD09> { [         o,          O,        oacute,           Oacute ] };
    key <AD07> { [         u,          U,        uacute,           Uacute ] };

    key <RALT>  { type[Group1]="TWO_LEVEL", [ ISO_Level3_Shift, Multi_key ]   };  

    modifier_map Mod5   { <RALT> };
};

要让xkb获取更改:

sudo dpkg-reconfigure xkb-data

要尝试键盘映射:

setxkbmap -layout erik

现在,alt_gr + 阿伊努应该键入亚努乌。

通过使用icewm启动文件在启动时调用上面的命令,我做出了永久的更改。我认为应该可以使用您的发行版键盘开关来选择布局,但我还没有对此进行测试。请随意命名文件的其他东西,除非你想给我巨大的荣誉命名你的键盘映射以我的名字。请确保避免使用2个字母代码,因为所有默认的国家映射都是这样命名的。

注:

您可以检查符号目录中的其他映射文件以获取示例。

在这里可以找到一些用于理解文件格式的资源:

https://www.x.org/wiki/XKB/

票数 0
EN

Ask Ubuntu用户

发布于 2021-02-16 02:39:50

使用setxkbmapxmodmap似乎是正确的做法,但是FWIW和FTR在我遇到这个问题后发现下面的方法对我有用。我希望这能帮助其他想要使用xdotool的人。

我有xdotool模仿这些键,因为我的键盘上没有这些键。注意使用&在后台运行命令,这样IceWM就可以从处理热键返回,并避免干扰xdotool。

200毫秒是我能使用的最短的延迟,而且仍然有可靠的工作。我不确定--clearmodifiers对您的用例是否有意义。

代码语言:javascript
复制
key "Ctrl+Up"          xdotool sleep 0.2 key --clearmodifiers Page_Up &
key "Ctrl+Down"        xdotool sleep 0.2 key --clearmodifiers Page_Down &
key "Ctrl+Shift+Up"    xdotool sleep 0.2 key --clearmodifiers Home &
key "Ctrl+Shift+Down"  xdotool sleep 0.2 key --clearmodifiers End &

还请注意,按住这些键并不会导致预期的重复行为(因为IceWM热键并不是最佳选择),但就我的目的而言,这是很好的。

票数 1
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1187683

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档