[Top][All Lists]
[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
org-server.el
Description: Text document
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Orgmode] Announce first mockup for org-server,
Torsten Wagner <=