Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell 还记得xmonad工作区布局吗?_Haskell_Xmonad - Fatal编程技术网

Haskell 还记得xmonad工作区布局吗?

Haskell 还记得xmonad工作区布局吗?,haskell,xmonad,Haskell,Xmonad,使用XMonad.Layout.PerWorkspace,您可以为每个工作区设置独立的布局,并为应用程序调整它们。但是,我希望一些工作区能够跟踪我的设置。例如,如果我在工作区2上使用高布局点击Mod-h,我希望工作区2上的高布局在下次引导(或重启X)时也有一个稍微小一点的主窗格 这是一个经常需要的特性,但我在任何地方都找不到解决方案 理想情况下,这将存储在一些~/.xmonad/persistentLayouts/workspace*/layout*.conf文件中,您可以根据需要手动删除/编辑

使用XMonad.Layout.PerWorkspace,您可以为每个工作区设置独立的布局,并为应用程序调整它们。但是,我希望一些工作区能够跟踪我的设置。例如,如果我在工作区2上使用高布局点击Mod-h,我希望工作区2上的高布局在下次引导(或重启X)时也有一个稍微小一点的主窗格

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

理想情况下,这将存储在一些
~/.xmonad/persistentLayouts/workspace*/layout*.conf
文件中,您可以根据需要手动删除/编辑这些文件。但那只是一种奖励


如果它不存在的话,我可以自己实现它,但是我的file-I/O haskell有点像新手,所以也许有人可以提供一些指针。

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

您有没有想过构建类似的东西?@egasimus:抱歉,到目前为止还没有。如果我有空的话,我会把它贴在这里。