diff --git a/lib/AppGroups.hs b/lib/AppGroups.hs index 7b4988c..a729395 100644 --- a/lib/AppGroups.hs +++ b/lib/AppGroups.hs @@ -148,7 +148,7 @@ groupName (command ::: _) = command groupName (_ :>> _) = "X ()" groupName (Group _) = "Group" groupName (Fullscreen app) = groupName app -groupName (app :-> _) = groupName app +groupName (_ :-> wksp) = wksp groupName (Float app) = groupName app groupName (Named _ name) = name @@ -156,7 +156,7 @@ runApp :: App -> X () runApp (On app _) = runApp app runApp (command ::: _) = spawn command runApp (action :>> _) = action -runApp (Group _) = return () +runApp (Group _) = return () runApp (Fullscreen app) = runApp app runApp (app :-> _) = runApp app runApp (Named app _) = runApp app diff --git a/lib/GroupsSetup.hs b/lib/GroupsSetup.hs index 6f860c6..60228f8 100644 --- a/lib/GroupsSetup.hs +++ b/lib/GroupsSetup.hs @@ -11,22 +11,25 @@ regex = C . Regex defaultFM = "konqueror --profile filemanagement" myApps = - [ "firefox" ::: [C "Epiphany-browser", C "Kontact", - C "Liferea", C "Firefox", C "Opera", C "Thunderbird"] :-> "inet" `On` "M1-!" `Named` "internet", - Group [C "Inkscape", C "Eog", C "Gwenview", C "Dia"] :-> "apps" `On` "M1-/" `Named` "graphics", - Group [regex "Gimp"] :-> "dashboard" `On` "M1-g" `Named` "gimp", - Group [C "F-spot",C "Digikam"] :-> "apps" `On` "M1-d" `Named` "photo", - "gnome-terminal" ::: [C "Gnome-terminal", C "Konsole"] :-> "term" `On` "M1-;" `Named` "terminal", + [ "firefox" ::: [C "Epiphany-browser", + C "Firefox", C "Opera"] :-> "inet" `On` "M1-!" `Named` "internet", + "thunderbird" ::: [C "Thunderbird", C "Evolution"] :-> "mail" `On` "M1-,", + Group [C "Inkscape", C "Eog", + C "Gwenview", C "Dia", C "Shutter"] :-> "graphics" `On` "M1-/", + Group [regex "Gimp"] :-> "gimp" `On` "M1-g", + "gnome-terminal" ::: [C "Gnome-terminal", C "Konsole"] :-> "term" `On` "M1-;", textEditors :>> [C "Gedit", C "Leafpad", - C "Gvim", C "Kate", C "KWrite", C "Emacs"] :-> "text" `On` "M1-#" `Named` "editors", - recent ["doc"] ::: [regex "libreoffice", C "TeXmacs"] :-> "text" `On` "M1-o" `Named` "office", - recent ["pdf","djvu"] ::: [C "Evince", C "Okular"] :-> "docs" `On` "M1-:" `Named` "docs", - defaultFM ::: [C "Nautilus", C "Dolphin", C "Konqueror"] :-> "files" `On` "M1-*" `Named` "files", - Group [C "Amarok", C "Rhythmbox", C "Totem"] :-> "apps" `On` "M1-p" `Named` "media", - Group [C "MPlayer"] `On` "M1-<F8>" `Named` "mplayer", - Group [C "Wxmaxima"] `On` "M1-?" `Named` "wxmaxima", - "pidgin" ::: [C "Pidgin", C "Kopete"] :-> "im" `On` "M1-%" `Named` "im", - Group [regex "Qt Jambi", regex "Инстанция"] :-> "rdx" `On` "M1-s" `Named` "RX Explorer", - Group [regex (Title "RadixWare Designer"), - regex (Title "RadixWare Manager")] :-> "apps" `On` "M1-r" `Named` "RWD / RWM" ] + C "Gvim", C "Kate", C "KWrite", C "Emacs"] :-> "text" `On` "M1-#", + recent ["doc"] ::: [regex "libreoffice", C "TeXmacs"] :-> "office" `On` "M1-o", + recent ["pdf","djvu"] ::: [C "Evince", C "Okular"] :-> "docs" `On` "M1-:", + defaultFM ::: [C "Nautilus", C "Dolphin", + C "Konqueror", C "Krusader"] :-> "files" `On` "M1-*", + Group [C "Amarok", C "Rhythmbox", C "Totem"] :-> "music" `On` "M1-p", + Group [C "MPlayer"] :-> "video" `On` "M1-<F8>", + Group [C "Wxmaxima"] :-> "math" `On` "M1-?", + "pidgin" ::: [C "Pidgin", C "Kopete"] :-> "im" `On` "M1-%", + Group [regex "Qt Jambi", + regex (Title "Инстанция")] :-> "RX Explorer" `On` "M1-s", + Group [regex (Title "RadixWare Designer"), + regex (Title "RadixWare Manager")] :-> "RX Designer" `On` "M1-r" ] diff --git a/lib/Layouts.hs b/lib/Layouts.hs index 92357af..77c3ea4 100644 --- a/lib/Layouts.hs +++ b/lib/Layouts.hs @@ -53,7 +53,7 @@ grid = named "grid" $ Grid (2) vgrid = Grid (1/2) tiled = Tall 1 (1/100) (1/2) dwmtile = named "dwm" tiled -full = named "Full" $ tabbedBottom shrinkText deco +full = named "Full" $ tabbed shrinkText deco mix = named "mix" $ Tall 1 (1/100) (2/3) mirrored = named "mirror" $ Mirror tiled -- forgimp = named "gimp" $ reflectHoriz (Tall 1 (1/100) (1/4)) diff --git a/lib/Themes.hs b/lib/Themes.hs index 5f9fba8..e164e2b 100644 --- a/lib/Themes.hs +++ b/lib/Themes.hs @@ -1,5 +1,7 @@ module Themes where +import qualified Data.Map as M + import XMonad import XMonad.Prompt import XMonad.Actions.GridSelect @@ -11,8 +13,36 @@ myXPConfig = defaultXPConfig { myGSConfig :: HasColorizer a => GSConfig a myGSConfig = defaultGSConfig { + gs_navigate = myNavigation, gs_font = "xft:Arial-10" } +myNavigation :: TwoD a (Maybe a) +myNavigation = makeXEventhandler $ shadowWithKeymap navKeyMap navDefaultHandler + where navKeyMap = M.fromList $ makeKeymap [ + (xK_Escape, cancel) + ,(xK_Return, select) + ,(xK_slash , substringSearch myNavigation) + ,(xK_Left , move (-1,0) >> myNavigation) + ,(xK_h , move (-1,0) >> myNavigation) + ,(xK_Right , move (1,0) >> myNavigation) + ,(xK_l , move (1,0) >> myNavigation) + ,(xK_Down , move (0,1) >> myNavigation) + ,(xK_j , move (0,1) >> myNavigation) + ,(xK_k , move (0,-1) >> myNavigation) + ,(xK_Up , move (0,-1) >> myNavigation) + ,(xK_y , move (-1,-1) >> myNavigation) + ,(xK_i , move (1,-1) >> myNavigation) + ,(xK_n , move (-1,1) >> myNavigation) + ,(xK_m , move (1,-1) >> myNavigation) + ,(xK_space , setPos (0,0) >> myNavigation) + ] + -- The navigation handler ignores unknown key symbols + navDefaultHandler = const myNavigation + makeKeymap = concatMap allMasks + allMasks (key,action) = [((0, key), action), + ((8192,key), action)] + + ----------------------------------------------------------------------- -- Some general settings myWorkspaces = ["main"] diff --git a/xmonad.hs b/xmonad.hs index be839fa..d80f867 100644 --- a/xmonad.hs +++ b/xmonad.hs @@ -27,6 +27,7 @@ import GroupsSetup (myApps) ------------------------------------------------------------------------ -- General settings -- +-- Use KDE4 config as base baseConfig = kde4Config baseManageHook = manageHook baseConfig baseLogHook = logHook baseConfig