![跟踪命令的调用](https://linux22.com/image/1483573/%E8%B7%9F%E8%B8%AA%E5%91%BD%E4%BB%A4%E7%9A%84%E8%B0%83%E7%94%A8.png)
为了快速解释我的问题的目的,我使用带有苹果键盘的 Ubuntu mate。
为了使键盘正常工作,我不得不使用 重新映射一些键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 $@
你可以记录用户 ID 或任何你认为有用的信息