Como , muitos , outros , estou tentando gerar um programa em um espaço de trabalho Xmonad específico na inicialização.
Aqui está o meu xmonad.hs
que deve iniciar o Firefox no espaço de trabalho 4:
import XMonad
import XMonad.Actions.SpawnOn
myStartupHook :: X()
myStartupHook = spawnOn "4" "/usr/bin/firefox"
main :: IO()
main = xmonad $ defaultConfig {
modMask = mod4Mask,
startupHook = myStartupHook,
}
No entanto, na inicialização, o Firefox é iniciado no espaço de trabalho 1 em vez de 4. De acordo com este tópico do Reddit , tudo o que preciso fazer é adicionar manageSpawn
algum lugar neste código. Aqui está o que eu tentei:
import XMonad
import XMonad.Actions.SpawnOn
myStartupHook :: X()
myStartupHook = spawnOn "4" "/usr/bin/firefox"
main :: IO()
main = xmonad $ defaultConfig {
modMask = mod4Mask,
startupHook = manageSpawn <+> myStartupHook,
}
Mas recebi o seguinte erro: Couldn't match type Query (base-4.13.0.0:Data.Semigroup.Internal.Endo WindowSet) with X () Expected type: X () Actual type: ManageHook
. A documentação do spawnOn também não é muito útil.
O que preciso adicionar acima xmonad.hs
para iniciar o Firefox no espaço de trabalho 4?
Você deve definir
manageSpawn
como manageHook em vez de startupHook . Aqui está um trabalhoxmonad.hs
que gera o Firefox no espaço de trabalho 4: