当我在 Linux Mint 机器上使用英语、美国国际(带有死键、altGr 死键或替代)的任何变体时,我总是遇到这种行为。
当我按下这些键之一时:' "然后在它们后面跟着一个“非重音”字符,比如 a[或b根本没有输出。
而在 Windows US-International 中,它将打印[或b. 如果我想输入这个,我必须用空格而不是任何“非重音”字符来转义每个死键。这在编程时很烦人(不是真的,但我用 Windows 'Qwerty International' 培训了 Typing.io 并且在系统之间来回切换很烦人)。
有什么办法可以改变它,让它像在 Windows 中一样工作?
我的首选键盘配置是美国国际。当我在 MS-Windows 上使用它并键入某些特殊字符(即~
'
"
)后跟a
,o
n
我得到á
ó
或ñ
如我所愿。
但是,当我键入这些字符后跟一个不匹配的字母时,我会得到该特殊字符后跟该字母。所以如果我想打字,比方说,"q
我可以通过按 来完成"q。但是,如果我在 Gnome 上做同样的事情,我需要这样做"?q,否则我会听到响铃。
另外,如果我想输入两个单引号,在 Gnome 中我需要输入'四次,而不是在 MS-windows 上输入两次。我知道这是一个相当小的烦恼,但它确实让我感到烦恼,而且我认为 GNU+Linux 是一个高度可定制的操作系统,我想了解更多关于我如何做这些事情的信息。更改为普通的美式键盘不是一种选择,因为我需要使用诸如á
ó
或 之类的字符ñ
来输入西班牙语。
注意:我正在使用 Debian
我用来XIM
让撰写键考虑我的~/.XCompose
文件(这是唯一考虑它的输入方法,我尝试的所有其他输入方法都使用硬编码表)。然而,它打破了 GTK 和 QT 应用程序中的死键:如果在charmap
(GTK) 中我按^ a,它只会打印a
。不过,该^键已被识别,因为当我按下它时,它会使插入符号停止闪烁。在kate
(QT)中,它^a
改为打印(两个单独的字符)。
使用时如何使死键起作用XIM
?
以下是相关的环境变量:
$ env | grep '\(IM\|XMODIFIERS\)'
ECORE_IMF_MODULE=xim
QT_IM_MODULE=xim
GTK_IM_MODULE=xim
XMODIFIERS=@im=none
Run Code Online (Sandbox Code Playgroud)
xev
这是按下时的输出^ a:
KeyPress event, serial 37, synthetic NO, window 0x1a00001,
root 0xd9, subw 0x0, time 29204065, (131,637), root:(135,656),
state 0x10, keycode 34 (keysym 0xfe52, dead_circumflex), same_screen YES,
XLookupString gives 1 bytes: (5e) "^"
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease …
Run Code Online (Sandbox Code Playgroud) 我目前正在努力创建适合法语瑞士键盘的特定希腊语键盘布局,
我创建了一个键盘布局/usr/share/X11/xkb/symbols/
(
https://github.com/grecromand/grecromand/blob/master/linux/grecromand)。
我使用了代码
dead_grave
。但我想创建自己的dead_xx
. 它将dead_sigma
产生?
if 后跟空格或标点符号, ?
否则。
我已经了解 dead_key 定义在/usr/share/X11/locale
但不是更多。
我有很多问题:
我正在使用 KDE 作为我的主要桌面环境运行 Kubuntu。
前段时间我设置了死键,所以我可以输入中文拼音和其他重音字母和特殊字符。
作为旁注,我使用 IBUS,因为它似乎最容易设置我的中文字符 IME。
在更新之前,死/组合键在所有应用程序中都能正常工作。
现在,它们适用于 QT 应用程序,但不适用于 GTK 应用程序(例如此浏览器)。这是不幸的,因为这是我打字最多的地方。我现在的解决方法是在 KDE 的启动器中输入重音符号并复制过去(Alt+F2,使用死键输入,Ctrl+X,Esc,Ctrl+V),这有点麻烦。
我不确定哪些信息在调试时有用,因为我已经有一段时间没有设置这些信息了。
有趣的是,环境变量 $QT_IM_MODULE 没有值。$GTK_IM_MODULE 有 xim。
我安装了 ibus-gtk3,我可以发布任何其他有助于诊断的信息。
我已在不同位置(例如 en_US、/etc/X11/xinit/xinput.d/ibus 等)中粘贴了安装脚本下方。我不确定哪个优先,也不确定是否正在运行,因为 QT_IM_MODULE 在我回显时没有任何值,而这些都表明如果不是 ibus,默认情况下它应该是“xim”。
我还应该提到,下面提到的库(im-ibus.so 等)我没有,也找不到如何获取它们或将它们链接到哪里。事实上,我的 gtk-3.0.0/ 和 qt4/ 目录甚至没有 inputmethod/ 或 plugin/ 目录。这可能是问题的一部分,但同样,它在更新之前工作,所以我不知道。
# start IBus
# vim: set sts=4 expandtab:
# start IBus daemon
#/usr/bin/ibus-daemon --daemonize --xim
XIM=ibus
XIM_PROGRAM=/usr/bin/ibus-daemon
XIM_ARGS="--xim"
# set variables for the plain XIM
XMODIFIERS=@im=ibus
GTK_IM_MODULE=xim
# use immodule only when available for both GTK 2.0 and 3.0
IM_CONFIG_MARKER2=0 …
Run Code Online (Sandbox Code Playgroud) 美国国际键盘允许通过死键添加变音符号。具体来说:
`a
映射到 à 并
'a
映射到 á。
在 X 中,使用国际或标准美国键盘,我想改为设置这样的映射:
a`
映射到 á 并
a'
映射到 à。
如您所见,我希望在基本字母之后键入死键,并且我更喜欢交换重音和重音死键。(这使我的打字速度更快、更自然,并且如果禁用了死键功能,则带有附加变音符号的单词更具可读性)。
你能告诉我合适的工具/配置文件来实现这一点吗?
如果它与答案有关,我的发行版是 Arch Linux。