自定义键切换键盘布局

自定义键切换键盘布局

我想设置按键来切换键盘语言为“`”,但在 Ubuntu 12.04 中,Unity 的“键盘布局”中没有此选项。我已经看到了这个答案但它对我没有帮助。您能告诉我如何使用 setxkbmap 吗?(如果可以的话)。谢谢!

答案1

这是一种简单的方法,但您可以使用的快捷键有限。打开“系统设置”->“键盘”。单击底部附近的“布局设置”。单击 + 按钮添加所需的任何语言。然后单击“选项...”在那里,您可以通过选择“更改布局的键”来设置所需的按键组合。如果您愿意,您还可以在“使用键盘 LED 显示替代布局”下选择使用键盘 LED 来显示您何时使用替代布局(例如滚动锁定)。

这是稍微复杂一点的方法,但可以让您更灵活地使用组合键。首先,复制并粘贴我编写的这个脚本,并将其命名为 kb_toggle.sh。确保将 LANG1 和 LANG2 编辑为您所需的键盘布局代码。

#!/bin/bash

LANG1="us"
LANG2="de"
CURRENT_LANG=$(setxkbmap -query | tail -n 1 | cut -f6 -d ' ')
if [ "$CURRENT_LANG" = $LANG1 ]; then
    setxkbmap $LANG2
else
    setxkbmap $LANG1
fi

通过右键单击文件->“属性”->“权限”选项卡,然后选择“允许将文件作为程序执行”来创建文件。

现在,打开“系统设置”->“键盘”->“快捷方式”选项卡,然后选择“自定义快捷方式”。单击底部的 + 按钮,将快捷方式命名为“键盘切换”或任何您想要的名称。然后在命令框中提供您之前创建的脚本的完整路径。点击应用。单击显示“已禁用”的位置,然后您可以通过单击您的组合键将快捷方式设置为您想要的任何内容!

还有一件事。我认为它不会让你将其设置为单个键,例如“", you may have to do SHIFT+或类似的东西。

答案2

首先:非常感谢 Reverendj1 编写的脚本 - 你太棒了!我一直在努力寻找答案,为什么“更改布局的键”选项被完全忽略。正如 Dimitris 所说,这不是答案,但是一个很好的解决方法。

重要提示:我确实必须更改脚本中的一项内容。——
在 12.04 中,setxkbmap -query 输出的最后一行打印“options: grp:...”。因此,我使用管道来 grep“layout”而不是“tail -n1”命令。因此脚本如下所示:

/bin/bash #!/bin/bash
LANG1="我们"
LANG2="德"
# CURRENT_LANG=$(setxkbmap -query | tail -n 1 | cut -f6 -d ' ')# 旧行
CURRENT_LANG=$(setxkbmap -query | | grep “layout” | cut -f6 -d ' ')
如果 [ "$CURRENT_LANG" = $LANG1 ]; 那么
    设置xkbmap$LANG2
别的
    设置xkbmap$LANG1

注意:如果有人更改了“layout: us”行中的空格数,则 -f6 选项将无法返回“us”。这个问题可能需要在将来修复。

再次感谢您的修复。我现在可以更高效地工作了。** 抱歉,这太啰嗦了

相关内容