@@ 16,6 16,16 @@
#:use-module (gnu packages fontutils)
#:use-module (gnu packages base)
+ #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (guix build-system cargo)
+ #:use-module (guix download)
+ #:use-module (guix git-download)
+ #:use-module (guix packages)
+ #:use-module (gnu packages xdisorg)
+ #:use-module (gnu packages crates-graphics)
+ #:use-module (gnu packages crates-windows)
+ #:use-module (gnu packages crates-io)
+
#:use-module ((guix build-system gnu))
#:use-module ((guix build-system gnu) #:prefix gnu:)
#:use-module ((guix build-system meson) #:prefix meson:)
@@ 94,6 104,36 @@
(description "mew is a efficient dynamic menu for Wayland, an effective port of dmenu to Wayland.")
(license license:expat)))
+(define-public wfreeze
+ (package
+ (name "wfreeze")
+ (version "1.0.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://codeberg.org/sewn/wfreeze")
+ (commit "b6fe6a54ca")))
+ (sha256
+ (base32 "10058n5dhmvr82hhpvppn0ak6zy60pv9yi66a3dgf08fgsgvz2p0"))))
+ (inputs
+ (list
+ pkg-config
+ wayland-protocols
+ wayland))
+ (arguments
+ (list
+ #:tests? #f
+ #:phases #~(modify-phases %standard-phases
+ (delete 'configure))
+ #:make-flags #~(list (string-append "CC=" #$(cc-for-target))
+ (string-append "PREFIX=" #$output))))
+ (home-page "https://codeberg.org/sewn/wfreeze")
+ (build-system gnu-build-system)
+ (synopsis "Freeze the screen, and run a command. Works well with slurp and compositors such as river and dwl.")
+ (description "Freeze the screen, and run a command. Works well with slurp and compositors such as river and dwl.")
+ (license license:expat)))
+
(define-public wayland-1.23
(package
(inherit wayland)
@@ 306,3 346,82 @@ Simple client implementing zwlr-output-power-management-v1.
wlopm is licensed under the GPLv3.")
(license license:gpl3)
(home-page "https://git.sr.ht/~leon_plickat/wlopm")))
+
+(define rust-argparse-0.2
+ (package
+ (name "rust-argparse")
+ (version "0.2.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "argparse" version))
+ (file-name
+ (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0iqy2jkifwq0azrrh26qjssp7sknjylycq35jkalzb744xcbz3iz"))))
+ (build-system cargo-build-system)
+ (arguments (list #:skip-build? #t))
+ (home-page
+ "http://github.com/tailhook/rust-argparse")
+ (synopsis
+ "Powerful command-line argument parsing library")
+ (description
+ "This package provides Powerful command-line argument parsing library.")
+ (license license:expat)))
+
+(define rust-scoped-tls-1
+ (package
+ (name "rust-scoped-tls")
+ (version "1.0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "scoped-tls" version))
+ (file-name
+ (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "15524h04mafihcvfpgxd8f4bgc3k95aclz8grjkg9a0rxcvn9kz1"))))
+ (build-system cargo-build-system)
+ (arguments (list #:skip-build? #t))
+ (home-page
+ "https://github.com/alexcrichton/scoped-tls")
+ (synopsis
+ "Library implementation of the standard library's old `scoped_thread_local!`\nmacro for providing scoped access to thread local storage (TLS) so any type can\nbe stored into TLS.")
+ (description
+ "This package provides Library implementation of the standard library's old `scoped_thread_local!`\nmacro for providing scoped access to thread local storage (TLS) so any type can\nbe stored into TLS.")
+ (license (list license:expat license:asl2.0))))
+
+(define-public wayfreeze
+ (package
+ (name "wayfreeze")
+ (version "0.1.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Jappie3/wayfreeze")
+ (commit "8277f981b4aace2a8411b39e2fbd4e15ad211078")))
+ (sha256
+ (base32 "0csgx2jhgk7lhl8cyrm61z4kkzpf5756cnzczqmcndmmag6h2mny"))))
+ (build-system cargo-build-system)
+ (inputs
+ (list
+ libxkbcommon))
+ (arguments
+ (list #:cargo-inputs
+ (list rust-argparse-0.2
+ rust-clap-4
+ rust-env-logger-0.11
+ rust-log-0.4
+ rust-tempfile-3
+ rust-wayland-client-0.31
+ rust-wayland-protocols-0.31
+ rust-wayland-protocols-wlr-0.2
+ rust-wayland-server-0.31
+ rust-xkbcommon-0.7)))
+ (home-page "https://github.com/Jappie3/wayfreeze")
+ (synopsis "A small CLI tool to freeze the screen of a wlroots compositor, this can be useful to, for example, take a screenshot. Supports multiple monitors & fractional scaling.")
+ (description "A small CLI tool to freeze the screen of a wlroots compositor, this can be useful to, for example, take a screenshot. Supports multiple monitors & fractional scaling.")
+ (license license:agpl3)))