Как остановить XFCE в Linux Mint от запуска сеанса по умолчанию при входе через XRDP?

Вопрос или проблема

У меня есть виртуальная машина Linux Mint XFCE 24, работающая в Hyper-V/Windows 11, и я могу войти в XFCE через буфер кадра с максимальным разрешением Hyper-V 1920×1080. Это позволяет использовать только один дисплей.

Я пытался настроить XRDP, следуя скрипту по адресу https://github.com/Hinara/linux-vm-tools/blob/master/ubuntu/24.04/install.sh и руководству по адресу https://compositecode.blog/2024/01/23/ubuntu-on-hyper-v-insuring-enhanced-session-works/ – это должно позволить использовать несколько экранов с выбираемым/максимальным разрешением. Я включил режим расширенной сессии.

Когда запускаю инструмент VMConnect для отображения экрана виртуальной машины, дважды щелкнув по имени VM в Hyper-V Manager, передо мной появляется диалоговое окно, позволяющее выбрать разрешение и ‘использовать все мониторы’. (Если я закрою его, я все еще могу войти через буфер кадра).

Если я выбираю разрешение/все мониторы, рабочий стол, который я вижу, не является моим типичным Linux Mint XFCE — внизу есть маленькая панель, вверху панель, на рабочем столе фон с талисманом мыши XFCE. Клавиатура QWERTY, тогда как я ранее настроил Colemak. Моя конфигурация XFCE меняется на какое-то стандартное значение, которое мне не нужно.

Мне нужно выйти из системы, переключиться на консольный вход (Alt-F2), удалить .config/xfce4 и восстановить его из резервной копии. Если я перезагрузюсь и войду через буфер кадра, все в порядке.

Как мне настроить XRDP так, чтобы мой обычный XFCE рабочий стол/настройки использовались как при типичном входе через lightdm, так и через xrdp?

Я пробовал это в /etc/xrdp/startwm.sh, безрезультатно:

#!/bin/sh
if test -r /etc/profile; then
    . /etc/profile
fi
if test -r ~/.profile; then
    . ~/.profile
fi
export XDG_CURRENT_DESKTOP=XFCE
test -x /etc/X11/Xsession && exec /etc/X11/Xsession
exec /bin/sh /etc/X11/Xsession

Ответ или решение

Наиболее вероятной причиной, по которой возникают проблемы с конфигурацией вашего XFCE окружения при подключении через XRDP, является неправильная настройка среды рабочего стола для сеансов XRDP. Linux Mint XFCE и XRDP требуют корректной интеграции, чтобы предоставить вам тот же пользовательский опыт в обеих средах. Рассмотрим шаги по устранению этой проблемы.

Теория

XFCE — это легкое окружение рабочего стола, которое можно настроить для использования разнообразными дисплейными менеджерами и протоколами. Однако, когда речь идет о XRDP, возникают свои особенности. XRDP использует sesman, который по умолчанию может пытаться запустить дважды одну и ту же или другую среду рабочего стола, в зависимости от конфигурации.

Когда вы подключаетесь через XRDP, система запускает свои собственные настройки сеанса, что может приводить к конфликтам с вашим пользовательским конфигом. Файл /etc/xrdp/startwm.sh играет критическую роль в определении, какие именно скрипты или команды запускаются, когда вы логинитесь через XRDP.

Пример

Допустим, что по умолчанию XRDP пытается запустить другую оболочку, отличную от привычной вам XFCE. Это может быть вызвано тем, что не все нужные конфигурации и переменные окружения использованы правильно. Ниже приведен пример идеальной конфигурации, где подтверждается, что запуск XFCE происходит корректно в обоих подходах.

Применение

1. Обновление startwm.sh для установки XFCE как рабочего стола по умолчанию при входе через XRDP.

Файл /etc/xrdp/startwm.sh необходимо модифицировать так, чтобы XRDP запускал конкретно XFCE:

#!/bin/sh
if test -r /etc/profile; then
    . /etc/profile
fi
if test -r ~/.profile; then
    . ~/.profile
fi

# Запуск XFCE
startxfce4

Обязательно убедитесь, что команду startxfce4 ваш сеансовый скрипт исполняет именно так. Она инициирует сессию XFCE непосредственно.

2. Проверьте конфигурационный файл XRDP.

Сделайте так, чтобы сессия XRDP использовала корректные скрипты запуска. Это может потребовать правок конфигурационных файлов /etc/xrdp/xrdp.ini или в директориях /etc/xrdp/sesman.ini, чтобы убедиться, что сеанс XRDP действительно соответствует вашим ожиданиям.

3. Настройте пользовательские переменные (опционально).

Иногда нужно дополнительно экспортировать переменные для поддержки вашего пользовательского окружения:

export DESKTOP_SESSION=xfce
export XDG_CURRENT_DESKTOP=XFCE

4. Используйте файл .xinitrc в домашней директории.

Если модификации в системных файлах не дали результата, попробуйте добавить startxfce4 в ~/.xinitrc:

#!/bin/sh
startxfce4

5. Обеспечьте актуальность конфигурации XRDP.

Иногда старое или неисправное ПО может вызывать проблемы. Удостоверьтесь, что у вас установлена последняя версия XRDP и зависимостей, таких как xorg, которыми он пользуется.

6. Перезапустите службы.

После изменения конфигурации, перезапустите XRDP и lightdm (или другой используемый дисплейный менеджер) для применения изменений:

sudo systemctl restart xrdp
sudo systemctl restart lightdm

7. Проверьте логи на ошибки.

Анализируйте логи XRDP и системы, чтобы идентифицировать тонкости поведения. Логи обычно находятся в /var/log/xrdp-sesman.log или /var/log/syslog.

Заключение

Методы исправления, представленные выше, помогут устранить конфликтное поведение среды рабочего стола и достичь единообразного пользовательского интерфейса при подключении к XFCE через XRDP на вашей виртуальной машине Linux Mint. Правильная настройка обеспечивает вам конфиденциальность, максимальную отдачу и комфорт работы, оставаясь в привычных границах среды XFCE.

Оцените материал
Добавить комментарий

Капча загружается...