xmonad - 打开一个特定图块的窗口

时间:2014-09-24 23:30:22

标签: window position xmonad

我有三个运行监视器命令的终端,它们在登录时加载。我将工作区配置为默认,左侧为2/3,右侧为1/3,右侧瓷砖垂直分割为1/1。我想在xmonad.hs中控制每个终端所在的哪个区块,但我不确定我需要使用哪些功能。我猜测一个新的Mangehook将是有序的,但除此之外,我已经失去了。

感激地接受任何指针。

TIA

1 个答案:

答案 0 :(得分:3)

目前我通过滞后产生应用程序来使用脏黑客:

myStartupHook = do
    spawnOn     "workspace" "app3"
    spawnOn     "workspace" "sleep 0.5; app2"
    spawnOn     "workspace" "sleep 1; app1" -- will be placed in master if default not changed, see last paragraph

先生。 #xmonad频道中的全知Geekosaur指出您也可以

spawnAndDo  (doShift "workspace" <+> doF W.shiftMaster) "app"

但是,如果您想要一个主应用程序和一个奴隶应用程序,这只能很好地工作。否则你会遇到和以前一样的问题......

请查看contrib包中的XMonad.Hook.InsertPosition。有了它的帮助,您可以重新定义添加新窗口的默认位置 - 这可能对您有所帮助。

修改:我提出了另一种方法:在左上方放置mutt,在左下角放置newsbeuter,在整个右侧放置irssi并按ComboP对展示位置(主人或奴隶)进行排序。为了将mutt放在上面我使用Geekosaurs从上面提示。

相关代码:

import XMonad.Layout.TwoPane
import XMonad.Layout.ComboP
...
myLayout =  combineTwoP (TwoPane (3/100) (2/3)) (Mirror $ ResizableTall 1 (3/100) (2/3) []) (ResizableTall 1 (3/100) (1/2) []) (Title "mutt" `Or` Title "newsbeuter")

查看文档以修改我需要的设置:XMonad.Layout.ComboPXMonad.Layout.TwoPane