118 lines
4.3 KiB
Haskell
118 lines
4.3 KiB
Haskell
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 = [] }
|
|
|