summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichal Minář <miminar@redhat.com>2016-08-06 16:13:16 +0200
committerMichal Minář <miminar@redhat.com>2016-08-06 16:14:10 +0200
commit09dbc0984ce8a78bbe36b248bfa26e7cffccaaf4 (patch)
tree976561e32fdabdc7801ac3104bebfbb6eb16a371
parentc787e154247614489ece175acd7860a8d6d3d95e (diff)
downloadxminad-09dbc0984ce8a78bbe36b248bfa26e7cffccaaf4.tar.gz
xminad-09dbc0984ce8a78bbe36b248bfa26e7cffccaaf4.tar.xz
xminad-09dbc0984ce8a78bbe36b248bfa26e7cffccaaf4.zip
topic space cleanup
Added tmuxSpawn action for launching tmuxinator projects.
-rw-r--r--src/XMonad/Local/Actions.hs5
-rw-r--r--src/XMonad/Local/Keys.hs2
-rw-r--r--src/XMonad/Local/TopicSpace.hs86
3 files changed, 55 insertions, 38 deletions
diff --git a/src/XMonad/Local/Actions.hs b/src/XMonad/Local/Actions.hs
index 2688341..4bc8d7b 100644
--- a/src/XMonad/Local/Actions.hs
+++ b/src/XMonad/Local/Actions.hs
@@ -33,12 +33,15 @@ spawnShellIn dir command = do
t <- asks (terminal . config)
spawn $ cmd' t
where
- run (Just c) = " -e '" ++ c ++ "'"
+ run (Just c) = " " ++ c
run Nothing = ""
cmd' t | dir == "" = t ++ run command
| otherwise = "cd " ++ dir ++ " && " ++ t ++ run command
+spawnTmux :: String -> X()
+spawnTmux project = spawnShell $ Just ("tmux -c 'tmuxinator " ++ project ++ "'")
+
killWindowPID :: Signal -> Window -> X()
killWindowPID s w = do
pid <- WP.getProp32s "_NET_WM_PID" w
diff --git a/src/XMonad/Local/Keys.hs b/src/XMonad/Local/Keys.hs
index 6965be6..f746933 100644
--- a/src/XMonad/Local/Keys.hs
+++ b/src/XMonad/Local/Keys.hs
@@ -69,7 +69,7 @@ emacsKeys = \conf -> map prefix (keysMissingPrefix conf) ++ unprefixedKeys
-- need to be prefixed with modifier
genericKeys :: XConfig l -> [(String, X())]
genericKeys conf = [
- -- Applications
+ -- Applications
(";", Local.spawnShell Nothing)
, ("S-;", Local.spawnExplorer)
, ("S-.", namedScratchpadAction namedScratchpads "guake")
diff --git a/src/XMonad/Local/TopicSpace.hs b/src/XMonad/Local/TopicSpace.hs
index cc44d4d..f80629e 100644
--- a/src/XMonad/Local/TopicSpace.hs
+++ b/src/XMonad/Local/TopicSpace.hs
@@ -12,33 +12,57 @@ import qualified XMonad.Actions.TopicSpace as TS
import XMonad.Local.Actions
import XMonad.Local.Config
+tmuxProjects :: [WorkspaceId]
+tmuxProjects =
+ [ "distribution"
+ , "docker"
+ , "openshift"
+ , "osdocs"
+ , "rcs"
+ , "xminad"
+ ]
+
topicDirs :: M.Map WorkspaceId String
topicDirs = M.fromList $
- [ ("dashboard" , "~")
- , ("xmonad" , "~/wsp/my/xminad")
- , ("xminad" , "~/wsp/my/xminad")
- , ("video" , "~/Videos")
+ [ ("distribution", "~/wsp/rh/distribution")
+ , ("docker" , "~/wsp/rh/docker")
, ("docs" , "~/Documents/doc")
- , ("pdf" , "~/Documents")
- , ("graphics" , "~")
- , ("gimp" , "~")
- , ("hwdata" , "~/wsp/rh/hwdata")
- , ("hdparm" , "~/fedora-scm/hdparm")
- , ("scripts" , "~/wsp/rh/openlmi-scripts")
- , ("tools" , "~/wsp/rh/openlmi-tools")
- , ("rhel" , "~/rhel-scm")
+ , ("drive" , "~/gdrive")
, ("fedora" , "~/fedora-scm")
- , ("docker" , "~/wsp/rh/docker")
- , ("distribution", "~/wsp/rh/distribution")
- , ("openshift" , "~/wsp/rh/openshift-origin")
- , ("osdocs" , "~/wsp/rh/openshift-docs")
+ , ("hdparm" , "~/fedora-scm/hdparm")
+ , ("hwdata" , "~/wsp/rh/hwdata")
, ("k8s" , "~/wsp/rh/kubernetes")
- , ("drive" , "~/gdrive")
, ("mymoney" , "~/Documents/my-money")
- ] ++ map (\w -> (w, "~"))
- [ "music", "p2p", "gimp", "graphics"
- , "web", "remote", "earth", "bank", "admin", "ebook"
- , "ciV", "scrum", "BG", "witcher", "calendar", "incognito"]
+ , ("openshift" , "~/wsp/rh/openshift-origin")
+ , ("osdocs" , "~/wsp/rh/openshift-docs")
+ , ("pdf" , "~/Documents")
+ , ("rcs" , "~/.rcs")
+ , ("rhel" , "~/rhel-scm")
+ , ("scripts" , "~/wsp/rh/openlmi-scripts")
+ , ("tools" , "~/wsp/rh/openlmi-tools")
+ , ("video" , "~/Videos")
+ , ("xminad" , "~/wsp/my/xminad")
+ , ("xmonad" , "~/wsp/my/xminad")
+ ] ++ map (\w -> (w, "~")) homeScoped
+ where
+ homeScoped =
+ [ "admin"
+ , "bank"
+ , "BG"
+ , "calendar"
+ , "ciV"
+ , "earth"
+ , "ebook"
+ , "gimp"
+ , "graphics"
+ , "incognito"
+ , "music"
+ , "p2p"
+ , "remote"
+ , "scrum"
+ , "web"
+ , "witcher"
+ ]
topicConfig :: TS.TopicConfig
topicConfig = TS.def
@@ -68,18 +92,6 @@ topicConfig = TS.def
, ("hdparm", spawnShell Nothing >>
spawnShellIn "~/fedora-scm/hdparm" Nothing >>
spawnShellIn "~/rhel-scm/hdparm" Nothing)
- , ("docker",
- spawnShellIn "~/wsp/go/docker" (Just "bash --rcfile .bashrc") >>
- spawnShellIn "~/wsp/go/docker" (Just "bash --rcfile .bashrc") >>
- spawnShellIn "~/wsp/go/docker" (Just "bash --rcfile .bashrc"))
- , ("openshift",
- spawnShellIn "~/wsp/go/openshift" (Just "bash --rcfile .bashrc") >>
- spawnShellIn "~/wsp/go/openshift" (Just "bash --rcfile .bashrc") >>
- spawnShellIn "~/wsp/go/openshift" (Just "bash --rcfile .bashrc"))
- , ("distribution",
- spawnShellIn "~/wsp/go/distribution" (Just "bash --rcfile .bashrc") >>
- spawnShellIn "~/wsp/go/distribution" (Just "bash --rcfile .bashrc") >>
- spawnShellIn "~/wsp/go/distribution" (Just "bash --rcfile .bashrc"))
, ("k8s",
spawnShellIn "~/wsp/go/kubernetes" (Just "bash --rcfile .bashrc") >>
spawnShellIn "~/wsp/go/kubernetes" (Just "bash --rcfile .bashrc") >>
@@ -98,9 +110,11 @@ topicConfig = TS.def
" --auth-server-whitelist=*.redhat.com") >>
spawn (browser ++ " --profile-directory=Default" ++
" --app-id=ejjicmeblgpmajnghnpcppodonldlgfn"))
- , ("mymoney", spawn "kmymoney")
- ] ++ map (\w -> (w, spawnShell Nothing >> spawnShell Nothing))
- [ "osdocs", "xmonad", "xminad", "remote", "devel", "admin" ]
+ , ("mymoney", spawn "kmymoney")]
+ ++ map (\w -> (w, spawnShell Nothing >> spawnShell Nothing))
+ [ "remote", "devel", "admin" ]
+ ++ map (\w -> (w, spawnTmux w)) tmuxProjects
+
, TS.defaultTopicAction = const $ return ()
, TS.defaultTopic = "dashboard"
}