再次使用Caps Lock进行无模式/无状态布局语言切换(18.04 LTS Bionic Beaver)


12

这个问题被问了无数次,所以我会尽量简短。

我有两种输入布局,乌克兰语和英语,并且想要:

  • 使用Caps Lock快速开关;
  • 没有任何延迟,我是一名快速打字员;
  • 没有模式错误
    • (任意数量)CapsLock套英语,
    • (任意数量)ShiftCapsLock套乌克兰语;
  • 请参阅标准小部件中的当前布局。

我已经试了(!)的GUI配置此,Gnome的设置,在gnome-tweak-tool中,  dconf-editor/ gsettings。没用。Tweaks随机崩溃。

完成足够的作业

4年前就问过这个问题,要价14.04 LTS。从那时起,该用户界面弹出窗口就出现了,并且全部崩溃了。现在,我可以轻松配置状态 CapsLock切换,但是即使那样,它也会带来令人讨厌的延迟。当我需要将每个句子的语言切换4-5次时,基本上无法使用。

该线程建议使用caps:noneXKB选项作为错误解决方法。我已经尝试过使用gsettingsCLI和dconf-editor,并结合使用grp:shift_caps_switchXKB选项。没有骰子。看起来,这些东西比那些核心XKB功能要重要。

该线程提供了caps:menuXKB选项作为可绑定CapsLockGnome Settings→设备→键盘的黑客。可以,但是A)可以进行循环/状态切换;B)我必须在每个开关上等待适当的超时。

该线程确切地问我需要什么,但是却没有得到答案,甚至更糟:作为其他两个问题的重复(???)闭合,它们都不相同,也没有给我一个可行的解决方案。你们怎么了

还有另一种完全匹配的方法 -las,还没有答案!


想要:清洁溶液


1
那么声望而不是$赏金,比如说+50点声望?
karel

@karel我认为这没什么问题,但是“新”问题不符合在stackexchange上获得奖励的资格。提出问题后两天可以开始悬赏 ; 请取消投票。
ulidtko

我没有投票。我所做的一切都受到了评论。
karel

好。但是,我确实在AskUbuntu上提供了赢得了声誉奖励。时间到了,这个问题也将得到解决。
ulidtko

1
@ulidtko我会尽量在gnome-tweaks-tool。因为最近我很忙,所以不会保证是否可以挖掘出任何东西,并且需要一些时间,但是如果我挖掘出与相关的任何东西,我都会发布答案gnome-tweak-tool。随时在这里给我评论或以其他方式与我联系
Sergiy Kolodyazhnyy

Answers:


5

在Ubuntu 18.04中,默认情况下,在中有一个选项供您选择Caps_LockShift+ 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()"

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

好吧,他们在工作。

在此处输入图片说明

我们需要将这些命令绑定到Caps_LockShift+的按键上Caps_Lock

可以做到这一点xbindkeys,如果xbindkeys还没有安装的安装sudo apt install xbindkeys

  1. .xbindkeysrc在$ HOME文件夹中创建一个文件
    touch ~/.xbindkeysrc
  2. 要知道键码/标识什么叫
    运行,xbindkeys --key一旦白框出现Caps_Lock,请按一下按钮,也对Shift按钮执行此操作,并复制键码/标识,如下所示

在此处输入图片说明

  1. 此步骤是可选的。禁用Caps Lock。见下面的gif。如果未禁用大写锁定,则当您多次按下按键时,它将在尝试更改语言时切换。我已禁用它。但这取决于您的兴趣。

在此处输入图片说明

  1. .xbindkeysrc
    gedit ~/.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
  1. 保存文件,关闭并重新启动。

2
天哪,它起作用了!我什至不需要注销,甚至无需重启(xbindkeys --poll-rc)。我还保留了grp:shift_caps_switchXKB选项,它更改了我的键码的打印方式(m:0x0 + c:66 ISO_First_Groupm:0x1 + c:66 Shift + ISO_First_Group); 没问题。甚至键盘LED都闪烁!出色的工作,您完全应该得到这份赏金。(gnome修改过的作者,无论他们是谁,都对我和其他人
不屑一顾

5

您可以订阅一个错误报告:

错误报告显示为:

键盘面板具有用于输入切换的选项,但不允许将大写字母用作语言切换。

重现步骤:

  1. gnome控制中心键盘
  2. 向下滚动到“键入”部分
  3. 单击切换到下一个输入源
  4. 压盖

预期结果:Caps Lock键被用作切换键实际结果:Caps键在选择窗口中被忽略。

PS Same同样适用于“切换到上一个输入源”和Shift-Caps组合键。

错误解决方法

该错误当前位于“愿望清单”上。建议这些变通办法:

解决方法1

找到了解决此错误的方法:

  1. 安装dconf-editor(sudo apt-get install dconf-editor)
  2. 转到/ org / gnome / desktop / wm / keybindings /
  3. 选择按键开关输入源,关闭“使用默认值”并将“自定义值”设置为['Caps_Lock']
  4. (可选)您还可以将switch-input-source-backward的值更改为['Caps_Lock']之类的内容(同样,关闭“使用默认值”)

解决方法2

执行此操作的另一种方法:1.安装GNOME Tweaks(gnome-tweak-tool)2.打开Tweaks应用程序3.切换到“键盘和鼠标”面板4.单击“其他布局选项” 5.使用“切换到其他布局”部分

订阅错误报告

我建议您订阅错误报告并添加您自己的经验。订购错误报告的人越多,解决方案的速度就越快(通常)。


解决方法1不符合我的要求,它提供了循环切换,这不是我想要的。解决方法2(Gnome-Tweaks)已尝试并被殴打致死;我可以使其崩溃,但不能使其工作。谢谢(还有另一个)链接。
ulidtko

我赞成你的问题,希望引起更多关注。将所有试验和错误张贴在错误报告上可能会有所帮助。
WinEunuuchs2Unix
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.