Помните макет рабочего пространства xmonad? - PullRequest
6 голосов
/ 30 декабря 2011

Используя XMonad.Layout.PerWorkspace, вы можете настроить независимые макеты для каждого рабочего пространства и настроить их для своих приложений. Тем не менее, я хотел бы, чтобы некоторые рабочие пространства отслеживали мои настройки. Например. если я нажму Mod-h в Workspace 2, используя макет Tall, я хочу, чтобы макет Tall в рабочей области 2 имел немного меньшую мастер-панель при следующей загрузке (или, если уж на то пошло, перезапуске X).

Это часто необходимая функция, но я нигде не могу найти решение.

В идеале, мы бы сохранили некоторые файлы ~/.xmonad/persistentLayouts/workspace*/layout*.conf, которые можно при необходимости стереть / отредактировать вручную. Но это просто бонус.

Я мог бы смириться с реализацией этого сам, если бы его не существовало, но мой haskell для файлового ввода-вывода немного странный, так что, возможно, кто-то может предоставить некоторые указатели.

1 Ответ

6 голосов
/ 30 декабря 2011

xmonad уже сохраняет свое состояние при перезапуске исполняемого файла (например, mod + q и аналогичных), так почему бы не украсть этот механизм?Я думаю, что он использует только чтение и показ, так что вам не нужно особенно сильные навыки ввода-вывода;readFile и writeFile должно быть достаточно.Вы можете украсть некоторый код из самого xmonad.Код сериализации приходит от restart , а код десериализации - от xmonad .Вам нужно будет немного его изменить - вы не хотите сохранять информацию об идентификаторе окна, поскольку она будет аннулирована новым сеансом X - но большую ее часть, вероятно, можно будет купить оптом.

...