Index: admin_menu.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/admin_menu/admin_menu.inc,v
retrieving revision 1.43
diff -u -p -r1.43 admin_menu.inc
--- admin_menu.inc	18 Apr 2009 17:24:56 -0000	1.43
+++ admin_menu.inc	1 May 2009 01:19:19 -0000
@@ -408,6 +408,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.install
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/admin_menu/admin_menu.install,v
retrieving revision 1.15
diff -u -p -r1.15 admin_menu.install
--- admin_menu.install	18 Apr 2009 17:24:56 -0000	1.15
+++ admin_menu.install	1 May 2009 01:19:20 -0000
@@ -34,6 +34,9 @@ function admin_menu_uninstall() {
   variable_del('admin_menu_rebuild_links');
   variable_del('admin_menu_tweak_modules');
   variable_del('admin_menu_tweak_tabs');
+  variable_del('admin_menu_tweak_visibility');
+  variable_del('admin_menu_tweak_visibility_key');
+  variable_del('admin_menu_tweak_visibility_modifier');
 }
 
 /**
Index: admin_menu.js
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/admin_menu/admin_menu.js,v
retrieving revision 1.22
diff -u -p -r1.22 admin_menu.js
--- admin_menu.js	4 Apr 2009 15:23:03 -0000	1.22
+++ admin_menu.js	1 May 2009 01:19:22 -0000
@@ -19,6 +19,7 @@ Drupal.behaviors.adminMenu = {
       tweak_modules: false,
       tweak_tabs: false,
       destination: '',
+      hotkey: '',
       basePath: settings.basePath,
       hash: 0,
       replacements: {}
@@ -192,6 +193,26 @@ Drupal.admin.behaviors.hover = function 
 };
 
 /**
+ * Toggle visibility with user-defined hotkey.
+ */
+Drupal.admin.behaviors.visibility = function (context, settings, $adminMenu) {
+  if (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 input = (evt.ctrlKey ? 'ctrl+' : '') + (evt.altKey ? 'alt+' : '') + (evt.shiftKey ? 'shift+' : '') + (evt.keyCode < 16 || evt.keyCode > 18 ? evt.keyCode : '');
+      // Remove trailing '+' if no character keyCode
+      input = (input.substr(-1) !== '+') ? input : input.substr(0, input.length - 1);
+      if (input == 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.69
diff -u -p -r1.69 admin_menu.module
--- admin_menu.module	4 Apr 2009 15:23:03 -0000	1.69
+++ admin_menu.module	1 May 2009 01:19:28 -0000
@@ -140,6 +140,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');
 }
