            goog.ui.KeyboardShortcutHandler))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; Keyboard Shortcuts Watcher
+;; Keyboard Shortcuts Handlers
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 (defonce ^:static +shortcuts+
-  #{:ctrl+g
-    :ctrl+shift+f
-    :ctrl+shift+i
-    :ctrl+shift+l})
+  {:ctrl+g #(rs/emit! (dw/toggle-tool :grid))
+   :ctrl+shift+f #(rs/emit! (dw/toggle-toolbox :draw))
+   :ctrl+shift+i #(rs/emit! (dw/toggle-toolbox :icons))
+   :ctrl+shift+l #(rs/emit! (dw/toggle-toolbox :layers))
+   :esc (constantly nil)
+   :backspace (constantly nil)})
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; Keyboard Shortcuts Watcher
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 (defonce ^:static ^:private +bus+
   (rx/bus))

(ns uxbox.ui.workspace.shortcuts
  (:require [goog.events :as events]
            [beicon.core :as rx]
            [uxbox.rstore :as rs]

  []
  (let [handler (KeyboardShortcutHandler. js/document)]
    ;; Register shortcuts.
    (doseq [item (keys +shortcuts+)]
      (let [identifier (name item)]
        (.registerShortcut handler identifier identifier)))

