如何保存/记住应用程序上次使用的窗口位置和大小?

Eri*_*ric 58 gnome startup window-manager display-manager

当我登录 Ubuntu 时,我希望所有在上一个会话中打开的窗口(主要是终端和 Firefox)以相同的大小和位置自动重新打开。

如何进行?

ish*_*ish 18

对于 12.04(和 11.10)

简短的回答是:休眠是最好的选择,因为gnome-session-save功能在 11.04 之后被删除,因为它有问题,并且手动重新启用此功能的官方调整似乎不起作用。此答案的B 部分描述了如何使用替代休眠方法TuxOnIce,它现在比内置休眠更兼容和可靠。

A. 尝试启用旧的 Gnome 会话保存功能

  • 注意:正如最后所描述的,这个官方调整似乎不起作用——你可能想直接跳到B. Hibernation with TuxOnIce
  • Launchpad 错误讨论了恢复“保存会话”功能。它目前标记为“已修复”,因为gnome-session2012 年 4 月在软件包中引入了一个补丁,允许用户手动重新启用此功能。该补丁将自身描述为:

    • 为想要的人添加 GNOME_SESSION_SAVE 环境变量
      仍然使用保存会话,知道它会破坏您的系统
      如果使用不当(LP:#771896)
  • 您可以通过将GNOME_SESSION_SAVE变量设置为非空值来启用此功能。就是这样:

    • Alt+F2,键入gedit ~/.pam_environment,然后按 Enter。
    • GNOME_SESSION_SAVE=1在文件末尾添加一行,如下所示:

    • 在此处输入图片说明

    • Ctrl+S保存,并Ctrl+Q退出编辑器。

    • 现在重新启动(注销也应该有效,但只是为了安全)
  • 补丁(源代码)的作用是禁用启动应用程序中的选项选项卡,该选项卡曾经包含注销时记住正在运行的应用程序选项。但是它检查GNOME_SESSION_SAVE变量,如果设置(非空),它应该启用会话保存,就像记住...框存在并被选中一样。这就是错误被标记为“已修复”的原因
    • if (g_getenv ("GNOME_SESSION_SAVE") != NULL)
                      也许_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 更新
      须藤 apt-get 安装 tuxonice-userui linux-generic-tuxonice -y 
      sudo apt-get install 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,键入以下内容,然后按 Enter:

    gksudo gedit /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla
  • 粘贴以下内容,按Ctrl+S保存并按Ctrl+Q退出编辑器:

    [默认重新启用休眠]
    身份=unix-用户:*
    行动=org.freedesktop.upower.hibernate
    结果活动=是

    在此处输入图片说明

  • 重新启动,您应该会看到Hibernate选项,如下所示:

    在此处输入图片说明

    4. 删除 TuxOnIce

    • 如果 TuxOnIce 对您不起作用,或者您只是想删除它,请启动终端并输入:

       sudo apt-get 删除 tuxonice-userui linux-generic-tuxonice linux-headers-generic-tuxonice -y
    • 并记住在菜单中禁用休眠选项:

      须藤rm /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla
    • 然后重新启动。

  • 这是一个非常彻底的答案,但我认为问题是“如何让应用程序记住它们的窗口大小和位置”,甚至在重新启动之间仍然存在。也许这甚至不是应用程序设置,也许是窗口管理器?例如,所有当前的解决方案(包括 devispie)都对 Firefox 没有影响。无论如何,它为我打开右上角。不过好答案。如果我的理解是正确的,这个问题可能需要再次编辑。 (3认同)

Ope*_*elp 11

对于 11.04 及更早版本

尝试这个

系统 > 启动应用程序 > 选项并选中注销时自动记住正在运行的应用程序,然后单击记住当前应用程序。

  • 没有选项选项卡,v11.10? (3认同)

Ger*_*che 7

似乎不可能让所有应用程序记住它们最后的窗口位置和大小。这种行为似乎很久以前就被移除了。我的理解是应用程序有责任记住自己的位置和大小。这就是问题所在。

通过错误跟踪器进行搜索会产生许多与此问题有关的报告。

那么哪些应用程序会记住位置和大小,哪些版本的 Ubuntu 应用程序具有此功能?

注意:请编辑并填写您为此功能测试过的 Ubuntu 应用程序和版本。即应用程序记住窗口位置和/或大小。

指定您测试过的 Ubuntu 版本,以及是否记住了窗口位置和大小中的一个或两个。

13.04

窗口位置| 尺寸

  • Y, Y -鹦鹉螺
  • N、Y - Firefox 不稳定的多显示器放置
  • N, N - Terminal 终端有自定义设置,每次记住一个特定的大小,但不会记住上次的位置
  • N, Y -
  • Y, Y - 女
  • N, - -计算器 不可调整大小*
  • N, Y - Gedit

错误报告示例

这里有一些来自错误跟踪器中一些简单搜索的随机错误报告,例如“记住窗口位置”

2013年 2012年 2011年 2009年 2008年 2007年


Luc*_*cio 5

如何在 Ubuntu 11.04 或更高版本上保存会话:

  1. 下载并安装DConf-Editor。

  2. dconf在破折号上键入并运行它。

DASH-IMG

按顺序打开下一个标签:org-->gnome

然后选择 gnome-session

现在您应该看到auto-save-session如下图所示的选项,激活它

应用程序-IMG

完毕!

现在,当您关闭计算机时,当前会话将自动保存。下次您转动时,它将与您离开时完全一样。

  • 这对于记住大小和位置的应用程序窗口似乎没有任何作用。 (2认同)