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	9 Apr 2009 01:57:41 -0000
@@ -407,6 +407,33 @@ 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']['toggle'] = array(
+    '#prefix' => '<div class="container-inline form-item">',
+    '#suffix' => '</div>',
+  );
+  $form['tweaks']['toggle']['admin_menu_tweak_visibility'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Toggle menu visibility with hotkey:'),
+    '#default_value' => variable_get('admin_menu_tweak_visibility', 0),
+  );
+  $form['tweaks']['toggle']['admin_menu_tweak_visibility_modifier'] = array(
+    '#type' => 'select',
+    '#options' => array(
+      'ctrl + alt' => t('ctrl + alt'),
+      'ctrl + shift' => t('ctrl + shift'),
+      'ctrl + alt + shift' => t('Ctrl + Alt + Shift'),
+    ),
+    '#default_value' => variable_get('admin_menu_tweak_visibility_modifier', 'ctrl + alt'),
+  );
+  $form['tweaks']['toggle']['admin_menu_tweak_visibility_key'] = array(
+    '#type' => 'select',
+    // 65-90 maps to A-Z
+    '#options' => array('' => t('<None>')) + drupal_map_assoc(range(65, 90), 'chr'),
+    '#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' => ' + ',
+  );
+
   return system_settings_form($form);
 }
 
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	9 Apr 2009 01:57:43 -0000
@@ -17,6 +17,7 @@ Drupal.behaviors.adminMenu = function (c
     tweak_modules: false,
     tweak_tabs: false,
     destination: '',
+    hotkey: '',
     basePath: Drupal.settings.basePath,
     hash: 0,
     replacements: {}
@@ -185,6 +186,25 @@ Drupal.admin.behaviors.hover = function 
 };
 
 /**
+ * Toggle visibility with user-defined hotkey.
+ */
+Drupal.admin.behaviors.visibility = function (context, $adminMenu) {
+  if (Drupal.settings.admin_menu.hotkey) {
+    $(context).keydown(function(e) {
+      var evt = (e) ? e : window.event;
+      // Workaround for altKey bug in jQuery >= 1.2.5 < 1.3.2
+      // @see http://dev.jquery.com/ticket/2947
+      evt = evt.originalEvent ? evt.originalEvent : evt;
+      var trigger = (evt.ctrlKey ? 'ctrl + ' : '') + (evt.altKey ? 'alt + ' : '') + (evt.shiftKey ? 'shift + ' : '') + (evt.keyCode ? evt.keyCode : '');
+
+      if (trigger == Drupal.settings.admin_menu.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	9 Apr 2009 01:57:45 -0000
@@ -135,6 +135,12 @@ 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['hotkey'] = variable_get('admin_menu_tweak_visibility_modifier', 'ctrl + alt');
+    if ($hotkey = variable_get('admin_menu_tweak_visibility_key', FALSE)) {
+      $settings['hotkey'] .= ' + ' . $hotkey;
+    }
+  }
 
   drupal_add_js(array('admin_menu' => $settings), 'setting');
 }
