设置热键切换语言

设置热键切换语言

我如何设置 Caps Lock 来设置俄语,以及 Shift + Caps Lock 来设置英语?而不仅仅是 Ctrl + Shift 来切换它们。

答案1

下面的 Python 代码旨在绑定到两个不同的快捷键。例如,对于英语,将++Ctrl绑定到Alt1

python /path/to/script us

对于俄语,将Ctrl+ Alt+绑定2

python /path/to/script ru

有关设置快捷方式的更多信息,请继续阅读Luis Alvarado 的回答

虽然实际上设置输入源取决于 gsettings 数组中的源索引,但此脚本会自动确定每个源的索引并进行适当设置

脚本源代码

from gi.repository import Gio
import sys

def gsettings_get(schema,path,key):
    if path is None:
        gsettings = Gio.Settings.new(schema)
    else:
        gsettings = Gio.Settings.new_with_path(schema,path)
    return gsettings.get_value(key)

def gsettings_set(schema,path,key,value):
    if path is None:
        gsettings = Gio.Settings.new(schema)
    else:
        gsettings = Gio.Settings.new_with_path(schema,path)
    return gsettings.set_uint(key,value)


sources = list(gsettings_get('org.gnome.desktop.input-sources', None ,'sources' ))

index = 0
for source in sources:
    for item in source:
        if sys.argv[1] == item:
           index = sources.index(source)

gsettings_set( 'org.gnome.desktop.input-sources' , None, 'current',index )

答案2

据我所知,你能做的就是切换到下一种语言。你可以点击任务栏上的语言显示,然后选择“文本输入设置”。

你有两个选择:

Switch to next source using:
Switch to previous source using:

通过更改它们,您可以在语言之间切换。如果您只有两种语言,则只需设置第一种(因为第二种语言不会增加您的功能)。

在您的情况下,您可以将 caps lock 设置为切换到下一个源,将 shift+caps 设置为切换到上一个源。

但是,如果我可以提出一些建议,那就是仅将切换到下一个源设置为 shift+caps。这样,在输入文档时,按 caps lock 不会改变语言,从而让您更轻松地在大写和非大写字符之间切换。每当您按下 Shift+Caps 时,它都会从俄语更改为英语,从英语更改为俄语。

相关内容