module Projects ( Projects.modify ) where import XMonad import XMonad.Actions.DynamicProjects import XMonad.Util.Run term = "alacritty" singleTermAppWithName :: String -> String -> Project singleTermAppWithName name app = Project { projectName = name , projectDirectory = "/tmp" , projectStartHook = Just $ do safeSpawn term ["-e","zsh","-c",app] } -- spinVimAndSt :: String -> String -> Project -- spinVimAndSt dir name = -- Project { projectName = name -- , projectDirectory = dir <> name -- , projectStartHook = Just $ do safeSpawn "vim" ["-g", "+set guifont=Victor\\ Mono\\ SemiBold\\ 18|e ."] -- safeSpawn "nvidia-offload" ["alacritty","-e","tmux","new","-A","-s",name] -- } singleAppWithName' :: String -> String -> [String] -> Project singleAppWithName' name app args = Project { projectName = name , projectDirectory = "/tmp" , projectStartHook = Just $ do safeSpawn app args } singleAppWithName :: String -> String -> Project singleAppWithName name app = singleAppWithName' name app [] singleApp :: String -> Project singleApp app = singleAppWithName app app singleJackApp :: String -> Project singleJackApp app = singleAppWithName' app "pw-jack" [app] projects :: [Project] projects = [ singleApp "m8c" , singleApp "obs" , singleApp "steam" , singleJackApp "carla" , singleJackApp "reaper" , singleJackApp "renoise" , singleAppWithName "Books" "calibre" , singleAppWithName "discord" "Discord" , singleAppWithName "element" "element-desktop" , singleAppWithName "signal" "signal-desktop" , singleAppWithName "youtube" "chromium" , singleAppWithName' "vcv" "pw-jack" ["Rack"] , singleTermAppWithName "email" "neomutt" , Project { projectName = "admin" , projectDirectory = "~/admin/nixos-config" , projectStartHook = Just $ do safeSpawn "emacsclient" ["-c"] safeSpawnProg term } , Project { projectName = "overlays-personal" , projectDirectory = "~/admin/overlays-personal" , projectStartHook = Just $ do safeSpawn "emacsclient" ["-c"] safeSpawnProg term } , Project { projectName = "cdc-config" , projectDirectory = "~/admin/cdc-config" , projectStartHook = Just $ do safeSpawn "emacsclient" ["-c"] safeSpawnProg term } , Project { projectName = "rukokuoppa" , projectDirectory = "~/candy/rukokuoppa" , projectStartHook = Just $ do safeSpawn "emacsclient" ["-c"] safeSpawnProg term } , Project { projectName = "notes" , projectDirectory = "~/zk" , projectStartHook = Just $ do safeSpawn "emacsclient" ["-c"] safeSpawnProg term } , Project { projectName = "xmonad" , projectDirectory = "~/.xmonad" , projectStartHook = Just $ do safeSpawn "emacsclient" ["-c"] safeSpawnProg term } , Project { projectName = "m8" , projectDirectory = "~/candy/m8c" , projectStartHook = Just $ do safeSpawn "emacsclient" ["-c"] safeSpawnProg term } , Project { projectName = "waymonad" , projectDirectory = "~/candy/waymonad" , projectStartHook = Just $ do safeSpawn "emacsclient" ["-c"] 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 = [] }