Updates...

Ilya V. Portnov [2011-05-03 06:55:28]
Updates...
Filename
lib/AppGroups.hs
lib/GroupsSetup.hs
lib/Layouts.hs
lib/Themes.hs
xmonad.hs
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
ViewGit