Debian:Init.d脚本无法自动运行,键盘布局重置问题求助
解决Debian下GB键盘布局重启后还原的问题
嘿,我来帮你搞定这个键盘布局的麻烦!你之前用/etc/init.d脚本没生效的原因很关键:setxkbmap是依赖X Window系统的命令,而/etc/init.d里的脚本是在X启动之前运行的——这时候连X环境都没有,命令执行了也白搭。下面给你几个靠谱的永久解决方法,按需选择就行:
方法1:系统级Xorg配置(通用所有桌面环境)
这是最彻底的系统级配置,不管用什么桌面都会生效:
- 先创建Xorg配置目录(如果不存在的话):
sudo mkdir -p /etc/X11/xorg.conf.d - 创建并编辑键盘配置文件:
sudo nano /etc/X11/xorg.conf.d/00-keyboard.conf - 写入以下内容:
Section "InputClass" Identifier "system-keyboard" MatchIsKeyboard "on" Option "XkbLayout" "gb" EndSection - 保存退出(nano里按
Ctrl+O回车,再Ctrl+X),重启系统后就会自动加载GB键盘布局了。
方法2:桌面环境图形化设置(直观简单)
如果你用的是带图形界面的桌面环境,直接在系统设置里改更省心:
- GNOME桌面:打开「设置」→「键盘」→「输入源」,添加「English (UK)」,把它拖到最上方设为默认,删掉美式布局即可。
- XFCE桌面:打开「设置」→「键盘」→「布局」,点击「添加」选择GB布局,上移到第一位,点击「应用」后重启生效。
- KDE桌面:打开「系统设置」→「输入设备」→「键盘」→「布局」,添加GB布局并设为默认。
方法3:用户级自启动脚本(仅针对当前用户)
如果你不想修改系统级配置,只想给自己的用户设置,可以用桌面自启动项:
- 打开桌面环境的「启动应用程序」(比如GNOME在搜索栏搜「Startup Applications」)
- 添加一个新启动项:
- 名称:随便填,比如「Set UK Keyboard」
- 命令:
setxkbmap -layout gb - 保存即可,下次登录桌面时会自动执行这个命令。
或者手动创建自启动配置文件:
nano ~/.config/autostart/set-keyboard-gb.desktop
写入以下内容:
[Desktop Entry] Type=Application Exec=setxkbmap -layout gb Hidden=false NoDisplay=false X-GNOME-Autostart-enabled=true Name=Set UK Keyboard Comment=Set keyboard layout to GB
保存后同样生效。
为什么之前的init.d脚本没用?
再给你捋清楚:/etc/init.d是SysVinit的启动脚本,运行在系统初始化的早期阶段——这时候X服务器还没启动,setxkbmap必须连接到X才能修改键盘布局,所以脚本虽然执行了,但完全起不到作用,这就是重启后布局又变回美式的原因。
内容的提问来源于stack exchange,提问作者Good Neighbour
相关产品推荐
相关产品推荐

