Как сохранить / запомнить последнюю использованную позицию и размер окна для приложений?
Когда я вхожу в Ubuntu, я бы хотел, чтобы все окна, открытые на предыдущем сеансе (в основном терминал и Firefox), автоматически открывались в том же размере и положении.
Как действовать?
10 ответов
За 12.04 (и 11.10)
Краткий ответ: гибернация - лучший вариант, потому что функциональность gnome-session-save была удалена после 11.04, так как она глючила, и официальная настройка для ручного повторного включения этой функции, похоже, не работает. В части B этого ответа описывается, как использовать альтернативный метод гибернации, TuxOnIce, который в настоящее время более совместим и надежен, чем встроенный режим гибернации.
A. Попытка включить функцию сохранения старой сессии Gnome
- Примечание: как описано в конце, эта официальная настройка не работает - вы можете перейти непосредственно к B. Спящий режим с TuxOnIce
В этой ошибке Launchpad обсуждается восстановление функции "сохранить сессию". В настоящее время он помечен как "исправленный", потому что в
gnome-session
пакет в апреле 2012 года, что позволяет пользователям вручную включить эту функцию. Патч описывает себя как:добавить переменную среды GNOME_SESSION_SAVE для людей, желающих используйте сеанс сохранения еще, зная, что это может сломать вашу систему если используется неразумно (LP: #771896)
Вы можете включить это, установив
GNOME_SESSION_SAVE
переменная к ненулевому значению. Вот как:- Нажмите
Alt+F2
, типgedit ~/.pam_environment
и нажмите ввод. Добавьте строку
GNOME_SESSION_SAVE=1
в конце файла, как показано ниже:Нажмите
Ctrl+S
сохранить иCtrl+Q
выйти из редактора.- Теперь перезагрузитесь (выход должен также работать, но только для безопасности)
- Нажмите
- Патч ( источник) делает отключение вкладки " Параметры " в "Автозагрузке приложений", которая раньше содержала опцию " Запустить запущенные приложения при выходе из системы". НО это проверяет
GNOME_SESSION_SAVE
переменная, и если она установлена (не ноль), она должна включить сохранение сеанса так, как если бы поле " Запомнить..." существовало и было отмечено. Вот почему ошибка помечена как "исправленная"if (g_getenv ("GNOME_SESSION_SAVE")! = NULL) Maybe_load_saved_session_apps (менеджер);
- К сожалению, это не работает, что подтверждается комментарием 32 в трекере ошибок.
- Я даже пытался отключить патч и восстановить
gnome-session
из источника. Из-за этого снова появляется флажок Параметры, но ничего не происходит. - Но эй, это может как-то работать на тебя!!:)
B. Что работает на данный момент: улучшенная гибернация с TuxOnIce
- Спящий режим сохраняет текущее состояние системы (включая сеанс, открытые приложения и т. Д.) На жестком диске и выключает компьютер. При повторном запуске он считывает сохраненное состояние и восстанавливает его так же, как если бы вы никогда не выключали компьютер. Эта технология в основном используется пользователями ноутбуков для экономии заряда батареи, но нет никаких причин, по которым ее нельзя использовать и на настольных ПК.
Поддержка гибернации доступна в Ubuntu/Linux, но была отключена в 12.04, потому что она не работала должным образом на ряде систем. Посмотрите этот вопрос и этот отчет об ошибке, если вы хотите больше информации.
Более совместимая альтернатива: TuxOnIce
TuxOnIce ( wiki | homepage) является альтернативой встроенной в ядро технологии гибернации и должна быть более совместимой, более надежной и более гибкой.
- Он легко устанавливается, а если он у вас не работает, так же легко удаляется.
Для этого требуется установить собственное ядро TuxOnIce, но приведенные ниже инструкции должны упростить его. Если вы никогда не открывали терминал раньше, вы можете захотеть сделать это сейчас:-)
0. Требования
Единственным требованием для TuxOnIce является то, чтобы ваш раздел подкачки был как минимум таким же большим, как объем памяти (RAM), который у вас есть. Вы можете проверить это:
Запустите терминал с помощью Ctrl + Alt + T
Тип
free -m
и вы должны увидеть что-то вроде этого:общее количество использованных свободных общих буферов в кеше Память: 1024 731 260 0 0 190 -/+ буферы / кэш: 540 451 Обмен: 1536 6 1530
Число после
Swap:
(например, 1536) должно быть больше, чем число послеMem:
(например, 1024)Если это не так, и ваш раздел подкачки меньше вашей памяти, вы должны либо изменить размер и увеличить размер раздела подкачки, либо настроить TuxOnIce для использования специального файла подкачки. Это выходит за рамки этого ответа, но если вы зададите другой вопрос и упомянете его в комментариях, я отвечу и объясню, как это сделать.
1. Установка ядра TuxOnIce
Запустите терминал с помощью Ctrl + Alt + T
- Скопируйте и вставьте следующее в терминал. Это добавляет TuxOnIce PPA и устанавливает собственное ядро и заголовки.
sudo apt-add-repository ppa: tuxonice / ppa -y
и как только ppa добавляется:sudo apt-get update sudo apt-get установить tuxonice-userui linux-generic-tuxonice -y sudo apt-get установить linux-headers-generic-tuxonice -y
- Теперь перезагрузите компьютер.
Ubuntu теперь должен запускаться с ядром TuxOnIce. Если есть какие-либо проблемы, удерживайте нажатой клавишу Shift при запуске, и вы получите меню Grub. Используйте клавиши со стрелками, чтобы перейти к
Previous Linux Versions
, нажмите ввод и снова нажмите ввод, чтобы вернуться к рабочему ядру.2. Тестирование функциональности гибернации.
Откройте некоторые приложения, которые вы обычно используете, например Firefox, Thunderbird, LibreOffice и т. Д.
- Снова откройте терминал, нажав Ctrl + Alt + T.
- Тип
sudo pm-hibernate
, нажмите ввод, введите свой пароль. Вы должны увидеть экран блокировки на секунду, а затем экран прогресса гибернации TuxOnIce, как показано ниже:
- Если TuxOnIce работает, ваш компьютер выключится.
- Запустите его снова и подождите. TuxOnIce должен возобновить работу с той точки, в которой вы находились в спящем режиме, включая все окна, которые вы открывали в позиции, которую вы открыли.
Если все это сработало, перейдите к шагу 3, который позволяет включить Hibernate на панели инструментов.
3. Включение гибернации с панели инструментов
Нажмите Alt + F2, введите ниже и затем нажмите ввод:
gksudo gedit /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla
Вставьте ниже, нажмите Ctrl + S, чтобы сохранить и Ctrl + Q, чтобы выйти из редактора:
[Включить спящий режим по умолчанию] Идентичность = Unix-пользователь:* Действие =org.freedesktop.upower.hibernate ResultActive= да
Перезапустите, и вы должны увидеть опцию Hibernate, как показано ниже:
4. Удаление TuxOnIce
Если TuxOnIce у вас не работает или вы просто хотите удалить его, запустите терминал и введите:
sudo apt-get удалить tuxonice-userui linux-generic-tuxonice linux-generics-generic-tuxonice -y
и не забудьте отключить опцию Hibernate в меню с помощью:
sudo rm /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla
Затем перезагрузите.
Для 11.04 и ранее
Попробуй это
Система> Запуск приложений> Параметры и установите флажок Автоматически запоминать запущенные приложения при выходе из системы и нажимать запомнить текущие приложения.
Кажется, невозможно, чтобы все приложения запомнили свою последнюю позицию и размер окна. Такое поведение, похоже, было устранено давным-давно. Насколько я понимаю, приложение должно помнить свою позицию и размер. И тут во лжи загвоздка.
Поиск в системе отслеживания ошибок дает множество отчетов, которые каким-то образом относятся к этой проблеме.
Итак, какие приложения помнят положение и размер, и какие версии Ubuntu имеют эти функции?
Примечание: Пожалуйста, отредактируйте и заполните приложения и версии Ubuntu, которые вы тестировали на эту функциональность. то есть приложение запоминает положение окна и / или размер.
Укажите версию Ubuntu, которую вы тестировали, и запомните одну или обе позиции окна и размер.
13,04
положение окна | размер
- Y, Y - Наутилус
- N, Y - ошибочные размещения нескольких мониторов Firefox
- N, N - Терминал Терминал имеет пользовательские настройки для запоминания определенного размера каждый раз, но он не запоминает последнюю позицию
- N, Y - хром
- Y, Y - Банши
- N, - - Калькулятор не изменяемого размера *
- N, Y - Гедит
Примеры отчетов об ошибках
Вот некоторые случайные сообщения об ошибках от простого поиска в трекере ошибок, например, "запомнить положение окна".
2013 2012- Диалоговые окна debconf gtk+ не запоминают размеры окон в Ubuntu. 1097089
- менеджер обновлений не помнит свою позицию на экране 928434
- Системное (GIMP) окно не запоминает свой размер 998030
- Firefox не помнит размер окна и положение между закрытием и перезапуском 876862
- Управление окнами - когда приложение запускается, окна должны снова открываться в их прежнем точном расположении 767232
- Firefox не помнит размер и положение окон 349740
- Thunderbird не запоминает положение окна в GNOME. 330779
- Положение окна между запусками не запоминается 204480
При использовании Compiz; Firefox всегда начинается в левом верхнем углу 198328
Расположение окна gnome-do иногда ошибочно 204372
- Запомнить + восстановить положение окна приложений с помощью WM_WINDOW_ROLE или заголовка окна, установленного 124315
- Ubuntu не запоминает положение окна 1100924
- Плохое положение окна, забытое при переключении дисплея с помощью плагинов, и при перезапуске 409539
- Окна приложения не восстанавливаются до последней известной позиции 391533
- Gtk приложения всегда появляются в правом верхнем углу экрана при запуске 387700
- metacity не запоминает положения окон при восстановлении сеанса 354674
- окно апплета погоды должно помнить, что это позиция экрана 108952
Как сохранить сеанс на Ubuntu 11.04 или выше:
Скачайте и установите DConf-Editor.
Тип
dconf
на приборной панели и запустить его.
Откройте следующие ярлыки по порядку: org
-> gnome
Затем выберите gnome-session
Теперь вы должны увидеть auto-save-session
вариант, как на следующем изображении, активируйте его.
СДЕЛАННЫЙ!
Теперь, когда вы выключите компьютер, текущий сеанс будет сохранен автоматически. В следующий раз, когда вы включите, все будет именно так, как вы ушли.
12,04
В качестве обходного пути вы можете снова включить спящий режим в 12.04 и использовать его, чтобы выключить компьютер, а затем разбудить его, когда все ваше приложение еще используется.
Введите в терминале:
sudo gedit /var/lib/polkit-1/localauthority/50-local.d/hibernate.pkla
и затем добавьте эту строку в текстовый файл:
[Повторно включить Hibernate]
Identity = Unix-пользователь: * Action = org.freedesktop.upower.hibernate
ResultActive = да
Сюда:
Тогда опция гибернации снова будет отображаться в меню выключения:
Надеюсь, это поможет.
В настоящее время считается, что правильной функцией сохранения / восстановления сеанса является использование режима приостановки или спящего режима. Я согласен, хотя, что гибернация и приостановка может быть боль, чтобы начать работать, если они не из коробки...
Но взгляните на...
CryoPID позволяет вам фиксировать состояние запущенного процесса в Linux и сохранять его в файл. Этот файл затем можно использовать для возобновления процесса позже, либо после перезагрузки, либо даже на другом компьютере.
CryoPID был порожден обсуждением в списке рассылки приостановки использования программного обеспечения о сложностях приостановки и возобновления отдельных процессов.
CryoPID состоит из программы, называемой freeze, которая фиксирует состояние запущенного процесса и записывает его в файл. Файл самораспаковывающийся и самораспаковывающийся, поэтому для возобновления процесса вы просто запускаете этот файл. См. Таблицу ниже для более подробной информации о том, что поддерживается.
Характеристики
- Может работать как обычный пользователь! (не требуются права суперпользователя)
- Работает как на 2.4, так и на 2.6.
- Работает на x86 и AMD64.
- Может запустить и остановить процесс несколько раз
- Может переносить процессы между машинами и между версиями ядра (проверено от 2,4 до 2,6 и от 2,6 до 2,4).
Это не очень хорошо задокументировано, хотя последний выпущенный DEB был для Heron, а сайт в последний раз обновлялся в 2005 году, поэтому он может быть бесполезен. Вот тарболы:
А также взглянуть на Tuxonice
TuxOnIce легче всего описать как эквивалент Linux гибернации Windows, но лучше. Сохраняет содержимое памяти на диск и выключается. Когда компьютер снова запускается, он перезагружает содержимое, и пользователь может продолжить с того места, где он остановился. Нет необходимости перезагружать документы или повторно открывать приложения, и этот процесс намного быстрее, чем обычное завершение работы и запуск.
ppa:tuxonice/ppa
PPA имеет предварительно скомпилированные ядра Ubuntu с уже скомпилированным TuxOnIce, бинарный файл userui и скрипт hibernate. Так что это может быть не для слабонервных.
Есть один обходной путь, на который стоит обратить внимание:
Создайте скрипт, в котором есть все программы, которые вы склонны открывать. Или создайте 2,3,4,5,6 из этих сценариев и привяжите ключ к этому сценарию. Например, control + alt + 1|2|3|4|5|6 или что-то еще. Нажмите клавишу и дайте сценарию открыть все программы из этого сценария.
И вы можете использовать что-то вроде этого, как перемещать приложения из рабочей области 1 в 2, используя команду, чтобы бросить их в другие рабочие области, если вы хотите, чтобы они были сгруппированы.
Не то, что вы просили, но кажется, что мы ищем обходные пути:)
Вы можете включить функцию, аналогичную этой. Вы можете сделать это, если Ubuntu запомнит местоположение и запустит приложения при выходе из системы / завершении работы. Для этого перейдите в "Система"> "Запуск приложений" и на вкладке "Параметры" установите флажок "Автоматически запоминать запущенные приложения при выходе из системы" и нажмите кнопку "Запомнить текущие приложения".
Вам необходимо включить, чтобы увидеть все приложения на запуске-приложение. Запустите команду bash на терминале:sudo sed -i 's / NoDisplay = true / NoDisplay = false / g' /etc/xdg/autostart/*.desktop После этого вы увидите все приложения в приложениях автозагрузки.
Я воспользуюсь этим советом по этой ссылке http://www.webupd8.org/2012/04/things-to-tweak-after-installing-ubuntu.html, возможно, она вас заинтересует.
Извините, мой английский!
Saludos!
1.
CryoPID Но это не очень хорошо задокументировано, хотя последний выпущенный DEB был для Heron, а сайт в последний раз обновлялся в 2005 году, поэтому он может быть бесполезен.CryoPID позволяет вам фиксировать состояние запущенного процесса в Linux и сохранять его в файл. Этот файл затем можно использовать для возобновления процесса позже, либо после перезагрузки, либо даже на другом компьютере.
CryoPID состоит из программы, называемой freeze, которая фиксирует состояние запущенного процесса и записывает его в файл. Файл самораспаковывающийся и самораспаковывающийся, поэтому для возобновления процесса вы просто запускаете этот файл. См. Таблицу ниже для более подробной информации о том, что поддерживается.
Характеристики
- Может работать как обычный пользователь! (не требуются права суперпользователя)
- Работает как на 2.4, так и на 2.6.
- Работает на x86 и AMD64.
- Может запустить и остановить процесс несколько раз
- Может переносить процессы между машинами и между версиями ядра (проверено от 2,4 до 2,6 и от 2,6 до 2,4).
Вот тарболы:
2.
Tuxonice, вероятно, это ваша лучшая ставка и может сработать.TuxOnIce легче всего описать как эквивалент Linux гибернации Windows, но лучше. Сохраняет содержимое памяти на диск и выключается. Когда компьютер снова запускается, он перезагружает содержимое, и пользователь может продолжить с того места, где он остановился. Нет необходимости перезагружать документы или повторно открывать приложения, и этот процесс намного быстрее, чем обычное завершение работы и запуск.
sudo add-apt-repository ppa:tuxonice/ppa
PPA имеет предварительно скомпилированные ядра Ubuntu с уже скомпилированным TuxOnIce, бинарный файл userui и скрипт hibernate. Так что это может быть не для слабонервных.
Есть один обходной путь, на который стоит обратить внимание:
Создайте скрипт, в котором есть все программы, которые вы склонны открывать. Или создайте 2,3,4,5,6 из этих сценариев и привяжите ключ к этому сценарию. Например, control + alt + 1|2|3|4|5|6 или что-то еще. Нажмите клавишу и дайте сценарию открыть все программы из этого сценария.
И вы можете использовать что-то вроде этого, как перемещать приложения из рабочей области 1 в 2, используя команду, чтобы бросить их в другие рабочие области, если вы хотите, чтобы они были сгруппированы.
Мне запрещено копировать чей-то ответ, поэтому источник.