我们配置输入法时,都是习惯性的在输入法启动前导出环境变量:

export XMODIFIERS=@im=SCIM

export GTK_IM_MODULE=SCIM

他们有何用意呢??

我们常用的输入法有以下几种:

1. XIM (X输入法, 所有 X 图形程序都是可用的)

2. GTK immodule(GTK输入模块, 专给 GTK+2/Gnome 程序用的,GTK+ 1 不适用)

3. QT immodule(QT输入模块, 专给 QT/KDE 程序用的)

XMODIFIERS实际上是指定 X图形程序的输入法.

GTK_IM_MODULE 则是指定GTK+2的程序默认所用的输入法模块.

有关GTK+2 所有输入法模块都安装在 /usr/lib/gtk-2.0/2.4.0/immodules/ 目录下.

关于他们之间的关系,我们有一个比较直观的经验就是, 当我们因为设置XMODIFIERS失误(比如在有些情况下scim小写),导致X输入法没法使用时,我们在gnome-terminal里单击鼠标右键,移动到 "输入法",再选择 "SCIM Input Method"时,我们在gnome-terminal下却是可以输入中文的. 当然前提是我们已经安装scim-gtk2-immodule包.

一般情况下XMODIFIERS的优先级高于GTK_IM_MODULE ,即当我们同时设定这两个环境变量,在GTK+2的应用程序里优先使用的是XMODIFIERS指定的X输入法.

GTK immodule 比起 XIM 有很多好处:

1. 不受 locale 限制

2. 完全不用设定,随时可用,会自动调用 IM server

3. 可以任意切换各种不同 IM server,随时可改,无需重启X.

4. 真正支援游标跟随.

但是因为 c++ 的兼容性问题使 scim-gtk2-immodule 跟许多程序相冲突,故而在目前,如果我们使用scim的话,还不能流畅享受到GTK 输入模块的种种妙处,只能使用 Scim for XIM.

注:mozilla, firefox, thunderbird 等不是正规的 GTK+ 2,没办法用鼠标动态选择输入法. 如果你仅仅使用GTK immodule的话, 一定要使用GTK_IM_MODULE指定默认的GTK 输入模块。

最新文章

  1. Java Persistence with Hibernate
  2. sublime使用小技巧——自动保存后缀名与自动匹配语法
  3. Vim保存只读模式下的修改
  4. ubuntu 安装 ia32-libs
  5. java 对象序列化 RMI
  6. SMA2SATA、PCIe2SATA转换模块(也有叫:Sata Test Fixtures)
  7. AngularJS:何时应该使用Directive、Controller、Service?【新手必看】
  8. sourceinsight 相对路径设置
  9. Nyoj 吝啬的国度(图论&&双DFS)
  10. Andy Williams 《Love Story》
  11. 应用CSS的page-break-after属性 实现WEB页面强制分页打印
  12. 关于c语言变量的内存分布测试程序
  13. python爬虫第一天
  14. MBProgressHUD1.0.0源码解析
  15. JPA 中文乱码问题
  16. Jquery购物车jsorder改进版,支持后台处理程序直接转换成DataTable处理
  17. 基于Ado.Net的日志组件
  18. k8s踩坑记 - kubeadm join 之 token 失效
  19. Beamer制作索引
  20. IEnumerable对象的Distinct方法重写

热门文章

  1. JBoss AS 7之基本配置和部署(The Return Of The King)
  2. margin和padding的学习
  3. Oracle EBS SLA(子分类账)
  4. 【转载】MyEclipse使用指南(精简版)
  5. 【LeetCode】164. Maximum Gap (2 solutions)
  6. 运行shell出错: 没有那个文件或目录
  7. EditPlus集成Java编译和运行命令组建轻量级Java SE开发工具
  8. FA_在建工程转固定资产(流程)
  9. GL_总账完整会计周期业务(流程)
  10. Android多点触摸放大缩小图片