summaryrefslogtreecommitdiff
path: root/gnu/packages/rust-apps.scm
diff options
context:
space:
mode:
authorJake Coble <j@kecoble.com>2026-03-12 19:57:59 -0400
committerDanny Milosavljevic <dannym@friendly-machines.com>2026-03-14 16:05:24 +0100
commita0424a295508cdbbceb07e2fa5f414c6779e1b1f (patch)
treed863fc7aedc1aac54fb20b9bc52ab28921380f6b /gnu/packages/rust-apps.scm
parenta863c41cafd952dd1141ffa2923b6b6019e38561 (diff)
gnu: Add ianny.
* gnu/packages/rust-apps.scm (ianny): New variable. * gnu/packages/rust-crates.scm: Add crates for ianny. Merges guix/guix!7094 Change-Id: I5c6e1ac1335cd26f122ebd64d974ac4ffc6b7fbf Signed-off-by: Danny Milosavljevic <dannym@friendly-machines.com>
Diffstat (limited to 'gnu/packages/rust-apps.scm')
-rw-r--r--gnu/packages/rust-apps.scm53
1 files changed, 53 insertions, 0 deletions
diff --git a/gnu/packages/rust-apps.scm b/gnu/packages/rust-apps.scm
index 827e778c938..8c05d01ffab 100644
--- a/gnu/packages/rust-apps.scm
+++ b/gnu/packages/rust-apps.scm
@@ -2097,6 +2097,59 @@ replacement for i3status, written in pure Rust. It provides a way to display
bar. It is also compatible with sway.")
(license license:gpl3)))
+(define-public ianny
+ (package
+ (name "ianny")
+ (version "2.1.3")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/zefr0x/ianny")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "14nmpz7nkjj2rr3g4f3npg8dd5b533wp73q90q4vgp06rf9mbyq8"))))
+ (build-system meson-build-system)
+ (arguments
+ (list
+ #:imported-modules `(,@%meson-build-system-modules
+ ,@%cargo-build-system-modules)
+ #:modules '(((guix build cargo-build-system) #:prefix cargo:)
+ (guix build meson-build-system)
+ (guix build utils))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'prepare-for-build
+ (lambda* (#:key outputs #:allow-other-keys)
+ (substitute* "meson.build"
+ (("/etc/xdg/autostart")
+ (string-append (assoc-ref outputs "out")
+ "/etc/xdg/autostart")))
+ (delete-file "Cargo.lock")))
+ ;; The meson 'configure phase changes to a different directory and
+ ;; we need it created before unpacking the crates.
+ (add-after 'configure 'prepare-cargo-build-system
+ (lambda args
+ (for-each
+ (lambda (phase)
+ (format #t "Running cargo phase: ~a~%" phase)
+ (apply (assoc-ref cargo:%standard-phases phase)
+ #:vendor-dir "vendor"
+ args))
+ '(unpack-rust-crates
+ configure
+ check-for-pregenerated-files
+ patch-cargo-checksums)))))))
+ (native-inputs (list pkg-config rust `(,rust "cargo")))
+ (inputs
+ (cons dbus (cargo-inputs 'ianny)))
+ (home-page "https://github.com/zefr0x/ianny")
+ (synopsis "RSI break timer for Wayland")
+ (description "Desktop utility that helps prevent repetitive strain injuries
+by keeping track of usage patterns and periodically reminding the user to take
+breaks.")
+ (license license:gpl3)))
+
(define-public iwmenu
(package
(name "iwmenu")