有没有办法存储当前的桌面布局?

Lip*_*pis 37 command-line layout

我希望能够保存我的应用程序的当前位置,因此当我要打开相同的应用程序并运行某些内容时,它们将按原样重新排列。

例如,如果我要打开一个 sublime 和三个终端窗口,我希望能够以某种方式保存它。

在此处输入图片说明

我不在乎它是应用程序还是命令行工具,只要我可以轻松保存应用程序的位置即可。

我是Moom 的忠实粉丝,但不幸的是它只能在 MacOS 上运行,而在 Ubuntu 上我真的很想念它。它支持更多的功能,如果你知道我的主要问题之上的一些接近它的东西,那也很好。

Jac*_*ijm 27

笔记

该脚本已于 2017 年 1 月 16 日修补/修复,修复了进程名称运行应用程序命令不同的一些应用程序。可能,这在应用程序中偶尔会发生。如果有人找到了,请发表评论。


用于记住和恢复窗口排列及其相应应用程序的脚本。

下面的脚本可以使用两个选项运行。假设您的窗口排列如下:

在此处输入图片说明

读取(记住)当前窗口排列及其应用程序,请使用以下选项运行脚本:

<script> -read
Run Code Online (Sandbox Code Playgroud)

然后关闭所有窗口:

在此处输入图片说明

然后要设置最后记住的窗口排列,请使用以下选项运行它:

<script> -run
Run Code Online (Sandbox Code Playgroud)

并且最后记住的窗口排列将被恢复:

在此处输入图片说明

这也将在重新启动后起作用。

将这两个命令放在两个不同的快捷键下,您可以“记录”您的窗口排列,关闭计算机并在(例如)重新启动后调用相同的窗口排列。

脚本做什么,不做什么

使用选项运行 -read

  • 该脚本用于wmctrl列出所有工作区中的所有窗口、它们的位置、它们的大小、它们所属的应用程序
  • 然后,脚本将窗口位置从相对(到当前工作区,如 的输出中wmctrl)“转换”到跨越工作区上的绝对位置。因此,您要记住的窗口是仅位于一个工作区还是分布在不同的工作区并不重要。
  • 然后脚本“记住”当前的窗口排列,将其写入主目录中的一个不可见文件中。

使用选项运行 -run

  • 脚本读取最后记住的窗口排列;它启动相应的应用程序,将窗口移动到记住的位置,同样借助wmctrl

该脚本不记得可能在窗口中打开的文件,也不记得(例如)在浏览器窗口中打开的网站。

问题

的组合wmctrl,并Unity有一些错误,几个例子:

  • 窗口坐标系,如通过阅读wmctrl不同略微形成命令到定位的窗口,如所提到这里。因此,调用的窗口位置可能与原始位置略有不同。
  • wmctrl如果窗口的边缘非常靠近Unity Launcher或面板,则这些命令的作用有点不可预测。
  • “记住的”窗口需要完全位于工作区边界内,wmctrl放置命令才能正常工作。

默认情况下,某些应用程序会在新选项卡(如gedit)的同一窗口中打开新窗口。我为 修复了它gedit,但如果您发现更多例外,请提及它。

剧本

<script> -read
Run Code Online (Sandbox Code Playgroud)

如何设置

在开始之前,请确保wmctrl已安装:

sudo apt-get install wmctrl
Run Code Online (Sandbox Code Playgroud)

然后:

  1. 脚本复制到一个空文件,将其保存为recall_windows~/bin。如有必要,创建目录。如果目录尚不存在,source ~/.profile请在创建目录后运行或注销/登录。它现在将在$PATH
  2. 使脚本可执行 (!)。
  3. 现在打开几个窗口,geditfirefox或什么的,并通过运行命令(没有路径前缀需要)试运行在终端的脚本:

    recall_windows -read
    
    Run Code Online (Sandbox Code Playgroud)
  4. 关闭窗户。现在在终端中运行:

    recall_windows -run
    
    Run Code Online (Sandbox Code Playgroud)

您的窗口设置现在应该已恢复

如果一切正常,向快捷键添加两个命令:选择:系统设置>“键盘”>“快捷方式”>“自定义快捷方式”。单击“+”并添加命令:

recall_windows -read
Run Code Online (Sandbox Code Playgroud)

recall_windows -run
Run Code Online (Sandbox Code Playgroud)

到两个不同的快捷键

  • 哈!刚读完第一段,我就知道这是你的!(赞成) (2认同)

hug*_*ige 8

我写了一个小库/命令行工具,它允许保存和恢复会话,并支持不同的显示器设置以及虚拟桌面。

安装

npm install -g linux-window-session-manager
Run Code Online (Sandbox Code Playgroud)

用法

将当前会话保存到 ~/.lwsm/sessionData/DEFAULT.json

lwsm save
Run Code Online (Sandbox Code Playgroud)

将当前会话保存到 ~/.lwsm/sessionData/my-session.json

lwsm save my-session   
Run Code Online (Sandbox Code Playgroud)

从 ~/.lwsm/sessionData/DEFAULT.json 恢复会话

lwsm restore
Run Code Online (Sandbox Code Playgroud)

从 ~/.lwsm/sessionData/my-session.json 恢复会话

lwsm restore my-session   
Run Code Online (Sandbox Code Playgroud)

在开始会话之前正常关闭所有正在运行的应用程序

lwsm restore --closeAllOpenWindows
Run Code Online (Sandbox Code Playgroud)

看看:https : //github.com/johannesjo/linux-window-session-manager

  • 效果很好!这应该是最佳答案。 (2认同)

小智 2

没有这样的程序。你可以安装 compiz cub:

sudo apt-get install compiz compizconfig-settings-manager compiz-fusion-plugins-extra compiz-fusion-plugins-main compiz-plugins

并关注此操作方法

compiz 是最先进的 unity/gnome 桌面工具


Jan*_*ary 1

我不知道实现此目标的简单方法。

然而,我很少需要它,原因很简单:暂停。暂停休眠是你的朋友。您不仅可以保存窗口位置,还可以保存系统的整个状态。我很少完全关闭计算机,除非重新加载新的内核版本。