Estou no Debian 9.11 com a área de trabalho MATE (pinebook pro)
Eu tenho um script de inicialização /etc/init.d/customMapping
que remapeia algumas das minhas chaves usando setxkbmap
e xmodmap
. Aqui está
#! /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
Como você pode ver, tentei vários tipos de palavras-chave na Required-Start
seção, mas isso não funciona e, quando faço check-in do /opt/logs
arquivo, vejo as seguintes mensagens de erro
Não é possível abrir a exibição "exibição padrão"
Não é possível abrir a exibição "exibição padrão"
xmodmap: incapaz de abrir a exibição ''
xmodmap: incapaz de abrir a exibição ''
Qual valor devo definir Required-Start
para que meu script acesse display
(servidor X)? Os valores também estão Default-Start
corretos?
obrigada
Você realmente não deseja executar esses comandos como um serviço de inicialização, mas sim algo que é executado como parte de sua sessão X quando ela é iniciada.
Se eles forem executados em um script de inicialização, eles serão executados como root no contexto de inicialização, não como parte de sua sessão X.
Seria melhor colocar esses comandos em seu xinitrc ou xsessionrc (dependendo de como você inicia o X).