使用XMonad.Layout.PerWorkspace,可以为每个工作区设置独立的布局,并为应用程序进行调整。但是,我希望某些工作区可以跟踪我的设置。例如。如果我使用Tall布局在Workspace 2上按Mod-h,则我希望下次启动(也就是重新启动X)时,在Workspace 2上的Tall布局具有较小的主 Pane 。

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

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

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

最佳答案

xmonad已经在可执行的重新启动过程中保留了其状态(例如mod + q等),那么为什么不窃取这种机制呢?我认为它只使用阅读和显示,因此您不需要特别强大的IO技能; readFilewriteFile应该足够。您可以从xmonad本身窃取一些代码。序列化代码来自restart,反序列化代码来自xmonad。您将需要进行一些修改-您不想保留窗口ID信息,因为新的X session 将使该ID无效-但其中的大部分信息可能都被批发了。

关于haskell - 还记得xmonad工作区布局吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8681483/

10-13 05:12