还记得xmonad工作区布局吗?

bit*_*ask 6 haskell xmonad

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

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

理想情况下,我们会存储一些~/.xmonad/persistentLayouts/workspace*/layout*.conf您可以根据需要手动擦除/编辑的文件.但这只是一个奖励.

如果它不存在,我可以自己实现它,但我的文件I/O haskell有点古怪,所以也许有人可以提供一些指示.

Dan*_*ner 6

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