如何确定〜/ .XCompose文件是否已加载?


18

我添加了一个简单的序列,但是它不起作用。如何确定操作系统(带有Unity的Ubuntu 12.10)是否正在实际加载文件?


我发现 -不,这不是常规脚本,因此这些方法显然不起作用。好吧,那我不知道。但是请查看链接;也许你可以拿起一些东西。
伊曼纽尔·伯格

Answers:


15

撰写定义($XCOMPOSE~/.XCompose或下一个文件/usr/share/X11/locale)由每个客户端应用程序加载,而不是由X服务器。因此,请确保您正在测试的应用程序正在加载~/.XCompose。您可以看到它正在读取哪些文件strace

$ strace -e open xterm |& grep Compose
open("/home/gilles/.XCompose", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/X11/locale/en_US.UTF-8/Compose", O_RDONLY) = 5
$ touch .XCompose
$ strace -e open xterm |& grep Compose
open("/home/gilles/.XCompose", O_RDONLY) = 5

大多数应用程序仅在启动时加载文件,因此,如果您更改撰写定义,则必须重新启动应用程序。

如果应用程序未加载这些文件,则可能是它们未使用“ X输入法”(xim)。您可以强制GTK或QT应用程序使用xim:

$ GTK_IM_MODULE=xim QT_IM_MODULE=xim strace -e open xterm |& grep Compose

如果这解决了问题,则应考虑全局设置环境变量,或将其alias用作针对每个应用程序的解决方法。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.