设置西班牙语 eñe 字母的键

xra*_*alf 5 keyboard xmodmap

如何将西班牙语 eñe 字母映射到组合键?什么应用程序适合此目的 ( xmodmap, xbindkeys, ...)?

当我按Caps Lock+ 时n,它应该输入ñ

当我按Caps Lock+ 时N,它应该输入Ñ

我想在不切换键盘布局的情况下做到这一点;我只想使用英文键盘布局。

noz*_*ica 5

不完全是你想要的,但Caps Lock你可以使用AltGr

AltGr+n 生产ñ

AltGr+N 生产Ñ

要获得它,xmodmap您必须知道产生N. 这可以通过以下方式完成:

xmodmap -pke | grep "n N n N"
Run Code Online (Sandbox Code Playgroud)

在这里你可能会得到这样的:keycode 57 = n N n N n N。这意味着密钥代码57代表n密钥。

然后,您重新映射此键码,以生成ñÑ

xmodmap -e "keycode  57 = n N n N ntilde Ntilde"
Run Code Online (Sandbox Code Playgroud)

(使用此命令,=当您与 组合键入该键时产生之后的第五AltGr个位置,当AltGrShift一起按下时产生第六个位置)。

如果这样可以您可以让它在 login 后自动运行


Gil*_*il' 5

这个答案解释了如何使用 xmodmap 进行设置。将下面的配置片段放在 中~/.Xmodmap,然后运行xmodmap <~/.Xmodmap以应用它们。根据您的发行版和设置,~/.Xmodmap可能会在您登录时自动加载,或者您可能需要xmodmap显式调用from~/.xinitrc~/.xsession,或者您可能需要配置您的桌面环境以应用~/.Xmodmap

X 有一个名为 的键符(即抽象键名)Mode_switch。在除美国以外的大多数拉丁脚本语言的键盘映射中,此键符绑定到标记为 的键AltGr,该Alt键替换了右键。您可以选择映射Mode_switch到不同的键,例如Caps Lock. 在 PC 键盘上,键码(硬件发送的)为Caps Lock66,因此将其绑定更改为Mode_switch,并从中删除大写锁定修饰符:

keycode 66 = Mode_switch
clear Lock
Run Code Online (Sandbox Code Playgroud)

您还需要将修饰符与Mode_switch. 有 5 个自定义修饰符,Mod1通过Mod5; 任何人都可以,但必须有一个。运行xmodmap -pm以查看正在使用的修饰符,并选择 5 个未使用的修饰符之一,然后在您的.Xmodmap.

add Mod3 = Mode_switch
Run Code Online (Sandbox Code Playgroud)

在 xmodmap 键规范中,键发送的字符 withMode_switch=符号后的第三列中,在第四列中带有Mode_switch+ Shift。(前两列用于没有修饰符的键和Shift。)您可以使用keysym指令重新绑定现在发送的键,n而不管其键码:

keysym n = n N ntilde Ntilde
Run Code Online (Sandbox Code Playgroud)

右侧的名称实际上是键符名称。您可以在 中找到这些列表 /usr/include/X11/keysymdef.h,例如,该行#define XK_Ntilde 0x00d1表示有一个Ntilde对应于 Unicode 字符 U+00D1 的键符。有些字符没有键名;您可以改用 unicode 编号。

! U+2030 is PER MILLE SIGN, U+2031 is PER TEN THOUSAND SIGN
keysym 5 = 5 percent U2030 U2031
Run Code Online (Sandbox Code Playgroud)

请注意,如果您在 ~2009–2011 年份的系统上移动修饰符,您可能会遇到X_SetModifierMapping错误。通常,但并非总是如此,使用clear Lock可以解决该错误。