Как сохранить / запомнить последнюю использованную позицию и размер окна для приложений?

58

Когда я вхожу в Ubuntu, я бы хотел, чтобы все окна, открытые на предыдущем сеансе (в основном терминал и Firefox), автоматически открывались в том же размере и положении.

Как продолжить?

Эрик
источник
1
Как вы можете прочитать здесь, эта функция была удалена. Я предлагаю изменить ваш вопрос и попросить эквивалентный обходной путь, чтобы предложить вознаграждение за.
Якоб
2
Почему? Вы не можете редактировать свой вопрос, так как вы предложили эту награду? В противном случае я хотел бы спросить что-то вроде «Есть идеи для обхода?» так как это интересный вопрос!
Якоб
2
«Я хотел бы получить ответ, а не ссылку. Пожалуйста, укажите, что мне нужно сделать, чтобы решить проблему, с которой я столкнулся». Вам нужно испачкать пальцы, если вы хотите метод достижения этого: +
Rinzwind
2
Отчеты об ошибках: здесь (2007-07-06) , здесь , здесь (2008-03-21) , здесь , Другие приложения: здесь , здесь , здесь . Есть еще кое-что!
Жерар Рош
1
Возможный дубликат, который дает соответствующий ответ 12.04? - или обман должен быть объединен здесь: askubuntu.com/questions/129339/…
fossfreedom

Ответы:

18

За 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, нажмите Enter, введите свой пароль.
  • Вы должны увидеть экран блокировки на секунду, а затем экран прогресса гибернации 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
    • Затем перезагрузите.

иш
источник
3
Это действительно исчерпывающий ответ, но я думаю, что вопрос заключается в том, «как заставить приложения запомнить их размер и положение окна», даже если они сохраняются между перезагрузками. Возможно, это даже не настройка приложения, может быть, менеджер окон? Все текущие решения (включая devispie), например, не влияют на Firefox. Он открывается сверху справа для меня, несмотря ни на что. Хороший ответ, хотя. Вопрос может нуждаться в другом редактировании, если мое понимание верно.
Том Броссман
@ TomBrossman, это немного более нюансировано, IMO: операционная потребность - это «состояние» рабочего стола при выходе из системы / завершении работы, которое восстанавливается при входе в систему / загрузке, что технически отличается от приложений, запоминающих их последний размер / позицию между экземплярами. Консенсус заключается в том, что между менеджером окон и сообществом разработчиков приложений уже давно сложился статус-кво: каждый считает, что ответственность за сохранение параметров окна приложения лежит на другой стороне. Единственный верный обходной путь для того, что вы упомянули, вероятно, это какой-то сценарий-обертка для каждого приложения, которое сохраняет / восстанавливает позицию.
иш
1
Это самое жестокое излишнее решение простой проблемы, которую я когда-либо видел, и, вероятно, не стоит менять биты гибернации, и я бы не стал этого делать ни с одной из своих машин, но +150 за тщательную работу!
Хорхе Кастро
Я набрал «free -m» и обнаружил, что мой номер подкачки (255) меньше, чем mem (3841), поэтому я не продолжил. Как я могу это исправить? Благодарю.
Лед-Зепп
Диалог этого ответа, хотя и интересен, отвлекает от специфики этого актуального вопроса. Этот вопрос задавался много раз. Ответы редко касаются реального вопроса. ОП не пытается сохранить сеансы. Он хочет , чтобы они начать с последнего размера и положения .... Not remember & start same session... При запуске нового сеанса с приложениями ( terminalи firefox), даже на том же входе, Remember the last-used window size and position. Это сэкономит много времени на попытки переместить и изменить размер приложения в каждом сеансе ... каждый раз, когда приложение запускается.
Л.Д. Джеймс
11

Для 11.04 и ранее

Попробуй это

Система> Запуск приложений> Параметры и установите флажок Автоматически запоминать запущенные приложения при выходе из системы и нажимать запомнить текущие приложения.

Открыть справку
источник
3
Там нет вкладки Options, v11.10?
Жерар Роше
7

Кажется, невозможно, чтобы все приложения запомнили свою последнюю позицию и размер окна. Такое поведение, похоже, было устранено давным-давно. Насколько я понимаю, приложение должно помнить свою позицию и размер. И здесь во лжи руб.

Поиск в системе отслеживания ошибок дает множество отчетов, которые каким-то образом относятся к этой проблеме.

Итак, какие приложения помнят положение и размер, и какие версии Ubuntu имеют эти функции?

Примечание: Пожалуйста, отредактируйте и заполните приложения и версии Ubuntu, которые вы тестировали на эту функциональность. то есть приложение запоминает положение окна и / или размер.

Укажите версию Ubuntu, которую вы тестировали, и запомните одну или обе позиции окна и размер.

13,04

положение окна | размер

  • Y, Y - Наутилус
  • N, Y - ошибочные размещения нескольких мониторов Firefox
  • N, N - Терминал Терминал имеет пользовательские настройки для запоминания определенного размера каждый раз, но он не запоминает последнюю позицию
  • N, Y - хром
  • Y, Y - Банши
  • N, - - Калькулятор не изменяемого размера *
  • N, Y - Гедит

Примеры отчетов об ошибках

Вот некоторые случайные сообщения об ошибках от простого поиска в трекере ошибок, например, «запомнить положение окна» .

2013 2012 2011 2009 2008 2007
Жерар Рош
источник
Bullfrogblues вы ударили его по ногтю. Вы можете добавить, что фактическая возможность для for в Ubuntu существует в ccsm . Он находится под Place Windows... подробностями по адресу: askubuntu.com/a/708984/29012 .
Л.Д. Джеймс
Где Firefox сохраняет размер окна и данные о местоположении?
Рой
5

Как сохранить сеанс на Ubuntu 11.04 или выше:

  1. Скачайте и установите DConf-Editor.

  2. Введите dconfтире и запустите его.

DASH-IMG

Откройте следующие ярлыки по порядку: org->gnome

Затем выберите gnome-session

Теперь вы должны увидеть auto-save-sessionопцию как на следующем изображении, активировать ее .

APP-IMG

СДЕЛАННЫЙ!

Теперь, когда вы выключите компьютер, текущий сеанс будет сохранен автоматически. В следующий раз, когда вы включите, все будет именно так, как вы ушли.

Lucio
источник
2
Похоже, это ничего не делает для окон приложений, запоминающих размер и положение.
Жерар Рош
Я не понимаю, что ты пытаешься сказать.
Лусио
1
Этот вопрос задают много раз на askubuntu.com. Ни один из многочисленных ответов не касается конкретного вопроса. Речь идет не о спящем режиме, а об открытии запуска приложения terminal или firefox, настройке размера и положения окна, а затем при повторном запуске размер и положение будут теми, которые вы только что установили. Он не пытается вспомнить предыдущую сессию. Он просто хочет, чтобы приложение terminalили firefoxприложение начиналось с последнего размера и позиции. Новый сеанс / тот же размер и позиция из того же приложения.
Л.Д. Джеймс
3

В настоящее время считается, что правильной функцией сохранения / восстановления сеанса является использование режима приостановки или спящего режима. Я согласен, хотя, что гибернация и приостановка может быть боль, чтобы начать работать, если они не из коробки ...

Но взгляните на ...

CryoPID

CryoPID позволяет вам фиксировать состояние запущенного процесса в Linux и сохранять его в файл. Этот файл затем можно использовать для возобновления процесса позже, либо после перезагрузки, либо даже на другом компьютере.

CryoPID был порожден обсуждением в списке рассылки приостановки использования программного обеспечения о сложностях приостановки и возобновления отдельных процессов.

CryoPID состоит из программы, называемой freeze, которая фиксирует состояние запущенного процесса и записывает его в файл. Файл самораспаковывающийся и самораспаковывающийся, поэтому для возобновления процесса вы просто запускаете этот файл. См. Таблицу ниже для более подробной информации о том, что поддерживается.

Особенности

  • Может работать как обычный пользователь! (не требуются права root)
  • Работает как на 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, используя команду, чтобы бросить их в другие рабочие области, если вы хотите, чтобы они были сгруппированы.

Не то, что вы просили, но кажется, что мы ищем обходные пути :)

Rinzwind
источник
1
Хммм ... Думаю, пройдет некоторое время, прежде чем мы сможем сделать достаточные изменения в CryoPID, прежде чем мы сможем сделать его совместимым с ядром 3.0. Если есть какой-либо способ ответить на мой вопрос, то это оно. Спасибо, Ринзвинд.
harisibrahimkv
Похоже, криопид мертв в воде. Туконице, похоже, полон надежд. Прочитайте некоторые положительные отзывы об этом. И никаких проблем @harisibrahimkv Я использовал этот вариант довольно много в старые времена (но также должен согласиться, что он был очень очень глючным). У меня есть другой вариант, но на самом деле не время искать дальше: как насчет скрипта, который открывает все ваши программы и отправляет их в рабочую область? xdotool должен быть в состоянии сделать это?
Rinzwind
3

12,04

В качестве обходного пути вы можете снова включить спящий режим в 12.04 и использовать его, чтобы выключить компьютер, а затем разбудить его, когда все ваше приложение все еще используется.

Введите в терминале:

sudo gedit /var/lib/polkit-1/localauthority/50-local.d/hibernate.pkla

и затем добавьте эту строку в текстовый файл:

[Повторно включить Hibernate]
Identity = unix-user: * Action = org.freedesktop.upower.hibernate
ResultActive = yes

Сюда :

введите описание изображения здесь

Тогда опция гибернации снова будет отображаться в меню выключения:

введите описание изображения здесь

Надеюсь, это поможет.

neonboy
источник
2
Спасибо, что нашли время, чтобы дать свой ответ. Но, к сожалению, вариант гибернации не является решением моего вопроса.
harisibrahimkv
1
что это приложение работает на рабочем столе? или это просто значки? (сердитые птички / firefox и т. д.), это мило ... ссылка, пожалуйста: D: D: D: P
kernel_panic
Я подозреваю, что это просто обои, но я бы хотел, чтобы тема значков была такой
открывается как
1

Вы можете включить функцию, аналогичную этой. Вы можете сделать это, если Ubuntu запомнит местоположение и запустит приложения при выходе из системы / завершении работы. Для этого перейдите в «Система»> «Запуск приложений» и на вкладке «Параметры» установите флажок «Автоматически запоминать запущенные приложения при выходе из системы» и нажмите кнопку «Запомнить текущие приложения».

IMG

Марко Чеппи
источник
6
12.04 не имеет вкладки параметров в настройках запуска приложений.
фрагменты
1

Вам необходимо включить, чтобы увидеть все приложения на запуске-приложение. Запустите команду bash на терминале: sudo sed -i 's / NoDisplay = true / NoDisplay = false / g' /etc/xdg/autostart/*.desktop После этого вы увидите все приложения в приложениях автозагрузки.

Я воспользуюсь этим советом по этой ссылке http://www.webupd8.org/2012/04/things-to-tweak-after-install-ubuntu.html , возможно, она вас заинтересует.

Извините, мой английский!

Saludos!

ali3n
источник
3
Спасибо за ссылку, поскольку я нахожу это очень полезным. Но я боюсь, что это не тот ответ, который я ищу. То, что вы предложили, отображает запускаемые приложения, которые фактически запускаются при запуске, в меню приложений запуска.
harisibrahimkv
0

В CCSM используйте плагины Place Windows и Resize Window.

жасмин
источник
1
Окно «Поместить» добавляет некоторые алгоритмы размещения или, в качестве альтернативы, требует ввода правил для сопоставления и размещения окон в определенных местах. Я не мог заставить его просто помнить, где размещались окна в прошлый раз, когда я вошел в систему. Однако выглядит полезным.
Джон С. Грубер
2
Не могли бы вы предоставить более подробную информацию в своем ответе, как использовать эти плагины для получения желаемого эффекта? Спасибо!
Кристофер Кайл Хортон
-1

1.

CryoPID Но это не очень хорошо задокументировано, хотя последний выпущенный DEB был для Heron, а сайт в последний раз обновлялся в 2005 году, поэтому он может быть бесполезен.

CryoPID позволяет вам фиксировать состояние запущенного процесса в Linux и сохранять его в файл. Этот файл затем можно использовать для возобновления процесса позже, либо после перезагрузки, либо даже на другом компьютере.

CryoPID состоит из программы, называемой freeze, которая фиксирует состояние запущенного процесса и записывает его в файл. Файл самораспаковывающийся и самораспаковывающийся, поэтому для возобновления процесса вы просто запускаете этот файл. См. Таблицу ниже для более подробной информации о том, что поддерживается.

Особенности

  • Может работать как обычный пользователь! (не требуются права root)
  • Работает как на 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, используя команду, чтобы бросить их в другие рабочие области, если вы хотите, чтобы они были сгруппированы.

Мне запрещено копировать чей-то ответ, поэтому источник .

Рахул Вирпара
источник
1
Вы полностью скопировали и вставили ответ отсюда ( askubuntu.com/questions/129339/… ). Если вы сделаете это в будущем - пожалуйста, подтвердите это, добавив цитату.
fossfreedom
@fossfreedom Могу ли я опубликовать чей-то ответ? Я не буду, если не должен.
Рахул Вирпара
@virpara: это может быть мета, но я признаю исходный вопрос / ответ в начале, если я собираюсь использовать какую-либо его часть в своем ответе
ish
1
Если это часть чьего-то ответа, то укажите это в своем ответе. Учитывая, что вы скопировали 99% ответа, вам нужно просто дать ссылку на ответ. Пожалуйста, обратите внимание - я уже связал этот вопрос в комментарии к вопросу. На мой взгляд, два вопроса очень похожи и могут потребовать слияния.
fossfreedom