Отслеживайте вызовы команды
Чтобы быстро объяснить цель моего вопроса, я использую 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 $@
Вы можете войти в систему идентификатор пользователя или все, что вы считаете полезным