是否可以在键盘输入语言更改时运行脚本?

是否可以在键盘输入语言更改时运行脚本?

我对每次手动更改输入语言时运行脚本很感兴趣。这是因为每次更改输入语言时我的 xmodmap 都会被遗忘,因此解决这个问题也很有用。

我对使用脚本改变语言的解决方案不感兴趣。

谢谢

答案1

如果您使用的是 Unity,并使用 indicator-keyboard 来更改键盘输入,那么在 14.04 中,至少我们可以利用这一事实来更改 GSettings 键org.gnome.desktop.input-sources.current。这里有一个 Python 脚本,它监听该键的更改,然后调用一个函数来打印一些信息并执行一个子进程。

from __future__ import print_function

from gi.repository import Gio, GObject

import subprocess

def on_changed(settings, key):
  print("Key changed", key, "to", settings.get_uint(key))
  subprocess.call(["touch", "/tmp/last-input-change"])

def main():
  settings = Gio.Settings("org.gnome.desktop.input-sources")
  settings.connect("changed::current", on_changed)
  loop = GObject.MainLoop()
  loop.run()

if __name__ == "__main__":
  main()

相关内容