xkbmap의 변경 사항을 추적하는 방법은 무엇입니까?

xkbmap의 변경 사항을 추적하는 방법은 무엇입니까?

저는 Ubuntu(14.04.5) NoMachine 서버에서 Fluxbox를 실행하고 있습니다. 매우 간단한 파일이 있습니다 startup.

fluxbox="$HOME/.fluxbox"
stderr="$fluxbox/stderr"
(umask 077; > "$stderr")
exec 2> "$stderr"
setxkbmap de nodeadkeys
exec ssh-agent fluxbox -verbose -log "$fluxbox/log"

내 문제는 시작 파일에 xkbmap을 설정한 후 일부 프로세스가 이를 수정한다는 것입니다. nodeadkeys설정한 지 약 1초 후에 변형이 손실됩니다. 이 동작을 추적하기 위해 setxkbmap명령 앞에서 시작하는 추적 프로그램을 작성했습니다 . 이것이 내 추적 스크립트입니다.

#! /bin/bash
set -eu
exec > $HOME/setxkbmap.trace
n=${1:-100000}
while ((n>0)); do
  date +"%T.%6N"
  setxkbmap -query 
  n=$((n-1))
done

스크립트가 시작되면 변수가 설정됩니다.

$ head -5 setxkbmap.trace 
16:09:04.930663
rules:      evdev
model:      evdev
layout:     de
variant:    nodeadkeys

약 1초 후에 변형이 사라집니다.

$ grep -A 5 nodeadkeys setxkbmap.trace | tail -5
16:09:05.864251
rules:      evdev
model:      evdev
layout:     de
16:09:06.309512

어떤 프로세스가 옵션을 변경하는지 어떻게 알 수 있나요?

관련 정보