Re: [compiz] Compiz web based settings framework

2007-04-13 Thread Mike Dransfield

Robert Carr wrote:

Once we have the new settings library finished I plan to (have already
started) to do a set of SWIG bindings for it. This will give us
PHP/Python/Perl/other language bindings that might give an easier way
to do a web based settings framework. 


Sounds good.  I look forward to seeing those :)

___
compiz mailing list
[EMAIL PROTECTED]
http://lists.freedesktop.org/mailman/listinfo/compiz


Re: [compiz] Compiz web based settings framework

2007-04-13 Thread David Reveman
On Wed, 2007-04-11 at 15:01 +0100, Mike Dransfield wrote:
> Here is a new way for people to access compiz settings.  This is 2
> pieces of software in one.
> 
> 1. HTTP -> DBUS -> JSON bridge
> 2. Web based settings application based on that
> 
> The most important part is the first because it allows you to change
> compiz settings using HTTP requests made to a locally running http
> server.
> 
> To install this untar the file below and copy the cws directory to your
> ~/.compiz directory and copy cws.py to your autostart folder.  Once
> cws.py is running it provides a web server on port 8899 (by default)
> which runs the default web app.  This app is just something I made
> quickly to demonstrate and develop everything.  You should be able to
> come up with something much nicer ;)
> 
> http://www.anykeysoftware.co.uk/compiz/cws.tar.gz
> 
> The web server responds to requests similar to dbus and it responds
> with JSON data, this is the easiest to evaluate with web based languages.
> 
> The API is like this, look in http.js for examples of its use with 
> HTTPRequest.
> 
> The path you make the request to relates to the dbus object path.  Each
> path has different methods.  You tell it which method with a GET request.
> 
> / (root path)
> 
> ?method=getPluginMetadata&plugin=cube   - get metadata about a plugin
> ?method=loadPlugin&plugin=cube  - loads a plugin, performs dependency
> checking so you can load any plugin without worrying about order
> ?method=loadPlugin&plugin=cube  - unloads a plugin
> ?method=getAvailablePlugins  - Lists all available plugins (not loaded ones)
> ?method=getActivePlugins  - Lists all active plugins
> 
> if no method is specified then it will return the index.html file from
> ~/.commpiz/cws//
> 
> /cube (plugin path)
> 
> Any request to this url will return a list of all options for that plugin
> (grouped by screen)
> 
> /cube/allscreens (screen path)
> 
> Any request to this URL will respond with a list of all options for
> that screen
> 
> /cube/allscreens/unfold   (option path)
> 
> ?method=set&value=val - will set an option value
> 
> Lists must be sent with the name ending in square brackets
> (ie. value[]=val1&value[]=val2)
> 
> Actions are the same but the action part name must  be in the brackets 
> (ie. value[bell]=1&value[key]=F1)
> 
> Any other request to an option path will return the option value.
> 

Cool, this is nice for remote configuration.

- David

___
compiz mailing list
[EMAIL PROTECTED]
http://lists.freedesktop.org/mailman/listinfo/compiz


[compiz] Compiz web based settings framework

2007-04-11 Thread Mike Dransfield

Here is a new way for people to access compiz settings.  This is 2
pieces of software in one.

1. HTTP -> DBUS -> JSON bridge
2. Web based settings application based on that

The most important part is the first because it allows you to change
compiz settings using HTTP requests made to a locally running http
server.

To install this untar the file below and copy the cws directory to your
~/.compiz directory and copy cws.py to your autostart folder.  Once
cws.py is running it provides a web server on port 8899 (by default)
which runs the default web app.  This app is just something I made
quickly to demonstrate and develop everything.  You should be able to
come up with something much nicer ;)

http://www.anykeysoftware.co.uk/compiz/cws.tar.gz

The web server responds to requests similar to dbus and it responds
with JSON data, this is the easiest to evaluate with web based languages.

The API is like this, look in http.js for examples of its use with 
HTTPRequest.


The path you make the request to relates to the dbus object path.  Each
path has different methods.  You tell it which method with a GET request.

/ (root path)

?method=getPluginMetadata&plugin=cube   - get metadata about a plugin
?method=loadPlugin&plugin=cube  - loads a plugin, performs dependency
checking so you can load any plugin without worrying about order
?method=loadPlugin&plugin=cube  - unloads a plugin
?method=getAvailablePlugins  - Lists all available plugins (not loaded ones)
?method=getActivePlugins  - Lists all active plugins

if no method is specified then it will return the index.html file from
~/.commpiz/cws//

/cube (plugin path)

Any request to this url will return a list of all options for that plugin
(grouped by screen)

/cube/allscreens (screen path)

Any request to this URL will respond with a list of all options for
that screen

/cube/allscreens/unfold   (option path)

?method=set&value=val - will set an option value

Lists must be sent with the name ending in square brackets
(ie. value[]=val1&value[]=val2)

Actions are the same but the action part name must  be in the brackets 
(ie. value[bell]=1&value[key]=F1)


Any other request to an option path will return the option value.

___
compiz mailing list
compiz@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/compiz