8

ロードが完了したときに現在フォーカスされている画面ではなく、キーバインドが押されたときにフォーカスされていた画面にプログラムを生成させたいのですが。

理由: 現在のセットアップはArch Linux + XMonadで、6台のモニターで実行しています。私はXMonadを約1年間使用していますが、XMonadに関する唯一の問題は、開くのに少し時間がかかるプログラムに関するものです。たとえば、クロムを初めて起動するときは、ロードに3奇数秒かかります。Chromeのキーバインドを押してから、別の画面に移動して別の操作を行います。ただし、Chromeが読み込まれると、スポーンキーのバインドが押されたときにフォーカスされていた画面ではなく、現在フォーカスされている画面に読み込まれます。

私のhaskellスキルはよく...存在しません。私は以前にLispでプログラミングし、C、python、JavaScriptで多くの時間を費やしているので、必要に応じてそれを拾うことができると確信しています(したがって、回答のhaskellサンプルに関しては明確にしてください)。

前もって感謝します。

4

1 に答える 1

9

私は自分の質問に対する答えを見つけました。

まず、インポートに追加する必要があります。

import XMonad.Actions.SpawnOn

次に、メイン関数の下に次のようなものがあります。

main = do
xmonad $ defaultConfig
    {    
         manageHook = myManageHooks <+> manageSpawn <+> manageDocks <+> manageHook defaultConfig
       , startupHook = myStartupHook
       , ETC.....

ここで重要なのmanageSpawnは、manageHook行にを追加することでした。

spawn次に、を次のように置き換えますspawnHere

  , ((modMask, xK_w), spawn "chromium")

になる:

  , ((modMask, xK_w), spawnHere "chromium")
于 2012-05-25T11:33:16.960 に答える