Browse Source

gnu: Add emacs-vterm.

* gnu/packages/emacs-xyz.scm (emacs-vterm): New variable.

Signed-off-by: Ludovic Courtès <>
Joseph LaFreniere 2 years ago
committed by Ludovic Courtès
No known key found for this signature in database GPG Key ID: 90B11993D9AEBB5
1 changed files with 69 additions and 1 deletions
  1. +69

+ 69
- 1
gnu/packages/emacs-xyz.scm View File

@ -46,7 +46,7 @@
;;; Copyright © 2019 Brian Leung <>
;;; Copyright © 2019 mikadoZero <>
;;; Copyright © 2019 Gabriel Hondet <>
;;; Copyright © 2019 LaFreniere, Joseph <>
;;; Copyright © 2019, 2020 Joseph LaFreniere <>
;;; Copyright © 2019 Amar Singh <>
;;; Copyright © 2019 Baptiste Strazzulla <>
;;; Copyright © 2019 Giacomo Leidi <>
@ -105,6 +105,7 @@
#: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)
@ -17399,6 +17400,73 @@ next, volume) and display and control the current playlist as well as your
stored playlists.")
(license license:gpl3+)))
(define-public emacs-vterm
(let ((version "0")
(revision "1")
(commit "7d7381fa8104b55b70148cf147523d9ab7f01fcd"))
(name "emacs-vterm")
(version (git-version version revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "")
(commit commit)))
(file-name (git-file-name name version))
(build-system emacs-build-system)
`(#:modules ((guix build emacs-build-system)
((guix build cmake-build-system) #:prefix cmake:)
(guix build emacs-utils)
(guix build utils))
#:imported-modules (,@%emacs-build-system-modules
(guix build cmake-build-system))
(modify-phases %standard-phases
(add-before 'add-source-to-load-path 'remove-vterm-module-make
(lambda* (#:key outputs #:allow-other-keys)
;; Remove the Emacs Lisp file.
(delete-file "vterm-module-make.el")
;; Remove references to the removed file.
(make-file-writable "vterm.el")
(emacs-substitute-sexps "vterm.el"
("(or (require 'vterm-module nil t)"
,(string-append (assoc-ref outputs "out")
(add-after 'build 'configure
;; Run cmake.
(lambda* (#:key outputs #:allow-other-keys)
((assoc-ref cmake:%standard-phases 'configure)
#:outputs outputs
#:out-of-source? #f
#:configure-flags '("-DUSE_SYSTEM_LIBVTERM=ON"))
(add-after 'configure 'make
;; Run make.
(lambda* (#:key (make-flags '()) outputs #:allow-other-keys)
;; Compile the shared object file.
(apply invoke "make" "all" make-flags)
;; Move the file into /lib.
(string-append (assoc-ref outputs "out") "/lib"))
#:tests? #f))
`(("cmake" ,cmake-minimal)
("libtool" ,libtool)
("libvterm" ,libvterm)))
(home-page "")
(synopsis "Emacs libvterm integration")
(description "This package implements a bridge to @code{libvterm} to
display a terminal in an Emacs buffer.")
(license license:gpl3+))))
(define-public emacs-simple-mpc
;; There have been no releases.
(let ((commit "bee8520e81292b4c7353e45b193f9a13b482f5b2")