每种输入语言的键盘快捷键

每种输入语言的键盘快捷键

我可以为每种输入语言设置键盘快捷键吗?例如,我想为英语设置“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,您可以使用以下命令之一:

  1. 对于第一语言:

    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()"
    
  2. 对于第二语言:

    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-sourcesEval()本机接受,因此您必须使用以下解决方法。

  1. 安装 GNOME 扩展评估GJS- 此扩展提供了不受限制的 Eval() dbus 方法,用于在合成器中运行任意代码。
https://github.com/ramottamado/eval-gjs.git
cd eval-gjs
make install
  1. 安装 gnome-shell-extension-manager
sudo apt install gnome-shell-extension-manager
  1. 注销并重新登录

  2. 启动 gnome-shell-extension-manager 并启用 Eval-GJS

  3. 转到设置->键盘->键盘快捷键,然后使用以下命令添加自定义快捷键:

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 …由于安全问题,也被弃用。
  • 有一个替代方案Evalramottamado/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"

这很容易编写脚本,您甚至可以将此命令原始放入“设置”→“键盘”→“键盘快捷键”→“查看和自定义快捷键”→“自定义快捷键”下的自定义快捷键中。您可以为每种语言设置一个。

相关内容