xmonad-config/lib/Projects.hs

68 lines
2.9 KiB
Haskell

module Projects (
Projects.modify
) where
import XMonad
import XMonad.Actions.DynamicProjects
import XMonad.Util.Run
spinVimAndSt :: String -> Project
spinVimAndSt name =
Project { projectName = name
, projectDirectory = "~/relex/" <> name
, projectStartHook = Just $ do safeSpawn "vim" ["-g", "+set guifont=Victor\\ Mono\\ SemiBold\\ 18|e ."]
safeSpawn "st" ["-f","Iosevka Term-18","-e","tmux","new","-A","-s",name]
}
projects :: [Project]
projects = [ spinVimAndSt "bob-the-builder"
, spinVimAndSt "infra-inventory"
, spinVimAndSt "mega-repo-1"
, spinVimAndSt "mega-repo-2"
, spinVimAndSt "mega-repo-3"
, spinVimAndSt "mordor-ca"
, spinVimAndSt "mordor-dashboard"
, spinVimAndSt "mordor-deploy"
, spinVimAndSt "mordor-kvm"
, spinVimAndSt "mordor-ops"
, spinVimAndSt "mordorbooks"
, spinVimAndSt "nix-role"
, Project { projectName = "admin"
, projectDirectory = "~/admin"
, projectStartHook = Just $ do safeSpawn "vim" ["-g"]
safeSpawnProg "st"
}
, Project { projectName = "email"
, projectDirectory = "~/mail"
, projectStartHook = Just $ do safeSpawnProg "st"
}
, Project { projectName = "frs"
, projectDirectory = "/tmp"
, projectStartHook = Just $ do safeSpawnProg "frs"
}
, Project { projectName = "fre"
, projectDirectory = "/tmp"
, projectStartHook = Just $ do safeSpawnProg "fre"
}
, Project { projectName = "network-graph"
, projectDirectory = "~/relex/catch-a-network-bug/csvplotter"
, projectStartHook = Just $ do safeSpawn "zathura" ["weekXGraph.pdf"]
safeSpawnProg "st"
}
, Project { projectName = "sound"
, projectDirectory = "/tmp"
, projectStartHook = Just $ do safeSpawnProg "pavucontrol"
}
, Project { projectName = "daily"
, projectDirectory = "/tmp"
, projectStartHook = Just $ do safeSpawn "nix" ["run", "nixpkgs.chromium", "-c", "chromium"]
}
, Project { projectName = "notes"
, projectDirectory = "~/vimwiki/"
, projectStartHook = Just $ do safeSpawn "vim" ["-g", "+set guifont=Victor\\ Mono\\ SemiBold\\ 18|VimwikiMakeDiaryNote"]
}
]
modify :: XConfig l -> XConfig l
modify conf = dynamicProjects projects conf
{ workspaces = [] }