git: f0071a988b86 - main - x11/shikane: add new port

From: Jan Beich <jbeich_at_FreeBSD.org>
Date: Sun, 18 Jun 2023 00:21:38 UTC
The branch main has been updated by jbeich:

URL: https://cgit.FreeBSD.org/ports/commit/?id=f0071a988b860c8245e1d94900234dfa201f0ac8

commit f0071a988b860c8245e1d94900234dfa201f0ac8
Author:     Jan Beich <jbeich@FreeBSD.org>
AuthorDate: 2023-04-29 23:18:32 +0000
Commit:     Jan Beich <jbeich@FreeBSD.org>
CommitDate: 2023-06-18 00:21:01 +0000

    x11/shikane: add new port
    
    A dynamic output configuration tool that automatically detects and configures
    connected outputs based on a set of profiles.
    
    Each profile specifies a set of outputs with additional parameters (e.g., mode).
    A profile will be applied automatically if all specified outputs and modes can
    be perfectly matched to the currently connected outputs and their capabilities.
    
    This is a Wayland equivalent for tools like autorandr.
    It aims to fully replace kanshi and add new features.
    shikane works with Wayland compositors supporting version 3 of the
    wlr-output-management protocol (e.g., compositors using wlroots v0.16).
    
    https://gitlab.com/w0lff/shikane
---
 x11/Makefile                |   1 +
 x11/shikane/Makefile        |  40 ++++++++++
 x11/shikane/Makefile.crates |  87 ++++++++++++++++++++++
 x11/shikane/distinfo        | 177 ++++++++++++++++++++++++++++++++++++++++++++
 x11/shikane/pkg-descr       |  11 +++
 5 files changed, 316 insertions(+)

diff --git a/x11/Makefile b/x11/Makefile
index 1930adda83ce..33f19edd1560 100644
--- a/x11/Makefile
+++ b/x11/Makefile
@@ -356,6 +356,7 @@
     SUBDIR += setlayout
     SUBDIR += setxkbmap
     SUBDIR += sfwbar
+    SUBDIR += shikane
     SUBDIR += shotman
     SUBDIR += showkeys
     SUBDIR += showmethekey
diff --git a/x11/shikane/Makefile b/x11/shikane/Makefile
new file mode 100644
index 000000000000..5e3d011f70a5
--- /dev/null
+++ b/x11/shikane/Makefile
@@ -0,0 +1,40 @@
+PORTNAME=	shikane
+DISTVERSIONPREFIX=	v
+DISTVERSION=	0.2.0
+CATEGORIES=	x11 wayland
+
+MAINTAINER=	jbeich@FreeBSD.org
+COMMENT=	Dynamic output configuration tool for Wayland compositors
+WWW=		https://gitlab.com/w0lff/shikane
+
+LICENSE=	MIT
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+USES=		cargo
+USE_GITLAB=	yes
+GL_ACCOUNT=	w0lff
+GL_COMMIT=	5a25f501b9ba13c4379ecf6ed14dae4c8801d78f
+PLIST_FILES=	bin/${PORTNAME}
+
+OPTIONS_DEFINE=	MANPAGES
+OPTIONS_DEFAULT=MANPAGES
+OPTIONS_EXCLUDE_i386=	MANPAGES # https://github.com/haskell-foundation/foundation/issues/565
+
+MANPAGES_BUILD_DEPENDS=	bash:shells/bash \
+			pandoc:textproc/hs-pandoc
+MANPAGES_PLIST_FILES=	share/man/man1/${PORTNAME}.1.gz \
+			share/man/man5/${PORTNAME}.5.gz
+
+do-build-MANPAGES-on:
+	${WRKSRC}/scripts/build-docs.sh man
+
+do-install-MANPAGES-on:
+	${INSTALL_MAN} ${WRKSRC}/build/${PORTNAME}.1.gz \
+		${STAGEDIR}${PREFIX}/share/man/man1
+	${INSTALL_MAN} ${WRKSRC}/build/${PORTNAME}.5.gz \
+		${STAGEDIR}${PREFIX}/share/man/man5
+
+post-install:
+	${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/${PORTNAME}
+
+.include <bsd.port.mk>
diff --git a/x11/shikane/Makefile.crates b/x11/shikane/Makefile.crates
new file mode 100644
index 000000000000..ed85f7be3a55
--- /dev/null
+++ b/x11/shikane/Makefile.crates
@@ -0,0 +1,87 @@
+CARGO_CRATES=	aho-corasick-0.7.20 \
+		atty-0.2.14 \
+		autocfg-1.1.0 \
+		bitflags-1.3.2 \
+		byteorder-1.4.3 \
+		calloop-0.10.5 \
+		cc-1.0.79 \
+		cfg-if-1.0.0 \
+		clap-3.2.23 \
+		clap_derive-3.2.18 \
+		clap_lex-0.2.4 \
+		dirs-4.0.0 \
+		dirs-sys-0.3.7 \
+		dlib-0.5.0 \
+		downcast-rs-1.2.0 \
+		env_logger-0.10.0 \
+		errno-0.2.8 \
+		errno-dragonfly-0.1.2 \
+		fxhash-0.2.1 \
+		getrandom-0.2.8 \
+		hashbrown-0.12.3 \
+		heck-0.4.0 \
+		hermit-abi-0.1.19 \
+		hermit-abi-0.2.6 \
+		hopcroft-karp-0.2.1 \
+		humantime-2.1.0 \
+		indexmap-1.9.2 \
+		io-lifetimes-1.0.4 \
+		is-terminal-0.4.2 \
+		libc-0.2.139 \
+		libloading-0.7.4 \
+		linux-raw-sys-0.1.4 \
+		log-0.4.17 \
+		memchr-2.5.0 \
+		memoffset-0.6.5 \
+		memoffset-0.7.1 \
+		nix-0.25.1 \
+		nix-0.26.2 \
+		once_cell-1.17.0 \
+		os_str_bytes-6.4.1 \
+		pkg-config-0.3.26 \
+		proc-macro-error-1.0.4 \
+		proc-macro-error-attr-1.0.4 \
+		proc-macro2-1.0.50 \
+		quick-xml-0.23.1 \
+		quote-1.0.23 \
+		redox_syscall-0.2.16 \
+		redox_users-0.4.3 \
+		regex-1.7.1 \
+		regex-syntax-0.6.28 \
+		rustix-0.36.7 \
+		scoped-tls-1.0.1 \
+		serde-1.0.152 \
+		serde_derive-1.0.152 \
+		slotmap-1.0.6 \
+		smallvec-1.10.0 \
+		static_assertions-1.1.0 \
+		strsim-0.10.0 \
+		syn-1.0.107 \
+		termcolor-1.2.0 \
+		textwrap-0.16.0 \
+		thiserror-1.0.38 \
+		thiserror-impl-1.0.38 \
+		toml-0.5.11 \
+		unicode-ident-1.0.6 \
+		vec_map-0.8.2 \
+		version_check-0.9.4 \
+		wasi-0.11.0+wasi-snapshot-preview1 \
+		wayland-backend-0.1.0 \
+		wayland-client-0.30.0 \
+		wayland-protocols-0.30.0 \
+		wayland-protocols-wlr-0.1.0 \
+		wayland-scanner-0.30.0 \
+		wayland-sys-0.30.1 \
+		winapi-0.3.9 \
+		winapi-i686-pc-windows-gnu-0.4.0 \
+		winapi-util-0.1.5 \
+		winapi-x86_64-pc-windows-gnu-0.4.0 \
+		windows-sys-0.42.0 \
+		windows_aarch64_gnullvm-0.42.1 \
+		windows_aarch64_msvc-0.42.1 \
+		windows_i686_gnu-0.42.1 \
+		windows_i686_msvc-0.42.1 \
+		windows_x86_64_gnu-0.42.1 \
+		windows_x86_64_gnullvm-0.42.1 \
+		windows_x86_64_msvc-0.42.1 \
+		xdg-2.4.1
diff --git a/x11/shikane/distinfo b/x11/shikane/distinfo
new file mode 100644
index 000000000000..a5694f1ab22c
--- /dev/null
+++ b/x11/shikane/distinfo
@@ -0,0 +1,177 @@
+TIMESTAMP = 1682810312
+SHA256 (rust/crates/aho-corasick-0.7.20.crate) = cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac
+SIZE (rust/crates/aho-corasick-0.7.20.crate) = 111440
+SHA256 (rust/crates/atty-0.2.14.crate) = d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8
+SIZE (rust/crates/atty-0.2.14.crate) = 5470
+SHA256 (rust/crates/autocfg-1.1.0.crate) = d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa
+SIZE (rust/crates/autocfg-1.1.0.crate) = 13272
+SHA256 (rust/crates/bitflags-1.3.2.crate) = bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a
+SIZE (rust/crates/bitflags-1.3.2.crate) = 23021
+SHA256 (rust/crates/byteorder-1.4.3.crate) = 14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610
+SIZE (rust/crates/byteorder-1.4.3.crate) = 22512
+SHA256 (rust/crates/calloop-0.10.5.crate) = 1a59225be45a478d772ce015d9743e49e92798ece9e34eda9a6aa2a6a7f40192
+SIZE (rust/crates/calloop-0.10.5.crate) = 53694
+SHA256 (rust/crates/cc-1.0.79.crate) = 50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f
+SIZE (rust/crates/cc-1.0.79.crate) = 62624
+SHA256 (rust/crates/cfg-if-1.0.0.crate) = baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd
+SIZE (rust/crates/cfg-if-1.0.0.crate) = 7934
+SHA256 (rust/crates/clap-3.2.23.crate) = 71655c45cb9845d3270c9d6df84ebe72b4dad3c2ba3f7023ad47c144e4e473a5
+SIZE (rust/crates/clap-3.2.23.crate) = 219435
+SHA256 (rust/crates/clap_derive-3.2.18.crate) = ea0c8bce528c4be4da13ea6fead8965e95b6073585a2f05204bd8f4119f82a65
+SIZE (rust/crates/clap_derive-3.2.18.crate) = 28208
+SHA256 (rust/crates/clap_lex-0.2.4.crate) = 2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5
+SIZE (rust/crates/clap_lex-0.2.4.crate) = 9652
+SHA256 (rust/crates/dirs-4.0.0.crate) = ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059
+SIZE (rust/crates/dirs-4.0.0.crate) = 12503
+SHA256 (rust/crates/dirs-sys-0.3.7.crate) = 1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6
+SIZE (rust/crates/dirs-sys-0.3.7.crate) = 10597
+SHA256 (rust/crates/dlib-0.5.0.crate) = ac1b7517328c04c2aa68422fc60a41b92208182142ed04a25879c26c8f878794
+SIZE (rust/crates/dlib-0.5.0.crate) = 5788
+SHA256 (rust/crates/downcast-rs-1.2.0.crate) = 9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650
+SIZE (rust/crates/downcast-rs-1.2.0.crate) = 11670
+SHA256 (rust/crates/env_logger-0.10.0.crate) = 85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0
+SIZE (rust/crates/env_logger-0.10.0.crate) = 36574
+SHA256 (rust/crates/errno-0.2.8.crate) = f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1
+SIZE (rust/crates/errno-0.2.8.crate) = 9276
+SHA256 (rust/crates/errno-dragonfly-0.1.2.crate) = aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf
+SIZE (rust/crates/errno-dragonfly-0.1.2.crate) = 1810
+SHA256 (rust/crates/fxhash-0.2.1.crate) = c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c
+SIZE (rust/crates/fxhash-0.2.1.crate) = 4102
+SHA256 (rust/crates/getrandom-0.2.8.crate) = c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31
+SIZE (rust/crates/getrandom-0.2.8.crate) = 30553
+SHA256 (rust/crates/hashbrown-0.12.3.crate) = 8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888
+SIZE (rust/crates/hashbrown-0.12.3.crate) = 102968
+SHA256 (rust/crates/heck-0.4.0.crate) = 2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9
+SIZE (rust/crates/heck-0.4.0.crate) = 11161
+SHA256 (rust/crates/hermit-abi-0.1.19.crate) = 62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33
+SIZE (rust/crates/hermit-abi-0.1.19.crate) = 9979
+SHA256 (rust/crates/hermit-abi-0.2.6.crate) = ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7
+SIZE (rust/crates/hermit-abi-0.2.6.crate) = 13027
+SHA256 (rust/crates/hopcroft-karp-0.2.1.crate) = a72f3d9ba936766ff5d1c23504b6da754e4eb882e36f390e57a257214cb2762e
+SIZE (rust/crates/hopcroft-karp-0.2.1.crate) = 4347
+SHA256 (rust/crates/humantime-2.1.0.crate) = 9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4
+SIZE (rust/crates/humantime-2.1.0.crate) = 16749
+SHA256 (rust/crates/indexmap-1.9.2.crate) = 1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399
+SIZE (rust/crates/indexmap-1.9.2.crate) = 54627
+SHA256 (rust/crates/io-lifetimes-1.0.4.crate) = e7d6c6f8c91b4b9ed43484ad1a938e393caf35960fce7f82a040497207bd8e9e
+SIZE (rust/crates/io-lifetimes-1.0.4.crate) = 35815
+SHA256 (rust/crates/is-terminal-0.4.2.crate) = 28dfb6c8100ccc63462345b67d1bbc3679177c75ee4bf59bf29c8b1d110b8189
+SIZE (rust/crates/is-terminal-0.4.2.crate) = 7577
+SHA256 (rust/crates/libc-0.2.139.crate) = 201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79
+SIZE (rust/crates/libc-0.2.139.crate) = 638983
+SHA256 (rust/crates/libloading-0.7.4.crate) = b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f
+SIZE (rust/crates/libloading-0.7.4.crate) = 27580
+SHA256 (rust/crates/linux-raw-sys-0.1.4.crate) = f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4
+SIZE (rust/crates/linux-raw-sys-0.1.4.crate) = 878981
+SHA256 (rust/crates/log-0.4.17.crate) = abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e
+SIZE (rust/crates/log-0.4.17.crate) = 38028
+SHA256 (rust/crates/memchr-2.5.0.crate) = 2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d
+SIZE (rust/crates/memchr-2.5.0.crate) = 65812
+SHA256 (rust/crates/memoffset-0.6.5.crate) = 5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce
+SIZE (rust/crates/memoffset-0.6.5.crate) = 7686
+SHA256 (rust/crates/memoffset-0.7.1.crate) = 5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4
+SIZE (rust/crates/memoffset-0.7.1.crate) = 8556
+SHA256 (rust/crates/nix-0.25.1.crate) = f346ff70e7dbfd675fe90590b92d59ef2de15a8779ae305ebcbfd3f0caf59be4
+SIZE (rust/crates/nix-0.25.1.crate) = 272312
+SHA256 (rust/crates/nix-0.26.2.crate) = bfdda3d196821d6af13126e40375cdf7da646a96114af134d5f417a9a1dc8e1a
+SIZE (rust/crates/nix-0.26.2.crate) = 277973
+SHA256 (rust/crates/once_cell-1.17.0.crate) = 6f61fba1741ea2b3d6a1e3178721804bb716a68a6aeba1149b5d52e3d464ea66
+SIZE (rust/crates/once_cell-1.17.0.crate) = 32736
+SHA256 (rust/crates/os_str_bytes-6.4.1.crate) = 9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee
+SIZE (rust/crates/os_str_bytes-6.4.1.crate) = 23101
+SHA256 (rust/crates/pkg-config-0.3.26.crate) = 6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160
+SIZE (rust/crates/pkg-config-0.3.26.crate) = 18662
+SHA256 (rust/crates/proc-macro-error-1.0.4.crate) = da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c
+SIZE (rust/crates/proc-macro-error-1.0.4.crate) = 25293
+SHA256 (rust/crates/proc-macro-error-attr-1.0.4.crate) = a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869
+SIZE (rust/crates/proc-macro-error-attr-1.0.4.crate) = 7971
+SHA256 (rust/crates/proc-macro2-1.0.50.crate) = 6ef7d57beacfaf2d8aee5937dab7b7f28de3cb8b1828479bb5de2a7106f2bae2
+SIZE (rust/crates/proc-macro2-1.0.50.crate) = 41667
+SHA256 (rust/crates/quick-xml-0.23.1.crate) = 11bafc859c6815fbaffbbbf4229ecb767ac913fecb27f9ad4343662e9ef099ea
+SIZE (rust/crates/quick-xml-0.23.1.crate) = 161488
+SHA256 (rust/crates/quote-1.0.23.crate) = 8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b
+SIZE (rust/crates/quote-1.0.23.crate) = 28058
+SHA256 (rust/crates/redox_syscall-0.2.16.crate) = fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a
+SIZE (rust/crates/redox_syscall-0.2.16.crate) = 24012
+SHA256 (rust/crates/redox_users-0.4.3.crate) = b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b
+SIZE (rust/crates/redox_users-0.4.3.crate) = 15353
+SHA256 (rust/crates/regex-1.7.1.crate) = 48aaa5748ba571fb95cd2c85c09f629215d3a6ece942baa100950af03a34f733
+SIZE (rust/crates/regex-1.7.1.crate) = 239648
+SHA256 (rust/crates/regex-syntax-0.6.28.crate) = 456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848
+SIZE (rust/crates/regex-syntax-0.6.28.crate) = 299288
+SHA256 (rust/crates/rustix-0.36.7.crate) = d4fdebc4b395b7fbb9ab11e462e20ed9051e7b16e42d24042c776eca0ac81b03
+SIZE (rust/crates/rustix-0.36.7.crate) = 290628
+SHA256 (rust/crates/scoped-tls-1.0.1.crate) = e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294
+SIZE (rust/crates/scoped-tls-1.0.1.crate) = 8202
+SHA256 (rust/crates/serde-1.0.152.crate) = bb7d1f0d3021d347a83e556fc4683dea2ea09d87bccdf88ff5c12545d89d5efb
+SIZE (rust/crates/serde-1.0.152.crate) = 77091
+SHA256 (rust/crates/serde_derive-1.0.152.crate) = af487d118eecd09402d70a5d72551860e788df87b464af30e5ea6a38c75c541e
+SIZE (rust/crates/serde_derive-1.0.152.crate) = 55586
+SHA256 (rust/crates/slotmap-1.0.6.crate) = e1e08e261d0e8f5c43123b7adf3e4ca1690d655377ac93a03b2c9d3e98de1342
+SIZE (rust/crates/slotmap-1.0.6.crate) = 58954
+SHA256 (rust/crates/smallvec-1.10.0.crate) = a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0
+SIZE (rust/crates/smallvec-1.10.0.crate) = 31564
+SHA256 (rust/crates/static_assertions-1.1.0.crate) = a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f
+SIZE (rust/crates/static_assertions-1.1.0.crate) = 18480
+SHA256 (rust/crates/strsim-0.10.0.crate) = 73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623
+SIZE (rust/crates/strsim-0.10.0.crate) = 11355
+SHA256 (rust/crates/syn-1.0.107.crate) = 1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5
+SIZE (rust/crates/syn-1.0.107.crate) = 237539
+SHA256 (rust/crates/termcolor-1.2.0.crate) = be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6
+SIZE (rust/crates/termcolor-1.2.0.crate) = 17917
+SHA256 (rust/crates/textwrap-0.16.0.crate) = 222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d
+SIZE (rust/crates/textwrap-0.16.0.crate) = 53722
+SHA256 (rust/crates/thiserror-1.0.38.crate) = 6a9cd18aa97d5c45c6603caea1da6628790b37f7a34b6ca89522331c5180fed0
+SIZE (rust/crates/thiserror-1.0.38.crate) = 18947
+SHA256 (rust/crates/thiserror-impl-1.0.38.crate) = 1fb327af4685e4d03fa8cbcf1716380da910eeb2bb8be417e7f9fd3fb164f36f
+SIZE (rust/crates/thiserror-impl-1.0.38.crate) = 15429
+SHA256 (rust/crates/toml-0.5.11.crate) = f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234
+SIZE (rust/crates/toml-0.5.11.crate) = 54910
+SHA256 (rust/crates/unicode-ident-1.0.6.crate) = 84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc
+SIZE (rust/crates/unicode-ident-1.0.6.crate) = 42158
+SHA256 (rust/crates/vec_map-0.8.2.crate) = f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191
+SIZE (rust/crates/vec_map-0.8.2.crate) = 14466
+SHA256 (rust/crates/version_check-0.9.4.crate) = 49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f
+SIZE (rust/crates/version_check-0.9.4.crate) = 14895
+SHA256 (rust/crates/wasi-0.11.0+wasi-snapshot-preview1.crate) = 9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423
+SIZE (rust/crates/wasi-0.11.0+wasi-snapshot-preview1.crate) = 28131
+SHA256 (rust/crates/wayland-backend-0.1.0.crate) = fb23bfea266c92bb051ea36cce0eb1a52b743dc1c5f168021947eda79764656d
+SIZE (rust/crates/wayland-backend-0.1.0.crate) = 68334
+SHA256 (rust/crates/wayland-client-0.30.0.crate) = 1a925bd68c8b652af4e6f11a32410bd31bf84061c5ef279ed081520c60f203b4
+SIZE (rust/crates/wayland-client-0.30.0.crate) = 64555
+SHA256 (rust/crates/wayland-protocols-0.30.0.crate) = 7fefbeb8a360abe67ab7c2efe1d297a1a50ee011f5460791bc18870c26bb84e2
+SIZE (rust/crates/wayland-protocols-0.30.0.crate) = 127598
+SHA256 (rust/crates/wayland-protocols-wlr-0.1.0.crate) = fce991093320e4a6a525876e6b629ab24da25f9baef0c2e0080ad173ec89588a
+SIZE (rust/crates/wayland-protocols-wlr-0.1.0.crate) = 25759
+SHA256 (rust/crates/wayland-scanner-0.30.0.crate) = 4834c14b3edf1d9986c83ca79b1e7e3afbe9874c7c144702f6467063259ce45d
+SIZE (rust/crates/wayland-scanner-0.30.0.crate) = 34206
+SHA256 (rust/crates/wayland-sys-0.30.1.crate) = 96b2a02ac608e07132978689a6f9bf4214949c85998c247abadd4f4129b1aa06
+SIZE (rust/crates/wayland-sys-0.30.1.crate) = 8358
+SHA256 (rust/crates/winapi-0.3.9.crate) = 5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419
+SIZE (rust/crates/winapi-0.3.9.crate) = 1200382
+SHA256 (rust/crates/winapi-i686-pc-windows-gnu-0.4.0.crate) = ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6
+SIZE (rust/crates/winapi-i686-pc-windows-gnu-0.4.0.crate) = 2918815
+SHA256 (rust/crates/winapi-util-0.1.5.crate) = 70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178
+SIZE (rust/crates/winapi-util-0.1.5.crate) = 10164
+SHA256 (rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.crate) = 712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f
+SIZE (rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.crate) = 2947998
+SHA256 (rust/crates/windows-sys-0.42.0.crate) = 5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7
+SIZE (rust/crates/windows-sys-0.42.0.crate) = 3006791
+SHA256 (rust/crates/windows_aarch64_gnullvm-0.42.1.crate) = 8c9864e83243fdec7fc9c5444389dcbbfd258f745e7853198f365e3c4968a608
+SIZE (rust/crates/windows_aarch64_gnullvm-0.42.1.crate) = 362795
+SHA256 (rust/crates/windows_aarch64_msvc-0.42.1.crate) = 4c8b1b673ffc16c47a9ff48570a9d85e25d265735c503681332589af6253c6c7
+SIZE (rust/crates/windows_aarch64_msvc-0.42.1.crate) = 664655
+SHA256 (rust/crates/windows_i686_gnu-0.42.1.crate) = de3887528ad530ba7bdbb1faa8275ec7a1155a45ffa57c37993960277145d640
+SIZE (rust/crates/windows_i686_gnu-0.42.1.crate) = 733428
+SHA256 (rust/crates/windows_i686_msvc-0.42.1.crate) = bf4d1122317eddd6ff351aa852118a2418ad4214e6613a50e0191f7004372605
+SIZE (rust/crates/windows_i686_msvc-0.42.1.crate) = 722583
+SHA256 (rust/crates/windows_x86_64_gnu-0.42.1.crate) = c1040f221285e17ebccbc2591ffdc2d44ee1f9186324dd3e84e99ac68d699c45
+SIZE (rust/crates/windows_x86_64_gnu-0.42.1.crate) = 697614
+SHA256 (rust/crates/windows_x86_64_gnullvm-0.42.1.crate) = 628bfdf232daa22b0d64fdb62b09fcc36bb01f05a3939e20ab73aaf9470d0463
+SIZE (rust/crates/windows_x86_64_gnullvm-0.42.1.crate) = 362788
+SHA256 (rust/crates/windows_x86_64_msvc-0.42.1.crate) = 447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd
+SIZE (rust/crates/windows_x86_64_msvc-0.42.1.crate) = 664606
+SHA256 (rust/crates/xdg-2.4.1.crate) = 0c4583db5cbd4c4c0303df2d15af80f0539db703fa1c68802d4cbbd2dd0f88f6
+SIZE (rust/crates/xdg-2.4.1.crate) = 14034
+SHA256 (w0lff-shikane-5a25f501b9ba13c4379ecf6ed14dae4c8801d78f_GL0.tar.gz) = b4d38141170c60f2b95811d739903a1b26e4cb31045c125885005c7187c21a7c
+SIZE (w0lff-shikane-5a25f501b9ba13c4379ecf6ed14dae4c8801d78f_GL0.tar.gz) = 23177
diff --git a/x11/shikane/pkg-descr b/x11/shikane/pkg-descr
new file mode 100644
index 000000000000..fbadcec2b6dc
--- /dev/null
+++ b/x11/shikane/pkg-descr
@@ -0,0 +1,11 @@
+A dynamic output configuration tool that automatically detects and configures
+connected outputs based on a set of profiles.
+
+Each profile specifies a set of outputs with additional parameters (e.g., mode).
+A profile will be applied automatically if all specified outputs and modes can
+be perfectly matched to the currently connected outputs and their capabilities.
+
+This is a Wayland equivalent for tools like autorandr.
+It aims to fully replace kanshi and add new features.
+shikane works with Wayland compositors supporting version 3 of the
+wlr-output-management protocol (e.g., compositors using wlroots v0.16).