2

Я могу сохранить сеанс KDE с помощью меню запуска KDE. Но как мне сохранить мой сеанс командой shell?

3 ответа3

3

Если вы хотите сохранить то, что модуль управления Session Management называет «сессией, сохраненной вручную»:

qdbus org.kde.ksmserver /KSMServer org.kde.KSMServerInterface.saveCurrentSession

Если вы хотите перезаписать сеанс, который обычно сохраняется при выходе из системы:

qdbus org.kde.ksmserver /KSMServer org.kde.KSMServerInterface.saveCurrentSessionAs "saved at previous logout"

Получить список существующих сессий:

qdbus org.kde.ksmserver /KSMServer org.kde.KSMServerInterface.sessionList
(Известные имена сеансов "сохраняются пользователем" и "сохраняются при предыдущем выходе из системы")

Вы можете найти более интересные команды, если пропустите метод из команды как таковой:

qdbus org.kde.ksmserver /KSMServer

Данные сеанса хранятся в: ~/.kde4/share/config/ksmserverrc

2

Кнопка меню "Пуск" KDE сохраняет сеанс с именем "сохранено пользователем", и он восстанавливается при входе в систему, если и только если вы выбрали восстановление вручную сохраненного сеанса в настройках.

Чтобы сохранить сеанс этого типа из командной строки, введите команду DISPLAY=:0.0 qdbus org.kde.ksmserver /KSMServer org.kde.KSMServerInterface.saveCurrentSession подойдет (поиск правильного сеанса dbus - более сложная уловка для этого ответа).

Однако выше не сохраняет сессию при выходе из системы. С возможностью восстановления сеанса, сохраненного при выходе из системы, можно предположить команду qdbus org.kde.ksmserver /KSMServer org.kde.KSMServerInterface.saveCurrentSessionAs "saved at previous logout" будет работать, но это не так. Ksmserver не позволяет перезаписывать этот специальный сеанс (см. Эту строку в исходном коде).

Существует ошибка kde, связанная с этим более поздним случаем, которая предоставляет подсказки для обходного пути, пока ошибка не будет устранена (это может занять много времени).

2

dbus-send --dest=org.kde.ksmserver /KSMServer org.kde.KSMServerInterface.saveCurrentSession сохранит ваш сеанс. Если вы хотите восстановить его, запустите ksmserver , который должен автоматически загрузить сеанс.

(Обратите внимание, что между \KSMServer и org.kde.KSMServerInterface.saveCurrentSession , они все должны быть в одной и той же терминальной команде)

Более подробная информация здесь: http://raetsel.wordpress.com/2008/04/25/kde4-save-current-session-dbus-to-the-rescue/

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .