summaryrefslogtreecommitdiffstats
path: root/kcontrol/energy
diff options
context:
space:
mode:
authortoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
committertoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
commit4aed2c8219774f5d797760606b8489a92ddc5163 (patch)
tree3f8c130f7d269626bf6a9447407ef6c35954426a /kcontrol/energy
downloadtdebase-4aed2c8219774f5d797760606b8489a92ddc5163.tar.gz
tdebase-4aed2c8219774f5d797760606b8489a92ddc5163.zip
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdebase@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kcontrol/energy')
-rw-r--r--kcontrol/energy/Makefile.am18
-rw-r--r--kcontrol/energy/configure.in.in1
-rw-r--r--kcontrol/energy/energy.cpp442
-rw-r--r--kcontrol/energy/energy.desktop242
-rw-r--r--kcontrol/energy/energy.h68
-rw-r--r--kcontrol/energy/pics/Makefile.am5
-rw-r--r--kcontrol/energy/pics/energybig.pngbin0 -> 24161 bytes
-rw-r--r--kcontrol/energy/pics/lo-energy.pngbin0 -> 1977 bytes
8 files changed, 776 insertions, 0 deletions
diff --git a/kcontrol/energy/Makefile.am b/kcontrol/energy/Makefile.am
new file mode 100644
index 000000000..ea6578582
--- /dev/null
+++ b/kcontrol/energy/Makefile.am
@@ -0,0 +1,18 @@
+SUBDIRS= . pics
+
+AM_CPPFLAGS = $(all_includes) $(DPMSINC)
+
+kde_module_LTLIBRARIES = kcm_energy.la
+
+kcm_energy_la_SOURCES = energy.cpp
+kcm_energy_la_LDFLAGS = -module -avoid-version $(all_libraries) -no-undefined
+kcm_energy_la_LIBADD = $(DPMSLIB) $(LIB_KDEUI) $(LIB_KIO)
+METASOURCES = energy.moc
+
+noinst_HEADERS = energy.h
+
+messages:
+ $(XGETTEXT) *.cpp -o $(podir)/kcmenergy.pot
+
+energy_data_DATA = energy.desktop
+energy_datadir = $(kde_appsdir)/.hidden
diff --git a/kcontrol/energy/configure.in.in b/kcontrol/energy/configure.in.in
new file mode 100644
index 000000000..7c9f247da
--- /dev/null
+++ b/kcontrol/energy/configure.in.in
@@ -0,0 +1 @@
+AC_HAVE_DPMS()
diff --git a/kcontrol/energy/energy.cpp b/kcontrol/energy/energy.cpp
new file mode 100644
index 000000000..af3c4965d
--- /dev/null
+++ b/kcontrol/energy/energy.cpp
@@ -0,0 +1,442 @@
+/* vi: ts=8 sts=4 sw=4
+ *
+ *
+ *
+ * This file is part of the KDE project, module kcontrol.
+ * Copyright (C) 1999 Geert Jansen <[email protected]>
+ *
+ * You can Freely distribute this program under the GNU General Public
+ * License. See the file "COPYING" for the exact licensing terms.
+ *
+ * Based on kcontrol1 energy.cpp, Copyright (c) 1999 Tom Vijlbrief
+ */
+
+
+/*
+ * KDE Energy setup module.
+ */
+
+#include <config.h>
+
+#if !defined(QT_CLEAN_NAMESPACE)
+#define QT_CLEAN_NAMESPACE
+#endif
+
+#include <qcheckbox.h>
+#include <qlabel.h>
+#include <qlayout.h>
+#include <qwhatsthis.h>
+
+#include <kconfig.h>
+#include <kcursor.h>
+#include <kdialog.h>
+#include <kiconloader.h>
+#include <klocale.h>
+#include <knuminput.h>
+#include <krun.h>
+#include <kstandarddirs.h>
+#include <kurllabel.h>
+
+#include <X11/X.h>
+#include <X11/Xlib.h>
+#include <X11/Xatom.h>
+#include <X11/Xutil.h>
+#include <X11/Xos.h>
+
+#include "energy.h"
+
+
+#ifdef HAVE_DPMS
+#include <X11/Xmd.h>
+extern "C" {
+#include <X11/extensions/dpms.h>
+Status DPMSInfo ( Display *, CARD16 *, BOOL * );
+Bool DPMSCapable( Display * );
+int __kde_do_not_unload = 1;
+
+#ifndef HAVE_DPMSCAPABLE_PROTO
+Bool DPMSCapable ( Display * );
+#endif
+
+#ifndef HAVE_DPMSINFO_PROTO
+Status DPMSInfo ( Display *, CARD16 *, BOOL * );
+#endif
+}
+
+#if defined(XIMStringConversionRetrival) || defined (__sun) || defined(__hpux)
+extern "C" {
+#endif
+ Bool DPMSQueryExtension(Display *, int *, int *);
+ Status DPMSEnable(Display *);
+ Status DPMSDisable(Display *);
+ Bool DPMSGetTimeouts(Display *, CARD16 *, CARD16 *, CARD16 *);
+ Bool DPMSSetTimeouts(Display *, CARD16, CARD16, CARD16);
+#if defined(XIMStringConversionRetrival) || defined (__sun) || defined(__hpux)
+}
+#endif
+#endif
+
+static const int DFLT_STANDBY = 0;
+static const int DFLT_SUSPEND = 30;
+static const int DFLT_OFF = 60;
+
+
+/**** DLL Interface ****/
+
+extern "C" {
+
+ KDE_EXPORT KCModule *create_energy(QWidget *parent, char *) {
+ return new KEnergy(parent, "kcmenergy");
+ }
+
+ KDE_EXPORT void init_energy() {
+#ifdef HAVE_DPMS
+ KConfig *cfg = new KConfig("kcmdisplayrc", true /*readonly*/, false /*no globals*/);
+ cfg->setGroup("DisplayEnergy");
+
+ Display *dpy = qt_xdisplay();
+ CARD16 pre_configured_status;
+ BOOL pre_configured_enabled;
+ CARD16 pre_configured_standby;
+ CARD16 pre_configured_suspend;
+ CARD16 pre_configured_off;
+ bool enabled;
+ CARD16 standby;
+ CARD16 suspend;
+ CARD16 off;
+ int dummy;
+ /* query the running X server if DPMS is supported */
+ if (DPMSQueryExtension(dpy, &dummy, &dummy) && DPMSCapable(dpy)) {
+ DPMSGetTimeouts(dpy, &pre_configured_standby, &pre_configured_suspend, &pre_configured_off);
+ DPMSInfo(dpy, &pre_configured_status, &pre_configured_enabled);
+ /* let the user override the settings */
+ enabled = cfg->readBoolEntry("displayEnergySaving", pre_configured_enabled);
+ standby = cfg->readNumEntry("displayStandby", pre_configured_standby/60);
+ suspend = cfg->readNumEntry("displaySuspend", pre_configured_suspend/60);
+ off = cfg->readNumEntry("displayPowerOff", pre_configured_off/60);
+ } else {
+ /* provide our defauts */
+ enabled = true;
+ standby = DFLT_STANDBY;
+ suspend = DFLT_SUSPEND;
+ off = DFLT_OFF;
+ }
+
+ delete cfg;
+
+ KEnergy::applySettings(enabled, standby, suspend, off);
+#endif
+ }
+}
+
+/**** KEnergy ****/
+
+KEnergy::KEnergy(QWidget *parent, const char *name)
+ : KCModule(parent, name)
+{
+ m_bChanged = false;
+ m_bEnabled = false;
+ m_Standby = DFLT_STANDBY;
+ m_Suspend = DFLT_SUSPEND;
+ m_Off = DFLT_OFF;
+ m_bDPMS = false;
+ m_bMaintainSanity = true;
+
+ setQuickHelp( i18n("<h1>Display Power Control</h1> If your display supports"
+ " power saving features, you can configure them using this module.<p>"
+ " There are three levels of power saving: standby, suspend, and off."
+ " The greater the level of power saving, the longer it takes for the"
+ " display to return to an active state.<p>"
+ " To wake up the display from a power saving mode, you can make a small"
+ " movement with the mouse, or press a key that is not likely to cause"
+ " any unintentional side-effects, for example, the \"Shift\" key."));
+
+#ifdef HAVE_DPMS
+ int dummy;
+ m_bDPMS = DPMSQueryExtension(qt_xdisplay(), &dummy, &dummy);
+#endif
+
+ QVBoxLayout *top = new QVBoxLayout(this, 0, KDialog::spacingHint());
+ QHBoxLayout *hbox = new QHBoxLayout();
+ top->addLayout(hbox);
+
+ QLabel *lbl;
+ if (m_bDPMS) {
+ m_pCBEnable= new QCheckBox(i18n("&Enable display power management" ), this);
+ connect(m_pCBEnable, SIGNAL(toggled(bool)), SLOT(slotChangeEnable(bool)));
+ hbox->addWidget(m_pCBEnable);
+ QWhatsThis::add( m_pCBEnable, i18n("Check this option to enable the"
+ " power saving features of your display.") );
+ } else {
+ lbl = new QLabel(i18n("Your display does not support power saving."), this);
+ hbox->addWidget(lbl);
+ }
+
+ KURLLabel *logo = new KURLLabel(this);
+ logo->setURL("http://www.energystar.gov");
+ logo->setPixmap(QPixmap(locate("data", "kcontrol/pics/energybig.png")));
+ logo->setTipText(i18n("Learn more about the Energy Star program"));
+ logo->setUseTips(true);
+connect(logo, SIGNAL(leftClickedURL(const QString&)), SLOT(openURL(const QString &)));
+
+ hbox->addStretch();
+ hbox->addWidget(logo);
+
+ // Sliders
+ m_pStandbySlider = new KIntNumInput(m_Standby, this);
+ m_pStandbySlider->setLabel(i18n("&Standby after:"));
+ m_pStandbySlider->setRange(0, 120, 10);
+ m_pStandbySlider->setSuffix(i18n(" min"));
+ m_pStandbySlider->setSpecialValueText(i18n("Disabled"));
+ connect(m_pStandbySlider, SIGNAL(valueChanged(int)), SLOT(slotChangeStandby(int)));
+ top->addWidget(m_pStandbySlider);
+ QWhatsThis::add( m_pStandbySlider, i18n("Choose the period of inactivity"
+ " after which the display should enter \"standby\" mode. This is the"
+ " first level of power saving.") );
+
+ m_pSuspendSlider = new KIntNumInput(m_pStandbySlider, m_Suspend, this);
+ m_pSuspendSlider->setLabel(i18n("S&uspend after:"));
+ m_pSuspendSlider->setRange(0, 120, 10);
+ m_pSuspendSlider->setSuffix(i18n(" min"));
+ m_pSuspendSlider->setSpecialValueText(i18n("Disabled"));
+ connect(m_pSuspendSlider, SIGNAL(valueChanged(int)), SLOT(slotChangeSuspend(int)));
+ top->addWidget(m_pSuspendSlider);
+ QWhatsThis::add( m_pSuspendSlider, i18n("Choose the period of inactivity"
+ " after which the display should enter \"suspend\" mode. This is the"
+ " second level of power saving, but may not be different from the first"
+ " level for some displays.") );
+
+ m_pOffSlider = new KIntNumInput(m_pSuspendSlider, m_Off, this);
+ m_pOffSlider->setLabel(i18n("&Power off after:"));
+ m_pOffSlider->setRange(0, 120, 10);
+ m_pOffSlider->setSuffix(i18n(" min"));
+ m_pOffSlider->setSpecialValueText(i18n("Disabled"));
+ connect(m_pOffSlider, SIGNAL(valueChanged(int)), SLOT(slotChangeOff(int)));
+ top->addWidget(m_pOffSlider);
+ QWhatsThis::add( m_pOffSlider, i18n("Choose the period of inactivity"
+ " after which the display should be powered off. This is the"
+ " greatest level of power saving that can be achieved while the"
+ " display is still physically turned on.") );
+
+ top->addStretch();
+
+ if (m_bDPMS)
+ setButtons( KCModule::Help | KCModule::Default | KCModule::Apply );
+ else
+ setButtons( KCModule::Help );
+
+ m_pConfig = new KConfig("kcmdisplayrc", false /*readwrite*/, false /*no globals*/);
+ m_pConfig->setGroup("DisplayEnergy");
+
+ load();
+}
+
+
+KEnergy::~KEnergy()
+{
+ delete m_pConfig;
+}
+
+
+void KEnergy::load()
+{
+ load( false );
+}
+
+void KEnergy::load( bool useDefaults )
+{
+ m_pConfig->setReadDefaults( useDefaults );
+ readSettings();
+ showSettings();
+
+ emit changed( useDefaults );
+}
+
+
+void KEnergy::save()
+{
+ writeSettings();
+ applySettings(m_bEnabled, m_Standby, m_Suspend, m_Off);
+
+ emit changed(false);
+}
+
+
+void KEnergy::defaults()
+{
+ load( true );
+}
+
+
+void KEnergy::readSettings()
+{
+ m_bEnabled = m_pConfig->readBoolEntry("displayEnergySaving", false);
+ m_Standby = m_pConfig->readNumEntry("displayStandby", DFLT_STANDBY);
+ m_Suspend = m_pConfig->readNumEntry("displaySuspend", DFLT_SUSPEND);
+ m_Off = m_pConfig->readNumEntry("displayPowerOff", DFLT_OFF);
+
+ m_StandbyDesired = m_Standby;
+ m_SuspendDesired = m_Suspend;
+ m_OffDesired = m_Off;
+
+ m_bChanged = false;
+}
+
+
+void KEnergy::writeSettings()
+{
+ if (!m_bChanged)
+ return;
+
+ m_pConfig->writeEntry( "displayEnergySaving", m_bEnabled);
+ m_pConfig->writeEntry("displayStandby", m_Standby);
+ m_pConfig->writeEntry("displaySuspend", m_Suspend);
+ m_pConfig->writeEntry("displayPowerOff", m_Off);
+
+ m_pConfig->sync();
+ m_bChanged = false;
+}
+
+
+void KEnergy::showSettings()
+{
+ m_bMaintainSanity = false;
+
+ if (m_bDPMS)
+ m_pCBEnable->setChecked(m_bEnabled);
+
+ m_pStandbySlider->setEnabled(m_bEnabled);
+ m_pStandbySlider->setValue(m_Standby);
+ m_pSuspendSlider->setEnabled(m_bEnabled);
+ m_pSuspendSlider->setValue(m_Suspend);
+ m_pOffSlider->setEnabled(m_bEnabled);
+ m_pOffSlider->setValue(m_Off);
+
+ m_bMaintainSanity = true;
+}
+
+
+extern "C" {
+ int dropError(Display *, XErrorEvent *);
+ typedef int (*XErrFunc) (Display *, XErrorEvent *);
+}
+
+int dropError(Display *, XErrorEvent *)
+{
+ return 0;
+}
+
+/* static */
+void KEnergy::applySettings(bool enable, int standby, int suspend, int off)
+{
+#ifdef HAVE_DPMS
+ XErrFunc defaultHandler;
+ defaultHandler = XSetErrorHandler(dropError);
+
+ Display *dpy = qt_xdisplay();
+
+ int dummy;
+ bool hasDPMS = DPMSQueryExtension(dpy, &dummy, &dummy);
+ if (hasDPMS) {
+ if (enable) {
+ DPMSEnable(dpy);
+ DPMSSetTimeouts(dpy, 60*standby, 60*suspend, 60*off);
+ } else
+ DPMSDisable(dpy);
+ } else
+ qWarning("Server has no DPMS extension");
+
+ XFlush(dpy);
+ XSetErrorHandler(defaultHandler);
+#else
+ /* keep gcc silent */
+ if (enable | standby | suspend | off)
+ /* nothing */ ;
+#endif
+}
+
+
+void KEnergy::slotChangeEnable(bool ena)
+{
+ m_bEnabled = ena;
+ m_bChanged = true;
+
+ m_pStandbySlider->setEnabled(ena);
+ m_pSuspendSlider->setEnabled(ena);
+ m_pOffSlider->setEnabled(ena);
+
+ emit changed(true);
+}
+
+
+void KEnergy::slotChangeStandby(int value)
+{
+ m_Standby = value;
+
+ if ( m_bMaintainSanity ) {
+ m_bMaintainSanity = false;
+ m_StandbyDesired = value;
+ if ((m_Suspend > 0 && m_Standby > m_Suspend) ||
+ (m_SuspendDesired && m_Standby >= m_SuspendDesired) )
+ m_pSuspendSlider->setValue(m_Standby);
+ if ((m_Off > 0 && m_Standby > m_Off) ||
+ (m_OffDesired && m_Standby >= m_OffDesired) )
+ m_pOffSlider->setValue(m_Standby);
+ m_bMaintainSanity = true;
+ }
+
+ m_bChanged = true;
+ emit changed(true);
+}
+
+
+void KEnergy::slotChangeSuspend(int value)
+{
+ m_Suspend = value;
+
+ if ( m_bMaintainSanity ) {
+ m_bMaintainSanity = false;
+ m_SuspendDesired = value;
+ if (m_Suspend == 0 && m_StandbyDesired > 0)
+ m_pStandbySlider->setValue( m_StandbyDesired );
+ else if (m_Suspend < m_Standby || m_Suspend <= m_StandbyDesired )
+ m_pStandbySlider->setValue(m_Suspend);
+ if ((m_Off > 0 && m_Suspend > m_Off) ||
+ (m_OffDesired && m_Suspend >= m_OffDesired) )
+ m_pOffSlider->setValue(m_Suspend);
+ m_bMaintainSanity = true;
+ }
+
+ m_bChanged = true;
+ emit changed(true);
+}
+
+
+void KEnergy::slotChangeOff(int value)
+{
+ m_Off = value;
+
+ if ( m_bMaintainSanity ) {
+ m_bMaintainSanity = false;
+ m_OffDesired = value;
+ if (m_Off == 0 && m_StandbyDesired > 0)
+ m_pStandbySlider->setValue( m_StandbyDesired );
+ else if (m_Off < m_Standby || m_Off <= m_StandbyDesired )
+ m_pStandbySlider->setValue(m_Off);
+ if (m_Off == 0 && m_SuspendDesired > 0)
+ m_pSuspendSlider->setValue( m_SuspendDesired );
+ else if (m_Off < m_Suspend || m_Off <= m_SuspendDesired )
+ m_pSuspendSlider->setValue(m_Off);
+ m_bMaintainSanity = true;
+ }
+
+ m_bChanged = true;
+ emit changed(true);
+}
+
+void KEnergy::openURL(const QString &URL)
+{
+ new KRun(KURL( URL ));
+}
+
+#include "energy.moc"
diff --git a/kcontrol/energy/energy.desktop b/kcontrol/energy/energy.desktop
new file mode 100644
index 000000000..bf856866a
--- /dev/null
+++ b/kcontrol/energy/energy.desktop
@@ -0,0 +1,242 @@
+[Desktop Entry]
+Exec=kcmshell energy
+Icon=energy_star
+DocPath=kcontrol/energy/index.html
+Type=Application
+X-KDE-Library=energy
+X-KDE-Init=energy
+X-KDE-ParentApp=kcontrol
+X-KDE-Init-Phase=2
+
+Name=Power Control
+Name[af]=Krag Beheer
+Name[ar]=التحكّم بالطّاقة
+Name[az]=Güc İdarəsi
+Name[be]=Кіраванне сілкаваннем
+Name[bg]=Електрозахранване
+Name[bn]=পাওয়ার নিয়ন্ত্রণ
+Name[br]=Renadur ar gremm
+Name[bs]=Ušteda energije
+Name[ca]=Control d'energia
+Name[cs]=Správa napájení
+Name[csb]=Kòntrola sëłë
+Name[cy]=Rheoli Pŵer
+Name[da]=Strømstyring
+Name[de]=Energiekontrolle
+Name[el]=Έλεγχος ισχύος
+Name[eo]=Elektrostirilo
+Name[es]=Control de energía
+Name[et]=Voolutarve
+Name[eu]=Energia kontrola
+Name[fa]=کنترل توان
+Name[fi]=Virranhallinta
+Name[fo]=Orkustýring
+Name[fr]=Contrôle de l'énergie
+Name[fy]=Enerzjybehear
+Name[ga]=Rialú Cumhachta
+Name[gl]=Control da Enerxéa
+Name[he]=צריכת חשמל
+Name[hi]=बिज़ली नियंत्रण
+Name[hr]=Ušteda energije
+Name[hsb]=Milina
+Name[hu]=Energiakezelés
+Name[id]=Kontrol Power
+Name[is]=Orkustilling
+Name[it]=Controllo energia
+Name[ja]=電源管理
+Name[ka]=კვების კონტროლი
+Name[kk]=Қуаттандыруды бақылау
+Name[km]=ការ​ត្រួត​ពិនិត្យ​ថាមពល
+Name[ko]=전원 관리
+Name[lo]=ຄວບຄຸມການໃຊ້ພະລັງງານ
+Name[lt]=Energijos kontrolė
+Name[lv]=Energo Kontrole
+Name[mk]=Контрола на енергија
+Name[mn]=Энергийн удирдлага
+Name[ms]=Kawalan Kuasa
+Name[mt]=Kontroll tal-konsum
+Name[nb]=Strømkontroll
+Name[nds]=Stroomkuntrull
+Name[ne]=शक्ति नियन्त्रण
+Name[nl]=Energiebeheer
+Name[nn]=Straumkontroll
+Name[nso]=Taolo ya Matla
+Name[oc]=Contròle d'alimentacion
+Name[pa]=ਊਰਜਾ ਕੰਟਰੋਲ
+Name[pl]=Zasilanie
+Name[pt]=Controlo de Energia
+Name[pt_BR]=Controle de Energia
+Name[ro]=Control energie
+Name[ru]=Управление питанием
+Name[rw]=Igenzura ry'Umuriro
+Name[se]=El-rávdnje stivren
+Name[sk]=Ovládanie spotreby
+Name[sl]=Nadzor energije
+Name[sr]=Контрола енергије
+Name[sr@Latn]=Kontrola energije
+Name[ss]=Kulawulwa kwemlilo
+Name[sv]=Strömsparfunktion
+Name[ta]=மின்னோட்ட கட்டுப்பாடு
+Name[te]=విద్యుత్ నియంత్రణ
+Name[tg]=Идораи қувваи барқ
+Name[th]=ควบคุมการใช้พลังงาน
+Name[tr]=Güç Denetimi
+Name[tt]=Qüät İdäräse
+Name[uk]=Керування живленням
+Name[uz]=Elektr taʼminotni boshqarish
+Name[uz@cyrillic]=Электр таъминотни бошқариш
+Name[ven]=Ndanguli ya maanda
+Name[vi]=Điều khiển Nguồn điện
+Name[wa]=Controle di l' alimintåcion
+Name[xh]=Ulawulo Lwamandla
+Name[zh_CN]=电源控制
+Name[zh_TW]=電源控制
+Name[zu]=Ukulawulwa kwamandla
+
+Comment=Settings for display power management
+Comment[af]=Instellings vir die vertoon van die krag bestuurder
+Comment[ar]=تعيينات إدخار الطاقة للشاشة
+Comment[az]=Displey gec idarəsi qurğuları
+Comment[be]=Кіраванне сілкаваннем манітора
+Comment[bg]=Настройване на електрозахранването
+Comment[bn]=ডিসপ্লের বৈদ্যুতিক শক্তি ব্যবহার সংক্রান্ত সেটিংস
+Comment[br]=Kefluniadur renadur gremm an diskwell
+Comment[bs]=Postavke uštede energije monitora (ekrana)
+Comment[ca]=Arranjaments per al control d'energia a la pantalla
+Comment[cs]=Nastavení pro správu šetření napájení
+Comment[csb]=Nastôw sprôwianiô sëłą
+Comment[cy]=Gosodiadau i rheoli pw?r y dangosydd
+Comment[da]=Indstilling for visning af strømstyring
+Comment[de]=Stromspareinstellungen für Ihren Monitor bzw. Ihr Display
+Comment[el]=Ρυθμίσεις για την προβολή της διαχείρισης ενέργειας
+Comment[eo]=Agordo por de la elektrouzado de via ekrano
+Comment[es]=Preferencias para la pantalla de control de energía
+Comment[et]=Ekraani voolutarbe juhtimise seaded
+Comment[eu]=Pantailaren energia kudeatzeko ezarpenak
+Comment[fa]=تنظیمات برای نمایش مدیریت توان
+Comment[fi]=Asetukset näytön virranhallinnalle
+Comment[fr]=Paramètres de la gestion d'énergie pour l'affichage
+Comment[fy]=Ynstellings foar energybesparring foar byldskerms
+Comment[gl]=Configuracións para a xestión de enerxia da pantalla
+Comment[he]=שינוי הגדרות ניהול צריכת החשמל של התצוגה
+Comment[hi]=बिज़ली नियंत्रण प्रदर्शक के लिए विन्यास
+Comment[hr]=Postavke za štednju energije zaslona
+Comment[hu]=A képernyő energiatakarékossági beállításai
+Comment[is]=Stillingar fyrir orkustýringu skjás
+Comment[it]=Impostazioni per la gestione dell'energia dello schermo.
+Comment[ja]=ディスプレイの電源管理の設定
+Comment[ka]=დისპლეის კვების მონეჯმენტის კონფიგურაცია
+Comment[kk]=Дисплейді қуаттандыруды басқаруын баптау
+Comment[km]=ការ​កំណត់​សម្រាប់​គ្រប់គ្រង​ថាមពល​ការ​បង្ហាញ
+Comment[ko]=디스플레이 전원 관리 설정
+Comment[lo]=ຕັ້ງຄ່າສຳລັບການປະຫຍັດພະລັງງານຂອງລະບົບສະແດງຜົນ
+Comment[lt]=Parinktys displėjaus energijos tvarkymui
+Comment[lv]=Ekrāna enorgotaupības parametri
+Comment[mk]=Поставувања за менаџмент на енергијата за екранот
+Comment[mn]=Дэлгэцийн тань энерги-тохируулга
+Comment[ms]=Seting untuk pengurusan kuasa paparan
+Comment[mt]=Setings għall-kontroll tal-konsum tal-iskrin
+Comment[nb]=Innstillinger for strømkontroll av skjerm
+Comment[nds]=Stroomspoorinstellen för den Schirm
+Comment[ne]=प्रर्दशन शक्ति व्यवस्थापनका लागि सेटिङ
+Comment[nl]=Instellingen voor energiebesparing voor monitors/displays
+Comment[nn]=Innstillingar for straumkontroll av skjerm
+Comment[nso]=Dipeakanyo tsa taolo ya matla a pontsho
+Comment[pa]=ਊਰਜਾ ਪਰਬੰਧਨ ਝਲਕ ਲਈ ਸੈਟਿੰਗ
+Comment[pl]=Ustawienia zarządzania mocą
+Comment[pt]=Configurações para a gestão de energia do ecrã
+Comment[pt_BR]= Configurações para o gerenciamento de energia do monitor
+Comment[ro]=Setări pentru controlul energiei consumate de monitor
+Comment[ru]=Настройка управления питанием дисплея
+Comment[rw]=Amagenamiterere yo kwerekana icunga ry'umuriro
+Comment[se]=Heivehusat mat stivrejit rávdnji šerbmii
+Comment[sk]=Nastavenie šetrenia energiou obrazovky
+Comment[sl]=Nastavitve za nadzor energije zaslona
+Comment[sr]=Поставке за управаљање енергијом екрана
+Comment[sr@Latn]=Postavke za upravaljanje energijom ekrana
+Comment[ss]=Kuhleleka kwekubonisa kuphatfwa kwemandla
+Comment[sv]=Inställning av skärmens strömsparfunktion
+Comment[ta]=மின்சார மேலாண்மைக்கான அமைப்புகள்
+Comment[tg]=Танзимоти мудирияти барқии намоишгар
+Comment[th]=ตั้งค่าสำหรับการประหยัดพลังงานของระบบแสดงผล
+Comment[tr]=Ekran güç yöneticisi ayarları
+Comment[tt]=Küräk qüäten idäräläw caylawları
+Comment[uk]=Налаштування керування живленням дисплея
+Comment[uz]=Displeyning elektr taʼminoti uchun moslamalar
+Comment[uz@cyrillic]=Дисплейнинг электр таъминоти учун мосламалар
+Comment[ven]=Mavhekanyele au sumbedza ndangulo ya maanda
+Comment[vi]=Thiết lập cho quản lý nguồn điện
+Comment[wa]=Tchuzes po håyner l' manaedjmint d' enerdjeye
+Comment[xh]=Izicwangciso zoboniso lophatho lwamandla
+Comment[zh_CN]=显示器电源管理设置
+Comment[zh_TW]=顯示器電源管理的設定值
+Comment[zu]=Izilungiselelo zokuvezwa kokuphathwa kwamandla
+
+Keywords=energy,saver,apm,acpi,dpms,timeout,blanking,stand by,suspend,power
+Keywords[az]=enerji,apm,acpi,zamanaşımı,boşaltma,güç,karartma,ekran
+Keywords[be]=энергія,зберагальнік,збераганне,тэрмін чакання,ачышчэнне,выключэнне,сілкаванне,сон,energy,saver,apm,acpi,dpms,timeout,blanking,stand by,suspend,power
+Keywords[bg]=ток, захранване, прекъсване, батерия, батерии, контакт, energy, saver, apm, acpi, dpms, timeout, blanking, stand by, suspend, power
+Keywords[ca]=energia,salva,apm,acpi,dpms,expiració,en blanc,en espera, suspès,corrent
+Keywords[cs]=Energie,Úspora,APM,ACPI,Časový limit,Vypnutí,Napájení,Šetřič,Spořič
+Keywords[csb]=sëła, energijô,zachòwëwanié,apm,acpi,dpms,limit czasu,zaczôrnienié,wëłączanié, ùspienié,zasëlanié
+Keywords[cy]=ynni,arbedwr,apm,acpi,dpms,goroedi,gwagu,sefyll wrthlaw,seibio, pwer
+Keywords[da]=energi,sparer,apm,acpi,dpms,timeout,udløb,gør blank,standby,suspendér,strøm
+Keywords[de]=Energie,APM,ACPI,DPMS,Zeitüberlauf,Timeout,Standby,Bereitschaft
+Keywords[el]=ενέργεια,εξοικονόμηση,apm,acpi,dpms,χρονικό όριο,blanking,αναμονή,παύση,ισχύς
+Keywords[eo]=energio,sekurigo,APM,ACPI,tempolimo,ekrano,kurteno,nigrigo, dormigo,malŝalto
+Keywords[es]=energía,ahorro,APM,ACPI,tiempo de expiración,apagar monitor,modo de espera,suspender
+Keywords[et]=energia,säästja,apm,acpi,dpms,taimaut,energiasääst,passiivne
+Keywords[eu]=energia,babeslea,apm,acpi,dpms,denbora-muga,monitorea itzali, zain,suspenditu,indarra
+Keywords[fa]=انرژی، محافظ، apm، acpi، dpms، اتمام وقت، فاصله‌گذاری، نیمه روشن، معلق، توان
+Keywords[fi]=energia,säästö,apm,acpi,dpms,aikavalvonta,sammutus,valmiustila,teho
+Keywords[fr]=énergie,économie,apm,acpi,suspension,suspendre,tension,éteindre,extinction,veille,mise en veille,alimentation
+Keywords[fy]=energy,besparring,apm,acpi,tiidslimyt,sliepstân,stand-by,suspend,power,wachtstân,laptop,byldskerm,monitor,display,timeout
+Keywords[ga]=cumhacht,sábhálaí,apm,acpi,dpms,teorainn ama,bánú,croch,fuinneamh
+Keywords[gl]=enerxia,aforro,apm,acpi,dpms,tempo de espera,espera,suspender,timeout,bloqueo
+Keywords[he]=זמן מוקצב,האפלה,המתנה,חשמל,dpms,acpi,apm,אנרגיה,חיסכון, energy,saver,timeout,blanking,stand y,suspend,power
+Keywords[hi]=बिज़ली,रक्षक,एपीएम,एसीपीआई,डीपीएमएस,टाइम-आउट,ब्लैंकिंग,स्टैंड-बाय,सस्पैंड,उर्जा
+Keywords[hr]=energy,saver,apm,acpi,dpms,timeout,blanking,stand by,suspend,power,štednja energije,energija,štednja,crnilo
+Keywords[hu]=energia,kímélő,apm,acpi,dpms,időtúllépés,képernyőkioltás,készenlét,felfüggesztés,tápfeszültség
+Keywords[id]=energi,hemat,apm,acpi,timeout,blanking,stand by,suspend,Power
+Keywords[is]=orka,sparnaður,svæfing,apm,slökkva,svæfa,kveikja,dpms,tímamörk
+Keywords[it]=energia,risparmio,apm,acpi,tempo massimo,schermo nero,stand by,sospensione,corrente
+Keywords[ja]=電源,節約,apm,acpi,dpms,タイムアウト,ブランク,スタンバイ,サスペンド,パワー
+Keywords[ka]=ენერგია,შემნახველი, apm, acpi, dpms, დროის ამოწურვა, გასუფთავება, მზაობა, გაუქმება, კვება
+Keywords[km]=ថាមពល,អ្នក​សង្គ្រោះ,apm,acpi,dpms,អស់​ពេល,ទទេ,ឈប់​មួយ​ភ្លែត,ឈប់​បណ្ដោះ​អាសន្ន
+Keywords[lt]=energija,saugojimas,apm,acpi,pertrauka,gesinimas,stabdymas, pristabdymas,energija
+Keywords[lv]=enerģija,glabātājs,apm,acpi,dpms,taimauts,tukšs,gaidīt,izslēgt,iemidzināt,Barošana
+Keywords[mk]=energy,saver,apm,acpi,dpms,timeout,blanking,stand by,suspend,power,енергија,штедач,истек на време
+Keywords[mn]=Энерги,APM,ACPI,DPMS,Хугацаа хэтрэлт,Standby,Бэлэн байдал
+Keywords[mt]=energy,saver,apm,acpi,dpms,timeout,blanking,stand by,suspend,power,dawl,enerġija,elettriku,konsum
+Keywords[nb]=energi,sparing,apm,acpi,dpms,tidsgrense,tom skjerm,ventemodus,hvilemodus,dvalemodus,strøm
+Keywords[nds]=Energie,sporen,apm,acpi,dpms,timeout,blanking,stand by,suspend,Energie
+Keywords[ne]=शक्ति, बचतकर्ता, apm, acpi, dpms, समय समाप्त, रिक्त, उभिनु, निलम्बन, सामर्थ्य
+Keywords[nl]=energie,besparing,apm,acpi,tijdslimiet,slaapstand,stand-by,suspend,power,wachtstand,laptop,beeldscherm,monitor,display,timeout
+Keywords[nn]=energi,sparing,apm,acpi,dpms,tidsgrense,tom skjerm,standby,suspend,straum,dvale
+Keywords[nso]=maatla,seboloki,apm,acpi,dpms,feletswe ke nako,ga ena selo, moemalegato,koba bonakwana,matla
+Keywords[pa]=energy,saver,apm,acpi,dpms,timeout,blanking,stand by,suspend,ਊਰਜਾ,ਮੁਅੱਤਲ
+Keywords[pl]=energia,zachowywanie,apm,acpi,dpms,limit czasu,wygaszenie ekranu,wyłączanie,uśpienie,hibernacja,zasilanie
+Keywords[pt]=energia,poupança,apm,acpi,temporizador,stand by,suspender,alimentação
+Keywords[pt_BR]=energia,poupar,APM,ACPI,dpms,tempo limite,desligamento,em espera,suspender,Força
+Keywords[ro]=energie,salvare,apm,acpi,dpms,temporizare,stinge,stand by,suspendare,rețea electrică
+Keywords[rw]=ingufu,mubika,apm,acpi,dpms,igihecyarenze,kugira ahatanditseho, kuba witeguye,gusubika,umuriro
+Keywords[se]=árja,siestin,acpm,acpi,dpms,áigemearri,guorus šearbma,standby,suspend,el-rávdnji
+Keywords[sk]=energia,apm,acpi,vypnúť,timeout,zhasnúť,suspend,stand by,šetrič
+Keywords[sl]=energija,ohranjevalnik,varčevalnik,apm,acpi,suspend,potek,zatemnitev,energija
+Keywords[sr]=енергија,штедња,apm,acpi,timeout,blanking,stand by,suspend,напајање
+Keywords[sr@Latn]=energija,štednja,apm,acpi,timeout,blanking,stand by,suspend,napajanje
+Keywords[sv]=energi,spar,apm,acpi,dpms,tidsgräns,viloläge,vänteläge,ström
+Keywords[ta]=சக்தி,சேமிப்பான்,apm,acpi,dpms,நேரமுடிவு,இடைவெளி விடுதல்,ஆதாரம்,நீக்கம்,மின்சக்தி
+Keywords[th]=พลังงาน,ประหยัด,apm,acpi,dpms,หมดเวลา,ว่าง,เตรียมตัว,ปิดชั่วคราว,พลัง
+Keywords[tr]=enerji,apm,acpi,dpms,zaman aşımı,boşaltma,bekleme,karartma,güç
+Keywords[uk]=енергія,живлення,зберігач,apm,acpi, тайм-аут,гасіння,режим чергування,призупинення
+Keywords[uz]=energiya,tejash,apm,acpi,dpms,taymaut,blanking,stand by,suspend,elektr taʼminoti
+Keywords[uz@cyrillic]=энергия,тежаш,apm,acpi,dpms,таймаут,blanking,stand by,suspend,электр таъминоти
+Keywords[ven]=maanda,muvhulungi,apm,acpi,u fhela ha tshifhinga,blanking,zwanagatsini,phandela,Maanda
+Keywords[vi]=năng lượng,tiết kiệm,apm,acpi,dpms,hết giờ,mất điện,tạm nghỉ,treo,công suất
+Keywords[wa]=enerdjeye,schaper,schapeu,apm,acpi,dpms,timeout,blanking,stand by,suspend,power,djoker
+Keywords[xh]=amandla,umgcini,apm,acpi,dpms,ixesha lokuphuma,engenambhalo,umphumzi,gxotha,amandla
+Keywords[zh_CN]=energy,saver,apm,acpi,dpms,timeout,blanking,stand by,suspend,power,能源,节省,超时,黑屏,待机,休眠,电源
+Keywords[zh_TW]=energy,saver,apm,acpi,dpms,timeout,blanking,stand by,suspend,Power,能源,省電器,逾時,轉暗,待機,休眠,電源
+Keywords[zu]=umdlandla,umgcini,apm,acpi,isikhathi sokuphuma,ukuvimbela,lindela lengisa,amandla
+
diff --git a/kcontrol/energy/energy.h b/kcontrol/energy/energy.h
new file mode 100644
index 000000000..d41b89e26
--- /dev/null
+++ b/kcontrol/energy/energy.h
@@ -0,0 +1,68 @@
+/* vi: ts=8 sts=4 sw=4
+ *
+ *
+ *
+ * This file is part of the KDE project, module kcontrol.
+ * Copyright (C) 1999 Geert Jansen <[email protected]>
+ *
+ * You can Freely distribute this program under the GNU General Public
+ * License. See the file "COPYING" for the exact licensing terms.
+ *
+ * Based on kcontrol1 energy.h, Copyright (c) 1999 Tom Vijlbrief.
+ */
+
+#ifndef __Energy_h_Included__
+#define __Energy_h_Included__
+
+#include <qobject.h>
+#include <kcmodule.h>
+
+class QCheckBox;
+class KIntNumInput;
+class KConfig;
+
+extern "C" void init_energy();
+
+/**
+ * The Desktop/Energy tab in kcontrol.
+ */
+class KEnergy: public KCModule
+{
+ Q_OBJECT
+
+public:
+ KEnergy(QWidget *parent, const char *name);
+ ~KEnergy();
+
+ virtual void load();
+ virtual void load( bool useDefaults );
+ virtual void save();
+ virtual void defaults();
+
+private slots:
+ void slotChangeEnable(bool);
+ void slotChangeStandby(int);
+ void slotChangeSuspend(int);
+ void slotChangeOff(int);
+ void openURL(const QString &);
+
+private:
+ void readSettings();
+ void writeSettings();
+ void showSettings();
+
+ static void applySettings(bool, int, int, int);
+ friend void init_energy();
+
+ bool m_bChanged, m_bDPMS, m_bEnabled, m_bMaintainSanity;
+ int m_Standby, m_Suspend, m_Off;
+ int m_StandbyDesired, m_SuspendDesired, m_OffDesired;
+
+ QCheckBox *m_pCBEnable;
+ KIntNumInput *m_pStandbySlider;
+ KIntNumInput *m_pSuspendSlider;
+ KIntNumInput *m_pOffSlider;
+ KConfig *m_pConfig;
+};
+
+#endif // __Energy_h_Included__
diff --git a/kcontrol/energy/pics/Makefile.am b/kcontrol/energy/pics/Makefile.am
new file mode 100644
index 000000000..a53060d03
--- /dev/null
+++ b/kcontrol/energy/pics/Makefile.am
@@ -0,0 +1,5 @@
+pics_DATA = energybig.png lo-energy.png
+picsdir = $(kde_datadir)/kcontrol/pics
+
+EXTRA_DIST = $(pics_DATA)
+
diff --git a/kcontrol/energy/pics/energybig.png b/kcontrol/energy/pics/energybig.png
new file mode 100644
index 000000000..1a79fe748
--- /dev/null
+++ b/kcontrol/energy/pics/energybig.png
Binary files differ
diff --git a/kcontrol/energy/pics/lo-energy.png b/kcontrol/energy/pics/lo-energy.png
new file mode 100644
index 000000000..9706644b1
--- /dev/null
+++ b/kcontrol/energy/pics/lo-energy.png
Binary files differ