summaryrefslogtreecommitdiff
path: root/gnu/packages
diff options
context:
space:
mode:
authorEfraim Flashner <efraim@flashner.co.il>2026-02-26 17:04:27 +0200
committerEfraim Flashner <efraim@flashner.co.il>2026-02-26 17:33:13 +0200
commit12a9f53dd2a1f951ef42cfa2bfb4916864f997ad (patch)
tree0727dc7b5220a7e42040eccc2e4aa86ef550c213 /gnu/packages
parentab7631053e3a16800e3b9037d556e19d2a30ed49 (diff)
gnu: xremap: Rewrite install-completions phase.
* gnu/packages/rust-apps.scm (rust-xremap)[arguments]: Rewrite 'install-completions phase to make it cleaner. [native-inputs]: Add rust-xremap when cross-compiling. Change-Id: Ifb48b6cc26b60e2c10604c38c313e2acee858ad0
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/rust-apps.scm54
1 files changed, 29 insertions, 25 deletions
diff --git a/gnu/packages/rust-apps.scm b/gnu/packages/rust-apps.scm
index f29227d2c1d..8ed5a53bc61 100644
--- a/gnu/packages/rust-apps.scm
+++ b/gnu/packages/rust-apps.scm
@@ -4226,32 +4226,36 @@ and users are in full control of their data and workflow.")
"07hva0dy1d88bcrddm5jg54jlspf1cgbpxb1v9za6crk7bks3c9p"))))
(build-system cargo-build-system)
(arguments
- `(#:features '()
- #:install-source? #f
- #:phases
- (modify-phases %standard-phases
- (add-after 'install 'install-completions
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (share (string-append out "/share"))
- (xremap (string-append out "/bin/xremap")))
- (mkdir-p (string-append out "/etc/bash_completion.d"))
- (with-output-to-file
- (string-append out "/etc/bash_completion.d/xremap")
- (lambda _ (invoke xremap "--completions" "bash")))
- (mkdir-p (string-append share "/fish/vendor_completions.d"))
- (with-output-to-file
- (string-append share "/fish/vendor_completions.d/xremap.fish")
- (lambda _ (invoke xremap "--completions" "fish")))
- (mkdir-p (string-append share "/zsh/site-functions"))
- (with-output-to-file
- (string-append share "/zsh/site-functions/_xremap")
- (lambda _ (invoke xremap "--completions" "zsh")))
- (mkdir-p (string-append share "/elvish/lib"))
- (with-output-to-file
- (string-append share "/elvish/lib/xremap")
- (lambda _ (invoke xremap "--completions" "elvish")))))))))
+ (list
+ #:install-source? #f
+ #:modules
+ '((guix build cargo-build-system)
+ (guix build utils)
+ (ice-9 match))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'install 'install-completions
+ (lambda* (#:key native-inputs #:allow-other-keys)
+ (for-each
+ (match-lambda
+ ((shell . path)
+ (mkdir-p (in-vicinity #$output (dirname path)))
+ (let ((binary
+ (if #$(%current-target-system)
+ (search-input-file native-inputs "bin/xremap")
+ (in-vicinity #$output "bin/xremap"))))
+ (with-output-to-file (in-vicinity #$output path)
+ (lambda _
+ (invoke binary "--completions" shell))))))
+ '(("bash" . "share/bash-completion/completions/xremap")
+ ("elvish" . "share/elvish/lib/xremap")
+ ("fish" . "share/fish/vendor_completions.d/xremap.fish")
+ ("zsh" . "share/zsh/site-functions/_xremap"))))))))
(inputs (cargo-inputs 'rust-xremap))
+ (native-inputs
+ (if (%current-target-system)
+ (list this-package)
+ '()))
(home-page "https://github.com/xremap/xremap")
(synopsis "Dynamic key remapper for X and Wayland")
(description "This package provides dynamic key remapper for X and Wayland.")