Skip to content

Creation Via Assist Key Drags

Alternatively, to create an explicit link button to a referent displayed within an Emacs window, simply drag with the Assist (not the Action) Mouse Key depressed from an editable source window to another window with the desired link referent and then release. The drag must start outside of a draggable item, see Displaying Items. Hyperbole will either automatically select the button type based on the referent context or will prompt you to select from one of a few possible link types.

In detail, you should split your current Emacs frame into two windows: one which contains the point at which you want a button to be inserted and another which shows the point to which you want to link. Depress the Assist Mouse Key at the source point for the button (anywhere but on a paired delimiter such as double quotes or parentheses). Then drag to the other window and release the Assist Mouse Key at the start point of the link referent. The process becomes quite simple with a little practice. (See Creation Via Menus, for a more detailed explanation of the explicit button creation process).

If a region was selected prior to the start of the drag, it is used as the button label; otherwise, you are prompted for the label. Hyperbole uses the link referent context to determine the type of link to make. If there are a few different types of links which are applicable from the context, you will be prompted with a list of the types. Simply use the Action Key or the first capital letter of the link type to select one of the type names to finish the link creation. Hyperbole will then insert explicit button delimiters around the button label and will display a message in the minibuffer indicating the button label, its action/link type, and any arguments, notably the thing to which it links.

The following table shows the type of link that will be created based upon the referent context in which the Action Key is released.

lisp
Referent Context         Link Type
----------------------------------------------------
Org Roam or Org Id       link-to-org-id
HyWikiWord Reference     link-to-wikiword
Global Button            link-to-gbut
Explicit Button          link-to-ebut
Implicit Button          link-to-ibut
Bookmarks List           link-to-bookmark
Info Index Item          link-to-Info-index-item
Info Node                link-to-Info-node
Texinfo Node             link-to-texinfo-node
Mail Reader Message      link-to-mail
Directory Name           link-to-directory
File Name                link-to-file
Koutline Cell            link-to-kcell
Single-line Region       link-to-string-match
HyWiki Page              link-to-wikiword
Org Heading              link-to-file
Outline Heading          link-to-file
Buffer attached to File  link-to-file
EOL in Dired Buffer      link-to-directory (Dired dir)
Buffer without File      link-to-buffer-tmp