rekahsoft-guix/gnu/packages/emacs-xyz.scm

688 lines
23 KiB
Scheme

;;; Copyright © 2020 Collin J. Doering <collin@rekahsoft.ca>
;;;
;;; This file is part of the GNU Guix channel rekahsoft-guix
;;;
;;; The rekahsoft-guix channel for GNU Guix is free software; you can
;;; redistribute it and/or modify it under the terms of the GNU General Public
;;; License as published by the Free Software Foundation; either version 3 of
;;; the License, or (at your option) any later version.
;;;
;;; The rekahsoft-guix channel for GNU Guix is distributed in the hope that it
;;; will be useful, but WITHOUT ANY WARRANTY; without even the implied
;;; warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License along
;;; with the rekahsoft-guix channel for GNU Guix. If not, see
;;; <http://www.gnu.org/licenses/>.
(define-module (gnu packages emacs-xyz)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix cvs-download)
#:use-module (guix download)
#:use-module (guix bzr-download)
#:use-module (guix git-download)
#:use-module (guix hg-download)
#:use-module (guix build-system gnu)
#:use-module (guix build-system cmake)
#:use-module (guix build-system emacs)
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system perl)
#:use-module (guix build-system trivial)
#:use-module (gnu packages)
#:use-module (gnu packages admin)
#:use-module (gnu packages audio)
#:use-module (gnu packages bash)
#:use-module (gnu packages cmake)
#:use-module (gnu packages code)
#:use-module (gnu packages cpp)
#:use-module (gnu packages curl)
#:use-module (gnu packages databases)
#:use-module (gnu packages dictionaries)
#:use-module (gnu packages emacs)
#:use-module (gnu packages guile)
#:use-module (gnu packages gtk)
#:use-module (gnu packages gnome)
#:use-module (gnu packages haskell-apps)
#:use-module (gnu packages ibus)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages python)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages telephony)
#:use-module (gnu packages terminals)
#:use-module (gnu packages tex)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages tcl)
#:use-module (gnu packages tls)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages xorg)
#:use-module (gnu packages lesstif)
#:use-module (gnu packages llvm)
#:use-module (gnu packages image)
#:use-module (gnu packages linux)
#:use-module (gnu packages libevent)
#:use-module (gnu packages lua)
#:use-module (gnu packages music)
#:use-module (gnu packages version-control)
#:use-module (gnu packages imagemagick)
#:use-module (gnu packages w3m)
#:use-module (gnu packages web)
#:use-module (gnu packages wget)
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages compression)
#:use-module (gnu packages node)
#:use-module (gnu packages xml)
#:use-module (gnu packages glib)
#:use-module (gnu packages acl)
#:use-module (gnu packages mail)
#:use-module (gnu packages messaging)
#:use-module (gnu packages package-management)
#:use-module (gnu packages perl)
#:use-module (gnu packages pdf)
#:use-module (gnu packages ruby)
#:use-module (gnu packages rust-apps)
#:use-module (gnu packages scheme)
#:use-module (gnu packages speech)
#:use-module (gnu packages xiph)
#:use-module (gnu packages mp3)
#:use-module (gnu packages gettext)
#:use-module (gnu packages fribidi)
#:use-module (gnu packages gd)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages password-utils)
#:use-module (gnu packages pulseaudio)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages shells)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages video)
#:use-module (gnu packages haskell-xyz)
#:use-module (gnu packages wordnet)
#:use-module (gnu packages photo)
#:use-module (gnu packages uml)
#:use-module (gnu packages finance)
#:use-module (guix utils)
#:use-module (srfi srfi-1)
#:use-module (ice-9 match))
;;;
;;; Emacs hacking.
;;;
(define-public emacs-helm-tramp
(package
(name "emacs-helm-tramp")
(version "1.3.9")
(source
(origin
(method url-fetch)
(uri (string-append
"https://stable.melpa.org/packages/helm-tramp-"
version
".el"))
(sha256
(base32
"1nhlfq113ngcb74n76z8c2wnki14vls18mml36iwi8y9k63flkcd"))))
(build-system emacs-build-system)
(propagated-inputs `(("emacs-helm" ,emacs-helm)))
(home-page
"https://github.com/masasam/emacs-helm-tramp")
(synopsis
"Tramp helm interface for ssh, docker, vagrant")
(description
"Provides interfaces of Tramp.
You can also use tramp with helm interface as root
If you use it with docker-tramp, you can also use docker with helm interface
If you use it with vagrant-tramp, you can also use vagrant with helm interface
")
(license license:gpl3)))
(define-public emacs-rebox2
(package
(name "emacs-rebox2")
(version "20121113.1300")
(source
(origin
(method url-fetch)
(uri (string-append
"https://melpa.org/packages/rebox2-"
version
".el"))
(sha256
(base32
"0ji5x2hnjklz9y4jd11hcfncbcfzgq1dg8r3s7dkrf696y4ziwwy"))))
(build-system emacs-build-system)
(home-page "https://github.com/lewang/rebox2")
(synopsis
"Inserting and modification of comment boxes in various styles")
(description
"Rebox2 provides major and minor modes for inserting and modification of
comment box is various text styles.")
(license #f)))
(define-public emacs-ibuffer-vc
(package
(name "emacs-ibuffer-vc")
(version "20181225.2227")
(source
(origin
(method url-fetch)
(uri (string-append
"https://melpa.org/packages/ibuffer-vc-"
version
".el"))
(sha256
(base32
"16nry1631g4draqh09r2rq92xpv5vsyxx9yd7r5i2m6kblqh4y3f"))))
(build-system emacs-build-system)
(home-page
"http://github.com/purcell/ibuffer-vc")
(synopsis
"Group ibuffer's list by VC project, or show VC status")
(description
"Adds functionality to ibuffer for grouping buffers by their parent
vc root directory, and for displaying and/or sorting by the vc
status of listed files.
")
(license license:gpl3)))
(define-public emacs-highlight-indent-guides
(package
(name "emacs-highlight-indent-guides")
(version "20190108.3")
(source
(origin
(method url-fetch)
(uri (string-append
"https://melpa.org/packages/highlight-indent-guides-"
version
".el"))
(sha256
(base32
"02imngb4y6f9vp4jxiwdbdcjxllvjwaa2rlh61zy49n2wivrlwh0"))))
(build-system emacs-build-system)
(home-page
"https://github.com/DarthFennec/highlight-indent-guides")
(synopsis "Minor mode to highlight indentation")
(description
"This minor mode highlights indentation levels via font-lock. Indent widths
are dynamically discovered, which means this correctly highlights in any
mode, regardless of indent width, even in languages with non-uniform
indentation such as Haskell. This mode works properly around hard tabs and
mixed indentation, and it behaves well in large buffers.")
(license #f)))
(define-public emacs-intel-hex-mode
(package
(name "emacs-intel-hex-mode")
(version "20180423.31")
(source
(origin
(method url-fetch)
(uri (string-append
"https://melpa.org/packages/intel-hex-mode-"
version
".el"))
(sha256
(base32
"1nvwjk686wna96srk3y9xniixas729x6m1rcjnc8lz1zkap9z9bv"))))
(build-system emacs-build-system)
(home-page
"https://github.com/mschuldt/intel-hex-mode")
(synopsis "Mode for Intel Hex files")
(description
"Use this mode for editing files in the intel hex format. The
intel-hex-mode will do font locking, and calculate checksums.")
(license license:gpl2)))
(define-public emacs-highlight-parentheses
(package
(name "emacs-highlight-parentheses")
(version "20180704.1102")
(source
(origin
(method url-fetch)
(uri (string-append
"https://melpa.org/packages/highlight-parentheses-"
version
".el"))
(sha256
(base32
"0dxnw7d966pm44a54rmd40vrrps56jaayrc8wwj7wxl2imdzqzbl"))))
(build-system emacs-build-system)
(home-page
"https://github.com/tsdh/highlight-parentheses.el")
(synopsis "Highlight surrounding parentheses")
(description
"Enable the mode using M-x highlight-parentheses-mode or by adding it to
a hook.")
(license license:gpl2)))
(define-public emacs-quack
(package
(name "emacs-quack")
(version "20181106.1301")
(source
(origin
(method url-fetch)
(uri (string-append
"https://melpa.org/packages/quack-"
version
".el"))
(sha256
(base32
"0ph6zh91kasgbvi425a5m1hz94pxk6qa3srpy4khifsbn7cwiyga"))))
(build-system emacs-build-system)
(home-page "unspecified")
(synopsis
"Enhanced support for editing and running Scheme code")
(description
"Quack enhances Emacs support for Scheme programming. The name
Quack was a play on DrScheme.")
(license license:gpl2)))
(define-public emacs-hamlet-mode
(package
(name "emacs-hamlet-mode")
(version "20131208.724")
(source
(origin
(method url-fetch)
(uri (string-append
"https://melpa.org/packages/hamlet-mode-"
version
".el"))
(sha256
(base32
"1r6nxi3d6bmnxrjjsam79vsprfwlnbhpag98vb1hj05yqp13l55v"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-dash" ,emacs-dash)
("emacs-s" ,emacs-s)))
(home-page
"https://github.com/lightquake/hamlet-mode")
(synopsis "Hamlet editing mode")
(description
"An Emacs major mode for editing files written in Hamlet, a
Haskell compile-time HTML templating engine. Currently it only provides
syntax highlighting.
Functions and variables with // in their name are private and may change or
go away at any time.")
(license #f)))
(define-public emacs-mu4e-maildirs-extension
(package
(name "emacs-mu4e-maildirs-extension")
(version "20180606.812")
(source
(origin
(method url-fetch)
(uri (string-append
"https://melpa.org/packages/mu4e-maildirs-extension-"
version
".el"))
(sha256
(base32
"0rcn8mkabhn3w010hchr3xg72z7815j8fshfrcgxxcf9kygsg85b"))))
(build-system emacs-build-system)
(propagated-inputs `(("emacs-dash" ,emacs-dash)))
(arguments
'(#:phases
(modify-phases %standard-phases
(replace 'build
(lambda* (#:key outputs #:allow-other-keys)
(invoke "emacs" "-batch"
"--eval" "(provide 'mu4e)"
"--eval" "(defvar mu4e~main-buffer-name \"tests\")"
"--eval" "(defvar mu4e-mu-binary \"mu\")"
"--eval" "(require 'cl)"
"-l" "dash.el"
"-l" "mu4e-maildirs-extension.el"
"--eval" "(byte-compile-file \"mu4e-maildirs-extension.el\")"))))))
(home-page
"http://github.com/agpchil/mu4e-maildirs-extension")
(synopsis
"Show mu4e maildirs summary in mu4e-main-view")
(description "Runs a mu command (async) in a shell process for each
maildir to count unread and total mails.")
(license license:gpl3)))
(define-public emacs-helm-unicode
(package
(name "emacs-helm-unicode")
(version "20180608.1407")
(source
(origin
(method url-fetch)
(uri (string-append
"https://melpa.org/packages/helm-unicode-"
version
".el"))
(sha256
(base32
"0w0wvh9kwa4rj98ldi9ppsprw74926a1niih36dp7hbb61xmm7ny"))))
(build-system emacs-build-system)
(propagated-inputs `(("emacs-helm" ,emacs-helm)))
(home-page "unspecified")
(synopsis "Helm command for unicode characters.")
(description
"A helm command for looking up unicode characters by name.")
(license #f)))
(define-public emacs-treemacs-projectile
(package
(name "emacs-treemacs-projectile")
(version "20200530.2129")
(source
(origin
(method url-fetch)
(uri (string-append
"https://melpa.org/packages/treemacs-projectile-"
version
".el"))
(sha256
(base32
"0llai57mzwfps9153xmdgmx616yvh2ilfh8fkcsxkq0zpizq2lfq"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-projectile" ,emacs-projectile)
("emacs-treemacs" ,emacs-treemacs)))
(home-page
"https://github.com/Alexander-Miller/treemacs")
(synopsis "Projectile integration for treemacs")
(description
"Projectile integration for treemacs
")
(license license:gpl3+)))
(define-public emacs-treemacs-icons-dired
(package
(name "emacs-treemacs-icons-dired")
(version "20200530.2129")
(source
(origin
(method url-fetch)
(uri (string-append
"https://melpa.org/packages/treemacs-icons-dired-"
version
".el"))
(sha256
(base32
"1k049pf4iyd72mbd3kkkxljbrirj5gdb3zlmsb3rdpr7p7acdjj9"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-treemacs" ,emacs-treemacs)))
(home-page
"https://github.com/Alexander-Miller/treemacs")
(synopsis "Treemacs icons for dired")
(description
"Treemacs icons for dired. Code is based on all-the-icons-dired.el
")
(license license:gpl3+)))
(define-public emacs-treemacs-magit
(package
(name "emacs-treemacs-magit")
(version "20200421.1426")
(source
(origin
(method url-fetch)
(uri (string-append
"https://melpa.org/packages/treemacs-magit-"
version
".el"))
(sha256
(base32
"0b7c5qmhvkf0v0qp6ycsz0f5sl1lnqm6acs5ssvsgkp91czi0m1f"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-treemacs" ,emacs-treemacs)
("emacs-pfuture" ,emacs-pfuture)
("emacs-magit" ,emacs-magit)))
(home-page
"https://github.com/Alexander-Miller/treemacs")
(synopsis "Magit integration for treemacs")
(description
"Closing the gaps for filewatch- and git-modes in conjunction with magit.
Specifically this package will hook into magit so as to artificially
produce filewatch events for changes that treemacs would otherwise
not catch, nameley the committing and (un)staging of files.
")
(license license:gpl3+)))
(define-public emacs-treemacs-persp
(package
(name "emacs-treemacs-persp")
(version "20200530.2129")
(source
(origin
(method url-fetch)
(uri (string-append
"https://melpa.org/packages/treemacs-persp-"
version
".el"))
(sha256
(base32
"0w9da9c40r54bmcw6nb92iq829jr4gwgzgn1m2fvcdl135r4bdpl"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-treemacs" ,emacs-treemacs)
("emacs-persp-mode" ,emacs-persp-mode)
("emacs-dash" ,emacs-dash)))
(home-page
"https://github.com/Alexander-Miller/treemacs")
(synopsis "Persp-mode integration for treemacs")
(description
"Integration of persp-mode into treemacs' buffer scoping framework.
")
(license license:gpl3+)))
(define-public emacs-treemacs-evil
(package
(name "emacs-treemacs-evil")
(version "20200716.2041")
(source
(origin
(method url-fetch)
(uri (string-append
"https://melpa.org/packages/treemacs-evil-"
version
".el"))
(sha256
(base32
"1gmsg4xwk3qpxs0h2d25jpzv0cfr6c954bq5pszdl2q39ihpg48m"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-evil" ,emacs-evil)
("emacs-treemacs" ,emacs-treemacs)))
(home-page
"https://github.com/Alexander-Miller/treemacs")
(synopsis "Evil mode integration for treemacs")
(description "Evil mode compatibility.
")
(license license:gpl3+)))
(define-public emacs-vimish-fold
(package
(name "emacs-vimish-fold")
(version "20200524.1729")
(source
(origin
(method url-fetch)
(uri (string-append
"https://melpa.org/packages/vimish-fold-"
version
".el"))
(sha256
(base32
"08p826zn4ris9b46r1d5z9v9jdj4lyr6kdmw4yhmnm9sk41z4bm4"))))
(build-system emacs-build-system)
(propagated-inputs `(("emacs-f" ,emacs-f)))
(home-page
"https://github.com/mrkkrp/vimish-fold")
(synopsis "Fold text like in Vim")
(description
"This is a package to perform text folding like in Vim. It has the
following features:
* folding of active regions;
* good visual feedback: it's obvious which part of text is folded;
* persistence by default: when you kill a buffer your folds don't
disappear;
* persistence scales well, you can work on hundreds of files with lots of
folds without adverse effects;
* it does not break indentation;
* folds can be toggled from folded state to unfolded and back very
easily;
* quick navigation between existing folds;
* you can use mouse to unfold folds (good for beginners and not only for
them);
* for fans of `avy package: you can use `avy' to fold text with minimal
number of key strokes!")
(license #f)))
(define-public emacs-grapnel
(package
(name "emacs-grapnel")
(version "20131001.1534")
(source
(origin
(method url-fetch)
(uri (string-append
"https://melpa.org/packages/grapnel-"
version
".el"))
(sha256
(base32
"1vnd025v7am19bamp0y50lq9abf2rzrbjslppvbk1ybb3lvw8n7q"))))
(build-system emacs-build-system)
(home-page
"http://www.github.com/leathekd/grapnel")
(synopsis
"HTTP request lib with flexible callback dispatch")
(description
"Grapnel is an HTTP request library that uses a curl subprocess and
offers flexible callback dispatch. Not only can you pass in an
alist of request outcomes to callback functions (see below) but you
can also override the dispatch function itself if the default one
doesn't suit your needs. Further, grapnel will build the query
string, request data (i.e., POST body), and headers from alists
that are passed in.
An example:
(grapnel-retrieve-url
\"www.google.com\"
'((success . (lambda (res hdrs) (message \"%s\" res)))
(failure . (lambda (res hdrs) (message \"Fail: %s\" res)))
(error . (lambda (res err) (message \"Err: %s\" err))))
\"GET\"
'((q . \"ASIN B001EN71CW\")))")
(license license:gpl3)))
(define-public emacs-ix
(package
(name "emacs-ix")
(version "20131027.1629")
(source
(origin
(method url-fetch)
(uri (string-append
"https://melpa.org/packages/ix-"
version
".el"))
(sha256
(base32
"165nr8cz2y0mpcav0bkc8kak5zji4fayrs9v9wdzn0nksq6wdbls"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-grapnel" ,emacs-grapnel)
("curl" ,curl)))
(home-page
"http://www.github.com/theanalyst/ix.el")
(synopsis
"Emacs client for http://ix.io pastebin")
(description
"ix.el is a simple emacs client to http://ix.io cmdline pastebin. At
the moment using the `ix' command on a selection sends the
selection to ix.io, entire buffer is sent if selection is inactive,
on success the url is notified in the minibuffer as well as saved
in the kill ring.
It is recommended to set a user name and token so that you can
later delete or replace a paste. Set this via the variables
`ix-user' and `ix-token' via M-x customize-group RET ix
Posts (if posted with user and token) can be deleted by `ix-delete'
command which prompts for post id (the string after http://ix.io/)
curl is used as the backend via grapnel http request library.")
(license #f)))
(define-public emacs-treemacs-all-the-icons
(package
(name "emacs-treemacs-all-the-icons")
(version "20200801.920")
(source
(origin
(method url-fetch)
(uri (string-append
"https://melpa.org/packages/treemacs-all-the-icons-"
version
".el"))
(sha256
(base32
"1dbsr6j4pz2l3p9ya82was7n6m2pvbz8wlxmvhn6xsnwd57c1xiq"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-all-the-icons" ,emacs-all-the-icons)
("emacs-treemacs" ,emacs-treemacs)))
(home-page
"https://github.com/Alexander-Miller/treemacs")
(synopsis
"An all-the-icons integration for treemacs")
(description "An all-the-icons integration for treemacs.
")
(license license:gpl3)))
(define-public emacs-persp-projectile
(package
(name "emacs-persp-projectile")
(version "20180616.1944")
(source
(origin
(method url-fetch)
(uri (string-append
"https://melpa.org/packages/persp-projectile-"
version
".el"))
(sha256
(base32
"1pc1v6rc44wl7sq0qchgc4lxiy8lr7zvp0hygcp95c1x0dkqs8jl"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-perspective" ,emacs-perspective)
("emacs-projectile" ,emacs-projectile)))
(home-page "https://github.com/bbatsov/persp-projectile")
(synopsis
"Perspective integration with Projectile")
(description
"This library bridges perspective mode to the awesome library
Projectile. The idea is to create a separate perspective when
switching project. A perspective is an independent workspace for
Emacs, similar to multiple desktops in Gnome and MacOS. I often
work on many projects at the same time, and using perspective and
projectile together allows me to easily know which project I'm
current in, and focus on files that only belong to current project
when switching buffer.
To use this library, put this file in your Emacs load path, and
call (require 'persp-projectile)
See perspective.el on github: https://github.com/nex3/perspective-el
")
(license license:gpl3+)))