Index: admin_menu.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/admin_menu/admin_menu.inc,v
retrieving revision 1.11.2.20.2.8
diff -u -p -r1.11.2.20.2.8 admin_menu.inc
--- admin_menu.inc	4 Apr 2009 15:23:18 -0000	1.11.2.20.2.8
+++ admin_menu.inc	6 Apr 2009 04:20:20 -0000
@@ -407,10 +407,49 @@ function admin_menu_theme_settings() {
     '#default_value' => variable_get('admin_menu_tweak_tabs', 0),
     '#description' => t('If enabled, the tabs on the current page are moved into the administration menu. This feature is only available in themes that use the CSS classes <code>tabs primary</code> and <code>tabs secondary</code> for tabs.'),
   );
+  $form['tweaks']['admin_menu_tweak_visibility'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Toggle menu visibility with hotkey:'),
+    '#default_value' => variable_get('admin_menu_tweak_visibility', 0),
+    '#prefix' => '<div class="container-inline form-item">',
+  );
+  $form['tweaks']['admin_menu_tweak_visibility_modifier'] = array(
+    '#type' => 'select',
+    '#options' => array(
+      'ctrl + alt' => 'ctrl + alt',
+      'ctrl + shift' => 'ctrl + shift',
+      'ctrl + alt + shift' => 'ctrl + alt + shift'
+    ),
+    '#default_value' => variable_get('admin_menu_tweak_visibility_modifier', 'ctrl + alt'),
+  );
+  $form['tweaks']['admin_menu_tweak_visibility_key'] = array(
+    '#type' => 'select',
+    '#options' => _admin_menu_theme_settings_keys(),
+    '#default_value' => variable_get('admin_menu_tweak_visibility_key', ''),
+    '#description' => '<br />' . t('If enabled, the administration menu visibility can be toggled on and off using the defined hotkey.'),
+    '#prefix' => ' + ',
+    '#suffix' => '</div>',
+  );
+  
   return system_settings_form($form);
 }
 
 /**
+ * Return list of available options for visibility hotkey.
+ */
+function _admin_menu_theme_settings_keys() {
+  $keys = array('' => '');
+
+  $i = 65;
+  while ($i <= 90) {
+    $keys[$i] = chr($i);
+    $i++;
+  }
+
+  return $keys;
+}
+
+/**
  * Wipe the menu so it can be rebuilt from scratch.
  */
 function admin_menu_wipe() {
Index: admin_menu.js
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/admin_menu/admin_menu.js,v
retrieving revision 1.7.2.7.2.8
diff -u -p -r1.7.2.7.2.8 admin_menu.js
--- admin_menu.js	4 Apr 2009 15:23:18 -0000	1.7.2.7.2.8
+++ admin_menu.js	6 Apr 2009 04:20:22 -0000
@@ -185,6 +185,24 @@ Drupal.admin.behaviors.hover = function 
 };
 
 /**
+ * Toggle visibility with user-defined hotkey.
+ */
+Drupal.admin.behaviors.visibility = function (context, $adminMenu) {
+  if (Drupal.settings.admin_menu.tweak_visibility) {
+    $(document).keydown(function(e) {
+      evt = (e) ? e : window.event;
+      // Workaround for altKey bug in jQuery >= 1.2.5
+      evt = evt.originalEvent ? evt.originalEvent : evt;
+      hotkey = eval(Drupal.settings.admin_menu.tweak_visibility_hotkey.replace(/\+/g, '&&').replace(/([a-z]+)/g, "evt.$1Key").replace(/([0-9]+)/g, "evt.keyCode == $1"));
+
+      if (hotkey) {
+        $($adminMenu).toggle();
+      }
+    });
+  }
+}
+
+/**
  * @} End of "defgroup admin_behaviors".
  */
 
Index: admin_menu.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/admin_menu/admin_menu.module,v
retrieving revision 1.43.2.17.2.5
diff -u -p -r1.43.2.17.2.5 admin_menu.module
--- admin_menu.module	4 Apr 2009 15:23:18 -0000	1.43.2.17.2.5
+++ admin_menu.module	6 Apr 2009 04:20:27 -0000
@@ -135,6 +135,11 @@ function admin_menu_init() {
   if ($_GET['q'] == 'admin/build/modules') {
     $settings['tweak_modules'] = variable_get('admin_menu_tweak_modules', 0);
   }
+  if ($setting = variable_get('admin_menu_tweak_visibility', 0)) {
+    $settings['tweak_visibility'] = $setting;
+    $settings['tweak_visibility_hotkey'] = variable_get('admin_menu_tweak_visibility_modifier', 'ctrl + alt') .
+      (variable_get('admin_menu_tweak_visibility_key', '') ? " + ". variable_get('admin_menu_tweak_visibility_key', '') : '');
+  }
 
   drupal_add_js(array('admin_menu' => $settings), 'setting');
 }
