Створіть новий файл /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. Тож бажані дії, врешті-решт, будуть вжиті, але трохи незручно.