it-swarm.cn

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

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

如何进行?

58
Eric

12.04(和11.10)

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

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

  • 注意:如末尾所述,此officialTweak似乎不起作用 - 你可能想直接跳到B。休眠与TuxOnIce
  • Launchpad bug 讨论恢复“保存会话”功能。它目前标记为“已修复”,因为2012年4月在gnome-session包中引入了一个补丁,允许用户手动重新启用此功能。该补丁将自身描述为:

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

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

    • enter image description here

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

    • 现在重新启动(注销也应该工作,但只是为了安全)
  • 补丁( source )的作用是禁用启动应用程序中的Optionstab,它曾用于包含记得在注销选项时运行应用程序。 但是它检查GNOME_SESSION_SAVE变量,如果设置(非空),它应该启用会话保存,就像记住...盒子存在并被检查。这就是为什么这个bug被标记为“固定” [。_____。
    • if(g_getenv(“GNOME_SESSION_SAVE”)!= NULL)
       maybe_load_saved_session_apps(manager);
    • 不幸的是,它似乎不起作用,如错误跟踪器中的 评论32 所证实。
    • 我甚至尝试禁用补丁并从源代码重建gnome-session。这使得Options复选框再次出现,但它什么也没做。
    • 但是,嘿,它可能以某种方式为你工作! :)

B.现在有效:用TuxOnIce增强休眠

  • 休眠将当前系统状态(包括会话,应用程序打开等)保存到硬盘,然后关闭计算机。当您再次启动它时,它会读取已保存的状态并将其恢复,就像您从未关闭计算机一样。这项技术主要用于笔记本电脑用户以节省电池电量,但也没有理由不能在台式电脑上使用。
  • Ubuntu支持在Ubuntu/Linux中可用,但在12.04中被禁用,因为它在许多系统上都无法正常工作。如果你想了解更多信息,请参阅 这个问题这个bug报告 .

    更兼容的替代方案:TuxOnIce

  • TuxOnIcewiki | 主页 )是内核的内置休眠技术的替代品,应该是更兼容,更可靠,更灵活。

  • 它很容易安装,如果它不适合你,就像容易删除。
  • 它确实需要安装TuxOnIce的自定义内核,但是后面的说明应该很容易。如果您之前从未打开过终端,您现在可能想要:-)

    0.要求

    TuxOnIce的唯一要求是你的交换分区是至少与内存量一样大(RAM ) 你有。你可以通过以下方式检查:

  • 用。启动终端 Ctrl+Alt+T

  • 输入free -m,您应该看到如下内容:

                 缓存的总使用的免费共享缓冲区
    内存:1024 731 260 0 0 190 
      - /+缓冲区/缓存:540 451 
    交换:1536 6 1530 
    
  • Swap:之后的数字(例如1536)应该是more而不是Mem:之后的数字(例如1024)

  • 如果不是这种情况,你的交换是更小而不是你的内存,你必须调整大小并增加交换分区的大小,或者配置TuxOnIce使用特殊的交换文件。这超出了这个答案的范围,但如果你在评论中提出另一个问题并提及它,我将回答并解释如何。

    1.安装TuxOnIce内核

  • 用。启动终端 Ctrl+Alt+T

  • 将以下内容复制并粘贴到终端中。这会添加TuxOnIcePPA并安装自定义内核和标题。[。_____。]
    •  Sudo apt-add-repository ppa:tuxonice/ppa -y
      并且一旦添加了ppa:
    • Sudo apt-get update 
       Sudo apt-get install tuxonice-userui linux-generic-tuxonice -y 
       Sudo apt-get install linux-headers-generic-tuxonice -y
  • 现在重启。
  • Ubuntu现在应该以TuxOnIcekernel启动。如果有任何问题,请保留 Shift 在启动时按下,你将获得Grub菜单。使用箭头键转到Previous Linux Versions,按Enter键,然后再次按Enter键返回工作内核。

    2.测试休眠功能。

  • 打开一些您通常使用的应用程序,例如Firefox,Thunderbird,LibreOffice等.

  • 再次打开终端,用 Ctrl+Alt+T
  • 输入Sudo pm-hibernate,按回车键,输入您的密码。
  • 您应该看到锁定屏幕一秒钟,然后是TuxOnIce休眠进度屏幕,如下所示:

    enter image description here

    • 如果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 退出编辑器:

    [默认情况下重新启用休眠] 
     Identity = unix-user:* 
     Action = org.freedesktop.upower.hibernate 
     ResultActive = yes

    enter image description here

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

    enter image description here

    4.删除TuxOnIce

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

       Sudo apt-get删除tuxonice-userui linux-generic-tuxonice linux-headers-generic-tuxonice -y
    • 并记得在菜单中禁用Hibernate选项:

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

18
ish

11.04及更早版本

试试这个

系统>启动应用程序>选项并检查注销时自动记住运行应用程序并单击记住当前应用程序。

11
Open Help

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

通过错误跟踪器进行搜索会产生许多报告,这些报告在某种程度上与此问题相关。

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

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

请指定您测试的Ubuntu版本,以及是否记住一个或两个窗口的帖子和大小。

13.04

窗口位置|尺寸

  • Y,Y - Nautilus
  • N,Y - Firefox不稳定的多显示器位置
  • N,N - 终端终端每次都有自定义设置来记住特定大小,但它不会记住最后一个位置
  • N,Y -
  • Y,Y - Banshee
  • N, - - 计算器不可调整大小*
  • N,Y - Gedit

错误报告示例

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

7
Gerard Roche

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

  1. 下载并安装 DConf-Editor。

  2. 在短划线上键入dconf并运行它。

DASH-IMG

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

然后选择gnome-session

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

APP-IMG

DONE!

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

5
Lucio

12.04

作为一种解决方法,您可以在12.04重新启用休眠并使用它关闭您的电脑,然后将所有应用程序仍在使用中将其唤醒。

输入终端:

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

然后将此字符串添加到文本文件中:

[重新启用休眠]
Identity = unix-user:* Action = org.freedesktop.upower.hibernate
ResultActive =是

这条路 :

enter image description here

然后在关机菜单上再次显示休眠选项:

enter image description here

希望它会有所帮助。

3
neonboy

目前认为正确的会话保存/恢复功能是使用suspend或hibernate。我同意,如果他们没有开箱即用,那么休眠和暂停可能会让他们感到痛苦......

但看看......

CryoPID

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

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 如果你想将它们分组,将它们扔到另一个工作区。

不是你要求的,但似乎我们被认为寻找变通方法:)

3
Rinzwind

您需要启用以查看startup-aplication上的所有应用程序。在终端上运行此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
ali3n

您可以启用与此类似的功能。您可以通过让Ubuntu记住位置并在注销/关闭时运行应用程序来实现此目的。为此,请导航到“系统”>“启动应用程序”,然后在“选项”选项卡中选中“注销时自动记住运行应用程序”,然后按“记住当前应用程序”按钮。

img

1
Marco Ceppi

在CCSM中,使用“放置Windows”和“调整窗口大小”插件。

0
jasmines