emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Orgmode] Announce first mockup for org-server


From: Torsten Wagner
Subject: [Orgmode] Announce first mockup for org-server
Date: Thu, 17 Feb 2011 14:41:42 +0900
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.13) Gecko/20101230 Lanikai/3.1.7

Dear all,

based on the discussions of a google calendar sync
http://thread.gmane.org/gmane.emacs.orgmode/36517/focus=36754
and about Taskwarrior a command line org-mode like program
http://thread.gmane.org/gmane.emacs.orgmode/37020/focus=37076

a discussion started why not running emacs as an org-mode server and to define a command interface to directly communicate with org-mode.


A well defined API for such an server would have several benefits:

* External programs like orgmobile for Android and Iphone would not need to emulate well tested org-mode functions. They could simply order the server to execute them and send back the results (e.g. compile agenda).

* Mobile devices might save resources and battery power by not running emacs natively. This would work on devices without emacs.

* People could design different user-interfaces for different needs (e.g., mobile, web, widgets, command line) still using a full featured regular org-mode.

* Integration with other programs might be much easier (third party programs e.g., Taskwarrior just need to follow the API to communicate with org-mode)

* A server approach does not exclude running emacs natively on the device, instead of a full server address, 'localhost' could be used. Thus, it would be very easy to get a "offline" version for devices which can run emacs natively. Furthermore, emacs itself would be still one (the main) interface to org-mode.

* This is much different usage scenario then the org-export options, which basically transform org-mode files into another format. org-server should help to interactively communicate with org-mode.


Thinking about this for some time, I looked around and found the possibility of emacs (starting from emacs 22) to operate as server listing to certain ports. I started a bit testing to see how server-communication in emacs looks like and ended up with a very very basic communication. Even totally practically unusable (there is no functionality yet) I thought that even at this early state it does not make much sense to keep it away from you. An API definition to communicate requires deep integration into org-mode and well thoughts how such a API might look like. This is something which requires intensive discussion and a good overview of org-mode internals (which I don't have).

Please find attached a first mock-up which demonstrates org-server communication.

Usage:
1. Copy org-server.el somewhere
2. Open in emacs and evaluate the buffer (or use another method to evaluate the file)
3. M-x org-server-start starts the org-server
4. Use a command line or a GUI based telnet client
5. Connect to localhost (127.0.0.1) and port 8051 (you can change the port in org-server.el if you need to use a different port)
6. Type something, press enter
7. To stop the server type M-x org-server-stop

If the command is recognized to be one of those
org-next-agenda org-search-header org-tag-search org-add-note org-add-tag org-remove-tag org-todo-sets
(all just made up without real functionality)
a message will be printed. If not the command will be rejected with a error message.

Again there is no function yet. It should simply demonstrate the possibility to receive and send commands to org-mode via a network connection. 99% of the code is copied from
http://www.emacswiki.org/emacs/EmacsEchoServer
I would like to express my thanks to the original author.

I would like to hear your ideas or even better your reports by playing around with it. I still have not much of an idea of elisp and org-mode internals and if many people here like the idea, maybe someone more capable would like to join or takeover to make all this happen...

All the best

With best regards

Torsten
                                        

Attachment: org-server.el
Description: Text document


reply via email to

[Prev in Thread] Current Thread [Next in Thread]