`/etc/profile` 中的键盘配置不起作用

`/etc/profile` 中的键盘配置不起作用

这是一个脚本,我可以获取或运行它来设置我的键盘布局:

#!/bin/bash
# Testing to only apply the layout to Kinesis keyboard.
# Get Device ID with: `xinput -list | grep -i key
debug_out=/tmp/layout_kinesis.log

echo "layout_kinesis start" >> $debug_out 2>&1
echo $SHELL >> $debug_out 2>&1
date >> $debug_out 2>&1
whoami >> $debug_out 2>&1
kinesis_device_id=$(xinput --list | grep "05f3:0007[[:blank:]]*id=" | sed -n "s/^.*id=\(\S*\).*/\1/p") >> $debug_out 2>&1
echo "layout_kinesis id $kinesis_device_id" >> $debug_out 2>&1
if [ ! -z "$kinesis_device_id" ] ; then
    echo "layout_kinesis on display $DISPLAY" >> $debug_out 2>&1
    xkbcomp -i $kinesis_device_id /home/gauthier/kinesis/kinesis_swe_us.conf $DISPLAY >> $debug_out 2>&1
fi
echo "layout_kinesis id done" >> $debug_out 2>&1

抱歉重定向热潮,我变得偏执了。

当我在登录时运行或获取它时,这会起作用。

现在我想为任何登录的人进行设置,只要键盘已连接。我将脚本复制到/etc/profile.d/layout_kinesis.sh.它具有以下权限:-rwxr-xr-x 1 root root.

布局未加载。

调试输出文件似乎是合理的(stderr需要重定向xkbcomp:否则会出现弹出窗口“您想继续吗?”),shell是/bin/bash,用户是我的用户,id(9)和DISPLAY:0)似乎是正确的,我得到了一堆警告xkbcomp但他们像往常一样。

登录后从终端仿真器手动采购/etc/profile.d/layout_kinesis.sh可以使其工作,那么为什么一开始就不行呢?看起来来源正确,但效果并不存在。其他启动文件会覆盖此设置吗?


我调查过的事情:

  • 中没有提及xkbcomp或。setxkbmap/etc/profile.d/
  • ~/.profile与, 没有~/.bash_profile也没有任何关系~/.bash_login

这是在 Ubuntu 20.04 上。

相关内容