diff --git a/xmonad.hs b/xmonad.hs
index fbf7b5e..4c8cef6 100644
--- a/xmonad.hs
+++ b/xmonad.hs
@@ -23,6 +23,7 @@ import Control.Monad (filterM,liftM, join)
 import Data.IORef
 import Data.Monoid
 import Data.List
+import Data.Bits
 
 import System.Exit
 
@@ -79,6 +80,7 @@ import XMonad.Actions.Commands
 import XMonad.Actions.GridSelect
 import XMonad.Actions.PhysicalScreens
 import XMonad.Actions.Workscreen
+import qualified XMonad.Actions.Submap as SM
 
 import XMonad.Prompt
 import XMonad.Prompt.Shell
@@ -545,7 +547,7 @@ myMouseBindings (XConfig {XMonad.modMask = modMask}) = M.fromList $
 ------------------------------------------------------------------------
 -- Key bindings. Add, modify or remove key bindings here.
 --
-myKeys toggleFadeSet conf@(XConfig {XMonad.modMask = modMask}) = M.fromList $
+ks toggleFadeSet conf@(XConfig {XMonad.modMask = modMask}) =
     [
     -- launch a terminal
     -- ((modMask .|. shiftMask, xK_Return), spawn $ XMonad.terminal conf)
@@ -702,10 +704,12 @@ myKeys toggleFadeSet conf@(XConfig {XMonad.modMask = modMask}) = M.fromList $
 
     -- mod-[c,w], Switch to screen N
     --
-    ++
-    [((m .|. modMask, key), sc >>= screenWorkspace >>= flip whenJust (windows . f))
-             | (key, sc) <- zip [xK_c, xK_w] [(screenBy (-1)),(screenBy 1)]
-             , (f, m) <- [(W.view, 0), (W.shift, shiftMask)]]
+    {-
+     -++
+     -[((m .|. modMask, key), sc >>= screenWorkspace >>= flip whenJust (windows . f))
+     -         | (key, sc) <- zip [xK_c, xK_w] [(screenBy (-1)),(screenBy 1)]
+     -         , (f, m) <- [(W.view, 0), (W.shift, shiftMask)]]
+     -}
 
     -- Standard keybindings:
     -- mod-[1..9], Switch to workspace N
@@ -725,3 +729,7 @@ myKeys toggleFadeSet conf@(XConfig {XMonad.modMask = modMask}) = M.fromList $
         --,  ((modMask .|. shiftMask, xK_l), sendMessage MirrorExpand)
         ]
 
+modalmode toggleFadeSet conf@(XConfig {XMonad.modMask = modMask}) = [ ((m `xor` modMask, k), a >> (SM.submap . M.fromList $ modalmode toggleFadeSet conf)) | ((m, k), a) <- ks toggleFad
+
+myKeys :: IORef (S.Set Window) -> XConfig Layout -> M.Map (KeyMask, KeySym) (X ())
+myKeys toggleFadeSet conf@(XConfig {XMonad.modMask = modMask}) = M.fromList $ ((modMask, xK_w), SM.submap . M.fromList $ (modalmode toggleFadeSet conf)) : (ks toggleFadeSet conf)