diff -ru slim-1.3.2_orig/panel.cpp slim-1.3.2/panel.cpp --- slim-1.3.2_orig/panel.cpp 2010-07-08 07:04:10.000000000 +0200 +++ slim-1.3.2/panel.cpp 2010-08-22 20:25:01.000000000 +0200 @@ -351,6 +351,23 @@ string formerString = ""; XLookupString(&event.xkey, &ascii, 1, &keysym, &compstatus); + if (reinterpret_cast(event).state & ControlMask) { + switch(keysym){ + case XK_s: + system(cfg->getOption("suspend_cmd").c_str()); + action = Suspend; + return false; + case XK_h: + system(cfg->getOption("halt_cmd").c_str()); + return false; + case XK_r: + system(cfg->getOption("reboot_cmd").c_str()); + return false; + default: + break; + } + } + switch(keysym){ case XK_F1: SwitchSession();