module Projects ( Projects.modify ) where import XMonad import XMonad.Actions.DynamicProjects import XMonad.Util.Run term = "kitty" spawnGuiTextEditor :: X () spawnGuiTextEditor = safeSpawn "vim" ["-g"] singleTermAppWithName :: String -> String -> Project singleTermAppWithName name app = Project { projectName = name , projectDirectory = "/tmp" , projectStartHook = Just $ do safeSpawn term ["zsh","-c",app] } singleAppWithName :: String -> String -> Project singleAppWithName name app = Project { projectName = name , projectDirectory = "/tmp" , projectStartHook = Just $ do spawn app } singleApp :: String -> Project singleApp app = singleAppWithName app app projects :: [Project] projects = [ singleApp "carla" , singleApp "obs" , singleApp "patchage" , singleApp "reaper" , singleApp "renoise" , singleApp "mixxx" , singleAppWithName "Books" "calibre" , singleAppWithName "discord" "Discord" , singleAppWithName "matrix" "cinny" , singleAppWithName "signal" "signal-desktop" , singleAppWithName "vcv" "Rack" , singleTermAppWithName "email" "neomutt" , Project { projectName = "admin" , projectDirectory = "~/admin/nixos-config" , projectStartHook = Just $ do spawnGuiTextEditor safeSpawnProg term } , Project { projectName = "overlays-personal" , projectDirectory = "~/admin/overlays-personal" , projectStartHook = Just $ do spawnGuiTextEditor safeSpawnProg term } , Project { projectName = "steam" , projectDirectory = "/tmp" , projectStartHook = Just $ safeSpawn "steam" ["-pipewire"] } , Project { projectName = "youtube" , projectDirectory = "/tmp" , projectStartHook = Just $ safeSpawn "chromium" ["--app=youtube.com" ,"--incognito"] } , Project { projectName = "cdc-config" , projectDirectory = "~/admin/cdc-config" , projectStartHook = Just $ do spawnGuiTextEditor safeSpawnProg term } , Project { projectName = "cdc-documentation" , projectDirectory = "~/admin/cdc-documentation" , projectStartHook = Just $ do safeSpawnProg term spawnGuiTextEditor } , Project { projectName = "adventOfCode" , projectDirectory = "~/candy/adventofcode" , projectStartHook = Just $ do safeSpawnProg term spawnGuiTextEditor } , Project { projectName = "rukokuoppa" , projectDirectory = "~/candy/rukokuoppa" , projectStartHook = Just $ do spawnGuiTextEditor safeSpawnProg term } , Project { projectName = "notes" , projectDirectory = "~/zk" , projectStartHook = Just $ do safeSpawnProg "logseq" } , Project { projectName = "xmonad" , projectDirectory = "~/.xmonad" , projectStartHook = Just $ do spawnGuiTextEditor safeSpawnProg term } , Project { projectName = "waymonad" , projectDirectory = "~/candy/waymonad" , projectStartHook = Just $ do spawnGuiTextEditor safeSpawnProg term } , Project { projectName = "accounting" , projectDirectory = "~/accounting" , projectStartHook = Just $ do safeSpawnProg term } , Project { projectName = "flim" , projectDirectory = "/flims/rtorrent/download" , projectStartHook = Just $ do safeSpawnProg term } , Project { projectName = "sound" , projectDirectory = "/tmp" , projectStartHook = Just $ do safeSpawnProg "pavucontrol" } , Project { projectName = "web" , projectDirectory = "/tmp" , projectStartHook = Just $ do spawn "firefox" } ] modify :: XConfig l -> XConfig l modify conf = dynamicProjects projects conf { workspaces = [] }