feat(wm): add a splash screen for mdm devices

A little nudge for people to do the right thing, 1990s vibes.
This commit is contained in:
LGUG2Z
2025-10-28 17:13:05 -07:00
parent e93751aa5f
commit b613986474
19 changed files with 1077 additions and 511 deletions

1030
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -22,6 +22,7 @@ ignore = [
allow = [ allow = [
"0BSD", "0BSD",
"Apache-2.0", "Apache-2.0",
"Apache-2.0 WITH LLVM-exception",
"Artistic-2.0", "Artistic-2.0",
"BSD-2-Clause", "BSD-2-Clause",
"BSD-3-Clause", "BSD-3-Clause",

View File

@@ -35,46 +35,53 @@
"backtrace 0.3.76 registry+https://github.com/rust-lang/crates.io-index", "backtrace 0.3.76 registry+https://github.com/rust-lang/crates.io-index",
"backtrace-ext 0.2.1 registry+https://github.com/rust-lang/crates.io-index", "backtrace-ext 0.2.1 registry+https://github.com/rust-lang/crates.io-index",
"base16_color_scheme 0.3.2 git+https://github.com/LGUG2Z/base16_color_scheme", "base16_color_scheme 0.3.2 git+https://github.com/LGUG2Z/base16_color_scheme",
"base64 0.21.7 registry+https://github.com/rust-lang/crates.io-index",
"base64 0.22.1 registry+https://github.com/rust-lang/crates.io-index", "base64 0.22.1 registry+https://github.com/rust-lang/crates.io-index",
"beef 0.5.2 registry+https://github.com/rust-lang/crates.io-index", "beef 0.5.2 registry+https://github.com/rust-lang/crates.io-index",
"bit_field 0.10.3 registry+https://github.com/rust-lang/crates.io-index", "bit_field 0.10.3 registry+https://github.com/rust-lang/crates.io-index",
"bitflags 1.3.2 registry+https://github.com/rust-lang/crates.io-index", "bitflags 1.3.2 registry+https://github.com/rust-lang/crates.io-index",
"bitflags 2.9.4 registry+https://github.com/rust-lang/crates.io-index", "bitflags 2.10.0 registry+https://github.com/rust-lang/crates.io-index",
"bitstream-io 2.6.0 registry+https://github.com/rust-lang/crates.io-index", "bitstream-io 2.6.0 registry+https://github.com/rust-lang/crates.io-index",
"block-buffer 0.10.4 registry+https://github.com/rust-lang/crates.io-index",
"bytemuck 1.24.0 registry+https://github.com/rust-lang/crates.io-index", "bytemuck 1.24.0 registry+https://github.com/rust-lang/crates.io-index",
"bytemuck_derive 1.10.2 registry+https://github.com/rust-lang/crates.io-index", "bytemuck_derive 1.10.2 registry+https://github.com/rust-lang/crates.io-index",
"cc 1.2.40 registry+https://github.com/rust-lang/crates.io-index", "cc 1.2.43 registry+https://github.com/rust-lang/crates.io-index",
"cfg-if 0.1.10 registry+https://github.com/rust-lang/crates.io-index", "cfg-if 0.1.10 registry+https://github.com/rust-lang/crates.io-index",
"cfg-if 1.0.3 registry+https://github.com/rust-lang/crates.io-index", "cfg-if 1.0.4 registry+https://github.com/rust-lang/crates.io-index",
"chrono 0.4.42 registry+https://github.com/rust-lang/crates.io-index", "chrono 0.4.42 registry+https://github.com/rust-lang/crates.io-index",
"chrono-tz 0.10.4 registry+https://github.com/rust-lang/crates.io-index", "chrono-tz 0.10.4 registry+https://github.com/rust-lang/crates.io-index",
"clap 4.5.48 registry+https://github.com/rust-lang/crates.io-index", "clap 4.5.50 registry+https://github.com/rust-lang/crates.io-index",
"clap_builder 4.5.48 registry+https://github.com/rust-lang/crates.io-index", "clap_builder 4.5.50 registry+https://github.com/rust-lang/crates.io-index",
"clap_derive 4.5.47 registry+https://github.com/rust-lang/crates.io-index", "clap_derive 4.5.49 registry+https://github.com/rust-lang/crates.io-index",
"clap_lex 0.7.5 registry+https://github.com/rust-lang/crates.io-index", "clap_lex 0.7.6 registry+https://github.com/rust-lang/crates.io-index",
"color-eyre 0.6.5 registry+https://github.com/rust-lang/crates.io-index", "color-eyre 0.6.5 registry+https://github.com/rust-lang/crates.io-index",
"color-spantrace 0.3.0 registry+https://github.com/rust-lang/crates.io-index", "color-spantrace 0.3.0 registry+https://github.com/rust-lang/crates.io-index",
"colorchoice 1.0.4 registry+https://github.com/rust-lang/crates.io-index", "colorchoice 1.0.4 registry+https://github.com/rust-lang/crates.io-index",
"cpufeatures 0.2.17 registry+https://github.com/rust-lang/crates.io-index",
"crc32fast 1.5.0 registry+https://github.com/rust-lang/crates.io-index", "crc32fast 1.5.0 registry+https://github.com/rust-lang/crates.io-index",
"crossbeam-channel 0.5.15 registry+https://github.com/rust-lang/crates.io-index", "crossbeam-channel 0.5.15 registry+https://github.com/rust-lang/crates.io-index",
"crossbeam-deque 0.8.6 registry+https://github.com/rust-lang/crates.io-index", "crossbeam-deque 0.8.6 registry+https://github.com/rust-lang/crates.io-index",
"crossbeam-epoch 0.9.18 registry+https://github.com/rust-lang/crates.io-index", "crossbeam-epoch 0.9.18 registry+https://github.com/rust-lang/crates.io-index",
"crossbeam-utils 0.8.21 registry+https://github.com/rust-lang/crates.io-index", "crossbeam-utils 0.8.21 registry+https://github.com/rust-lang/crates.io-index",
"ctrlc 3.5.0 registry+https://github.com/rust-lang/crates.io-index", "crypto-common 0.1.6 registry+https://github.com/rust-lang/crates.io-index",
"ctrlc 3.5.1 registry+https://github.com/rust-lang/crates.io-index",
"cursor-icon 1.2.0 registry+https://github.com/rust-lang/crates.io-index", "cursor-icon 1.2.0 registry+https://github.com/rust-lang/crates.io-index",
"curve25519-dalek-derive 0.1.1 registry+https://github.com/rust-lang/crates.io-index",
"deflate 0.8.6 registry+https://github.com/rust-lang/crates.io-index", "deflate 0.8.6 registry+https://github.com/rust-lang/crates.io-index",
"deranged 0.5.4 registry+https://github.com/rust-lang/crates.io-index", "deranged 0.5.5 registry+https://github.com/rust-lang/crates.io-index",
"digest 0.10.7 registry+https://github.com/rust-lang/crates.io-index",
"dirs 3.0.2 registry+https://github.com/rust-lang/crates.io-index", "dirs 3.0.2 registry+https://github.com/rust-lang/crates.io-index",
"dirs 4.0.0 registry+https://github.com/rust-lang/crates.io-index", "dirs 4.0.0 registry+https://github.com/rust-lang/crates.io-index",
"dirs 6.0.0 registry+https://github.com/rust-lang/crates.io-index", "dirs 6.0.0 registry+https://github.com/rust-lang/crates.io-index",
"dirs-sys 0.3.7 registry+https://github.com/rust-lang/crates.io-index", "dirs-sys 0.3.7 registry+https://github.com/rust-lang/crates.io-index",
"dirs-sys 0.5.0 registry+https://github.com/rust-lang/crates.io-index", "dirs-sys 0.5.0 registry+https://github.com/rust-lang/crates.io-index",
"displaydoc 0.2.5 registry+https://github.com/rust-lang/crates.io-index", "displaydoc 0.2.5 registry+https://github.com/rust-lang/crates.io-index",
"document-features 0.2.11 registry+https://github.com/rust-lang/crates.io-index", "document-features 0.2.12 registry+https://github.com/rust-lang/crates.io-index",
"dpi 0.1.2 registry+https://github.com/rust-lang/crates.io-index", "dpi 0.1.2 registry+https://github.com/rust-lang/crates.io-index",
"dunce 1.0.5 registry+https://github.com/rust-lang/crates.io-index", "dunce 1.0.5 registry+https://github.com/rust-lang/crates.io-index",
"dyn-clone 1.0.20 registry+https://github.com/rust-lang/crates.io-index", "dyn-clone 1.0.20 registry+https://github.com/rust-lang/crates.io-index",
"ecolor 0.32.3 registry+https://github.com/rust-lang/crates.io-index", "ecolor 0.32.3 registry+https://github.com/rust-lang/crates.io-index",
"ed25519 2.2.3 registry+https://github.com/rust-lang/crates.io-index",
"eframe 0.32.3 registry+https://github.com/rust-lang/crates.io-index", "eframe 0.32.3 registry+https://github.com/rust-lang/crates.io-index",
"egui 0.32.3 registry+https://github.com/rust-lang/crates.io-index", "egui 0.32.3 registry+https://github.com/rust-lang/crates.io-index",
"egui-phosphor 0.10.0 registry+https://github.com/rust-lang/crates.io-index", "egui-phosphor 0.10.0 registry+https://github.com/rust-lang/crates.io-index",
@@ -94,8 +101,8 @@
"fastrand 2.3.0 registry+https://github.com/rust-lang/crates.io-index", "fastrand 2.3.0 registry+https://github.com/rust-lang/crates.io-index",
"fdeflate 0.3.7 registry+https://github.com/rust-lang/crates.io-index", "fdeflate 0.3.7 registry+https://github.com/rust-lang/crates.io-index",
"filetime 0.2.26 registry+https://github.com/rust-lang/crates.io-index", "filetime 0.2.26 registry+https://github.com/rust-lang/crates.io-index",
"find-msvc-tools 0.1.3 registry+https://github.com/rust-lang/crates.io-index", "find-msvc-tools 0.1.4 registry+https://github.com/rust-lang/crates.io-index",
"flate2 1.1.4 registry+https://github.com/rust-lang/crates.io-index", "flate2 1.1.5 registry+https://github.com/rust-lang/crates.io-index",
"fnv 1.0.7 registry+https://github.com/rust-lang/crates.io-index", "fnv 1.0.7 registry+https://github.com/rust-lang/crates.io-index",
"form_urlencoded 1.2.2 registry+https://github.com/rust-lang/crates.io-index", "form_urlencoded 1.2.2 registry+https://github.com/rust-lang/crates.io-index",
"futures 0.3.31 registry+https://github.com/rust-lang/crates.io-index", "futures 0.3.31 registry+https://github.com/rust-lang/crates.io-index",
@@ -109,7 +116,7 @@
"futures-util 0.3.31 registry+https://github.com/rust-lang/crates.io-index", "futures-util 0.3.31 registry+https://github.com/rust-lang/crates.io-index",
"getrandom 0.1.16 registry+https://github.com/rust-lang/crates.io-index", "getrandom 0.1.16 registry+https://github.com/rust-lang/crates.io-index",
"getrandom 0.2.16 registry+https://github.com/rust-lang/crates.io-index", "getrandom 0.2.16 registry+https://github.com/rust-lang/crates.io-index",
"getrandom 0.3.3 registry+https://github.com/rust-lang/crates.io-index", "getrandom 0.3.4 registry+https://github.com/rust-lang/crates.io-index",
"gif 0.11.4 registry+https://github.com/rust-lang/crates.io-index", "gif 0.11.4 registry+https://github.com/rust-lang/crates.io-index",
"gif 0.13.3 registry+https://github.com/rust-lang/crates.io-index", "gif 0.13.3 registry+https://github.com/rust-lang/crates.io-index",
"git2 0.20.2 registry+https://github.com/rust-lang/crates.io-index", "git2 0.20.2 registry+https://github.com/rust-lang/crates.io-index",
@@ -119,7 +126,7 @@
"glutin 0.32.3 registry+https://github.com/rust-lang/crates.io-index", "glutin 0.32.3 registry+https://github.com/rust-lang/crates.io-index",
"glutin_egl_sys 0.7.1 registry+https://github.com/rust-lang/crates.io-index", "glutin_egl_sys 0.7.1 registry+https://github.com/rust-lang/crates.io-index",
"glutin_wgl_sys 0.6.1 registry+https://github.com/rust-lang/crates.io-index", "glutin_wgl_sys 0.6.1 registry+https://github.com/rust-lang/crates.io-index",
"half 2.6.0 registry+https://github.com/rust-lang/crates.io-index", "half 2.7.1 registry+https://github.com/rust-lang/crates.io-index",
"hashbrown 0.12.3 registry+https://github.com/rust-lang/crates.io-index", "hashbrown 0.12.3 registry+https://github.com/rust-lang/crates.io-index",
"hashbrown 0.14.5 registry+https://github.com/rust-lang/crates.io-index", "hashbrown 0.14.5 registry+https://github.com/rust-lang/crates.io-index",
"hashbrown 0.15.5 registry+https://github.com/rust-lang/crates.io-index", "hashbrown 0.15.5 registry+https://github.com/rust-lang/crates.io-index",
@@ -140,11 +147,11 @@
"imgref 1.12.0 registry+https://github.com/rust-lang/crates.io-index", "imgref 1.12.0 registry+https://github.com/rust-lang/crates.io-index",
"indenter 0.3.4 registry+https://github.com/rust-lang/crates.io-index", "indenter 0.3.4 registry+https://github.com/rust-lang/crates.io-index",
"indexmap 1.9.3 registry+https://github.com/rust-lang/crates.io-index", "indexmap 1.9.3 registry+https://github.com/rust-lang/crates.io-index",
"indexmap 2.11.4 registry+https://github.com/rust-lang/crates.io-index", "indexmap 2.12.0 registry+https://github.com/rust-lang/crates.io-index",
"ipnet 2.11.0 registry+https://github.com/rust-lang/crates.io-index", "ipnet 2.11.0 registry+https://github.com/rust-lang/crates.io-index",
"iri-string 0.7.8 registry+https://github.com/rust-lang/crates.io-index", "iri-string 0.7.8 registry+https://github.com/rust-lang/crates.io-index",
"is_debug 1.1.0 registry+https://github.com/rust-lang/crates.io-index", "is_debug 1.1.0 registry+https://github.com/rust-lang/crates.io-index",
"is_terminal_polyfill 1.70.1 registry+https://github.com/rust-lang/crates.io-index", "is_terminal_polyfill 1.70.2 registry+https://github.com/rust-lang/crates.io-index",
"itertools 0.12.1 registry+https://github.com/rust-lang/crates.io-index", "itertools 0.12.1 registry+https://github.com/rust-lang/crates.io-index",
"itertools 0.14.0 registry+https://github.com/rust-lang/crates.io-index", "itertools 0.14.0 registry+https://github.com/rust-lang/crates.io-index",
"itoa 1.0.15 registry+https://github.com/rust-lang/crates.io-index", "itoa 1.0.15 registry+https://github.com/rust-lang/crates.io-index",
@@ -152,11 +159,11 @@
"jpeg-decoder 0.1.22 registry+https://github.com/rust-lang/crates.io-index", "jpeg-decoder 0.1.22 registry+https://github.com/rust-lang/crates.io-index",
"khronos_api 3.1.0 registry+https://github.com/rust-lang/crates.io-index", "khronos_api 3.1.0 registry+https://github.com/rust-lang/crates.io-index",
"lazy_static 1.5.0 registry+https://github.com/rust-lang/crates.io-index", "lazy_static 1.5.0 registry+https://github.com/rust-lang/crates.io-index",
"libc 0.2.176 registry+https://github.com/rust-lang/crates.io-index", "libc 0.2.177 registry+https://github.com/rust-lang/crates.io-index",
"libgit2-sys 0.18.2+1.9.1 registry+https://github.com/rust-lang/crates.io-index", "libgit2-sys 0.18.2+1.9.1 registry+https://github.com/rust-lang/crates.io-index",
"libz-sys 1.1.22 registry+https://github.com/rust-lang/crates.io-index", "libz-sys 1.1.22 registry+https://github.com/rust-lang/crates.io-index",
"linked-hash-map 0.5.6 registry+https://github.com/rust-lang/crates.io-index", "linked-hash-map 0.5.6 registry+https://github.com/rust-lang/crates.io-index",
"litrs 0.4.2 registry+https://github.com/rust-lang/crates.io-index", "litrs 1.0.0 registry+https://github.com/rust-lang/crates.io-index",
"lock_api 0.4.14 registry+https://github.com/rust-lang/crates.io-index", "lock_api 0.4.14 registry+https://github.com/rust-lang/crates.io-index",
"log 0.4.28 registry+https://github.com/rust-lang/crates.io-index", "log 0.4.28 registry+https://github.com/rust-lang/crates.io-index",
"logos 0.14.4 registry+https://github.com/rust-lang/crates.io-index", "logos 0.14.4 registry+https://github.com/rust-lang/crates.io-index",
@@ -169,7 +176,7 @@
"miniz_oxide 0.4.4 registry+https://github.com/rust-lang/crates.io-index", "miniz_oxide 0.4.4 registry+https://github.com/rust-lang/crates.io-index",
"miniz_oxide 0.8.9 registry+https://github.com/rust-lang/crates.io-index", "miniz_oxide 0.8.9 registry+https://github.com/rust-lang/crates.io-index",
"miow 0.6.1 registry+https://github.com/rust-lang/crates.io-index", "miow 0.6.1 registry+https://github.com/rust-lang/crates.io-index",
"moxcms 0.7.6 registry+https://github.com/rust-lang/crates.io-index", "moxcms 0.7.9 registry+https://github.com/rust-lang/crates.io-index",
"native-tls 0.2.14 registry+https://github.com/rust-lang/crates.io-index", "native-tls 0.2.14 registry+https://github.com/rust-lang/crates.io-index",
"net2 0.2.39 registry+https://github.com/rust-lang/crates.io-index", "net2 0.2.39 registry+https://github.com/rust-lang/crates.io-index",
"nohash-hasher 0.2.0 registry+https://github.com/rust-lang/crates.io-index", "nohash-hasher 0.2.0 registry+https://github.com/rust-lang/crates.io-index",
@@ -184,8 +191,9 @@
"num-rational 0.3.2 registry+https://github.com/rust-lang/crates.io-index", "num-rational 0.3.2 registry+https://github.com/rust-lang/crates.io-index",
"num-rational 0.4.2 registry+https://github.com/rust-lang/crates.io-index", "num-rational 0.4.2 registry+https://github.com/rust-lang/crates.io-index",
"num-traits 0.2.19 registry+https://github.com/rust-lang/crates.io-index", "num-traits 0.2.19 registry+https://github.com/rust-lang/crates.io-index",
"object 0.32.2 registry+https://github.com/rust-lang/crates.io-index",
"once_cell 1.21.3 registry+https://github.com/rust-lang/crates.io-index", "once_cell 1.21.3 registry+https://github.com/rust-lang/crates.io-index",
"once_cell_polyfill 1.70.1 registry+https://github.com/rust-lang/crates.io-index", "once_cell_polyfill 1.70.2 registry+https://github.com/rust-lang/crates.io-index",
"owned_ttf_parser 0.25.1 registry+https://github.com/rust-lang/crates.io-index", "owned_ttf_parser 0.25.1 registry+https://github.com/rust-lang/crates.io-index",
"palette 0.5.0 registry+https://github.com/rust-lang/crates.io-index", "palette 0.5.0 registry+https://github.com/rust-lang/crates.io-index",
"palette_derive 0.5.0 registry+https://github.com/rust-lang/crates.io-index", "palette_derive 0.5.0 registry+https://github.com/rust-lang/crates.io-index",
@@ -200,11 +208,11 @@
"png 0.18.0 registry+https://github.com/rust-lang/crates.io-index", "png 0.18.0 registry+https://github.com/rust-lang/crates.io-index",
"powerfmt 0.2.0 registry+https://github.com/rust-lang/crates.io-index", "powerfmt 0.2.0 registry+https://github.com/rust-lang/crates.io-index",
"ppv-lite86 0.2.21 registry+https://github.com/rust-lang/crates.io-index", "ppv-lite86 0.2.21 registry+https://github.com/rust-lang/crates.io-index",
"proc-macro2 1.0.101 registry+https://github.com/rust-lang/crates.io-index", "proc-macro2 1.0.103 registry+https://github.com/rust-lang/crates.io-index",
"profiling 1.0.17 registry+https://github.com/rust-lang/crates.io-index", "profiling 1.0.17 registry+https://github.com/rust-lang/crates.io-index",
"profiling-procmacros 1.0.17 registry+https://github.com/rust-lang/crates.io-index", "profiling-procmacros 1.0.17 registry+https://github.com/rust-lang/crates.io-index",
"psm 0.1.27 registry+https://github.com/rust-lang/crates.io-index", "psm 0.1.28 registry+https://github.com/rust-lang/crates.io-index",
"pxfm 0.1.24 registry+https://github.com/rust-lang/crates.io-index", "pxfm 0.1.25 registry+https://github.com/rust-lang/crates.io-index",
"qoi 0.4.1 registry+https://github.com/rust-lang/crates.io-index", "qoi 0.4.1 registry+https://github.com/rust-lang/crates.io-index",
"quick-error 2.0.1 registry+https://github.com/rust-lang/crates.io-index", "quick-error 2.0.1 registry+https://github.com/rust-lang/crates.io-index",
"quote 1.0.41 registry+https://github.com/rust-lang/crates.io-index", "quote 1.0.41 registry+https://github.com/rust-lang/crates.io-index",
@@ -221,15 +229,17 @@
"raw-window-handle 0.6.2 registry+https://github.com/rust-lang/crates.io-index", "raw-window-handle 0.6.2 registry+https://github.com/rust-lang/crates.io-index",
"rayon 1.11.0 registry+https://github.com/rust-lang/crates.io-index", "rayon 1.11.0 registry+https://github.com/rust-lang/crates.io-index",
"rayon-core 1.13.0 registry+https://github.com/rust-lang/crates.io-index", "rayon-core 1.13.0 registry+https://github.com/rust-lang/crates.io-index",
"regex 1.11.3 registry+https://github.com/rust-lang/crates.io-index", "regex 1.12.2 registry+https://github.com/rust-lang/crates.io-index",
"regex-automata 0.4.11 registry+https://github.com/rust-lang/crates.io-index", "regex-automata 0.4.13 registry+https://github.com/rust-lang/crates.io-index",
"regex-syntax 0.8.6 registry+https://github.com/rust-lang/crates.io-index", "regex-syntax 0.8.8 registry+https://github.com/rust-lang/crates.io-index",
"reqwest 0.12.23 registry+https://github.com/rust-lang/crates.io-index", "reqwest 0.12.24 registry+https://github.com/rust-lang/crates.io-index",
"roxmltree 0.20.0 registry+https://github.com/rust-lang/crates.io-index", "roxmltree 0.20.0 registry+https://github.com/rust-lang/crates.io-index",
"rustc-demangle 0.1.26 registry+https://github.com/rust-lang/crates.io-index", "rustc-demangle 0.1.26 registry+https://github.com/rust-lang/crates.io-index",
"rustls-pki-types 1.12.0 registry+https://github.com/rust-lang/crates.io-index", "rustc_version 0.4.1 registry+https://github.com/rust-lang/crates.io-index",
"rustls-pki-types 1.13.0 registry+https://github.com/rust-lang/crates.io-index",
"ryu 1.0.20 registry+https://github.com/rust-lang/crates.io-index", "ryu 1.0.20 registry+https://github.com/rust-lang/crates.io-index",
"scopeguard 1.2.0 registry+https://github.com/rust-lang/crates.io-index", "scopeguard 1.2.0 registry+https://github.com/rust-lang/crates.io-index",
"semver 1.0.27 registry+https://github.com/rust-lang/crates.io-index",
"serde 1.0.228 registry+https://github.com/rust-lang/crates.io-index", "serde 1.0.228 registry+https://github.com/rust-lang/crates.io-index",
"serde_core 1.0.228 registry+https://github.com/rust-lang/crates.io-index", "serde_core 1.0.228 registry+https://github.com/rust-lang/crates.io-index",
"serde_derive 1.0.228 registry+https://github.com/rust-lang/crates.io-index", "serde_derive 1.0.228 registry+https://github.com/rust-lang/crates.io-index",
@@ -238,27 +248,29 @@
"serde_json_lenient 0.2.4 registry+https://github.com/rust-lang/crates.io-index", "serde_json_lenient 0.2.4 registry+https://github.com/rust-lang/crates.io-index",
"serde_urlencoded 0.7.1 registry+https://github.com/rust-lang/crates.io-index", "serde_urlencoded 0.7.1 registry+https://github.com/rust-lang/crates.io-index",
"serde_variant 0.1.3 registry+https://github.com/rust-lang/crates.io-index", "serde_variant 0.1.3 registry+https://github.com/rust-lang/crates.io-index",
"serde_with 3.15.0 registry+https://github.com/rust-lang/crates.io-index", "serde_with 3.15.1 registry+https://github.com/rust-lang/crates.io-index",
"serde_with_macros 3.15.0 registry+https://github.com/rust-lang/crates.io-index", "serde_with_macros 3.15.1 registry+https://github.com/rust-lang/crates.io-index",
"serde_yaml 0.8.26 registry+https://github.com/rust-lang/crates.io-index", "serde_yaml 0.8.26 registry+https://github.com/rust-lang/crates.io-index",
"serde_yaml 0.9.34+deprecated registry+https://github.com/rust-lang/crates.io-index", "serde_yaml 0.9.34+deprecated registry+https://github.com/rust-lang/crates.io-index",
"sha2 0.10.9 registry+https://github.com/rust-lang/crates.io-index",
"shadow-rs 1.4.0 registry+https://github.com/rust-lang/crates.io-index", "shadow-rs 1.4.0 registry+https://github.com/rust-lang/crates.io-index",
"shell-words 1.1.0 registry+https://github.com/rust-lang/crates.io-index", "shell-words 1.1.0 registry+https://github.com/rust-lang/crates.io-index",
"shellexpand 2.1.2 registry+https://github.com/rust-lang/crates.io-index", "shellexpand 2.1.2 registry+https://github.com/rust-lang/crates.io-index",
"shlex 1.3.0 registry+https://github.com/rust-lang/crates.io-index", "shlex 1.3.0 registry+https://github.com/rust-lang/crates.io-index",
"signature 2.2.0 registry+https://github.com/rust-lang/crates.io-index",
"siphasher 0.3.11 registry+https://github.com/rust-lang/crates.io-index", "siphasher 0.3.11 registry+https://github.com/rust-lang/crates.io-index",
"siphasher 1.0.1 registry+https://github.com/rust-lang/crates.io-index", "siphasher 1.0.1 registry+https://github.com/rust-lang/crates.io-index",
"smallvec 1.15.1 registry+https://github.com/rust-lang/crates.io-index", "smallvec 1.15.1 registry+https://github.com/rust-lang/crates.io-index",
"smol_str 0.2.2 registry+https://github.com/rust-lang/crates.io-index", "smol_str 0.2.2 registry+https://github.com/rust-lang/crates.io-index",
"socket2 0.6.0 registry+https://github.com/rust-lang/crates.io-index", "socket2 0.6.1 registry+https://github.com/rust-lang/crates.io-index",
"stable_deref_trait 1.2.0 registry+https://github.com/rust-lang/crates.io-index", "stable_deref_trait 1.2.1 registry+https://github.com/rust-lang/crates.io-index",
"stacker 0.1.22 registry+https://github.com/rust-lang/crates.io-index", "stacker 0.1.22 registry+https://github.com/rust-lang/crates.io-index",
"static_assertions 1.1.0 registry+https://github.com/rust-lang/crates.io-index", "static_assertions 1.1.0 registry+https://github.com/rust-lang/crates.io-index",
"supports-color 3.0.2 registry+https://github.com/rust-lang/crates.io-index", "supports-color 3.0.2 registry+https://github.com/rust-lang/crates.io-index",
"supports-hyperlinks 3.1.0 registry+https://github.com/rust-lang/crates.io-index", "supports-hyperlinks 3.1.0 registry+https://github.com/rust-lang/crates.io-index",
"supports-unicode 3.0.0 registry+https://github.com/rust-lang/crates.io-index", "supports-unicode 3.0.0 registry+https://github.com/rust-lang/crates.io-index",
"syn 1.0.109 registry+https://github.com/rust-lang/crates.io-index", "syn 1.0.109 registry+https://github.com/rust-lang/crates.io-index",
"syn 2.0.106 registry+https://github.com/rust-lang/crates.io-index", "syn 2.0.108 registry+https://github.com/rust-lang/crates.io-index",
"sync_wrapper 1.0.2 registry+https://github.com/rust-lang/crates.io-index", "sync_wrapper 1.0.2 registry+https://github.com/rust-lang/crates.io-index",
"tempfile 3.23.0 registry+https://github.com/rust-lang/crates.io-index", "tempfile 3.23.0 registry+https://github.com/rust-lang/crates.io-index",
"terminal_size 0.4.3 registry+https://github.com/rust-lang/crates.io-index", "terminal_size 0.4.3 registry+https://github.com/rust-lang/crates.io-index",
@@ -272,11 +284,11 @@
"toml 0.5.11 registry+https://github.com/rust-lang/crates.io-index", "toml 0.5.11 registry+https://github.com/rust-lang/crates.io-index",
"ttf-parser 0.25.1 registry+https://github.com/rust-lang/crates.io-index", "ttf-parser 0.25.1 registry+https://github.com/rust-lang/crates.io-index",
"typenum 1.19.0 registry+https://github.com/rust-lang/crates.io-index", "typenum 1.19.0 registry+https://github.com/rust-lang/crates.io-index",
"tz-rs 0.7.0 registry+https://github.com/rust-lang/crates.io-index", "tz-rs 0.7.1 registry+https://github.com/rust-lang/crates.io-index",
"tzdb 0.7.2 registry+https://github.com/rust-lang/crates.io-index", "tzdb 0.7.2 registry+https://github.com/rust-lang/crates.io-index",
"tzdb_data 0.2.2 registry+https://github.com/rust-lang/crates.io-index", "tzdb_data 0.2.2 registry+https://github.com/rust-lang/crates.io-index",
"unicase 2.8.1 registry+https://github.com/rust-lang/crates.io-index", "unicase 2.8.1 registry+https://github.com/rust-lang/crates.io-index",
"unicode-ident 1.0.19 registry+https://github.com/rust-lang/crates.io-index", "unicode-ident 1.0.20 registry+https://github.com/rust-lang/crates.io-index",
"unicode-linebreak 0.1.5 registry+https://github.com/rust-lang/crates.io-index", "unicode-linebreak 0.1.5 registry+https://github.com/rust-lang/crates.io-index",
"unicode-segmentation 1.12.0 registry+https://github.com/rust-lang/crates.io-index", "unicode-segmentation 1.12.0 registry+https://github.com/rust-lang/crates.io-index",
"unicode-width 0.1.14 registry+https://github.com/rust-lang/crates.io-index", "unicode-width 0.1.14 registry+https://github.com/rust-lang/crates.io-index",
@@ -289,8 +301,9 @@
"vcpkg 0.2.15 registry+https://github.com/rust-lang/crates.io-index", "vcpkg 0.2.15 registry+https://github.com/rust-lang/crates.io-index",
"version_check 0.9.5 registry+https://github.com/rust-lang/crates.io-index", "version_check 0.9.5 registry+https://github.com/rust-lang/crates.io-index",
"web-time 1.1.0 registry+https://github.com/rust-lang/crates.io-index", "web-time 1.1.0 registry+https://github.com/rust-lang/crates.io-index",
"webbrowser 1.0.5 registry+https://github.com/rust-lang/crates.io-index", "webbrowser 1.0.6 registry+https://github.com/rust-lang/crates.io-index",
"weezl 0.1.10 registry+https://github.com/rust-lang/crates.io-index", "weezl 0.1.10 registry+https://github.com/rust-lang/crates.io-index",
"win-msgbox 0.2.1 registry+https://github.com/rust-lang/crates.io-index",
"winapi 0.3.9 registry+https://github.com/rust-lang/crates.io-index", "winapi 0.3.9 registry+https://github.com/rust-lang/crates.io-index",
"windows 0.57.0 registry+https://github.com/rust-lang/crates.io-index", "windows 0.57.0 registry+https://github.com/rust-lang/crates.io-index",
"windows 0.58.0 registry+https://github.com/rust-lang/crates.io-index", "windows 0.58.0 registry+https://github.com/rust-lang/crates.io-index",
@@ -352,12 +365,19 @@
"wmi 0.15.2 registry+https://github.com/rust-lang/crates.io-index", "wmi 0.15.2 registry+https://github.com/rust-lang/crates.io-index",
"yaml-rust 0.4.5 registry+https://github.com/rust-lang/crates.io-index", "yaml-rust 0.4.5 registry+https://github.com/rust-lang/crates.io-index",
"zerocopy 0.8.27 registry+https://github.com/rust-lang/crates.io-index", "zerocopy 0.8.27 registry+https://github.com/rust-lang/crates.io-index",
"zerocopy-derive 0.8.27 registry+https://github.com/rust-lang/crates.io-index",
"zeroize 1.8.2 registry+https://github.com/rust-lang/crates.io-index", "zeroize 1.8.2 registry+https://github.com/rust-lang/crates.io-index",
"zune-core 0.4.12 registry+https://github.com/rust-lang/crates.io-index", "zune-core 0.4.12 registry+https://github.com/rust-lang/crates.io-index",
"zune-inflate 0.2.54 registry+https://github.com/rust-lang/crates.io-index", "zune-inflate 0.2.54 registry+https://github.com/rust-lang/crates.io-index",
"zune-jpeg 0.4.21 registry+https://github.com/rust-lang/crates.io-index" "zune-jpeg 0.4.21 registry+https://github.com/rust-lang/crates.io-index"
] ]
], ],
[
"Apache-2.0 WITH LLVM-exception",
[
"ar_archive_writer 0.2.0 registry+https://github.com/rust-lang/crates.io-index"
]
],
[ [
"Artistic-2.0", "Artistic-2.0",
[ [
@@ -368,10 +388,11 @@
[ [
"BSD-2-Clause", "BSD-2-Clause",
[ [
"av1-grain 0.2.4 registry+https://github.com/rust-lang/crates.io-index", "av1-grain 0.2.5 registry+https://github.com/rust-lang/crates.io-index",
"rav1e 0.7.1 registry+https://github.com/rust-lang/crates.io-index", "rav1e 0.7.1 registry+https://github.com/rust-lang/crates.io-index",
"v_frame 0.3.9 registry+https://github.com/rust-lang/crates.io-index", "v_frame 0.3.9 registry+https://github.com/rust-lang/crates.io-index",
"zerocopy 0.8.27 registry+https://github.com/rust-lang/crates.io-index" "zerocopy 0.8.27 registry+https://github.com/rust-lang/crates.io-index",
"zerocopy-derive 0.8.27 registry+https://github.com/rust-lang/crates.io-index"
] ]
], ],
[ [
@@ -382,12 +403,15 @@
"avif-serialize 0.8.6 registry+https://github.com/rust-lang/crates.io-index", "avif-serialize 0.8.6 registry+https://github.com/rust-lang/crates.io-index",
"brotli 8.0.2 registry+https://github.com/rust-lang/crates.io-index", "brotli 8.0.2 registry+https://github.com/rust-lang/crates.io-index",
"brotli-decompressor 5.0.0 registry+https://github.com/rust-lang/crates.io-index", "brotli-decompressor 5.0.0 registry+https://github.com/rust-lang/crates.io-index",
"curve25519-dalek 4.1.3 registry+https://github.com/rust-lang/crates.io-index",
"ed25519-dalek 2.2.0 registry+https://github.com/rust-lang/crates.io-index",
"encoding_rs 0.8.35 registry+https://github.com/rust-lang/crates.io-index", "encoding_rs 0.8.35 registry+https://github.com/rust-lang/crates.io-index",
"exr 1.73.0 registry+https://github.com/rust-lang/crates.io-index", "exr 1.73.0 registry+https://github.com/rust-lang/crates.io-index",
"lebe 0.5.3 registry+https://github.com/rust-lang/crates.io-index", "lebe 0.5.3 registry+https://github.com/rust-lang/crates.io-index",
"moxcms 0.7.6 registry+https://github.com/rust-lang/crates.io-index", "moxcms 0.7.9 registry+https://github.com/rust-lang/crates.io-index",
"pxfm 0.1.24 registry+https://github.com/rust-lang/crates.io-index", "pxfm 0.1.25 registry+https://github.com/rust-lang/crates.io-index",
"ravif 0.11.20 registry+https://github.com/rust-lang/crates.io-index" "ravif 0.11.20 registry+https://github.com/rust-lang/crates.io-index",
"subtle 2.6.1 registry+https://github.com/rust-lang/crates.io-index"
] ]
], ],
[ [
@@ -413,7 +437,7 @@
[ [
"is_ci 1.2.0 registry+https://github.com/rust-lang/crates.io-index", "is_ci 1.2.0 registry+https://github.com/rust-lang/crates.io-index",
"libloading 0.8.9 registry+https://github.com/rust-lang/crates.io-index", "libloading 0.8.9 registry+https://github.com/rust-lang/crates.io-index",
"starship-battery 0.10.2 registry+https://github.com/rust-lang/crates.io-index" "starship-battery 0.10.3 registry+https://github.com/rust-lang/crates.io-index"
] ]
], ],
[ [
@@ -425,7 +449,7 @@
"adler 1.0.2 registry+https://github.com/rust-lang/crates.io-index", "adler 1.0.2 registry+https://github.com/rust-lang/crates.io-index",
"adler2 2.0.1 registry+https://github.com/rust-lang/crates.io-index", "adler2 2.0.1 registry+https://github.com/rust-lang/crates.io-index",
"ahash 0.8.12 registry+https://github.com/rust-lang/crates.io-index", "ahash 0.8.12 registry+https://github.com/rust-lang/crates.io-index",
"aho-corasick 1.1.3 registry+https://github.com/rust-lang/crates.io-index", "aho-corasick 1.1.4 registry+https://github.com/rust-lang/crates.io-index",
"aligned-vec 0.6.4 registry+https://github.com/rust-lang/crates.io-index", "aligned-vec 0.6.4 registry+https://github.com/rust-lang/crates.io-index",
"allocator-api2 0.2.21 registry+https://github.com/rust-lang/crates.io-index", "allocator-api2 0.2.21 registry+https://github.com/rust-lang/crates.io-index",
"anstream 0.6.21 registry+https://github.com/rust-lang/crates.io-index", "anstream 0.6.21 registry+https://github.com/rust-lang/crates.io-index",
@@ -442,12 +466,14 @@
"backtrace 0.3.76 registry+https://github.com/rust-lang/crates.io-index", "backtrace 0.3.76 registry+https://github.com/rust-lang/crates.io-index",
"backtrace-ext 0.2.1 registry+https://github.com/rust-lang/crates.io-index", "backtrace-ext 0.2.1 registry+https://github.com/rust-lang/crates.io-index",
"base16_color_scheme 0.3.2 git+https://github.com/LGUG2Z/base16_color_scheme", "base16_color_scheme 0.3.2 git+https://github.com/LGUG2Z/base16_color_scheme",
"base64 0.21.7 registry+https://github.com/rust-lang/crates.io-index",
"base64 0.22.1 registry+https://github.com/rust-lang/crates.io-index", "base64 0.22.1 registry+https://github.com/rust-lang/crates.io-index",
"beef 0.5.2 registry+https://github.com/rust-lang/crates.io-index", "beef 0.5.2 registry+https://github.com/rust-lang/crates.io-index",
"bit_field 0.10.3 registry+https://github.com/rust-lang/crates.io-index", "bit_field 0.10.3 registry+https://github.com/rust-lang/crates.io-index",
"bitflags 1.3.2 registry+https://github.com/rust-lang/crates.io-index", "bitflags 1.3.2 registry+https://github.com/rust-lang/crates.io-index",
"bitflags 2.9.4 registry+https://github.com/rust-lang/crates.io-index", "bitflags 2.10.0 registry+https://github.com/rust-lang/crates.io-index",
"bitstream-io 2.6.0 registry+https://github.com/rust-lang/crates.io-index", "bitstream-io 2.6.0 registry+https://github.com/rust-lang/crates.io-index",
"block-buffer 0.10.4 registry+https://github.com/rust-lang/crates.io-index",
"brotli 8.0.2 registry+https://github.com/rust-lang/crates.io-index", "brotli 8.0.2 registry+https://github.com/rust-lang/crates.io-index",
"brotli-decompressor 5.0.0 registry+https://github.com/rust-lang/crates.io-index", "brotli-decompressor 5.0.0 registry+https://github.com/rust-lang/crates.io-index",
"built 0.7.7 registry+https://github.com/rust-lang/crates.io-index", "built 0.7.7 registry+https://github.com/rust-lang/crates.io-index",
@@ -459,44 +485,49 @@
"calm_io 0.1.1 registry+https://github.com/rust-lang/crates.io-index", "calm_io 0.1.1 registry+https://github.com/rust-lang/crates.io-index",
"calmio_filters 0.1.0 registry+https://github.com/rust-lang/crates.io-index", "calmio_filters 0.1.0 registry+https://github.com/rust-lang/crates.io-index",
"catppuccin-egui 5.6.0 registry+https://github.com/rust-lang/crates.io-index", "catppuccin-egui 5.6.0 registry+https://github.com/rust-lang/crates.io-index",
"cc 1.2.40 registry+https://github.com/rust-lang/crates.io-index", "cc 1.2.43 registry+https://github.com/rust-lang/crates.io-index",
"cfg-if 0.1.10 registry+https://github.com/rust-lang/crates.io-index", "cfg-if 0.1.10 registry+https://github.com/rust-lang/crates.io-index",
"cfg-if 1.0.3 registry+https://github.com/rust-lang/crates.io-index", "cfg-if 1.0.4 registry+https://github.com/rust-lang/crates.io-index",
"cfg_aliases 0.2.1 registry+https://github.com/rust-lang/crates.io-index", "cfg_aliases 0.2.1 registry+https://github.com/rust-lang/crates.io-index",
"chrono 0.4.42 registry+https://github.com/rust-lang/crates.io-index", "chrono 0.4.42 registry+https://github.com/rust-lang/crates.io-index",
"chrono-tz 0.10.4 registry+https://github.com/rust-lang/crates.io-index", "chrono-tz 0.10.4 registry+https://github.com/rust-lang/crates.io-index",
"chumsky 0.9.3 registry+https://github.com/rust-lang/crates.io-index", "chumsky 0.9.3 registry+https://github.com/rust-lang/crates.io-index",
"clap 4.5.48 registry+https://github.com/rust-lang/crates.io-index", "clap 4.5.50 registry+https://github.com/rust-lang/crates.io-index",
"clap_builder 4.5.48 registry+https://github.com/rust-lang/crates.io-index", "clap_builder 4.5.50 registry+https://github.com/rust-lang/crates.io-index",
"clap_derive 4.5.47 registry+https://github.com/rust-lang/crates.io-index", "clap_derive 4.5.49 registry+https://github.com/rust-lang/crates.io-index",
"clap_lex 0.7.5 registry+https://github.com/rust-lang/crates.io-index", "clap_lex 0.7.6 registry+https://github.com/rust-lang/crates.io-index",
"color-eyre 0.6.5 registry+https://github.com/rust-lang/crates.io-index", "color-eyre 0.6.5 registry+https://github.com/rust-lang/crates.io-index",
"color-spantrace 0.3.0 registry+https://github.com/rust-lang/crates.io-index", "color-spantrace 0.3.0 registry+https://github.com/rust-lang/crates.io-index",
"color-thief 0.2.2 registry+https://github.com/rust-lang/crates.io-index", "color-thief 0.2.2 registry+https://github.com/rust-lang/crates.io-index",
"color_quant 1.1.0 registry+https://github.com/rust-lang/crates.io-index", "color_quant 1.1.0 registry+https://github.com/rust-lang/crates.io-index",
"colorchoice 1.0.4 registry+https://github.com/rust-lang/crates.io-index", "colorchoice 1.0.4 registry+https://github.com/rust-lang/crates.io-index",
"cpufeatures 0.2.17 registry+https://github.com/rust-lang/crates.io-index",
"crc32fast 1.5.0 registry+https://github.com/rust-lang/crates.io-index", "crc32fast 1.5.0 registry+https://github.com/rust-lang/crates.io-index",
"crossbeam-channel 0.5.15 registry+https://github.com/rust-lang/crates.io-index", "crossbeam-channel 0.5.15 registry+https://github.com/rust-lang/crates.io-index",
"crossbeam-deque 0.8.6 registry+https://github.com/rust-lang/crates.io-index", "crossbeam-deque 0.8.6 registry+https://github.com/rust-lang/crates.io-index",
"crossbeam-epoch 0.9.18 registry+https://github.com/rust-lang/crates.io-index", "crossbeam-epoch 0.9.18 registry+https://github.com/rust-lang/crates.io-index",
"crossbeam-utils 0.8.21 registry+https://github.com/rust-lang/crates.io-index", "crossbeam-utils 0.8.21 registry+https://github.com/rust-lang/crates.io-index",
"ctrlc 3.5.0 registry+https://github.com/rust-lang/crates.io-index", "crypto-common 0.1.6 registry+https://github.com/rust-lang/crates.io-index",
"ctrlc 3.5.1 registry+https://github.com/rust-lang/crates.io-index",
"cursor-icon 1.2.0 registry+https://github.com/rust-lang/crates.io-index", "cursor-icon 1.2.0 registry+https://github.com/rust-lang/crates.io-index",
"curve25519-dalek-derive 0.1.1 registry+https://github.com/rust-lang/crates.io-index",
"darling 0.21.3 registry+https://github.com/rust-lang/crates.io-index", "darling 0.21.3 registry+https://github.com/rust-lang/crates.io-index",
"darling_core 0.21.3 registry+https://github.com/rust-lang/crates.io-index", "darling_core 0.21.3 registry+https://github.com/rust-lang/crates.io-index",
"darling_macro 0.21.3 registry+https://github.com/rust-lang/crates.io-index", "darling_macro 0.21.3 registry+https://github.com/rust-lang/crates.io-index",
"deflate 0.8.6 registry+https://github.com/rust-lang/crates.io-index", "deflate 0.8.6 registry+https://github.com/rust-lang/crates.io-index",
"deranged 0.5.4 registry+https://github.com/rust-lang/crates.io-index", "deranged 0.5.5 registry+https://github.com/rust-lang/crates.io-index",
"digest 0.10.7 registry+https://github.com/rust-lang/crates.io-index",
"dirs 3.0.2 registry+https://github.com/rust-lang/crates.io-index", "dirs 3.0.2 registry+https://github.com/rust-lang/crates.io-index",
"dirs 4.0.0 registry+https://github.com/rust-lang/crates.io-index", "dirs 4.0.0 registry+https://github.com/rust-lang/crates.io-index",
"dirs 6.0.0 registry+https://github.com/rust-lang/crates.io-index", "dirs 6.0.0 registry+https://github.com/rust-lang/crates.io-index",
"dirs-sys 0.3.7 registry+https://github.com/rust-lang/crates.io-index", "dirs-sys 0.3.7 registry+https://github.com/rust-lang/crates.io-index",
"dirs-sys 0.5.0 registry+https://github.com/rust-lang/crates.io-index", "dirs-sys 0.5.0 registry+https://github.com/rust-lang/crates.io-index",
"displaydoc 0.2.5 registry+https://github.com/rust-lang/crates.io-index", "displaydoc 0.2.5 registry+https://github.com/rust-lang/crates.io-index",
"document-features 0.2.11 registry+https://github.com/rust-lang/crates.io-index", "document-features 0.2.12 registry+https://github.com/rust-lang/crates.io-index",
"dpi 0.1.2 registry+https://github.com/rust-lang/crates.io-index", "dpi 0.1.2 registry+https://github.com/rust-lang/crates.io-index",
"dyn-clone 1.0.20 registry+https://github.com/rust-lang/crates.io-index", "dyn-clone 1.0.20 registry+https://github.com/rust-lang/crates.io-index",
"ecolor 0.32.3 registry+https://github.com/rust-lang/crates.io-index", "ecolor 0.32.3 registry+https://github.com/rust-lang/crates.io-index",
"ed25519 2.2.3 registry+https://github.com/rust-lang/crates.io-index",
"eframe 0.32.3 registry+https://github.com/rust-lang/crates.io-index", "eframe 0.32.3 registry+https://github.com/rust-lang/crates.io-index",
"egui 0.32.3 registry+https://github.com/rust-lang/crates.io-index", "egui 0.32.3 registry+https://github.com/rust-lang/crates.io-index",
"egui-phosphor 0.10.0 registry+https://github.com/rust-lang/crates.io-index", "egui-phosphor 0.10.0 registry+https://github.com/rust-lang/crates.io-index",
@@ -520,8 +551,8 @@
"fax_derive 0.2.0 registry+https://github.com/rust-lang/crates.io-index", "fax_derive 0.2.0 registry+https://github.com/rust-lang/crates.io-index",
"fdeflate 0.3.7 registry+https://github.com/rust-lang/crates.io-index", "fdeflate 0.3.7 registry+https://github.com/rust-lang/crates.io-index",
"filetime 0.2.26 registry+https://github.com/rust-lang/crates.io-index", "filetime 0.2.26 registry+https://github.com/rust-lang/crates.io-index",
"find-msvc-tools 0.1.3 registry+https://github.com/rust-lang/crates.io-index", "find-msvc-tools 0.1.4 registry+https://github.com/rust-lang/crates.io-index",
"flate2 1.1.4 registry+https://github.com/rust-lang/crates.io-index", "flate2 1.1.5 registry+https://github.com/rust-lang/crates.io-index",
"flavours 0.7.2 git+https://github.com/LGUG2Z/flavours", "flavours 0.7.2 git+https://github.com/LGUG2Z/flavours",
"fnv 1.0.7 registry+https://github.com/rust-lang/crates.io-index", "fnv 1.0.7 registry+https://github.com/rust-lang/crates.io-index",
"font-loader 0.11.0 registry+https://github.com/rust-lang/crates.io-index", "font-loader 0.11.0 registry+https://github.com/rust-lang/crates.io-index",
@@ -536,9 +567,10 @@
"futures-sink 0.3.31 registry+https://github.com/rust-lang/crates.io-index", "futures-sink 0.3.31 registry+https://github.com/rust-lang/crates.io-index",
"futures-task 0.3.31 registry+https://github.com/rust-lang/crates.io-index", "futures-task 0.3.31 registry+https://github.com/rust-lang/crates.io-index",
"futures-util 0.3.31 registry+https://github.com/rust-lang/crates.io-index", "futures-util 0.3.31 registry+https://github.com/rust-lang/crates.io-index",
"generic-array 0.14.9 registry+https://github.com/rust-lang/crates.io-index",
"getrandom 0.1.16 registry+https://github.com/rust-lang/crates.io-index", "getrandom 0.1.16 registry+https://github.com/rust-lang/crates.io-index",
"getrandom 0.2.16 registry+https://github.com/rust-lang/crates.io-index", "getrandom 0.2.16 registry+https://github.com/rust-lang/crates.io-index",
"getrandom 0.3.3 registry+https://github.com/rust-lang/crates.io-index", "getrandom 0.3.4 registry+https://github.com/rust-lang/crates.io-index",
"gif 0.11.4 registry+https://github.com/rust-lang/crates.io-index", "gif 0.11.4 registry+https://github.com/rust-lang/crates.io-index",
"gif 0.13.3 registry+https://github.com/rust-lang/crates.io-index", "gif 0.13.3 registry+https://github.com/rust-lang/crates.io-index",
"git2 0.20.2 registry+https://github.com/rust-lang/crates.io-index", "git2 0.20.2 registry+https://github.com/rust-lang/crates.io-index",
@@ -546,7 +578,7 @@
"glow 0.16.0 registry+https://github.com/rust-lang/crates.io-index", "glow 0.16.0 registry+https://github.com/rust-lang/crates.io-index",
"glutin-winit 0.5.0 registry+https://github.com/rust-lang/crates.io-index", "glutin-winit 0.5.0 registry+https://github.com/rust-lang/crates.io-index",
"h2 0.4.12 registry+https://github.com/rust-lang/crates.io-index", "h2 0.4.12 registry+https://github.com/rust-lang/crates.io-index",
"half 2.6.0 registry+https://github.com/rust-lang/crates.io-index", "half 2.7.1 registry+https://github.com/rust-lang/crates.io-index",
"hashbrown 0.12.3 registry+https://github.com/rust-lang/crates.io-index", "hashbrown 0.12.3 registry+https://github.com/rust-lang/crates.io-index",
"hashbrown 0.14.5 registry+https://github.com/rust-lang/crates.io-index", "hashbrown 0.14.5 registry+https://github.com/rust-lang/crates.io-index",
"hashbrown 0.15.5 registry+https://github.com/rust-lang/crates.io-index", "hashbrown 0.15.5 registry+https://github.com/rust-lang/crates.io-index",
@@ -571,22 +603,22 @@
"image-webp 0.2.4 registry+https://github.com/rust-lang/crates.io-index", "image-webp 0.2.4 registry+https://github.com/rust-lang/crates.io-index",
"indenter 0.3.4 registry+https://github.com/rust-lang/crates.io-index", "indenter 0.3.4 registry+https://github.com/rust-lang/crates.io-index",
"indexmap 1.9.3 registry+https://github.com/rust-lang/crates.io-index", "indexmap 1.9.3 registry+https://github.com/rust-lang/crates.io-index",
"indexmap 2.11.4 registry+https://github.com/rust-lang/crates.io-index", "indexmap 2.12.0 registry+https://github.com/rust-lang/crates.io-index",
"ipnet 2.11.0 registry+https://github.com/rust-lang/crates.io-index", "ipnet 2.11.0 registry+https://github.com/rust-lang/crates.io-index",
"iri-string 0.7.8 registry+https://github.com/rust-lang/crates.io-index", "iri-string 0.7.8 registry+https://github.com/rust-lang/crates.io-index",
"is_debug 1.1.0 registry+https://github.com/rust-lang/crates.io-index", "is_debug 1.1.0 registry+https://github.com/rust-lang/crates.io-index",
"is_terminal_polyfill 1.70.1 registry+https://github.com/rust-lang/crates.io-index", "is_terminal_polyfill 1.70.2 registry+https://github.com/rust-lang/crates.io-index",
"itertools 0.12.1 registry+https://github.com/rust-lang/crates.io-index", "itertools 0.12.1 registry+https://github.com/rust-lang/crates.io-index",
"itertools 0.14.0 registry+https://github.com/rust-lang/crates.io-index", "itertools 0.14.0 registry+https://github.com/rust-lang/crates.io-index",
"itoa 1.0.15 registry+https://github.com/rust-lang/crates.io-index", "itoa 1.0.15 registry+https://github.com/rust-lang/crates.io-index",
"jobserver 0.1.34 registry+https://github.com/rust-lang/crates.io-index", "jobserver 0.1.34 registry+https://github.com/rust-lang/crates.io-index",
"jpeg-decoder 0.1.22 registry+https://github.com/rust-lang/crates.io-index", "jpeg-decoder 0.1.22 registry+https://github.com/rust-lang/crates.io-index",
"lazy_static 1.5.0 registry+https://github.com/rust-lang/crates.io-index", "lazy_static 1.5.0 registry+https://github.com/rust-lang/crates.io-index",
"libc 0.2.176 registry+https://github.com/rust-lang/crates.io-index", "libc 0.2.177 registry+https://github.com/rust-lang/crates.io-index",
"libgit2-sys 0.18.2+1.9.1 registry+https://github.com/rust-lang/crates.io-index", "libgit2-sys 0.18.2+1.9.1 registry+https://github.com/rust-lang/crates.io-index",
"libz-sys 1.1.22 registry+https://github.com/rust-lang/crates.io-index", "libz-sys 1.1.22 registry+https://github.com/rust-lang/crates.io-index",
"linked-hash-map 0.5.6 registry+https://github.com/rust-lang/crates.io-index", "linked-hash-map 0.5.6 registry+https://github.com/rust-lang/crates.io-index",
"litrs 0.4.2 registry+https://github.com/rust-lang/crates.io-index", "litrs 1.0.0 registry+https://github.com/rust-lang/crates.io-index",
"lock_api 0.4.14 registry+https://github.com/rust-lang/crates.io-index", "lock_api 0.4.14 registry+https://github.com/rust-lang/crates.io-index",
"log 0.4.28 registry+https://github.com/rust-lang/crates.io-index", "log 0.4.28 registry+https://github.com/rust-lang/crates.io-index",
"logos 0.14.4 registry+https://github.com/rust-lang/crates.io-index", "logos 0.14.4 registry+https://github.com/rust-lang/crates.io-index",
@@ -603,7 +635,7 @@
"miniz_oxide 0.3.7 registry+https://github.com/rust-lang/crates.io-index", "miniz_oxide 0.3.7 registry+https://github.com/rust-lang/crates.io-index",
"miniz_oxide 0.4.4 registry+https://github.com/rust-lang/crates.io-index", "miniz_oxide 0.4.4 registry+https://github.com/rust-lang/crates.io-index",
"miniz_oxide 0.8.9 registry+https://github.com/rust-lang/crates.io-index", "miniz_oxide 0.8.9 registry+https://github.com/rust-lang/crates.io-index",
"mio 1.0.4 registry+https://github.com/rust-lang/crates.io-index", "mio 1.1.0 registry+https://github.com/rust-lang/crates.io-index",
"miow 0.6.1 registry+https://github.com/rust-lang/crates.io-index", "miow 0.6.1 registry+https://github.com/rust-lang/crates.io-index",
"nanoid 0.4.0 registry+https://github.com/rust-lang/crates.io-index", "nanoid 0.4.0 registry+https://github.com/rust-lang/crates.io-index",
"native-tls 0.2.14 registry+https://github.com/rust-lang/crates.io-index", "native-tls 0.2.14 registry+https://github.com/rust-lang/crates.io-index",
@@ -612,9 +644,10 @@
"new_debug_unreachable 1.0.6 registry+https://github.com/rust-lang/crates.io-index", "new_debug_unreachable 1.0.6 registry+https://github.com/rust-lang/crates.io-index",
"nohash-hasher 0.2.0 registry+https://github.com/rust-lang/crates.io-index", "nohash-hasher 0.2.0 registry+https://github.com/rust-lang/crates.io-index",
"nom 7.1.3 registry+https://github.com/rust-lang/crates.io-index", "nom 7.1.3 registry+https://github.com/rust-lang/crates.io-index",
"nom 8.0.0 registry+https://github.com/rust-lang/crates.io-index",
"noop_proc_macro 0.3.0 registry+https://github.com/rust-lang/crates.io-index", "noop_proc_macro 0.3.0 registry+https://github.com/rust-lang/crates.io-index",
"ntapi 0.4.1 registry+https://github.com/rust-lang/crates.io-index", "ntapi 0.4.1 registry+https://github.com/rust-lang/crates.io-index",
"nu-ansi-term 0.50.1 registry+https://github.com/rust-lang/crates.io-index", "nu-ansi-term 0.50.3 registry+https://github.com/rust-lang/crates.io-index",
"num 0.4.3 registry+https://github.com/rust-lang/crates.io-index", "num 0.4.3 registry+https://github.com/rust-lang/crates.io-index",
"num-bigint 0.4.6 registry+https://github.com/rust-lang/crates.io-index", "num-bigint 0.4.6 registry+https://github.com/rust-lang/crates.io-index",
"num-complex 0.4.6 registry+https://github.com/rust-lang/crates.io-index", "num-complex 0.4.6 registry+https://github.com/rust-lang/crates.io-index",
@@ -625,8 +658,10 @@
"num-rational 0.3.2 registry+https://github.com/rust-lang/crates.io-index", "num-rational 0.3.2 registry+https://github.com/rust-lang/crates.io-index",
"num-rational 0.4.2 registry+https://github.com/rust-lang/crates.io-index", "num-rational 0.4.2 registry+https://github.com/rust-lang/crates.io-index",
"num-traits 0.2.19 registry+https://github.com/rust-lang/crates.io-index", "num-traits 0.2.19 registry+https://github.com/rust-lang/crates.io-index",
"object 0.32.2 registry+https://github.com/rust-lang/crates.io-index",
"once_cell 1.21.3 registry+https://github.com/rust-lang/crates.io-index", "once_cell 1.21.3 registry+https://github.com/rust-lang/crates.io-index",
"once_cell_polyfill 1.70.1 registry+https://github.com/rust-lang/crates.io-index", "once_cell_polyfill 1.70.2 registry+https://github.com/rust-lang/crates.io-index",
"open 5.3.2 registry+https://github.com/rust-lang/crates.io-index",
"os_info 3.12.0 registry+https://github.com/rust-lang/crates.io-index", "os_info 3.12.0 registry+https://github.com/rust-lang/crates.io-index",
"owo-colors 4.2.3 registry+https://github.com/rust-lang/crates.io-index", "owo-colors 4.2.3 registry+https://github.com/rust-lang/crates.io-index",
"palette 0.5.0 registry+https://github.com/rust-lang/crates.io-index", "palette 0.5.0 registry+https://github.com/rust-lang/crates.io-index",
@@ -651,10 +686,10 @@
"powerfmt 0.2.0 registry+https://github.com/rust-lang/crates.io-index", "powerfmt 0.2.0 registry+https://github.com/rust-lang/crates.io-index",
"powershell_script 1.1.0 registry+https://github.com/rust-lang/crates.io-index", "powershell_script 1.1.0 registry+https://github.com/rust-lang/crates.io-index",
"ppv-lite86 0.2.21 registry+https://github.com/rust-lang/crates.io-index", "ppv-lite86 0.2.21 registry+https://github.com/rust-lang/crates.io-index",
"proc-macro2 1.0.101 registry+https://github.com/rust-lang/crates.io-index", "proc-macro2 1.0.103 registry+https://github.com/rust-lang/crates.io-index",
"profiling 1.0.17 registry+https://github.com/rust-lang/crates.io-index", "profiling 1.0.17 registry+https://github.com/rust-lang/crates.io-index",
"profiling-procmacros 1.0.17 registry+https://github.com/rust-lang/crates.io-index", "profiling-procmacros 1.0.17 registry+https://github.com/rust-lang/crates.io-index",
"psm 0.1.27 registry+https://github.com/rust-lang/crates.io-index", "psm 0.1.28 registry+https://github.com/rust-lang/crates.io-index",
"qoi 0.4.1 registry+https://github.com/rust-lang/crates.io-index", "qoi 0.4.1 registry+https://github.com/rust-lang/crates.io-index",
"quick-error 2.0.1 registry+https://github.com/rust-lang/crates.io-index", "quick-error 2.0.1 registry+https://github.com/rust-lang/crates.io-index",
"quote 1.0.41 registry+https://github.com/rust-lang/crates.io-index", "quote 1.0.41 registry+https://github.com/rust-lang/crates.io-index",
@@ -672,20 +707,22 @@
"raw-window-handle 0.6.2 registry+https://github.com/rust-lang/crates.io-index", "raw-window-handle 0.6.2 registry+https://github.com/rust-lang/crates.io-index",
"rayon 1.11.0 registry+https://github.com/rust-lang/crates.io-index", "rayon 1.11.0 registry+https://github.com/rust-lang/crates.io-index",
"rayon-core 1.13.0 registry+https://github.com/rust-lang/crates.io-index", "rayon-core 1.13.0 registry+https://github.com/rust-lang/crates.io-index",
"regex 1.11.3 registry+https://github.com/rust-lang/crates.io-index", "regex 1.12.2 registry+https://github.com/rust-lang/crates.io-index",
"regex-automata 0.4.11 registry+https://github.com/rust-lang/crates.io-index", "regex-automata 0.4.13 registry+https://github.com/rust-lang/crates.io-index",
"regex-syntax 0.8.6 registry+https://github.com/rust-lang/crates.io-index", "regex-syntax 0.8.8 registry+https://github.com/rust-lang/crates.io-index",
"reqwest 0.12.23 registry+https://github.com/rust-lang/crates.io-index", "reqwest 0.12.24 registry+https://github.com/rust-lang/crates.io-index",
"rgb 0.8.52 registry+https://github.com/rust-lang/crates.io-index", "rgb 0.8.52 registry+https://github.com/rust-lang/crates.io-index",
"roxmltree 0.20.0 registry+https://github.com/rust-lang/crates.io-index", "roxmltree 0.20.0 registry+https://github.com/rust-lang/crates.io-index",
"rustc-demangle 0.1.26 registry+https://github.com/rust-lang/crates.io-index", "rustc-demangle 0.1.26 registry+https://github.com/rust-lang/crates.io-index",
"rustls-pki-types 1.12.0 registry+https://github.com/rust-lang/crates.io-index", "rustc_version 0.4.1 registry+https://github.com/rust-lang/crates.io-index",
"rustls-pki-types 1.13.0 registry+https://github.com/rust-lang/crates.io-index",
"same-file 1.0.6 registry+https://github.com/rust-lang/crates.io-index", "same-file 1.0.6 registry+https://github.com/rust-lang/crates.io-index",
"schannel 0.1.28 registry+https://github.com/rust-lang/crates.io-index", "schannel 0.1.28 registry+https://github.com/rust-lang/crates.io-index",
"schemars 0.8.22 registry+https://github.com/rust-lang/crates.io-index", "schemars 0.8.22 registry+https://github.com/rust-lang/crates.io-index",
"schemars_derive 0.8.22 registry+https://github.com/rust-lang/crates.io-index", "schemars_derive 0.8.22 registry+https://github.com/rust-lang/crates.io-index",
"scoped_threadpool 0.1.9 registry+https://github.com/rust-lang/crates.io-index", "scoped_threadpool 0.1.9 registry+https://github.com/rust-lang/crates.io-index",
"scopeguard 1.2.0 registry+https://github.com/rust-lang/crates.io-index", "scopeguard 1.2.0 registry+https://github.com/rust-lang/crates.io-index",
"semver 1.0.27 registry+https://github.com/rust-lang/crates.io-index",
"serde 1.0.228 registry+https://github.com/rust-lang/crates.io-index", "serde 1.0.228 registry+https://github.com/rust-lang/crates.io-index",
"serde_core 1.0.228 registry+https://github.com/rust-lang/crates.io-index", "serde_core 1.0.228 registry+https://github.com/rust-lang/crates.io-index",
"serde_derive 1.0.228 registry+https://github.com/rust-lang/crates.io-index", "serde_derive 1.0.228 registry+https://github.com/rust-lang/crates.io-index",
@@ -694,15 +731,17 @@
"serde_json_lenient 0.2.4 registry+https://github.com/rust-lang/crates.io-index", "serde_json_lenient 0.2.4 registry+https://github.com/rust-lang/crates.io-index",
"serde_urlencoded 0.7.1 registry+https://github.com/rust-lang/crates.io-index", "serde_urlencoded 0.7.1 registry+https://github.com/rust-lang/crates.io-index",
"serde_variant 0.1.3 registry+https://github.com/rust-lang/crates.io-index", "serde_variant 0.1.3 registry+https://github.com/rust-lang/crates.io-index",
"serde_with 3.15.0 registry+https://github.com/rust-lang/crates.io-index", "serde_with 3.15.1 registry+https://github.com/rust-lang/crates.io-index",
"serde_with_macros 3.15.0 registry+https://github.com/rust-lang/crates.io-index", "serde_with_macros 3.15.1 registry+https://github.com/rust-lang/crates.io-index",
"serde_yaml 0.8.26 registry+https://github.com/rust-lang/crates.io-index", "serde_yaml 0.8.26 registry+https://github.com/rust-lang/crates.io-index",
"serde_yaml 0.9.34+deprecated registry+https://github.com/rust-lang/crates.io-index", "serde_yaml 0.9.34+deprecated registry+https://github.com/rust-lang/crates.io-index",
"sha2 0.10.9 registry+https://github.com/rust-lang/crates.io-index",
"shadow-rs 1.4.0 registry+https://github.com/rust-lang/crates.io-index", "shadow-rs 1.4.0 registry+https://github.com/rust-lang/crates.io-index",
"sharded-slab 0.1.7 registry+https://github.com/rust-lang/crates.io-index", "sharded-slab 0.1.7 registry+https://github.com/rust-lang/crates.io-index",
"shell-words 1.1.0 registry+https://github.com/rust-lang/crates.io-index", "shell-words 1.1.0 registry+https://github.com/rust-lang/crates.io-index",
"shellexpand 2.1.2 registry+https://github.com/rust-lang/crates.io-index", "shellexpand 2.1.2 registry+https://github.com/rust-lang/crates.io-index",
"shlex 1.3.0 registry+https://github.com/rust-lang/crates.io-index", "shlex 1.3.0 registry+https://github.com/rust-lang/crates.io-index",
"signature 2.2.0 registry+https://github.com/rust-lang/crates.io-index",
"simd-adler32 0.3.7 registry+https://github.com/rust-lang/crates.io-index", "simd-adler32 0.3.7 registry+https://github.com/rust-lang/crates.io-index",
"simd_helpers 0.1.0 registry+https://github.com/rust-lang/crates.io-index", "simd_helpers 0.1.0 registry+https://github.com/rust-lang/crates.io-index",
"siphasher 0.3.11 registry+https://github.com/rust-lang/crates.io-index", "siphasher 0.3.11 registry+https://github.com/rust-lang/crates.io-index",
@@ -710,15 +749,15 @@
"slab 0.4.11 registry+https://github.com/rust-lang/crates.io-index", "slab 0.4.11 registry+https://github.com/rust-lang/crates.io-index",
"smallvec 1.15.1 registry+https://github.com/rust-lang/crates.io-index", "smallvec 1.15.1 registry+https://github.com/rust-lang/crates.io-index",
"smol_str 0.2.2 registry+https://github.com/rust-lang/crates.io-index", "smol_str 0.2.2 registry+https://github.com/rust-lang/crates.io-index",
"socket2 0.6.0 registry+https://github.com/rust-lang/crates.io-index", "socket2 0.6.1 registry+https://github.com/rust-lang/crates.io-index",
"stable_deref_trait 1.2.0 registry+https://github.com/rust-lang/crates.io-index", "stable_deref_trait 1.2.1 registry+https://github.com/rust-lang/crates.io-index",
"stacker 0.1.22 registry+https://github.com/rust-lang/crates.io-index", "stacker 0.1.22 registry+https://github.com/rust-lang/crates.io-index",
"static_assertions 1.1.0 registry+https://github.com/rust-lang/crates.io-index", "static_assertions 1.1.0 registry+https://github.com/rust-lang/crates.io-index",
"strsim 0.11.1 registry+https://github.com/rust-lang/crates.io-index", "strsim 0.11.1 registry+https://github.com/rust-lang/crates.io-index",
"strum 0.27.2 registry+https://github.com/rust-lang/crates.io-index", "strum 0.27.2 registry+https://github.com/rust-lang/crates.io-index",
"strum_macros 0.27.2 registry+https://github.com/rust-lang/crates.io-index", "strum_macros 0.27.2 registry+https://github.com/rust-lang/crates.io-index",
"syn 1.0.109 registry+https://github.com/rust-lang/crates.io-index", "syn 1.0.109 registry+https://github.com/rust-lang/crates.io-index",
"syn 2.0.106 registry+https://github.com/rust-lang/crates.io-index", "syn 2.0.108 registry+https://github.com/rust-lang/crates.io-index",
"synstructure 0.13.2 registry+https://github.com/rust-lang/crates.io-index", "synstructure 0.13.2 registry+https://github.com/rust-lang/crates.io-index",
"sysinfo 0.33.1 registry+https://github.com/rust-lang/crates.io-index", "sysinfo 0.33.1 registry+https://github.com/rust-lang/crates.io-index",
"sysinfo 0.37.2 registry+https://github.com/rust-lang/crates.io-index", "sysinfo 0.37.2 registry+https://github.com/rust-lang/crates.io-index",
@@ -734,7 +773,7 @@
"tiff 0.6.1 registry+https://github.com/rust-lang/crates.io-index", "tiff 0.6.1 registry+https://github.com/rust-lang/crates.io-index",
"time 0.3.44 registry+https://github.com/rust-lang/crates.io-index", "time 0.3.44 registry+https://github.com/rust-lang/crates.io-index",
"time-core 0.1.6 registry+https://github.com/rust-lang/crates.io-index", "time-core 0.1.6 registry+https://github.com/rust-lang/crates.io-index",
"tokio 1.47.1 registry+https://github.com/rust-lang/crates.io-index", "tokio 1.48.0 registry+https://github.com/rust-lang/crates.io-index",
"tokio-native-tls 0.3.1 registry+https://github.com/rust-lang/crates.io-index", "tokio-native-tls 0.3.1 registry+https://github.com/rust-lang/crates.io-index",
"tokio-util 0.7.16 registry+https://github.com/rust-lang/crates.io-index", "tokio-util 0.7.16 registry+https://github.com/rust-lang/crates.io-index",
"toml 0.5.11 registry+https://github.com/rust-lang/crates.io-index", "toml 0.5.11 registry+https://github.com/rust-lang/crates.io-index",
@@ -752,11 +791,11 @@
"try-lock 0.2.5 registry+https://github.com/rust-lang/crates.io-index", "try-lock 0.2.5 registry+https://github.com/rust-lang/crates.io-index",
"ttf-parser 0.25.1 registry+https://github.com/rust-lang/crates.io-index", "ttf-parser 0.25.1 registry+https://github.com/rust-lang/crates.io-index",
"typenum 1.19.0 registry+https://github.com/rust-lang/crates.io-index", "typenum 1.19.0 registry+https://github.com/rust-lang/crates.io-index",
"tz-rs 0.7.0 registry+https://github.com/rust-lang/crates.io-index", "tz-rs 0.7.1 registry+https://github.com/rust-lang/crates.io-index",
"tzdb_data 0.2.2 registry+https://github.com/rust-lang/crates.io-index", "tzdb_data 0.2.2 registry+https://github.com/rust-lang/crates.io-index",
"uds_windows 1.1.0 registry+https://github.com/rust-lang/crates.io-index", "uds_windows 1.1.0 registry+https://github.com/rust-lang/crates.io-index",
"unicase 2.8.1 registry+https://github.com/rust-lang/crates.io-index", "unicase 2.8.1 registry+https://github.com/rust-lang/crates.io-index",
"unicode-ident 1.0.19 registry+https://github.com/rust-lang/crates.io-index", "unicode-ident 1.0.20 registry+https://github.com/rust-lang/crates.io-index",
"unicode-segmentation 1.12.0 registry+https://github.com/rust-lang/crates.io-index", "unicode-segmentation 1.12.0 registry+https://github.com/rust-lang/crates.io-index",
"unicode-width 0.1.14 registry+https://github.com/rust-lang/crates.io-index", "unicode-width 0.1.14 registry+https://github.com/rust-lang/crates.io-index",
"unicode-width 0.2.2 registry+https://github.com/rust-lang/crates.io-index", "unicode-width 0.2.2 registry+https://github.com/rust-lang/crates.io-index",
@@ -771,9 +810,10 @@
"walkdir 2.5.0 registry+https://github.com/rust-lang/crates.io-index", "walkdir 2.5.0 registry+https://github.com/rust-lang/crates.io-index",
"want 0.3.1 registry+https://github.com/rust-lang/crates.io-index", "want 0.3.1 registry+https://github.com/rust-lang/crates.io-index",
"web-time 1.1.0 registry+https://github.com/rust-lang/crates.io-index", "web-time 1.1.0 registry+https://github.com/rust-lang/crates.io-index",
"webbrowser 1.0.5 registry+https://github.com/rust-lang/crates.io-index", "webbrowser 1.0.6 registry+https://github.com/rust-lang/crates.io-index",
"weezl 0.1.10 registry+https://github.com/rust-lang/crates.io-index", "weezl 0.1.10 registry+https://github.com/rust-lang/crates.io-index",
"which 8.0.0 registry+https://github.com/rust-lang/crates.io-index", "which 8.0.0 registry+https://github.com/rust-lang/crates.io-index",
"win-msgbox 0.2.1 registry+https://github.com/rust-lang/crates.io-index",
"winapi 0.3.9 registry+https://github.com/rust-lang/crates.io-index", "winapi 0.3.9 registry+https://github.com/rust-lang/crates.io-index",
"winapi-util 0.1.11 registry+https://github.com/rust-lang/crates.io-index", "winapi-util 0.1.11 registry+https://github.com/rust-lang/crates.io-index",
"windows 0.57.0 registry+https://github.com/rust-lang/crates.io-index", "windows 0.57.0 registry+https://github.com/rust-lang/crates.io-index",
@@ -838,9 +878,10 @@
"winreg 0.55.0 registry+https://github.com/rust-lang/crates.io-index", "winreg 0.55.0 registry+https://github.com/rust-lang/crates.io-index",
"winsafe 0.0.19 registry+https://github.com/rust-lang/crates.io-index", "winsafe 0.0.19 registry+https://github.com/rust-lang/crates.io-index",
"wmi 0.15.2 registry+https://github.com/rust-lang/crates.io-index", "wmi 0.15.2 registry+https://github.com/rust-lang/crates.io-index",
"xml-rs 0.8.27 registry+https://github.com/rust-lang/crates.io-index", "xml-rs 0.8.28 registry+https://github.com/rust-lang/crates.io-index",
"yaml-rust 0.4.5 registry+https://github.com/rust-lang/crates.io-index", "yaml-rust 0.4.5 registry+https://github.com/rust-lang/crates.io-index",
"zerocopy 0.8.27 registry+https://github.com/rust-lang/crates.io-index", "zerocopy 0.8.27 registry+https://github.com/rust-lang/crates.io-index",
"zerocopy-derive 0.8.27 registry+https://github.com/rust-lang/crates.io-index",
"zeroize 1.8.2 registry+https://github.com/rust-lang/crates.io-index", "zeroize 1.8.2 registry+https://github.com/rust-lang/crates.io-index",
"zune-core 0.4.12 registry+https://github.com/rust-lang/crates.io-index", "zune-core 0.4.12 registry+https://github.com/rust-lang/crates.io-index",
"zune-inflate 0.2.54 registry+https://github.com/rust-lang/crates.io-index", "zune-inflate 0.2.54 registry+https://github.com/rust-lang/crates.io-index",
@@ -876,31 +917,31 @@
[ [
"Unicode-3.0", "Unicode-3.0",
[ [
"icu_collections 2.0.0 registry+https://github.com/rust-lang/crates.io-index", "icu_collections 2.1.1 registry+https://github.com/rust-lang/crates.io-index",
"icu_locale_core 2.0.0 registry+https://github.com/rust-lang/crates.io-index", "icu_locale_core 2.1.1 registry+https://github.com/rust-lang/crates.io-index",
"icu_normalizer 2.0.0 registry+https://github.com/rust-lang/crates.io-index", "icu_normalizer 2.1.1 registry+https://github.com/rust-lang/crates.io-index",
"icu_normalizer_data 2.0.0 registry+https://github.com/rust-lang/crates.io-index", "icu_normalizer_data 2.1.1 registry+https://github.com/rust-lang/crates.io-index",
"icu_properties 2.0.1 registry+https://github.com/rust-lang/crates.io-index", "icu_properties 2.1.1 registry+https://github.com/rust-lang/crates.io-index",
"icu_properties_data 2.0.1 registry+https://github.com/rust-lang/crates.io-index", "icu_properties_data 2.1.1 registry+https://github.com/rust-lang/crates.io-index",
"icu_provider 2.0.0 registry+https://github.com/rust-lang/crates.io-index", "icu_provider 2.1.1 registry+https://github.com/rust-lang/crates.io-index",
"litemap 0.8.0 registry+https://github.com/rust-lang/crates.io-index", "litemap 0.8.1 registry+https://github.com/rust-lang/crates.io-index",
"potential_utf 0.1.3 registry+https://github.com/rust-lang/crates.io-index", "potential_utf 0.1.4 registry+https://github.com/rust-lang/crates.io-index",
"tinystr 0.8.1 registry+https://github.com/rust-lang/crates.io-index", "tinystr 0.8.2 registry+https://github.com/rust-lang/crates.io-index",
"unicode-ident 1.0.19 registry+https://github.com/rust-lang/crates.io-index", "unicode-ident 1.0.20 registry+https://github.com/rust-lang/crates.io-index",
"writeable 0.6.1 registry+https://github.com/rust-lang/crates.io-index", "writeable 0.6.2 registry+https://github.com/rust-lang/crates.io-index",
"yoke 0.8.0 registry+https://github.com/rust-lang/crates.io-index", "yoke 0.8.1 registry+https://github.com/rust-lang/crates.io-index",
"yoke-derive 0.8.0 registry+https://github.com/rust-lang/crates.io-index", "yoke-derive 0.8.1 registry+https://github.com/rust-lang/crates.io-index",
"zerofrom 0.1.6 registry+https://github.com/rust-lang/crates.io-index", "zerofrom 0.1.6 registry+https://github.com/rust-lang/crates.io-index",
"zerofrom-derive 0.1.6 registry+https://github.com/rust-lang/crates.io-index", "zerofrom-derive 0.1.6 registry+https://github.com/rust-lang/crates.io-index",
"zerotrie 0.2.2 registry+https://github.com/rust-lang/crates.io-index", "zerotrie 0.2.3 registry+https://github.com/rust-lang/crates.io-index",
"zerovec 0.11.4 registry+https://github.com/rust-lang/crates.io-index", "zerovec 0.11.5 registry+https://github.com/rust-lang/crates.io-index",
"zerovec-derive 0.11.1 registry+https://github.com/rust-lang/crates.io-index" "zerovec-derive 0.11.2 registry+https://github.com/rust-lang/crates.io-index"
] ]
], ],
[ [
"Unlicense", "Unlicense",
[ [
"aho-corasick 1.1.3 registry+https://github.com/rust-lang/crates.io-index", "aho-corasick 1.1.4 registry+https://github.com/rust-lang/crates.io-index",
"byteorder 1.5.0 registry+https://github.com/rust-lang/crates.io-index", "byteorder 1.5.0 registry+https://github.com/rust-lang/crates.io-index",
"byteorder-lite 0.1.0 registry+https://github.com/rust-lang/crates.io-index", "byteorder-lite 0.1.0 registry+https://github.com/rust-lang/crates.io-index",
"memchr 2.7.6 registry+https://github.com/rust-lang/crates.io-index", "memchr 2.7.6 registry+https://github.com/rust-lang/crates.io-index",

View File

@@ -10,8 +10,8 @@ Options:
Desired ease function for animation Desired ease function for animation
[default: linear] [default: linear]
[possible values: linear, ease-in-sine, ease-out-sine, ease-in-out-sine, ease-in-quad, ease-out-quad, ease-in-out-quad, ease-in-cubic, ease-in-out-cubic, ease-in-quart, ease-out-quart, ease-in-out-quart, ease-in-quint, ease-out-quint, ease-in-out-quint, [possible values: linear, ease-in-sine, ease-out-sine, ease-in-out-sine, ease-in-quad, ease-out-quad, ease-in-out-quad, ease-in-cubic, ease-in-out-cubic, ease-in-quart, ease-out-quart, ease-in-out-quart, ease-in-quint, ease-out-quint, ease-in-out-quint, ease-in-expo,
ease-in-expo, ease-out-expo, ease-in-out-expo, ease-in-circ, ease-out-circ, ease-in-out-circ, ease-in-back, ease-out-back, ease-in-out-back, ease-in-elastic, ease-out-elastic, ease-in-out-elastic, ease-in-bounce, ease-out-bounce, ease-in-out-bounce] ease-out-expo, ease-in-out-expo, ease-in-circ, ease-out-circ, ease-in-out-circ, ease-in-back, ease-out-back, ease-in-out-back, ease-in-elastic, ease-out-elastic, ease-in-out-elastic, ease-in-bounce, ease-out-bounce, ease-in-out-bounce]
-a, --animation-type <ANIMATION_TYPE> -a, --animation-type <ANIMATION_TYPE>
Animation type to apply the style to. If not specified, sets global style Animation type to apply the style to. If not specified, sets global style

View File

@@ -12,9 +12,6 @@ Options:
--whkd --whkd
Enable autostart of whkd Enable autostart of whkd
--ahk
Enable autostart of ahk
--bar --bar
Enable autostart of komorebi-bar Enable autostart of komorebi-bar

View File

@@ -9,9 +9,6 @@ Options:
--whkd --whkd
Kill whkd if it is running as a background process Kill whkd if it is running as a background process
--ahk
Kill ahk if it is running as a background process
--bar --bar
Kill komorebi-bar if it is running as a background process Kill komorebi-bar if it is running as a background process

16
docs/cli/license.md Normal file
View File

@@ -0,0 +1,16 @@
# license
```
Specify an email associated with an Individual Commercial Use License
Usage: komorebic.exe license <EMAIL>
Arguments:
<EMAIL>
Email address associated with an Individual Commercial Use License
Options:
-h, --help
Print help
```

View File

@@ -18,9 +18,6 @@ Options:
--whkd --whkd
Start whkd in a background process Start whkd in a background process
--ahk
Start autohotkey configuration file
--bar --bar
Start komorebi-bar in a background process Start komorebi-bar in a background process

View File

@@ -9,9 +9,6 @@ Options:
--whkd --whkd
Stop whkd if it is running as a background process Stop whkd if it is running as a background process
--ahk
Stop ahk if it is running as a background process
--bar --bar
Stop komorebi-bar if it is running as a background process Stop komorebi-bar if it is running as a background process

View File

@@ -16,6 +16,19 @@ the example files have been downloaded. For most new users this will be in the
komorebic quickstart komorebic quickstart
``` ```
## Corporate Devices Enrolled in MDM
If you are using `komorebi` on a corporate device enrolled in mobile device
management, you will receive a pop-up when you run `komorebic start` reminding
you that the [Komorebi License](https://github.com/LGUG2Z/komorebi-license) does
not permit any kind of commercial use.
You can remove this pop-up by running `komorebic license <email>` with the email
associated with your Individual Commercial Use License. A single HTTP request
will be sent with the given email address to verify license validity.
## Starting komorebi
With the example configurations downloaded, you can now start `komorebi`, With the example configurations downloaded, you can now start `komorebi`,
`komorebi-bar` and `whkd`. `komorebi-bar` and `whkd`.
@@ -23,6 +36,9 @@ With the example configurations downloaded, you can now start `komorebi`,
komorebic start --whkd --bar komorebic start --whkd --bar
``` ```
If you don't want to use the komorebi status bar, you can remove the `--bar` option
from the above command.
## komorebi.json ## komorebi.json
The example window manager configuration sets some sane defaults and provides The example window manager configuration sets some sane defaults and provides

View File

@@ -15,6 +15,9 @@ fmt:
prettier --write .github/FUNDING.yml prettier --write .github/FUNDING.yml
prettier --write .github/workflows/windows.yaml prettier --write .github/workflows/windows.yaml
fix:
cargo clippy --fix --allow-dirty
install-targets *targets: install-targets *targets:
"{{ targets }}" -split ' ' | ForEach-Object { just install-target $_ } "{{ targets }}" -split ' ' | ForEach-Object { just install-target $_ }
@@ -90,4 +93,5 @@ schemagen:
mv ./bar-config-docs/schema.bar.html ./bar-config-docs/schema.html mv ./bar-config-docs/schema.bar.html ./bar-config-docs/schema.html
depgen: depgen:
cargo deny check
cargo deny list --format json | jq 'del(.unlicensed)' > dependencies.json cargo deny list --format json | jq 'del(.unlicensed)' > dependencies.json

View File

@@ -66,6 +66,7 @@ pub use komorebi::core::replace_env_in_path;
pub use komorebi::monitor::Monitor; pub use komorebi::monitor::Monitor;
pub use komorebi::monitor_reconciliator::MonitorNotification; pub use komorebi::monitor_reconciliator::MonitorNotification;
pub use komorebi::ring::Ring; pub use komorebi::ring::Ring;
pub use komorebi::splash;
pub use komorebi::state::GlobalState; pub use komorebi::state::GlobalState;
pub use komorebi::state::State; pub use komorebi::state::State;
pub use komorebi::win32_display_data; pub use komorebi::win32_display_data;

View File

@@ -10,13 +10,16 @@ edition = "2024"
[dependencies] [dependencies]
komorebi-themes = { path = "../komorebi-themes" } komorebi-themes = { path = "../komorebi-themes" }
base64 = "0.21"
bitflags = { version = "2", features = ["serde"] } bitflags = { version = "2", features = ["serde"] }
clap = { workspace = true } clap = { workspace = true }
chrono = { workspace = true }
color-eyre = { workspace = true } color-eyre = { workspace = true }
crossbeam-channel = { workspace = true } crossbeam-channel = { workspace = true }
crossbeam-utils = { workspace = true } crossbeam-utils = { workspace = true }
ctrlc = { version = "3", features = ["termination"] } ctrlc = { version = "3", features = ["termination"] }
dirs = { workspace = true } dirs = { workspace = true }
ed25519-dalek = "2"
hotwatch = { workspace = true } hotwatch = { workspace = true }
lazy_static = { workspace = true } lazy_static = { workspace = true }
miow = "0.6" miow = "0.6"
@@ -27,9 +30,10 @@ parking_lot = { workspace = true }
paste = { workspace = true } paste = { workspace = true }
powershell_script = "1.0" powershell_script = "1.0"
regex = "1" regex = "1"
reqwest = { version = "0.12", features = ["blocking"] }
schemars = { workspace = true, optional = true } schemars = { workspace = true, optional = true }
serde = { workspace = true } serde = { workspace = true }
serde_json = { workspace = true } serde_json = { workspace = true, features = ["preserve_order"] }
serde_yaml = { workspace = true } serde_yaml = { workspace = true }
shadow-rs = { workspace = true } shadow-rs = { workspace = true }
strum = { workspace = true } strum = { workspace = true }

View File

@@ -16,6 +16,7 @@ pub mod process_event;
pub mod process_movement; pub mod process_movement;
pub mod reaper; pub mod reaper;
pub mod set_window_position; pub mod set_window_position;
pub mod splash;
pub mod stackbar_manager; pub mod stackbar_manager;
pub mod state; pub mod state;
pub mod static_config; pub mod static_config;
@@ -255,6 +256,21 @@ pub static WINDOW_HANDLING_BEHAVIOUR: AtomicCell<WindowHandlingBehaviour> =
shadow_rs::shadow!(build); shadow_rs::shadow!(build);
pub const PUBLIC_KEY: [u8; 32] = [
0x5a, 0x69, 0x4a, 0xe1, 0x3c, 0x4b, 0xc8, 0x4e, 0xc3, 0x79, 0x0f, 0xab, 0x27, 0x6b, 0x7e, 0xdd,
0x6b, 0x39, 0x6f, 0xa2, 0xc3, 0x9f, 0x3d, 0x48, 0xf2, 0x72, 0x56, 0x41, 0x1b, 0xc8, 0x08, 0xdb,
];
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
pub struct License {
#[serde(rename = "hasValidSubscription")]
pub has_valid_subscription: bool,
pub timestamp: i64,
#[serde(rename = "currentEndPeriod")]
pub current_end_period: Option<i64>,
pub signature: String,
}
/// A trait for types that can be marked as locked or unlocked. /// A trait for types that can be marked as locked or unlocked.
pub trait Lockable { pub trait Lockable {
/// Returns `true` if the item is locked. /// Returns `true` if the item is locked.

View File

@@ -1,3 +1,4 @@
use std::process::Command;
use std::sync::Arc; use std::sync::Arc;
use std::sync::atomic::Ordering; use std::sync::atomic::Ordering;
@@ -27,6 +28,8 @@ use crate::border_manager::BORDER_OFFSET;
use crate::border_manager::BORDER_WIDTH; use crate::border_manager::BORDER_WIDTH;
use crate::current_virtual_desktop; use crate::current_virtual_desktop;
use crate::notify_subscribers; use crate::notify_subscribers;
use crate::splash;
use crate::splash::mdm_enrollment;
use crate::stackbar_manager; use crate::stackbar_manager;
use crate::state::State; use crate::state::State;
use crate::transparency_manager; use crate::transparency_manager;
@@ -42,6 +45,24 @@ use crate::workspace::WorkspaceLayer;
pub fn listen_for_events(wm: Arc<Mutex<WindowManager>>) { pub fn listen_for_events(wm: Arc<Mutex<WindowManager>>) {
let receiver = wm.lock().incoming_events.clone(); let receiver = wm.lock().incoming_events.clone();
std::thread::spawn(|| {
loop {
if let Ok((mdm, server)) = mdm_enrollment() {
#[allow(clippy::collapsible_if)]
if mdm && splash::should().unwrap_or(true) {
let mut args = vec!["splash".to_string()];
if let Some(server) = server {
args.push(server);
}
let _ = Command::new("komorebic").args(&args).spawn();
}
}
std::thread::sleep(std::time::Duration::from_secs(14400));
}
});
std::thread::spawn(move || { std::thread::spawn(move || {
tracing::info!("listening"); tracing::info!("listening");
loop { loop {

134
komorebi/src/splash.rs Normal file
View File

@@ -0,0 +1,134 @@
use crate::DATA_DIR;
use crate::License;
use crate::PUBLIC_KEY;
use base64::Engine;
use base64::engine::general_purpose;
use chrono::Duration;
use chrono::TimeZone;
use chrono::Utc;
use color_eyre::eyre;
use color_eyre::eyre::OptionExt;
use ed25519_dalek::Verifier;
use ed25519_dalek::VerifyingKey;
use std::process::Command;
pub fn mdm_enrollment() -> eyre::Result<(bool, Option<String>)> {
let mut command = Command::new("dsregcmd");
command.args(["/status"]);
let stdout = command.output()?.stdout;
let output = std::str::from_utf8(&stdout)?;
if !output.contains("MdmUrl") {
return Ok((false, None));
}
let mut server = None;
for line in output.lines() {
if line.contains("MdmUrl") {
let line = line.trim().to_string();
server = Some(line.trim_start_matches("MdmUrl : ").to_string())
}
}
Ok((true, server))
}
fn is_valid_payload(raw: &str, fresh: bool) -> eyre::Result<bool> {
let mut validation_successful = false;
let payload = serde_json::from_str::<License>(raw)?;
let signature = ed25519_dalek::Signature::from_slice(
general_purpose::STANDARD
.decode(&payload.signature)?
.as_slice(),
)?;
let mut value: serde_json::Value = serde_json::from_str(raw)?;
if let serde_json::Value::Object(ref mut map) = value {
map.remove("signature");
}
let message_to_verify = serde_json::to_string(&value)?;
let verifying_key = VerifyingKey::from_bytes(&PUBLIC_KEY)?;
if verifying_key
.verify(message_to_verify.as_bytes(), &signature)
.is_ok()
{
if fresh {
let timestamp = Utc
.timestamp_opt(payload.timestamp, 0)
.single()
.ok_or_eyre("invalid timestamp")?;
let valid_duration = Utc::now() - Duration::minutes(5);
if timestamp <= valid_duration {
tracing::debug!("individual commercial use license verification payload was stale");
return Ok(true);
}
}
if payload.has_valid_subscription
&& let Some(current_end_period) = payload.current_end_period
{
let subscription_valid_until = Utc
.timestamp_opt(current_end_period, 0)
.single()
.ok_or_eyre("invalid timestamp")?;
if Utc::now() <= subscription_valid_until {
tracing::debug!(
"individual commercial use license verification - subscription valid until: {subscription_valid_until}",
);
validation_successful = true;
}
}
}
Ok(validation_successful)
}
pub fn should() -> eyre::Result<bool> {
let icul_validation = DATA_DIR.join("icul.validation");
if icul_validation.exists() {
tracing::debug!("found local individual commercial use license validation payload");
let raw_payload = std::fs::read_to_string(&icul_validation)?;
if is_valid_payload(&raw_payload, false)? {
return Ok(false);
} else {
std::fs::remove_file(&icul_validation)?;
}
}
let icul = DATA_DIR.join("icul");
if !icul.exists() {
return Ok(true);
}
let email = std::fs::read_to_string(icul)?;
tracing::debug!("found individual commercial use license email: {}", email);
let client = reqwest::blocking::Client::new();
let response = match client
.get("https://kw-icul.lgug2z.com")
.query(&[("email", email.trim())])
.send()
{
Ok(response) => response,
Err(error) => {
tracing::error!("{error}");
return Ok(true);
}
};
let raw_payload = response.text()?;
if is_valid_payload(&raw_payload, true)? {
std::fs::write(icul_validation, &raw_payload)?;
Ok(false)
} else {
Ok(true)
}
}

View File

@@ -18,6 +18,7 @@ dunce = { workspace = true }
fs-tail = "0.1" fs-tail = "0.1"
lazy_static = { workspace = true } lazy_static = { workspace = true }
miette = { version = "7", features = ["fancy"] } miette = { version = "7", features = ["fancy"] }
open = "5"
paste = { workspace = true } paste = { workspace = true }
powershell_script = "1.0" powershell_script = "1.0"
reqwest = { version = "0.12", features = ["blocking"] } reqwest = { version = "0.12", features = ["blocking"] }
@@ -28,6 +29,7 @@ shadow-rs = { workspace = true }
sysinfo = { workspace = true } sysinfo = { workspace = true }
thiserror = "2" thiserror = "2"
which = { workspace = true } which = { workspace = true }
win-msgbox = "0.2"
windows = { workspace = true } windows = { workspace = true }
[build-dependencies] [build-dependencies]

View File

@@ -4,6 +4,7 @@
use chrono::Utc; use chrono::Utc;
use komorebi_client::PathExt; use komorebi_client::PathExt;
use komorebi_client::replace_env_in_path; use komorebi_client::replace_env_in_path;
use komorebi_client::splash;
use std::fs::File; use std::fs::File;
use std::fs::OpenOptions; use std::fs::OpenOptions;
use std::io; use std::io;
@@ -38,6 +39,7 @@ use paste::paste;
use serde::Deserialize; use serde::Deserialize;
use sysinfo::ProcessesToUpdate; use sysinfo::ProcessesToUpdate;
use which::which; use which::which;
use win_msgbox::OkayCancel;
use windows::Win32::Foundation::HWND; use windows::Win32::Foundation::HWND;
use windows::Win32::UI::WindowsAndMessaging::SHOW_WINDOW_CMD; use windows::Win32::UI::WindowsAndMessaging::SHOW_WINDOW_CMD;
use windows::Win32::UI::WindowsAndMessaging::SW_RESTORE; use windows::Win32::UI::WindowsAndMessaging::SW_RESTORE;
@@ -990,6 +992,17 @@ struct ScrollingLayoutColumns {
count: NonZeroUsize, count: NonZeroUsize,
} }
#[derive(Parser)]
struct License {
/// Email address associated with an Individual Commercial Use License
email: String,
}
#[derive(Parser)]
struct Splash {
mdm_server: Option<String>,
}
#[derive(Parser)] #[derive(Parser)]
#[clap(author, about, version = build::CLAP_LONG_VERSION)] #[clap(author, about, version = build::CLAP_LONG_VERSION)]
struct Opts { struct Opts {
@@ -1001,8 +1014,13 @@ struct Opts {
enum SubCommand { enum SubCommand {
#[clap(hide = true)] #[clap(hide = true)]
Docgen, Docgen,
#[clap(hide = true)]
Splash(Splash),
/// Gather example configurations for a new-user quickstart /// Gather example configurations for a new-user quickstart
Quickstart, Quickstart,
/// Specify an email associated with an Individual Commercial Use License
#[clap(arg_required_else_help = true)]
License(License),
/// Start komorebi.exe as a background process /// Start komorebi.exe as a background process
Start(Start), Start(Start),
/// Stop the komorebi.exe process and restore all hidden windows /// Stop the komorebi.exe process and restore all hidden windows
@@ -1561,6 +1579,7 @@ fn main() -> eyre::Result<()> {
let ignore = [ let ignore = [
"docgen", "docgen",
"splash",
"alt-focus-hack", "alt-focus-hack",
"identify-border-overflow-application", "identify-border-overflow-application",
"load-custom-layout", "load-custom-layout",
@@ -1584,6 +1603,45 @@ fn main() -> eyre::Result<()> {
} }
} }
} }
SubCommand::Splash(arg) => {
let informative_text = match arg.mdm_server {
None => {
"It looks like you are using a corporate device enrolled in mobile device management\n\n\
The Komorebi License does not permit any kind of commercial use\n\n\
A dedicated Individual Commercial Use License is available if you wish to use this software at work\n\n\
You are strongly encouraged to make your employer pay for your license, either directly or via reimbursement\n\n\
To remove this popup in the future, run \"komorebic license <email>\" using the email address associated with your license".to_string()
}
Some(server) => {
format!(
"It looks like you are using a corporate device enrolled in mobile device management ({server})\n\n\
The Komorebi License does not permit any kind of commercial use\n\n\
A dedicated Individual Commercial Use License is available if you wish to use this software at work\n\n\
You are strongly encouraged to make your employer pay for your license, either directly or via reimbursement\n\n\
To remove this popup in the future you can run \"komorebic license <email>\" using the email address associated with your license"
)
}
};
if let Ok(response) = win_msgbox::error::<OkayCancel>(&informative_text)
.title("MDM Enrollment Detected")
.topmost()
.icon(win_msgbox::Icon::Warning)
.set_foreground()
.show()
{
match response {
OkayCancel::Okay => {
open::that("https://lgug2z.com/software/komorebi")?;
}
OkayCancel::Cancel => {}
}
}
}
SubCommand::License(arg) => {
std::fs::write(DATA_DIR.join("icul"), arg.email)?;
splash::should()?;
}
SubCommand::Quickstart => { SubCommand::Quickstart => {
fn write_file_with_prompt( fn write_file_with_prompt(
path: &PathBuf, path: &PathBuf,
@@ -1650,6 +1708,31 @@ fn main() -> eyre::Result<()> {
written_files.join("\n") written_files.join("\n")
); );
} }
if let Ok((mdm, server)) = splash::mdm_enrollment()
&& mdm
{
if let Some(server) = server {
println!(
"\nIt looks like you are using a corporate device enrolled in mobile device management ({server})"
);
} else {
println!(
"\nIt looks like you are using a corporate device enrolled in mobile device management"
);
}
println!("The Komorebi License does not permit any kind of commercial use");
println!(
"A dedicated Individual Commercial Use License is available if you wish to use this software at work"
);
println!(
"You are strongly encouraged to make your employer pay for your license, either directly or via reimbursement"
);
println!(
"If you already have a license, you can run \"komorebic license <email>\" with the email address your license is associated with"
);
}
println!("\nYou can now run komorebic start --whkd --bar"); println!("\nYou can now run komorebic start --whkd --bar");
} }
SubCommand::EnableAutostart(arg) => { SubCommand::EnableAutostart(arg) => {

View File

@@ -84,6 +84,7 @@ nav:
- common-workflows/multi-monitor-setup.md - common-workflows/multi-monitor-setup.md
- CLI reference: - CLI reference:
- cli/quickstart.md - cli/quickstart.md
- cli/license.md
- cli/start.md - cli/start.md
- cli/stop.md - cli/stop.md
- cli/kill.md - cli/kill.md
@@ -255,4 +256,4 @@ nav:
- cli/static-config-schema.md - cli/static-config-schema.md
- cli/generate-static-config.md - cli/generate-static-config.md
- cli/enable-autostart.md - cli/enable-autostart.md
- cli/disable-autostart.md - cli/disable-autostart.md