* gnu/packages/text-editors.scm(kakoune): Clean up package recipe, and add GUIX_KAKOUNE_DIRS search path.
Argh! That for loop makes kak source the default kakrc twice! This rebased patch series fixes that.
(I also added copy-build-system to use-modules so that we can install kak plugins properly, which was missing
from my patch. I didn't notice it while I was doing `git add -p` :))
gnu/packages/text-editors.scm | 26 +++++++++++++++++++++++---
1 file changed, 23 insertions(+), 3 deletions(-)
Toggle diff (58 lines)
diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm
index 45cc61765a..96e070807d 100644
--- a/gnu/packages/text-editors.scm
+++ b/gnu/packages/text-editors.scm
;;; Copyright © 2021 Leo Famulari <leo@famulari.name>
;;; Copyright © 2021 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2021 Calum Irwin <calumirwin1@gmail.com>
+;;; Copyright © 2022 (unmatched parenthesis <paren@disroot.org>
;;; This file is part of GNU Guix.
@@ -41,6 +42,7 @@ (define-module (gnu packages text-editors)
#:use-module (guix utils)
#:use-module (guix build-system cargo)
#:use-module (guix build-system cmake)
+ #:use-module (guix build-system copy)
#:use-module (guix build-system gnu)
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system python)
@@ -187,14 +189,32 @@ (define-public kakoune
(substitute* "src/shell_manager.cc"
(("if \\(m_shell.empty\\(\\)\\)" line)
(string-append "m_shell = \"" (which "sh")
(delete 'configure) ; no configure script
;; kakoune requires us to be in the src/ directory to build.
(add-before 'build 'chdir
- (lambda _ (chdir "src") #t)))))
+ (lambda _ (chdir "src")))
+ (add-before 'install 'patch-kakrc
+ ;; here, we modify the default kakrc to source all the $pkg/share/kak/autoload/*.kak
+ ;; files automatically.
+ (substitute* "share/kak/kakrc"
+ (("if \\[ -d \"\\$\\{kak_config}/autoload\" \\]; then .* fi")
+for dir in $(echo ${GUIX_KAKOUNE_CONFIG_DIRS} | sed 's/:/\\/autoload /g'); do
+ autoload_directory ${dir}
(list asciidoc pkg-config ruby))
+ (list (search-path-specification
+ ;; kakoune only supports one config dir, so we use this instead, so that we can
+ ;; modify the default kakrc to source all the autoloads.
+ (variable "GUIX_KAKOUNE_CONFIG_DIRS")
+ (files '("share/kak/")))))
(synopsis "Vim-inspired code editor")
"Kakoune is a code editor heavily inspired by Vim, as such most of its