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)
然后:
recall_windows在~/bin。如有必要,创建目录。如果目录尚不存在,source ~/.profile请在创建目录后运行或注销/登录。它现在将在$PATH现在打开几个窗口,gedit,firefox或什么的,并通过运行命令(没有路径前缀需要)试运行在终端的脚本:
recall_windows -read
Run Code Online (Sandbox Code Playgroud)关闭窗户。现在在终端中运行:
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)
到两个不同的快捷键
我写了一个小库/命令行工具,它允许保存和恢复会话,并支持不同的显示器设置以及虚拟桌面。
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
我不知道实现此目标的简单方法。
然而,我很少需要它,原因很简单:暂停。暂停和休眠是你的朋友。您不仅可以保存窗口位置,还可以保存系统的整个状态。我很少完全关闭计算机,除非重新加载新的内核版本。