gnu: Add emacs-hyperbole.
* gnu/packages/emacs-xyz.scm (emacs-hyperbole): Add at 7.0.3 Signed-off-by: Jakub Kądziołka <kuba@kadziolka.net>
This commit is contained in:
parent
ef6d3b6436
commit
7d80d79524
4 changed files with 207 additions and 0 deletions
|
@ -250,6 +250,74 @@ using geiser.")
|
||||||
(license license:bsd-3)
|
(license license:bsd-3)
|
||||||
(home-page "https://github.com/xiaohanyu/ac-geiser"))))
|
(home-page "https://github.com/xiaohanyu/ac-geiser"))))
|
||||||
|
|
||||||
|
(define-public emacs-hyperbole
|
||||||
|
(package
|
||||||
|
(name "emacs-hyperbole")
|
||||||
|
(version "7.0.3")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append
|
||||||
|
"http://ftpmirror.gnu.org/hyperbole/"
|
||||||
|
"hyperbole-" version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0znsjhm0lmzpmkgfni4qzx4l6dp604bmrzp3mwxxax2v96wpwmcx"))
|
||||||
|
(patches
|
||||||
|
(search-patches
|
||||||
|
"emacs-hyperbole-do-not-check-dir.patch"
|
||||||
|
"emacs-hyperbole-domainname.patch"
|
||||||
|
"emacs-hyperbole-toggle-messaging.patch"))))
|
||||||
|
(build-system emacs-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:include '("DEMO"
|
||||||
|
"DEMO-ROLO.otl"
|
||||||
|
"HY-ABOUT"
|
||||||
|
"\\.el$"
|
||||||
|
"\\.info$"
|
||||||
|
"\\.kotl$")
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-before 'install 'make-info
|
||||||
|
(lambda _
|
||||||
|
(invoke "make" "info"))))))
|
||||||
|
(propagated-inputs `(("inetutils" ,inetutils)))
|
||||||
|
(home-page "https://www.gnu.org/software/hyperbole/")
|
||||||
|
(synopsis "The Everyday Hypertextual Information Manager")
|
||||||
|
(description
|
||||||
|
"GNU Hyperbole, or just Hyperbole, is an easy-to-use, yet powerful and
|
||||||
|
programmable hypertextual information management system implemented as a GNU
|
||||||
|
Emacs package. It offers rapid views and interlinking of all kinds of textual
|
||||||
|
information, utilizing Emacs for editing. It can dramatically increase your
|
||||||
|
productivity and greatly reduce the number of keyboard/mouse keys you'll need
|
||||||
|
to work efficiently. Hyperbole lets you:
|
||||||
|
|
||||||
|
@itemize
|
||||||
|
@item Quickly create hyperlink buttons either from the keyboard or by dragging
|
||||||
|
between a source and destination window with a mouse button depressed. Later,
|
||||||
|
activate buttons by pressing/clicking on them or by giving the name of the
|
||||||
|
button.
|
||||||
|
@item Activate many kinds of \"implicit buttons\" recognized by context within
|
||||||
|
text buffers, e.g. URLs, grep output lines, and git commits. A single key or
|
||||||
|
mouse button automatically does the right thing in dozens of contexts; just
|
||||||
|
press and go.
|
||||||
|
@item Build outlines with multi-level numbered outline nodes, e.g. 1.4.8.6,
|
||||||
|
that all renumber automatically as any node or tree is moved in the outline.
|
||||||
|
Each node also has a permanent hyperlink anchor that you can reference from
|
||||||
|
any other node.
|
||||||
|
@item Manage all your contacts quickly with hierarchical categories and embed
|
||||||
|
hyperlinks within each entry. Or create an archive of documents with
|
||||||
|
hierarchical entries and use the same search mechanism to quickly find any
|
||||||
|
matching entry.
|
||||||
|
@item Use single keys to easily manage your Emacs windows or frames and
|
||||||
|
quickly retrieve saved window and frame configurations.
|
||||||
|
@item Search for things in your current buffers, in a directory tree or across
|
||||||
|
major web search engines with the touch of a few keys.
|
||||||
|
@end itemize
|
||||||
|
|
||||||
|
The common thread in all these features is making retrieval, management and
|
||||||
|
display of information fast and easy. That is Hyperbole's purpose.")
|
||||||
|
(license license:gpl3+)))
|
||||||
|
|
||||||
(define-public emacs-paredit
|
(define-public emacs-paredit
|
||||||
(package
|
(package
|
||||||
(name "emacs-paredit")
|
(name "emacs-paredit")
|
||||||
|
|
24
gnu/packages/patches/emacs-hyperbole-do-not-check-dir.patch
Normal file
24
gnu/packages/patches/emacs-hyperbole-do-not-check-dir.patch
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
From 3016fbd61e47978be73bbbaf7a8c2709bec42066 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Joseph LaFreniere <joseph@lafreniere.xyz>
|
||||||
|
Date: Fri, 12 Jul 2019 13:12:40 -0500
|
||||||
|
Subject: [PATCH] Do not run hyperb:check-dir-user during initialization
|
||||||
|
|
||||||
|
---
|
||||||
|
hyperbole.el | 1 -
|
||||||
|
1 file changed, 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/hyperbole.el b/hyperbole.el
|
||||||
|
index 872dbaf..6edb2a7 100644
|
||||||
|
--- a/hyperbole.el
|
||||||
|
+++ b/hyperbole.el
|
||||||
|
@@ -653,7 +653,6 @@ If FLAG is nil then text is shown, while if FLAG is t the text is hidden."
|
||||||
|
(interactive)
|
||||||
|
(message "Initializing Hyperbole...")
|
||||||
|
(run-hooks 'hyperbole-init-hook)
|
||||||
|
- (hyperb:check-dir-user)
|
||||||
|
(or (stringp hyperb:user-email)
|
||||||
|
(setq hyperb:user-email
|
||||||
|
(or (and (boundp 'user-mail-address)
|
||||||
|
--
|
||||||
|
2.22.0
|
||||||
|
|
29
gnu/packages/patches/emacs-hyperbole-domainname.patch
Normal file
29
gnu/packages/patches/emacs-hyperbole-domainname.patch
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
From 17c87ac58ce6d475fa1987347fcb868ef7f75e40 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Joseph LaFreniere <joseph@lafreniere.xyz>
|
||||||
|
Date: Sun, 2 Jun 2019 12:38:27 -0500
|
||||||
|
Subject: [PATCH] Replace executable domainname with hostname
|
||||||
|
|
||||||
|
Fixes build failure:
|
||||||
|
> ice-9/boot-9.scm:752:25: In procedure dispatch-exception:
|
||||||
|
> patch-el-files: unable to locate "domainname"
|
||||||
|
---
|
||||||
|
hypb.el | 3 +--
|
||||||
|
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/hypb.el b/hypb.el
|
||||||
|
index 6abc17a..0332946 100644
|
||||||
|
--- a/hypb.el
|
||||||
|
+++ b/hypb.el
|
||||||
|
@@ -183,8 +183,7 @@ Global keymap is used unless optional KEYMAP is given."
|
||||||
|
|
||||||
|
(defun hypb:domain-name ()
|
||||||
|
"Returns current Internet domain name with '@' prepended or nil if none."
|
||||||
|
- (let* ((dname-cmd (or (file-exists-p "/usr/bin/domainname")
|
||||||
|
- (file-exists-p "/bin/domainname")))
|
||||||
|
+ (let* ((dname-cmd (file-exists-p "/bin/hostname"))
|
||||||
|
(dname (or (and (boundp 'message-user-fqdn) (stringp message-user-fqdn)
|
||||||
|
(string-match "\\." message-user-fqdn)
|
||||||
|
message-user-fqdn)
|
||||||
|
--
|
||||||
|
2.21.0
|
||||||
|
|
86
gnu/packages/patches/emacs-hyperbole-toggle-messaging.patch
Normal file
86
gnu/packages/patches/emacs-hyperbole-toggle-messaging.patch
Normal file
|
@ -0,0 +1,86 @@
|
||||||
|
From 6d5c587ec719e3309077c7d637b03b13db65c047 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Joseph LaFreniere <joseph@lafreniere.xyz>
|
||||||
|
Date: Fri, 12 Jul 2019 12:43:46 -0500
|
||||||
|
Subject: [PATCH] Move definition of hyperbole-toggle-messaging to hsettings
|
||||||
|
|
||||||
|
---
|
||||||
|
hsettings.el | 25 +++++++++++++++++++++++++
|
||||||
|
hyperbole.el | 26 --------------------------
|
||||||
|
2 files changed, 25 insertions(+), 26 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/hsettings.el b/hsettings.el
|
||||||
|
index 6cdd1b8..9632067 100644
|
||||||
|
--- a/hsettings.el
|
||||||
|
+++ b/hsettings.el
|
||||||
|
@@ -163,6 +163,31 @@ package to display search results."
|
||||||
|
search-term)))
|
||||||
|
(user-error "(Hyperbole): Invalid web search service `%s'" service-name))))
|
||||||
|
|
||||||
|
+;;;###autoload
|
||||||
|
+(defun hyperbole-toggle-messaging (&optional arg)
|
||||||
|
+ "Toggle Hyperbole support for explicit buttons in mail and news buffers.
|
||||||
|
+Toggles the boolean variable `inhibit-hyperbole-messaging’ and either
|
||||||
|
+adds hooks (nil value) or removes them (t value).
|
||||||
|
+
|
||||||
|
+With optional prefix ARG > 0, enables support. If ARG <= 0,
|
||||||
|
+disables/inhibits support."
|
||||||
|
+ (interactive "P")
|
||||||
|
+ (setq inhibit-hyperbole-messaging (if (null arg)
|
||||||
|
+ (not inhibit-hyperbole-messaging)
|
||||||
|
+ (<= (prefix-numeric-value arg) 0)))
|
||||||
|
+ (if inhibit-hyperbole-messaging
|
||||||
|
+ (var:remove-all)
|
||||||
|
+ (var:append-all)
|
||||||
|
+ ;; Add any hooks that were skipped when inhibit-hyperbole-messaging
|
||||||
|
+ ;; was nil.
|
||||||
|
+ (cond ((boundp 'hyperbole-loading))
|
||||||
|
+ ((not after-init-time)
|
||||||
|
+ (add-hook 'after-init-hook (lambda () (load "hyperbole"))))
|
||||||
|
+ (t (load "hyperbole"))))
|
||||||
|
+ (if (called-interactively-p 'interactive)
|
||||||
|
+ (message "Hyperbole messaging button support is %s"
|
||||||
|
+ (if inhibit-hyperbole-messaging "disabled" "enabled"))))
|
||||||
|
+
|
||||||
|
(defcustom inhibit-hyperbole-messaging t
|
||||||
|
"*Determines whether Hyperbole supports explicit buttons in mail and news buffers.
|
||||||
|
The default of t means disable such support (work remains to
|
||||||
|
diff --git a/hyperbole.el b/hyperbole.el
|
||||||
|
index 4aa427d..872dbaf 100644
|
||||||
|
--- a/hyperbole.el
|
||||||
|
+++ b/hyperbole.el
|
||||||
|
@@ -121,32 +121,6 @@
|
||||||
|
t)))
|
||||||
|
(error "(Hyperbole): Startup failure: `hyperb:dir' must be manually added to `load-path' to fix.")))
|
||||||
|
|
||||||
|
-;; This must be defined before the defcustom `inhbit-hyperbole-messaging'.
|
||||||
|
-;;;###autoload
|
||||||
|
-(defun hyperbole-toggle-messaging (&optional arg)
|
||||||
|
- "Toggle Hyperbole support for explicit buttons in mail and news buffers.
|
||||||
|
-Toggles the boolean variable `inhibit-hyperbole-messaging’ and either
|
||||||
|
-adds hooks (nil value) or removes them (t value).
|
||||||
|
-
|
||||||
|
-With optional prefix ARG > 0, enables support. If ARG <= 0,
|
||||||
|
-disables/inhibits support."
|
||||||
|
- (interactive "P")
|
||||||
|
- (setq inhibit-hyperbole-messaging (if (null arg)
|
||||||
|
- (not inhibit-hyperbole-messaging)
|
||||||
|
- (<= (prefix-numeric-value arg) 0)))
|
||||||
|
- (if inhibit-hyperbole-messaging
|
||||||
|
- (var:remove-all)
|
||||||
|
- (var:append-all)
|
||||||
|
- ;; Add any hooks that were skipped when inhibit-hyperbole-messaging
|
||||||
|
- ;; was nil.
|
||||||
|
- (cond ((boundp 'hyperbole-loading))
|
||||||
|
- ((not after-init-time)
|
||||||
|
- (add-hook 'after-init-hook (lambda () (load "hyperbole"))))
|
||||||
|
- (t (load "hyperbole"))))
|
||||||
|
- (if (called-interactively-p 'interactive)
|
||||||
|
- (message "Hyperbole messaging button support is %s"
|
||||||
|
- (if inhibit-hyperbole-messaging "disabled" "enabled"))))
|
||||||
|
-
|
||||||
|
(defgroup hyperbole-koutliner nil
|
||||||
|
"Hyperbole multi-level autonumbered outliner customizations."
|
||||||
|
:group 'hyperbole)
|
||||||
|
--
|
||||||
|
2.22.0
|
||||||
|
|
Reference in a new issue