Створіть новий файл /user/share/xsessions/default.desktop
(назва залежить від вас, але він повинен мати .desktop
суфікс):
[Desktop Entry]
Name=Default
Comment=This runs user session and logs you into Ubuntu
Exec=default
Icon=
Тепер, коли ви виберете цей сеанс lightdm
увійти та увійдете в систему, ваш ~/.xsession
файл, якщо він існує, буде виконаний.
Зауважте, що виконаний файл користувача є ~/.xsession
, а не ~/.xinitrc
, про який було сказано у запитанні. ( ~/.xinitrc
використовується при запуску сеансу X з використанням startx
скрипту з командного рядка.)
Деякі пояснення: Name
запис lightdm
буде відображатись для цього сеансу. Exec
Запис є важливим, і це повинно бути ім'я програми , яка починається фактичне сесії. Коли ви входите в систему, lightdm
викликує /etc/X11/Xsession
скрипт, передаючи йому значення Exec
як аргумент, і Xsession
, зрештою, виконує цю програму (наприклад, це може бути startxfce4
для запуску xfce4
сеансу). Якщо Exec
запис є спеціальним рядком default
, тоді Xsession
буде виконуватися ~/.xsession
файл користувача. ( Xsession
також виконується, ~/.xsession
якщо він називається без аргументів.)
Вибачте, я тут новий, і тому не можу коментувати відповіді інших людей, але я хотів би прокоментувати прийняту відповідь, щоб зробити ясніше все. Згідно з моїм поясненням вище, що відбудеться з методом цієї відповіді, це Xsession
буде викликано lightdm
аргументом, який є (повний шлях) Xsession
. Тож Xession
побіжить, а потім зателефонуй собі, цього разу без аргументів. Другий Xsession
, викликаний без аргументів, виконає користувача ~/.xsession
. Тож бажані дії, врешті-решт, будуть вжиті, але трохи незручно.