summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Koegel <eric.koegel@gmail.com>2014-10-12 19:02:14 +0300
committerEric Koegel <eric.koegel@gmail.com>2014-10-12 19:02:14 +0300
commite8b03c3da073e8547ea6305f2c74ff5e72ad3ecd (patch)
treedb373050b8167e4f0594ec64957f891b7b35ce8d
downloadConsoleKit2-e8b03c3da073e8547ea6305f2c74ff5e72ad3ecd.tar.gz
Create gh-pages branch via GitHub
-rw-r--r--images/bg_hr.pngbin0 -> 78 bytes
-rw-r--r--images/blacktocat.pngbin0 -> 463 bytes
-rw-r--r--images/icon_download.pngbin0 -> 216 bytes
-rw-r--r--images/sprite_download.pngbin0 -> 14832 bytes
-rw-r--r--index.html1448
-rw-r--r--javascripts/main.js1
-rw-r--r--params.json1
-rw-r--r--stylesheets/pygment_trac.css70
-rw-r--r--stylesheets/stylesheet.css423
9 files changed, 1943 insertions, 0 deletions
diff --git a/images/bg_hr.png b/images/bg_hr.png
new file mode 100644
index 0000000..514aee5
--- /dev/null
+++ b/images/bg_hr.png
Binary files differ
diff --git a/images/blacktocat.png b/images/blacktocat.png
new file mode 100644
index 0000000..e160053
--- /dev/null
+++ b/images/blacktocat.png
Binary files differ
diff --git a/images/icon_download.png b/images/icon_download.png
new file mode 100644
index 0000000..5a793f1
--- /dev/null
+++ b/images/icon_download.png
Binary files differ
diff --git a/images/sprite_download.png b/images/sprite_download.png
new file mode 100644
index 0000000..f9f8de2
--- /dev/null
+++ b/images/sprite_download.png
Binary files differ
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..0f9af76
--- /dev/null
+++ b/index.html
@@ -0,0 +1,1448 @@
+<!DOCTYPE html>
+<html>
+
+ <head>
+ <meta charset='utf-8'>
+ <meta http-equiv="X-UA-Compatible" content="chrome=1">
+ <meta name="description" content="Consolekit2 : ConsoleKit2 is a framework for defining and tracking users, login sessions, and seats.">
+
+ <link rel="stylesheet" type="text/css" media="screen" href="stylesheets/stylesheet.css">
+
+ <title>Consolekit2</title>
+ </head>
+
+ <body>
+
+ <!-- HEADER -->
+ <div id="header_wrap" class="outer">
+ <header class="inner">
+ <a id="forkme_banner" href="https://github.com/ConsoleKit2/ConsoleKit2">View on GitHub</a>
+
+ <h1 id="project_title">Consolekit2</h1>
+ <h2 id="project_tagline">ConsoleKit2 is a framework for defining and tracking users, login sessions, and seats.</h2>
+
+ <section id="downloads">
+ <a class="zip_download_link" href="https://github.com/ConsoleKit2/ConsoleKit2/zipball/master">Download this project as a .zip file</a>
+ <a class="tar_download_link" href="https://github.com/ConsoleKit2/ConsoleKit2/tarball/master">Download this project as a tar.gz file</a>
+ </section>
+ </header>
+ </div>
+
+ <!-- MAIN CONTENT -->
+ <div id="main_content_wrap" class="outer">
+ <section id="main_content" class="inner">
+ <h1>
+<a name="consolekit2-090-documentation" class="anchor" href="#consolekit2-090-documentation"><span class="octicon octicon-link"></span></a>ConsoleKit2 0.9.0 Documentation</h1>
+
+<p><a href="https://scan.coverity.com/projects/3199"><img src="https://scan.coverity.com/projects/3199/badge.svg" alt="Coverity Scan Build Status"></a></p>
+
+<p><a href="https://www.transifex.com/projects/p/consolekit2/">Help translate ConsoleKit2</a></p>
+
+<h2>
+<a name="about" class="anchor" href="#about"><span class="octicon octicon-link"></span></a>About</h2>
+
+<p>ConsoleKit2 is a framework for keeping track of the various users, sessions,
+and seats present on a system. It provides a mechanism for software to react
+to changes of any of these items or of any of the metadata associated with
+them. ConsoleKit2 also allows fast switching between open sessions on the
+computer.</p>
+
+<p>ConsoleKit2 is a fork of ConsoleKit since it is no longer maintained.
+Information on ConsoleKit can be found at:
+<a href="http://freedesktop.org/wiki/Software/ConsoleKit/">http://freedesktop.org/wiki/Software/ConsoleKit/</a> William Jon McCann was the
+primary maintainer of ConsoleKit and most of this documentation was written by
+him for ConsoleKit. It has been adapted for ConsoleKit2.</p>
+
+<h2>
+<a name="defining-the-problem" class="anchor" href="#defining-the-problem"><span class="octicon octicon-link"></span></a>Defining the Problem</h2>
+
+<p>A simple example is two users logging into a computer at the same time. They
+may be sharing the same set of hardware for their graphical session, such as
+the monitor, keyboard, and mouse. ConsoleKit2 will keep track of those
+resouces and which session is active and should have use of that hardware at a
+given time.</p>
+
+<h2>
+<a name="relevant-art" class="anchor" href="#relevant-art"><span class="octicon octicon-link"></span></a>Relevant art</h2>
+
+<p>Logind is a Linux daemon providing the similar functionality to ConsoleKit2.</p>
+
+<h2>
+<a name="chapter2terminology" class="anchor" href="#chapter2terminology"><span class="octicon octicon-link"></span></a>Chapter 2. Terminology</h2>
+
+<h2>
+<a name="session" class="anchor" href="#session"><span class="octicon octicon-link"></span></a>Session</h2>
+
+<p>A session is a collection of all processes that share knowledge of a secret.
+In the typical (or ideal) case, these processes all originate from a single
+common ancestor.</p>
+
+<p>As an implementation detail, for now, this secret should be stored in the
+process environment by the session leader under the name XDG_SESSION_COOKIE.
+When and if we are able to take advantage of a mechanism in the underlying
+system to store session registration information - we will. However, such a
+mechanism is not known at the present time.</p>
+
+<p>Using an environment variable does have certain advantages. For one, it is
+quite easy for a process to opt-out of a Session by simply unsetting the
+XDG_SESSION_COOKIE variable.</p>
+
+<p>Limitations of using an environment variable implementation include not being
+able to strictly limit visibility of the secret to a particular process
+ancestry. So, it is not possible to enforce session boundaries other than on a
+per-user basis. For example, we don't yet have a way to prevent a process from
+moving between sessions owned by the same user.</p>
+
+<h2>
+<a name="session-leader" class="anchor" href="#session-leader"><span class="octicon octicon-link"></span></a>Session leader</h2>
+
+<p>The session leader is the process that requests that a new session be opened.
+It does this by connecting to the D-Bus system bus and using either
+org.freedesktop.ConsoleKit.Manager.OpenSession() or
+org.freedesktop.ConsoleKit.Manager.OpenSessionWithParameters(). The session
+that it registers will remain open until the connection to the system bus is
+lost or it calls org.freedesktop.ConsoleKit.Manager.CloseSession().</p>
+
+<p>The session leader is the only process for which CloseSession() will be
+allowed.</p>
+
+<h2>
+<a name="seat" class="anchor" href="#seat"><span class="octicon octicon-link"></span></a>Seat</h2>
+
+<p>A seat is a collection of sessions and a set of hardware (usually at least a
+keyboard and mouse). Only one session may be active on a seat at a time.</p>
+
+<p>At the present time, all Sessions that are considered "local" to a system will
+be added the the first Seat and every other Session will be added to its own
+Seat.</p>
+
+<p>True, hardware, multi-seat capabilities will be added in a later release.</p>
+
+<h2>
+<a name="chapter3design" class="anchor" href="#chapter3design"><span class="octicon octicon-link"></span></a>Chapter 3. Design</h2>
+
+<h2>
+<a name="session-lifecycle" class="anchor" href="#session-lifecycle"><span class="octicon octicon-link"></span></a>Session Lifecycle</h2>
+
+<p>The session leader process is responsible for asking ConsoleKit2 to open a new
+session. In this respect, it is similar to the traditional POSIX user login
+accounting framework. In the typical case, the session leader is either an
+immediate descendant of a login manager or the login manager itself. The
+leader makes a connection to the D-Bus system bus and asks ConsoleKit2 to open
+a session. There are two methods available for opening a session:
+org.freedesktop.ConsoleKit.Manager.OpenSession() and
+org.freedesktop.ConsoleKit.Manager.OpenSessionWithParameters().</p>
+
+<p>If the operation succeeds, a secret cookie will be returned to the session
+leader. The session leader should store this secret in the environment as
+XDG_SESSION_COOKIE so that it may be shared with its child processes.</p>
+
+<p>At this point the session will be registered with ConsoleKit2 and a particular
+set of information about the session will be stored along with it.</p>
+
+<p>ConsoleKit2 will decide, based on the information associated with the session,
+what Seat the session will be added to.</p>
+
+<p>It will also be determined, based on the same set of information, whether the
+Session will control the hardware associated with the Seat. In other words,
+whether the Session will be active for the Seat it is attached to. The exact
+mechanism for this determination depends on the type of Seat and the
+capabilities of the host system.</p>
+
+<p>The Session will remain open until the Session Leader disconnects from the
+D-Bus system bus or calls org.freedesktop.ConsoleKit.Manager.CloseSession().
+The session will be removed from its Seat, and deregistered.</p>
+
+<h2>
+<a name="expected-usage" class="anchor" href="#expected-usage"><span class="octicon octicon-link"></span></a>Expected Usage</h2>
+
+<p>Use of this service will usually follow one of the following patterns:</p>
+
+<h3>
+<a name="text-login-manager" class="anchor" href="#text-login-manager"><span class="octicon octicon-link"></span></a>Text Login Manager</h3>
+
+<p>This pattern operates as the Session Leader for a new Session. This pattern
+needs:</p>
+
+<ol>
+<li>To open a new Session.</li>
+<li>To set properties for the Session.</li>
+<li>To maintain a connection to the D-Bus system bus.</li>
+<li>To close the Session at logout.</li>
+</ol>
+
+<h3>
+<a name="graphical-login-manager" class="anchor" href="#graphical-login-manager"><span class="octicon octicon-link"></span></a>Graphical Login Manager</h3>
+
+<p>In addition to the requirements for the Text Graphical Login Manager, this
+pattern is typically used to show information about currently open sessions.
+It needs:</p>
+
+<ol>
+<li>To determine which Seat it is running on.</li>
+<li>To know if the current seat supports session switching.</li>
+<li>A list of all sessions on the current Seat.</li>
+<li>To know which session is active for the current Seat.</li>
+<li>To know when the session active state changes.</li>
+<li>To know when sessions are added or removed.</li>
+<li>Access to the metadata for any open Session.</li>
+</ol>
+
+<h3>
+<a name="system-daemon" class="anchor" href="#system-daemon"><span class="octicon octicon-link"></span></a>System Daemon</h3>
+
+<p>This is generally a daemon process running outside of a user session as a
+special user. This pattern needs:</p>
+
+<ol>
+<li>To know if any user sessions are open.</li>
+<li>To know if the system is currently being used.</li>
+</ol>
+
+<h3>
+<a name="hardware-abstraction-layer" class="anchor" href="#hardware-abstraction-layer"><span class="octicon octicon-link"></span></a>Hardware Abstraction Layer</h3>
+
+<p>This is a special case of System Daemon that provides catalogs and control
+mechanisms for hardware devices. In addition to the requirements of System
+Daemon, this pattern needs:</p>
+
+<ol>
+<li>To determine what hardware is associated with a Seat.</li>
+<li>To determine what Session is active and inactive on a particular Seat.</li>
+<li>To know when the session active state changes.</li>
+<li>To determine what Session a process belongs to.</li>
+</ol>
+
+<h3>
+<a name="fast-user-switching-agent" class="anchor" href="#fast-user-switching-agent"><span class="octicon octicon-link"></span></a>Fast User Switching Agent</h3>
+
+<p>This is related to the Graphical Login Manager and provides a shortcut to
+similar functionality. It is usually a tool available in the user session that
+allows one to quickly switch to another user session. This pattern needs:</p>
+
+<ol>
+<li>To determine which session it is running in.</li>
+<li>To determine which Seat it is running on.</li>
+<li>To know if the current seat supports session switching.</li>
+<li>A list of all sessions on the current Seat.</li>
+<li>Which session is active for the current Seat.</li>
+<li>To know when the session active state changes.</li>
+<li>Access to the metadata for any open Session.</li>
+<li>To know when sessions are added or removed.</li>
+</ol>
+
+<h3>
+<a name="session-daemon-aka-policy-agent" class="anchor" href="#session-daemon-aka-policy-agent"><span class="octicon octicon-link"></span></a>Session Daemon (aka Policy Agent)</h3>
+
+<p>This is typically a daemon running in a user session that acts on policy only
+when the session is active. This pattern needs:</p>
+
+<ol>
+<li>To determine which session it is running in.</li>
+<li>To know when the session active state changes.</li>
+</ol>
+
+<h3>
+<a name="session-application" class="anchor" href="#session-application"><span class="octicon octicon-link"></span></a>Session Application</h3>
+
+<p>This is typically an application running in a user session that may alter its
+behavior when the session active state changes. This pattern needs:</p>
+
+<ol>
+<li>To determine which session it is running in.</li>
+<li>To know when the session active state changes.</li>
+</ol>
+
+<h1>
+<a name="partiireference" class="anchor" href="#partiireference"><span class="octicon octicon-link"></span></a>Part II. Reference</h1>
+
+<h1>
+<a name="d-bus-api-reference" class="anchor" href="#d-bus-api-reference"><span class="octicon octicon-link"></span></a>D-Bus API Reference</h1>
+
+<hr>
+
+<p>ConsoleKit2 provides a D-Bus API for programs to obtain information about the
+users, sessions, and seats that are present on a system.</p>
+
+<p>Please see the other sections of this manual for an introduction to these
+concepts.</p>
+
+<p>This API is not yet stable and is likely to change in the future.</p>
+
+<p><strong>Table of Contents</strong></p>
+
+<p>org.freedesktop.ConsoleKit.Manager — Manager interface</p>
+
+<p>org.freedesktop.ConsoleKit.Seat — Seat interface</p>
+
+<p>org.freedesktop.ConsoleKit.Session — Session interface</p>
+
+<h2>
+<a name="name" class="anchor" href="#name"><span class="octicon octicon-link"></span></a>Name</h2>
+
+<p>org.freedesktop.ConsoleKit.Manager — Manager interface</p>
+
+<h2>
+<a name="methods" class="anchor" href="#methods"><span class="octicon octicon-link"></span></a>Methods</h2>
+
+<pre><code>Restart()
+CanRestart(out'b'can_restart)
+Stop()
+CanStop(out'b'can_stop)
+OpenSession(out's'cookie)
+OpenSessionWithParameters(in'a(sv)'parameters,
+out's'cookie)
+CloseSession(in's'cookie,
+out'b'result)
+GetSeats(out'ao'seats)
+GetSessions(out'ao'sessions)
+GetSessionForCookie(in's'cookie,
+out'o'ssid)
+GetSessionForUnixProcess(in'u'pid,
+out'o'ssid)
+GetCurrentSession(out'o'ssid)
+GetSessionsForUnixUser(in'u'uid,
+out'ao'sessions)
+GetSessionsForUser(in'u'uid,
+out'ao'sessions)
+GetSystemIdleHint(out'b'idle_hint)
+GetSystemIdleSinceHint(out's'iso8601_datetime)
+</code></pre>
+
+<h2>
+<a name="signals" class="anchor" href="#signals"><span class="octicon octicon-link"></span></a>Signals</h2>
+
+<pre><code>SeatAdded('o'sid)
+SeatRemoved('o'sid)
+SystemIdleHintChanged('b'hint)
+</code></pre>
+
+<h2>
+<a name="implemented-interfaces" class="anchor" href="#implemented-interfaces"><span class="octicon octicon-link"></span></a>Implemented Interfaces</h2>
+
+<p>Objects implementing org.freedesktop.ConsoleKit.Manager also implements
+org.freedesktop.DBus.Introspectable, org.freedesktop.DBus.Properties</p>
+
+<h2>
+<a name="description" class="anchor" href="#description"><span class="octicon octicon-link"></span></a>Description</h2>
+
+<h2>
+<a name="details" class="anchor" href="#details"><span class="octicon octicon-link"></span></a>Details</h2>
+
+<h3>
+<a name="restart-" class="anchor" href="#restart-"><span class="octicon octicon-link"></span></a>Restart ()</h3>
+
+<pre><code>Restart ()
+</code></pre>
+
+<p>This method initiates a request to restart (ie. reboot) the computer system.</p>
+
+<h3>
+<a name="canrestart-" class="anchor" href="#canrestart-"><span class="octicon octicon-link"></span></a>CanRestart ()</h3>
+
+<pre><code>CanRestart (out'b'can_restart)
+</code></pre>
+
+<p><em><code>can_restart</code></em>:</p>
+
+<h3>
+<a name="stop-" class="anchor" href="#stop-"><span class="octicon octicon-link"></span></a>Stop ()</h3>
+
+<pre><code>Stop ()
+</code></pre>
+
+<p>This method initiates a request to stop (ie. shutdown) the computer system.</p>
+
+<h3>
+<a name="canstop-" class="anchor" href="#canstop-"><span class="octicon octicon-link"></span></a>CanStop ()</h3>
+
+<pre><code>CanStop (out'b'can_stop)
+</code></pre>
+
+<p><em><code>can_stop</code></em>:</p>
+
+<h3>
+<a name="opensession-" class="anchor" href="#opensession-"><span class="octicon octicon-link"></span></a>OpenSession ()</h3>
+
+<pre><code>OpenSession (out's'cookie)
+</code></pre>
+
+<p>This method requests that a new Session be created for the calling process.
+The properties of this new Session are set automatically from information
+collected about the calling process.</p>
+
+<p>This new session exists until the calling process disconnects from the system
+bus or calls <code>CloseSession()</code>.</p>
+
+<p>It is the responsibility of the calling process to set the environment
+variable XDG_SESSION_COOKIE to the value of the returned cookie. This cookie
+should only be made available to child processes of the caller so that they
+may be identified as members of this session.</p>
+
+<p>See this simple example:</p>
+
+<pre><code> DBusError error;
+ DBusMessage *message;
+ DBusMessage *reply;
+
+ message = dbus_message_new_method_call ("org.freedesktop.ConsoleKit",
+ "/org/freedesktop/ConsoleKit/Manager",
+ "org.freedesktop.ConsoleKit.Manager",
+ "OpenSession");
+ if (message == NULL) {
+ goto out;
+ }
+
+ dbus_error_init (&amp;error);
+ reply = dbus_connection_send_with_reply_and_block (connector-&gt;connection,
+ message,
+ -1,
+ &amp;error);
+ if (reply == NULL) {
+ goto out;
+ }
+
+ dbus_error_init (&amp;error);
+ if (! dbus_message_get_args (reply,
+ &amp;error,
+ DBUS_TYPE_STRING, &amp;cookie,
+ DBUS_TYPE_INVALID)) {
+ goto out;
+ }
+</code></pre>
+
+<p><em><code>cookie</code></em>:</p>
+
+<pre><code>The secret cookie that is used to identify the new session
+</code></pre>
+
+<p>See also: <code>OpenSessionWithParameters()</code></p>
+
+<h3>
+<a name="opensessionwithparameters-" class="anchor" href="#opensessionwithparameters-"><span class="octicon octicon-link"></span></a>OpenSessionWithParameters ()</h3>
+
+<pre><code>OpenSessionWithParameters (in'a(sv)'parameters,
+out's'cookie)
+</code></pre>
+
+<p>This method requests that a new Session be created for the calling process.
+The properties of this new Session are from the parameters provided.</p>
+
+<p>This new session exists until the calling process disconnects from the system
+bus or calls <code>CloseSession()</code>.</p>
+
+<p>It is the responsibility of the calling process to set the environment
+variable XDG_SESSION_COOKIE to the value of the returned cookie. This cookie
+should only be made available to child processes of the caller so that they
+may be identified as members of this session.</p>
+
+<p>See the Session properties for a list of valid parameters.</p>
+
+<p><em><code>parameters</code></em>:</p>
+
+<pre><code>An array of sets of property names and values
+</code></pre>
+
+<p><em><code>cookie</code></em>:</p>
+
+<pre><code>The secret cookie that is used to identify the new session
+</code></pre>
+
+<h3>
+<a name="permissions" class="anchor" href="#permissions"><span class="octicon octicon-link"></span></a>Permissions</h3>
+
+<p>This method is restricted to privileged users by D-Bus policy.</p>
+
+<p>See also: org.freedesktop.ConsoleKit.Session</p>
+
+<h3>
+<a name="closesession-" class="anchor" href="#closesession-"><span class="octicon octicon-link"></span></a>CloseSession ()</h3>
+
+<pre><code>CloseSession (in's'cookie,
+out'b'result)
+</code></pre>
+
+<p>This method is used to close the session identified by the supplied cookie.</p>
+
+<p>The session can only be closed by the same process that opened the session.</p>
+
+<p><em><code>cookie</code></em>:</p>
+
+<pre><code>The secret cookie that is used to identify the session
+</code></pre>
+
+<p><em><code>result</code></em>:</p>
+
+<pre><code>Whether the session was successfully closed
+</code></pre>
+
+<h3>
+<a name="getseats-" class="anchor" href="#getseats-"><span class="octicon octicon-link"></span></a>GetSeats ()</h3>
+
+<pre><code>GetSeats (out'ao'seats)
+</code></pre>
+
+<p>This gets a list of all the Seats that are currently present on the system.</p>
+
+<p>Each Seat ID is an D-Bus object path for the object that implements the Seat
+interface.</p>
+
+<p><em><code>seats</code></em>:</p>
+
+<pre><code>an array of Seat IDs
+</code></pre>
+
+<p>See also: org.freedesktop.ConsoleKit.Seat</p>
+
+<h3>
+<a name="getsessions-" class="anchor" href="#getsessions-"><span class="octicon octicon-link"></span></a>GetSessions ()</h3>
+
+<pre><code>GetSessions (out'ao'sessions)
+</code></pre>
+
+<p>This gets a list of all the Sessions that are currently present on the system.</p>
+
+<p>Each Session ID is an D-Bus object path for the object that implements the
+Session interface.</p>
+
+<p><em><code>sessions</code></em>:</p>
+
+<pre><code>an array of Session IDs
+</code></pre>
+
+<p>See also: org.freedesktop.ConsoleKit.Session</p>
+
+<h3>
+<a name="getsessionforcookie-" class="anchor" href="#getsessionforcookie-"><span class="octicon octicon-link"></span></a>GetSessionForCookie ()</h3>
+
+<pre><code>GetSessionForCookie (in's'cookie,
+out'o'ssid)
+</code></pre>
+
+<p>Returns the session ID that is associated with the specified cookie.</p>
+
+<p><em><code>cookie</code></em>:</p>
+
+<pre><code>The secret cookie that is used to identify the session
+</code></pre>
+
+<p><em><code>ssid</code></em>:</p>
+
+<pre><code>The object identifier for the current session
+</code></pre>
+
+<h3>
+<a name="getsessionforunixprocess-" class="anchor" href="#getsessionforunixprocess-"><span class="octicon octicon-link"></span></a>GetSessionForUnixProcess ()</h3>
+
+<pre><code>GetSessionForUnixProcess (in'u'pid,
+out'o'ssid)
+</code></pre>
+
+<p>Attempts to determine the session ID for the specified POSIX process ID (pid).</p>
+
+<p><em><code>pid</code></em>:</p>
+
+<pre><code>The POSIX process ID
+</code></pre>
+
+<p><em><code>ssid</code></em>:</p>
+
+<pre><code>The object identifier for the current session
+</code></pre>
+
+<h3>
+<a name="getcurrentsession-" class="anchor" href="#getcurrentsession-"><span class="octicon octicon-link"></span></a>GetCurrentSession ()</h3>
+
+<pre><code>GetCurrentSession (out'o'ssid)
+</code></pre>
+
+<p>Attempts to determine the session ID that the caller belongs to.</p>
+
+<p>See this example of using dbus-send:</p>
+
+<pre><code> dbus-send --system --dest=org.freedesktop.ConsoleKit \
+ --type=method_call --print-reply --reply-timeout=2000 \
+ /org/freedesktop/ConsoleKit/Manager \
+ org.freedesktop.ConsoleKit.Manager.GetCurrentSession
+</code></pre>
+
+<p><em><code>ssid</code></em>:</p>
+
+<pre><code>The object identifier for the current session
+</code></pre>
+
+<h3>
+<a name="getsessionsforunixuser-" class="anchor" href="#getsessionsforunixuser-"><span class="octicon octicon-link"></span></a>GetSessionsForUnixUser ()</h3>
+
+<pre><code>GetSessionsForUnixUser (in'u'uid,
+out'ao'sessions)
+</code></pre>
+
+<p>This gets a list of all the Sessions that are currently open for the specified
+user.</p>
+
+<p>Each Session ID is an D-Bus object path for the object that implements the
+Session interface.</p>
+
+<p><em><code>uid</code></em>:</p>
+
+<pre><code>POSIX User identification
+</code></pre>
+
+<p><em><code>sessions</code></em>:</p>
+
+<pre><code>an array of Session IDs
+</code></pre>
+
+<h3>
+<a name="getsessionsforuser-" class="anchor" href="#getsessionsforuser-"><span class="octicon octicon-link"></span></a>GetSessionsForUser ()</h3>
+
+<pre><code>GetSessionsForUser (in'u'uid,
+out'ao'sessions)
+</code></pre>
+
+<p>This gets a list of all the Sessions that are currently open for the specified
+user.</p>
+
+<p>Each Session ID is an D-Bus object path for the object that implements the
+Session interface.</p>
+
+<p><em><code>uid</code></em>:</p>
+
+<pre><code>User identification
+</code></pre>
+
+<p><em><code>sessions</code></em>:</p>
+
+<pre><code>an array of Session IDs
+</code></pre>
+
+<h3>
+<a name="warning" class="anchor" href="#warning"><span class="octicon octicon-link"></span></a>Warning</h3>
+
+<p><code>GetSessionsForUser</code> is deprecated since version 0.1.3 and should not be used
+in newly-written code. Use <code>GetSessionsForUnixUser</code> instead.</p>
+
+<h3>
+<a name="getsystemidlehint-" class="anchor" href="#getsystemidlehint-"><span class="octicon octicon-link"></span></a>GetSystemIdleHint ()</h3>
+
+<pre><code>GetSystemIdleHint (out'b'idle_hint)
+</code></pre>
+
+<p>Returns TRUE if the <code>idle-hint</code> property of every open session is TRUE or if
+there are no open sessions.</p>
+
+<p><em><code>idle_hint</code></em>:</p>
+
+<pre><code>The value of the system-idle-hint
+</code></pre>
+
+<h3>
+<a name="getsystemidlesincehint-" class="anchor" href="#getsystemidlesincehint-"><span class="octicon octicon-link"></span></a>GetSystemIdleSinceHint ()</h3>
+
+<pre><code>GetSystemIdleSinceHint (out's'iso8601_datetime)
+</code></pre>
+
+<p>Returns an ISO 8601 date-time string that corresponds to the time of the last
+change of the system-idle-hint.</p>
+
+<p><em><code>iso8601_datetime</code></em>:</p>
+
+<pre><code>An ISO 8601 format date-type string
+</code></pre>
+
+<h2>
+<a name="signal-details" class="anchor" href="#signal-details"><span class="octicon octicon-link"></span></a>Signal Details</h2>
+
+<h3>
+<a name="the-seatadded-signal" class="anchor" href="#the-seatadded-signal"><span class="octicon octicon-link"></span></a>The SeatAdded signal</h3>
+
+<pre><code>SeatAdded ('o'sid)
+</code></pre>
+
+<p>Emitted when a Seat has been added to the system.</p>
+
+<p><em><code>sid</code></em>:</p>
+
+<pre><code>The Seat ID for the added seat
+</code></pre>
+
+<h3>
+<a name="the-seatremoved-signal" class="anchor" href="#the-seatremoved-signal"><span class="octicon octicon-link"></span></a>The SeatRemoved signal</h3>
+
+<pre><code>SeatRemoved ('o'sid)
+</code></pre>
+
+<p>Emitted when a Seat has been removed from the system.</p>
+
+<p><em><code>sid</code></em>:</p>
+
+<pre><code>The Seat ID for the removed seat
+</code></pre>
+
+<h3>
+<a name="the-systemidlehintchanged-signal" class="anchor" href="#the-systemidlehintchanged-signal"><span class="octicon octicon-link"></span></a>The SystemIdleHintChanged signal</h3>
+
+<pre><code>SystemIdleHintChanged ('b'hint)
+</code></pre>
+
+<p>Emitted when the value of the system-idle-hint has changed.</p>
+
+<p><em><code>hint</code></em>:</p>
+
+<pre><code>The value of the system-idle-hint
+</code></pre>
+
+<hr>
+
+<h2>
+<a name="name-1" class="anchor" href="#name-1"><span class="octicon octicon-link"></span></a>Name</h2>
+
+<p>org.freedesktop.ConsoleKit.Seat — Seat interface</p>
+
+<h2>
+<a name="methods-1" class="anchor" href="#methods-1"><span class="octicon octicon-link"></span></a>Methods</h2>
+
+<pre><code>GetId(out'o'sid)
+GetSessions(out'ao'sessions)
+GetDevices(out'a(ss)'devices)
+GetActiveSession(out'o'ssid)
+CanActivateSessions(out'b'can_activate)
+ActivateSession(in'o'ssid)
+</code></pre>
+
+<h2>
+<a name="signals-1" class="anchor" href="#signals-1"><span class="octicon octicon-link"></span></a>Signals</h2>
+
+<pre><code>ActiveSessionChanged('o'ssid)
+SessionAdded('o'ssid)
+SessionRemoved('o'ssid)
+DeviceAdded('(ss)'device)
+DeviceRemoved('(ss)'device)
+</code></pre>
+
+<h2>
+<a name="implemented-interfaces-1" class="anchor" href="#implemented-interfaces-1"><span class="octicon octicon-link"></span></a>Implemented Interfaces</h2>
+
+<p>Objects implementing org.freedesktop.ConsoleKit.Seat also implements
+org.freedesktop.DBus.Introspectable, org.freedesktop.DBus.Properties</p>
+
+<h2>
+<a name="description-1" class="anchor" href="#description-1"><span class="octicon octicon-link"></span></a>Description</h2>
+
+<p>A seat is a collection of sessions and a set of hardware (usually at least a
+keyboard and mouse). Only one session may be active on a seat at a time.</p>
+
+<h2>
+<a name="details-1" class="anchor" href="#details-1"><span class="octicon octicon-link"></span></a>Details</h2>
+
+<h3>
+<a name="getid-" class="anchor" href="#getid-"><span class="octicon octicon-link"></span></a>GetId ()</h3>
+
+<pre><code>GetId (out'o'sid)
+</code></pre>
+
+<p>Returns the ID for Seat.</p>
+
+<p><em><code>sid</code></em>:</p>
+
+<pre><code>Seat ID
+</code></pre>
+
+<h3>
+<a name="getsessions--1" class="anchor" href="#getsessions--1"><span class="octicon octicon-link"></span></a>GetSessions ()</h3>
+
+<pre><code>GetSessions (out'ao'sessions)
+</code></pre>
+
+<p>This gets a list of all the Sessions that are currently attached to this seat.</p>
+
+<p>Each Session ID is an D-Bus object path for the object that implements the
+Session interface.</p>
+
+<p><em><code>sessions</code></em>:</p>
+
+<pre><code>an array of Session IDs
+</code></pre>
+
+<h3>
+<a name="getdevices-" class="anchor" href="#getdevices-"><span class="octicon octicon-link"></span></a>GetDevices ()</h3>
+
+<pre><code>GetDevices (out'a(ss)'devices)
+</code></pre>
+
+<p>This gets a list of all the devices that are currently associated with this
+seat.</p>
+
+<p>Each device is an D-Bus structure that represents the device type and the
+device id.</p>
+
+<p><em><code>devices</code></em>:</p>
+
+<pre><code>an array of devices
+</code></pre>
+
+<h3>
+<a name="getactivesession-" class="anchor" href="#getactivesession-"><span class="octicon octicon-link"></span></a>GetActiveSession ()</h3>
+
+<pre><code>GetActiveSession (out'o'ssid)
+</code></pre>
+
+<p>Gets the Session ID that is currently active on this Seat.</p>
+
+<p>Returns NULL if there is no active session.</p>
+
+<p><em><code>ssid</code></em>:</p>
+
+<pre><code>Session ID
+</code></pre>
+
+<h3>
+<a name="canactivatesessions-" class="anchor" href="#canactivatesessions-"><span class="octicon octicon-link"></span></a>CanActivateSessions ()</h3>
+
+<pre><code>CanActivateSessions (out'b'can_activate)
+</code></pre>
+
+<p>Used to determine whether the seat supports session activation.</p>
+
+<p><em><code>can_activate</code></em>:</p>
+
+<pre><code>TRUE if seat supports session activation
+</code></pre>
+
+<h3>
+<a name="activatesession-" class="anchor" href="#activatesession-"><span class="octicon octicon-link"></span></a>ActivateSession ()</h3>
+
+<pre><code>ActivateSession (in'o'ssid)
+</code></pre>
+
+<p>Attempt to activate the specified session. In most cases, if successful, this
+will cause the session to become visible and take control of the hardware that
+is associated with this seat.</p>
+
+<p><em><code>ssid</code></em>:</p>
+
+<pre><code>Session ID
+</code></pre>
+
+<p>See also: <code>Activate()</code></p>
+
+<h2>
+<a name="signal-details-1" class="anchor" href="#signal-details-1"><span class="octicon octicon-link"></span></a>Signal Details</h2>
+
+<h3>
+<a name="the-activesessionchanged-signal" class="anchor" href="#the-activesessionchanged-signal"><span class="octicon octicon-link"></span></a>The ActiveSessionChanged signal</h3>
+
+<pre><code>ActiveSessionChanged ('o'ssid)
+</code></pre>
+
+<p>Emitted when the active session has changed.</p>
+
+<p><em><code>ssid</code></em>:</p>
+
+<pre><code>Session ID
+</code></pre>
+
+<h3>
+<a name="the-sessionadded-signal" class="anchor" href="#the-sessionadded-signal"><span class="octicon octicon-link"></span></a>The SessionAdded signal</h3>
+
+<pre><code>SessionAdded ('o'ssid)
+</code></pre>
+
+<p>Emitted when a session has been added to the seat.</p>
+
+<p><em><code>ssid</code></em>:</p>
+
+<pre><code>Session ID
+</code></pre>
+
+<h3>
+<a name="the-sessionremoved-signal" class="anchor" href="#the-sessionremoved-signal"><span class="octicon octicon-link"></span></a>The SessionRemoved signal</h3>
+
+<pre><code>SessionRemoved ('o'ssid)
+</code></pre>
+
+<p>Emitted when a session has been removed from the seat.</p>
+
+<p><em><code>ssid</code></em>:</p>
+
+<pre><code>Session ID
+</code></pre>
+
+<h3>
+<a name="the-deviceadded-signal" class="anchor" href="#the-deviceadded-signal"><span class="octicon octicon-link"></span></a>The DeviceAdded signal</h3>
+
+<pre><code>DeviceAdded ('(ss)'device)
+</code></pre>
+
+<p>Emitted when a device has been associated with the seat.</p>
+
+<p><em><code>device</code></em>:</p>
+
+<pre><code>Device structure
+</code></pre>
+
+<h3>
+<a name="the-deviceremoved-signal" class="anchor" href="#the-deviceremoved-signal"><span class="octicon octicon-link"></span></a>The DeviceRemoved signal</h3>
+
+<pre><code>DeviceRemoved ('(ss)'device)
+</code></pre>
+
+<p>Emitted when a device has been dissociated from the seat.</p>
+
+<p><em><code>device</code></em>:</p>
+
+<pre><code>Device structure
+</code></pre>
+
+<hr>
+
+<h2>
+<a name="name-2" class="anchor" href="#name-2"><span class="octicon octicon-link"></span></a>Name</h2>
+
+<p>org.freedesktop.ConsoleKit.Session — Session interface</p>
+
+<h2>
+<a name="methods-2" class="anchor" href="#methods-2"><span class="octicon octicon-link"></span></a>Methods</h2>
+
+<pre><code>GetId(out'o'ssid)
+GetSeatId(out'o'sid)
+GetSessionType(out's'type)
+GetUser(out'u'uid)
+GetUnixUser(out'u'uid)
+GetX11Display(out's'display)
+GetX11DisplayDevice(out's'x11_display_device)
+GetDisplayDevice(out's'display_device)
+GetRemoteHostName(out's'remote_host_name)
+GetLoginSessionId(out's'login_session_id)
+IsActive(out'b'active)
+IsLocal(out'b'local)
+GetCreationTime(out's'iso8601_datetime)
+Activate()
+Lock()
+Unlock()
+GetIdleHint(out'b'idle_hint)
+GetIdleSinceHint(out's'iso8601_datetime)
+SetIdleHint(in'b'idle_hint)
+</code></pre>
+
+<h2>
+<a name="signals-2" class="anchor" href="#signals-2"><span class="octicon octicon-link"></span></a>Signals</h2>
+
+<pre><code>ActiveChanged('b'is_active)
+IdleHintChanged('b'hint)
+Lock()
+Unlock()
+</code></pre>
+
+<h2>
+<a name="implemented-interfaces-2" class="anchor" href="#implemented-interfaces-2"><span class="octicon octicon-link"></span></a>Implemented Interfaces</h2>
+
+<p>Objects implementing org.freedesktop.ConsoleKit.Session also implements
+org.freedesktop.DBus.Introspectable, org.freedesktop.DBus.Properties</p>
+
+<h2>
+<a name="properties" class="anchor" href="#properties"><span class="octicon octicon-link"></span></a>Properties</h2>
+
+<pre><code>'unix-user'readwrite'u'
+'user'readwrite'u'
+'session-type'readwrite's'
+'remote-host-name'readwrite's'
+'display-device'readwrite's'
+'x11-display'readwrite's'
+'x11-display-device'readwrite's'
+'active'readwrite'b'
+'is-local'readwrite'b'
+'idle-hint'readwrite'b'
+</code></pre>
+
+<h2>
+<a name="description-2" class="anchor" href="#description-2"><span class="octicon octicon-link"></span></a>Description</h2>
+
+<p>Session objects represent and store information related to a user session.</p>
+
+<p>The properties associated with the Session specifically refer to the
+properties of the "session leader".</p>
+
+<h2>
+<a name="details-2" class="anchor" href="#details-2"><span class="octicon octicon-link"></span></a>Details</h2>
+
+<h3>
+<a name="getid--1" class="anchor" href="#getid--1"><span class="octicon octicon-link"></span></a>GetId ()</h3>
+
+<pre><code>GetId (out'o'ssid)
+</code></pre>
+
+<p>Returns the ID for Session.</p>
+
+<p><em><code>ssid</code></em>:</p>
+
+<pre><code>Session ID
+</code></pre>
+
+<h3>
+<a name="getseatid-" class="anchor" href="#getseatid-"><span class="octicon octicon-link"></span></a>GetSeatId ()</h3>
+
+<pre><code>GetSeatId (out'o'sid)
+</code></pre>
+
+<p>Returns the ID for the Seat the Session is attached to.</p>
+
+<p><em><code>sid</code></em>:</p>
+
+<pre><code>Seat ID
+</code></pre>
+
+<p>See also: org.freedesktop.ConsoleKit.Seat</p>
+
+<h3>
+<a name="getsessiontype-" class="anchor" href="#getsessiontype-"><span class="octicon octicon-link"></span></a>GetSessionType ()</h3>
+
+<pre><code>GetSessionType (out's'type)
+</code></pre>
+
+<p>Returns the type of the session.</p>
+
+<p>Warning: we haven't yet defined the allowed values for this property. It is
+probably best to avoid this until we do.</p>
+
+<p><em><code>type</code></em>:</p>
+
+<pre><code>Session type
+</code></pre>
+
+<p>See also: <code>session-type</code></p>
+
+<h3>
+<a name="getuser-" class="anchor" href="#getuser-"><span class="octicon octicon-link"></span></a>GetUser ()</h3>
+
+<pre><code>GetUser (out'u'uid)
+</code></pre>
+
+<p>Returns the user that the session belongs to.</p>
+
+<p><em><code>uid</code></em>:</p>
+
+<pre><code>User ID
+</code></pre>
+
+<h3>
+<a name="warning-1" class="anchor" href="#warning-1"><span class="octicon octicon-link"></span></a>Warning</h3>
+
+<p><code>GetUser</code> is deprecated since version 0.1.3 and should not be used in newly-
+written code. Use <code>GetUnixUser</code> instead.</p>
+
+<p>See also: <code>user</code></p>
+
+<h3>
+<a name="getunixuser-" class="anchor" href="#getunixuser-"><span class="octicon octicon-link"></span></a>GetUnixUser ()</h3>
+
+<pre><code>GetUnixUser (out'u'uid)
+</code></pre>
+
+<p>Returns the POSIX user ID that the session belongs to.</p>
+
+<p><em><code>uid</code></em>:</p>
+
+<pre><code>POSIX User ID
+</code></pre>
+
+<p>See also: <code>unix-user</code></p>
+
+<h3>
+<a name="getx11display-" class="anchor" href="#getx11display-"><span class="octicon octicon-link"></span></a>GetX11Display ()</h3>
+
+<pre><code>GetX11Display (out's'display)
+</code></pre>
+
+<p>Returns the value of the X11 DISPLAY for this session if one is present.</p>
+
+<p><em><code>display</code></em>:</p>
+
+<pre><code>The value of the X11 display
+</code></pre>
+
+<p>See also: <code>x11-display</code></p>
+
+<h3>
+<a name="getx11displaydevice-" class="anchor" href="#getx11displaydevice-"><span class="octicon octicon-link"></span></a>GetX11DisplayDevice ()</h3>
+
+<pre><code>GetX11DisplayDevice (out's'x11_display_device)
+</code></pre>
+
+<p>Returns the value of the display device (aka TTY) that the X11 display for the
+session is connected to. If there is no x11-display set then this value is
+undefined.</p>
+
+<p><em><code>x11_display_device</code></em>:</p>
+
+<pre><code>The value of the X11 display device
+</code></pre>
+
+<p>See also: <code>x11-display-device</code></p>
+
+<h3>
+<a name="getdisplaydevice-" class="anchor" href="#getdisplaydevice-"><span class="octicon octicon-link"></span></a>GetDisplayDevice ()</h3>
+
+<pre><code>GetDisplayDevice (out's'display_device)
+</code></pre>
+
+<p>Returns the value of the display device (aka TTY) that the session is
+connected to.</p>
+
+<p><em><code>display_device</code></em>:</p>
+
+<pre><code>The value of the display device
+</code></pre>
+
+<p>See also: <code>display-device</code></p>
+
+<h3>
+<a name="getremotehostname-" class="anchor" href="#getremotehostname-"><span class="octicon octicon-link"></span></a>GetRemoteHostName ()</h3>
+
+<pre><code>GetRemoteHostName (out's'remote_host_name)
+</code></pre>
+
+<p>Returns the value of the remote host name for the session.</p>
+
+<p><em><code>remote_host_name</code></em>:</p>
+
+<pre><code>The remote host name
+</code></pre>
+
+<p>See also: <code>remote-host-name</code></p>
+
+<h3>
+<a name="getloginsessionid-" class="anchor" href="#getloginsessionid-"><span class="octicon octicon-link"></span></a>GetLoginSessionId ()</h3>
+
+<pre><code>GetLoginSessionId (out's'login_session_id)
+</code></pre>
+
+<p>Returns the value of the login session ID that the underlying system uses to
+enforce session boundaries. If there is no login session ID set then this
+value is an empty string.</p>
+
+<p><em><code>login_session_id</code></em>:</p>
+
+<pre><code>The value of the native system login session ID
+</code></pre>
+
+<h3>
+<a name="isactive-" class="anchor" href="#isactive-"><span class="octicon octicon-link"></span></a>IsActive ()</h3>
+
+<pre><code>IsActive (out'b'active)
+</code></pre>
+
+<p>Returns whether the session is active on the Seat that it is attached to.</p>
+
+<p>If the session is not attached to a seat this value is undefined.</p>
+
+<p><em><code>active</code></em>:</p>
+
+<pre><code>TRUE if the session is active, otherwise FALSE
+</code></pre>
+
+<p>See also: <code>active</code></p>
+
+<h3>
+<a name="islocal-" class="anchor" href="#islocal-"><span class="octicon octicon-link"></span></a>IsLocal ()</h3>
+
+<pre><code>IsLocal (out'b'local)
+</code></pre>
+
+<p>Returns whether the session is local</p>
+
+<p>FIXME: we need to come up with a concrete definition for this value. It was
+originally used as a way to identify XDMCP sessions that originate from a
+remote system.</p>
+
+<p><em><code>local</code></em>:</p>
+
+<pre><code>TRUE if the session is local, otherwise FALSE
+</code></pre>
+
+<p>See also: <code>is-local</code></p>
+
+<h3>
+<a name="getcreationtime-" class="anchor" href="#getcreationtime-"><span class="octicon octicon-link"></span></a>GetCreationTime ()</h3>
+
+<pre><code>GetCreationTime (out's'iso8601_datetime)
+</code></pre>
+
+<p>Returns an ISO 8601 date-time string that corresponds to the time that the
+session was opened.</p>
+
+<p><em><code>iso8601_datetime</code></em>:</p>
+
+<pre><code>An ISO 8601 format date-type string
+</code></pre>
+
+<h3>
+<a name="activate-" class="anchor" href="#activate-"><span class="octicon octicon-link"></span></a>Activate ()</h3>
+
+<pre><code>Activate ()
+</code></pre>
+
+<p>Attempt to activate the this session. In most cases, if successful, this will
+cause the session to become visible and become active on the seat that it is
+attached to.</p>
+
+<p>See also: <code>Seat.ActivateSession()</code></p>
+
+<h3>
+<a name="lock-" class="anchor" href="#lock-"><span class="octicon octicon-link"></span></a>Lock ()</h3>
+
+<pre><code>Lock ()
+</code></pre>
+
+<p>This will cause a <code>Lock</code> signal to be emitted for this session.</p>
+
+<h3>
+<a name="permissions-1" class="anchor" href="#permissions-1"><span class="octicon octicon-link"></span></a>Permissions</h3>
+
+<p>This method is restricted to privileged users by D-Bus policy.</p>
+
+<p>See also: <code>Lock signal</code></p>
+
+<h3>
+<a name="unlock-" class="anchor" href="#unlock-"><span class="octicon octicon-link"></span></a>Unlock ()</h3>
+
+<pre><code>Unlock ()
+</code></pre>
+
+<p>This will cause an <code>Unlock</code> signal to be emitted for this session.</p>
+
+<p>This can be used by login managers to unlock a session before it is re-
+activated during fast-user-switching.</p>
+
+<h3>
+<a name="permissions-2" class="anchor" href="#permissions-2"><span class="octicon octicon-link"></span></a>Permissions</h3>
+
+<p>This method is restricted to privileged users by D-Bus policy.</p>
+
+<p>See also: <code>Unlock signal</code></p>
+
+<h3>
+<a name="getidlehint-" class="anchor" href="#getidlehint-"><span class="octicon octicon-link"></span></a>GetIdleHint ()</h3>
+
+<pre><code>GetIdleHint (out'b'idle_hint)
+</code></pre>
+
+<p>Gets the value of the <code>idle-hint</code> property.</p>
+
+<p><em><code>idle_hint</code></em>:</p>
+
+<pre><code>The value of the idle-hint
+</code></pre>
+
+<p>See also: <code>idle-hint</code></p>
+
+<h3>
+<a name="getidlesincehint-" class="anchor" href="#getidlesincehint-"><span class="octicon octicon-link"></span></a>GetIdleSinceHint ()</h3>
+
+<pre><code>GetIdleSinceHint (out's'iso8601_datetime)
+</code></pre>
+
+<p>Returns an ISO 8601 date-time string that corresponds to the time of the last
+change of the idle-hint.</p>
+
+<p><em><code>iso8601_datetime</code></em>:</p>
+
+<pre><code>An ISO 8601 format date-type string
+</code></pre>
+
+<h3>
+<a name="setidlehint-" class="anchor" href="#setidlehint-"><span class="octicon octicon-link"></span></a>SetIdleHint ()</h3>
+
+<pre><code>SetIdleHint (in'b'idle_hint)
+</code></pre>
+
+<p>This may be used by the session to indicate that it is idle.</p>
+
+<p>Use of this method is restricted to the user that owns the session.</p>
+
+<p><em><code>idle_hint</code></em>:</p>
+
+<pre><code>boolean value to set the idle-hint to
+</code></pre>
+
+<h2>
+<a name="signal-details-2" class="anchor" href="#signal-details-2"><span class="octicon octicon-link"></span></a>Signal Details</h2>
+
+<h3>
+<a name="the-activechanged-signal" class="anchor" href="#the-activechanged-signal"><span class="octicon octicon-link"></span></a>The ActiveChanged signal</h3>
+
+<pre><code>ActiveChanged ('b'is_active)
+</code></pre>
+
+<p>Emitted when the active property has changed.</p>
+
+<p><em><code>is_active</code></em>:</p>
+
+<pre><code>TRUE if the session is active, otherwise FALSE
+</code></pre>
+
+<h3>
+<a name="the-idlehintchanged-signal" class="anchor" href="#the-idlehintchanged-signal"><span class="octicon octicon-link"></span></a>The IdleHintChanged signal</h3>
+
+<pre><code>IdleHintChanged ('b'hint)
+</code></pre>
+
+<p>Emitted when the idle-hint property has changed.</p>
+
+<p><em><code>hint</code></em>:</p>
+
+<pre><code>the new value of idle-hint
+</code></pre>
+
+<h3>
+<a name="the-lock-signal" class="anchor" href="#the-lock-signal"><span class="octicon octicon-link"></span></a>The Lock signal</h3>
+
+<pre><code>Lock ()
+</code></pre>
+
+<p>Emitted in response to a call to the <code>Lock()</code> method.</p>
+
+<p>It is intended that the screensaver for the session should lock the screen in
+response to this signal.</p>
+
+<h3>
+<a name="the-unlock-signal" class="anchor" href="#the-unlock-signal"><span class="octicon octicon-link"></span></a>The Unlock signal</h3>
+
+<pre><code>Unlock ()
+</code></pre>
+
+<p>Emitted in response to a call to the <code>Unlock()</code> method.</p>
+
+<p>It is intended that the screensaver for the session should unlock the screen
+in response to this signal.</p>
+
+<h2>
+<a name="property-details" class="anchor" href="#property-details"><span class="octicon octicon-link"></span></a>Property Details</h2>
+
+<h3>
+<a name="the-unix-user-property" class="anchor" href="#the-unix-user-property"><span class="octicon octicon-link"></span></a>The "unix-user" property</h3>
+
+<pre><code>'unix-user'readwrite'u'
+</code></pre>
+
+<p>The user assigned to the session.</p>
+
+<h3>
+<a name="the-user-property" class="anchor" href="#the-user-property"><span class="octicon octicon-link"></span></a>The "user" property</h3>
+
+<pre><code>'user'readwrite'u'
+</code></pre>
+
+<p>The user assigned to the session.</p>
+
+<h3>
+<a name="warning-2" class="anchor" href="#warning-2"><span class="octicon octicon-link"></span></a>Warning</h3>
+
+<p><code>user</code> is deprecated since version 0.1.3 and should not be used in newly-
+written code. Use <code>unix-user</code> instead.</p>
+
+<h3>
+<a name="the-session-type-property" class="anchor" href="#the-session-type-property"><span class="octicon octicon-link"></span></a>The "session-type" property</h3>
+
+<pre><code>'session-type'readwrite's'
+</code></pre>
+
+<p>The type of the session.</p>
+
+<p>Warning: we haven't yet defined the allowed values for this property. It is
+probably best to avoid this until we do.</p>
+
+<h3>
+<a name="the-remote-host-name-property" class="anchor" href="#the-remote-host-name-property"><span class="octicon octicon-link"></span></a>The "remote-host-name" property</h3>
+
+<pre><code>'remote-host-name'readwrite's'
+</code></pre>
+
+<p>The remote host name for the session.</p>
+
+<p>This will be set in situations where the session is opened and controlled from
+a remote system.</p>
+
+<p>For example, this value will be set when the session is created from an SSH or
+XDMCP connection.</p>
+
+<h3>
+<a name="the-display-device-property" class="anchor" href="#the-display-device-property"><span class="octicon octicon-link"></span></a>The "display-device" property</h3>
+
+<pre><code>'display-device'readwrite's'
+</code></pre>
+
+<p>The display device (aka TTY) that the session is connected to.</p>
+
+<h3>
+<a name="the-x11-display-property" class="anchor" href="#the-x11-display-property"><span class="octicon octicon-link"></span></a>The "x11-display" property</h3>
+
+<pre><code>'x11-display'readwrite's'
+</code></pre>
+
+<p>Value of the X11 DISPLAY for this session if one is present.</p>
+
+<h3>
+<a name="the-x11-display-device-property" class="anchor" href="#the-x11-display-device-property"><span class="octicon octicon-link"></span></a>The "x11-display-device" property</h3>
+
+<pre><code>'x11-display-device'readwrite's'
+</code></pre>
+
+<p>The display device (aka TTY) that the X11 display for the session is connected
+to. If there is no x11-display set then this value is undefined.</p>
+
+<h3>
+<a name="the-active-property" class="anchor" href="#the-active-property"><span class="octicon octicon-link"></span></a>The "active" property</h3>
+
+<pre><code>'active'readwrite'b'
+</code></pre>
+
+<p>Whether the session is active on the Seat that it is attached to.</p>
+
+<p>If the session is not attached to a seat this value is undefined.</p>
+
+<h3>
+<a name="the-is-local-property" class="anchor" href="#the-is-local-property"><span class="octicon octicon-link"></span></a>The "is-local" property</h3>
+
+<pre><code>'is-local'readwrite'b'
+</code></pre>
+
+<p>Whether the session is local</p>
+
+<p>FIXME: we need to come up with a concrete definition for this value. It was
+originally used as a way to identify XDMCP sessions that originate from a
+remote system.</p>
+
+<h3>
+<a name="the-idle-hint-property" class="anchor" href="#the-idle-hint-property"><span class="octicon octicon-link"></span></a>The "idle-hint" property</h3>
+
+<pre><code>'idle-hint'readwrite'b'
+</code></pre>
+
+<p>This is a hint used to indicate that the session may be idle.</p>
+
+<p>For sessions with a <code>x11-display</code> set (ie. graphical sessions), it is up to
+each session to delegate the responsibility for updating this value.
+Typically, the screensaver will set this.</p>
+
+<p>However, for non-graphical sessions with a <code>display-device</code> set the Session
+object itself will periodically update this value based on the activity
+detected on the display-device itself.</p>
+
+<p>This should not be considered authoritative.</p>
+ </section>
+ </div>
+
+ <!-- FOOTER -->
+ <div id="footer_wrap" class="outer">
+ <footer class="inner">
+ <p class="copyright">Consolekit2 maintained by <a href="https://github.com/ConsoleKit2">ConsoleKit2</a></p>
+ <p>Published with <a href="http://pages.github.com">GitHub Pages</a></p>
+ </footer>
+ </div>
+
+
+
+ </body>
+</html>
diff --git a/javascripts/main.js b/javascripts/main.js
new file mode 100644
index 0000000..d8135d3
--- /dev/null
+++ b/javascripts/main.js
@@ -0,0 +1 @@
+console.log('This would be the main JS file.');
diff --git a/params.json b/params.json
new file mode 100644
index 0000000..b1469d2
--- /dev/null
+++ b/params.json
@@ -0,0 +1 @@
+{"name":"Consolekit2","tagline":"ConsoleKit2 is a framework for defining and tracking users, login sessions, and seats.","body":"# ConsoleKit2 0.9.0 Documentation\r\n\r\n[![Coverity Scan Build Status](https://scan.coverity.com/projects/3199/badge.svg)](https://scan.coverity.com/projects/3199)\r\n\r\n[Help translate ConsoleKit2](https://www.transifex.com/projects/p/consolekit2/)\r\n\r\n## About\r\n\r\nConsoleKit2 is a framework for keeping track of the various users, sessions,\r\nand seats present on a system. It provides a mechanism for software to react\r\nto changes of any of these items or of any of the metadata associated with\r\nthem. ConsoleKit2 also allows fast switching between open sessions on the\r\ncomputer.\r\n\r\nConsoleKit2 is a fork of ConsoleKit since it is no longer maintained.\r\nInformation on ConsoleKit can be found at:\r\nhttp://freedesktop.org/wiki/Software/ConsoleKit/ William Jon McCann was the\r\nprimary maintainer of ConsoleKit and most of this documentation was written by\r\nhim for ConsoleKit. It has been adapted for ConsoleKit2.\r\n\r\n## Defining the Problem\r\n\r\nA simple example is two users logging into a computer at the same time. They\r\nmay be sharing the same set of hardware for their graphical session, such as\r\nthe monitor, keyboard, and mouse. ConsoleKit2 will keep track of those\r\nresouces and which session is active and should have use of that hardware at a\r\ngiven time.\r\n\r\n## Relevant art\r\n\r\nLogind is a Linux daemon providing the similar functionality to ConsoleKit2.\r\n\r\n## Chapter 2. Terminology\r\n\r\n\r\n## Session\r\n\r\nA session is a collection of all processes that share knowledge of a secret.\r\nIn the typical (or ideal) case, these processes all originate from a single\r\ncommon ancestor.\r\n\r\nAs an implementation detail, for now, this secret should be stored in the\r\nprocess environment by the session leader under the name XDG_SESSION_COOKIE.\r\nWhen and if we are able to take advantage of a mechanism in the underlying\r\nsystem to store session registration information - we will. However, such a\r\nmechanism is not known at the present time.\r\n\r\nUsing an environment variable does have certain advantages. For one, it is\r\nquite easy for a process to opt-out of a Session by simply unsetting the\r\nXDG_SESSION_COOKIE variable.\r\n\r\nLimitations of using an environment variable implementation include not being\r\nable to strictly limit visibility of the secret to a particular process\r\nancestry. So, it is not possible to enforce session boundaries other than on a\r\nper-user basis. For example, we don't yet have a way to prevent a process from\r\nmoving between sessions owned by the same user.\r\n\r\n## Session leader\r\n\r\nThe session leader is the process that requests that a new session be opened.\r\nIt does this by connecting to the D-Bus system bus and using either\r\norg.freedesktop.ConsoleKit.Manager.OpenSession() or\r\norg.freedesktop.ConsoleKit.Manager.OpenSessionWithParameters(). The session\r\nthat it registers will remain open until the connection to the system bus is\r\nlost or it calls org.freedesktop.ConsoleKit.Manager.CloseSession().\r\n\r\nThe session leader is the only process for which CloseSession() will be\r\nallowed.\r\n\r\n## Seat\r\n\r\nA seat is a collection of sessions and a set of hardware (usually at least a\r\nkeyboard and mouse). Only one session may be active on a seat at a time.\r\n\r\nAt the present time, all Sessions that are considered \"local\" to a system will\r\nbe added the the first Seat and every other Session will be added to its own\r\nSeat.\r\n\r\nTrue, hardware, multi-seat capabilities will be added in a later release.\r\n\r\n## Chapter 3. Design\r\n\r\n\r\n\r\n## Session Lifecycle\r\n\r\nThe session leader process is responsible for asking ConsoleKit2 to open a new\r\nsession. In this respect, it is similar to the traditional POSIX user login\r\naccounting framework. In the typical case, the session leader is either an\r\nimmediate descendant of a login manager or the login manager itself. The\r\nleader makes a connection to the D-Bus system bus and asks ConsoleKit2 to open\r\na session. There are two methods available for opening a session:\r\norg.freedesktop.ConsoleKit.Manager.OpenSession() and\r\norg.freedesktop.ConsoleKit.Manager.OpenSessionWithParameters().\r\n\r\nIf the operation succeeds, a secret cookie will be returned to the session\r\nleader. The session leader should store this secret in the environment as\r\nXDG_SESSION_COOKIE so that it may be shared with its child processes.\r\n\r\nAt this point the session will be registered with ConsoleKit2 and a particular\r\nset of information about the session will be stored along with it.\r\n\r\nConsoleKit2 will decide, based on the information associated with the session,\r\nwhat Seat the session will be added to.\r\n\r\nIt will also be determined, based on the same set of information, whether the\r\nSession will control the hardware associated with the Seat. In other words,\r\nwhether the Session will be active for the Seat it is attached to. The exact\r\nmechanism for this determination depends on the type of Seat and the\r\ncapabilities of the host system.\r\n\r\nThe Session will remain open until the Session Leader disconnects from the\r\nD-Bus system bus or calls org.freedesktop.ConsoleKit.Manager.CloseSession().\r\nThe session will be removed from its Seat, and deregistered.\r\n\r\n## Expected Usage\r\n\r\nUse of this service will usually follow one of the following patterns:\r\n\r\n### Text Login Manager\r\n\r\nThis pattern operates as the Session Leader for a new Session. This pattern\r\nneeds:\r\n\r\n 1. To open a new Session.\r\n 2. To set properties for the Session.\r\n 3. To maintain a connection to the D-Bus system bus.\r\n 4. To close the Session at logout.\r\n\r\n### Graphical Login Manager\r\n\r\nIn addition to the requirements for the Text Graphical Login Manager, this\r\npattern is typically used to show information about currently open sessions.\r\nIt needs:\r\n\r\n 1. To determine which Seat it is running on.\r\n 2. To know if the current seat supports session switching.\r\n 3. A list of all sessions on the current Seat.\r\n 4. To know which session is active for the current Seat.\r\n 5. To know when the session active state changes.\r\n 6. To know when sessions are added or removed.\r\n 7. Access to the metadata for any open Session.\r\n\r\n### System Daemon\r\n\r\nThis is generally a daemon process running outside of a user session as a\r\nspecial user. This pattern needs:\r\n\r\n 1. To know if any user sessions are open.\r\n 2. To know if the system is currently being used.\r\n\r\n### Hardware Abstraction Layer\r\n\r\nThis is a special case of System Daemon that provides catalogs and control\r\nmechanisms for hardware devices. In addition to the requirements of System\r\nDaemon, this pattern needs:\r\n\r\n 1. To determine what hardware is associated with a Seat.\r\n 2. To determine what Session is active and inactive on a particular Seat.\r\n 3. To know when the session active state changes.\r\n 4. To determine what Session a process belongs to.\r\n\r\n### Fast User Switching Agent\r\n\r\nThis is related to the Graphical Login Manager and provides a shortcut to\r\nsimilar functionality. It is usually a tool available in the user session that\r\nallows one to quickly switch to another user session. This pattern needs:\r\n\r\n 1. To determine which session it is running in.\r\n 2. To determine which Seat it is running on.\r\n 3. To know if the current seat supports session switching.\r\n 4. A list of all sessions on the current Seat.\r\n 5. Which session is active for the current Seat.\r\n 6. To know when the session active state changes.\r\n 7. Access to the metadata for any open Session.\r\n 8. To know when sessions are added or removed.\r\n\r\n### Session Daemon (aka Policy Agent)\r\n\r\nThis is typically a daemon running in a user session that acts on policy only\r\nwhen the session is active. This pattern needs:\r\n\r\n 1. To determine which session it is running in.\r\n 2. To know when the session active state changes.\r\n\r\n### Session Application\r\n\r\nThis is typically an application running in a user session that may alter its\r\nbehavior when the session active state changes. This pattern needs:\r\n\r\n 1. To determine which session it is running in.\r\n 2. To know when the session active state changes.\r\n\r\n# Part II. Reference\r\n\r\n\r\n\r\n# D-Bus API Reference\r\n\r\n* * *\r\n\r\nConsoleKit2 provides a D-Bus API for programs to obtain information about the\r\nusers, sessions, and seats that are present on a system.\r\n\r\nPlease see the other sections of this manual for an introduction to these\r\nconcepts.\r\n\r\nThis API is not yet stable and is likely to change in the future.\r\n\r\n**Table of Contents**\r\n\r\norg.freedesktop.ConsoleKit.Manager — Manager interface\r\n\r\norg.freedesktop.ConsoleKit.Seat — Seat interface\r\n\r\norg.freedesktop.ConsoleKit.Session — Session interface\r\n\r\n## Name\r\n\r\norg.freedesktop.ConsoleKit.Manager — Manager interface\r\n\r\n## Methods\r\n\r\n \r\n \r\n Restart()\r\n CanRestart(out'b'can_restart)\r\n Stop()\r\n CanStop(out'b'can_stop)\r\n OpenSession(out's'cookie)\r\n OpenSessionWithParameters(in'a(sv)'parameters,\r\n out's'cookie)\r\n CloseSession(in's'cookie,\r\n out'b'result)\r\n GetSeats(out'ao'seats)\r\n GetSessions(out'ao'sessions)\r\n GetSessionForCookie(in's'cookie,\r\n out'o'ssid)\r\n GetSessionForUnixProcess(in'u'pid,\r\n out'o'ssid)\r\n GetCurrentSession(out'o'ssid)\r\n GetSessionsForUnixUser(in'u'uid,\r\n out'ao'sessions)\r\n GetSessionsForUser(in'u'uid,\r\n out'ao'sessions)\r\n GetSystemIdleHint(out'b'idle_hint)\r\n GetSystemIdleSinceHint(out's'iso8601_datetime)\r\n \r\n\r\n## Signals\r\n\r\n \r\n \r\n SeatAdded('o'sid)\r\n SeatRemoved('o'sid)\r\n SystemIdleHintChanged('b'hint)\r\n \r\n\r\n## Implemented Interfaces\r\n\r\nObjects implementing org.freedesktop.ConsoleKit.Manager also implements\r\norg.freedesktop.DBus.Introspectable, org.freedesktop.DBus.Properties\r\n\r\n## Description\r\n\r\n## Details\r\n\r\n### Restart ()\r\n\r\n \r\n \r\n Restart ()\r\n\r\nThis method initiates a request to restart (ie. reboot) the computer system.\r\n\r\n### CanRestart ()\r\n\r\n \r\n \r\n CanRestart (out'b'can_restart)\r\n\r\n_`can_restart`_:\r\n\r\n \r\n\r\n### Stop ()\r\n\r\n \r\n \r\n Stop ()\r\n\r\nThis method initiates a request to stop (ie. shutdown) the computer system.\r\n\r\n### CanStop ()\r\n\r\n \r\n \r\n CanStop (out'b'can_stop)\r\n\r\n_`can_stop`_:\r\n\r\n \r\n\r\n### OpenSession ()\r\n\r\n \r\n \r\n OpenSession (out's'cookie)\r\n\r\nThis method requests that a new Session be created for the calling process.\r\nThe properties of this new Session are set automatically from information\r\ncollected about the calling process.\r\n\r\nThis new session exists until the calling process disconnects from the system\r\nbus or calls `CloseSession()`.\r\n\r\nIt is the responsibility of the calling process to set the environment\r\nvariable XDG_SESSION_COOKIE to the value of the returned cookie. This cookie\r\nshould only be made available to child processes of the caller so that they\r\nmay be identified as members of this session.\r\n\r\nSee this simple example:\r\n\r\n \r\n \r\n \tDBusError error;\r\n \tDBusMessage *message;\r\n \tDBusMessage *reply;\r\n \r\n \tmessage = dbus_message_new_method_call (\"org.freedesktop.ConsoleKit\",\r\n \t\t\t\t\t\t\"/org/freedesktop/ConsoleKit/Manager\",\r\n \t\t\t\t\t\t\"org.freedesktop.ConsoleKit.Manager\",\r\n \t\t\t\t\t\t\"OpenSession\");\r\n \tif (message == NULL) {\r\n \t\tgoto out;\r\n \t}\r\n \r\n dbus_error_init (&error);\r\n reply = dbus_connection_send_with_reply_and_block (connector->connection,\r\n message,\r\n -1,\r\n &error);\r\n if (reply == NULL) {\r\n \t\tgoto out;\r\n }\r\n \r\n dbus_error_init (&error);\r\n if (! dbus_message_get_args (reply,\r\n &error,\r\n DBUS_TYPE_STRING, &cookie,\r\n DBUS_TYPE_INVALID)) {\r\n \t\tgoto out;\r\n }\r\n \r\n \r\n\r\n_`cookie`_:\r\n\r\n The secret cookie that is used to identify the new session\r\n\r\nSee also: `OpenSessionWithParameters()`\r\n\r\n### OpenSessionWithParameters ()\r\n\r\n \r\n \r\n OpenSessionWithParameters (in'a(sv)'parameters,\r\n out's'cookie)\r\n\r\nThis method requests that a new Session be created for the calling process.\r\nThe properties of this new Session are from the parameters provided.\r\n\r\nThis new session exists until the calling process disconnects from the system\r\nbus or calls `CloseSession()`.\r\n\r\nIt is the responsibility of the calling process to set the environment\r\nvariable XDG_SESSION_COOKIE to the value of the returned cookie. This cookie\r\nshould only be made available to child processes of the caller so that they\r\nmay be identified as members of this session.\r\n\r\nSee the Session properties for a list of valid parameters.\r\n\r\n_`parameters`_:\r\n\r\n An array of sets of property names and values\r\n_`cookie`_:\r\n\r\n The secret cookie that is used to identify the new session\r\n\r\n### Permissions\r\n\r\nThis method is restricted to privileged users by D-Bus policy.\r\n\r\nSee also: org.freedesktop.ConsoleKit.Session\r\n\r\n### CloseSession ()\r\n\r\n \r\n \r\n CloseSession (in's'cookie,\r\n out'b'result)\r\n\r\nThis method is used to close the session identified by the supplied cookie.\r\n\r\nThe session can only be closed by the same process that opened the session.\r\n\r\n_`cookie`_:\r\n\r\n The secret cookie that is used to identify the session\r\n_`result`_:\r\n\r\n Whether the session was successfully closed\r\n\r\n### GetSeats ()\r\n\r\n \r\n \r\n GetSeats (out'ao'seats)\r\n\r\nThis gets a list of all the Seats that are currently present on the system.\r\n\r\nEach Seat ID is an D-Bus object path for the object that implements the Seat\r\ninterface.\r\n\r\n_`seats`_:\r\n\r\n an array of Seat IDs\r\n\r\nSee also: org.freedesktop.ConsoleKit.Seat\r\n\r\n### GetSessions ()\r\n\r\n \r\n \r\n GetSessions (out'ao'sessions)\r\n\r\nThis gets a list of all the Sessions that are currently present on the system.\r\n\r\nEach Session ID is an D-Bus object path for the object that implements the\r\nSession interface.\r\n\r\n_`sessions`_:\r\n\r\n an array of Session IDs\r\n\r\nSee also: org.freedesktop.ConsoleKit.Session\r\n\r\n### GetSessionForCookie ()\r\n\r\n \r\n \r\n GetSessionForCookie (in's'cookie,\r\n out'o'ssid)\r\n\r\nReturns the session ID that is associated with the specified cookie.\r\n\r\n_`cookie`_:\r\n\r\n The secret cookie that is used to identify the session\r\n_`ssid`_:\r\n\r\n The object identifier for the current session\r\n\r\n### GetSessionForUnixProcess ()\r\n\r\n \r\n \r\n GetSessionForUnixProcess (in'u'pid,\r\n out'o'ssid)\r\n\r\nAttempts to determine the session ID for the specified POSIX process ID (pid).\r\n\r\n_`pid`_:\r\n\r\n The POSIX process ID\r\n_`ssid`_:\r\n\r\n The object identifier for the current session\r\n\r\n### GetCurrentSession ()\r\n\r\n \r\n \r\n GetCurrentSession (out'o'ssid)\r\n\r\nAttempts to determine the session ID that the caller belongs to.\r\n\r\nSee this example of using dbus-send:\r\n\r\n \r\n \r\n dbus-send --system --dest=org.freedesktop.ConsoleKit \\\r\n --type=method_call --print-reply --reply-timeout=2000 \\\r\n /org/freedesktop/ConsoleKit/Manager \\\r\n org.freedesktop.ConsoleKit.Manager.GetCurrentSession\r\n \r\n\r\n_`ssid`_:\r\n\r\n The object identifier for the current session\r\n\r\n### GetSessionsForUnixUser ()\r\n\r\n \r\n \r\n GetSessionsForUnixUser (in'u'uid,\r\n out'ao'sessions)\r\n\r\nThis gets a list of all the Sessions that are currently open for the specified\r\nuser.\r\n\r\nEach Session ID is an D-Bus object path for the object that implements the\r\nSession interface.\r\n\r\n_`uid`_:\r\n\r\n POSIX User identification\r\n_`sessions`_:\r\n\r\n an array of Session IDs\r\n\r\n### GetSessionsForUser ()\r\n\r\n \r\n \r\n GetSessionsForUser (in'u'uid,\r\n out'ao'sessions)\r\n\r\nThis gets a list of all the Sessions that are currently open for the specified\r\nuser.\r\n\r\nEach Session ID is an D-Bus object path for the object that implements the\r\nSession interface.\r\n\r\n_`uid`_:\r\n\r\n User identification\r\n_`sessions`_:\r\n\r\n an array of Session IDs\r\n\r\n### Warning\r\n\r\n`GetSessionsForUser` is deprecated since version 0.1.3 and should not be used\r\nin newly-written code. Use `GetSessionsForUnixUser` instead.\r\n\r\n### GetSystemIdleHint ()\r\n\r\n \r\n \r\n GetSystemIdleHint (out'b'idle_hint)\r\n\r\nReturns TRUE if the `idle-hint` property of every open session is TRUE or if\r\nthere are no open sessions.\r\n\r\n_`idle_hint`_:\r\n\r\n The value of the system-idle-hint\r\n\r\n### GetSystemIdleSinceHint ()\r\n\r\n \r\n \r\n GetSystemIdleSinceHint (out's'iso8601_datetime)\r\n\r\nReturns an ISO 8601 date-time string that corresponds to the time of the last\r\nchange of the system-idle-hint.\r\n\r\n_`iso8601_datetime`_:\r\n\r\n An ISO 8601 format date-type string\r\n\r\n## Signal Details\r\n\r\n### The SeatAdded signal\r\n\r\n \r\n \r\n SeatAdded ('o'sid)\r\n\r\nEmitted when a Seat has been added to the system.\r\n\r\n_`sid`_:\r\n\r\n The Seat ID for the added seat\r\n\r\n### The SeatRemoved signal\r\n\r\n \r\n \r\n SeatRemoved ('o'sid)\r\n\r\nEmitted when a Seat has been removed from the system.\r\n\r\n_`sid`_:\r\n\r\n The Seat ID for the removed seat\r\n\r\n### The SystemIdleHintChanged signal\r\n\r\n \r\n \r\n SystemIdleHintChanged ('b'hint)\r\n\r\nEmitted when the value of the system-idle-hint has changed.\r\n\r\n_`hint`_:\r\n\r\n The value of the system-idle-hint\r\n\r\n* * *\r\n\r\n## Name\r\n\r\norg.freedesktop.ConsoleKit.Seat — Seat interface\r\n\r\n## Methods\r\n\r\n \r\n \r\n GetId(out'o'sid)\r\n GetSessions(out'ao'sessions)\r\n GetDevices(out'a(ss)'devices)\r\n GetActiveSession(out'o'ssid)\r\n CanActivateSessions(out'b'can_activate)\r\n ActivateSession(in'o'ssid)\r\n \r\n\r\n## Signals\r\n\r\n \r\n \r\n ActiveSessionChanged('o'ssid)\r\n SessionAdded('o'ssid)\r\n SessionRemoved('o'ssid)\r\n DeviceAdded('(ss)'device)\r\n DeviceRemoved('(ss)'device)\r\n \r\n\r\n## Implemented Interfaces\r\n\r\nObjects implementing org.freedesktop.ConsoleKit.Seat also implements\r\norg.freedesktop.DBus.Introspectable, org.freedesktop.DBus.Properties\r\n\r\n## Description\r\n\r\nA seat is a collection of sessions and a set of hardware (usually at least a\r\nkeyboard and mouse). Only one session may be active on a seat at a time.\r\n\r\n## Details\r\n\r\n### GetId ()\r\n\r\n \r\n \r\n GetId (out'o'sid)\r\n\r\nReturns the ID for Seat.\r\n\r\n_`sid`_:\r\n\r\n Seat ID\r\n\r\n### GetSessions ()\r\n\r\n \r\n \r\n GetSessions (out'ao'sessions)\r\n\r\nThis gets a list of all the Sessions that are currently attached to this seat.\r\n\r\nEach Session ID is an D-Bus object path for the object that implements the\r\nSession interface.\r\n\r\n_`sessions`_:\r\n\r\n an array of Session IDs\r\n\r\n### GetDevices ()\r\n\r\n \r\n \r\n GetDevices (out'a(ss)'devices)\r\n\r\nThis gets a list of all the devices that are currently associated with this\r\nseat.\r\n\r\nEach device is an D-Bus structure that represents the device type and the\r\ndevice id.\r\n\r\n_`devices`_:\r\n\r\n an array of devices\r\n\r\n### GetActiveSession ()\r\n\r\n \r\n \r\n GetActiveSession (out'o'ssid)\r\n\r\nGets the Session ID that is currently active on this Seat.\r\n\r\nReturns NULL if there is no active session.\r\n\r\n_`ssid`_:\r\n\r\n Session ID\r\n\r\n### CanActivateSessions ()\r\n\r\n \r\n \r\n CanActivateSessions (out'b'can_activate)\r\n\r\nUsed to determine whether the seat supports session activation.\r\n\r\n_`can_activate`_:\r\n\r\n TRUE if seat supports session activation\r\n\r\n### ActivateSession ()\r\n\r\n \r\n \r\n ActivateSession (in'o'ssid)\r\n\r\nAttempt to activate the specified session. In most cases, if successful, this\r\nwill cause the session to become visible and take control of the hardware that\r\nis associated with this seat.\r\n\r\n_`ssid`_:\r\n\r\n Session ID\r\n\r\nSee also: `Activate()`\r\n\r\n## Signal Details\r\n\r\n### The ActiveSessionChanged signal\r\n\r\n \r\n \r\n ActiveSessionChanged ('o'ssid)\r\n\r\nEmitted when the active session has changed.\r\n\r\n_`ssid`_:\r\n\r\n Session ID\r\n\r\n### The SessionAdded signal\r\n\r\n \r\n \r\n SessionAdded ('o'ssid)\r\n\r\nEmitted when a session has been added to the seat.\r\n\r\n_`ssid`_:\r\n\r\n Session ID\r\n\r\n### The SessionRemoved signal\r\n\r\n \r\n \r\n SessionRemoved ('o'ssid)\r\n\r\nEmitted when a session has been removed from the seat.\r\n\r\n_`ssid`_:\r\n\r\n Session ID\r\n\r\n### The DeviceAdded signal\r\n\r\n \r\n \r\n DeviceAdded ('(ss)'device)\r\n\r\nEmitted when a device has been associated with the seat.\r\n\r\n_`device`_:\r\n\r\n Device structure\r\n\r\n### The DeviceRemoved signal\r\n\r\n \r\n \r\n DeviceRemoved ('(ss)'device)\r\n\r\nEmitted when a device has been dissociated from the seat.\r\n\r\n_`device`_:\r\n\r\n Device structure\r\n\r\n* * *\r\n\r\n## Name\r\n\r\norg.freedesktop.ConsoleKit.Session — Session interface\r\n\r\n## Methods\r\n\r\n \r\n \r\n GetId(out'o'ssid)\r\n GetSeatId(out'o'sid)\r\n GetSessionType(out's'type)\r\n GetUser(out'u'uid)\r\n GetUnixUser(out'u'uid)\r\n GetX11Display(out's'display)\r\n GetX11DisplayDevice(out's'x11_display_device)\r\n GetDisplayDevice(out's'display_device)\r\n GetRemoteHostName(out's'remote_host_name)\r\n GetLoginSessionId(out's'login_session_id)\r\n IsActive(out'b'active)\r\n IsLocal(out'b'local)\r\n GetCreationTime(out's'iso8601_datetime)\r\n Activate()\r\n Lock()\r\n Unlock()\r\n GetIdleHint(out'b'idle_hint)\r\n GetIdleSinceHint(out's'iso8601_datetime)\r\n SetIdleHint(in'b'idle_hint)\r\n \r\n\r\n## Signals\r\n\r\n \r\n \r\n ActiveChanged('b'is_active)\r\n IdleHintChanged('b'hint)\r\n Lock()\r\n Unlock()\r\n \r\n\r\n## Implemented Interfaces\r\n\r\nObjects implementing org.freedesktop.ConsoleKit.Session also implements\r\norg.freedesktop.DBus.Introspectable, org.freedesktop.DBus.Properties\r\n\r\n## Properties\r\n\r\n \r\n \r\n 'unix-user'readwrite'u'\r\n 'user'readwrite'u'\r\n 'session-type'readwrite's'\r\n 'remote-host-name'readwrite's'\r\n 'display-device'readwrite's'\r\n 'x11-display'readwrite's'\r\n 'x11-display-device'readwrite's'\r\n 'active'readwrite'b'\r\n 'is-local'readwrite'b'\r\n 'idle-hint'readwrite'b'\r\n \r\n\r\n## Description\r\n\r\nSession objects represent and store information related to a user session.\r\n\r\nThe properties associated with the Session specifically refer to the\r\nproperties of the \"session leader\".\r\n\r\n## Details\r\n\r\n### GetId ()\r\n\r\n \r\n \r\n GetId (out'o'ssid)\r\n\r\nReturns the ID for Session.\r\n\r\n_`ssid`_:\r\n\r\n Session ID\r\n\r\n### GetSeatId ()\r\n\r\n \r\n \r\n GetSeatId (out'o'sid)\r\n\r\nReturns the ID for the Seat the Session is attached to.\r\n\r\n_`sid`_:\r\n\r\n Seat ID\r\n\r\nSee also: org.freedesktop.ConsoleKit.Seat\r\n\r\n### GetSessionType ()\r\n\r\n \r\n \r\n GetSessionType (out's'type)\r\n\r\nReturns the type of the session.\r\n\r\nWarning: we haven't yet defined the allowed values for this property. It is\r\nprobably best to avoid this until we do.\r\n\r\n_`type`_:\r\n\r\n Session type\r\n\r\nSee also: `session-type`\r\n\r\n### GetUser ()\r\n\r\n \r\n \r\n GetUser (out'u'uid)\r\n\r\nReturns the user that the session belongs to.\r\n\r\n_`uid`_:\r\n\r\n User ID\r\n\r\n### Warning\r\n\r\n`GetUser` is deprecated since version 0.1.3 and should not be used in newly-\r\nwritten code. Use `GetUnixUser` instead.\r\n\r\nSee also: `user`\r\n\r\n### GetUnixUser ()\r\n\r\n \r\n \r\n GetUnixUser (out'u'uid)\r\n\r\nReturns the POSIX user ID that the session belongs to.\r\n\r\n_`uid`_:\r\n\r\n POSIX User ID\r\n\r\nSee also: `unix-user`\r\n\r\n### GetX11Display ()\r\n\r\n \r\n \r\n GetX11Display (out's'display)\r\n\r\nReturns the value of the X11 DISPLAY for this session if one is present.\r\n\r\n_`display`_:\r\n\r\n The value of the X11 display\r\n\r\nSee also: `x11-display`\r\n\r\n### GetX11DisplayDevice ()\r\n\r\n \r\n \r\n GetX11DisplayDevice (out's'x11_display_device)\r\n\r\nReturns the value of the display device (aka TTY) that the X11 display for the\r\nsession is connected to. If there is no x11-display set then this value is\r\nundefined.\r\n\r\n_`x11_display_device`_:\r\n\r\n The value of the X11 display device\r\n\r\nSee also: `x11-display-device`\r\n\r\n### GetDisplayDevice ()\r\n\r\n \r\n \r\n GetDisplayDevice (out's'display_device)\r\n\r\nReturns the value of the display device (aka TTY) that the session is\r\nconnected to.\r\n\r\n_`display_device`_:\r\n\r\n The value of the display device\r\n\r\nSee also: `display-device`\r\n\r\n### GetRemoteHostName ()\r\n\r\n \r\n \r\n GetRemoteHostName (out's'remote_host_name)\r\n\r\nReturns the value of the remote host name for the session.\r\n\r\n_`remote_host_name`_:\r\n\r\n The remote host name\r\n\r\nSee also: `remote-host-name`\r\n\r\n### GetLoginSessionId ()\r\n\r\n \r\n \r\n GetLoginSessionId (out's'login_session_id)\r\n\r\nReturns the value of the login session ID that the underlying system uses to\r\nenforce session boundaries. If there is no login session ID set then this\r\nvalue is an empty string.\r\n\r\n_`login_session_id`_:\r\n\r\n The value of the native system login session ID\r\n\r\n### IsActive ()\r\n\r\n \r\n \r\n IsActive (out'b'active)\r\n\r\nReturns whether the session is active on the Seat that it is attached to.\r\n\r\nIf the session is not attached to a seat this value is undefined.\r\n\r\n_`active`_:\r\n\r\n TRUE if the session is active, otherwise FALSE\r\n\r\nSee also: `active`\r\n\r\n### IsLocal ()\r\n\r\n \r\n \r\n IsLocal (out'b'local)\r\n\r\nReturns whether the session is local\r\n\r\nFIXME: we need to come up with a concrete definition for this value. It was\r\noriginally used as a way to identify XDMCP sessions that originate from a\r\nremote system.\r\n\r\n_`local`_:\r\n\r\n TRUE if the session is local, otherwise FALSE\r\n\r\nSee also: `is-local`\r\n\r\n### GetCreationTime ()\r\n\r\n \r\n \r\n GetCreationTime (out's'iso8601_datetime)\r\n\r\nReturns an ISO 8601 date-time string that corresponds to the time that the\r\nsession was opened.\r\n\r\n_`iso8601_datetime`_:\r\n\r\n An ISO 8601 format date-type string\r\n\r\n### Activate ()\r\n\r\n \r\n \r\n Activate ()\r\n\r\nAttempt to activate the this session. In most cases, if successful, this will\r\ncause the session to become visible and become active on the seat that it is\r\nattached to.\r\n\r\nSee also: `Seat.ActivateSession()`\r\n\r\n### Lock ()\r\n\r\n \r\n \r\n Lock ()\r\n\r\nThis will cause a `Lock` signal to be emitted for this session.\r\n\r\n### Permissions\r\n\r\nThis method is restricted to privileged users by D-Bus policy.\r\n\r\nSee also: `Lock signal`\r\n\r\n### Unlock ()\r\n\r\n \r\n \r\n Unlock ()\r\n\r\nThis will cause an `Unlock` signal to be emitted for this session.\r\n\r\nThis can be used by login managers to unlock a session before it is re-\r\nactivated during fast-user-switching.\r\n\r\n### Permissions\r\n\r\nThis method is restricted to privileged users by D-Bus policy.\r\n\r\nSee also: `Unlock signal`\r\n\r\n### GetIdleHint ()\r\n\r\n \r\n \r\n GetIdleHint (out'b'idle_hint)\r\n\r\nGets the value of the `idle-hint` property.\r\n\r\n_`idle_hint`_:\r\n\r\n The value of the idle-hint\r\n\r\nSee also: `idle-hint`\r\n\r\n### GetIdleSinceHint ()\r\n\r\n \r\n \r\n GetIdleSinceHint (out's'iso8601_datetime)\r\n\r\nReturns an ISO 8601 date-time string that corresponds to the time of the last\r\nchange of the idle-hint.\r\n\r\n_`iso8601_datetime`_:\r\n\r\n An ISO 8601 format date-type string\r\n\r\n### SetIdleHint ()\r\n\r\n \r\n \r\n SetIdleHint (in'b'idle_hint)\r\n\r\nThis may be used by the session to indicate that it is idle.\r\n\r\nUse of this method is restricted to the user that owns the session.\r\n\r\n_`idle_hint`_:\r\n\r\n boolean value to set the idle-hint to\r\n\r\n## Signal Details\r\n\r\n### The ActiveChanged signal\r\n\r\n \r\n \r\n ActiveChanged ('b'is_active)\r\n\r\nEmitted when the active property has changed.\r\n\r\n_`is_active`_:\r\n\r\n TRUE if the session is active, otherwise FALSE\r\n\r\n### The IdleHintChanged signal\r\n\r\n \r\n \r\n IdleHintChanged ('b'hint)\r\n\r\nEmitted when the idle-hint property has changed.\r\n\r\n_`hint`_:\r\n\r\n the new value of idle-hint\r\n\r\n### The Lock signal\r\n\r\n \r\n \r\n Lock ()\r\n\r\nEmitted in response to a call to the `Lock()` method.\r\n\r\nIt is intended that the screensaver for the session should lock the screen in\r\nresponse to this signal.\r\n\r\n### The Unlock signal\r\n\r\n \r\n \r\n Unlock ()\r\n\r\nEmitted in response to a call to the `Unlock()` method.\r\n\r\nIt is intended that the screensaver for the session should unlock the screen\r\nin response to this signal.\r\n\r\n## Property Details\r\n\r\n### The \"unix-user\" property\r\n\r\n \r\n \r\n 'unix-user'readwrite'u'\r\n \r\n\r\nThe user assigned to the session.\r\n\r\n### The \"user\" property\r\n\r\n \r\n \r\n 'user'readwrite'u'\r\n \r\n\r\nThe user assigned to the session.\r\n\r\n### Warning\r\n\r\n`user` is deprecated since version 0.1.3 and should not be used in newly-\r\nwritten code. Use `unix-user` instead.\r\n\r\n### The \"session-type\" property\r\n\r\n \r\n \r\n 'session-type'readwrite's'\r\n \r\n\r\nThe type of the session.\r\n\r\nWarning: we haven't yet defined the allowed values for this property. It is\r\nprobably best to avoid this until we do.\r\n\r\n### The \"remote-host-name\" property\r\n\r\n \r\n \r\n 'remote-host-name'readwrite's'\r\n \r\n\r\nThe remote host name for the session.\r\n\r\nThis will be set in situations where the session is opened and controlled from\r\na remote system.\r\n\r\nFor example, this value will be set when the session is created from an SSH or\r\nXDMCP connection.\r\n\r\n### The \"display-device\" property\r\n\r\n \r\n \r\n 'display-device'readwrite's'\r\n \r\n\r\nThe display device (aka TTY) that the session is connected to.\r\n\r\n### The \"x11-display\" property\r\n\r\n \r\n \r\n 'x11-display'readwrite's'\r\n \r\n\r\nValue of the X11 DISPLAY for this session if one is present.\r\n\r\n### The \"x11-display-device\" property\r\n\r\n \r\n \r\n 'x11-display-device'readwrite's'\r\n \r\n\r\nThe display device (aka TTY) that the X11 display for the session is connected\r\nto. If there is no x11-display set then this value is undefined.\r\n\r\n### The \"active\" property\r\n\r\n \r\n \r\n 'active'readwrite'b'\r\n \r\n\r\nWhether the session is active on the Seat that it is attached to.\r\n\r\nIf the session is not attached to a seat this value is undefined.\r\n\r\n### The \"is-local\" property\r\n\r\n \r\n \r\n 'is-local'readwrite'b'\r\n \r\n\r\nWhether the session is local\r\n\r\nFIXME: we need to come up with a concrete definition for this value. It was\r\noriginally used as a way to identify XDMCP sessions that originate from a\r\nremote system.\r\n\r\n### The \"idle-hint\" property\r\n\r\n \r\n \r\n 'idle-hint'readwrite'b'\r\n \r\n\r\nThis is a hint used to indicate that the session may be idle.\r\n\r\nFor sessions with a `x11-display` set (ie. graphical sessions), it is up to\r\neach session to delegate the responsibility for updating this value.\r\nTypically, the screensaver will set this.\r\n\r\nHowever, for non-graphical sessions with a `display-device` set the Session\r\nobject itself will periodically update this value based on the activity\r\ndetected on the display-device itself.\r\n\r\nThis should not be considered authoritative.\r\n","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."} \ No newline at end of file
diff --git a/stylesheets/pygment_trac.css b/stylesheets/pygment_trac.css
new file mode 100644
index 0000000..e65cedf
--- /dev/null
+++ b/stylesheets/pygment_trac.css
@@ -0,0 +1,70 @@
+.highlight .hll { background-color: #ffffcc }
+.highlight { background: #f0f3f3; }
+.highlight .c { color: #0099FF; font-style: italic } /* Comment */
+.highlight .err { color: #AA0000; background-color: #FFAAAA } /* Error */
+.highlight .k { color: #006699; font-weight: bold } /* Keyword */
+.highlight .o { color: #555555 } /* Operator */
+.highlight .cm { color: #0099FF; font-style: italic } /* Comment.Multiline */
+.highlight .cp { color: #009999 } /* Comment.Preproc */
+.highlight .c1 { color: #0099FF; font-style: italic } /* Comment.Single */
+.highlight .cs { color: #0099FF; font-weight: bold; font-style: italic } /* Comment.Special */
+.highlight .gd { background-color: #FFCCCC; border: 1px solid #CC0000 } /* Generic.Deleted */
+.highlight .ge { font-style: italic } /* Generic.Emph */
+.highlight .gr { color: #FF0000 } /* Generic.Error */
+.highlight .gh { color: #003300; font-weight: bold } /* Generic.Heading */
+.highlight .gi { background-color: #CCFFCC; border: 1px solid #00CC00 } /* Generic.Inserted */
+.highlight .go { color: #AAAAAA } /* Generic.Output */
+.highlight .gp { color: #000099; font-weight: bold } /* Generic.Prompt */
+.highlight .gs { font-weight: bold } /* Generic.Strong */
+.highlight .gu { color: #003300; font-weight: bold } /* Generic.Subheading */
+.highlight .gt { color: #99CC66 } /* Generic.Traceback */
+.highlight .kc { color: #006699; font-weight: bold } /* Keyword.Constant */
+.highlight .kd { color: #006699; font-weight: bold } /* Keyword.Declaration */
+.highlight .kn { color: #006699; font-weight: bold } /* Keyword.Namespace */
+.highlight .kp { color: #006699 } /* Keyword.Pseudo */
+.highlight .kr { color: #006699; font-weight: bold } /* Keyword.Reserved */
+.highlight .kt { color: #007788; font-weight: bold } /* Keyword.Type */
+.highlight .m { color: #FF6600 } /* Literal.Number */
+.highlight .s { color: #CC3300 } /* Literal.String */
+.highlight .na { color: #330099 } /* Name.Attribute */
+.highlight .nb { color: #336666 } /* Name.Builtin */
+.highlight .nc { color: #00AA88; font-weight: bold } /* Name.Class */
+.highlight .no { color: #336600 } /* Name.Constant */
+.highlight .nd { color: #9999FF } /* Name.Decorator */
+.highlight .ni { color: #999999; font-weight: bold } /* Name.Entity */
+.highlight .ne { color: #CC0000; font-weight: bold } /* Name.Exception */
+.highlight .nf { color: #CC00FF } /* Name.Function */
+.highlight .nl { color: #9999FF } /* Name.Label */
+.highlight .nn { color: #00CCFF; font-weight: bold } /* Name.Namespace */
+.highlight .nt { color: #330099; font-weight: bold } /* Name.Tag */
+.highlight .nv { color: #003333 } /* Name.Variable */
+.highlight .ow { color: #000000; font-weight: bold } /* Operator.Word */
+.highlight .w { color: #bbbbbb } /* Text.Whitespace */
+.highlight .mf { color: #FF6600 } /* Literal.Number.Float */
+.highlight .mh { color: #FF6600 } /* Literal.Number.Hex */
+.highlight .mi { color: #FF6600 } /* Literal.Number.Integer */
+.highlight .mo { color: #FF6600 } /* Literal.Number.Oct */
+.highlight .sb { color: #CC3300 } /* Literal.String.Backtick */
+.highlight .sc { color: #CC3300 } /* Literal.String.Char */
+.highlight .sd { color: #CC3300; font-style: italic } /* Literal.String.Doc */
+.highlight .s2 { color: #CC3300 } /* Literal.String.Double */
+.highlight .se { color: #CC3300; font-weight: bold } /* Literal.String.Escape */
+.highlight .sh { color: #CC3300 } /* Literal.String.Heredoc */
+.highlight .si { color: #AA0000 } /* Literal.String.Interpol */
+.highlight .sx { color: #CC3300 } /* Literal.String.Other */
+.highlight .sr { color: #33AAAA } /* Literal.String.Regex */
+.highlight .s1 { color: #CC3300 } /* Literal.String.Single */
+.highlight .ss { color: #FFCC33 } /* Literal.String.Symbol */
+.highlight .bp { color: #336666 } /* Name.Builtin.Pseudo */
+.highlight .vc { color: #003333 } /* Name.Variable.Class */
+.highlight .vg { color: #003333 } /* Name.Variable.Global */
+.highlight .vi { color: #003333 } /* Name.Variable.Instance */
+.highlight .il { color: #FF6600 } /* Literal.Number.Integer.Long */
+
+.type-csharp .highlight .k { color: #0000FF }
+.type-csharp .highlight .kt { color: #0000FF }
+.type-csharp .highlight .nf { color: #000000; font-weight: normal }
+.type-csharp .highlight .nc { color: #2B91AF }
+.type-csharp .highlight .nn { color: #000000 }
+.type-csharp .highlight .s { color: #A31515 }
+.type-csharp .highlight .sc { color: #A31515 }
diff --git a/stylesheets/stylesheet.css b/stylesheets/stylesheet.css
new file mode 100644
index 0000000..7a08b01
--- /dev/null
+++ b/stylesheets/stylesheet.css
@@ -0,0 +1,423 @@
+/*******************************************************************************
+Slate Theme for GitHub Pages
+by Jason Costello, @jsncostello
+*******************************************************************************/
+
+@import url(pygment_trac.css);
+
+/*******************************************************************************
+MeyerWeb Reset
+*******************************************************************************/
+
+html, body, div, span, applet, object, iframe,
+h1, h2, h3, h4, h5, h6, p, blockquote, pre,
+a, abbr, acronym, address, big, cite, code,
+del, dfn, em, img, ins, kbd, q, s, samp,
+small, strike, strong, sub, sup, tt, var,
+b, u, i, center,
+dl, dt, dd, ol, ul, li,
+fieldset, form, label, legend,
+table, caption, tbody, tfoot, thead, tr, th, td,
+article, aside, canvas, details, embed,
+figure, figcaption, footer, header, hgroup,
+menu, nav, output, ruby, section, summary,
+time, mark, audio, video {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ font: inherit;
+ vertical-align: baseline;
+}
+
+/* HTML5 display-role reset for older browsers */
+article, aside, details, figcaption, figure,
+footer, header, hgroup, menu, nav, section {
+ display: block;
+}
+
+ol, ul {
+ list-style: none;
+}
+
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
+
+/*******************************************************************************
+Theme Styles
+*******************************************************************************/
+
+body {
+ box-sizing: border-box;
+ color:#373737;
+ background: #212121;
+ font-size: 16px;
+ font-family: 'Myriad Pro', Calibri, Helvetica, Arial, sans-serif;
+ line-height: 1.5;
+ -webkit-font-smoothing: antialiased;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ margin: 10px 0;
+ font-weight: 700;
+ color:#222222;
+ font-family: 'Lucida Grande', 'Calibri', Helvetica, Arial, sans-serif;
+ letter-spacing: -1px;
+}
+
+h1 {
+ font-size: 36px;
+ font-weight: 700;
+}
+
+h2 {
+ padding-bottom: 10px;
+ font-size: 32px;
+ background: url('../images/bg_hr.png') repeat-x bottom;
+}
+
+h3 {
+ font-size: 24px;
+}
+
+h4 {
+ font-size: 21px;
+}
+
+h5 {
+ font-size: 18px;
+}
+
+h6 {
+ font-size: 16px;
+}
+
+p {
+ margin: 10px 0 15px 0;
+}
+
+footer p {
+ color: #f2f2f2;
+}
+
+a {
+ text-decoration: none;
+ color: #007edf;
+ text-shadow: none;
+
+ transition: color 0.5s ease;
+ transition: text-shadow 0.5s ease;
+ -webkit-transition: color 0.5s ease;
+ -webkit-transition: text-shadow 0.5s ease;
+ -moz-transition: color 0.5s ease;
+ -moz-transition: text-shadow 0.5s ease;
+ -o-transition: color 0.5s ease;
+ -o-transition: text-shadow 0.5s ease;
+ -ms-transition: color 0.5s ease;
+ -ms-transition: text-shadow 0.5s ease;
+}
+
+a:hover, a:focus {text-decoration: underline;}
+
+footer a {
+ color: #F2F2F2;
+ text-decoration: underline;
+}
+
+em {
+ font-style: italic;
+}
+
+strong {
+ font-weight: bold;
+}
+
+img {
+ position: relative;
+ margin: 0 auto;
+ max-width: 739px;
+ padding: 5px;
+ margin: 10px 0 10px 0;
+ border: 1px solid #ebebeb;
+
+ box-shadow: 0 0 5px #ebebeb;
+ -webkit-box-shadow: 0 0 5px #ebebeb;
+ -moz-box-shadow: 0 0 5px #ebebeb;
+ -o-box-shadow: 0 0 5px #ebebeb;
+ -ms-box-shadow: 0 0 5px #ebebeb;
+}
+
+p img {
+ display: inline;
+ margin: 0;
+ padding: 0;
+ vertical-align: middle;
+ text-align: center;
+ border: none;
+}
+
+pre, code {
+ width: 100%;
+ color: #222;
+ background-color: #fff;
+
+ font-family: Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace;
+ font-size: 14px;
+
+ border-radius: 2px;
+ -moz-border-radius: 2px;
+ -webkit-border-radius: 2px;
+}
+
+pre {
+ width: 100%;
+ padding: 10px;
+ box-shadow: 0 0 10px rgba(0,0,0,.1);
+ overflow: auto;
+}
+
+code {
+ padding: 3px;
+ margin: 0 3px;
+ box-shadow: 0 0 10px rgba(0,0,0,.1);
+}
+
+pre code {
+ display: block;
+ box-shadow: none;
+}
+
+blockquote {
+ color: #666;
+ margin-bottom: 20px;
+ padding: 0 0 0 20px;
+ border-left: 3px solid #bbb;
+}
+
+
+ul, ol, dl {
+ margin-bottom: 15px
+}
+
+ul {
+ list-style: inside;
+ padding-left: 20px;
+}
+
+ol {
+ list-style: decimal inside;
+ padding-left: 20px;
+}
+
+dl dt {
+ font-weight: bold;
+}
+
+dl dd {
+ padding-left: 20px;
+ font-style: italic;
+}
+
+dl p {
+ padding-left: 20px;
+ font-style: italic;
+}
+
+hr {
+ height: 1px;
+ margin-bottom: 5px;
+ border: none;
+ background: url('../images/bg_hr.png') repeat-x center;
+}
+
+table {
+ border: 1px solid #373737;
+ margin-bottom: 20px;
+ text-align: left;
+ }
+
+th {
+ font-family: 'Lucida Grande', 'Helvetica Neue', Helvetica, Arial, sans-serif;
+ padding: 10px;
+ background: #373737;
+ color: #fff;
+ }
+
+td {
+ padding: 10px;
+ border: 1px solid #373737;
+ }
+
+form {
+ background: #f2f2f2;
+ padding: 20px;
+}
+
+/*******************************************************************************
+Full-Width Styles
+*******************************************************************************/
+
+.outer {
+ width: 100%;
+}
+
+.inner {
+ position: relative;
+ max-width: 640px;
+ padding: 20px 10px;
+ margin: 0 auto;
+}
+
+#forkme_banner {
+ display: block;
+ position: absolute;
+ top:0;
+ right: 10px;
+ z-index: 10;
+ padding: 10px 50px 10px 10px;
+ color: #fff;
+ background: url('../images/blacktocat.png') #0090ff no-repeat 95% 50%;
+ font-weight: 700;
+ box-shadow: 0 0 10px rgba(0,0,0,.5);
+ border-bottom-left-radius: 2px;
+ border-bottom-right-radius: 2px;
+}
+
+#header_wrap {
+ background: #212121;
+ background: -moz-linear-gradient(top, #373737, #212121);
+ background: -webkit-linear-gradient(top, #373737, #212121);
+ background: -ms-linear-gradient(top, #373737, #212121);
+ background: -o-linear-gradient(top, #373737, #212121);
+ background: linear-gradient(top, #373737, #212121);
+}
+
+#header_wrap .inner {
+ padding: 50px 10px 30px 10px;
+}
+
+#project_title {
+ margin: 0;
+ color: #fff;
+ font-size: 42px;
+ font-weight: 700;
+ text-shadow: #111 0px 0px 10px;
+}
+
+#project_tagline {
+ color: #fff;
+ font-size: 24px;
+ font-weight: 300;
+ background: none;
+ text-shadow: #111 0px 0px 10px;
+}
+
+#downloads {
+ position: absolute;
+ width: 210px;
+ z-index: 10;
+ bottom: -40px;
+ right: 0;
+ height: 70px;
+ background: url('../images/icon_download.png') no-repeat 0% 90%;
+}
+
+.zip_download_link {
+ display: block;
+ float: right;
+ width: 90px;
+ height:70px;
+ text-indent: -5000px;
+ overflow: hidden;
+ background: url(../images/sprite_download.png) no-repeat bottom left;
+}
+
+.tar_download_link {
+ display: block;
+ float: right;
+ width: 90px;
+ height:70px;
+ text-indent: -5000px;
+ overflow: hidden;
+ background: url(../images/sprite_download.png) no-repeat bottom right;
+ margin-left: 10px;
+}
+
+.zip_download_link:hover {
+ background: url(../images/sprite_download.png) no-repeat top left;
+}
+
+.tar_download_link:hover {
+ background: url(../images/sprite_download.png) no-repeat top right;
+}
+
+#main_content_wrap {
+ background: #f2f2f2;
+ border-top: 1px solid #111;
+ border-bottom: 1px solid #111;
+}
+
+#main_content {
+ padding-top: 40px;
+}
+
+#footer_wrap {
+ background: #212121;
+}
+
+
+
+/*******************************************************************************
+Small Device Styles
+*******************************************************************************/
+
+@media screen and (max-width: 480px) {
+ body {
+ font-size:14px;
+ }
+
+ #downloads {
+ display: none;
+ }
+
+ .inner {
+ min-width: 320px;
+ max-width: 480px;
+ }
+
+ #project_title {
+ font-size: 32px;
+ }
+
+ h1 {
+ font-size: 28px;
+ }
+
+ h2 {
+ font-size: 24px;
+ }
+
+ h3 {
+ font-size: 21px;
+ }
+
+ h4 {
+ font-size: 18px;
+ }
+
+ h5 {
+ font-size: 14px;
+ }
+
+ h6 {
+ font-size: 12px;
+ }
+
+ code, pre {
+ min-width: 320px;
+ max-width: 480px;
+ font-size: 11px;
+ }
+
+}