uli*_*tko 15 gnome keyboard-layout input-language accessibility 18.04
这已经被问过无数次了,所以我会尽量简短。
我有两种输入布局,乌克兰语和英语,并且想要:
我已经尝试了三个(!)GUI 来配置它,Gnome 设置、gnome-tweak-tool、 dconf-editor/ gsettings。什么都行不通。Tweaks随机崩溃。
我在4 年前为 14.04 LTS自己问过这个问题。从那以后,那个 UI 弹出窗口出现了,然后全部坏了。我现在可以轻松配置有状态 CapsLock切换,但即便如此,它也伴随着令人讨厌的延迟。当我需要每个句子切换 4-5 次语言时,基本上无法使用。
该线程建议将caps:noneXKB 选项作为错误解决方法。我已经尝试过使用gsettingsCLI 和dconf-editor,以及与grp:shift_caps_switchXKB 选项结合使用。没有骰子。看起来有些东西胜过那些核心的 XKB 功能。
这个线程提供caps:menuXKB选项作为一个黑客能够绑定CapsLock的Gnome Settings?设备 ?键盘。它有点工作,但是 A)它提供了循环/状态切换;B)我必须在每次切换时等待适当的超时。
该线程确切地询问了我需要什么,但它没有得到答复,甚至更糟:作为其他两个问题(???)的重复关闭,没有一个是相同的,并且没有一个给我一个可行的解决方案。你们怎么了?
还有另一个完全匹配- 唉,也没有答案!
您可以订阅一个错误报告:
错误报告如下:
键盘面板有输入切换选项,但不允许使用大写字母作为语言切换。
重现步骤:
- 侏儒控制中心键盘
- 向下滚动到“打字”部分
- 单击切换到下一个输入源
- 按盖
预期结果:Caps Lock 键被接受为切换键 实际结果:Caps 键在选择窗口中被忽略。
PS 同样适用于“切换到上一个输入源”和 Shift-Caps 组合键。
该错误目前在“愿望清单”中。建议采用以下变通方法:
找到此错误的解决方法:
另一种方法是: 1. 安装 GNOME Tweaks (gnome-tweak-tool) 2. 打开 Tweaks 应用程序 3. 切换到键盘和鼠标面板 4. 单击其他布局选项 5. 使用“切换到另一个布局”部分
我建议订阅错误报告并添加您自己的经验。订阅错误报告的人越多,解决方案出现的速度就越快(通常)。
在 Ubuntu 18.04 中,默认情况下有一个选项可以选择Caps_Lock和Shift+Caps_Lock来实现我们正在寻找的行为,在gnome-tweaks. 但这不起作用,无法得到原因。
我可以通过以下解决方法设法实现这种行为。
有关 20 秒视频,请参阅此链接。https://imgur.com/QNdrVqa
首先检查终端中的以下命令是否正在更改输入语言。
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()"
Run Code Online (Sandbox Code Playgroud)
和
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()"
Run Code Online (Sandbox Code Playgroud)
好吧,他们正在工作。
我们需要将这些命令绑定到按键Caps_Lock和Shift+Caps_Lock
可以做到这一点xbindkeys,如果xbindkeys还没有安装的安装sudo apt install xbindkeys
.xbindkeysrc在 $HOME 文件夹中创建一个文件touch ~/.xbindkeysrcxbindkeys --key一次的白框出现,按下Caps_Lock按钮,这样做的Shift按钮也并复制键码/ IDS,如下所示.xbindkeysrcgedit ~/.xbindkeysrc并根据上述步骤的结果编辑如下文件根据您在上述步骤 2 中获得的结果更改以下内容中的值。内容:
"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()""
m:0x10 + c:66
"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()""
Shift+Mod2 + Shift_L+m:0x10 + c:66
Run Code Online (Sandbox Code Playgroud)
满足您需求的清洁解决方案:
\nShyriiwook(也可在 GitHub 上找到:madhead/shyriiwook)。这是一个 GNOME Shell 扩展,我是它的作者。
\n这是一个非常简单、简约的扩展。它没有任何 GUI。安装后,新的 D-Bus 接口将在您的 GNOME Shell 会话中公开。您可以查询它的当前配置或调用一个方法来激活所需的布局,就是这样:
\n$ gdbus introspect \\\n --session \\\n --dest org.gnome.Shell \\\n --object-path /me/madhead/Shyriiwook \\\n --only-properties\n\nnode /me/madhead/Shyriiwook {\n interface me.madhead.Shyriiwook {\n properties:\n readonly as availableLayouts = [\'us\', \'de\', \'jp\'];\n readonly s currentLayout = \'us\';\n };\n};\n\n$ gdbus call \\\n --session \\\n --dest org.gnome.Shell \\\n --object-path /me/madhead/Shyriiwook \\\n --method me.madhead.Shyriiwook.activate "de"\nRun Code Online (Sandbox Code Playgroud)\n这很容易编写脚本,您可以将此命令原始放入“设置”\xe2\x86\x92“键盘”\xe2\x86\x92“键盘快捷键”\xe2\x86\x92“查看和自定义”下的自定义快捷方式快捷方式” \xe2\x86\x92 “自定义快捷方式”。
\n它没有任何延迟,甚至不显示烦人的语言切换弹出窗口。
\n它是完全无状态和幂等的。当您分配 D-Bus 调用(如上例中的最后一个调用)时,例如CapsLock次数的按键都会将语言设置为确定性值(示例中为德语)。
\n它仅适用于最新的 GNOME 版本(我使用的是 42,但我也在 45 上进行了测试)。与互联网上提供的其他解决方案不同:
\nsetxkbmap与 GNOME Shell 的配合不太好(它不会更新状态区域中的语言,并且只会中断进一步的布局切换,直到下次重新启动为止)。gsettings set org.gnome.desktop.input-sources current被弃用并且不再工作gdbus call \xe2\x80\xa6 org.gnome.Shell.Eval \xe2\x80\xa6由于安全问题,该方法也已被弃用。给书呆子的信息:Shyriiwook基于 D-Bus,但它不使用不安全和已弃用的Eval或其任何替代方案。它通过直接访问GJS来重新实现类似的解决方案getInputSourceManager。
| 归档时间: |
|
| 查看次数: |
1084 次 |
| 最近记录: |