Отслеживайте вызовы команды

Чтобы быстро объяснить цель моего вопроса, я использую Ubuntu Mate с клавиатурой Apple.
Чтобы клавиатура работала нормально, мне пришлось переназначить некоторые клавиши, используя xmodmapтакие как обмен #/@ с </>,

Пользовательская карта сделана в ~/.Xmodmap так, как это должно быть.
Чтобы загрузить его автоматически, я добавил xmodmap ~/.Xmodmap к моему .zshrc,

Но через некоторое время конфигурация xmodmap полностью стирается.
Чтобы перенастроить его, я должен открыть новый терминал или вручную вызвать xmodmap команда.

Эта проблема уже известна в gnome, и я не могу найти работающее решение, чтобы мой xmodmap всегда работал.

Чтобы решить проблему, я думаю, что мне нужно найти, какой пакет / команда вызывает сжатие моей пользовательской конфигурации, избегая сомнений одно за другим.

Я знаю некоторые команды, которые потенциально могут сбросить xmodmap конфигурация такая как setxkbmap,

Чтобы быть уверенным, что моя проблема проистекает из этого, я хочу, чтобы моя сессия слушала эту команду (setxkbmap), как я знаю, когда это называется.

Мой вопрос заключается в следующем:

Как я могу отслеживать вызовы команды (возможно, записав в файл журнала, мне просто нужно знать, была ли она вызвана во время сеанса)?

Кроме того, если вы знаете другую альтернативу отладки или не затрагиваете мою конфигурацию во время сеанса, это даже лучше.

Спасибо заранее за все ответы, которые я получу.

1 ответ

Решение

Может быть, оболочка оболочки может помочь вам.

Переименуйте setxkbmap в setxkbmap.bin

Затем создайте сценарий с именем setxkbmap, который будет находиться в том же месте, где находился оригинал, с содержимым:

echo "[$(date)] [ppid $PPID] $@" >> /var/tmp/setxkbmap.log
exec setxkbmap.bin $@

Вы можете войти в систему идентификатор пользователя или все, что вы считаете полезным

Другие вопросы по тегам