aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--doc/misc/org.texi293
1 files changed, 152 insertions, 141 deletions
diff --git a/doc/misc/org.texi b/doc/misc/org.texi
index 60647e65e88..873ce4d2cdb 100644
--- a/doc/misc/org.texi
+++ b/doc/misc/org.texi
@@ -325,7 +325,6 @@ Jambunathan K, Dan Davison, Thomas Dye, David O'Toole, and Philip Rooke.
325* Working with source code:: Export, evaluate, and tangle code blocks 325* Working with source code:: Export, evaluate, and tangle code blocks
326* Miscellaneous:: All the rest which did not fit elsewhere 326* Miscellaneous:: All the rest which did not fit elsewhere
327* Hacking:: How to hack your way around 327* Hacking:: How to hack your way around
328* MobileOrg:: Viewing and capture on a mobile device
329* History and acknowledgments:: How Org came into being 328* History and acknowledgments:: How Org came into being
330* GNU Free Documentation License:: The license for this documentation. 329* GNU Free Documentation License:: The license for this documentation.
331* Main Index:: An index of Org's concepts and features 330* Main Index:: An index of Org's concepts and features
@@ -760,12 +759,19 @@ Miscellaneous
760* TTY keys:: Using Org on a tty 759* TTY keys:: Using Org on a tty
761* Interaction:: With other Emacs packages 760* Interaction:: With other Emacs packages
762* org-crypt:: Encrypting Org files 761* org-crypt:: Encrypting Org files
762* Org Mobile:: Viewing and capture on a mobile device
763 763
764Interaction with other packages 764Interaction with other packages
765 765
766* Cooperation:: Packages Org cooperates with 766* Cooperation:: Packages Org cooperates with
767* Conflicts:: Packages that lead to conflicts 767* Conflicts:: Packages that lead to conflicts
768 768
769Org Mobile
770
771* Setting up the staging area:: For the mobile device
772* Pushing to the mobile application:: Uploading Org files and agendas
773* Pulling from the mobile application:: Integrating captured and flagged items
774
769Hacking 775Hacking
770 776
771* Hooks:: How to reach into Org's internals 777* Hooks:: How to reach into Org's internals
@@ -788,12 +794,6 @@ Tables and lists in arbitrary syntax
788* Translator functions:: Copy and modify 794* Translator functions:: Copy and modify
789* Radio lists:: Sending and receiving lists 795* Radio lists:: Sending and receiving lists
790 796
791MobileOrg
792
793* Setting up the staging area:: For the mobile device
794* Pushing to MobileOrg:: Uploading Org files and agendas
795* Pulling from MobileOrg:: Integrating captured and flagged items
796
797@end detailmenu 797@end detailmenu
798@end menu 798@end menu
799 799
@@ -17253,6 +17253,7 @@ emacs -Q --batch --eval "
17253* TTY keys:: Using Org on a tty 17253* TTY keys:: Using Org on a tty
17254* Interaction:: With other Emacs packages 17254* Interaction:: With other Emacs packages
17255* org-crypt:: Encrypting Org files 17255* org-crypt:: Encrypting Org files
17256* Org Mobile:: Viewing and capture on a mobile device
17256@end menu 17257@end menu
17257 17258
17258 17259
@@ -18187,6 +18188,150 @@ Suggested Org crypt settings in Emacs init file:
18187Excluding the crypt tag from inheritance prevents encrypting previously 18188Excluding the crypt tag from inheritance prevents encrypting previously
18188encrypted text. 18189encrypted text.
18189 18190
18191@node Org Mobile
18192@section Org Mobile
18193
18194@cindex smartphone
18195
18196Org Mobile is a protocol for synchronizing Org files between Emacs and
18197other applications, e.g., on mobile devices. It enables offline-views
18198and capture support for an Org mode system that is rooted on a ``real''
18199computer. The external application can also record changes to
18200existing entries.
18201
18202This appendix describes Org's support for agenda view formats
18203compatible with Org Mobile. It also describes synchronizing changes,
18204such as to notes, between the mobile application and the computer.
18205
18206To change tags and TODO states in the mobile application, first
18207customize the variables @code{org-todo-keywords} and @code{org-tag-alist}.
18208These should cover all the important tags and TODO keywords, even if
18209Org files use only some of them. Though the mobile application is
18210expected to support in-buffer settings, it is required to understand
18211TODO states @emph{sets} (see @ref{Per-file keywords}) and
18212@emph{mutually exclusive} tags (see @ref{Setting tags}) only for those set in
18213these variables.
18214
18215@menu
18216* Setting up the staging area:: For the mobile device
18217* Pushing to the mobile application:: Uploading Org files and agendas
18218* Pulling from the mobile application:: Integrating captured and flagged items
18219@end menu
18220
18221@node Setting up the staging area
18222@subsection Setting up the staging area
18223
18224@vindex org-mobile-directory
18225The mobile application needs access to a file directory on
18226a server@footnote{For a server to host files, consider using a WebDAV server,
18227such as @uref{https://nextcloud.com, Nextcloud}. Additional help is at this @uref{https://orgmode.org/worg/org-faq.html#mobileorg_webdav, FAQ entry}.} to interact with Emacs. Pass its location through
18228the @code{org-mobile-directory} variable. If you can mount that directory
18229locally just set the variable to point to that directory:
18230
18231@lisp
18232(setq org-mobile-directory "~/orgmobile/")
18233@end lisp
18234
18235@noindent
18236Alternatively, by using TRAMP (see @ref{Top,TRAMP User Manual,,tramp,}),
18237@code{org-mobile-directory} may point to a remote directory accessible
18238through, for example, SSH and SCP:
18239
18240@lisp
18241(setq org-mobile-directory "/scpc:user@@remote.host:org/webdav/")
18242@end lisp
18243
18244@vindex org-mobile-encryption
18245With a public server, consider encrypting the files. Org also
18246requires OpenSSL installed on the local computer. To turn on
18247encryption, set the same password in the mobile application and in
18248Emacs. Set the password in the variable
18249@code{org-mobile-use-encryption}@footnote{If Emacs is configured for safe storing of passwords, then
18250configure the variable @code{org-mobile-encryption-password}; please read
18251the docstring of that variable.}. Note that even after the mobile
18252application encrypts the file contents, the file name remains visible
18253on the file systems of the local computer, the server, and the mobile
18254device.
18255
18256@node Pushing to the mobile application
18257@subsection Pushing to the mobile application
18258
18259@findex org-mobile-push
18260@vindex org-mobile-files
18261The command @code{org-mobile-push} copies files listed in
18262@code{org-mobile-files} into the staging area. Files include agenda files
18263(as listed in @code{org-agenda-files}). Customize @code{org-mobile-files} to
18264add other files. File names are staged with paths relative to
18265@code{org-directory}, so all files should be inside this directory@footnote{Symbolic links in @code{org-directory} need to have the same name
18266as their targets.}.
18267
18268Push creates a special Org file @samp{agendas.org} with custom agenda views
18269defined by the user@footnote{While creating the agendas, Org mode forces ID properties on
18270all referenced entries, so that these entries can be uniquely
18271identified if Org Mobile flags them for further action. To avoid
18272setting properties configure the variable
18273@code{org-mobile-force-id-on-agenda-items} to @code{nil}. Org mode then relies
18274on outline paths, assuming they are unique.}.
18275
18276Finally, Org writes the file @samp{index.org}, containing links to other
18277files. The mobile application reads this file first from the server
18278to determine what other files to download for agendas. For faster
18279downloads, it is expected to only read files whose checksums@footnote{Checksums are stored automatically in the file
18280@samp{checksums.dat}.}
18281have changed.
18282
18283@node Pulling from the mobile application
18284@subsection Pulling from the mobile application
18285
18286@findex org-mobile-pull
18287The command @code{org-mobile-pull} synchronizes changes with the server.
18288More specifically, it first pulls the Org files for viewing. It then
18289appends captured entries and pointers to flagged or changed entries to
18290the file @samp{mobileorg.org} on the server. Org ultimately integrates its
18291data in an inbox file format, through the following steps:
18292
18293@enumerate
18294@item
18295@vindex org-mobile-inbox-for-pull
18296Org moves all entries found in @samp{mobileorg.org}@footnote{The file will be empty after this operation.} and appends
18297them to the file pointed to by the variable
18298@code{org-mobile-inbox-for-pull}. It should reside neither in the
18299staging area nor on the server. Each captured entry and each
18300editing event is a top-level entry in the inbox file.
18301
18302@item
18303@cindex @samp{FLAGGED}, tag
18304After moving the entries, Org processes changes to the shared
18305files. Some of them are applied directly and without user
18306interaction. Examples include changes to tags, TODO state,
18307headline and body text. Entries requiring further action are
18308tagged as @samp{FLAGGED}. Org marks entries with problems with an error
18309message in the inbox. They have to be resolved manually.
18310
18311@item
18312Org generates an agenda view for flagged entries for user
18313intervention to clean up. For notes stored in flagged entries, Org
18314displays them in the echo area when point is on the corresponding
18315agenda item.
18316
18317@table @asis
18318@item @kbd{?}
18319Pressing @kbd{?} displays the entire flagged note in
18320another window. Org also pushes it to the kill ring. To
18321store flagged note as a normal note, use @kbd{? z C-y C-c C-c}. Pressing @kbd{?} twice does these things: first
18322it removes the @samp{FLAGGED} tag; second, it removes the flagged
18323note from the property drawer; third, it signals that manual
18324editing of the flagged entry is now finished.
18325@end table
18326@end enumerate
18327
18328@kindex ? @r{(Agenda dispatcher)}
18329From the agenda dispatcher, @kbd{?} returns to the view to finish
18330processing flagged entries. Note that these entries may not be the
18331most recent since the mobile application searches files that were last
18332pulled. To get an updated agenda view with changes since the last
18333pull, pull again.
18334
18190@node Hacking 18335@node Hacking
18191@appendix Hacking 18336@appendix Hacking
18192@cindex hacking 18337@cindex hacking
@@ -19151,140 +19296,6 @@ The following example counts the number of entries with TODO keyword
19151(length (org-map-entries t "/+WAITING" 'agenda)) 19296(length (org-map-entries t "/+WAITING" 'agenda))
19152@end lisp 19297@end lisp
19153 19298
19154@node MobileOrg
19155@appendix MobileOrg
19156@cindex iPhone
19157@cindex MobileOrg
19158
19159MobileOrg is a companion mobile app that runs on iOS and Android devices.
19160MobileOrg enables offline-views and capture support for an Org mode system
19161that is rooted on a ``real'' computer. MobileOrg can record changes to
19162existing entries.
19163
19164The @uref{https://github.com/MobileOrg/, iOS implementation} for the
19165@emph{iPhone/iPod Touch/iPad} series of devices, was started by Richard
19166Moreland and is now in the hands Sean Escriva. Android users should check
19167out @uref{http://wiki.github.com/matburt/mobileorg-android/, MobileOrg
19168Android} by Matt Jones. Though the two implementations are not identical,
19169they offer similar features.
19170
19171This appendix describes Org's support for agenda view formats compatible with
19172MobileOrg. It also describes synchronizing changes, such as to notes,
19173between MobileOrg and the computer.
19174
19175To change tags and TODO states in MobileOrg, first customize the variables
19176@code{org-todo-keywords} and @code{org-tag-alist}. These should cover all
19177the important tags and TODO keywords, even if Org files use only some of
19178them. Though MobileOrg has in-buffer settings, it understands TODO states
19179@emph{sets} (@pxref{Per-file keywords}) and @emph{mutually exclusive} tags
19180(@pxref{Setting tags}) only for those set in these variables.
19181
19182@menu
19183* Setting up the staging area:: For the mobile device
19184* Pushing to MobileOrg:: Uploading Org files and agendas
19185* Pulling from MobileOrg:: Integrating captured and flagged items
19186@end menu
19187
19188@node Setting up the staging area
19189@section Setting up the staging area
19190
19191MobileOrg needs access to a file directory on a server to interact with
19192Emacs. With a public server, consider encrypting the files. MobileOrg
19193version 1.5 supports encryption for the iPhone. Org also requires
19194@file{openssl} installed on the local computer. To turn on encryption, set
19195the same password in MobileOrg and in Emacs. Set the password in the
19196variable @code{org-mobile-use-encryption}@footnote{If Emacs is configured for
19197safe storing of passwords, then configure the variable,
19198@code{org-mobile-encryption-password}; please read the docstring of that
19199variable.}. Note that even after MobileOrg encrypts the file contents, the
19200file names will remain visible on the file systems of the local computer, the
19201server, and the mobile device.
19202
19203For a server to host files, consider options like
19204@uref{http://dropbox.com,Dropbox.com} account@footnote{An alternative is to
19205use webdav server. MobileOrg documentation has details of webdav server
19206configuration. Additional help is at
19207@uref{https://orgmode.org/worg/org-faq.html#mobileorg_webdav, FAQ entry}.}.
19208On first connection, MobileOrg creates a directory @file{MobileOrg/} on
19209Dropbox. Pass its location to Emacs through an init file variable as
19210follows:
19211
19212@lisp
19213(setq org-mobile-directory "~/Dropbox/MobileOrg")
19214@end lisp
19215
19216Org copies files to the above directory for MobileOrg. Org also uses the
19217same directory for sharing notes between Org and MobileOrg.
19218
19219@node Pushing to MobileOrg
19220@section Pushing to MobileOrg
19221
19222Org pushes files listed in @code{org-mobile-files} to
19223@code{org-mobile-directory}. Files include agenda files (as listed in
19224@code{org-agenda-files}). Customize @code{org-mobile-files} to add other
19225files. File names will be staged with paths relative to
19226@code{org-directory}, so all files should be inside this
19227directory@footnote{Symbolic links in @code{org-directory} should have the
19228same name as their targets.}.
19229
19230Push creates a special Org file @file{agendas.org} with custom agenda views
19231defined by the user@footnote{While creating the agendas, Org mode will force
19232ID properties on all referenced entries, so that these entries can be
19233uniquely identified if MobileOrg flags them for further action. To avoid
19234setting properties configure the variable
19235@code{org-mobile-force-id-on-agenda-items} to @code{nil}. Org mode will then
19236rely on outline paths, assuming they are unique.}.
19237
19238Org writes the file @file{index.org}, containing links to other files.
19239MobileOrg reads this file first from the server to determine what other files
19240to download for agendas. For faster downloads, MobileOrg will read only
19241those files whose checksums@footnote{Checksums are stored automatically in
19242the file @file{checksums.dat}.} have changed.
19243
19244@node Pulling from MobileOrg
19245@section Pulling from MobileOrg
19246
19247When MobileOrg synchronizes with the server, it pulls the Org files for
19248viewing. It then appends to the file @file{mobileorg.org} on the server the
19249captured entries, pointers to flagged and changed entries. Org integrates
19250its data in an inbox file format.
19251
19252@enumerate
19253@item
19254Org moves all entries found in
19255@file{mobileorg.org}@footnote{@file{mobileorg.org} will be empty after this
19256operation.} and appends them to the file pointed to by the variable
19257@code{org-mobile-inbox-for-pull}. Each captured entry and each editing event
19258is a top-level entry in the inbox file.
19259@item
19260After moving the entries, Org attempts changes to MobileOrg. Some changes
19261are applied directly and without user interaction. Examples include changes
19262to tags, TODO state, headline and body text. Entries for further action are
19263tagged as @code{:FLAGGED:}. Org marks entries with problems with an error
19264message in the inbox. They have to be resolved manually.
19265@item
19266Org generates an agenda view for flagged entries for user intervention to
19267clean up. For notes stored in flagged entries, MobileOrg displays them in
19268the echo area when the cursor is on the corresponding agenda item.
19269
19270@table @kbd
19271@kindex ?
19272@item ?
19273Pressing @kbd{?} displays the entire flagged note in another window. Org
19274also pushes it to the kill ring. To store flagged note as a normal note, use
19275@kbd{? z C-y C-c C-c}. Pressing @kbd{?} twice does these things: first it
19276removes the @code{:FLAGGED:} tag; second, it removes the flagged note from
19277the property drawer; third, it signals that manual editing of the flagged
19278entry is now finished.
19279@end table
19280@end enumerate
19281
19282@kindex C-c a ?
19283@kbd{C-c a ?} returns to the agenda view to finish processing flagged
19284entries. Note that these entries may not be the most recent since MobileOrg
19285searches files that were last pulled. To get an updated agenda view with
19286changes since the last pull, pull again.
19287
19288@node History and acknowledgments 19299@node History and acknowledgments
19289@appendix History and acknowledgments 19300@appendix History and acknowledgments
19290@cindex acknowledgments 19301@cindex acknowledgments