当我登录 Ubuntu 时,我希望上一次会话中打开的所有窗口(主要是终端和 Firefox)能够自动以相同的大小和位置重新打开。
如何进行?
答案1
适用于 12.04 (和 11.10)
简短的回答是:冬眠是最好的选择,因为gnome-会话保存由于存在缺陷,该功能在 11.04 之后被删除,并且手动重新启用此功能的官方调整似乎不起作用。B 部分这个答案描述了如何使用替代的休眠方法,TuxOnIce,它现在比内置休眠功能更兼容、更可靠。
A. 尝试启用旧版 Gnome 会话保存功能
- 笔记:正如最后所述,这官方的调整似乎不起作用——你可能想直接跳到B. 使用 TuxOnIce 进行休眠
这启动板错误讨论了恢复“保存会话”功能。目前该功能被标记为“已修复”,因为
gnome-session
2012 年 4 月在软件包中引入了一个补丁,允许用户手动重新启用此功能。该补丁的描述如下:为想要的人添加 GNOME_SESSION_SAVE 环境变量 仍然使用保存会话,尽管这可能会破坏你的系统 如果使用不当(LP:#771896)
您可以通过将
GNOME_SESSION_SAVE
变量设置为非空值来启用此功能。操作方法如下:- 按
Alt+F2
,输入gedit ~/.pam_environment
,然后按回车键。 GNOME_SESSION_SAVE=1
在文件末尾添加以下行,如下所示:按
Ctrl+S
保存并Ctrl+Q
退出编辑器。- 现在重新启动(注销也可以,但为了安全起见)
- 按
- 什么是补丁(来源)所做的就是禁用选项启动应用程序中的选项卡,用于包含注销时记住正在运行的应用程序选项。但它检查
GNOME_SESSION_SAVE
变量,如果设置(非空),它应该启用会话保存,就像记住...框存在并且已被检查。这就是该错误被标记为“已修复”的原因如果 (g_getenv ("GNOME_SESSION_SAVE") != NULL) 也许_load_saved_session_apps(管理器);
- 不幸的是,它似乎不起作用,正如评论 32在错误跟踪器中。
- 我甚至尝试禁用补丁并
gnome-session
从源代码重建。这使得选项复选框再次出现,但它不执行任何操作。 - 但是嘿,它可能对你有用!!:)
B. 目前有效的方法:增强休眠功能TuxOnIce
- 休眠将您当前的系统状态(包括您的会话、打开的应用程序等)保存到硬盘,然后关闭计算机。当您再次启动计算机时,它会读取保存的状态并恢复,就像您从未关闭过计算机一样。这项技术主要由笔记本电脑用户使用,以节省电池电量,但没有理由不能在台式机上使用。
Ubuntu/Linux 提供休眠支持,但在 12.04 版中被禁用,因为它在许多系统上无法正常工作。请参阅这个问题和此错误报告如果您想了解更多信息。
更兼容的替代方案:TuxOnIce
- 它很容易安装,如果它不适合您,也很容易删除。
它确实需要安装TuxOnIce 的自定义内核,但下面的说明应该会让它变得简单。如果你以前从未打开过终端,你现在可能想要打开它 :-)
0. 要求
唯一的要求是TuxOnIce你的交换分区是至少和您拥有的内存 (RAM) 数量一样大。您可以通过以下方式检查:
使用 ++Ctrl启动终端AltT
键入
free -m
,你应该看到类似这样的内容:已使用的、可用的、缓存的共享缓冲区总数 内存:1024 731 260 0 0 190 -/+ 缓冲区/缓存:540 451 交换:1536 6 1530
后面的数字
Swap:
(例如 1536)应该是更多的比后面的数字大Mem:
(例如 1024)如果不是这种情况,并且您的掉期是更小比你的内存,你必须调整并增加交换分区的大小,或配置TuxOnIce使用特殊交换文件。这超出了本回答的范围,但如果您提出其他问题并在评论中提及,我将回答并解释如何操作。
1. 安装 TuxOnIce 内核
使用 ++Ctrl启动终端AltT
- 将以下内容复制并粘贴到终端中。这将添加TuxOnIcePPA 并安装自定义内核和标头。
sudo apt-add-repository ppa:tuxonice/ppa -y
一旦添加了 ppa:sudo apt-get 更新 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 结果活动=是
重新启动,你应该看到休眠选项如下图所示:
4. 删除 TuxOnIce
如果 TuxOnIce 不适合您,或者您只是希望删除它,请启动终端并输入:
sudo apt-get 删除 tuxonice-userui linux-generic-tuxonice linux-headers-generic-tuxonice -y
并记得使用以下命令禁用菜单中的休眠选项:
sudo rm /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla
然后重新启动。
答案2
对于 11.04 及更早版本
尝试这个
系统>启动应用程序>选项并检查注销时自动记住正在运行的应用程序并点击记住当前的应用程序。
答案3
似乎不可能让所有应用程序记住它们最后的窗口位置和大小。这种行为似乎很久以前就被删除了。我的理解是,这是应用的责任,记住自己的位置和大小。问题就在这里。
通过错误跟踪器进行搜索会得到许多与该问题有某种相关的报告。
那么哪些应用程序可以记住位置和大小以及哪些版本的 Ubuntu 应用程序具有此功能?
注意:请编辑并填写您已测试过此功能的 Ubuntu 应用程序和版本。即应用程序记住窗口位置和/或大小。
指定您测试过的 Ubuntu 版本,以及是否记住一个或两个窗口位置和大小。
13.04
窗口位置 | 大小
- 是,是——鹦鹉螺
- N, Y——火狐 多显示器放置不稳定
- 氮,氮-终端 终端有自定义设置,每次都会记住特定的尺寸,但不会记住最后的位置
- N, Y——铬
- 是,是——女妖
- 否, - -计算器 不可调整大小*
- N, Y——编辑
错误报告示例
以下是一些来自错误跟踪器中简单搜索的随机错误报告,例如“记住窗口位置”。
2013- 雷鸟不记得窗口的位置1208647
- debconf gtk+ 对话框不记得 ubuntu 上的窗口大小。1097089
- 更新管理器不记得它在屏幕上的位置928434
- 系统(GIMP)窗口不记得它的大小998030
- Firefox 不记住窗口的大小和位置349740
- Thunderbird 无法记住 GNOME 中的窗口位置。330779
- 启动期间无法记住窗口位置204480
gnome-do 窗口的定位有时不稳定204372
- 记住+恢复带有 WM_WINDOW_ROLE 或窗口标题设置的应用程序的窗口位置124315
- ubuntu 不记得窗口位置1100924
- 通过插件切换显示时以及重启时会忘记大胆窗口的位置409539
- 应用程序窗口不会恢复到上次已知位置391533
- Gtk 应用程序在启动时总是出现在屏幕的右上角387700
- metacity 无法记住会话恢复时的窗口位置354674
- 天气小程序的窗口应该记住它的屏幕位置108952
答案4
目前认为,正确的会话保存/恢复功能是使用挂起或休眠。但我同意,如果休眠和挂起功能没有开箱即用,那么启用它们会很麻烦...
但看一下...
CryoPID 允许您捕获 Linux 中正在运行的进程的状态并将其保存到文件中。然后可以使用该文件稍后恢复该进程,无论是在重新启动后还是在另一台机器上。
CryoPID 诞生于软件暂停邮件列表中关于暂停和恢复单个进程的复杂性的讨论。
CryoPID 包含一个名为 freeze 的程序,该程序可捕获正在运行的进程的状态并将其写入文件。该文件是自执行和自解压的,因此要恢复进程,只需运行该文件即可。有关受支持功能的更多详细信息,请参阅下表。
特征
- 可以作为普通用户运行!(无需root权限)
- 适用于 2.4 和 2.6。
- 适用于 x86 和 AMD64。
- 可以多次启动和停止一个进程
- 可以在机器之间、内核版本之间迁移进程(在 2.4 到 2.6 和 2.6 到 2.4 之间测试)。
不过,它的文档并不完善,而且上次发布的 DEB 是为 Heron 发布的,网站上次更新是在 2005 年,所以它可能没什么用。以下是 tarball:
还可以看看图克索尼斯
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如果您希望将它们分组,请将它们扔到另一个工作区。
这不是您所要求的,但看来我们应该寻找解决方法:)