我在 Debian 9.11 上使用 MATE 桌面(pinebook pro)
我有一个初始化脚本,它使用和/etc/init.d/customMapping
重新映射我的一些键。这里是setxkbmap
xmodmap
#! /bin/sh
### BEGIN INIT INFO
# Provides: customMapping
# Required-Start: $local_fs x11-common xserver display
# Required-Stop: $local_fs x11-common xserver display
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Custom keyboard mapping
# Description: This is a simple Init script
# Custom keyboard mapping
### END INIT INFO
#
# Some things that run always
echo "customMapping script"
# Carry out specific functions when asked to by the system
case "$1" in
start)
echo "Starting script customMapping "
echo "start" >> /opt/test.txt
# Make Caps Lock a Control key
setxkbmap -option ctrl:nocaps > /opt/logs 2>&1
# Swap Left Control with Left Alt
setxkbmap -option ctrl:swap_lalt_lctl > /opt/logs 2>&1
# Make Pause/Break an End key
xmodmap -e "keycode 127 = End" > /opt/logs 2>&1
# Make Screen Lock a Home key
xmodmap -e "keycode 78 = Home" > /opt/logs 2>&1
;;
stop)
echo "Stopping custom Mapping"
;;
*)
echo "Usage: /etc/init.d/customMapping {start|stop}"
exit 1
;;
esac
exit 0
如您所见,我在该Required-Start
部分中尝试了几种关键字,但这不起作用,当我签入/opt/logs
文件时,我看到以下错误消息
无法打开显示“默认显示”
无法打开显示“默认显示”
xmodmap:无法打开显示 ''
xmodmap:无法打开显示 ''
我应该设置什么值Required-Start
才能让我的脚本访问display
(X 服务器)?值也Default-Start
正确吗?
谢谢
您真的不想将这些命令作为启动服务运行,而是在启动时作为 X 会话的一部分执行。
如果它们在初始化脚本中运行,它们会在启动上下文中以 root 身份运行,而不是作为 X 会话的一部分。
您最好将这些命令放在您的 xinitrc 或 xsessionrc 中(取决于您如何启动 X)。