Ubuntu 20.04 自定义热键来更改键盘布局

Ubuntu 20.04 自定义热键来更改键盘布局

我正在尝试以以下方式更改 Ubuntu 20.04 的行为:我想Left Alt将键盘布局切换为英语并将Right Alt其切换为俄语。我还想保留所有Alt+smth热键。

我目前发现的是:

  • 自定义热键:Ubuntu 设置或 Tweak Tools 无法满足我的要求。我可以使用xbindkeysAlt_L和绑定Alt_R到任何 shell 命令,但Alt+smth即使我使用Release修饰符(如Alt_L + Release),它也会破坏热键。我仍然不知道如何在Alt不破坏 的情况下将任何东西映射到Alt+smth
  • 说到 shell 命令,我能用 shell 命令更改键盘布局的最佳方法是setxkbmap ussetxkbmap ru。这有点用,但 ubuntu 不知何故看不到这一点:当我按下热键时,switch languageubuntu 托盘中的键盘布局会发生变化,但实际布局始终是us。此外,setxkbmap us它不会真正改变当前选定的布局,它将可用布局列表限制为 而不是usus,ru是一种解决方法,但我想我可以忍受。

所以问题是:我如何绑定Left Alt切换美国布局和Right Alt切换俄罗斯布局,同时保留所有Alt+smth热键?

答案1

我弄清楚了如何使用@vanadium 的评论和来做到这一点dconf-tool

使用 从终端切换gnome shell语言eval

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

inputSources更改不同语言的索引。

要设置热键,您需要dconf-tool。导航到/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/。方便的是,您无法从dconf-editor界面添加新的子文件夹,请转到Settings -> Keyboard Shortcuts,向下滚动到Custom Shortcuts并添加一个新子文件夹。custom0子文件夹应出现在dconf-tool的界面中。将上面的命令设置为命令和Alt_LAlt_R作为绑定。

答案2

我无法将所需的热键分配给Alt_L/Alt_r并保持其他Alt+smth热键正常工作,但我能够使用较少的冲突键实现所请求的功能i3wm,因此我的答案可能部分有用。

我添加了以下几行.config/i3/config

bindcode Mod4+57 exec "setxkbmap -layout us,ru"
bindcode Mod4+58 exec "setxkbmap -layout ru,us"

现在windows_key + nnhas keycode 57)和windows_key + mmhas keycode 58)分别将布局切换为英语和俄语。

请注意,需要bindcode与键码一起使用,而不是bindsym与符号一起使用config,否则热键在俄语布局中将不起作用。

相关内容