После нескольких дней исследований я обнаружил, что в Ubuntu /etc/gdm/Xsession выполняется вместо /etc/X11/Xsession . Хотя оба запускают скрипты в /etc/X11/Xsession.d .
Я определил /etc/X11/Xmodmap и создал скрипт подключения в /etc/X11/Xsession.d/40load-xmodmap , но загруженный xmodmap теряется после 99x11-common_start .
Коды отладки:
/etc/X11/Xseesion:
...
for file in Xsession.d/*; do
. $file
echo The current xmodmap is:
xmodmap
done
...
Напечатанный xmodmap показывает, что 40load-xmodmap работает очень хорошо, но определенные ключевые моды будут потеряны после запуска рабочего стола.
Наконец, я определил xmodmap в пользовательском каталоге ~/.Xmodmap , на этот раз, когда сеанс запускается, всплывающее окно предлагает мне включить Xmodmap. Итак, я думаю, может быть, рабочий стол GNOME сбрасывает xmodmap?
