@@ 0,0 1,188 @@
+(define-module (ruther packages ruther)
+ #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (guix packages)
+ #:use-module (guix download)
+ #:use-module (guix git-download)
+ #:use-module (gnu packages crates-io)
+ #:use-module (gnu packages glib)
+ #:use-module (gnu packages pkg-config)
+ #:use-module (guix build-system cargo)
+ )
+(define-public rust-from-variants-impl-1
+ (package
+ (name "rust-from-variants-impl")
+ (version "1.0.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "from_variants_impl" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "17p6djij0ar0c9dlfnq4dj9bgmq16fcsf3winjr9cv8fm12fd9am"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:skip-build? #t
+ #:cargo-inputs (("rust-darling" ,rust-darling-0.14)
+ ("rust-proc-macro2" ,rust-proc-macro2-1)
+ ("rust-quote" ,rust-quote-1)
+ ("rust-syn" ,rust-syn-1))))
+ (home-page "https://github.com/TedDriggs/from_variants")
+ (synopsis "Internal helper crate for from_variants crate")
+ (description
+ "This package provides Internal helper crate for from_variants crate.")
+ (license (list license:expat license:asl2.0))))
+
+(define-public rust-from-variants-1
+ (package
+ (name "rust-from-variants")
+ (version "1.0.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "from_variants" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "1wmv85523z261vwmx1iqjykf0dp8fvy9kgjxj0c7cs2p427rr1af"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:skip-build? #t
+ #:cargo-inputs (("rust-from-variants-impl" ,rust-from-variants-impl-1))))
+ (home-page "https://github.com/TedDriggs/from_variants")
+ (synopsis
+ "Rust macro to automatically generate conversions for newtype enums")
+ (description
+ "This package provides Rust macro to automatically generate conversions for newtype enums.")
+ (license (list license:expat license:asl2.0))))
+
+(define-public rust-enum-kinds-0.5
+ (package
+ (name "rust-enum-kinds")
+ (version "0.5.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "enum-kinds" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "0qnlgzlsydnxsgcf2lkvqsrmdxignjkam1fsnfd4c7b8amls2h2f"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:skip-build? #t
+ #:cargo-inputs (("rust-proc-macro2" ,rust-proc-macro2-1)
+ ("rust-quote" ,rust-quote-1)
+ ("rust-syn" ,rust-syn-1))))
+ (home-page "https://github.com/Soft/enum-kinds")
+ (synopsis
+ "Generate enums with matching variants but without any of the associated data")
+ (description
+ "This package provides Generate enums with matching variants but without any of the associated data.")
+ (license license:expat)))
+
+(define-public rust-derive-is-enum-variant-0.1
+ (package
+ (name "rust-derive-is-enum-variant")
+ (version "0.1.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "derive_is_enum_variant" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "15w18649m4h47pdpr04id0wv8br8bg606zvrafcrfijihicqib6h"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:skip-build? #t
+ #:cargo-inputs (("rust-heck" ,rust-heck-0.3)
+ ("rust-quote" ,rust-quote-0.3)
+ ("rust-syn" ,rust-syn-0.11))))
+ (home-page "https://github.com/fitzgen/derive_is_enum_variant")
+ (synopsis
+ "Automatically derives `is_dog` and `is_cat` methods for `enum Pet { Dog, Cat }`")
+ (description
+ "This package provides Automatically derives `is_dog` and `is_cat` methods for `enum Pet { Dog, Cat }`.")
+ (license (list license:asl2.0 license:expat))))
+
+(define-public rust-mpris-2
+ (package
+ (name "rust-mpris")
+ (version "2.0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "mpris" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "1svzblilq3kxgra63axl3wibsnl9g8p6b8q1x401wsw2lxazkkjm"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs (("rust-dbus" ,rust-dbus-0.9)
+ ("rust-derive-is-enum-variant" ,rust-derive-is-enum-variant-0.1)
+ ("rust-enum-kinds" ,rust-enum-kinds-0.5)
+ ("rust-from-variants" ,rust-from-variants-1)
+ ("rust-thiserror" ,rust-thiserror-1))
+ #:cargo-development-inputs (("rust-anyhow" ,rust-anyhow-1)
+ ("rust-termion" ,rust-termion-2))))
+ (home-page "https://github.com/Mange/mpris-rs")
+ (synopsis "Idiomatic MPRIS D-Bus interface library")
+ (description
+ "This package provides Idiomatic MPRIS D-Bus interface library.")
+ (license license:asl2.0)))
+
+(define-public mpris-ctl
+ (package
+ (name "mpris-ctl")
+ (version "0.0.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Rutherther/mpris-ctl.git")
+ (commit "c5731a17d99553d79810791e5a5aff61344669d5")))
+ (sha256
+ (base32 "0jkfdyx3xcvv5nlzgb9qd15j4km9jfaj4x8rlf2il6vclmknj4xz"))))
+ (build-system cargo-build-system)
+ (native-inputs
+ (list pkg-config))
+ (inputs
+ (list dbus))
+ (arguments
+ `(#:cargo-inputs (("rust-clap" ,rust-clap-4)
+ ("rust-futures" ,rust-futures-0.3)
+ ("rust-mpris" ,rust-mpris-2)
+ ("rust-serde" ,rust-serde-1)
+ ("rust-serde-json" ,rust-serde-json-1)
+ ("rust-tokio" ,rust-tokio-1)
+ ("rust-tokio-util", rust-tokio-util-0.7))))
+ (synopsis "Lightweight mpris control client")
+ (description "Lightweight mpris control client")
+ (home-page "https://github.com/Rutherther/mpris-ctl")
+ (license #f)))
+
+;; (define-configuration sequence-detector-config)
+
+
+(define-public sequence-detector
+ (package
+ (name "sequence-detector")
+ (version "0.0.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Rutherther/sequence-detector.git")
+ (commit "c447c0d83877907c3ade8a2e9b4f659d4ef92904")))
+ (sha256
+ (base32 "06719x0fv8arpld0n1kwc0v507gpbqjp3sx3kin72441fq9qi3q6"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs (("rust-clap" ,rust-clap-4)
+ ("rust-config" ,rust-config-0.13)
+ ("rust-serde" ,rust-serde-1)
+ ("rust-serde-json" ,rust-serde-json-1)
+ ("rust-serde-derive" ,rust-serde-derive-1))))
+ (synopsis "Detects sequences of inputs in short time")
+ (description "For example, if you want to have more control
+out of your headset, this gives more control by listening for a
+sequence, such as clicking a button two times.")
+ (home-page "https://github.com/Rutherther/mpris-ctl")
+ (license #f)))