--- 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: