6

使用 XMonad.Layout.PerWorkspace,您可以为每个工作区设置独立的布局,并为您的应用程序调整它们。但是,我想要一些工作区来跟踪我的设置。例如,如果我使用 Tall 布局在 Workspace 2 上点击 Mod-h,我希望 Workspace 2 上的 Tall 布局在我下次启动(或重新启动 X,就此而言)时具有稍小的主窗格。

这是一个经常需要的功能,但我无法在任何地方找到解决方案。

理想情况下,我们会将其存储在一些~/.xmonad/persistentLayouts/workspace*/layout*.conf文件中,如果需要,您可以手动删除/编辑这些文件。但这只是奖金。

如果它不存在,我可以自己实现它,但是我的文件 I/O haskell 有点菜鸟,所以也许有人可以提供一些指针。

4

1 回答 1

6

xmonad 已经在可执行重新启动时保留了它的状态(例如 mod+q 和类似的),那么为什么不窃取该机制呢?我认为它只是使用读取和显示,因此您不需要特别强的 IO 技能;readFile并且writeFile应该足够了。您可以从 xmonad 本身窃取一些代码。序列化代码来自restart,反序列化代码来自xmonad。您需要稍微修改它——您不想保留窗口 ID 信息,因为新的 X 会话会使它失效——但其中大部分可能会被批发。

于 2011-12-30T16:36:00.050 回答