--- kdebase-3.5.8/kdesktop/krootwm.cc~	2006-10-01 21:32:02 +0400
+++ kdebase-3.5.8/kdesktop/krootwm.cc	2007-10-18 19:29:17 +0400
@@ -131,7 +131,10 @@ KRootWm::KRootWm(KDesktop* _desktop) : Q
   if (kapp->authorize("run_command"))
   {
      new KAction(i18n("Run Command..."), "run", 0, m_pDesktop, SLOT( slotExecuteCommand() ), m_actionCollection, "exec" );
+     new KAction(i18n("Konsole ..." ), "terminal", CTRL+Key_T, this, SLOT( slotOpenTerminal() ),
+	m_actionCollection, "open_terminal" );
   }
+
   if (!KGlobal::config()->isImmutable())
   {
      new KAction(i18n("Configure Desktop..."), "configure", 0, this, SLOT( slotConfigureDesktop() ),
@@ -322,6 +325,12 @@ void KRootWm::buildMenus()
             file->insertSeparator();
         }
 
+        action = m_actionCollection->action("open_terminal");
+        if (action)
+        {
+            action->plug( file );
+        }
+
         action = m_actionCollection->action("lock");
         if (action)
             action->plug( file );
@@ -396,6 +405,10 @@ void KRootWm::buildMenus()
        needSeparator = true;
     }
 
+    action = m_actionCollection->action("open_terminal");
+    if (action)
+	action->plug( desktopMenu );
+
     if (needSeparator)
     {
         desktopMenu->insertSeparator();
@@ -715,6 +728,22 @@ QStringList KRootWm::configModules() {
   return args;
 }
 
+void KRootWm::slotOpenTerminal()
+{
+    // kdDebug() << "KRootWm::slotOpenTerminal" << endl;
+    KProcess* p = new KProcess;
+    Q_CHECK_PTR(p);
+
+    KConfigGroupSaver gs(KGlobal::config(), "General");
+    QString terminal = KGlobal::config()->readPathEntry("TerminalApplication", "konsole");
+
+    *p << terminal;
+
+    p->start(KProcess::DontCare);
+
+    delete p;
+}
+
 void KRootWm::slotConfigureDesktop() {
   if (!m_configDialog)
   {
--- kdebase-3.4/kdesktop/krootwm.h.orig	2004-08-27 00:23:03 +0400
+++ kdebase-3.4/kdesktop/krootwm.h	2005-03-22 21:40:59 +0300
@@ -116,6 +116,7 @@ public slots:
   void slotPopulateSessions();
   void slotSessionActivated( int );
   void slotNewSession();
+  void slotOpenTerminal();
   void slotLockNNewSession();
 
 private:
