使用 Ctrl+Shift+Num 切换到特定键盘布局

使用 Ctrl+Shift+Num 切换到特定键盘布局

我想要的是能够按下:

Ctrl+ Shift+ 1- 切换到英语键盘布局
Ctrl+ Shift+ 2- 切换到希伯来语键盘布局
Ctrl+ Shift+ 3- 切换到俄语(注音)键盘布局

我已经看到这里已经提出了类似的问题,但我看到的答案只setxkbmap破坏了 UI 键盘布局选择器,这是不受欢迎的。

谢谢你的帮助。

答案1

如果您使用的是 Ubuntu,您可以设置默认的“键盘布局”设置以在键盘布局之间切换。但是您不能使用列出的键盘快捷键。我不知道该怎么做。

如果您打开系统设置菜单,请导航至键盘布局。打开后,您将看到当前的键盘布局。如果您单击选项并选择“更改布局的键”,则可以选择要更改布局的组合。其中一些组合是

Alt+Caps Lock

Alt+Ctrl

Alt+Shift

同时按下两个 Alt 键,等等。

但是没有办法设置您自己的自定义快捷键。我尝试查看是否有可能的终端代码,但没有手动输入键盘布局设置,例如 Firefox 等其他程序:man firefox如果有,您可以轻松创建自定义键组合来根据您想要的布局运行命令。

此外,没有指示器显示您切换到了哪种布局,唯一的检查方法是输入一些内容。但它似乎确实按照布局列出的顺序进行。

键盘布局选项菜单的屏幕截图

我希望这对你有帮助。

答案2

  1. 打开“系统设置”>“键盘”>“快捷键”>“自定义快捷键”
  2. 按“+”创建一个新的
  3. 为第一个布局添加您喜欢的任何名称和以下命令: gsettings set org.gnome.desktop.input-sources current 0

  4. 按“应用”

  5. 按下右栏中的“禁用”按钮进行按键映射
  6. 分配您的热键

步骤 3 的屏幕截图: 在此处输入图片描述

步骤 5 的屏幕截图: 在此处输入图片描述

答案3

以下解决方案适用于 Ubuntu 19.10。

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()"

取自这里

因此,只需添加您喜欢的键绑定,并根据需要修改上述命令中的索引(0 - 您的第一个布局,1 - 您的第二个布局,依此类推)。

答案4

2024年,两者都不 gsettings set org.gnome.desktop.input-sources current也不 gdbus call … org.gnome.Shell.Eval …"正在工作。它们已被弃用。您可以尝试Eval使用ramottamado/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', 'de', 'jp'];
      readonly s currentLayout = 'us';
  };
};

$ gdbus call \
    --session \
    --dest org.gnome.Shell \
    --object-path /me/madhead/Shyriiwook \
    --method me.madhead.Shyriiwook.activate "de"

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

相关内容