我可以为每种输入语言设置键盘快捷键吗?例如,我想为英语设置“Ctrl + 8”,为乌克兰语设置“Ctrl + 9”,为俄语设置“Ctrl + 0”。我不想切换和搜索我需要的语言。这需要时间。我想直接切换到我想要的语言。我在 Windows 中有这个功能。也许我需要安装一些插件?
答案1
去系统设置 - 键盘 - 快捷键. 点击“添加”按钮。
(请参阅此处了解如何创建自定义快捷方式:http://web.archive.org/web/20150705203244/http://bigknol.com/create-custom-keyboard-shortcuts-in-ubuntu-for-launching-chrome-firefox/)
对于名称,写入输入语言的名称 - “英语”。
对于命令写
gsettings set org.gnome.desktop.input-sources current 0
这里0表示输入语言的编号。(0 表示第一个,1 表示第二个,等等)
然后按下创建快捷按钮并按下您想要的组合键。
根据输入语言的顺序更改数字。例如写入
gsettings set org.gnome.desktop.input-sources current 1
用于创建第二种语言的快捷方式。
答案2
据,直到...为止当前的在 GNOME 3.2 中已弃用org.gnome.desktop.input-sources
,因此对于 Ubuntu 18.04,您可以使用以下命令之一:
对于第一语言:
gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval "imports.ui.status.keyboard.getInputSourceManager().inputSources[0].activate()"
对于第二语言:
gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval "imports.ui.status.keyboard.getInputSourceManager().inputSources[1].activate()"
答案3
由于 Ubuntu 22.04 GNOME 不再允许使用input-sources
或Eval()
本机接受,因此您必须使用以下解决方法。
- 安装 GNOME 扩展评估GJS- 此扩展提供了不受限制的 Eval() dbus 方法,用于在合成器中运行任意代码。
https://github.com/ramottamado/eval-gjs.git cd eval-gjs make install
- 安装 gnome-shell-extension-manager
sudo apt install gnome-shell-extension-manager
注销并重新登录
启动 gnome-shell-extension-manager 并启用 Eval-GJS
转到设置->键盘->键盘快捷键,然后使用以下命令添加自定义快捷键:
gdbus call --session --dest org.gnome.Shell --object-path /dev/ramottamado/EvalGjs --method dev.ramottamado.EvalGjs.Eval "imports.ui.status.keyboard.getInputSourceManager().inputSources[0].activate()"
将 中的索引替换inputSources[0]
为您要更改为的输入法的实际索引。第一个布局将是inputSources[0]
,第二个布局将是 ,inputSources[1]
依此类推。
答案4
我觉得具有讽刺意味的是,这个问题的答案总结了 Ubuntu 中无模式(无状态)布局切换的悠久历史及其复杂的命运。
- 它
setxkbmap
与 GNOME Shell 的配合并不好。它不会更新 UI 指示器,并且会破坏通常配置的布局切换快捷方式。 - 已
gsettings set org.gnome.desktop.input-sources current
弃用,不再起作用 gdbus call … org.gnome.Shell.Eval …
由于安全问题,也被弃用。- 有一个替代方案
Eval
:ramottamado/eval-gjs但它并没有解决安全问题。事实上,它引入了安全问题!摘自他们的 README:
扩展至https://extensions.gnome.org/extension/XXXX/eval-gjs/并非由我上传或维护。请不要安装此扩展。
因此,我制作了自己的 GNOME Shell 扩展并与全世界分享:什里伍克(也可以从 GitHub 获取:madhead/shyriiwook)。
这是一个非常简单、简约的扩展。它没有任何 GUI。安装后,一个新的 D-Bus 接口将出现在您的 GNOME Shell 会话中。您可以查询当前配置或调用方法来激活所需的布局:
$ gdbus introspect \
--session \
--dest org.gnome.Shell \
--object-path /me/madhead/Shyriiwook \
--only-properties
node /me/madhead/Shyriiwook {
interface me.madhead.Shyriiwook {
properties:
readonly as availableLayouts = ['us', 'uk', 'ru'];
readonly s currentLayout = 'uk';
};
};
$ gdbus call \
--session \
--dest org.gnome.Shell \
--object-path /me/madhead/Shyriiwook \
--method me.madhead.Shyriiwook.activate "us"
这很容易编写脚本,您甚至可以将此命令原始放入“设置”→“键盘”→“键盘快捷键”→“查看和自定义快捷键”→“自定义快捷键”下的自定义快捷键中。您可以为每种语言设置一个。