[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/detached 75e308fd13 2/5: Update documentation
From: |
ELPA Syncer |
Subject: |
[elpa] externals/detached 75e308fd13 2/5: Update documentation |
Date: |
Fri, 14 Oct 2022 14:57:31 -0400 (EDT) |
branch: externals/detached
commit 75e308fd132baa5dfcddb83c5c58293ebedfd64b
Author: Niklas Eklund <niklas.eklund@posteo.net>
Commit: Niklas Eklund <niklas.eklund@posteo.net>
Update documentation
---
doc/detached.html | 1138 -----------------------------------------------------
doc/detached.info | 42 +-
doc/detached.org | 8 +-
3 files changed, 27 insertions(+), 1161 deletions(-)
diff --git a/doc/detached.html b/doc/detached.html
deleted file mode 100644
index b72f3c9788..0000000000
--- a/doc/detached.html
+++ /dev/null
@@ -1,1138 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<!-- This manual describes the design of the detached (version 0.9.1,
-last updated 8 October 2022) package, as well as its options and
customizations.
-
-Copyright (C) 2020-2022 Free Software Foundation, Inc.
-
-Permission is granted to copy, distribute and/or modify this
-document under the terms of the GNU Free Documentation License,
-Version 1.3 or any later version published by the Free Software
-Foundation; with no Invariant Sections, with no Front-Cover Texts,
-and with no Back-Cover Texts. A copy of the license is included in
-the section entitled "GNU Free Documentation License".
-
-
- -->
-<!-- Created on October 8, 2022 by texi2html 5.0
-texi2html was written by:
- Lionel Cons <Lionel.Cons@cern.ch> (original author)
- Karl Berry <karl@freefriends.org>
- Olaf Bachmann <obachman@mathematik.uni-kl.de>
- and many others.
-Maintained by: Many creative people.
-Send bugs and suggestions to <texi2html-bug@nongnu.org>
--->
-<head>
-<title>Detached processes for GNU Emacs</title>
-
-<meta name="description" content="Detached processes for GNU Emacs">
-<meta name="keywords" content="Detached processes for GNU Emacs">
-<meta name="resource-type" content="document">
-<meta name="distribution" content="global">
-<meta name="Generator" content="texi2html 5.0">
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<style type="text/css">
-<!--
-a.summary-letter {text-decoration: none}
-blockquote.smallquotation {font-size: smaller}
-div.display {margin-left: 3.2em}
-div.example {margin-left: 3.2em}
-div.lisp {margin-left: 3.2em}
-div.smalldisplay {margin-left: 3.2em}
-div.smallexample {margin-left: 3.2em}
-div.smalllisp {margin-left: 3.2em}
-pre.display {font-family: serif}
-pre.format {font-family: serif}
-pre.menu-comment {font-family: serif}
-pre.menu-preformatted {font-family: serif}
-pre.smalldisplay {font-family: serif; font-size: smaller}
-pre.smallexample {font-size: smaller}
-pre.smallformat {font-family: serif; font-size: smaller}
-pre.smalllisp {font-size: smaller}
-span.nocodebreak {white-space:pre}
-span.nolinebreak {white-space:pre}
-span.roman {font-family:serif; font-weight:normal}
-span.sansserif {font-family:sans-serif; font-weight:normal}
-ul.no-bullet {list-style: none}
--->
-</style>
-
-
-</head>
-
-<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF"
vlink="#800080" alink="#FF0000">
-
-<h1>Detached processes for GNU Emacs</h1>
-<strong>Niklas Eklund (<a
href="mailto:~niklaseklund/detached.el@lists.sr.ht">~niklaseklund/detached.el@lists.sr.ht</a>)</strong><br>
-
-<p>This manual describes the design of the ‘<samp>detached</samp>’
(version 0.9.1,
-last updated 8 October 2022) package, as well as its options and
customizations.
-</p>
-<p>Copyright © 2020-2022 Free Software Foundation, Inc.
-</p>
-<blockquote>
-<p>Permission is granted to copy, distribute and/or modify this
-document under the terms of the GNU Free Documentation License,
-Version 1.3 or any later version published by the Free Software
-Foundation; with no Invariant Sections, with no Front-Cover Texts,
-and with no Back-Cover Texts. A copy of the license is included in
-the section entitled “GNU Free Documentation License”.
-</p>
-</blockquote>
-<hr>
-<a name="Top"></a>
-<table class="header" cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[ < ]</td>
-<td valign="middle" align="left">[<a href="#Overview" title="Next section in
reading order"> > </a>]</td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left">[Contents]</td>
-<td valign="middle" align="left">[Index]</td>
-<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ?
</a>]</td>
-</tr></table>
-<a name="Detached-processes-for-GNU-Emacs"></a>
-<h1 class="top">Detached processes for GNU Emacs</h1>
-
-<p>This manual describes the design of the ‘<samp>detached</samp>’
(version 0.9.1,
-last updated 8 October 2022) package, as well as its options and
customizations.
-</p>
-<p>Copyright © 2020-2022 Free Software Foundation, Inc.
-</p>
-<blockquote>
-<p>Permission is granted to copy, distribute and/or modify this
-document under the terms of the GNU Free Documentation License,
-Version 1.3 or any later version published by the Free Software
-Foundation; with no Invariant Sections, with no Front-Cover Texts,
-and with no Back-Cover Texts. A copy of the license is included in
-the section entitled “GNU Free Documentation License”.
-</p>
-</blockquote>
-
-
-<table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top"><a href="#Overview">1
Overview</a></td><td> </td><td align="left" valign="top">
-</td></tr>
-<tr><td align="left" valign="top"><a href="#Dependencies">2
Dependencies</a></td><td> </td><td align="left" valign="top">
-</td></tr>
-<tr><td align="left" valign="top"><a href="#Installation">3
Installation</a></td><td> </td><td align="left" valign="top">
-</td></tr>
-<tr><td align="left" valign="top"><a href="#Configuration">4
Configuration</a></td><td> </td><td align="left" valign="top">
-</td></tr>
-<tr><td align="left" valign="top"><a href="#Workflows">5
Workflows</a></td><td> </td><td align="left" valign="top">
-</td></tr>
-<tr><td align="left" valign="top"><a href="#Customization">6
Customization</a></td><td> </td><td align="left" valign="top">
-</td></tr>
-<tr><td align="left" valign="top"><a href="#Design">7
Design</a></td><td> </td><td align="left" valign="top">
-</td></tr>
-<tr><td align="left" valign="top"><a href="#Known-limitations">8 Known
limitations</a></td><td> </td><td align="left" valign="top">
-</td></tr>
-<tr><td align="left" valign="top"><a href="#Contributions">9
Contributions</a></td><td> </td><td align="left" valign="top">
-</td></tr>
-<tr><td align="left" valign="top"><a href="#Acknowledgments">10
Acknowledgments</a></td><td> </td><td align="left" valign="top">
-</td></tr>
-<tr><th colspan="3" align="left" valign="top"><pre
class="menu-comment">— The Detailed Node Listing —
-
-Installation
-
-</pre></th></tr><tr><td align="left" valign="top"><a
href="#Install-from-source">3.1 Install from
source</a></td><td> </td><td align="left" valign="top">
-</td></tr>
-<tr><td align="left" valign="top"><a href="#Install-from-package-archives">3.2
Install from package archives</a></td><td> </td><td align="left"
valign="top">
-</td></tr>
-<tr><td align="left" valign="top"><a href="#Install-from-Guix">3.3 Install
from Guix</a></td><td> </td><td align="left" valign="top">
-</td></tr>
-<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
-Workflows
-
-</pre></th></tr><tr><td align="left" valign="top"><a
href="#Integration-with-shells">5.1 Integration with
shells</a></td><td> </td><td align="left" valign="top">
-</td></tr>
-<tr><td align="left" valign="top"><a
href="#Integration-with-compile-and-shell_002dcommand">5.2 Integration with
compile and shell-command</a></td><td> </td><td align="left"
valign="top">
-</td></tr>
-<tr><td align="left" valign="top"><a href="#Session-management">5.3 Session
management</a></td><td> </td><td align="left" valign="top">
-</td></tr>
-<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
-Session management
-
-</pre></th></tr><tr><td align="left" valign="top"><a
href="#Detached-list-sessions">5.3.1 Detached list
sessions</a></td><td> </td><td align="left" valign="top">
-</td></tr>
-<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
-Customization
-
-</pre></th></tr><tr><td align="left" valign="top"><a href="#Notifications">6.1
Notifications</a></td><td> </td><td align="left" valign="top">
-</td></tr>
-<tr><td align="left" valign="top"><a href="#Detached-list">6.2 Detached
list</a></td><td> </td><td align="left" valign="top">
-</td></tr>
-<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
-Design
-
-</pre></th></tr><tr><td align="left" valign="top"><a href="#Sessions">7.1
Sessions</a></td><td> </td><td align="left" valign="top">
-</td></tr>
-<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
-Sessions
-
-</pre></th></tr><tr><td align="left" valign="top"><a
href="#Session-creation">7.1.1 Session
creation</a></td><td> </td><td align="left" valign="top">
-</td></tr>
-<tr><td align="left" valign="top"><a href="#Session-initialization">7.1.2
Session initialization</a></td><td> </td><td align="left"
valign="top">
-</td></tr>
-<tr><td align="left" valign="top"><a href="#Session-transition">7.1.3 Session
transition</a></td><td> </td><td align="left" valign="top">
-</td></tr>
-<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
-Known limitations
-
-</pre></th></tr><tr><td align="left" valign="top"><a
href="#Quotation-marks">8.1 Quotation marks</a></td><td> </td><td
align="left" valign="top">
-</td></tr>
-<tr><td align="left" valign="top"><a href="#Reproducible-environments">8.2
Reproducible environments</a></td><td> </td><td align="left"
valign="top">
-</td></tr>
-<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
-Acknowledgments
-
-</pre></th></tr><tr><td align="left" valign="top"><a
href="#Code-contributors">10.1 Code
contributors</a></td><td> </td><td align="left" valign="top">
-</td></tr>
-<tr><td align="left" valign="top"><a href="#Idea-contributors">10.2 Idea
contributors</a></td><td> </td><td align="left" valign="top">
-</td></tr>
-<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
-</pre></th></tr></table>
-
-<hr size="6">
-<a name="Overview"></a>
-<table class="header" cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#Top" title="Beginning of this
chapter or previous chapter"> << </a>]</td>
-<td valign="middle" align="left">[<a href="#Top" title="Previous section in
reading order"> < </a>]</td>
-<td valign="middle" align="left">[<a href="#Top" title="Up section"> Up
</a>]</td>
-<td valign="middle" align="left">[<a href="#Dependencies" title="Next section
in reading order"> > </a>]</td>
-<td valign="middle" align="left">[<a href="#Dependencies" title="Next
chapter"> >> </a>]</td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of
document">Top</a>]</td>
-<td valign="middle" align="left">[Contents]</td>
-<td valign="middle" align="left">[Index]</td>
-<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ?
</a>]</td>
-</tr></table>
-<a name="Overview-1"></a>
-<h1 class="chapter">1 Overview</h1>
-
-<p>The <code>detached</code> package allows Emacs to run processes which are
independent from Emacs itself. This is accomplished by offloading the process
creation to the program ‘<samp>dtach</samp>’.
-</p>
-<p>The package introduces a concept of a detached session. A session
constitutes of three parts:
-</p>
-<ul>
-<li>
-a dtach process
-</li><li>
-a log with all the process output
-</li><li>
-a datastructure in Emacs-Lisp
-</li></ul>
-
-<p>After a session has been created, Emacs can optionally attach to the
process. This is something that can be done seamlessly and therefore provides
no disruption in the ordinary workflows. Another feature provided by the
package is its monitoring of sessions. It will notify the user whenever a
session transitions from active to inactive. Since all the output of the
session is captured, and stored persistently, it can be thought of as a text
representation of the process.
-</p>
-<p>The package provides integration with the following built-in Emacs packages:
-</p>
-<ul>
-<li>
-<code>compile</code>
-</li><li>
-<code>dired</code>
-</li><li>
-<code>eshell</code>
-</li><li>
-<code>org</code>
-</li></ul>
-
-<p>It also offers support for some 3rd-party packages. For a full list of all
supported packages, see the variable
<code>detached-init-package-integration</code>.
-</p>
-<hr>
-<a name="Dependencies"></a>
-<table class="header" cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#Overview" title="Beginning of
this chapter or previous chapter"> << </a>]</td>
-<td valign="middle" align="left">[<a href="#Overview" title="Previous section
in reading order"> < </a>]</td>
-<td valign="middle" align="left">[<a href="#Top" title="Up section"> Up
</a>]</td>
-<td valign="middle" align="left">[<a href="#Installation" title="Next section
in reading order"> > </a>]</td>
-<td valign="middle" align="left">[<a href="#Installation" title="Next
chapter"> >> </a>]</td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of
document">Top</a>]</td>
-<td valign="middle" align="left">[Contents]</td>
-<td valign="middle" align="left">[Index]</td>
-<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ?
</a>]</td>
-</tr></table>
-<a name="Dependencies-1"></a>
-<h1 class="chapter">2 Dependencies</h1>
-
-<p>The package has no dependencies to other Emacs packages. The requirements
are that it needs to run on either ‘<samp>Linux</samp>’ or
‘<samp>macOS,</samp>’ since those are the operating systems
supported by the program ‘<samp>dtach</samp>’. Apart from dtach,
the complete list of external tools to get all the features from the package
are:
-</p>
-<ul>
-<li>
-‘<samp>tail</samp>’
-</li><li>
-‘<samp>script</samp>’
-</li><li>
-‘<samp>grep</samp>’
-</li><li>
-‘<samp>tee</samp>’
-</li></ul>
-
-<hr>
-<a name="Installation"></a>
-<table class="header" cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#Dependencies" title="Beginning
of this chapter or previous chapter"> << </a>]</td>
-<td valign="middle" align="left">[<a href="#Dependencies" title="Previous
section in reading order"> < </a>]</td>
-<td valign="middle" align="left">[<a href="#Top" title="Up section"> Up
</a>]</td>
-<td valign="middle" align="left">[<a href="#Install-from-source" title="Next
section in reading order"> > </a>]</td>
-<td valign="middle" align="left">[<a href="#Configuration" title="Next
chapter"> >> </a>]</td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of
document">Top</a>]</td>
-<td valign="middle" align="left">[Contents]</td>
-<td valign="middle" align="left">[Index]</td>
-<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ?
</a>]</td>
-</tr></table>
-<a name="Installation-1"></a>
-<h1 class="chapter">3 Installation</h1>
-
-<p>The <code>detached</code> package can be installed from ‘<samp>GNU
ELPA</samp>’ which is enabled by default. It is also available for
installation through the ‘<samp>Guix</samp>’ package manager.
-</p>
-<table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top"><a href="#Install-from-source">3.1 Install
from source</a></td><td> </td><td align="left" valign="top">
-</td></tr>
-<tr><td align="left" valign="top"><a href="#Install-from-package-archives">3.2
Install from package archives</a></td><td> </td><td align="left"
valign="top">
-</td></tr>
-<tr><td align="left" valign="top"><a href="#Install-from-Guix">3.3 Install
from Guix</a></td><td> </td><td align="left" valign="top">
-</td></tr>
-</table>
-
-<hr>
-<a name="Install-from-source"></a>
-<table class="header" cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#Installation" title="Beginning
of this chapter or previous chapter"> << </a>]</td>
-<td valign="middle" align="left">[<a href="#Installation" title="Previous
section in reading order"> < </a>]</td>
-<td valign="middle" align="left">[<a href="#Installation" title="Up section">
Up </a>]</td>
-<td valign="middle" align="left">[<a href="#Install-from-package-archives"
title="Next section in reading order"> > </a>]</td>
-<td valign="middle" align="left">[<a href="#Configuration" title="Next
chapter"> >> </a>]</td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of
document">Top</a>]</td>
-<td valign="middle" align="left">[Contents]</td>
-<td valign="middle" align="left">[Index]</td>
-<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ?
</a>]</td>
-</tr></table>
-<a name="Install-from-source-1"></a>
-<h2 class="section">3.1 Install from source</h2>
-
-<p>Download the source code from ‘<samp>sourcehut</samp>’.
-</p>
-<div class="example">
-<pre class="example">git clone https://git.sr.ht/~niklaseklund/detached.el
~/.config/emacs/packages/detached.el
-</pre></div>
-
-<p>Add the following code to ‘<samp>init.el</samp>’.
-</p>
-<div class="lisp">
-<pre class="lisp">(add-to-list 'load-path
"~/.config/emacs/packages/detached.el")
-</pre></div>
-
-<hr>
-<a name="Install-from-package-archives"></a>
-<table class="header" cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#Installation" title="Beginning
of this chapter or previous chapter"> << </a>]</td>
-<td valign="middle" align="left">[<a href="#Install-from-source"
title="Previous section in reading order"> < </a>]</td>
-<td valign="middle" align="left">[<a href="#Installation" title="Up section">
Up </a>]</td>
-<td valign="middle" align="left">[<a href="#Install-from-Guix" title="Next
section in reading order"> > </a>]</td>
-<td valign="middle" align="left">[<a href="#Configuration" title="Next
chapter"> >> </a>]</td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of
document">Top</a>]</td>
-<td valign="middle" align="left">[Contents]</td>
-<td valign="middle" align="left">[Index]</td>
-<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ?
</a>]</td>
-</tr></table>
-<a name="Install-from-package-archives-1"></a>
-<h2 class="section">3.2 Install from package archives</h2>
-
-<p>Run ‘<samp>M-x package-refresh-contents</samp>’ to make sure
the list of packages are up to date. List all the packages with
‘<samp>M-x package-list-packages</samp>’ and and find
‘<samp>detached</samp>’. Press return to get information about the
package, and press install.
-</p>
-<hr>
-<a name="Install-from-Guix"></a>
-<table class="header" cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#Installation" title="Beginning
of this chapter or previous chapter"> << </a>]</td>
-<td valign="middle" align="left">[<a href="#Install-from-package-archives"
title="Previous section in reading order"> < </a>]</td>
-<td valign="middle" align="left">[<a href="#Installation" title="Up section">
Up </a>]</td>
-<td valign="middle" align="left">[<a href="#Configuration" title="Next section
in reading order"> > </a>]</td>
-<td valign="middle" align="left">[<a href="#Configuration" title="Next
chapter"> >> </a>]</td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of
document">Top</a>]</td>
-<td valign="middle" align="left">[Contents]</td>
-<td valign="middle" align="left">[Index]</td>
-<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ?
</a>]</td>
-</tr></table>
-<a name="Install-from-Guix-1"></a>
-<h2 class="section">3.3 Install from Guix</h2>
-
-<p>To install <code>detached</code> with Guix run the following command in a
terminal.
-</p>
-<div class="example">
-<pre class="example">guix install emacs-detached
-</pre></div>
-
-<hr>
-<a name="Configuration"></a>
-<table class="header" cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#Installation" title="Beginning
of this chapter or previous chapter"> << </a>]</td>
-<td valign="middle" align="left">[<a href="#Install-from-Guix" title="Previous
section in reading order"> < </a>]</td>
-<td valign="middle" align="left">[<a href="#Top" title="Up section"> Up
</a>]</td>
-<td valign="middle" align="left">[<a href="#Workflows" title="Next section in
reading order"> > </a>]</td>
-<td valign="middle" align="left">[<a href="#Workflows" title="Next chapter">
>> </a>]</td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of
document">Top</a>]</td>
-<td valign="middle" align="left">[Contents]</td>
-<td valign="middle" align="left">[Index]</td>
-<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ?
</a>]</td>
-</tr></table>
-<a name="Configuration-1"></a>
-<h1 class="chapter">4 Configuration</h1>
-
-<p>This is a a minimal <code>use-package</code> configuration.
-</p>
-<div class="lisp">
-<pre class="lisp">(use-package detached
- :init
- (detached-init)
- :bind (([remap async-shell-command] . detached-shell-command)
- ([remap compile] . detached-compile)
- ([remap recompile] . detached-compile-recompile))
- :custom ((detached-terminal-data-command system-type)
- (detached-terminal-data-command system-type)))
-</pre></div>
-
-<hr>
-<a name="Workflows"></a>
-<table class="header" cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#Configuration"
title="Beginning of this chapter or previous chapter"> << </a>]</td>
-<td valign="middle" align="left">[<a href="#Configuration" title="Previous
section in reading order"> < </a>]</td>
-<td valign="middle" align="left">[<a href="#Top" title="Up section"> Up
</a>]</td>
-<td valign="middle" align="left">[<a href="#Integration-with-shells"
title="Next section in reading order"> > </a>]</td>
-<td valign="middle" align="left">[<a href="#Customization" title="Next
chapter"> >> </a>]</td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of
document">Top</a>]</td>
-<td valign="middle" align="left">[Contents]</td>
-<td valign="middle" align="left">[Index]</td>
-<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ?
</a>]</td>
-</tr></table>
-<a name="Workflows-1"></a>
-<h1 class="chapter">5 Workflows</h1>
-
-<table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top"><a href="#Integration-with-shells">5.1
Integration with shells</a></td><td> </td><td align="left"
valign="top">
-</td></tr>
-<tr><td align="left" valign="top"><a
href="#Integration-with-compile-and-shell_002dcommand">5.2 Integration with
compile and shell-command</a></td><td> </td><td align="left"
valign="top">
-</td></tr>
-<tr><td align="left" valign="top"><a href="#Session-management">5.3 Session
management</a></td><td> </td><td align="left" valign="top">
-</td></tr>
-</table>
-
-<hr>
-<a name="Integration-with-shells"></a>
-<table class="header" cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#Workflows" title="Beginning of
this chapter or previous chapter"> << </a>]</td>
-<td valign="middle" align="left">[<a href="#Workflows" title="Previous section
in reading order"> < </a>]</td>
-<td valign="middle" align="left">[<a href="#Workflows" title="Up section"> Up
</a>]</td>
-<td valign="middle" align="left">[<a
href="#Integration-with-compile-and-shell_002dcommand" title="Next section in
reading order"> > </a>]</td>
-<td valign="middle" align="left">[<a href="#Customization" title="Next
chapter"> >> </a>]</td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of
document">Top</a>]</td>
-<td valign="middle" align="left">[Contents]</td>
-<td valign="middle" align="left">[Index]</td>
-<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ?
</a>]</td>
-</tr></table>
-<a name="Integration-with-shells-1"></a>
-<h2 class="section">5.1 Integration with shells</h2>
-
-<p>The package supports integration with ‘<samp>shell</samp>’,
‘<samp>eshell</samp>’ and ‘<samp>vterm</samp>’. All of
the integrations work similarly. In all cases a detached minor mode is
provided. Each of the minor modes provides keybindings for the following
operations:
-</p>
-<ul>
-<li>
-Creating a session
-</li><li>
-Detaching from a session
-</li><li>
-Attach to a session
-</li></ul>
-
-<p>When creating a session Emacs will automatically attach to the underlying
‘<samp>dtach</samp>’ process and the result will look the same as
if ‘<samp>detached</samp>’ wasn’t used. The difference is
that the user can detach from the session with the keybinding determined by the
‘<samp>detached-detach-key</samp>’. If the prefix argument is
provided when creating the session detached will not attach to the session. To
later attach to a running se [...]
-</p>
-<hr>
-<a name="Integration-with-compile-and-shell_002dcommand"></a>
-<table class="header" cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#Workflows" title="Beginning of
this chapter or previous chapter"> << </a>]</td>
-<td valign="middle" align="left">[<a href="#Integration-with-shells"
title="Previous section in reading order"> < </a>]</td>
-<td valign="middle" align="left">[<a href="#Workflows" title="Up section"> Up
</a>]</td>
-<td valign="middle" align="left">[<a href="#Session-management" title="Next
section in reading order"> > </a>]</td>
-<td valign="middle" align="left">[<a href="#Customization" title="Next
chapter"> >> </a>]</td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of
document">Top</a>]</td>
-<td valign="middle" align="left">[Contents]</td>
-<td valign="middle" align="left">[Index]</td>
-<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ?
</a>]</td>
-</tr></table>
-<a name="Integration-with-compile-and-shell_002dcommand-1"></a>
-<h2 class="section">5.2 Integration with compile and shell-command</h2>
-
-<p>When creating a session with ‘<samp>detached-compile</samp>’ or
‘<samp>detached-shell-command</samp>’ Emacs will attach to the
process and show the result in a buffer. It is possible to detach from the
process with the ‘<samp>detached-detach-key</samp>’ and the buffer
will then be closed. Later on to attach to a session use any of the commands
provided mentioned in Session management.
-</p>
-<hr>
-<a name="Session-management"></a>
-<table class="header" cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#Workflows" title="Beginning of
this chapter or previous chapter"> << </a>]</td>
-<td valign="middle" align="left">[<a
href="#Integration-with-compile-and-shell_002dcommand" title="Previous section
in reading order"> < </a>]</td>
-<td valign="middle" align="left">[<a href="#Workflows" title="Up section"> Up
</a>]</td>
-<td valign="middle" align="left">[<a href="#Detached-list-sessions"
title="Next section in reading order"> > </a>]</td>
-<td valign="middle" align="left">[<a href="#Customization" title="Next
chapter"> >> </a>]</td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of
document">Top</a>]</td>
-<td valign="middle" align="left">[Contents]</td>
-<td valign="middle" align="left">[Index]</td>
-<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ?
</a>]</td>
-</tr></table>
-<a name="Session-management-1"></a>
-<h2 class="section">5.3 Session management</h2>
-
-<p>The package offers two different interfaces for session management,
‘<samp>detached-open-session</samp>’ and
‘<samp>detached-list-sessions</samp>’. The former uses the
completing-read interface, whilst the latter uses the tabulated list interface.
Each of the interfaces can be used to interact with a session. The
‘<samp>detached-list-sessions</samp>’ interface is however more
feature rich, and is what is recommended from the package author.
-</p>
-<table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top"><a href="#Detached-list-sessions">5.3.1
Detached list sessions</a></td><td> </td><td align="left"
valign="top">
-</td></tr>
-</table>
-
-<hr>
-<a name="Detached-list-sessions"></a>
-<table class="header" cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#Workflows" title="Beginning of
this chapter or previous chapter"> << </a>]</td>
-<td valign="middle" align="left">[<a href="#Session-management"
title="Previous section in reading order"> < </a>]</td>
-<td valign="middle" align="left">[<a href="#Session-management" title="Up
section"> Up </a>]</td>
-<td valign="middle" align="left">[<a href="#Customization" title="Next section
in reading order"> > </a>]</td>
-<td valign="middle" align="left">[<a href="#Customization" title="Next
chapter"> >> </a>]</td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of
document">Top</a>]</td>
-<td valign="middle" align="left">[Contents]</td>
-<td valign="middle" align="left">[Index]</td>
-<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ?
</a>]</td>
-</tr></table>
-<a name="Detached-list-sessions-1"></a>
-<h3 class="subsection">5.3.1 Detached list sessions</h3>
-
-<p>After opening ‘<samp>detached-list-sessions</samp>’ the user
can press ‘<samp>?</samp>’ to view a list of all commands
accessible in the buffer. Generally speaking there are commands to either
operate on the session at point, such as rerunning it and deleting it. Or there
are commands that operate on multiple sessions at once, such as marking
sessions or narrow the list of sessions based on a criteria.
-</p>
-<p>Narrow criteria are composable so that they each take effect after each
other. For example narrowing based on local sessions, narrows the list of
candidates, which further can be narrowed to sessions where the command match a
regular expression. The mode also features a command
‘<samp>detached-list-select-filter</samp>’ which allows the user to
select a preconfigured set of criteria defined in
‘<samp>detached-list-filters</samp>’.
-</p>
-<hr>
-<a name="Customization"></a>
-<table class="header" cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#Workflows" title="Beginning of
this chapter or previous chapter"> << </a>]</td>
-<td valign="middle" align="left">[<a href="#Detached-list-sessions"
title="Previous section in reading order"> < </a>]</td>
-<td valign="middle" align="left">[<a href="#Top" title="Up section"> Up
</a>]</td>
-<td valign="middle" align="left">[<a href="#Notifications" title="Next section
in reading order"> > </a>]</td>
-<td valign="middle" align="left">[<a href="#Design" title="Next chapter">
>> </a>]</td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of
document">Top</a>]</td>
-<td valign="middle" align="left">[Contents]</td>
-<td valign="middle" align="left">[Index]</td>
-<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ?
</a>]</td>
-</tr></table>
-<a name="Customization-1"></a>
-<h1 class="chapter">6 Customization</h1>
-
-<table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top"><a href="#Notifications">6.1
Notifications</a></td><td> </td><td align="left" valign="top">
-</td></tr>
-<tr><td align="left" valign="top"><a href="#Detached-list">6.2 Detached
list</a></td><td> </td><td align="left" valign="top">
-</td></tr>
-</table>
-
-<hr>
-<a name="Notifications"></a>
-<table class="header" cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#Customization"
title="Beginning of this chapter or previous chapter"> << </a>]</td>
-<td valign="middle" align="left">[<a href="#Customization" title="Previous
section in reading order"> < </a>]</td>
-<td valign="middle" align="left">[<a href="#Customization" title="Up section">
Up </a>]</td>
-<td valign="middle" align="left">[<a href="#Detached-list" title="Next section
in reading order"> > </a>]</td>
-<td valign="middle" align="left">[<a href="#Design" title="Next chapter">
>> </a>]</td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of
document">Top</a>]</td>
-<td valign="middle" align="left">[Contents]</td>
-<td valign="middle" align="left">[Index]</td>
-<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ?
</a>]</td>
-</tr></table>
-<a name="Notifications-1"></a>
-<h2 class="section">6.1 Notifications</h2>
-
-<p>By default <code>detached</code> uses the built in
<code>notifications</code> library to issue notifications to the user. This
solution is dependent on <code>dbus</code>, and if that doesn’t work the
user has the posbility to customize the
<code>detached-notification-function</code>.
-</p>
-<p>The variable can be changed to:
-</p><ul>
-<li>
-a custom function, created by the user
-</li><li>
-the <code>detached-state-transition-echo-message</code>, which uses the echo
area
-</li><li>
-the <code>detached-extra-alert-notification</code>, which relies on the
3rd-party package <code>alert</code>
-</li></ul>
-
-<hr>
-<a name="Detached-list"></a>
-<table class="header" cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#Customization"
title="Beginning of this chapter or previous chapter"> << </a>]</td>
-<td valign="middle" align="left">[<a href="#Notifications" title="Previous
section in reading order"> < </a>]</td>
-<td valign="middle" align="left">[<a href="#Customization" title="Up section">
Up </a>]</td>
-<td valign="middle" align="left">[<a href="#Design" title="Next section in
reading order"> > </a>]</td>
-<td valign="middle" align="left">[<a href="#Design" title="Next chapter">
>> </a>]</td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of
document">Top</a>]</td>
-<td valign="middle" align="left">[Contents]</td>
-<td valign="middle" align="left">[Index]</td>
-<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ?
</a>]</td>
-</tr></table>
-<a name="Detached-list-1"></a>
-<h2 class="section">6.2 Detached list</h2>
-
-<p>The buffer created by <code>detached-list-sessions</code> can be customized
in its appearance. This is done through the
<code>detached-list-display-buffer-action</code>. By default it will use:
-</p>
-<div class="lisp">
-<pre class="lisp">'(display-buffer-same-window
- (inhibit-same-window . nil))
-</pre></div>
-
-<p>Which makes the buffer replace the buffer in the current window. For those
that prefer a popup window, created at the bottom of the frame, the following
value can be used:
-</p>
-<div class="lisp">
-<pre class="lisp">'(display-buffer-at-bottom
- (window-height . 0.33))
-</pre></div>
-
-<hr>
-<a name="Design"></a>
-<table class="header" cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#Customization"
title="Beginning of this chapter or previous chapter"> << </a>]</td>
-<td valign="middle" align="left">[<a href="#Detached-list" title="Previous
section in reading order"> < </a>]</td>
-<td valign="middle" align="left">[<a href="#Top" title="Up section"> Up
</a>]</td>
-<td valign="middle" align="left">[<a href="#Sessions" title="Next section in
reading order"> > </a>]</td>
-<td valign="middle" align="left">[<a href="#Known-limitations" title="Next
chapter"> >> </a>]</td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of
document">Top</a>]</td>
-<td valign="middle" align="left">[Contents]</td>
-<td valign="middle" align="left">[Index]</td>
-<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ?
</a>]</td>
-</tr></table>
-<a name="Design-1"></a>
-<h1 class="chapter">7 Design</h1>
-
-<table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top"><a href="#Sessions">7.1
Sessions</a></td><td> </td><td align="left" valign="top">
-</td></tr>
-</table>
-
-<hr>
-<a name="Sessions"></a>
-<table class="header" cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#Design" title="Beginning of
this chapter or previous chapter"> << </a>]</td>
-<td valign="middle" align="left">[<a href="#Design" title="Previous section in
reading order"> < </a>]</td>
-<td valign="middle" align="left">[<a href="#Design" title="Up section"> Up
</a>]</td>
-<td valign="middle" align="left">[<a href="#Session-creation" title="Next
section in reading order"> > </a>]</td>
-<td valign="middle" align="left">[<a href="#Known-limitations" title="Next
chapter"> >> </a>]</td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of
document">Top</a>]</td>
-<td valign="middle" align="left">[Contents]</td>
-<td valign="middle" align="left">[Index]</td>
-<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ?
</a>]</td>
-</tr></table>
-<a name="Sessions-1"></a>
-<h2 class="section">7.1 Sessions</h2>
-
-<table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top"><a href="#Session-creation">7.1.1 Session
creation</a></td><td> </td><td align="left" valign="top">
-</td></tr>
-<tr><td align="left" valign="top"><a href="#Session-initialization">7.1.2
Session initialization</a></td><td> </td><td align="left"
valign="top">
-</td></tr>
-<tr><td align="left" valign="top"><a href="#Session-transition">7.1.3 Session
transition</a></td><td> </td><td align="left" valign="top">
-</td></tr>
-</table>
-
-<hr>
-<a name="Session-creation"></a>
-<table class="header" cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#Design" title="Beginning of
this chapter or previous chapter"> << </a>]</td>
-<td valign="middle" align="left">[<a href="#Sessions" title="Previous section
in reading order"> < </a>]</td>
-<td valign="middle" align="left">[<a href="#Sessions" title="Up section"> Up
</a>]</td>
-<td valign="middle" align="left">[<a href="#Session-initialization"
title="Next section in reading order"> > </a>]</td>
-<td valign="middle" align="left">[<a href="#Known-limitations" title="Next
chapter"> >> </a>]</td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of
document">Top</a>]</td>
-<td valign="middle" align="left">[Contents]</td>
-<td valign="middle" align="left">[Index]</td>
-<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ?
</a>]</td>
-</tr></table>
-<a name="Session-creation-1"></a>
-<h3 class="subsection">7.1.1 Session creation</h3>
-
-<p>When creating a session ‘<samp>three actions</samp>’ are taken:
-</p><ul>
-<li>
-The session’s directory is getting watched, unless its already watched
-</li><li>
-A timer-based validator function is being created
-</li><li>
-The session object is added to the list of unvalidated sessions
-</li></ul>
-
-<p>The steps taken above is done in order to handle a couple of different
scenarios:
-</p><ul>
-<li>
-The underlying ‘<samp>dtach</samp>’ session is never created, the
validator will recognize this and never insert the session into the database
-</li><li>
-The session is correctly created and is running when the validator is called,
it will update the state from ‘<samp>unknown</samp>’ to
‘<samp>active</samp>’ and insert the object into the database
-</li><li>
-The session is finished quickly before the validator is being run, it will
trigger a session directory event, this will update the session and insert it
into the database, at the same time it is removed from the list of
‘<samp>unvalidated</samp>’ sessions which will cause the
‘<samp>validator</samp>’ to not do anything
-</li></ul>
-
-<p>The logic described mean that the Emacs that creates the session is
responsible for validating the session. Only when a session has been validated,
or become inactive, it will be added to the database. When it is added to the
database it will cause other ‘<samp>Emacsen</samp>’ to read from
the database and then become aware of existence the session.
-</p>
-<hr>
-<a name="Session-initialization"></a>
-<table class="header" cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#Design" title="Beginning of
this chapter or previous chapter"> << </a>]</td>
-<td valign="middle" align="left">[<a href="#Session-creation" title="Previous
section in reading order"> < </a>]</td>
-<td valign="middle" align="left">[<a href="#Sessions" title="Up section"> Up
</a>]</td>
-<td valign="middle" align="left">[<a href="#Session-transition" title="Next
section in reading order"> > </a>]</td>
-<td valign="middle" align="left">[<a href="#Known-limitations" title="Next
chapter"> >> </a>]</td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of
document">Top</a>]</td>
-<td valign="middle" align="left">[Contents]</td>
-<td valign="middle" align="left">[Index]</td>
-<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ?
</a>]</td>
-</tr></table>
-<a name="Session-initialization-1"></a>
-<h3 class="subsection">7.1.2 Session initialization</h3>
-
-<p>The initialization of ‘<samp>sessions</samp>’ when
‘<samp>detached</samp>’ is loaded is performed in the following
steps:
-</p><ul>
-<li>
-All known sessions are read from the database
-</li><li>
-The directory where the database resides are being watched in order to detect
updates made to the database
-</li><li>
-A hash-table is created where all keys are session ids, and the values are the
status, which is initialized to ‘<samp>uninitialized</samp>’
-</li><li>
-For all sessions that are accessible, which is either local sessions or remote
sessions with an active connection
-<ul>
-<li>
-The hash-table is updated to ‘<samp>initialized</samp>’
-</li><li>
-The sessions ‘<samp>initialized-emacsen</samp>’ property is
updated with the process id of the current Emacs
-</li><li>
-If the session is registered as ‘<samp>active</samp>’ the session
is updated if it has transitioned to ‘<samp>inactive</samp>’,
otherwise its session directory is being watched
-</li><li>
-If the session is missing, ‘<samp>e.g.</samp>’ it has been deleted
from the computer, the session is removed from the database
-</li></ul>
-</li></ul>
-
-<hr>
-<a name="Session-transition"></a>
-<table class="header" cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#Design" title="Beginning of
this chapter or previous chapter"> << </a>]</td>
-<td valign="middle" align="left">[<a href="#Session-initialization"
title="Previous section in reading order"> < </a>]</td>
-<td valign="middle" align="left">[<a href="#Sessions" title="Up section"> Up
</a>]</td>
-<td valign="middle" align="left">[<a href="#Known-limitations" title="Next
section in reading order"> > </a>]</td>
-<td valign="middle" align="left">[<a href="#Known-limitations" title="Next
chapter"> >> </a>]</td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of
document">Top</a>]</td>
-<td valign="middle" align="left">[Contents]</td>
-<td valign="middle" align="left">[Index]</td>
-<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ?
</a>]</td>
-</tr></table>
-<a name="Session-transition-1"></a>
-<h3 class="subsection">7.1.3 Session transition</h3>
-
-<p>The ‘<samp>detached</samp>’ sessions are read from the
persistent ‘<samp>detached.db</samp>’ file when the package is
loaded. All ‘<samp>Emacsen</samp>’ that loads
‘<samp>detached</samp>’ are reading and writing to the same
database file, that allows the sessions to be shared among Emacsen.
-</p>
-<p>To avoid all Emacsen from sending a notification when a session becomes
inactive the responsibility is determined dynamically. All Emacsen, where
detached is loaded, registers their process in a file named
‘<samp>detached-emacsen</samp>’. Initialization of sessions are
done on a session basis
-</p>
-<hr>
-<a name="Known-limitations"></a>
-<table class="header" cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#Design" title="Beginning of
this chapter or previous chapter"> << </a>]</td>
-<td valign="middle" align="left">[<a href="#Session-transition"
title="Previous section in reading order"> < </a>]</td>
-<td valign="middle" align="left">[<a href="#Top" title="Up section"> Up
</a>]</td>
-<td valign="middle" align="left">[<a href="#Quotation-marks" title="Next
section in reading order"> > </a>]</td>
-<td valign="middle" align="left">[<a href="#Contributions" title="Next
chapter"> >> </a>]</td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of
document">Top</a>]</td>
-<td valign="middle" align="left">[Contents]</td>
-<td valign="middle" align="left">[Index]</td>
-<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ?
</a>]</td>
-</tr></table>
-<a name="Known-limitations-1"></a>
-<h1 class="chapter">8 Known limitations</h1>
-
-<p>The <code>detached</code> package have some known limitations. It is
designed around the idea that a single command is executed. Therefore it does
not support a session that can be re-used over time, which is a common use-case
with for example ‘<samp>tmux</samp>’.
-</p>
-<table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top"><a href="#Quotation-marks">8.1 Quotation
marks</a></td><td> </td><td align="left" valign="top">
-</td></tr>
-<tr><td align="left" valign="top"><a href="#Reproducible-environments">8.2
Reproducible environments</a></td><td> </td><td align="left"
valign="top">
-</td></tr>
-</table>
-
-<hr>
-<a name="Quotation-marks"></a>
-<table class="header" cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#Known-limitations"
title="Beginning of this chapter or previous chapter"> << </a>]</td>
-<td valign="middle" align="left">[<a href="#Known-limitations" title="Previous
section in reading order"> < </a>]</td>
-<td valign="middle" align="left">[<a href="#Known-limitations" title="Up
section"> Up </a>]</td>
-<td valign="middle" align="left">[<a href="#Reproducible-environments"
title="Next section in reading order"> > </a>]</td>
-<td valign="middle" align="left">[<a href="#Contributions" title="Next
chapter"> >> </a>]</td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of
document">Top</a>]</td>
-<td valign="middle" align="left">[Contents]</td>
-<td valign="middle" align="left">[Index]</td>
-<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ?
</a>]</td>
-</tr></table>
-<a name="Quotation-marks-1"></a>
-<h2 class="section">8.1 Quotation marks</h2>
-
-<p>The way the package transforms, the command the user wants to run, into a
‘<samp>detached</samp>’ command behaves incorrectly when it contain
double quotation marks. For example the following command:
-</p>
-<div class="example">
-<pre class="example">git shortlog --summary --numbered --all --no-merges
--since="01 Jan 2022"
-</pre></div>
-
-<p>Will unfortunately not be interpreted correctly. Instead the user needs to
use single quotation marks in order for it to work:
-</p>
-<div class="example">
-<pre class="example">git shortlog --summary --numbered --all --no-merges
--since='01 Jan 2022'
-</pre></div>
-
-<hr>
-<a name="Reproducible-environments"></a>
-<table class="header" cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#Known-limitations"
title="Beginning of this chapter or previous chapter"> << </a>]</td>
-<td valign="middle" align="left">[<a href="#Quotation-marks" title="Previous
section in reading order"> < </a>]</td>
-<td valign="middle" align="left">[<a href="#Known-limitations" title="Up
section"> Up </a>]</td>
-<td valign="middle" align="left">[<a href="#Contributions" title="Next section
in reading order"> > </a>]</td>
-<td valign="middle" align="left">[<a href="#Contributions" title="Next
chapter"> >> </a>]</td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of
document">Top</a>]</td>
-<td valign="middle" align="left">[Contents]</td>
-<td valign="middle" align="left">[Index]</td>
-<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ?
</a>]</td>
-</tr></table>
-<a name="Reproducible-environments-1"></a>
-<h2 class="section">8.2 Reproducible environments</h2>
-
-<p>The package works best when sessions can be re-run. For this to work, the
command needs to be robust against changes in the environment. Since only a
single command is run there can be no dependency to previously run commands in
the same shell, when the session is created. If the command the user wants to
run have such requirements the best thing to do is to create a shell script
that can set up that environment, and execute that script instead.
-</p>
-<p>The tool ‘<samp>direnv</samp>’ could ideally be used with
‘<samp>detached</samp>’, however there seems to be no way to make
it work for remote processes. So the recommendation for that use-case is the
same as above, create a shell script. For example a script named
‘<samp>direnv_command</samp>’ with the following content:
-</p>
-<div class="example">
-<pre class="example">#!/usr/bin/env bash
-direnv exec . "$@"
-</pre></div>
-
-<p>Then the following command would be reproducible.
-</p>
-<div class="example">
-<pre class="example">direnv_command python foo.py
-</pre></div>
-
-<hr>
-<a name="Contributions"></a>
-<table class="header" cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#Known-limitations"
title="Beginning of this chapter or previous chapter"> << </a>]</td>
-<td valign="middle" align="left">[<a href="#Reproducible-environments"
title="Previous section in reading order"> < </a>]</td>
-<td valign="middle" align="left">[<a href="#Top" title="Up section"> Up
</a>]</td>
-<td valign="middle" align="left">[<a href="#Acknowledgments" title="Next
section in reading order"> > </a>]</td>
-<td valign="middle" align="left">[<a href="#Acknowledgments" title="Next
chapter"> >> </a>]</td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of
document">Top</a>]</td>
-<td valign="middle" align="left">[Contents]</td>
-<td valign="middle" align="left">[Index]</td>
-<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ?
</a>]</td>
-</tr></table>
-<a name="Contributions-1"></a>
-<h1 class="chapter">9 Contributions</h1>
-
-<p>The package is part of <code>ELPA</code>, which means that if you want to
contribute, you must have a <a
href="https://www.gnu.org/software/emacs/manual/html_node/emacs/Copyright-Assignment.html">copyright
assignement</a>.
-</p>
-<hr>
-<a name="Acknowledgments"></a>
-<table class="header" cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#Contributions"
title="Beginning of this chapter or previous chapter"> << </a>]</td>
-<td valign="middle" align="left">[<a href="#Contributions" title="Previous
section in reading order"> < </a>]</td>
-<td valign="middle" align="left">[<a href="#Top" title="Up section"> Up
</a>]</td>
-<td valign="middle" align="left">[<a href="#Code-contributors" title="Next
section in reading order"> > </a>]</td>
-<td valign="middle" align="left">[ >> ]</td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of
document">Top</a>]</td>
-<td valign="middle" align="left">[Contents]</td>
-<td valign="middle" align="left">[Index]</td>
-<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ?
</a>]</td>
-</tr></table>
-<a name="Acknowledgments-1"></a>
-<h1 class="chapter">10 Acknowledgments</h1>
-
-<p>This package wouldn’t have been were it is today without these
contributors.
-</p>
-<table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top"><a href="#Code-contributors">10.1 Code
contributors</a></td><td> </td><td align="left" valign="top">
-</td></tr>
-<tr><td align="left" valign="top"><a href="#Idea-contributors">10.2 Idea
contributors</a></td><td> </td><td align="left" valign="top">
-</td></tr>
-</table>
-
-<hr>
-<a name="Code-contributors"></a>
-<table class="header" cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#Acknowledgments"
title="Beginning of this chapter or previous chapter"> << </a>]</td>
-<td valign="middle" align="left">[<a href="#Acknowledgments" title="Previous
section in reading order"> < </a>]</td>
-<td valign="middle" align="left">[<a href="#Acknowledgments" title="Up
section"> Up </a>]</td>
-<td valign="middle" align="left">[<a href="#Idea-contributors" title="Next
section in reading order"> > </a>]</td>
-<td valign="middle" align="left">[ >> ]</td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of
document">Top</a>]</td>
-<td valign="middle" align="left">[Contents]</td>
-<td valign="middle" align="left">[Index]</td>
-<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ?
</a>]</td>
-</tr></table>
-<a name="Code-contributors-1"></a>
-<h2 class="section">10.1 Code contributors</h2>
-
-<ul>
-<li>
-<a href="https://gitlab.com/rosetail">rosetail</a>
-</li><li>
-<a href="https://lists.sr.ht/~protesilaos">protesilaos</a>
-</li><li>
-<a href="https://www.iro.umontreal.ca/~monnier/">Stefan Monnier</a>
-</li></ul>
-
-<hr>
-<a name="Idea-contributors"></a>
-<table class="header" cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#Acknowledgments"
title="Beginning of this chapter or previous chapter"> << </a>]</td>
-<td valign="middle" align="left">[<a href="#Code-contributors" title="Previous
section in reading order"> < </a>]</td>
-<td valign="middle" align="left">[<a href="#Acknowledgments" title="Up
section"> Up </a>]</td>
-<td valign="middle" align="left">[ > ]</td>
-<td valign="middle" align="left">[ >> ]</td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left"> </td>
-<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of
document">Top</a>]</td>
-<td valign="middle" align="left">[Contents]</td>
-<td valign="middle" align="left">[Index]</td>
-<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ?
</a>]</td>
-</tr></table>
-<a name="Idea-contributors-1"></a>
-<h2 class="section">10.2 Idea contributors</h2>
-
-<ul>
-<li>
-<a href="https://gitlab.com/rosetail">rosetail</a> for all the great ideas and
improvements to the package. Without those contributions
‘detached.el‘ would be a less sophisticated package.
-</li><li>
-<a href="https://gitlab.com/ntdef">Troy de Freitas</a> for solving the problem
of getting ‘detached.el‘ to work with ‘filenotify‘ on
macOS.
-</li><li>
-<a href="https://gitlab.com/minad">Daniel Mendler</a> for helping out in
improving ‘detached.el‘, among other things integration with other
packages such as ‘embark‘ and ‘consult‘.
-</li><li>
-<a href="https://gitlab.com/ambrevar">Ambrevar</a> who indirectly contributed
by inspiring me with his <a
href="https://www.reddit.com/r/emacs/comments/6y3q4k/yes_eshell_is_my_main_shell/">yes
eshell is my main shell</a>. It was through that I discovered his <a
href="https://github.com/Ambrevar/dotfiles/blob/master/.emacs.d/lisp/package-eshell-detach.el">package-eshell-detach</a>
which got me into the idea of using ‘dtach‘ as a base for detached
shell commands.
-</li></ul>
-
-<hr size="6">
-<a name="SEC_About"></a>
-<table class="header" cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#Top" title="Cover (top) of
document">Top</a>]</td>
-<td valign="middle" align="left">[Contents]</td>
-<td valign="middle" align="left">[Index]</td>
-<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ?
</a>]</td>
-</tr></table>
-<h1>About This Document</h1>
-
-<p>
- This document was generated on <i>October 8, 2022</i> using <a
href="http://www.nongnu.org/texi2html/"><i>texi2html 5.0</i></a>.
-</p>
-<p>
- The buttons in the navigation panels have the following meaning:
-</p>
-<table border="1">
- <tr>
- <th> Button </th>
- <th> Name </th>
- <th> Go to </th>
- <th> From 1.2.3 go to</th>
- </tr>
- <tr>
- <td align="center"> [ << ] </td>
- <td align="center">FastBack</td>
- <td>Beginning of this chapter or previous chapter</td>
- <td>1</td>
- </tr>
- <tr>
- <td align="center"> [ < ] </td>
- <td align="center">Back</td>
- <td>Previous section in reading order</td>
- <td>1.2.2</td>
- </tr>
- <tr>
- <td align="center"> [ Up ] </td>
- <td align="center">Up</td>
- <td>Up section</td>
- <td>1.2</td>
- </tr>
- <tr>
- <td align="center"> [ > ] </td>
- <td align="center">Forward</td>
- <td>Next section in reading order</td>
- <td>1.2.4</td>
- </tr>
- <tr>
- <td align="center"> [ >> ] </td>
- <td align="center">FastForward</td>
- <td>Next chapter</td>
- <td>2</td>
- </tr>
- <tr>
- <td align="center"> [Top] </td>
- <td align="center">Top</td>
- <td>Cover (top) of document</td>
- <td> </td>
- </tr>
- <tr>
- <td align="center"> [Contents] </td>
- <td align="center">Contents</td>
- <td>Table of contents</td>
- <td> </td>
- </tr>
- <tr>
- <td align="center"> [Index] </td>
- <td align="center">Index</td>
- <td>Index</td>
- <td> </td>
- </tr>
- <tr>
- <td align="center"> [ ? ] </td>
- <td align="center">About</td>
- <td>About (help)</td>
- <td> </td>
- </tr>
-</table>
-
-<p>
- where the <strong> Example </strong> assumes that the current position is at
<strong> Subsubsection One-Two-Three </strong> of a document of the following
structure:
-</p>
-
-<ul>
- <li> 1. Section One
- <ul>
- <li>1.1 Subsection One-One
- <ul>
- <li>...</li>
- </ul>
- </li>
- <li>1.2 Subsection One-Two
- <ul>
- <li>1.2.1 Subsubsection One-Two-One</li>
- <li>1.2.2 Subsubsection One-Two-Two</li>
- <li>1.2.3 Subsubsection One-Two-Three
- <strong><== Current Position </strong></li>
- <li>1.2.4 Subsubsection One-Two-Four</li>
- </ul>
- </li>
- <li>1.3 Subsection One-Three
- <ul>
- <li>...</li>
- </ul>
- </li>
- <li>1.4 Subsection One-Four</li>
- </ul>
- </li>
-</ul>
-
-<hr>
-<p>
- <font size="-1">
- This document was generated on <i>October 8, 2022</i> using <a
href="http://www.nongnu.org/texi2html/"><i>texi2html 5.0</i></a>.
- </font>
- <br>
-
-</p>
-</body>
-</html>
diff --git a/doc/detached.info b/doc/detached.info
index 1a595bc3d9..7868d47d85 100644
--- a/doc/detached.info
+++ b/doc/detached.info
@@ -236,9 +236,9 @@ File: detached.info, Node: Integration with shells, Next:
Integration with com
===========================
The package supports integration with ‘shell’, ‘eshell’ and ‘vterm’.
-All of the integrations work similarly. In all cases a detached minor
-mode is provided. Each of the minor modes provides keybindings for the
-following operations:
+All of the these extensions work similarly, each implementing a detached
+minor mode, ‘detached-.*mode’. Each of the minor modes provides
+keybindings for the following operations:
• Creating a session
• Detaching from a session
@@ -575,24 +575,24 @@ Node: Install from Guix5427
Node: Configuration5690
Node: Workflows6243
Node: Integration with shells6471
-Node: Integration with compile and shell-command7501
-Node: Session management8109
-Node: Detached list sessions8732
-Node: Customization9684
-Node: Notifications9851
-Node: Detached list10512
-Node: Design11131
-Node: Sessions11269
-Node: Session creation11430
-Node: Session initialization12946
-Node: Session transition14184
-Node: Known limitations14880
-Node: Quotation marks15329
-Node: Reproducible environments15961
-Node: Contributions17021
-Node: Acknowledgments17364
-Node: Code contributors17616
-Node: Idea contributors17924
+Node: Integration with compile and shell-command7520
+Node: Session management8128
+Node: Detached list sessions8751
+Node: Customization9703
+Node: Notifications9870
+Node: Detached list10531
+Node: Design11150
+Node: Sessions11288
+Node: Session creation11449
+Node: Session initialization12965
+Node: Session transition14203
+Node: Known limitations14899
+Node: Quotation marks15348
+Node: Reproducible environments15980
+Node: Contributions17040
+Node: Acknowledgments17383
+Node: Code contributors17635
+Node: Idea contributors17943
End Tag Table
diff --git a/doc/detached.org b/doc/detached.org
index 42b9d82f72..5c8bd96478 100644
--- a/doc/detached.org
+++ b/doc/detached.org
@@ -114,7 +114,7 @@ This is a a minimal ~use-package~ configuration.
** Integration with shells
-The package supports integration with =shell=, =eshell= and =vterm=. All of
the integrations work similarly. In all cases a detached minor mode is
provided. Each of the minor modes provides keybindings for the following
operations:
+The package supports integration with =shell=, =eshell= and =vterm=. All of
the these extensions work similarly, each implementing a detached minor mode,
=detached-.*mode=. Each of the minor modes provides keybindings for the
following operations:
- Creating a session
- Detaching from a session
@@ -135,6 +135,7 @@ The package offers two different interfaces for session
management, =detached-op
After opening =detached-list-sessions= the user can press =?= to view a list
of all commands accessible in the buffer. Generally speaking there are commands
to either operate on the session at point, such as rerunning it and deleting
it. Or there are commands that operate on multiple sessions at once, such as
marking sessions or narrow the list of sessions based on a criteria.
Narrow criteria are composable so that they each take effect after each other.
For example narrowing based on local sessions, narrows the list of candidates,
which further can be narrowed to sessions where the command match a regular
expression. The mode also features a command =detached-list-select-filter=
which allows the user to select a preconfigured set of criteria defined in
=detached-list-filters=.
+
* Customization
** Notifications
@@ -145,6 +146,7 @@ The variable can be changed to:
- a custom function, created by the user
- the ~detached-state-transition-echo-message~, which uses the echo area
- the ~detached-extra-alert-notification~, which relies on the 3rd-party
package ~alert~
+
** Detached list
The buffer created by ~detached-list-sessions~ can be customized in its
appearance. This is done through the ~detached-list-display-buffer-action~. By
default it will use:
@@ -212,6 +214,7 @@ Will unfortunately not be interpreted correctly. Instead
the user needs to use s
#+begin_src sh
git shortlog --summary --numbered --all --no-merges --since='01 Jan 2022'
#+end_src
+
** Reproducible environments
The package works best when sessions can be re-run. For this to work, the
command needs to be robust against changes in the environment. Since only a
single command is run there can be no dependency to previously run commands in
the same shell, when the session is created. If the command the user wants to
run have such requirements the best thing to do is to create a shell script
that can set up that environment, and execute that script instead.
@@ -228,6 +231,7 @@ Then the following command would be reproducible.
#+begin_src sh
direnv_command python foo.py
#+end_src
+
* Contributions
The package is part of ~ELPA~, which means that if you want to contribute, you
must have a
[[https://www.gnu.org/software/emacs/manual/html_node/emacs/Copyright-Assignment.html][copyright
assignement]].
@@ -241,10 +245,10 @@ This package wouldn't have been were it is today without
these contributors.
- [[https://gitlab.com/rosetail][rosetail]]
- [[https://lists.sr.ht/~protesilaos][protesilaos]]
- [[https://www.iro.umontreal.ca/~monnier/][Stefan Monnier]]
+
** Idea contributors
- [[https://gitlab.com/rosetail][rosetail]] for all the great ideas and
improvements to the package. Without those contributions `detached.el` would be
a less sophisticated package.
- [[https://gitlab.com/ntdef][Troy de Freitas]] for solving the problem of
getting `detached.el` to work with `filenotify` on macOS.
- [[https://gitlab.com/minad][Daniel Mendler]] for helping out in improving
`detached.el`, among other things integration with other packages such as
`embark` and `consult`.
- [[https://gitlab.com/ambrevar][Ambrevar]] who indirectly contributed by
inspiring me with his
[[https://www.reddit.com/r/emacs/comments/6y3q4k/yes_eshell_is_my_main_shell/][yes
eshell is my main shell]]. It was through that I discovered his
[[https://github.com/Ambrevar/dotfiles/blob/master/.emacs.d/lisp/package-eshell-detach.el][package-eshell-detach]]
which got me into the idea of using `dtach` as a base for detached shell
commands.
-