The user interface of the dtache package just got an upgrade. The package now features the dtache-consult.el, which provides integration of dtache with the excellent consult package. The command dtache-consult-session is provided, and its intended to be used as replacement of dtache-open-session for consult users.

The reason to favor the dtache-consult-session is to leverage consult's ability to support multiple candidate sources. In the dtache context this means that by default all session candidates are shown, but by using the narrow feature of consult we can change the source to only display a subset.

Consult sources

The different sources that dtache-consult-session are using is defined in the dtache-consult-sources variable.

(defcustom dtache-consult-sources
  '(dtache-consult--source-session
    dtache-consult--source-active-session
    dtache-consult--source-inactive-session
    dtache-consult--source-success-session
    dtache-consult--source-failure-session
    dtache-consult--source-local-session
    dtache-consult--source-remote-session
    dtache-consult--source-current-session)
  "Sources used by `dtache-consult-session'.

See `consult-multi' for a description of the source values."
  :type '(repeat symbol)
  :group 'dtache)

The dtache-consult--source-session contains all sessions, while all the other (may) contain a subset of the sessions. Here is a short description of each of the sources and how to activate them.

Variable Type Key
dtache-consult–source-active-session Active sessions a
dtache-consult–source-inactive-sessio Inactive sessions i
dtache-consult–source-success-session Successful sessions s
dtache-consult–source-failure-session Failed sessions f
dtache-consult–source-local-session Local host sessions l
dtache-consult–source-remote-session Remote host sessions r
dtache-consult–source-current-session Current host sessions c

To be able to narrow the candidate sessions based on different criterion is a great feature, especially once the list of sessions starts to grow long. The dtache-consult sources can be grouped into three different types. Here are examples of the different sources.

State sources

The first type of source to narrow by is state. A session can either be in an active or inactive state.

Status sources

The second type of source to narrow by is status. A session’s status can either be success or failure.

Host sources

And lastly the type of source to narrow by is host. For this type there are three different criterion we can filter by. Firstly sessions that are running on our localhost. Secondly filters that are running on a remote host. Thirdly, sessions that are running on current host, which is useful when working on a remote host.

Click on this link to navigate to the project and check the README on how to get started with dtache-consult.