Giter Site home page Giter Site logo

kshutdown's Introduction

<!DOCTYPE html>
<html lang="en">
<head>
	<title>KShutdown - README</title>
	<meta charset="UTF-8" />
	<style type="text/css">
	body {
		background-color: white;
		font-family: sans-serif;
		margin-left: 5%;
		margin-right: 5%;
		padding-left: 5%;
		padding-right: 5%;
	}
	
	code, pre {
		background-color: #eeeeee;
		font-size: larger;
		padding: 2px;
	}

	h2 {
		border-bottom: 2px dashed #009900;
		color: #009900;
		margin-top: 2em;
		padding-bottom: 4px;
	}
	
	h4 {
		color: #990000;
	}
	
	table {
		border: 1px solid gray;
		border-collapse: collapse;
	}
	
	td {
		padding: 8px;
	}
	
	td.build {
		background-color: #EEEEEE;
		font-weight: bold;
	}

	td.file_list {
		vertical-align: top;
	}

	td.file_list ul {
		margin: 0px;
		padding-left: 1em;
	}

	td.file_list li {
		font-family: monospace;
	}

	td.new:before {
		color: orange;
		content: "New! ";
	}

	tr:nth-child(odd) td.build {
		background-color: #FAFAFA;
	}
	
	td.header, thead td {
		background-color: gray;
		color: white;
		font-weight: bold;
		text-align: center;
	}

	td.na {
		background-color: #BFD9FF;
		text-align: center;
	}

	tr:nth-child(odd) td.na {
		background-color: #D6E7FF;
	}

	td.obsolete:after {
		color: darkgray;
		content: " (obsolete)";
	}

	td.ok {
		background-color: #D8E8C2;
		text-align: center;
	}

	tr:nth-child(odd) td.ok {
		background-color: #E5F0D6;
	}
	
	td.ok:hover {
		background-color: #FFFFBF !important;
		cursor: help;
	}
	
	td.test {
		background-color: #FFD9B0;
		text-align: center;
	}
	
	tr:nth-child(odd) td.test {
		background-color: #FFE6CC;
	}

	td.wip {
		background-color: #F9CCCA;
		text-align: center;
	}

	tr:nth-child(odd) td.wip {
		background-color: #FBE0DF;
	}

	table#build_table td {
		border: 1px solid gray;
	}

	table#supported_table {
		width: 100%;
	}
	</style>
</head>
<body>

<h1>KShutdown™ - README</h1>

<p>A graphical shutdown utility for Linux and Windows</p>
<p>&copy; Konrad Twardowski</p>
<p>
Visit <a href="https://kshutdown.sourceforge.io/">KShutdown Home Page</a> and
<a href="https://sourceforge.net/p/kshutdown/wiki/Home/">Wiki</a> for more info.
</p>

<h2>Table of Contents</h2>
<ul>
	<li><a href="#kdevsqt">What's KF5/Qt Build?</a></li>
	<li><a href="#kde4linux">KF5 Build @ Linux</a></li>
	<li><a href="#qt4linux">Qt Build @ Linux</a></li>
	<li><a href="#qt4windows">Qt Build @ Windows</a></li>
	<li><a href="#qthaiku">Qt Build @ Haiku</a></li>
	<li><a href="#common_compilation_errors">Common Compilation Errors</a></li>
	<li><a href="#supported">Supported Functions/Platforms</a></li>
	<li><a href="#issues">Known Issues/FAQ</a></li>
	<li>
		<a href="https://sourceforge.net/p/kshutdown/wiki/Credits/">Credits</a> |
		<a href="https://kshutdown.sourceforge.io/contact.html">Support</a> |
		<a href="https://www.gnu.org/licenses/gpl.html">License</a> (GPL)
	</li>
</ul>

<h2 id="kdevsqt">What's KF5/Qt Build?</h2>

<table id="build_table">

<thead>
<tr>
	<td></td>
	<td>KF5 Build</td>
	<td>Qt Build</td>
	<td>Qt Build (Windows)</td>
</tr>
</thead>

<tbody>

<!-- TODO: single-instance difference -->

<tr>
	<td class="header">Summary</td>
	<td>A KShutdown version compiled using KDE Frameworks 5 libraries</td>
	<td colspan="2">A KShutdown version compiled without any KDE libraries (Qt only)</td>
</tr>

<tr>
	<td class="header">Additional Features</td>
	<td>Better visual and functional integration with KDE, better User Interface elements and standard dialog windows, global and local keyboard shortcuts configuration, customizable notifications (e.g. sounds), improved localization, a more reliable system tray/notification icon (KF5 only).</td>
	<td colspan="2">None (just plain Qt)</td>
</tr>

<tr>
	<td class="header">Compilation Script</td>
	<td>./Setup-kf5.sh</td>
	<td>./Setup-qt4.sh or ./Setup-qt5.sh</td>
	<td>Setup-qt4.bat or ./Setup-wine.sh</td>
</tr>

<tr>
<!-- TODO: add exact instructions: package names, commands, etc. -->
	<td class="header">Required Libraries</td>
	<td>Qt5Widgets, Qt5DBus, base KF5 libraries (see "src/CMakeLists.txt" for details)</td>
	<td>
	Qt 4: QtGui, QtDBus, QtCore (Ubuntu packages: libqtgui4, libqt4-dbus)<br />
	<br />
	Qt 5: Qt5Widgets, Qt5DBus, Qt5Gui, Qt5Core
	</td>
	<td>See: <a href="README.html#qt4windows">Qt Build @ Windows</a></td>
</tr>

<tr>
	<td class="header">Menu Shortcut Name</td>
	<td>KShutdown</td>
	<td>KShutdown<b>/Qt</b></td>
	<td>KShutdown</td>
</tr>

<tr>
	<td class="header" id="configurationfiles">Configuration Files</td>
	<td class="file_list">
		<ul>
		<li>~/.local/share/kshutdown/extras/</li>
		<li>~/.config/kshutdown.notifyrc</li>
		<li>~/.config/kshutdownrc</li>
		</ul>
		<p>Note: You can manually import existing configuration from ~/.kde directory:</p>
		<ul>
		<li>~/.kde/share/apps/kshutdown/extras/</li>
		<li>~/.kde/share/config/kshutdown.notifyrc</li>
		<li>~/.kde/share/config/kshutdownrc</li>
		</ul>
	</td>
	<td class="file_list">
		<ul>
		<li>~/.config/kshutdown.sf.net/KShutdown.conf</li>
		<li>~/.local/share/data/kshutdown.sf.net/KShutdown/extras/ (Qt 4)</li>
		<li>~/.local/share/kshutdown.sf.net/KShutdown/extras/ (Qt 5)</li>
		</ul>
		<p>Note: Does not apply to the portable version.</p>
	</td>
	<td class="file_list">
		<ul>
		<li>%localappdata%\kshutdown.sf.net\KShutdown\extras\ (Tip: You can open this %localappdata%... path directly in Explorer)</li>
		<li>Windows Registry (HKEY_CURRENT_USER\SOFTWARE\kshutdown.sf.net\KShutdown)</li>
		</ul>
		<p>Note: Does not apply to the portable version.</p>
	</td>
</tr>

<tr>
	<td class="header">Installed Files</td>
	<td class="file_list">
		<ul>
		<li>/usr/share/applications/kshutdown.desktop</li>
		<li>/usr/share/icons/hicolor/*/actions/kshutdown.*</li>
		<li>/usr/share/knotifications5/kshutdown.notifyrc</li>
		<li>/usr/share/kshutdown/extras/**</li>
		<li>/usr/share/locale/**/kshutdown.mo</li>
		</ul>
		<p>Note: After migration from KDE 4 version to KF 5 version, you can optionally remove the old files (if any):</p>
		<ul>
		<li>/usr/share/applications/kde4/kshutdown.desktop</li>
		<li>/usr/share/kde4/apps/kshutdown/extras/**</li>
		<li>/usr/share/kde4/apps/kshutdown/kshutdown.notifyrc</li>
		</ul>
	</td>
	<td class="file_list">
		<ul>
		<li>/usr/share/applications/kshutdown-qt.desktop</li>
		<li>/usr/share/icons/hicolor/*/actions/kshutdown.*</li>
		</ul>
	</td>
	<td class="file_list">
		<ul>
		<li>%ProgramFiles(x86)%\KShutdown or %ProgramFiles%\KShutdown (as installed by NSIS)</li>
		</ul>
	</td>
</tr>

<tr>
	<td class="header">Default Program Location</td>
	<td>/usr/bin/kshutdown</td>
	<td>/usr/bin/kshutdown<b>-qt</b></td>
	<td>kshutdown.exe</td>
</tr>

<tr>
	<td class="header"></td>
	<td class="header" colspan="4">Developer Info</td>
</tr>

<tr>
	<td class="header">C++ #define</td>
<!-- TODO: remove KS_NATIVE_KDE from the code -->
	<td><code>KS_NATIVE_KDE</code> and <code>KS_KF5</code></td>
	<td colspan="2"><code>KS_PURE_QT</code></td>
</tr>

<tr>
	<td class="header">Build System</td>
	<td><a href="http://www.cmake.org/">CMake</a> (CMakeLists.txt files)</td>
	<td colspan="2"><a href="http://qt-project.org/doc/qt-4.8/qmake-manual.html">QMake</a> (src/src.pro file) or CMake (experimental)</td>
</tr>

<tr>
	<td class="header">Language Translation System (input: po/*.po)</td>
	<td>Gettext (output: build.tmp/po/*.mo)</td>
	<td>Gettext (output: src/i18n/*.qm), kshutdown.qrc</td>
	<td>TODO:</td>
</tr>

</tbody>

</table>

<p>See <a href="#supported">Supported Functions/Platforms</a> table for more info.</p>

<h2 id="kde4linux">TODO: KDE Build @ Linux</h2>

<h3>Minimal Requirements</h3>
<ol>
	<li>KDE 4.7+</li>
	<li>Qt 4.8+ or Qt 5.x</li>
</ol>

<h3>Compilation &amp; Installation</h3>
<ol>
	<li>Additional requirements: installed <code>"kdelibs-dev"</code> package, CMake, and Gettext Utilities</li>
	<li>To compile and install KShutdown run: <code>./Setup-kde4.sh</code></li>
	<li>To change the installation directory (prefix) run: <code>./Setup-kde4.sh "/your/prefix/dir"</code></li>
	<li>Clang support (an alternative C++ compiler):
		<ul>
		<li><code>export CXX=/usr/bin/clang++</code></li>
		<li><code>export CXXFLAGS=-march=i686</code> (in case of <i>Illegal Instruction</i> errors on some hardware)</li>
		<li>Go to step 2.</li>
		</ul>
	</li>
</ol>

<h3>Compilation &amp; Installation (alternative method; for geeks and nerds only)</h3>
<p>
<i>BUILDTYPE</i> can be <code>Release</code> or <code>Debug</code>.
You can change the installation directory (prefix) by setting the <code>CMAKE_INSTALL_PREFIX</code> environment variable.
To display default prefix for KDE applications, run <code>kde4-config --prefix</code>.
</p>
<ol>
	<li>Create output directory: <code>mkdir build &amp;&amp; cd build</code></li>
	<li>Generate Makefiles: <code>cmake -DCMAKE_BUILD_TYPE=<i>BUILDTYPE</i> -DCMAKE_INSTALL_PREFIX="/usr/local" ..</code></li>
	<li>Compile: <code>make</code></li>
	<li>Make coffee</li>
	<li>Install: <code>make install</code></li>
</ol>

<h2 id="qt4linux">Qt Build @ Linux</h2>

<p><b>Note:</b> Some functions may be unavailable in this build.
See <a href="#supported">Qt Build</a> table for more info.</p>

<h3>Minimal Requirements</h3>
<ol>
	<li>Qt 4.8+ or Qt 5.x (KDE libraries are <b>not</b> required)</li>
</ol>

<h3>Compilation &amp; Installation</h3>
<ol>
	<li>To compile KShutdown run: <code>./Setup-qt4.sh</code></li>
	<li>Installation is not required</li>
	<li>Clang support (an alternative C++ compiler):
		<ol>
		<li><code>cd src; qmake -spec /usr/share/qt4/mkspecs/unsupported/linux-clang/</code></li>
		<li><code>make</code></li>
		</ol>
	</li>
</ol>

<h3>Using CMake instead of QMake (experimental, <a href="https://sourceforge.net/p/kshutdown/patches/4/">Patch #4</a>)</h3>
<ol>
	<li><code>mkdir build-qt5.tmp</code> (use separated "build-qt5.tmp" directory to avoid mess in source tree)</li>
	<li><code>cd build-qt5.tmp</code></li>
	<li><code>cmake -DKS_PURE_QT=true -DCMAKE_INSTALL_PREFIX=/usr ..</code></li>
	<li><code>make &amp;&amp; ./src/kshutdown-qt</code></li>
</ol>

<h3>Using an alternate Qt version (Qt 5.x example)</h3>
<ol>
	<li><code>cd src</code></li>
	<li><code>/usr/lib/$YOUR_VERSION-linux-gnu/qt5/bin/qmake</code></li>
	<li><code>make</code></li>
</ol>

<h2 id="qt4windows">Qt Build @ Windows</h2>

<p>Note: You can <a href="https://kshutdown.sourceforge.io/download.html">download</a> a binary (already compiled) KShutdown version for Windows.</p>

<h3>Minimal Requirements (for compilation)</h3>
<ol>
	<li><a href="https://download.qt.io/official_releases/qt/4.8/">Qt 4.8.x</a> (<code>qt-opensource-windows-x86-mingw*.exe</code>, minGW, LGPL version)</li>
	<ol>
		<li>When asked about MinGW (Minimalist GNU for Windows) click download link and unpack archive into <code>C:\mingw32</code></li>
		<li>Continue Qt installation</li>
	</ol>
	<li><a href="http://nsis.sourceforge.net/">Nullsoft Scriptable Install System</a> (NSIS)</li>
	<li>Windows XP/Vista/7/8/10 or compatible (including <a href="http://www.winehq.org/">Wine</a>)</li>
</ol>

<h3>Compilation &amp; Installation</h3>
<ul>
	<li>To compile and install KShutdown run: <code>Setup-qt4.bat</code> (this will rebuild both portable and installable version)</li>
	<li>To quick compile and test:
		<ol>
		<li>Launch "Command Prompt" (<code>cmd.exe</code>)</li>
		<li><code>cd your-kshutdown-source-dir\src</code></li>
		<li>Run <code>c:\qt\&lt;your-qt-version&gt;\bin\qtvars.bat</code> (it should print <i>Setting up a MinGW/Qt only environment...</i>)</li>
		<li>Run <code>make &amp;&amp; release\kshutdown-qt.exe</code></li>
		<li>Right-click <code>kshutdown.nsi</code> and select <i>Compile NSIS Script</i> to build and test installer</li>
		</ol>
	</li>
	<li><b>Experimental:</b> To compile/test KShutdown under Wine/Linux run: <code>./Setup-wine.sh</code> or <code>wineconsole tools/test-wine.bat</code></li>
</ul>

<h2 id="qthaiku">Qt Build @ Haiku</h2>

<h3>Compilation</h3>
<ol>
	<li>Download and install <a href="http://qt-haiku.ru/">Qt for Haiku</a></li>
	<li>Download and unpack <a href="https://kshutdown.sourceforge.io/download.html">KShutdown source</a></li>
	<li>Open terminal with KShutdown source: <code>cd src</code></li>
	<li>Change the default C++ compiler to GCC 4: <code>setgcc gcc4</code></li>
	<li>Create Makefiles: <code>qmake</code></li>
	<li>Build "kshutdown-qt" binary: <code>make</code></li>
</ol>

<h2 id="common_compilation_errors">Common Compilation Errors</h2>

<h3>cmake</h3>

<h4>CMake Error at /usr/share/cmake-2.6/Modules/FindKDE4.cmake:72</h4>
<pre>
CMake Error at /usr/share/cmake-2.6/Modules/FindKDE4.cmake:72 (MESSAGE):
ERROR: cmake/modules/FindKDE4Internal.cmake not found in
...;/usr/lib/kde4/share/kde4/apps
</pre>
<p>Install "kdelibs-dev" (sometimes called kdelibs5-dev) packages for your KDE version.</p>

<h4>CMake Error at (...) Phonon library or includes NOT found!</h4>
<p>This may happen after Ubuntu upgrade
even if required Phonon files are already installed. [<a href="http://osdir.com/ml/digikam-users/2009-11/msg00024.html">Solution</a>]</p>

<h4>make[2]: *** No rule to make target `/usr/lib/libknotifyconfig.so.4.xx', needed by `src/kshutdown'.  Stop.</h4>
<p>This may happen after KDE upgrade. Run <code>./Setup-kde4.sh</code> to refresh Makefiles.</p>

<h4>CMake Error: The following variables are used in this project, but they are set to NOTFOUND.<br />
Please set them or make sure they are set and tested correctly in the CMake files:<br />
QT_QT_INCLUDE_DIR (...)</h4>
<p>
This may happen if both Qt 4 and 5 qmake is installed.
Try to uninstall <code>qt5-qmake</code> package.
</p>

<h3>Setup</h3>

<h4>"pushd: not found" error</h4>
<p>
Try to run
<code>./Setup-kde4.sh</code> and
<code>cd build.tmp; sudo make install</code> instead of 
<code>sudo sh Setup-kde4.sh</code>
</p>

<h2 id="supported">Supported Functions/Platforms</h2>

<div>
<table id="supported_table">

<thead>

<tr>
<td>Desktop Environment/Platform</td>
<td>Turn Off Computer<sup>1</sup>&nbsp;<sup>2</sup></td>
<td>Restart Computer<sup>1</sup>&nbsp;<sup>2</sup></td>
<td>Suspend<sup>2</sup></td>
<td>Hibernate<sup>2</sup></td>
<td>Lock Screen</td>
<td>Logout</td>
<td>Extras</td>
<td>Waiting for a selected application</td>
<td>Inactivity Monitor</td>
</tr>

</thead>

<tfoot>

<tr><td class="header" colspan="10">Legend</td></tr>

<tr><td class="test">Test</td><td colspan="9">Should work, still testing ;)</td></tr>
<tr><td class="ok">OK<!-- TODO: implementation details --></td><td colspan="9">Done (hover an item to display implementation details)</td></tr>
<tr><td class="na">N/A</td><td colspan="9">Function is not available on this platform/KShutdown version</td></tr>
<tr><td class="wip">TODO/FIXME</td><td colspan="9">Work In Progress - to be implemented in a future...</td></tr>

<tr><td>CLI</td><td colspan="9">Function available via Command Line (example: kshutdown --lock)</td></tr>
<tr><td colspan="10"><sup>1</sup> D-Bus commands should work with <abbr title="GNOME Display Manager">GDM</abbr>, <abbr title="KDE Display Manager">KDM</abbr>, LightDM, and other Display Managers</td></tr>
<tr><td colspan="10"><sup>2</sup> systemd (org.freedesktop.login1 D-Bus interface) is supported since KShutdown 3.2</td></tr>
<tr><td colspan="10"><sup>3</sup> some features may work</td></tr>

</tfoot>

<tbody>

<!-- TODO: document systemd support -->
<tr>
<td class="build"><a href="https://www.kde.org/">Plasma</a> 5 (KF5 Build)</td>
<td class="ok" title="D-Bus (org.kde.ksmserver, org.freedesktop.ConsoleKit, org.freedesktop.Hal)">OK</td>
<td class="ok" title="D-Bus (org.kde.ksmserver, org.freedesktop.ConsoleKit, org.freedesktop.Hal)">OK</td>
<td class="ok" title="D-Bus (org.freedesktop.UPower, org.freedesktop.Hal)">OK</td>
<td class="test" title="D-Bus (org.freedesktop.UPower, org.freedesktop.Hal)">Test</td>
<td class="ok" title="D-Bus (org.freedesktop.ScreenSaver, org.kde.krunner), xdg-screensaver, xscreensaver-command">OK</td>
<td class="ok" title="D-Bus (org.kde.ksmserver)">OK</td>
<td class="test">Test</td>
<td class="test" title="::kill(pid, 0)">Test, no CLI</td>
<td class="ok" title="KIdleTime, D-Bus (org.freedesktop.ScreenSaver, org.kde.krunner)">OK</td>
</tr>

<tr>
<td class="build">Windows XP/Vista/7/8/10</td>
<td class="ok" title="::InitiateSystemShutdown">OK</td>
<td class="ok" title="::InitiateSystemShutdown">OK</td>
<td class="ok" title="::SetSuspendState">OK</td>
<td class="ok" title="::SetSuspendState">OK</td>
<td class="ok" title="::LockWorkStation">OK</td>
<td class="ok" title="::ExitWindowsEx">OK</td>
<td class="ok">OK</td>
<td class="ok" title="::IsWindow">OK, no CLI</td>
<td class="ok" title="::GetLastInputInfo">OK</td>
</tr>

<tr>
<td class="build"><a href="http://www.xfce.org/">Xfce</a> 4.8+</td>
<td class="ok" title="D-Bus (org.freedesktop.ConsoleKit, org.freedesktop.Hal)">OK</td>
<td class="ok" title="D-Bus (org.freedesktop.ConsoleKit, org.freedesktop.Hal)">OK</td>
<td class="ok" title="D-Bus (org.freedesktop.UPower, org.freedesktop.Hal)">OK</td>
<td class="ok" title="D-Bus (org.freedesktop.UPower, org.freedesktop.Hal)">OK</td>
<td class="ok" title="xflock4, xdg-screensaver, xscreensaver-command">OK</td>
<td class="new test" title="xfce4-session-logout">Test</td>
<td class="test">Test</td>
<td class="ok" title="::kill(pid, 0)">OK, no CLI</td>
<td class="wip">TODO</td>
</tr>

<tr>
<td class="build"><a href="https://www.kde.org/">Plasma</a> 5 (Qt Build)</td>
<td class="test" title="D-Bus (org.kde.ksmserver, org.freedesktop.ConsoleKit, org.freedesktop.Hal)">Test</td>
<td class="test" title="D-Bus (org.kde.ksmserver, org.freedesktop.ConsoleKit, org.freedesktop.Hal)">Test</td>
<td class="test" title="D-Bus (org.freedesktop.UPower, org.freedesktop.Hal)">Test</td>
<td class="test" title="D-Bus (org.freedesktop.UPower, org.freedesktop.Hal)">Test</td>
<td class="test" title="D-Bus (org.freedesktop.ScreenSaver, org.kde.krunner), xdg-screensaver, xscreensaver-command">Test</td>
<td class="test" title="D-Bus (org.kde.ksmserver)">Test</td>
<td class="test">Test</td>
<td class="test" title="::kill(pid, 0)">Test, no CLI</td>
<td class="wip" title="D-Bus (org.freedesktop.ScreenSaver, org.kde.krunner)">FIXME</td>
</tr>

<tr>
<td class="build"><a href="http://mate-desktop.org/">MATE</a></td>
<td class="ok" title="D-Bus (org.freedesktop.ConsoleKit, org.freedesktop.Hal)">OK</td>
<td class="ok" title="D-Bus (org.freedesktop.ConsoleKit, org.freedesktop.Hal)">OK</td>
<td class="ok" title="D-Bus (org.freedesktop.UPower, org.freedesktop.Hal)">OK</td>
<td class="test">Test</td>
<td class="ok" title="mate-screensaver-command">OK</td>
<td class="ok" title="mate-session-save">OK</td>
<td class="ok">OK</td>
<td class="ok" title="::kill(pid, 0)">OK, no CLI</td>
<td class="wip">TODO</td>
</tr>

<tr>
<td class="build"><a href="https://trinitydesktop.org/">Trinity</a></td>
<td class="test" title="D-Bus (org.freedesktop.ConsoleKit, org.freedesktop.Hal)">Test</td>
<td class="test" title="D-Bus (org.freedesktop.ConsoleKit, org.freedesktop.Hal)">Test</td>
<td class="test">Test</td>
<td class="test">Test</td>
<td class="ok" title="DCOP (kdesktop.KScreensaverIface.lock)">OK</td>
<td class="ok" title="DCOP (ksmserver.ksmserver.logout)">OK</td>
<td class="test">Test</td>
<td class="test">Test</td>
<td class="wip">TODO</td>
</tr>

<tr>
<td class="build"><a href="http://www.gnome.org/">GNOME</a> Shell (3.x)</td>
<td class="ok" title="D-Bus (org.freedesktop.ConsoleKit, org.freedesktop.Hal)">OK</td>
<td class="ok" title="D-Bus (org.freedesktop.ConsoleKit, org.freedesktop.Hal)">OK</td>
<td class="ok" title="D-Bus (org.freedesktop.UPower, org.freedesktop.Hal)">OK</td>
<td class="test" title="D-Bus (org.freedesktop.UPower, org.freedesktop.Hal)">Test</td>
<td class="ok" title="gnome-screensaver-command">OK</td>
<td class="ok" title="gnome-session-quit">OK</td>
<td class="test">Test</td>
<td class="ok" title="::kill(pid, 0)">OK, no CLI</td>
<td class="ok" title="D-Bus (org.freedesktop.ScreenSaver)">OK</td>
</tr>

<tr>
<td class="build"><a href="http://en.wikipedia.org/wiki/Unity_%28user_interface%29">Unity</a></td>
<td class="test">Test</td>
<td class="test">Test</td>
<td class="test" title="D-Bus (org.freedesktop.UPower, org.freedesktop.Hal)">Test</td>
<td class="test" title="D-Bus (org.freedesktop.UPower, org.freedesktop.Hal)">Test</td>
<td class="test" title="gnome-screensaver-command">Test</td>
<td class="test" title="gnome-session-quit">Test</td>
<td class="test">Test</td>
<td class="ok" title="::kill(pid, 0)">OK, no CLI</td>
<td class="wip">TODO</td>
</tr>

<tr>
<td class="build"><a href="http://www.enlightenment.org/">Enlightenment</a></td>
<td class="test">Test</td>
<td class="test">Test</td>
<td class="ok" title="D-Bus (org.freedesktop.UPower, org.freedesktop.Hal)">OK</td>
<td class="ok" title="D-Bus (org.freedesktop.UPower, org.freedesktop.Hal)">OK</td>
<td class="ok" title="enlightenment_remote">OK</td>
<td class="ok" title="enlightenment_remote">OK</td>
<td class="test">Test</td>
<td class="ok" title="::kill(pid, 0)">OK, no CLI</td>
<td class="wip">TODO</td>
</tr>

<tr>
<td class="build"><a href="http://lxqt.org/">LXQt</a></td>
<td class="test">Test</td>
<td class="test">Test</td>
<td class="test" title="D-Bus (org.freedesktop.UPower, org.freedesktop.Hal)">Test</td>
<td class="test" title="D-Bus (org.freedesktop.UPower, org.freedesktop.Hal)">Test</td>
<td class="ok" title="lxqt-leave">OK</td>
<td class="ok" title="D-Bus (org.lxqt.session)">OK</td>
<td class="test">Test</td>
<td class="ok" title="::kill(pid, 0)">OK, no CLI</td>
<td class="wip">TODO</td>
</tr>

<tr>
<td class="build obsolete"><a href="http://en.wikipedia.org/wiki/LXDE">LXDE</a></td>
<td class="ok" title="D-Bus (org.freedesktop.ConsoleKit, org.freedesktop.Hal)">OK</td>
<td class="ok" title="D-Bus (org.freedesktop.ConsoleKit, org.freedesktop.Hal)">OK</td>
<td class="ok" title="D-Bus (org.freedesktop.UPower, org.freedesktop.Hal)">OK</td>
<td class="ok" title="D-Bus (org.freedesktop.UPower, org.freedesktop.Hal)">OK</td>
<td class="ok" title="lxlock, xdg-screensaver, xscreensaver-command">OK</td>
<td class="ok" title="::kill(_LXSESSION_PID, SIGTERM)">OK</td>
<td class="test">Test</td>
<td class="ok" title="::kill(pid, 0)">OK, no CLI</td>
<td class="wip">TODO</td>
</tr>

<tr>
<td class="build obsolete"><a href="http://razor-qt.org/">Razor-qt</a></td>
<td class="ok" title="D-Bus (org.freedesktop.ConsoleKit, org.freedesktop.Hal)">OK</td>
<td class="ok" title="D-Bus (org.freedesktop.ConsoleKit, org.freedesktop.Hal)">OK</td>
<td class="ok" title="D-Bus (org.freedesktop.UPower, org.freedesktop.Hal)">OK</td>
<td class="ok" title="D-Bus (org.freedesktop.UPower, org.freedesktop.Hal)">OK</td>
<td class="ok" title="xdg-screensaver, xscreensaver-command">OK</td>
<td class="ok" title="D-Bus (org.razorqt.session)">OK</td>
<td class="ok">OK</td>
<td class="ok" title="::kill(pid, 0)">OK, no CLI</td>
<td class="wip">TODO</td>
</tr>

<tr>
<td class="build"><a href="https://www.haiku-os.org">Haiku</a></td>
<td class="ok" title="shutdown">OK</td>
<td class="ok" title="shutdown -r">OK</td>
<td class="na">N/A</td>
<td class="na">N/A</td>
<td class="ok" title="screen_blanker, need proper ScreenSaver settings">OK</td>
<td class="na">N/A</td>
<td class="test">Test</td>
<td class="wip">TODO</td>
<td class="wip">TODO</td>
</tr>

<tr>
<td class="build"><a href="http://cinnamon.linuxmint.com/">Cinnamon</a></td>
<td class="ok" title="D-Bus (org.freedesktop.ConsoleKit, org.freedesktop.Hal)">OK</td>
<td class="ok" title="D-Bus (org.freedesktop.ConsoleKit, org.freedesktop.Hal)">OK</td>
<td class="ok" title="D-Bus (org.freedesktop.UPower, org.freedesktop.Hal)">OK</td>
<td class="ok" title="D-Bus (org.freedesktop.UPower, org.freedesktop.Hal)">OK</td>
<td class="ok" title="cinnamon-screensaver-command">OK</td>
<td class="ok" title="cinnamon-session-quit">OK</td>
<td class="test">Test</td>
<td class="ok" title="::kill(pid, 0)">OK, no CLI</td>
<td class="wip">TODO</td>
</tr>

<tr>
<td class="build"><a href="http://openbox.org/">Openbox</a></td>
<td class="wip" colspan="5">TODO (?)<sup>3</sup></td>
<td class="ok" title="openbox --exit">OK</td>
<td class="wip" colspan="3">TODO (?)</td>
</tr>

<tr>
<td class="build">Mac OS X</td>
<td class="wip" colspan="9">TODO (?)</td>
</tr>

<tr>
<td class="build"><a href="http://www.gnome.org/">GNOME</a> 2</td>
<td class="na new" colspan="9">Unsupported<sup>3</sup></td>
</tr>

<tr>
<td class="build">KDE 3</td>
<td class="na new" colspan="9">Unsupported<sup>3</sup> (use old KShutDown 1.0.x instead)</td>
</tr>

</tbody>

</table>
</div>

<h2 id="issues">Known Issues/FAQ</h2>

<h3>Linux: Hibernate/Suspend does not work</h3>
<p>If your Linux distribution supports <i>systemd</i> then try to install KShutdown 3.2+; otherwise install "upower" package.</p>
<p>As a workaround you can try to create a <a href="https://sourceforge.net/p/kshutdown/wiki/Extras/">custom action</a>
with a <a href="https://wiki.archlinux.org/index.php/systemd#Power_management"><code>systemctl</code> command</a>.</p>

<h3>Linux: Turn Off Computer/Restart Computer does not work</h3>
<p>If your Linux distribution supports <i>systemd</i> then try to install KShutdown 3.2+; otherwise install "consolekit" package.</p>

<h3>Linux: "KShutdown is already running" message</h3>
<p>
If no main window (and no system tray icon) is visible,
kill "kshutdown" process and try to run it again.
</p>
<p>
This may be caused by a buggy system tray implementation.
You can disable it in KShutdown settings.
</p>

<h3>Linux: Various system tray icon issues</h3>
<p>Depending on desktop environment, KShutdown may sometimes fail to display the system tray icon correctly.</p>

<h3>Windows: No system tray icon</h3>
<p>Sometimes the system tray icon may disappear randomly. Press Ctrl+Shift+Esc, end <code>kshutdown.exe</code> process, and restart KShutdown.</p>

<h3>KShutdown 1.0.x</h3>
<p>Some configuration and command line options in KShutdown 2.x+
may be not fully compatible with the old KShutdown 1.0.x.</p>

</body>
</html>

kshutdown's People

Contributors

kamikazow avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.