如何从Vagrantfile更改键盘布局

3
我正在使用 JHipster 的 DevBox,它是一个 XUbuntu Vagrant box。
我想在提供框架时更改键盘布局,并使其在登录页面上生效,无需重新启动,因此用户可以在虚拟机的第一次启动后立即使用它。
我尝试了几个更改键盘布局的命令:
- setxkbmap fr(无法工作,因为 shell 提供是以 root 用户身份完成的,setxkbmap 不能与 root 用户一起使用)。 - loadkeys fr(没有错误但没有结果)。 - sed -ie '/^XKBLAYOUT=/s/".*"/"fr"/' /etc/default/keyboard(显然可行,但必须“ sourced”)。
还有几个应用更改的命令:
- udevadm trigger --subsystem-match=input --action=change。 - dpkg-reconfigure -f noninteractive keyboard-configuration (“noninteractive”因为它是一个 shell 脚本)。 - setupcon --force(“force”因为没有它会抱怨这不是 Linux 终端)。
这些命令都没有奏效(或者更准确地说,sed 和 udevadm 的组合似乎有效,但当我尝试新安装的虚拟机时却没有效果)。
你有什么办法让它起作用吗?
编辑:
好吧,这是一个严重的 PEBKAC 的案例...
记录一下,对我来说正确的组合是:sed -ie '/^XKBLAYOUT=/s/".*"/"fr"/' /etc/default/keyboard && udevadm trigger --subsystem-match=input --action=change。
我只是错误地重构了包含语言(这里是 fr)的变量,所以没有输出任何内容...
编辑:
好吧这并不仅仅是 PEBKAC 的问题,在登录页面上它可以正常工作,但一旦我登录后就无法使用(即使在重新安装之前它也能够正常工作)。

你检查过这个 bug了吗? - Frederic Henri
2个回答

3

好的,这是一个严重的PEBKAC案例...

就记录而言,对我而言正确的组合是: sed -ie '/^XKBLAYOUT=/s/".*"/"fr"/' /etc/default/keyboard && udevadm trigger --subsystem-match=input --action=change

我只是糟糕地重构了包含语言的变量(这里是fr),所以它什么都没输出...


编辑:这不仅仅是PEBKAC问题,在登录页面上它正常工作,但一旦我登录后就不起作用了(即使在重新安装之前它也有效)。


这不仅仅是一个PEBKAC问题,它在登录页面上运行良好,但一旦我登录后就无法正常工作(即使在重新安装之前它也可以正常工作)。 - CidTori
有趣的问题,有什么解决方案吗? - Gustavo

0
如果您正在使用 xfce4,您可以尝试以下方法:
sudo setxkbmap fr
sudo sed -i 's/XKBLAYOUT=\"\w*"/XKBLAYOUT=\"fr\"/g' /etc/default/keyboard

对我来说有效,但你需要重新启动。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接