132 lines
4.6 KiB
Haskell
132 lines
4.6 KiB
Haskell
module Projects (
|
||
Projects.modify
|
||
) where
|
||
|
||
import XMonad
|
||
import XMonad.Actions.DynamicProjects
|
||
import XMonad.Util.Run
|
||
|
||
term = "alacritty"
|
||
|
||
spawnGuiTextEditor :: X ()
|
||
spawnGuiTextEditor = safeSpawn "vim" ["-g"]
|
||
|
||
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 -> 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"
|
||
, singleAppWithName "Books" "calibre"
|
||
, singleAppWithName "discord" "Discord"
|
||
, singleAppWithName "element" "element-desktop"
|
||
, singleAppWithName "signal" "signal-desktop"
|
||
, singleAppWithName "vcv" "Rack"
|
||
, singleAppWithName "wire" "wire-desktop"
|
||
, 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 spawnGuiTextEditor
|
||
safeSpawnProg term
|
||
}
|
||
, 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 = [] }
|
||
|