diff --git a/.github/workflows/check_source_code.yml b/.github/workflows/check_source_code.yml index a72d2ae..9397c72 100644 --- a/.github/workflows/check_source_code.yml +++ b/.github/workflows/check_source_code.yml @@ -27,7 +27,7 @@ jobs: - name: Install dependencies run: | apt update - apt install -y libgtk-4-dev libadwaita-1-dev git curl + apt install -y build-essential libgtk-4-dev libadwaita-1-dev git curl - uses: dtolnay/rust-toolchain@stable with: diff --git a/.github/workflows/compile_release_build.yml b/.github/workflows/compile_release_build.yml index 295a1b8..a70b8c4 100644 --- a/.github/workflows/compile_release_build.yml +++ b/.github/workflows/compile_release_build.yml @@ -26,7 +26,7 @@ jobs: - name: Install dependencies run: | apt update - apt install -y libgtk-4-dev libadwaita-1-dev git curl + apt install -y build-essential libgtk-4-dev libadwaita-1-dev git curl - uses: dtolnay/rust-toolchain@stable with: diff --git a/CHANGELOG.md b/CHANGELOG.md index 820edee..d2de1c8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,24 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Added + +- Bundle `applications-system-symbolic` icon to the app +- Added "force grab cursor" option to the gamescope settings +- Added Thai +- Added Ukrainian + +### Changed + +- Update wish url +- Updated dependencies +- Improved app args parsing +- Updated locales + +### Fixed + +- Fixed GtkSwitch UI state representation + ## [1.5.2] - 29.12.2023 ### Fixed diff --git a/Cargo.lock b/Cargo.lock index a18f6b7..c4ab9d9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -19,9 +19,9 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] name = "aes" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac1f845298e95f983ff1944b728ae08b8cebab80d684f0a832ed0fc74dfa27e2" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" dependencies = [ "cfg-if", "cipher", @@ -30,9 +30,9 @@ dependencies = [ [[package]] name = "ahash" -version = "0.8.6" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" dependencies = [ "cfg-if", "once_cell", @@ -42,9 +42,9 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" dependencies = [ "memchr", ] @@ -57,8 +57,8 @@ checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" [[package]] name = "anime-game-core" -version = "1.17.4" -source = "git+https://github.com/an-anime-team/anime-game-core?tag=1.17.4#74a7c5a18cc4a870ff78e12d63ec136b3ef2d424" +version = "1.17.5" +source = "git+https://github.com/an-anime-team/anime-game-core?tag=1.17.5#55dd60f6b5f78aa80e2217404c3ee1151657f011" dependencies = [ "anyhow", "bzip2", @@ -82,8 +82,8 @@ dependencies = [ [[package]] name = "anime-launcher-sdk" -version = "1.12.5" -source = "git+https://github.com/an-anime-team/anime-launcher-sdk?tag=1.12.5#fae9497c43f9d7636d32ba755163808f805049b1" +version = "1.12.7" +source = "git+https://github.com/an-anime-team/anime-launcher-sdk?tag=1.12.7#f4133c0875af54b07b4c0dac04df4598193ac9ec" dependencies = [ "anime-game-core", "anyhow", @@ -100,9 +100,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.5" +version = "0.6.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d664a92ecae85fd0a7392615844904654d1d5f5514837f471ddef4a057aba1b6" +checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb" dependencies = [ "anstyle", "anstyle-parse", @@ -114,9 +114,9 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.4" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87" +checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc" [[package]] name = "anstyle-parse" @@ -148,18 +148,18 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.77" +version = "1.0.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9d19de80eff169429ac1e9f48fffb163916b448a44e8e046186232046d9e1f9" +checksum = "0952808a6c2afd1aa8947271f3a60f1a6763c7b912d210184c5149b5cf147247" dependencies = [ "backtrace", ] [[package]] name = "arc-swap" -version = "1.6.0" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6" +checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457" [[package]] name = "arrayref" @@ -175,131 +175,60 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "ashpd" -version = "0.6.7" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c018490e423efb6f032ef575f873ea57b61d44bec763cfe027b8e8852a027cf" +checksum = "dd884d7c72877a94102c3715f3b1cd09ff4fac28221add3e57cfbe25c236d093" dependencies = [ - "async-std", "enumflags2", "futures-channel", "futures-util", - "once_cell", "rand", "serde", "serde_repr", + "tokio", "url", "zbus", ] [[package]] name = "async-broadcast" -version = "0.5.1" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c48ccdbf6ca6b121e0f586cbc0e73ae440e56c67c30fa0873b4e110d9c26d2b" +checksum = "258b52a1aa741b9f09783b2d86cf0aeeb617bbf847f6933340a39644227acbdb" dependencies = [ - "event-listener 2.5.3", - "futures-core", -] - -[[package]] -name = "async-channel" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" -dependencies = [ - "concurrent-queue", - "event-listener 2.5.3", - "futures-core", -] - -[[package]] -name = "async-channel" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ca33f4bc4ed1babef42cad36cc1f51fa88be00420404e5b1e80ab1b18f7678c" -dependencies = [ - "concurrent-queue", - "event-listener 4.0.1", - "event-listener-strategy", + "event-listener 5.2.0", + "event-listener-strategy 0.5.0", "futures-core", "pin-project-lite", ] [[package]] -name = "async-executor" -version = "1.8.0" +name = "async-channel" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17ae5ebefcc48e7452b4987947920dac9450be1110cadf34d1b8c116bdbaf97c" +checksum = "f28243a43d821d11341ab73c80bed182dc015c514b951616cf79bd4af39af0c3" dependencies = [ - "async-lock 3.2.0", - "async-task", "concurrent-queue", - "fastrand 2.0.1", - "futures-lite 2.1.0", - "slab", -] - -[[package]] -name = "async-fs" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "279cf904654eeebfa37ac9bb1598880884924aab82e290aa65c9e77a0e142e06" -dependencies = [ - "async-lock 2.8.0", - "autocfg", - "blocking", - "futures-lite 1.13.0", -] - -[[package]] -name = "async-global-executor" -version = "2.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05b1b633a2115cd122d73b955eadd9916c18c8f510ec9cd1686404c60ad1c29c" -dependencies = [ - "async-channel 2.1.1", - "async-executor", - "async-io 2.2.2", - "async-lock 3.2.0", - "blocking", - "futures-lite 2.1.0", - "once_cell", + "event-listener 5.2.0", + "event-listener-strategy 0.5.0", + "futures-core", + "pin-project-lite", ] [[package]] name = "async-io" -version = "1.13.0" +version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af" +checksum = "dcccb0f599cfa2f8ace422d3555572f47424da5648a4382a9dd0310ff8210884" dependencies = [ - "async-lock 2.8.0", - "autocfg", - "cfg-if", - "concurrent-queue", - "futures-lite 1.13.0", - "log", - "parking", - "polling 2.8.0", - "rustix 0.37.27", - "slab", - "socket2 0.4.10", - "waker-fn", -] - -[[package]] -name = "async-io" -version = "2.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6afaa937395a620e33dc6a742c593c01aced20aa376ffb0f628121198578ccc7" -dependencies = [ - "async-lock 3.2.0", + "async-lock 3.3.0", "cfg-if", "concurrent-queue", "futures-io", - "futures-lite 2.1.0", + "futures-lite", "parking", - "polling 3.3.1", - "rustix 0.38.28", + "polling", + "rustix", "slab", "tracing", "windows-sys 0.52.0", @@ -316,41 +245,42 @@ dependencies = [ [[package]] name = "async-lock" -version = "3.2.0" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7125e42787d53db9dd54261812ef17e937c95a51e4d291373b670342fa44310c" +checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b" dependencies = [ - "event-listener 4.0.1", - "event-listener-strategy", + "event-listener 4.0.3", + "event-listener-strategy 0.4.0", "pin-project-lite", ] [[package]] name = "async-process" -version = "1.8.1" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea6438ba0a08d81529c69b36700fa2f95837bfe3e776ab39cde9c14d9149da88" +checksum = "451e3cf68011bd56771c79db04a9e333095ab6349f7e47592b788e9b98720cc8" dependencies = [ - "async-io 1.13.0", - "async-lock 2.8.0", + "async-channel", + "async-io", + "async-lock 3.3.0", "async-signal", "blocking", "cfg-if", - "event-listener 3.1.0", - "futures-lite 1.13.0", - "rustix 0.38.28", - "windows-sys 0.48.0", + "event-listener 5.2.0", + "futures-lite", + "rustix", + "windows-sys 0.52.0", ] [[package]] name = "async-recursion" -version = "1.0.5" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0" +checksum = "30c5ef0ede93efbf733c1a727f3b6b5a1060bbedd5600183e66f6e4be4af0ec5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.43", + "syn 2.0.55", ] [[package]] @@ -359,59 +289,33 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5" dependencies = [ - "async-io 2.2.2", + "async-io", "async-lock 2.8.0", "atomic-waker", "cfg-if", "futures-core", "futures-io", - "rustix 0.38.28", + "rustix", "signal-hook-registry", "slab", "windows-sys 0.48.0", ] -[[package]] -name = "async-std" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62565bb4402e926b29953c785397c6dc0391b7b446e45008b0049eb43cec6f5d" -dependencies = [ - "async-channel 1.9.0", - "async-global-executor", - "async-io 1.13.0", - "async-lock 2.8.0", - "crossbeam-utils", - "futures-channel", - "futures-core", - "futures-io", - "futures-lite 1.13.0", - "gloo-timers", - "kv-log-macro", - "log", - "memchr", - "once_cell", - "pin-project-lite", - "pin-utils", - "slab", - "wasm-bindgen-futures", -] - [[package]] name = "async-task" -version = "4.6.0" +version = "4.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1d90cd0b264dfdd8eb5bad0a2c217c1f88fa96a8573f40e7b12de23fb468f46" +checksum = "fbb36e985947064623dbd357f727af08ffd077f93d696782f3c56365fa2e2799" [[package]] name = "async-trait" -version = "0.1.75" +version = "0.1.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdf6721fb0140e4f897002dd086c06f6c27775df19cfe1fccb21181a48fd2c98" +checksum = "a507401cad91ec6a857ed5513a2073c82a9b9048762b885bb98655b306964681" dependencies = [ "proc-macro2", "quote", - "syn 2.0.43", + "syn 2.0.55", ] [[package]] @@ -428,9 +332,9 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "backtrace" -version = "0.3.69" +version = "0.3.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" +checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d" dependencies = [ "addr2line", "cc", @@ -449,9 +353,9 @@ checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" [[package]] name = "base64" -version = "0.21.5" +version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" [[package]] name = "base64ct" @@ -467,15 +371,15 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.4.1" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "blake3" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0231f06152bf547e9c2b5194f247cd97aacf6dcd8b15d8e5ec0663f64580da87" +checksum = "30cca6d3674597c30ddf2c587bf8d9d65c9a84d2326d941cc79c9842dfe0ef52" dependencies = [ "arrayref", "arrayvec", @@ -505,21 +409,21 @@ version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118" dependencies = [ - "async-channel 2.1.1", - "async-lock 3.2.0", + "async-channel", + "async-lock 3.3.0", "async-task", - "fastrand 2.0.1", + "fastrand", "futures-io", - "futures-lite 2.1.0", + "futures-lite", "piper", "tracing", ] [[package]] name = "bstr" -version = "1.9.0" +version = "1.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c48f0051a4b4c5e0b6d365cd04af53aeaa209e3cc15ec2cdb69e73cc87fbd0dc" +checksum = "05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706" dependencies = [ "memchr", "serde", @@ -527,9 +431,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.14.0" +version = "3.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" +checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa" [[package]] name = "byteorder" @@ -537,6 +441,12 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" +[[package]] +name = "bytes" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" + [[package]] name = "bzip2" version = "0.4.4" @@ -560,9 +470,9 @@ dependencies = [ [[package]] name = "cached" -version = "0.46.1" +version = "0.49.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7c8c50262271cdf5abc979a5f76515c234e764fa025d1ba4862c0f0bcda0e95" +checksum = "f251fd1e72720ca07bf5d8e310f54a193fd053479a1f6342c6663ee4fa01cf96" dependencies = [ "ahash", "cached_proc_macro", @@ -575,9 +485,9 @@ dependencies = [ [[package]] name = "cached_proc_macro" -version = "0.18.1" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c878c71c2821aa2058722038a59a67583a4240524687c6028571c9b395ded61f" +checksum = "ad9f16c0d84de31a2ab7fdf5f7783c14631f7075cf464eb3bb43119f61c9cb2a" dependencies = [ "darling", "proc-macro2", @@ -587,29 +497,28 @@ dependencies = [ [[package]] name = "cached_proc_macro_types" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a4f925191b4367301851c6d99b09890311d74b0d43f274c0b34c86d308a3663" +checksum = "ade8366b8bd5ba243f0a58f036cc0ca8a2f069cff1a2351ef1cac6b083e16fc0" [[package]] name = "cairo-rs" -version = "0.18.3" +version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f33613627f0dea6a731b0605101fad59ba4f193a52c96c4687728d822605a8a1" +checksum = "2650f66005301bd33cc486dec076e1293c4cecf768bc7ba9bf5d2b1be339b99c" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.5.0", "cairo-sys-rs", "glib", "libc", - "once_cell", "thiserror", ] [[package]] name = "cairo-sys-rs" -version = "0.18.2" +version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "685c9fa8e590b8b3d678873528d83411db17242a73fccaed827770ea0fedda51" +checksum = "fd3bb3119664efbd78b5e6c93957447944f16bdbced84c17a9f41c7829b81e64" dependencies = [ "glib-sys", "libc", @@ -618,9 +527,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.83" +version = "1.0.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5" dependencies = [ "jobserver", "libc", @@ -628,9 +537,9 @@ dependencies = [ [[package]] name = "cfg-expr" -version = "0.15.5" +version = "0.15.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03915af431787e6ffdcc74c645077518c6b6e01f80b761e0fbbfa288536311b3" +checksum = "fa50868b64a9a6fda9d593ce778849ea8715cd2a3d2cc17ffdb4a2f2f2f1961d" dependencies = [ "smallvec", "target-lexicon", @@ -642,6 +551,12 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "cfg_aliases" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" + [[package]] name = "cipher" version = "0.4.4" @@ -697,52 +612,46 @@ checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" [[package]] name = "cpufeatures" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0" +checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" dependencies = [ "libc", ] [[package]] name = "crc32fast" -version = "1.3.2" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa" dependencies = [ "cfg-if", ] [[package]] name = "crossbeam-deque" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fca89a0e215bab21874660c67903c5f143333cab1da83d041c7ded6053774751" +checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" dependencies = [ - "cfg-if", "crossbeam-epoch", "crossbeam-utils", ] [[package]] name = "crossbeam-epoch" -version = "0.9.17" +version = "0.9.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e3681d554572a651dda4186cd47240627c3d0114d45a95f6ad27f2f22e7548d" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" dependencies = [ - "autocfg", - "cfg-if", "crossbeam-utils", ] [[package]] name = "crossbeam-utils" -version = "0.8.18" +version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3a430a770ebd84726f584a90ee7f020d28db52c6d02138900f22341f866d39c" -dependencies = [ - "cfg-if", -] +checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345" [[package]] name = "crypto-common" @@ -791,9 +700,9 @@ dependencies = [ [[package]] name = "deranged" -version = "0.3.10" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eb30d70a07a3b04884d2677f06bec33509dc67ca60d92949e5535352d3191dc" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" dependencies = [ "powerfmt", ] @@ -846,7 +755,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.43", + "syn 2.0.55", ] [[package]] @@ -857,7 +766,7 @@ checksum = "e5766087c2235fec47fafa4cfecc81e494ee679d0fd4a59887ea0919bfb0e4fc" dependencies = [ "cfg-if", "libc", - "socket2 0.5.5", + "socket2", "windows-sys 0.48.0", ] @@ -869,28 +778,41 @@ checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10" [[package]] name = "either" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" +checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a" + +[[package]] +name = "endi" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3d8a32ae18130a3c84dd492d4215c3d913c3b07c6b63c2eb3eb7ff1101ab7bf" [[package]] name = "enum-ordinalize" -version = "3.1.15" +version = "4.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bf1fa3f06bbff1ea5b1a9c7b14aa992a39657db60a2759457328d7e058f49ee" +checksum = "fea0dcfa4e54eeb516fe454635a95753ddd39acda650ce703031c6973e315dd5" +dependencies = [ + "enum-ordinalize-derive", +] + +[[package]] +name = "enum-ordinalize-derive" +version = "4.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d28318a75d4aead5c4db25382e8ef717932d0346600cacae6357eb5941bc5ff" dependencies = [ - "num-bigint", - "num-traits", "proc-macro2", "quote", - "syn 2.0.43", + "syn 2.0.55", ] [[package]] name = "enumflags2" -version = "0.7.8" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5998b4f30320c9d93aed72f63af821bfdac50465b75428fce77b48ec482c3939" +checksum = "3278c9d5fb675e0a51dabcf4c0d355f692b064171535ba72361be1528a9d8e8d" dependencies = [ "enumflags2_derive", "serde", @@ -898,13 +820,13 @@ dependencies = [ [[package]] name = "enumflags2_derive" -version = "0.7.8" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f95e2801cd355d4a1a3e3953ce6ee5ae9603a5c833455343a8bfe3f44d418246" +checksum = "5c785274071b1b420972453b306eeca06acf4633829db4223b58a2a8c5953bc4" dependencies = [ "proc-macro2", "quote", - "syn 2.0.43", + "syn 2.0.55", ] [[package]] @@ -931,9 +853,9 @@ checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" [[package]] name = "event-listener" -version = "3.1.0" +version = "4.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d93877bcde0eb80ca09131a08d23f0a5c18a620b01db137dba666d18cd9b30c2" +checksum = "67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e" dependencies = [ "concurrent-queue", "parking", @@ -942,9 +864,9 @@ dependencies = [ [[package]] name = "event-listener" -version = "4.0.1" +version = "5.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84f2cdcf274580f2d63697192d744727b3198894b1bf02923643bf59e2c26712" +checksum = "2b5fb89194fa3cad959b833185b3063ba881dbfc7030680b314250779fb4cc91" dependencies = [ "concurrent-queue", "parking", @@ -957,24 +879,25 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3" dependencies = [ - "event-listener 4.0.1", + "event-listener 4.0.3", + "pin-project-lite", +] + +[[package]] +name = "event-listener-strategy" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "feedafcaa9b749175d5ac357452a9d41ea2911da598fde46ce1fe02c37751291" +dependencies = [ + "event-listener 5.2.0", "pin-project-lite", ] [[package]] name = "fastrand" -version = "1.9.0" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" -dependencies = [ - "instant", -] - -[[package]] -name = "fastrand" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" +checksum = "658bd65b1cf4c852a3cc96f18a8ce7b5640f6b703f905c7d74532294c2a63984" [[package]] name = "field-offset" @@ -982,7 +905,7 @@ version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f" dependencies = [ - "memoffset 0.9.0", + "memoffset", "rustc_version", ] @@ -1054,24 +977,24 @@ dependencies = [ [[package]] name = "fluent-template-macros" -version = "0.8.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dec7592cd1f45c1afe9084ce59c62a3a7c266c125c4c2ec97e95b0563c4aa914" +checksum = "5659bd41653516a2e46d76a58e67aa4885024c78fb5d00303f0673bbd53ad781" dependencies = [ "flume 0.10.14", "ignore", "once_cell", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.55", "unic-langid", ] [[package]] name = "fluent-templates" -version = "0.8.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c3ef2c2152757885365abce32ddf682746062f1b6b3c0824a29fbed6ee4d080" +checksum = "8f755e319f6f8f836b94b28c6094c414d29a17cee76e24374c7cd61f7696b3f6" dependencies = [ "arc-swap", "fluent", @@ -1080,7 +1003,7 @@ dependencies = [ "fluent-syntax", "fluent-template-macros", "flume 0.10.14", - "heck", + "heck 0.4.1", "ignore", "intl-memoizer", "lazy_static", @@ -1189,26 +1112,11 @@ checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" [[package]] name = "futures-lite" -version = "1.13.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" +checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5" dependencies = [ - "fastrand 1.9.0", - "futures-core", - "futures-io", - "memchr", - "parking", - "pin-project-lite", - "waker-fn", -] - -[[package]] -name = "futures-lite" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aeee267a1883f7ebef3700f262d2d54de95dfaf38189015a74fdc4e0c7ad8143" -dependencies = [ - "fastrand 2.0.1", + "fastrand", "futures-core", "futures-io", "parking", @@ -1223,7 +1131,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.43", + "syn 2.0.55", ] [[package]] @@ -1258,22 +1166,21 @@ dependencies = [ [[package]] name = "gdk-pixbuf" -version = "0.18.3" +version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "446f32b74d22c33b7b258d4af4ffde53c2bf96ca2e29abdf1a785fe59bd6c82c" +checksum = "f6a23f8a0b5090494fd04924662d463f8386cc678dd3915015a838c1a3679b92" dependencies = [ "gdk-pixbuf-sys", "gio", "glib", "libc", - "once_cell", ] [[package]] name = "gdk-pixbuf-sys" -version = "0.18.0" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9839ea644ed9c97a34d129ad56d38a25e6756f99f3a88e15cd39c20629caf7" +checksum = "3dcbd04c1b2c4834cc008b4828bc917d062483b88d26effde6342e5622028f96" dependencies = [ "gio-sys", "glib-sys", @@ -1284,9 +1191,9 @@ dependencies = [ [[package]] name = "gdk4" -version = "0.7.3" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7edb019ad581f8ecf8ea8e4baa6df7c483a95b5a59be3140be6a9c3b0c632af6" +checksum = "9100b25604183f2fd97f55ef087fae96ab4934d7215118a35303e422688e6e4b" dependencies = [ "cairo-rs", "gdk-pixbuf", @@ -1299,9 +1206,9 @@ dependencies = [ [[package]] name = "gdk4-sys" -version = "0.7.2" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbab43f332a3cf1df9974da690b5bb0e26720ed09a228178ce52175372dcfef0" +checksum = "d0b76874c40bb8d1c7d03a7231e23ac75fa577a456cd53af32ec17ec8f121626" dependencies = [ "cairo-sys-rs", "gdk-pixbuf-sys", @@ -1326,9 +1233,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" +checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5" dependencies = [ "cfg-if", "js-sys", @@ -1345,9 +1252,9 @@ checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" [[package]] name = "gio" -version = "0.18.4" +version = "0.19.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4fc8f532f87b79cbc51a79748f16a6828fb784be93145a322fa14d06d354c73" +checksum = "c64947d08d7fbb03bf8ad1f25a8ac6cf4329bc772c9b7e5abe7bf9493c81194f" dependencies = [ "futures-channel", "futures-core", @@ -1356,7 +1263,6 @@ dependencies = [ "gio-sys", "glib", "libc", - "once_cell", "pin-project-lite", "smallvec", "thiserror", @@ -1364,24 +1270,24 @@ dependencies = [ [[package]] name = "gio-sys" -version = "0.18.1" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37566df850baf5e4cb0dfb78af2e4b9898d817ed9263d1090a2df958c64737d2" +checksum = "bcf8e1d9219bb294636753d307b030c1e8a032062cba74f493c431a5c8b81ce4" dependencies = [ "glib-sys", "gobject-sys", "libc", "system-deps", - "winapi", + "windows-sys 0.52.0", ] [[package]] name = "glib" -version = "0.18.4" +version = "0.19.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "951bbd7fdc5c044ede9f05170f05a3ae9479239c3afdfe2d22d537a3add15c4e" +checksum = "01e191cc1af1f35b9699213107068cd3fe05d9816275ac118dc785a0dd8faebf" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.5.0", "futures-channel", "futures-core", "futures-executor", @@ -1393,36 +1299,37 @@ dependencies = [ "gobject-sys", "libc", "memchr", - "once_cell", "smallvec", "thiserror", ] [[package]] name = "glib-build-tools" -version = "0.18.0" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3431c56f463443cba9bc3600248bc6d680cb614c2ee1cdd39dab5415bd12ac5c" +checksum = "108f374fff60efd14b0d70d8916e7213aed18d7dd071ba3e9334ed2dac1dc86a" +dependencies = [ + "gio", +] [[package]] name = "glib-macros" -version = "0.18.3" +version = "0.19.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72793962ceece3863c2965d7f10c8786323b17c7adea75a515809fa20ab799a5" +checksum = "9972bb91643d589c889654693a4f1d07697fdcb5d104b5c44fb68649ba1bf68d" dependencies = [ - "heck", - "proc-macro-crate 2.0.0", - "proc-macro-error", + "heck 0.5.0", + "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.43", + "syn 2.0.55", ] [[package]] name = "glib-sys" -version = "0.18.1" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "063ce2eb6a8d0ea93d2bf8ba1957e78dbab6be1c2220dd3daca57d5a9d869898" +checksum = "630f097773d7c7a0bb3258df4e8157b47dc98bbfa0e60ad9ab56174813feced4" dependencies = [ "libc", "system-deps", @@ -1441,23 +1348,11 @@ dependencies = [ "regex-syntax", ] -[[package]] -name = "gloo-timers" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c" -dependencies = [ - "futures-channel", - "futures-core", - "js-sys", - "wasm-bindgen", -] - [[package]] name = "gobject-sys" -version = "0.18.0" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0850127b514d1c4a4654ead6dedadb18198999985908e6ffe4436f53c785ce44" +checksum = "c85e2b1080b9418dd0c58b498da3a5c826030343e0ef07bde6a955d28de54979" dependencies = [ "glib-sys", "libc", @@ -1466,9 +1361,9 @@ dependencies = [ [[package]] name = "graphene-rs" -version = "0.18.1" +version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b2228cda1505613a7a956cca69076892cfbda84fc2b7a62b94a41a272c0c401" +checksum = "99e4d388e96c5f29e2b2f67045d229ddf826d0a8d6d282f94ed3b34452222c91" dependencies = [ "glib", "graphene-sys", @@ -1477,9 +1372,9 @@ dependencies = [ [[package]] name = "graphene-sys" -version = "0.18.1" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc4144cee8fc8788f2a9b73dc5f1d4e1189d1f95305c4cb7bd9c1af1cfa31f59" +checksum = "236ed66cc9b18d8adf233716f75de803d0bf6fc806f60d14d948974a12e240d0" dependencies = [ "glib-sys", "libc", @@ -1489,9 +1384,9 @@ dependencies = [ [[package]] name = "gsk4" -version = "0.7.3" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d958e351d2f210309b32d081c832d7de0aca0b077aa10d88336c6379bd01f7e" +checksum = "c65036fc8f99579e8cb37b12487969b707ab23ec8ab953682ff347cbd15d396e" dependencies = [ "cairo-rs", "gdk4", @@ -1504,9 +1399,9 @@ dependencies = [ [[package]] name = "gsk4-sys" -version = "0.7.3" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12bd9e3effea989f020e8f1ff3fa3b8c63ba93d43b899c11a118868853a56d55" +checksum = "bd24c814379f9c3199dc53e52253ee8d0f657eae389ab282c330505289d24738" dependencies = [ "cairo-sys-rs", "gdk4-sys", @@ -1520,9 +1415,9 @@ dependencies = [ [[package]] name = "gtk4" -version = "0.7.3" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aeb51aa3e9728575a053e1f43543cd9992ac2477e1b186ad824fd4adfb70842" +checksum = "aa82753b8c26277e4af1446c70e35b19aad4fb794a7b143859e7eeb9a4025d83" dependencies = [ "cairo-rs", "field-offset", @@ -1541,12 +1436,12 @@ dependencies = [ [[package]] name = "gtk4-macros" -version = "0.7.2" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d57ec49cf9b657f69a05bca8027cff0a8dfd0c49e812be026fc7311f2163832f" +checksum = "40300bf071d2fcd4c94eacc09e84ec6fe73129d2ceb635cf7e55b026b5443567" dependencies = [ "anyhow", - "proc-macro-crate 1.3.1", + "proc-macro-crate", "proc-macro-error", "proc-macro2", "quote", @@ -1555,9 +1450,9 @@ dependencies = [ [[package]] name = "gtk4-sys" -version = "0.7.3" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54d8c4aa23638ce9faa2caf7e2a27d4a1295af2155c8e8d28c4d4eeca7a65eb8" +checksum = "0db1b104138f087ccdc81d2c332de5dd049b89de3d384437cc1093b17cd2da18" dependencies = [ "cairo-sys-rs", "gdk-pixbuf-sys", @@ -1589,10 +1484,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] -name = "hermit-abi" -version = "0.3.3" +name = "heck" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hermit-abi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" [[package]] name = "hex" @@ -1616,6 +1517,7 @@ dependencies = [ "anime-launcher-sdk", "anyhow", "cached", + "enum-ordinalize", "fluent-templates", "glib-build-tools", "gtk4", @@ -1635,9 +1537,9 @@ dependencies = [ [[package]] name = "human-panic" -version = "1.2.2" +version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a79a67745be0cb8dd2771f03b24c2f25df98d5471fe7a595d668cfa2e6f843d" +checksum = "c4f016c89920bbb30951a8405ecacbb4540db5524313b9445736e7e1855cf370" dependencies = [ "anstream", "anstyle", @@ -1646,7 +1548,7 @@ dependencies = [ "serde", "serde_derive", "toml", - "uuid 1.6.1", + "uuid 1.8.0", ] [[package]] @@ -1667,9 +1569,9 @@ dependencies = [ [[package]] name = "ignore" -version = "0.4.21" +version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "747ad1b4ae841a78e8aba0d63adbfbeaea26b517b63705d47856b73015d27060" +checksum = "b46810df39e66e925525d6e38ce1e7f6e1d208f72dc39757880fcb66e2c58af1" dependencies = [ "crossbeam-deque", "globset", @@ -1683,9 +1585,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.1.0" +version = "2.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" +checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" dependencies = [ "equivalent", "hashbrown", @@ -1728,17 +1630,6 @@ dependencies = [ "unic-langid", ] -[[package]] -name = "io-lifetimes" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" -dependencies = [ - "hermit-abi", - "libc", - "windows-sys 0.48.0", -] - [[package]] name = "is-docker" version = "0.2.0" @@ -1766,18 +1657,18 @@ checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" [[package]] name = "jobserver" -version = "0.1.27" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d" +checksum = "ab46a6e9526ddef3ae7f787c06f0f2600639ba80ea3eade3d8e670a2230f51d6" dependencies = [ "libc", ] [[package]] name = "js-sys" -version = "0.3.66" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca" +checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" dependencies = [ "wasm-bindgen", ] @@ -1788,15 +1679,6 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca9325aac17917b5650f25d477ce2909f2e9539688227fdee3ceb5093f666c9e" -[[package]] -name = "kv-log-macro" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f" -dependencies = [ - "log", -] - [[package]] name = "lazy_static" version = "1.4.0" @@ -1805,9 +1687,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libadwaita" -version = "0.5.3" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fe7e70c06507ed10a16cda707f358fbe60fe0dc237498f78c686ade92fd979c" +checksum = "91b4990248b9e1ec5e72094a2ccaea70ec3809f88f6fd52192f2af306b87c5d9" dependencies = [ "gdk-pixbuf", "gdk4", @@ -1821,9 +1703,9 @@ dependencies = [ [[package]] name = "libadwaita-sys" -version = "0.5.3" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e10aaa38de1d53374f90deeb4535209adc40cc5dba37f9704724169bceec69a" +checksum = "23a748e4e92be1265cd9e93d569c0b5dfc7814107985aa6743d670ab281ea1a8" dependencies = [ "gdk4-sys", "gio-sys", @@ -1837,21 +1719,15 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.151" +version = "0.2.153" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4" +checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" [[package]] name = "linux-raw-sys" -version = "0.3.8" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" - -[[package]] -name = "linux-raw-sys" -version = "0.4.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456" +checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" [[package]] name = "lock_api" @@ -1865,12 +1741,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.20" +version = "0.4.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" -dependencies = [ - "value-bag", -] +checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" [[package]] name = "lzma-sys" @@ -1918,15 +1791,6 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" -[[package]] -name = "memoffset" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" -dependencies = [ - "autocfg", -] - [[package]] name = "memoffset" version = "0.9.0" @@ -1938,9 +1802,9 @@ dependencies = [ [[package]] name = "miniz_oxide" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7" dependencies = [ "adler", ] @@ -1962,6 +1826,17 @@ dependencies = [ "webpki-roots", ] +[[package]] +name = "mio" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" +dependencies = [ + "libc", + "wasi", + "windows-sys 0.48.0", +] + [[package]] name = "nanorand" version = "0.7.0" @@ -1973,14 +1848,15 @@ dependencies = [ [[package]] name = "nix" -version = "0.26.4" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b" +checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.5.0", "cfg-if", + "cfg_aliases", "libc", - "memoffset 0.7.1", + "memoffset", ] [[package]] @@ -2003,34 +1879,10 @@ dependencies = [ ] [[package]] -name = "num-bigint" -version = "0.4.4" +name = "num-conv" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-integer" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" -dependencies = [ - "autocfg", - "num-traits", -] - -[[package]] -name = "num-traits" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" -dependencies = [ - "autocfg", -] +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" [[package]] name = "num_cpus" @@ -2088,9 +1940,9 @@ checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] name = "open" -version = "5.0.1" +version = "5.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90878fb664448b54c4e592455ad02831e23a3f7e157374a8b95654731aac7349" +checksum = "449f0ff855d85ddbf1edd5b646d65249ead3f5e422aaa86b7d2d0b049b103e32" dependencies = [ "is-wsl", "libc", @@ -2115,13 +1967,13 @@ dependencies = [ [[package]] name = "os_info" -version = "3.7.0" +version = "3.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "006e42d5b888366f1880eda20371fedde764ed2213dc8496f49622fa0c99cd5e" +checksum = "ae99c7fa6dd38c7cafe1ec085e804f8f555a2f8659b0dbe03f1f9963a9b51092" dependencies = [ "log", "serde", - "winapi", + "windows-sys 0.52.0", ] [[package]] @@ -2132,22 +1984,21 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "pango" -version = "0.18.3" +version = "0.19.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ca27ec1eb0457ab26f3036ea52229edbdb74dee1edd29063f5b9b010e7ebee4" +checksum = "b1264d13deb823cc652f26cfe59afb1ec4b9db2a5bd27c41b738c879cc1bfaa1" dependencies = [ "gio", "glib", "libc", - "once_cell", "pango-sys", ] [[package]] name = "pango-sys" -version = "0.18.0" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "436737e391a843e5933d6d9aa102cb126d501e815b83601365a948a518555dc5" +checksum = "f52ef6a881c19fbfe3b1484df5cad411acaaba29dbec843941c3110d19f340ea" dependencies = [ "glib-sys", "gobject-sys", @@ -2215,42 +2066,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "668d31b1c4eba19242f2088b2bf3316b82ca31082a8335764db4e083db7485d4" dependencies = [ "atomic-waker", - "fastrand 2.0.1", + "fastrand", "futures-io", ] [[package]] name = "pkg-config" -version = "0.3.28" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69d3587f8a9e599cc7ec2c00e331f71c4e69a5f9a4b8a6efd5b07466b9736f9a" +checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" [[package]] name = "polling" -version = "2.8.0" +version = "3.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" -dependencies = [ - "autocfg", - "bitflags 1.3.2", - "cfg-if", - "concurrent-queue", - "libc", - "log", - "pin-project-lite", - "windows-sys 0.48.0", -] - -[[package]] -name = "polling" -version = "3.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf63fa624ab313c11656b4cda960bfc46c410187ad493c41f6ba2d8c1e991c9e" +checksum = "e0c976a60b2d7e99d6f229e414670a9b85d13ac305cc6d1e9c134de58c5aaaf6" dependencies = [ "cfg-if", "concurrent-queue", + "hermit-abi", "pin-project-lite", - "rustix 0.38.28", + "rustix", "tracing", "windows-sys 0.52.0", ] @@ -2275,21 +2111,11 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] name = "proc-macro-crate" -version = "1.3.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" dependencies = [ - "once_cell", - "toml_edit 0.19.15", -] - -[[package]] -name = "proc-macro-crate" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e8366a6159044a37876a2b9817124296703c586a5c92e2c53751fa06d8d43e8" -dependencies = [ - "toml_edit 0.20.7", + "toml_edit 0.21.1", ] [[package]] @@ -2324,18 +2150,18 @@ checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" [[package]] name = "proc-macro2" -version = "1.0.71" +version = "1.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75cb1540fadbd5b8fbccc4dddad2734eba435053f725621c070711a14bb5f4b8" +checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.33" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" dependencies = [ "proc-macro2", ] @@ -2372,15 +2198,15 @@ dependencies = [ [[package]] name = "raw-window-handle" -version = "0.5.2" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9" +checksum = "42a9830a0e1b9fb145ebb365b8bc4ccd75f290f98c0247deafbbe2c75cefb544" [[package]] name = "rayon" -version = "1.8.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" dependencies = [ "either", "rayon-core", @@ -2388,9 +2214,9 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.12.0" +version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" dependencies = [ "crossbeam-deque", "crossbeam-utils", @@ -2407,9 +2233,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.10.2" +version = "1.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" +checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c" dependencies = [ "aho-corasick", "memchr", @@ -2419,9 +2245,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.3" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" +checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea" dependencies = [ "aho-corasick", "memchr", @@ -2436,11 +2262,10 @@ checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" [[package]] name = "relm4" -version = "0.7.0-beta.2" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f505ac255c34dc85b8b189cbc8e12d012765aa9294727c6082e76777e56a50bf" +checksum = "e6e0e187b58db367305e8486d3228158251da1c8ba1e18baa9de61894e822649" dependencies = [ - "async-trait", "flume 0.11.0", "fragile", "futures", @@ -2454,26 +2279,24 @@ dependencies = [ [[package]] name = "relm4-macros" -version = "0.7.0-beta.2" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "086047e49d6426fd9f53109950f205d2ed88027d5fecfece724e6722904fe473" +checksum = "0774e846889823aa5766f5b62cface3189a5b36280e65b2faaa6df0319da1726" dependencies = [ "proc-macro2", "quote", - "syn 2.0.43", + "syn 2.0.55", ] [[package]] name = "rfd" -version = "0.12.1" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c9e7b57df6e8472152674607f6cc68aa14a748a3157a857a94f516e11aeacc2" +checksum = "25a73a7337fc24366edfca76ec521f51877b114e42dab584008209cca6719251" dependencies = [ "ashpd", - "async-io 1.13.0", "block", "dispatch", - "futures-util", "js-sys", "log", "objc", @@ -2490,16 +2313,17 @@ dependencies = [ [[package]] name = "ring" -version = "0.17.7" +version = "0.17.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74" +checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" dependencies = [ "cc", + "cfg-if", "getrandom", "libc", "spin", "untrusted", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -2525,28 +2349,14 @@ dependencies = [ [[package]] name = "rustix" -version = "0.37.27" +version = "0.38.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2" +checksum = "65e04861e65f21776e67888bfbea442b3642beaa0138fdb1dd7a84a52dffdb89" dependencies = [ - "bitflags 1.3.2", - "errno", - "io-lifetimes", - "libc", - "linux-raw-sys 0.3.8", - "windows-sys 0.48.0", -] - -[[package]] -name = "rustix" -version = "0.38.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316" -dependencies = [ - "bitflags 2.4.1", + "bitflags 2.5.0", "errno", "libc", - "linux-raw-sys 0.4.12", + "linux-raw-sys", "windows-sys 0.52.0", ] @@ -2580,7 +2390,7 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" dependencies = [ - "base64 0.21.5", + "base64 0.21.7", ] [[package]] @@ -2595,9 +2405,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.16" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" +checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" [[package]] name = "same-file" @@ -2673,35 +2483,35 @@ checksum = "58bf37232d3bb9a2c4e641ca2a11d83b5062066f88df7fed36c28772046d65ba" [[package]] name = "semver" -version = "1.0.20" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" +checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca" [[package]] name = "serde" -version = "1.0.193" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89" +checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.193" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3" +checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.43", + "syn 2.0.55", ] [[package]] name = "serde_json" -version = "1.0.108" +version = "1.0.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" +checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0" dependencies = [ "itoa", "ryu", @@ -2710,13 +2520,13 @@ dependencies = [ [[package]] name = "serde_repr" -version = "0.1.17" +version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3081f5ffbb02284dda55132aa26daecedd7372a42417bbbab6f14ab7d6bb9145" +checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.43", + "syn 2.0.55", ] [[package]] @@ -2779,9 +2589,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.11.2" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "snafu" @@ -2799,7 +2609,7 @@ version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "990079665f075b699031e9c08fd3ab99be5029b96f3b78dc0709e8f77e4efebf" dependencies = [ - "heck", + "heck 0.4.1", "proc-macro2", "quote", "syn 1.0.109", @@ -2807,22 +2617,12 @@ dependencies = [ [[package]] name = "socket2" -version = "0.4.10" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" +checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871" dependencies = [ "libc", - "winapi", -] - -[[package]] -name = "socket2" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" -dependencies = [ - "libc", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -2865,9 +2665,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.43" +version = "2.0.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee659fb5f3d355364e1f3e5bc10fb82068efbf824a1e9d1c9504244a6469ad53" +checksum = "002a1b3dbf967edfafc32655d0f377ab0bb7b994aa1d32c8cc7e9b8bf3ebb8f0" dependencies = [ "proc-macro2", "quote", @@ -2876,9 +2676,9 @@ dependencies = [ [[package]] name = "sysinfo" -version = "0.30.2" +version = "0.30.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c856f6ee1d0241d2ebaee960aaad07080afb4daf6bdfa3b250ace3cf1b81355d" +checksum = "0c385888ef380a852a16209afc8cfad22795dd8873d69c9a14d2e2088f118d18" dependencies = [ "cfg-if", "core-foundation-sys", @@ -2891,12 +2691,12 @@ dependencies = [ [[package]] name = "system-deps" -version = "6.2.0" +version = "6.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a2d580ff6a20c55dfb86be5f9c238f67835d0e81cbdea8bf5680e0897320331" +checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349" dependencies = [ "cfg-expr", - "heck", + "heck 0.5.0", "pkg-config", "toml", "version-compare", @@ -2915,48 +2715,47 @@ dependencies = [ [[package]] name = "target-lexicon" -version = "0.12.12" +version = "0.12.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c39fd04924ca3a864207c66fc2cd7d22d7c016007f9ce846cbb9326331930a" +checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f" [[package]] name = "tempfile" -version = "3.9.0" +version = "3.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa" +checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" dependencies = [ "cfg-if", - "fastrand 2.0.1", - "redox_syscall", - "rustix 0.38.28", + "fastrand", + "rustix", "windows-sys 0.52.0", ] [[package]] name = "thiserror" -version = "1.0.52" +version = "1.0.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83a48fd946b02c0a526b2e9481c8e2a17755e47039164a86c4070446e3a4614d" +checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.52" +version = "1.0.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7fbe9b594d6568a6a1443250a7e67d80b74e1e96f6d1715e1e21cc1888291d3" +checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.43", + "syn 2.0.55", ] [[package]] name = "thread_local" -version = "1.1.7" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" dependencies = [ "cfg-if", "once_cell", @@ -2964,11 +2763,12 @@ dependencies = [ [[package]] name = "time" -version = "0.3.31" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f657ba42c3f86e7680e53c8cd3af8abbe56b5491790b46e22e19c0d57463583e" +checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749" dependencies = [ "deranged", + "num-conv", "powerfmt", "serde", "time-core", @@ -3006,25 +2806,32 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.35.1" +version = "1.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c89b4efa943be685f629b149f53829423f8f5531ea21249408e8e2f8671ec104" +checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931" dependencies = [ "backtrace", + "bytes", + "libc", + "mio", "num_cpus", "pin-project-lite", + "signal-hook-registry", + "socket2", + "tracing", + "windows-sys 0.48.0", ] [[package]] name = "toml" -version = "0.8.8" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1a195ec8c9da26928f773888e0742ca3ca1040c6cd859c919c9f59c1954ab35" +checksum = "e9dd1545e8208b4a5af1aa9bbd0b4cf7e9ea08fabc5d0a5c67fcaafa17433aa3" dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.21.0", + "toml_edit 0.22.9", ] [[package]] @@ -3038,37 +2845,26 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.19.15" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" dependencies = [ "indexmap", "toml_datetime", - "winnow", + "winnow 0.5.40", ] [[package]] name = "toml_edit" -version = "0.20.7" +version = "0.22.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81" -dependencies = [ - "indexmap", - "toml_datetime", - "winnow", -] - -[[package]] -name = "toml_edit" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03" +checksum = "8e40bb779c5187258fd7aad0eb68cb8706a0a81fa712fbea808ab43c4b8374c4" dependencies = [ "indexmap", "serde", "serde_spanned", "toml_datetime", - "winnow", + "winnow 0.6.5", ] [[package]] @@ -3090,7 +2886,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.43", + "syn 2.0.55", ] [[package]] @@ -3149,7 +2945,7 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9" dependencies = [ - "memoffset 0.9.0", + "memoffset", "tempfile", "winapi", ] @@ -3193,15 +2989,15 @@ checksum = "fea2a4c80deb4fb3ca51f66b5e2dd91e3642bbce52234bcf22e41668281208e4" dependencies = [ "proc-macro-hack", "quote", - "syn 2.0.43", + "syn 2.0.55", "unic-langid-impl", ] [[package]] name = "unicode-bidi" -version = "0.3.14" +version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f2528f27a9eb2b21e69c95319b30bd0efd85d09c379741b0f78ea1d86be2416" +checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" [[package]] name = "unicode-ident" @@ -3211,9 +3007,9 @@ checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" [[package]] name = "unicode-normalization" -version = "0.1.22" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" dependencies = [ "tinyvec", ] @@ -3259,9 +3055,9 @@ dependencies = [ [[package]] name = "uuid" -version = "1.6.1" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560" +checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0" dependencies = [ "getrandom", ] @@ -3272,17 +3068,11 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" -[[package]] -name = "value-bag" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a72e1902dde2bd6441347de2b70b7f5d59bf157c6c62f0c44572607a1d55bbe" - [[package]] name = "version-compare" -version = "0.1.1" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29" +checksum = "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b" [[package]] name = "version_check" @@ -3290,17 +3080,11 @@ version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" -[[package]] -name = "waker-fn" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690" - [[package]] name = "walkdir" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" dependencies = [ "same-file", "winapi-util", @@ -3314,9 +3098,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.89" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e" +checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -3324,24 +3108,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.89" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826" +checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.43", + "syn 2.0.55", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.39" +version = "0.4.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac36a15a220124ac510204aec1c3e5db8a22ab06fd6706d881dc6149f8ed9a12" +checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" dependencies = [ "cfg-if", "js-sys", @@ -3351,9 +3135,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.89" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2" +checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -3361,28 +3145,28 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.89" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" +checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.43", + "syn 2.0.55", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.89" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f" +checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" [[package]] name = "web-sys" -version = "0.3.66" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50c24a44ec86bb68fbecd1b3efed7e85ea5621b39b35ef2766b66cd984f8010f" +checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" dependencies = [ "js-sys", "wasm-bindgen", @@ -3390,9 +3174,9 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.25.3" +version = "0.25.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1778a42e8b3b90bff8d0f5032bf22250792889a5cdc752aa0020c84abe3aaf10" +checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" [[package]] name = "whatadistro" @@ -3444,21 +3228,21 @@ dependencies = [ [[package]] name = "windows" -version = "0.51.1" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca229916c5ee38c2f2bc1e9d8f04df975b4bd93f9955dc69fabb5d91270045c9" +checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be" dependencies = [ "windows-core", - "windows-targets 0.48.5", + "windows-targets 0.52.4", ] [[package]] name = "windows-core" -version = "0.51.1" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "windows-targets 0.48.5", + "windows-targets 0.52.4", ] [[package]] @@ -3476,7 +3260,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.0", + "windows-targets 0.52.4", ] [[package]] @@ -3496,17 +3280,17 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b" dependencies = [ - "windows_aarch64_gnullvm 0.52.0", - "windows_aarch64_msvc 0.52.0", - "windows_i686_gnu 0.52.0", - "windows_i686_msvc 0.52.0", - "windows_x86_64_gnu 0.52.0", - "windows_x86_64_gnullvm 0.52.0", - "windows_x86_64_msvc 0.52.0", + "windows_aarch64_gnullvm 0.52.4", + "windows_aarch64_msvc 0.52.4", + "windows_i686_gnu 0.52.4", + "windows_i686_msvc 0.52.4", + "windows_x86_64_gnu 0.52.4", + "windows_x86_64_gnullvm 0.52.4", + "windows_x86_64_msvc 0.52.4", ] [[package]] @@ -3517,9 +3301,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" +checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9" [[package]] name = "windows_aarch64_msvc" @@ -3529,9 +3313,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" +checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675" [[package]] name = "windows_i686_gnu" @@ -3541,9 +3325,9 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" +checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3" [[package]] name = "windows_i686_msvc" @@ -3553,9 +3337,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" +checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02" [[package]] name = "windows_x86_64_gnu" @@ -3565,9 +3349,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" +checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03" [[package]] name = "windows_x86_64_gnullvm" @@ -3577,9 +3361,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" +checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177" [[package]] name = "windows_x86_64_msvc" @@ -3589,37 +3373,46 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" +checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8" [[package]] name = "winnow" -version = "0.5.31" +version = "0.5.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97a4882e6b134d6c28953a387571f1acdd3496830d5e36c5e3a1075580ea641c" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + +[[package]] +name = "winnow" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dffa400e67ed5a4dd237983829e66475f0a4a26938c4b04c21baede6262215b8" dependencies = [ "memchr", ] [[package]] name = "xattr" -version = "1.2.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "914566e6413e7fa959cc394fb30e563ba80f3541fbd40816d4c05a0fc3f2a0f1" +checksum = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f" dependencies = [ "libc", - "linux-raw-sys 0.4.12", - "rustix 0.38.28", + "linux-raw-sys", + "rustix", ] [[package]] name = "xdg-home" -version = "1.0.0" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2769203cd13a0c6015d515be729c526d041e9cf2c0cc478d57faee85f40c6dcd" +checksum = "21e5a325c3cb8398ad6cf859c1135b25dd29e186679cf2da7581d9679f63b38e" dependencies = [ - "nix", + "libc", "winapi", ] @@ -3643,39 +3436,32 @@ dependencies = [ [[package]] name = "zbus" -version = "3.14.1" +version = "4.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31de390a2d872e4cd04edd71b425e29853f786dc99317ed72d73d6fcf5ebb948" +checksum = "c9ff46f2a25abd690ed072054733e0bc3157e3d4c45f41bd183dce09c2ff8ab9" dependencies = [ "async-broadcast", - "async-executor", - "async-fs", - "async-io 1.13.0", - "async-lock 2.8.0", "async-process", "async-recursion", - "async-task", "async-trait", - "blocking", - "byteorder", "derivative", "enumflags2", - "event-listener 2.5.3", + "event-listener 5.2.0", "futures-core", "futures-sink", "futures-util", "hex", "nix", - "once_cell", "ordered-stream", "rand", "serde", "serde_repr", "sha1", "static_assertions", + "tokio", "tracing", "uds_windows", - "winapi", + "windows-sys 0.52.0", "xdg-home", "zbus_macros", "zbus_names", @@ -3684,11 +3470,11 @@ dependencies = [ [[package]] name = "zbus_macros" -version = "3.14.1" +version = "4.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41d1794a946878c0e807f55a397187c11fc7a038ba5d868e7db4f3bd7760bc9d" +checksum = "4e0e3852c93dcdb49c9462afe67a2a468f7bd464150d866e861eaf06208633e0" dependencies = [ - "proc-macro-crate 1.3.1", + "proc-macro-crate", "proc-macro2", "quote", "regex", @@ -3698,9 +3484,9 @@ dependencies = [ [[package]] name = "zbus_names" -version = "2.6.0" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb80bb776dbda6e23d705cf0123c3b95df99c4ebeaec6c2599d4a5419902b4a9" +checksum = "4b9b1fef7d021261cc16cba64c351d291b715febe0fa10dc3a443ac5a5022e6c" dependencies = [ "serde", "static_assertions", @@ -3724,7 +3510,7 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.43", + "syn 2.0.55", ] [[package]] @@ -3778,13 +3564,12 @@ dependencies = [ [[package]] name = "zvariant" -version = "3.15.0" +version = "4.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44b291bee0d960c53170780af148dca5fa260a63cdd24f1962fa82e03e53338c" +checksum = "2c1b3ca6db667bfada0f1ebfc94b2b1759ba25472ee5373d4551bb892616389a" dependencies = [ - "byteorder", + "endi", "enumflags2", - "libc", "serde", "static_assertions", "url", @@ -3793,11 +3578,11 @@ dependencies = [ [[package]] name = "zvariant_derive" -version = "3.15.0" +version = "4.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "934d7a7dfc310d6ee06c87ffe88ef4eca7d3e37bb251dece2ef93da8f17d8ecd" +checksum = "b7a4b236063316163b69039f77ce3117accb41a09567fd24c168e43491e521bc" dependencies = [ - "proc-macro-crate 1.3.1", + "proc-macro-crate", "proc-macro2", "quote", "syn 1.0.109", @@ -3806,9 +3591,9 @@ dependencies = [ [[package]] name = "zvariant_utils" -version = "1.0.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7234f0d811589db492d16893e3f21e8e2fd282e6d01b0cddee310322062cc200" +checksum = "00bedb16a193cc12451873fee2a1bc6550225acece0e36f333e68326c73c8172" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index e78450d..4dfa967 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,34 +15,35 @@ lto = true opt-level = "s" [build-dependencies] -glib-build-tools = "0.18" +glib-build-tools = "0.19" [dependencies.anime-launcher-sdk] git = "https://github.com/an-anime-team/anime-launcher-sdk" -tag = "1.12.5" +tag = "1.12.7" features = ["all", "star-rail", "star-rail-patch"] # path = "../anime-launcher-sdk" # ! for dev purposes only [dependencies] -relm4 = { version = "0.7.0-beta.2", features = ["macros", "libadwaita"] } -gtk = { package = "gtk4", version = "0.7.3", features = ["v4_12"] } -adw = { package = "libadwaita", version = "0.5.3", features = ["v1_3"] } +relm4 = { version = "0.8.1", features = ["macros", "libadwaita"] } +gtk = { package = "gtk4", version = "0.8.1", features = ["v4_12"] } +adw = { package = "libadwaita", version = "0.6.0", features = ["v1_4"] } -rfd = { version = "0.12.1", features = ["xdg-portal"], default-features = false } +rfd = { version = "0.14.1", features = ["xdg-portal", "tokio"], default-features = false } open = "5.0.0" whatadistro = "0.1.0" serde_json = "1.0" anyhow = "1.0" lazy_static = "1.4.0" -cached = { version = "0.46", features = ["proc_macro"] } +cached = { version = "0.49", features = ["proc_macro"] } md-5 = { version = "0.10", features = ["asm"] } +enum-ordinalize = "4.3" tracing = "0.1" tracing-subscriber = "0.3" -fluent-templates = "0.8" +fluent-templates = "0.9" unic-langid = "0.9" human-panic = "1.2.2" diff --git a/assets/images/icons/applications-system-symbolic.svg b/assets/images/icons/applications-system-symbolic.svg new file mode 100644 index 0000000..0d780a6 --- /dev/null +++ b/assets/images/icons/applications-system-symbolic.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/locales/common.ftl b/assets/locales/common.ftl index 599dc56..e8ba9f6 100644 --- a/assets/locales/common.ftl +++ b/assets/locales/common.ftl @@ -31,3 +31,5 @@ ja-jp = 日本語 ko-kr = 한국어 id-id = Indonesia vi-vn = Tiếng Việt +uk-ua = Українська +th-th = ไทย diff --git a/assets/locales/de/gamescope.ftl b/assets/locales/de/gamescope.ftl index f222a66..600c6c2 100644 --- a/assets/locales/de/gamescope.ftl +++ b/assets/locales/de/gamescope.ftl @@ -11,3 +11,6 @@ nis-description = Eine Open-Source-Upscaling-Technik, die von Nvidia als herstel other-settings = Andere Einstellungen framerate-limit = Framerate-Limit unfocused-framerate-limit = Unfokussiert Framerate-Limit + +force-grab-cursor = Cursor greifen erzwingen +force-grab-cursor-description = Verwende immer den relativen Mausmodus, anstatt abhängig von der Sichtbarkeit des Cursors umzuschalten. Der Mauszeiger wird korrekt in der Mitte des Spiels zentriert. diff --git a/assets/locales/en/gamescope.ftl b/assets/locales/en/gamescope.ftl index 6fbb639..7e7ed77 100644 --- a/assets/locales/en/gamescope.ftl +++ b/assets/locales/en/gamescope.ftl @@ -11,3 +11,6 @@ nis-description = An open source upscaling technique developed by Nvidia as a cr other-settings = Other settings framerate-limit = Framerate limit unfocused-framerate-limit = Unfocused framerate limit + +force-grab-cursor = Force grab cursor +force-grab-cursor-description = Always use relative mouse mode instead of flipping dependent on cursor visibility. The mouse cursor will correctly be centered in the game diff --git a/assets/locales/es/gamescope.ftl b/assets/locales/es/gamescope.ftl index b04ff36..d65d0dd 100644 --- a/assets/locales/es/gamescope.ftl +++ b/assets/locales/es/gamescope.ftl @@ -11,3 +11,6 @@ nis-description = Una técnica de escalado de código abierto desarrollada por N other-settings = Otras opciones framerate-limit = Límite de framerate unfocused-framerate-limit = Límite de framerate en segundo plano + +force-grab-cursor = Force grab cursor +force-grab-cursor-description = Always use relative mouse mode instead of flipping dependent on cursor visibility. The mouse cursor will correctly be centered in the game diff --git a/assets/locales/fr/gamescope.ftl b/assets/locales/fr/gamescope.ftl index 2df9d55..53eda0c 100644 --- a/assets/locales/fr/gamescope.ftl +++ b/assets/locales/fr/gamescope.ftl @@ -11,3 +11,6 @@ nis-description = Une technologie de mise à l'échelle Open Source développée other-settings = Autres paramètres framerate-limit = Limitation des FPS unfocused-framerate-limit = Limitation des FPS hors focus + +force-grab-cursor = Force grab cursor +force-grab-cursor-description = Always use relative mouse mode instead of flipping dependent on cursor visibility. The mouse cursor will correctly be centered in the game diff --git a/assets/locales/hu/enhancements.ftl b/assets/locales/hu/enhancements.ftl index dbf0337..3add58c 100644 --- a/assets/locales/hu/enhancements.ftl +++ b/assets/locales/hu/enhancements.ftl @@ -48,8 +48,8 @@ fps-unlocker-description = Eltávolítja az fps limitet. Az anti-cheat észreveh enabled = Bekapcsolva -fps-unlocker-interval = Overwrite interval -fps-unlocker-interval-description = Delay in milliseconds between overwriting the FPS limit value. Periodic overwrites are necessary to prevent it from resetting +fps-unlocker-interval = Felülírási időköz +fps-unlocker-interval-description = Milliszekundumban (ms) hogy mekkora időközönként van felülírva az fps limit értéke. Erre szükség van hogy ne állítsa vissza magát az fps limit window-mode = Ablak mód borderless = Keretmentes diff --git a/assets/locales/hu/gamescope.ftl b/assets/locales/hu/gamescope.ftl index 7b0b993..758ffac 100644 --- a/assets/locales/hu/gamescope.ftl +++ b/assets/locales/hu/gamescope.ftl @@ -11,3 +11,6 @@ nis-description = Open source upscaling technika az Nvidia-tól, alternatíva a other-settings = Egyéb beállítások framerate-limit = FPS limit unfocused-framerate-limit = Fókuszon kívüli FPS limit + +force-grab-cursor = Force grab cursor +force-grab-cursor-description = Always use relative mouse mode instead of flipping dependent on cursor visibility. The mouse cursor will correctly be centered in the game diff --git a/assets/locales/id/enhancements.ftl b/assets/locales/id/enhancements.ftl index cbac656..5684fb6 100644 --- a/assets/locales/id/enhancements.ftl +++ b/assets/locales/id/enhancements.ftl @@ -48,8 +48,8 @@ fps-unlocker-description = Meniadakan batas maksimum frame yang dapat dirender o enabled = Aktifkan -fps-unlocker-interval = Overwrite interval -fps-unlocker-interval-description = Delay in milliseconds between overwriting the FPS limit value. Periodic overwrites are necessary to prevent it from resetting +fps-unlocker-interval = Interval penulisan ulang FPS +fps-unlocker-interval-description = Jeda antara penulisan ulang nilai batas FPS dalam milidetik. Penulisan ulang secara berkala dibutuhkan untuk mencegah nilai batas FPS kembali seperti semula window-mode = Window Mode borderless = Tanpa border diff --git a/assets/locales/id/gamescope.ftl b/assets/locales/id/gamescope.ftl index 9be40bb..8c9e95c 100644 --- a/assets/locales/id/gamescope.ftl +++ b/assets/locales/id/gamescope.ftl @@ -11,3 +11,6 @@ nis-description = Teknik peningkatan skala yang dikembangkan oleh Nvidia sebagai other-settings = Pengaturan lainnya framerate-limit = Batas framerate unfocused-framerate-limit = Batas framerate saat tidak fokus + +force-grab-cursor = Force grab cursor +force-grab-cursor-description = Always use relative mouse mode instead of flipping dependent on cursor visibility. The mouse cursor will correctly be centered in the game diff --git a/assets/locales/it/enhancements.ftl b/assets/locales/it/enhancements.ftl index e178a82..bdcd3ff 100644 --- a/assets/locales/it/enhancements.ftl +++ b/assets/locales/it/enhancements.ftl @@ -48,8 +48,8 @@ fps-unlocker-description = Rimuovi la limitazione del rendering dei frame modifi enabled = Abilitato -fps-unlocker-interval = Overwrite interval -fps-unlocker-interval-description = Delay in milliseconds between overwriting the FPS limit value. Periodic overwrites are necessary to prevent it from resetting +fps-unlocker-interval = Intervallo di sovrascrittura +fps-unlocker-interval-description = Ritardo in millisecondi tra le sovrascritture del valore limite FPS. Sovrascritture periodiche sono necessarie per impedire che si reimposti al valore predefinito window-mode = Modalità della finestra borderless = Senza bordi diff --git a/assets/locales/it/gamescope.ftl b/assets/locales/it/gamescope.ftl index 9ebaa4d..06fdc7a 100644 --- a/assets/locales/it/gamescope.ftl +++ b/assets/locales/it/gamescope.ftl @@ -11,3 +11,6 @@ nis-description = Una tecnica di upscaling open-source sviluppata da Nvidia per other-settings = Altre impostazioni framerate-limit = Limite del framerate unfocused-framerate-limit = Limite del framerate quando fuori dal focus + +force-grab-cursor = Forza la cattura del cursore +force-grab-cursor-description = Usa sempre la modalità relativa del mouse invece di cambiare in base alla visibilità del cursore. Il cursore del mouse verrà correttamente centrato nel gioco diff --git a/assets/locales/ja/gamescope.ftl b/assets/locales/ja/gamescope.ftl index 5bcefa8..48c5bff 100644 --- a/assets/locales/ja/gamescope.ftl +++ b/assets/locales/ja/gamescope.ftl @@ -11,3 +11,6 @@ nis-description = An open source upscaling technique developed by Nvidia as a cr other-settings = その他の設定 framerate-limit = FPS制限 unfocused-framerate-limit = 非フォーカス時の最大FPS + +force-grab-cursor = Force grab cursor +force-grab-cursor-description = Always use relative mouse mode instead of flipping dependent on cursor visibility. The mouse cursor will correctly be centered in the game diff --git a/assets/locales/ko/gamescope.ftl b/assets/locales/ko/gamescope.ftl index fbe9709..eeb0407 100644 --- a/assets/locales/ko/gamescope.ftl +++ b/assets/locales/ko/gamescope.ftl @@ -11,3 +11,6 @@ nis-description = Nvidia가 독점 DLSS 솔루션에 대한 낮은 오버헤드 other-settings = 기타 설정 framerate-limit = 프레임 속도 제한 unfocused-framerate-limit = 초점이 맞지 않는 프레임 속도 제한 + +force-grab-cursor = Force grab cursor +force-grab-cursor-description = Always use relative mouse mode instead of flipping dependent on cursor visibility. The mouse cursor will correctly be centered in the game diff --git a/assets/locales/nl/gamescope.ftl b/assets/locales/nl/gamescope.ftl index c72b5bf..6f6dc12 100644 --- a/assets/locales/nl/gamescope.ftl +++ b/assets/locales/nl/gamescope.ftl @@ -11,3 +11,6 @@ nis-description = Een open source opschalingstechniek ontwikkeld door Nvidia als other-settings = Andere instellingen framerate-limit = Frameratelimiet unfocused-framerate-limit = Ongefocuste frameratelimiet + +force-grab-cursor = Force grab cursor +force-grab-cursor-description = Always use relative mouse mode instead of flipping dependent on cursor visibility. The mouse cursor will correctly be centered in the game diff --git a/assets/locales/pl/gamescope.ftl b/assets/locales/pl/gamescope.ftl index 53441fd..5305bc8 100644 --- a/assets/locales/pl/gamescope.ftl +++ b/assets/locales/pl/gamescope.ftl @@ -10,4 +10,7 @@ nis-description = Technika skalowania otwartego źródła opracowana przez Nvidi other-settings = Inne ustawienia framerate-limit = Limit klatek na sekundę -unfocused-framerate-limit = Limit klatek na sekundę po utraceniu skupienia \ No newline at end of file +unfocused-framerate-limit = Limit klatek na sekundę po utraceniu skupienia + +force-grab-cursor = Force grab cursor +force-grab-cursor-description = Always use relative mouse mode instead of flipping dependent on cursor visibility. The mouse cursor will correctly be centered in the game diff --git a/assets/locales/pt/gamescope.ftl b/assets/locales/pt/gamescope.ftl index 722ec94..d4bbdbe 100644 --- a/assets/locales/pt/gamescope.ftl +++ b/assets/locales/pt/gamescope.ftl @@ -11,3 +11,6 @@ nis-description = Uma técnica de upscaling de código aberto desenvolvida pela other-settings = Outras configuraões framerate-limit = Limite de taxa de quadros unfocused-framerate-limit = Limite de taxa de quadros desfocado + +force-grab-cursor = Force grab cursor +force-grab-cursor-description = Always use relative mouse mode instead of flipping dependent on cursor visibility. The mouse cursor will correctly be centered in the game diff --git a/assets/locales/ru/gamescope.ftl b/assets/locales/ru/gamescope.ftl index 478608e..48aff04 100644 --- a/assets/locales/ru/gamescope.ftl +++ b/assets/locales/ru/gamescope.ftl @@ -11,3 +11,6 @@ nis-description = Открытая техника масштабирования other-settings = Другие настройки framerate-limit = Лимит числа кадров unfocused-framerate-limit = Лимит числа кадров вне фокуса + +force-grab-cursor = Принудительный захват курсора +force-grab-cursor-description = Использовать относительный режим мыши вместо переворачивания в зависимости от видимости курсора. Курсор мыши будет правильно центрирован в игре diff --git a/assets/locales/sv/gamescope.ftl b/assets/locales/sv/gamescope.ftl index 959b29e..8cd626b 100644 --- a/assets/locales/sv/gamescope.ftl +++ b/assets/locales/sv/gamescope.ftl @@ -11,3 +11,6 @@ nis-description = En uppskalningsteknik med öppen källkod som utvecklats av Nv other-settings = Andra inställningar framerate-limit = Gräns för bilduppdateringshastighet unfocused-framerate-limit = Gräns för bilduppdateringshastighet utan fokus + +force-grab-cursor = Force grab cursor +force-grab-cursor-description = Always use relative mouse mode instead of flipping dependent on cursor visibility. The mouse cursor will correctly be centered in the game diff --git a/assets/locales/th/components.ftl b/assets/locales/th/components.ftl new file mode 100644 index 0000000..b15072b --- /dev/null +++ b/assets/locales/th/components.ftl @@ -0,0 +1,20 @@ +components = ส่วนประกอบ +components-description = จัดการเวอร์ชัน Wine และ DXVK + +selected-version = เวอร์ชันที่เลือก +recommended-only = แสดงเเวอร์ชั่นที่แนะนำเท่านั้น + +wine-version = เวอร์ชันของ Wine +wine-recommended-description = แสดงเฉพาะเวอร์ชัน Wine ที่แนะนำเท่านั้น + +wine-options = การตั้งค่าของ Wine + +wine-use-shared-libraries = ใช้ไลบรารีที่ใช้ร่วมกันของ Wine +wine-use-shared-libraries-description = ตั้งค่าตัว LD_LIBRARY_PATH เพื่อโหลดไลบรารีระบบจากบิลด์ Wine ที่เลือก + +gstreamer-use-shared-libraries = ใช้ไลบรารีที่ใช้ร่วมกันของ gstreamer +gstreamer-use-shared-libraries-description = ตั้งค่าตัวแปร GST_PLUGIN_PATH เพื่อโหลดไลบรารี gstreamer จากบิลด์ Wine ที่เลือก + +dxvk-version = เวอร์ชันของ DXVK +dxvk-selection-disabled = การเลือก DXVK ถูกปิดใช้งานโดยการตั้งค่ากลุ่ม Wine ของคุณ +dxvk-recommended-description = แสดงเฉพาะเวอร์ชัน DXVK ที่แนะนำเท่านั้น diff --git a/assets/locales/th/enhancements.ftl b/assets/locales/th/enhancements.ftl new file mode 100644 index 0000000..b818234 --- /dev/null +++ b/assets/locales/th/enhancements.ftl @@ -0,0 +1,57 @@ +game-settings-description = จัดการการตั้งค่าในเกมและเซสชันบัญชี +sandbox-settings-description = รันเกมในแซนด์บ็อกซ์ คล้ายกับที่ Flatpak ทำ +environment-settings-description = ระบุตัวแปรสภาวะแวดล้อมและคำสั่งเปิดเกม + +wine = Wine + +synchronization = การซิงโครไนซ์ +wine-sync-description = เทคโนโลยีที่ใช้ในการประสานเหตุการณ์ Wine ภายใน + +language = ภาษา +wine-lang-description = ภาษาที่ใช้ในสภาพแวดล้อมไวน์ สามารถแก้ไขปัญหารูปแบบแป้นพิมพ์ได้ +system = ระบบ + +borderless-window = หน้าต่างไร้ขอบ +virtual-desktop = เดสก์ท็อปเสมือน + +map-drive-c = เชื่อม ไดรฟ์ C: +map-drive-c-description = เชื่อมโยง ไดรฟ์ C: จาก Wine prefix ไปยังระบบ dosdevices โดยอัตโนมัติ + +map-game-folder = เชื่อม โฟลเดอร์เกม +map-game-folder-description = เชื่อมโยงโฟลเดอร์เกมไปยังระบบ dosdevices โดยอัตโนมัติ + +game = เกม + +hud = HUD + +fsr = FSR +fsr-description = ยกระดับความชัดเกมให้เข้ากับขนาดจอภาพของคุณ หากต้องการใช้เลือกความละเอียดที่ต่ำกว่าในการตั้งค่าของเกมแล้วกด Alt+Enter +ultra-quality = คุณภาพเยี่ยม +quality = คุณภาพ +balanced = พอประมาณ +performance = เร็วที่สุด + +gamemode = Gamemode +gamemode-description = จัดลำดับความสำคัญของเกมเหนือกระบวนการอื่น + +gamescope = Gamescope +gamescope-description = Gamescope เป็นเครื่องมือจาก Valve ที่ช่วยให้เกมทำงานในอินสแตนซ์ Xwayland ที่แยกจากระบบ และรองรับ GPU ของ AMD, Intel และ Nvidia + +discord-rpc = Discord RPC +discord-rpc-description = Discord RPC อนุญาตให้คุณให้ข้อมูล Discord ที่คุณกำลังเล่นเกมอยู่เพื่อแจ้งให้เพื่อนของคุณทราบ +icon = ไอคอน +title = หัวข้อ +description = คำอธิบาย + +fps-unlocker = FPS Unlocker +fps-unlocker-description = ลบข้อจำกัดในการเรนเดอร์เฟรมโดยการปรับเปลี่ยนหน่วยความจำของเกม สามารถตรวจจับได้โดยระบบการป้องกันการโกงของเกม + +enabled = เปิดใช้งาน + +fps-unlocker-interval = เขียนทับช่วงเวลา +fps-unlocker-interval-description = การเขียนทับค่าจำกัด FPS ทุกมิลลิวินาที จำเป็นต้องเขียนทับเป็นระยะเพื่อป้องกันไม่ให้รีเซ็ต + +window-mode = โหมดหน้าต่างเกม +borderless = โหมดไร้ขอบเขต +popup = ป๊อปอัพ +fullscreen = เต็มจอ diff --git a/assets/locales/th/environment.ftl b/assets/locales/th/environment.ftl new file mode 100644 index 0000000..d3b20a8 --- /dev/null +++ b/assets/locales/th/environment.ftl @@ -0,0 +1,7 @@ +environment = สภาวะแวดล้อม +game-command = คำสั่งเกม +game-command-description = คำสั่งที่ใช้ในการเปิดเกม ตัวยึดตำแหน่ง %command% ถูกสร้างขึ้นโดยอัตโนมัติโดยตัวเรียกใช้งาน ตัวอย่างเช่น: gamemoderun '%command%' +new-variable = ตัวแปรใหม่ +name = ชื่อ +value = ค่า +add = เพิ่ม diff --git a/assets/locales/th/errors.ftl b/assets/locales/th/errors.ftl new file mode 100644 index 0000000..0a06f96 --- /dev/null +++ b/assets/locales/th/errors.ftl @@ -0,0 +1,66 @@ +launcher-folder-opening-error = ไม่สามารถเปิดโฟลเดอร์ Launcher ได้ +game-folder-opening-error = ไม่สามารถเปิดโฟลเดอร์เกมได้ +config-file-opening-error = ไม่สามารถเปิดไฟล์ config ได้ +debug-file-opening-error = ไม่สามารถเปิดไฟล์ debug ได้ + +wish-url-search-failed = ไม่พบ URL การอธิษฐาน +wish-url-opening-error = ไม่สามารถเปิด URL การอธิษฐานได้ + +wine-run-error = ล้มเหลวในการปฏิบัติการเรียกใช้ไฟล์ {$executable} โดยใช้ Wine + +game-launching-failed = ไม่สามารถเปิดเกมได้ +failed-get-selected-wine = ไม่สามารถดาวน์โหลดเวอร์ชัน wine ที่เลือกไปได้ +downloading-failed = การดาวน์โหลดล้มเหลว +unpacking-failed = การแกะไฟล์ล้มเหลว + +kill-game-process-failed = ไม่สามารถฆ่ากระบวนการของเกมได้ + +game-file-repairing-error = ไม่สามารถซ่อมแซมไฟล์เกมได้ +integrity-files-getting-error = ไม่สามารถรับไฟล์การตรวจสอบความสมบูรณ์ได้ + +background-downloading-failed = ดาวน์โหลดภาพพื้นหลังไม่สำเร็จ +components-index-sync-failed = ไม่สามารถซิงค์ index ส่วนประกอบ +components-index-verify-failed = ไม่สามารถตรวจสอบ index ส่วนประกอบได้ +config-update-error = บันทึกการกำหนดค่าไม่สำเร็จ +wine-prefix-update-failed = ไม่สามารถอัปเดตการตั้งค่า Wine +dxvk-install-failed = ติดตั้ง DXVK ไม่สำเร็จ +voice-package-deletion-error = ลบแพ็คเกจเสียงไม่สำเร็จ + +game-diff-finding-error = ไม่พบความแตกต่างของเกม +patch-info-fetching-error = ไม่สามารถเรียกข้อมูลแพตช์ได้ +launcher-state-updating-error = อัปเดตสถานะ launcher ไม่สำเร็จ + +package-not-available = ไม่พบแพ็คเกจนี้: {$package} +wine-download-error = ดาวน์โหลด Wine ไม่สำเร็จ +wine-unpack-errror = ไม่สามารถแกะไฟล์ Wine ได้ +wine-install-failed = ไม่สามารถติดตั้ง Wine ได้ +dxvk-download-error = ดาวน์โหลด DXVK ไม่สำเร็จ +dxvk-unpack-error = ไม่สามารถแกะไฟล์ DXVK ได้ +dxvk-apply-error = ไม่สามารถติดตั้ง DXVK ได้ + +downloaded-wine-list-failed = ไม่สามารถแสดงเวอร์ชัน Wine ที่ดาวน์โหลดไปแล้วได้ + +patch-sync-failed = ไม่สามารถซิงค์โฟลเดอร์แพตช์ได้ +patch-state-check-failed = ไม่สามารถตรวจสอบสถานะโฟลเดอร์แพตช์ได้ +game-patching-error = ไม่สามารถแพตช์เกมได้ + +# Disable telemetry + +telemetry-servers-disabling-error = ไม่สามารถปิดใช้งานเซิร์ฟเวอร์การวัดและส่งข้อมูล + +# Sandbox + +documentation-url-open-failed = ไม่สามารถเปิด URL เอกสารประกอบ + +# Game + +game-session-add-failed = ไม่สามารถเพิ่มเซสชันเกมได้ +game-session-update-failed = ไม่สามารถอัปเดตเซสชันเกมได้ +game-session-remove-failed = ไม่สามารถลบเซสชันเกมได้ +game-session-set-current-failed = ไม่สามารถตั้งเซสชันเกมปัจจุบันได้ +game-session-apply-failed = ไม่สามารถติดตั้งเซสชันเกมได้ + +# Enhancements + +discord-rpc-icons-fetch-failed = ไม่สามารถดึงไอคอน Discord RPC +discord-rpc-icon-download-failed = ไม่สามารถดาวน์โหลดไอคอน Discord RPC diff --git a/assets/locales/th/first_run.ftl b/assets/locales/th/first_run.ftl new file mode 100644 index 0000000..696a456 --- /dev/null +++ b/assets/locales/th/first_run.ftl @@ -0,0 +1,64 @@ +welcome = ยินดีต้อนรับ + +welcome-page-message = + สวัสดี! ยินดีต้อนรับสู่ An Anime Game Launcher + + เราจำเป็นต้องเตรียมบางสิ่งและดาวน์โหลดส่วนประกอบเริ่มต้นก่อนที่คุณจะสามารถเล่นเกมได้ + +tos-violation-warning = คำเตือนการละเมิดข้อตกลงการใช้บริการของเกม + +tos-violation-warning-message = + Launcher นี้เป็นเครื่องมือที่ไม่การเกี่ยวข้องแต่อย่างใดกับ {company-name} หรือ {company-alter-name}. + + เครื่องมือนี้ออกแบบมาเพื่ออำนวยความสะดวกในการเล่น {game-name} บน Linux และสร้างขึ้นโดยมีวัตถุประสงค์เพียงอย่างเดียวในการติดตั้งและรันเกมโดยมีความยุ่งยากที่น้อยลง + + Launcher นี้ทำงานได้โดยใช้คอมโพเนนต์ที่มีอยู่แล้ว ผู้ใช้จึงจะได้รับประสบการณ์ที่เรียบง่าย + + อย่างไรก็ตาม ส่วนประกอบบางอย่างที่ใช้อาจฝ่าฝืนข้อกำหนดในการให้บริการของ {company-name} สำหรับเกม {game-name} + + หากคุณใช้ Launcher นี้ บัญชีของคุณอาจถูกระบุว่าไม่เป็นไปตามข้อกำหนดของ {company-name}/{company-alter-name}. + + หากเกิดเหตุการณ์เช่นนี้ เนื่องจากบัญชีของคุณไม่ปฏิบัติตามข้อกำหนด, {company-name}/{company-alter-name} จึงมีอิสระที่จะทำสิ่งที่พวกเขาอยาก รวมถึงการแบนบัญชีของคุณ + + หากคุณเข้าใจถึงความเสี่ยงในการพยายามเล่นเกมอย่างไม่เป็นทางการ ให้กด ตกลง เพื่อดำเนินการต่อ + +tos-dialog-title = คุณแน่ใจหรือว่าคุณเข้าใจสิ่งที่เราพูด? +tos-dialog-message = + 1. อย่าเผยแพร่ข้อมูลใดๆ เกี่ยวกับโครงการนี้ + 2. อย่าใช้มันในทางที่ผิดโดยใช้ไคลเอนต์ดัดแปลง + 3. ถามคำถามเป็นพิเศษในเซิร์ฟเวอร์ Discord หรือ Matrix ของเรา + + +dependencies = โปรแกรมที่จำเป็น +missing-dependencies-title = คุณขาดโปรแกรมที่จำเป็น! +missing-dependencies-message = คุณต้องติดตั้งแพ็คเกจบางอย่างให้กับระบบของคุณก่อนที่จะดำเนินการติดตั้งต่อ + + +default-paths = เส้นทางเริ่มต้น +choose-default-paths = เลือกเส้นทางเริ่มต้น +show-all-folders = ฉันรู้ว่าฉันกำลังทำอะไรอยู่ +show-all-folders-subtitle = แสดงการตั้งค่าการเลือกเส้นทางเพิ่มเติม (ทำตามที่ฉันบอก...) +runners-folder = โฟลเดอร์ Runners +dxvks-folder = โฟลเดอร์ DXVKs +wine-prefix-folder = โฟลเดอร์ prefix ของ Wine +global-game-installation-folder = โฟลเดอร์การติดตั้งเวอร์ชันเกมสากล +chinese-game-installation-folder = โฟลเดอร์การติดตั้งเวอร์ชันเกมจีน +fps-unlocker-folder = โฟลเดอร์ FPS Unlocker +components-index = Index ส่วนประกอบ +patch-folder = โฟลเดอร์แพทช์ +temp-folder = โฟลเดอร์ชั่วคราว + +migrate = ย้าย + + +select-voice-packages = เลือกแพ็คเกจภาษาเสียง + + +download-components = ดาวน์โหลดส่วนประกอบ +download-dxvk = ดาวน์โหลด DXVK +apply-dxvk = ติดตั้ง DXVK + + +finish = สำเร็จ +finish-title = ทุกอย่างเสร็จแล้ว! +finish-message = ดาวน์โหลดส่วนประกอบพื้นฐานทั้งหมดแล้ว ตอนนี้คุณสามารถรีสตาร์ท Launcher และดาวน์โหลดเกมได้ ยินดีต้อนรับสู่ club ของเรา! diff --git a/assets/locales/th/game.ftl b/assets/locales/th/game.ftl new file mode 100644 index 0000000..f8f46ae --- /dev/null +++ b/assets/locales/th/game.ftl @@ -0,0 +1,7 @@ +game-sessions = เซสชันเกม + +active-sessions = เซสชันที่ใช้งานอยู่ +active-session-description = เซสชั่นเกมที่เลือกในปัจจุบัน อัปเดตหลังจากเปิดตัวเกมแต่ละครั้ง + +update-session = อัปเดตเซสชันโดยใช้ค่าตั้งค่า Wine ปัจจุบัน +delete-session = ลบเซสชัน diff --git a/assets/locales/th/gamescope.ftl b/assets/locales/th/gamescope.ftl new file mode 100644 index 0000000..6531a85 --- /dev/null +++ b/assets/locales/th/gamescope.ftl @@ -0,0 +1,16 @@ +game-resolution = ความละเอียดของเกม +gamescope-resolution = ความละเอียดของ Gamescope + +upscaling = การเพิ่มขนาดความละเอียด + +integer-scaling = มาตราส่วนจำนวนเต็ม +integer-scaling-description = เปลี่ยนแต่ละพิกเซลเป็นกลุ่มสี่เหลี่ยมจัตุรัสหรือสี่เหลี่ยมของจำนวนเต็มของพิกเซลสีเดียวกัน ป้องกันการสูญเสียความคมชัดเมื่อปรับขนาด Full HD เป็น 4K +gamescope-fsr-description = เทคนิคการขยายขนาดที่พัฒนาโดย AMD เพื่อคุณภาพการขยายขนาดที่ดีขึ้น +nis-description = เทคนิคการขยายขนาดโอเพ่นซอร์สที่พัฒนาโดย Nvidia เป็นทางเลือกข้ามผู้จำหน่ายและมีค่าใช้จ่ายต่ำแทนโซลูชัน DLSS ที่เป็นกรรมสิทธิ์ ซึ่งหมายความว่าใช้งานได้กับ AMD และ Intel GPU รวมถึง Nvidia GPU + +other-settings = การตั้งค่าอื่นๆ +framerate-limit = ขีดจำกัดเฟรมเรต +unfocused-framerate-limit = เฟรมเรทจำกัดขณะไม่ได้โฟกัส + +force-grab-cursor = Force grab cursor +force-grab-cursor-description = Always use relative mouse mode instead of flipping dependent on cursor visibility. The mouse cursor will correctly be centered in the game diff --git a/assets/locales/th/general.ftl b/assets/locales/th/general.ftl new file mode 100644 index 0000000..6e6655a --- /dev/null +++ b/assets/locales/th/general.ftl @@ -0,0 +1,70 @@ +appearance = รูปร่าง +modern = โมเดิร์น +classic = คลาสสิค +update-background = อัพเดตภาพพื้นหลัง +update-background-description = ดาวน์โหลดภาพพื้นหลังสำหรับ launcher คุณสามารถปิดการใช้งานเพื่อใช้รูปภาพที่คุณกำหนดเองแทนได้ + +launcher-language = ภาษาของ launcher +launcher-language-description = ใช้หลังจากรีสตาร์ท launcher + +game-edition = ฉบับเกม +global = สากล +china = จีน + +game-environment = สภาพแวดล้อมของเกม +game-environment-description = รับคุณสมบัติเฉพาะ เช่น วิธีการชำระเงินอื่นๆ + +game-voiceovers = ภาษาพากย์เสียงเกม +game-voiceovers-description = ภาษาเสียงพากย์เกมที่ดาวน์โหลดได้ คุณสามารถเลือกในการตั้งค่าเกม +english = ภาษาอังกฤษ +japanese = ภาษาญี่ปุ่น +korean = ภาษาเกาหลี +chinese = ภาษาจีน + +migrate-installation = ย้ายการติดตั้งเกม +migrate-installation-description = เปิดหน้าต่างพิเศษที่คุณสามารถเปลี่ยนโฟลเดอร์การติดตั้งเกมของคุณได้ +repair-game = ซ่อมแซมการติดตั้งเกม + +status = สถานะ + +game-version = เวอร์ชันเกม +game-not-installed = ยังไม่ได้ติดตั้ง + +game-predownload-available = มีการอัปเดตเกมให้ดาวน์โหลดได้ล่วงหน้าแล้ว: {$old} -> {$new} +game-update-available = มีอัปเดตเวอร์ชันเกมใหม่: {$old} -> {$new} +game-outdated = เวอร์ชันเกมล้าสมัยเกินไปและไม่สามารถอัปเดตได้. เวอร์ชันล่าสุด: {$latest} + +player-patch-version = เวอร์ชั่นแพทช์ +player-patch-version-description = แพทช์หลักที่ให้คุณเล่นเกมบน Linux + +patch-not-available = ไม่พร้อมใช้งาน +patch-not-available-tooltip = ไม่สามารถเข้าถึงเซิร์ฟเวอร์แพทช์ได้ + +patch-outdated = แพทช์ล้าสมัย ({$current}) +patch-outdated-tooltip = แพทช์ล้าสมัยแล้ว: {$current} -> {$latest} + +patch-preparation = เตรียมการ +patch-preparation-tooltip = แพทช์อยู่ระหว่างการพัฒนา + +patch-testing-tooltip = มีแพทช์ทดสอบให้ใช้งาน +patch-not-applied-tooltip = แพทช์ยังไม่มีการติดตั้ง + +apply-main-patch = ติดตั้งแพทช์หลัก +apply-main-patch-description = การทดลอง. การปิดใช้งานจะทำให้คุณสามารถรันเกมได้โดยไม่ต้องใช้แพตช์ สิ่งนี้อาจไม่ทำงานหรือต้องมีการแก้ไขไฟล์ด้วยตนเอง ใใช้เฉพาะเมื่อคุณรู้ว่าคุณกำลังทำอะไรอยู่ + +disable-mhypbase = ปิดการใช้งาน mhypbase +disable-mhypbase-description = การทดลอง. หากเปิดใช้งาน launcher จะปิดใช้งาน mhypbase.dll ในระหว่างการติดตั้งแพตช์หลัก ซึ่งในปัจจุบันเทียบเท่ากับแพตช์ xlua ปรับปรุงประสิทธิภาพและลดการใช้งาน CPU + +ask-superuser-permissions = ขอสิทธิ์ผู้ใช้ขั้นสูง (superuser) +ask-superuser-permissions-description = Launcher จะใช้ไฟล์เหล่านี้เพื่ออัปเดตไฟล์โฮสต์ของคุณโดยอัตโนมัติ สิ่งนี้ไม่จำเป็นในรุ่น flatpak + +launcher-behavior = พฤติกรรม Launcher +launcher-behavior-description = หน้าต่าง Launcher ควรทำอย่างไรเมื่อเริ่มเกม + +wine-tools = เครื่องมือ Wine +command-line = Command line +registry-editor = Registry editor +explorer = Explorer +task-manager = Task manager +configuration = Configuration +debugger = Debugger diff --git a/assets/locales/th/main.ftl b/assets/locales/th/main.ftl new file mode 100644 index 0000000..fec17b0 --- /dev/null +++ b/assets/locales/th/main.ftl @@ -0,0 +1,76 @@ +custom = กำหนดเอง +none = ไม่ใช้ +default = ค่าเริ่มต้น +details = รายละเอียด +options = ตัวเลือก + +width = ความกว้าง +height = ความสูง + +# Menu items + +launcher-folder = โฟลเดอร์ Launcher +game-folder = โฟลเดอร์เกม +config-file = ไฟล์ Config +debug-file = ไฟล์ Debug +wish-url = เปิด URL การอธิษฐาน +about = เกี่ยวกับ + + +close = ปิด +hide = ซ่อน +nothing = ไม่ทำอะไร +save = บันทึก +continue = ดำเนินการต่อ +resume = ดำเนินการต่อ +exit = ออก +check = ตรวจสอบ +restart = เริ่มต้นใหม่ +agree = ตกลง + + +loading-data = กำลังโหลดข้อมูล +downloading-background-picture = กำลังดาวน์โหลดภาพพื้นหลัง +updating-components-index = กำลังอัปเดต index ส่วนประกอบ +loading-game-version = กำลังโหลดเวอร์ชั่นเกม +loading-patch-status = กำลังโหลดสถานะแพทช์ +loading-launcher-state = กำลังโหลดสถานะ launcher +loading-launcher-state--game = กำลังโหลดสถานะ launcher: กำลังตรวจสอบเวอร์ชันเกม +loading-launcher-state--voice = กำลังโหลดสถานะ launcher: กำลังตรวจสอบภาษาพากย์เสียง {$locale} +loading-launcher-state--patch = กำลังโหลดสถานะ launcher: กำลังตรวจสอบแพตช์ที่ติดตั้ง + + +checking-free-space = กำลังตรวจสอบพื้นที่ว่าง +downloading = กำลังดาวน์โหลด +updating-permissions = กำลังอัปเดตสิทธิ์ +unpacking = กำลังแกะ +verifying-files = กำลังตรวจสอบไฟล์ +repairing-files = กำลังซ่อมแซมไฟล์ +migrating-folders = กำลังย้ายโฟลเดอร์ +applying-hdiff = กำลังติดตั้งแพตช์ hdiff +removing-outdated = กำลังลบไฟล์ที่ล้าสมัย + + +components-index-updated = อัปเดตส่วนประกอบแล้ว + + +launch = เริ่มเกมส์ +migrate-folders = ย้ายโฟลเดอร์ +migrate-folders-tooltip = อัพเดตโครงสร้างโฟลเดอร์เกม +apply-patch = ติดตั้งแพทช์ +disable-telemetry = ปิดใช้งานการวัดและส่งข้อมูล +download-wine = ดาวน์โหลด Wine +create-prefix = สร้างการตั้งค่า Wine +update = อัปเดต +download = ดาวน์โหลด +predownload-update = ดาวน์โหลดล่วงหน้า {$version} อัปเดต ({$size}) + +kill-game-process = ฆ่ากระบวนการเกม + +main-window--patch-unavailable-tooltip = เซิร์ฟเวอร์แพตช์ไม่พร้อมใช้งานและ launcher ไม่สามารถตรวจสอบสถานะการแพตช์ของเกมได้ คุณสามารถรันเกมได้แต่ต้องยอมรับความเสี่ยงเอง +main-window--patch-outdated-tooltip = โแพตช์ล้าสมัยหรืออยู่ในสถานะเตรียมการ ดังนั้นจึงไม่สามารถใช้งานได้ โปรดกลับมาใหม่ในภายหลังเพื่อดูสถานะ +main-window--version-outdated-tooltip = เวอร์ชันล้าสมัยเกินไปและไม่สามารถอัปเดตได้ + +preferences = การตั้งค่า +general = ทั่วไป +enhancements = การปรับปรุง diff --git a/assets/locales/th/sandbox.ftl b/assets/locales/th/sandbox.ftl new file mode 100644 index 0000000..8889db5 --- /dev/null +++ b/assets/locales/th/sandbox.ftl @@ -0,0 +1,28 @@ +sandbox = แซนด์บ็อกซ์ +sandbox-description = รันเกมที่แยกออกจากระบบ เพื่อป้องกันไม่ให้เข้าถึงข้อมูลส่วนบุคคลของคุณ + +enable-sandboxing = เปิดใช้งานแซนด์บ็อกซ์ +enable-sandboxing-description = รันเกมในระบบไฟล์รูทของคุณแบบอ่านได้อย่างเดียว + +hide-home-directory = ซ่อนโฮมไดเร็กตอรี่ +hide-home-directory-description = ซ่อนโฟลเดอร์ /home, /var/home/$USER และ $HOME ของคุณจากเกม + +hostname = ชื่อโฮสต์ +additional-arguments = arguments เพิ่มเติม + +private-directories = ไดเรกทอรีส่วนตัว +private-directories-description = โฟลเดอร์เหล่านี้จะถูกแทนที่ด้วยระบบไฟล์เสมือนที่ว่างเปล่า (tmpfs) และไฟล์เหล่านั้นจะไม่สามารถเข้าถึงได้โดยเกมแซนด์บ็อกซ์ + +path = เส้นทาง + +shared-directories = ไดเรกทอรีใช้ร่วมกัน +shared-directories-description = ไดเร็กทอรีเหล่านี้จะเชื่อมโยงกับไดเร็กทอรีในระบบโฮสต์ของคุณ + +original-path = เส้นทางเดิม +new-path = เส้นทางใหม่ + +read-only = อ่านได้เท่านั้น +read-only-description = ห้ามเกมเขียนข้อมูลใดๆ ลงในไดเร็กทอรีนี้ + +symlinks = Symlinks +symlinks-description = สร้าง Symbolic Link จากตำแหน่งเดิมไปยังตำแหน่งใหม่ภายในแซนด์บ็อกซ์ของคุณ diff --git a/assets/locales/tr/gamescope.ftl b/assets/locales/tr/gamescope.ftl index 221969c..f19da2e 100644 --- a/assets/locales/tr/gamescope.ftl +++ b/assets/locales/tr/gamescope.ftl @@ -11,3 +11,6 @@ nis-description = DLSS teknolojisine düşük maliyetli bir alternatif olarak Nv other-settings = Diğer ayarlar framerate-limit = Kare hızı limiti unfocused-framerate-limit = Odakta değilken kare hızı limiti + +force-grab-cursor = Force grab cursor +force-grab-cursor-description = Always use relative mouse mode instead of flipping dependent on cursor visibility. The mouse cursor will correctly be centered in the game diff --git a/assets/locales/uk/components.ftl b/assets/locales/uk/components.ftl new file mode 100644 index 0000000..8395afb --- /dev/null +++ b/assets/locales/uk/components.ftl @@ -0,0 +1,20 @@ +components = Компоненти +components-description = Керування версіями Wine і DXVK + +selected-version = Обрана версія +recommended-only = Тільки рекомендоване + +wine-version = Версія Wine +wine-recommended-description = Показувати тільки рекомендовані версії Wine + +wine-options = Опції Wine + +wine-use-shared-libraries = Використовувати динамічні бібліотеки Wine +wine-use-shared-libraries-description = Встановити змінну LD_LIBRARY_PATH, щоб завантажувати системні бібліотеки з обраної збірки Wine + +gstreamer-use-shared-libraries = Використовувати динамічні бібліотеки gstreamer +gstreamer-use-shared-libraries-description = Встановити змінну GST_PLUGIN_PATH, щоб завантажувати бібліотеки gstreamer з обраної збірки Wine + +dxvk-version = Версія DXVK +dxvk-selection-disabled = Вибір версії DXVK вимкнено налаштуваннями обраного вами Wine +dxvk-recommended-description = Показувати тільки рекомендовані версії DXVK diff --git a/assets/locales/uk/enhancements.ftl b/assets/locales/uk/enhancements.ftl new file mode 100644 index 0000000..11bf78d --- /dev/null +++ b/assets/locales/uk/enhancements.ftl @@ -0,0 +1,57 @@ +game-settings-description = Керування налаштуваннями гри та сесією акаунту +sandbox-settings-description = Запускати гру в bubblewrap пісочниці, схожу на ту яку використовує Flatpak +environment-settings-description = Вказати змінні середовища та команду запуску гри + +wine = Wine + +synchronization = Синхронізація +wine-sync-description = Технологія, що використовується для синхронізації внутрішніх подій Wine + +language = Мова +wine-lang-description = Мова, яка використовується в середовищі Wine. Може виправити проблеми з розкладкою клавіатури +system = Системний + +borderless-window = Вікно без рамок +virtual-desktop = Віртуальний робочий стіл + +map-drive-c = Створювати диск C: +map-drive-c-description = Автоматично створювати посилання на drive_c з префіксу Wine в dosdevices + +map-game-folder = Створювати диск з грою +map-game-folder-description = Автоматично створювати посилання на теку гри в dosdevices + +game = Гра + +hud = HUD + +fsr = FSR +fsr-description = Для використання встановіть нижчу роздільну здатність в грі та настисність Alt+Enter +ultra-quality = Ультра +quality = Гарно +balanced = Баланс +performance = Картопля + +gamemode = Gamemode +gamemode-description = Ставити грі вищий пріоритет над процесами + +gamescope = Gamescope +gamescope-description = Програма від Valve, яка дозволяє запускати програми в ізольовоному середевощі Xwayland і підтримує відеокарти від AMD, Intel, та Nvidia + +discord-rpc = Discord RPC +discord-rpc-description = Discord RPC дозволяє вам показувати в Discord інформацію про гру в яку ви зараз граєте +icon = Іконка +title = Заголовок +description = Опис + +fps-unlocker = FPS Unlocker +fps-unlocker-description = Змінити обмеження кадрів в грі шляхом модифікування пам'яті гри. Може бути виявлено античитом гри + +enabled = Ввімкнений + +fps-unlocker-interval = Затримка між перезаписами +fps-unlocker-interval-description = Затримка між перезаписами в мілісекунадх. Періодичний перезапис значення обмеження необхідна для запобігання його скидання + +window-mode = Режим вікна +borderless = Безрамковий +popup = Спливаючий +fullscreen = Повноекранний diff --git a/assets/locales/uk/environment.ftl b/assets/locales/uk/environment.ftl new file mode 100644 index 0000000..175fe5a --- /dev/null +++ b/assets/locales/uk/environment.ftl @@ -0,0 +1,7 @@ +environment = Середовище +game-command = Команда запуска +game-command-description = Команда, яка використовується для запуску гри. Ключ %command% генерується лаунчером автоматично. Наприклад: gamemoderun '%command%' +new-variable = Нова змінна +name = Ім'я +value = Значення +add = Додати diff --git a/assets/locales/uk/errors.ftl b/assets/locales/uk/errors.ftl new file mode 100644 index 0000000..d44d8f5 --- /dev/null +++ b/assets/locales/uk/errors.ftl @@ -0,0 +1,66 @@ +launcher-folder-opening-error = Не вдалося відкрити папку лаунчера +game-folder-opening-error = Не вдалося відкрити папку гри +config-file-opening-error = Не вдалося відкрити файл налаштувань +debug-file-opening-error = Не вдалося відкрити файл налагодження + +wish-url-search-failed = Посилання на історію молитов не знайдено +wish-url-opening-error = Не вдалося відкрити посилання з історією молитов + +wine-run-error = Не вдалося запустити {$executable} використовуючи Wine + +game-launching-failed = Не вдалося запустити гру +failed-get-selected-wine = Не вдалося знайти обрану версію Wine +downloading-failed = Помилка завантаження +unpacking-failed = Помилка розпакування + +kill-game-process-failed = Не вдалося вбити процес гри + +game-file-repairing-error = Не вдалося відремонтувати гру +integrity-files-getting-error = Не вдалося отримати вірні дані про файли гри + +background-downloading-failed = Не вдалося завантажити фонове зображення +components-index-sync-failed = Не вдалося синхронізувати індекс компонентів +components-index-verify-failed = Не вдалося перевірити індекс компонентів +config-update-error = Помилка збереження налаштувань +wine-prefix-update-failed = Помилка оновлення префікса Wine +dxvk-install-failed = Помилка встановлення DXVK +voice-package-deletion-error = Не вдалося видалити мовний пакет + +game-diff-finding-error = Не вдалося визначити оновлення гри +patch-info-fetching-error = Не вдалося отримати інформацію про патч +launcher-state-updating-error = Не вдалося оновити стан лаунчера + +package-not-available = Пакет недоступний: {$package} +wine-download-error = Помилка завантаження Wine +wine-unpack-errror = Помилка розпакування Wine +wine-install-failed = Помилка встановлення Wine +dxvk-download-error = Помилка завантаження DXVK +dxvk-unpack-error = Помилка розпакування DXVK +dxvk-apply-error = Не вдалося застосувати DXVK + +downloaded-wine-list-failed = Не вдалося отримати список встановлених версій Wine + +patch-sync-failed = Помилка синхронізації папки патча +patch-state-check-failed = Помилка перевірки статусу папки патча +game-patching-error = Не вдалося встановити патч гри + +# Disable telemetry + +telemetry-servers-disabling-error = Не вдалося відключити сервери телеметрії + +# Sandbox + +documentation-url-open-failed = Не вдалося відкрити посилання з документацією + +# Game + +game-session-add-failed = Не вдалося додати гру +game-session-update-failed = Не вдалося оновити гру +game-session-remove-failed = Не вдалося видалити гру +game-session-set-current-failed = Не вдалося вибрати гру +game-session-apply-failed = Не вдалося застосувати гру + +# Enhancements + +discord-rpc-icons-fetch-failed = Не вдалося отримати список іконок Discord RPC +discord-rpc-icon-download-failed = Не вдалося завантажити іконку Discord RPC diff --git a/assets/locales/uk/first_run.ftl b/assets/locales/uk/first_run.ftl new file mode 100644 index 0000000..bbdde96 --- /dev/null +++ b/assets/locales/uk/first_run.ftl @@ -0,0 +1,66 @@ +welcome = Ласкаво просимо + +welcome-page-message = + Вітаю! Ласкаво просимо до An Anime Game Launcher + + Нам потрібно підготувати декілька речей і встановити стандартні компоненти, перш ніж ти зможеш запустити гру + + +tos-violation-warning = Порушення угоди користувача + +tos-violation-warning-message = + Цей лаунчер є неофіційним і ніяк не відноситься до {company-name} або {company-alter-name}. + + Він був розроблений з метою надання можливості грати в {game-name} на Linux. + + Його головна мета - допомогти встановити і запустити гру з меншими клопотами. + + Це досягається за рахунок використання існуючих компонентів і спрощення роботи користувача. + + Однак, деякі компоненти, що використовуються тут, ймовірно порушують угоду користувача {game-name}, що належить {company-name}. + + Якщо ви використовуєте цей лаунчер - ваш геймерський аккаунт може бути визнаний як порушуючий угоду користувача {company-name}/{company-alter-name}. + + Якщо це станеться - оскільки ваш обліковий запис буде порушувати правила, {company-name}/{company-alter-name} будуть вільні робити те, що захочуть, включаючи блокування вашого аккаунта. + + Якщо ви усвідомлюєте ризик використання неофіційних засобів гри - натисніть "Продовжити" + +tos-dialog-title = Ви точно впевнені, що розумієте, що ми хочемо сказати? +tos-dialog-message = + 1. Не публікуйте жодної інформації про проект + 2. Не використовуйте його разом з модифікованими клієнтами та подібним + 3. Задавайте питання виключно на нашому discord або matrix сервері + +dependencies = Залежності +missing-dependencies-title = У вас не встановлено деякі компоненти! +missing-dependencies-message = Ви повинні встановити деякі системні пакети, щоб продовжити процес встановлення + + +default-paths = Шляхи за замовчуванням +choose-default-paths = Вибрати шляхи за замовчуванням +show-all-folders = Я знаю, що я роблю +show-all-folders-subtitle = Відобразити додаткові опції вибору шляхів +runners-folder = Папка версій Wine +dxvks-folder = Папка версій DXVK +wine-prefix-folder = Папка префікса Wine +global-game-installation-folder = Шлях встановлення глобальної версії гри +chinese-game-installation-folder = Шлях встановлення китайської версії гри +fps-unlocker-folder = Папка FPS Unlocker +components-index = Індекс компонентів +patch-folder = Папка завантаження патча +temp-folder = Тимчасова папка + +migrate = Мігрувати + + +select-voice-packages = Вибрати мовні пакети + + +download-components = Завантажити компоненти +download-dxvk = Завантажити DXVK +apply-dxvk = Застосувати DXVK + + +finish = Завершення +finish-title = Робота завершена! +finish-message = Всі базові компоненти були встановлені. Тепер ви можете перезапустити лаунчер і встановити гру. Ласкаво просимо до клубу! diff --git a/assets/locales/uk/game.ftl b/assets/locales/uk/game.ftl new file mode 100644 index 0000000..a34c3ba --- /dev/null +++ b/assets/locales/uk/game.ftl @@ -0,0 +1,7 @@ +game-sessions = Ігрові сесії + +active-sessions = Активна сесія +active-session-description = Обрана ігрова сесія. Оновлюється після кожного запуску гри + +update-session = Оновити сесію, використовуючи значення реєстру з префікса Wine +delete-session = Видалити сесію \ No newline at end of file diff --git a/assets/locales/uk/gamescope.ftl b/assets/locales/uk/gamescope.ftl new file mode 100644 index 0000000..b94a9a9 --- /dev/null +++ b/assets/locales/uk/gamescope.ftl @@ -0,0 +1,16 @@ +game-resolution = Роздільна здатність гри +gamescope-resolution = Роздільна здатність Gamescope + +upscaling = Масштабування + +integer-scaling = Цілочисельне масштабування +integer-scaling-description = Кожен піксель перетворюється на квадрат або прямокутник з цілого числа пікселів одного кольору. Запобігає втраті чіткості при масштабуванні Full HD до 4K +gamescope-fsr-description = Відкрита техніка масштабування зі збереженням хорошої якості зображення, розроблена AMD +nis-description = Відкрита техніка масштабування зі збереженням хорошої якості зображення, розроблена Nvidia для заміни DLSS і працює на відеокартах AMD, Intel і Nvidia + +other-settings = Інші налаштування +framerate-limit = Обмеження кількості кадрів +unfocused-framerate-limit = Обмеження кількості кадрів поза фокусом + +force-grab-cursor = Force grab cursor +force-grab-cursor-description = Always use relative mouse mode instead of flipping dependent on cursor visibility. The mouse cursor will correctly be centered in the game diff --git a/assets/locales/uk/general.ftl b/assets/locales/uk/general.ftl new file mode 100644 index 0000000..606d213 --- /dev/null +++ b/assets/locales/uk/general.ftl @@ -0,0 +1,70 @@ +appearance = Зовнішній вигляд +modern = Сучасний +classic = Класичний +update-background = Оновлювати фонове зображення +update-background-description = Завантажувати фонове зображення для лаунчера. Ви можете вимкнути це, щоб використовувати власне зображення + +launcher-language = Мова лаунчера +launcher-language-description = Застосовується після перезапуску + +game-edition = Редакція гри +global = Глобальна +china = Китайська + +game-environment = Оточення гри +game-environment-description = Отримати спеціальні функції, такі як додаткові методи оплати + +game-voiceovers = Мова озвучення +game-voiceovers-description = Список встановлених озвучок гри. Ви можете вибрати їх в налаштуваннях гри +english = Англійська +japanese = Японська +korean = Корейська +chinese = Китайська + +migrate-installation = Перенести лаунчер +migrate-installation-description = Відкрити спеціальне вікно, в якому ви зможете перенести встановлену гру +repair-game = Відновити гру + +status = Статус + +game-version = Версія гри +game-not-installed = не встановлена + +game-predownload-available = Доступне попереднє завантаження оновлення гри: {$old} -> {$new} +game-update-available = Доступне оновлення гри: {$old} -> {$new} +game-outdated = Версія гри застаріла і не може бути оновлена. Остання версія: {$latest} + +player-patch-version = Версія основного патча +player-patch-version-description = Основний патч, який дозволяє вам грати в гру на Linux + +patch-not-available = недоступний +patch-not-available-tooltip = Сервери патча недоступні + +patch-outdated = застарілий ({$current}) +patch-outdated-tooltip = Версія патча застаріла: {$current} -> {$latest} + +patch-preparation = підготовка +patch-preparation-tooltip = Патч у розробці + +patch-testing-tooltip = Доступна тестова версія патча +patch-not-applied-tooltip = Патч не застосовано + +apply-main-patch = Застосовувати основний патч +apply-main-patch-description = Експериментально. Вимкнення опції дозволяє запускати гру без застосування патча. Це може не працювати або вимагати ручної зміни файлів. Використовуйте, якщо знаєте, що робите + +disable-mhypbase = Вимкнути mhypbase +disable-mhypbase-description = Експериментально. Коли включено, лаунчер буде вимикати mhypbase.dll під час застосування основного патча, що зараз є еквівалентом патча xlua. Покращує продуктивність і знижує навантаження на процесор + +ask-superuser-permissions = Запитувати права суперкористувача +ask-superuser-permissions-description = Лаунчер буде використовувати їх, щоб автоматично оновлювати ваш файл hosts для вимкнення телеметрії гри. Не потрібно при використанні flatpak + +launcher-behavior = Поведінка лаунчера +launcher-behavior-description = Що повинно робити вікно лаунчера, коли воно запускає гру + +wine-tools = Інструменти Wine +command-line = Командний рядок +registry-editor = Редактор реєстру +explorer = Провідник +task-manager = Диспетчер завдань +configuration = Налаштування +debugger = Відлагоджувач diff --git a/assets/locales/uk/main.ftl b/assets/locales/uk/main.ftl new file mode 100644 index 0000000..81d611d --- /dev/null +++ b/assets/locales/uk/main.ftl @@ -0,0 +1,87 @@ +custom = Своє значення +none = Немає +default = За замовчуванням +details = Детальніше +options = Опції + +width = Ширина +height = Висота + +# Menu items + +launcher-folder = Папка лаунчера +game-folder = Папка гри +config-file = Файл налаштувань +debug-file = Журнал відлагодження +wish-url = Історія молитв +about = Про програму + +close = { $form -> + [verb] Закриватися + *[noun] Закрити +} + +hide = { $form -> + [verb] Ховатися + *[noun] Сховати +} + +nothing = Нічого +save = Зберегти +continue = Продовжити +resume = Відновити +exit = Вийти +check = Перевірити +restart = Перезапустити +agree = Підтвердити + + +loading-data = Завантаження даних +downloading-background-picture = Завантаження фонового зображення +updating-components-index = Оновлення індексу компонентів +loading-game-version = Завантаження версії гри +loading-patch-status = Завантаження статусу патча +loading-launcher-state = Завантаження статусу лаунчера +loading-launcher-state--game = Завантаження статусу лаунчера: перевірка версії гри +loading-launcher-state--voice = Завантаження статусу лаунчера: перевірка {$locale -> + [English] англійської + [Japanese] японської + [Korean] корейської + [Chinese] китайської + *[other] $locale +} мови пакета +loading-launcher-state--patch = Завантаження статусу лаунчера: перевірка встановленого патча + + +checking-free-space = Перевірка вільного місця +downloading = Завантаження +updating-permissions = Оновлення привілеїв +unpacking = Розпакування +verifying-files = Перевірка файлів +repairing-files = Відновлення файлів +migrating-folders = Переміщення папок +applying-hdiff = Застосування патчів hdiff +removing-outdated = Видалення застарілих файлів + +components-index-updated = Індекс компонентів було оновлено + +launch = Запустити +migrate-folders = Перемістити папки +migrate-folders-tooltip = Оновити структуру файлів гри +apply-patch = Застосувати патч +disable-telemetry = Вимкнути телеметрію +download-wine = Встановити Wine +create-prefix = Створити префікс +update = Оновити +download = Встановити +predownload-update = Попередньо встановити оновлення {$version} ({$size}) + +kill-game-process = Завершити процес гри + +main-window--patch-unavailable-tooltip = Сервери патча недоступні, і лаунчер не може перевірити статус патча гри. Ви можете запустити гру на свій страх і ризик +main-window--patch-outdated-tooltip = Патч застарів або знаходиться в процесі розробки, тому не може бути застосований. Поверніться пізніше, щоб перевірити його статус +main-window--version-outdated-tooltip = Версія занадто стара і не може бути оновлена + +preferences = Налаштування +general = Основне +enhancements = Покращення diff --git a/assets/locales/uk/sandbox.ftl b/assets/locales/uk/sandbox.ftl new file mode 100644 index 0000000..c765270 --- /dev/null +++ b/assets/locales/uk/sandbox.ftl @@ -0,0 +1,28 @@ +sandbox = Пісочниця +sandbox-description = Запускати гру в ізольованому середовищі, що запобігає доступу до ваших особистих даних + +enable-sandboxing = Використовувати пісочницю +enable-sandboxing-description = Запускати гру в копії кореневої файлової системи комп'ютера без прав на зміну файлів + +hide-home-directory = Приховувати домашню директорію +hide-home-directory-description = Ізолювати ваші директорії /home, /var/home/$USER, і $HOME від гри + +hostname = Ім'я хоста +additional-arguments = Додаткові аргументи + +private-directories = Приватні директорії +private-directories-description = Ці папки будуть замінені порожньою віртуальною файловою системою (tmpfs) і їх початковий вміст не буде доступний грі + +path = Шлях + +shared-directories = Спільні директорії +shared-directories-description = Ці директорії будуть доступні для гри + +original-path = Початковий шлях +new-path = Шлях в пісочниці + +read-only = Тільки для читання +read-only-description = Заборонити грі змінювати вміст цієї директорії + +symlinks = Посилання +symlinks-description = Додати посилання на оригінальний файл або папку в вашу пісочницю diff --git a/assets/locales/vi/gamescope.ftl b/assets/locales/vi/gamescope.ftl index 6ced83c..2edf20b 100644 --- a/assets/locales/vi/gamescope.ftl +++ b/assets/locales/vi/gamescope.ftl @@ -11,3 +11,6 @@ nis-description = Một kỹ thuật nâng cấp mã nguồn mở do Nvidia phá other-settings = Cài đặt khác framerate-limit = Giới hạn tốc độ khung hình unfocused-framerate-limit = Giới hạn tốc độ khung hình khi không tập trung + +force-grab-cursor = Force grab cursor +force-grab-cursor-description = Always use relative mouse mode instead of flipping dependent on cursor visibility. The mouse cursor will correctly be centered in the game diff --git a/assets/locales/zh-cn/gamescope.ftl b/assets/locales/zh-cn/gamescope.ftl index 1c3f462..282801b 100644 --- a/assets/locales/zh-cn/gamescope.ftl +++ b/assets/locales/zh-cn/gamescope.ftl @@ -1,6 +1,11 @@ game-resolution = 游戏分辨率 gamescope-resolution = Gamescope 分辨率 + +integer-scaling = 整数倍数缩放 + other-settings = 其它设置 framerate-limit = 帧率限制 unfocused-framerate-limit = 切出游戏帧率限制 -integer-scaling = 整数倍数缩放 + +force-grab-cursor = Force grab cursor +force-grab-cursor-description = Always use relative mouse mode instead of flipping dependent on cursor visibility. The mouse cursor will correctly be centered in the game diff --git a/assets/resources.xml b/assets/resources.xml index d197867..c8db5d2 100644 --- a/assets/resources.xml +++ b/assets/resources.xml @@ -26,6 +26,7 @@ images/icons/list-add-symbolic.svg images/icons/view-refresh-symbolic.svg images/icons/applications-games-symbolic.svg + images/icons/applications-system-symbolic.svg images/icons/applications-graphics-symbolic.svg images/icons/go-next-symbolic.svg images/icons/dialog-information-symbolic.svg diff --git a/src/i18n.rs b/src/i18n.rs index abae9b0..2d62374 100644 --- a/src/i18n.rs +++ b/src/i18n.rs @@ -26,7 +26,9 @@ pub const SUPPORTED_LANGUAGES: &[LanguageIdentifier] = &[ langid!("pt-br"), langid!("pl-pl"), langid!("vi-vn"), - langid!("nl-nl") + langid!("nl-nl"), + langid!("uk-ua"), + langid!("th-th") ]; pub static mut LANG: LanguageIdentifier = langid!("en-us"); @@ -104,9 +106,7 @@ macro_rules! tr { use fluent_templates::Loader; #[allow(unused_unsafe)] - $crate::i18n::LOCALES - .lookup(unsafe { &$crate::i18n::LANG }, $id) - .expect(&format!("Failed to find a message with given id: {}", stringify!($id))) + $crate::i18n::LOCALES.lookup(unsafe { &$crate::i18n::LANG }, $id) } }; @@ -124,9 +124,7 @@ macro_rules! tr { )* #[allow(unused_unsafe)] - $crate::i18n::LOCALES - .lookup_complete(unsafe { &$crate::i18n::LANG }, $id, Some(&args)) - .expect(&format!("Failed to find a message with given id: {}", stringify!($id))) + $crate::i18n::LOCALES.lookup_complete(unsafe { &$crate::i18n::LANG }, $id, Some(&args)) } }; } diff --git a/src/main.rs b/src/main.rs index 775c7d7..c6adae8 100644 --- a/src/main.rs +++ b/src/main.rs @@ -70,6 +70,36 @@ lazy_static::lazy_static! { /// /// Standard is `$HOME/.local/share/honkers-railway-launcher/.first-run` pub static ref FIRST_RUN_FILE: PathBuf = LAUNCHER_FOLDER.join(".first-run"); + + /// Global app's css + static ref GLOBAL_CSS: String = format!(" + progressbar > text {{ + margin-bottom: 4px; + }} + + window.classic-style {{ + background: url(\"file://{}\"); + background-repeat: no-repeat; + background-size: cover; + }} + + window.classic-style progressbar {{ + background-color: #00000020; + border-radius: 16px; + padding: 8px 16px; + }} + + window.classic-style progressbar:hover {{ + background-color: #00000060; + color: #ffffff; + transition-duration: 0.5s; + transition-timing-function: linear; + }} + + .round-bin {{ + border-radius: 24px; + }} + ", BACKGROUND_FILE.to_string_lossy()); } fn main() -> anyhow::Result<()> { @@ -105,22 +135,24 @@ fn main() -> anyhow::Result<()> { let mut no_verbose_tracing = false; let args = std::env::args().collect::>(); + let mut gtk_args = Vec::new(); // Parse arguments for i in 0..args.len() { - if args[i] == "--debug" { - force_debug = true; - } else if args[i] == "--run-game" { - run_game = true; - } else if args[i] == "--just-run-game" { - just_run_game = true; - } else if args[i] == "--no-verbose-tracing" { - no_verbose_tracing = true; - } else if args[i] == "--session" { - // Switch active session prior running the app - if let Some(session) = args.get(i + 1) { - Sessions::set_current(session.to_owned())?; - } + match args[i].as_str() { + "--debug" => force_debug = true, + "--run-game" => run_game = true, + "--just-run-game" => just_run_game = true, + "--no-verbose-tracing" => no_verbose_tracing = true, + + "--session" => { + // Switch active session prior running the app + if let Some(session) = args.get(i + 1) { + Sessions::set_current(session.to_owned())?; + } + }, + + arg => gtk_args.push(arg.to_string()) } } @@ -170,36 +202,6 @@ fn main() -> anyhow::Result<()> { gtk::glib::set_application_name("The Honkers Railway Launcher"); gtk::glib::set_program_name(Some("The Honkers Railway Launcher")); - // Set global css - relm4::set_global_css(&format!(" - progressbar > text {{ - margin-bottom: 4px; - }} - - window.classic-style {{ - background: url(\"file://{}\"); - background-repeat: no-repeat; - background-size: cover; - }} - - window.classic-style progressbar {{ - background-color: #00000020; - border-radius: 16px; - padding: 8px 16px; - }} - - window.classic-style progressbar:hover {{ - background-color: #00000060; - color: #ffffff; - transition-duration: 0.5s; - transition-timing-function: linear; - }} - - .round-bin {{ - border-radius: 24px; - }} - ", BACKGROUND_FILE.to_string_lossy())); - // Set UI language let lang = CONFIG.launcher.language.parse().expect("Wrong language format used in config"); @@ -210,7 +212,11 @@ fn main() -> anyhow::Result<()> { // Run FirstRun window if .first-run file persist if FIRST_RUN_FILE.exists() { // Create the app - let app = RelmApp::new(APP_ID); + let app = RelmApp::new(APP_ID) + .with_args(gtk_args); + + // Set global css + app.set_global_css(&GLOBAL_CSS); // Show first run window app.run::(()); @@ -285,7 +291,11 @@ fn main() -> anyhow::Result<()> { } // Create the app - let app = RelmApp::new(APP_ID); + let app = RelmApp::new(APP_ID) + .with_args(gtk_args); + + // Set global css + app.set_global_css(&GLOBAL_CSS); // Show main window app.run::(()); diff --git a/src/ui/about.rs b/src/ui/about.rs index 4b8698f..548750f 100644 --- a/src/ui/about.rs +++ b/src/ui/about.rs @@ -82,7 +82,9 @@ impl SimpleComponent for AboutDialog { "日本語 — @zozonteq https://github.com/zozonteq", "한국어 — @project-dy https://github.com/project-dy", "Indonesia — @yumekarisu https://github.com/yumekarisu", - "Tiếng Việt — Nguyễn Hữu Chánh https://github.com/Chanhnh" + "Tiếng Việt — Nguyễn Hữu Chánh https://github.com/Chanhnh", + "Українська — Іван Потієнко https://github.com/xxanqw", + "ไทย — @thegooglerider https://github.com/TheGoogleRider2" ].join("\n"), set_debug_info: &[ @@ -97,20 +99,29 @@ impl SimpleComponent for AboutDialog { set_release_notes_version: &APP_VERSION, set_release_notes: &[ - "

Fixed

", + "

Added

", "
    ", - "
  • Fixed \"Kill game process\" button
  • ", + "
  • Bundle applications-system-symbolic icon to the app
  • ", + "
  • Added force grab cursor option to the gamescope settings
  • ", + "
  • Added Thai
  • ", + "
  • Added Ukrainian
  • ", "
", "

Changed

", "
    ", - "
  • Updated Turkish
  • ", - "
  • Updated German
  • ", - "
  • Updated Polish
  • ", - "
  • Updated Chinese
  • ", + "
  • Update wish url
  • ", + "
  • Updated dependencies
  • ", + "
  • Improved app args parsing
  • ", + "
  • Updated locales
  • ", "
", + + "

Fixed

", + + "
    ", + "
  • Fixed GtkSwitch UI state representation
  • ", + "
" ].join("\n"), set_modal: true, @@ -127,11 +138,7 @@ impl SimpleComponent for AboutDialog { } } - fn init( - _init: Self::Init, - root: &Self::Root, - sender: ComponentSender, - ) -> ComponentParts { + fn init(_init: Self::Init, root: Self::Root, sender: ComponentSender) -> ComponentParts { tracing::info!("Initializing about dialog"); let model = Self { diff --git a/src/ui/first_run/default_paths.rs b/src/ui/first_run/default_paths.rs index 0648624..71b166e 100644 --- a/src/ui/first_run/default_paths.rs +++ b/src/ui/first_run/default_paths.rs @@ -287,11 +287,7 @@ impl SimpleAsyncComponent for DefaultPathsApp { } } - async fn init( - init: Self::Init, - root: Self::Root, - _sender: AsyncComponentSender, - ) -> AsyncComponentParts { + async fn init(init: Self::Init, root: Self::Root, _sender: AsyncComponentSender) -> AsyncComponentParts { let model = Self { progress_bar: ProgressBar::builder() .launch(ProgressBarInit { diff --git a/src/ui/first_run/dependencies.rs b/src/ui/first_run/dependencies.rs index 0605581..e43883a 100644 --- a/src/ui/first_run/dependencies.rs +++ b/src/ui/first_run/dependencies.rs @@ -135,11 +135,7 @@ impl SimpleAsyncComponent for DependenciesApp { } } - async fn init( - _init: Self::Init, - root: Self::Root, - _sender: AsyncComponentSender, - ) -> AsyncComponentParts { + async fn init(_init: Self::Init, root: Self::Root, _sender: AsyncComponentSender) -> AsyncComponentParts { let distro = whatadistro::identify(); let model = Self { diff --git a/src/ui/first_run/download_components.rs b/src/ui/first_run/download_components.rs index da44c79..d5c2fce 100644 --- a/src/ui/first_run/download_components.rs +++ b/src/ui/first_run/download_components.rs @@ -264,11 +264,7 @@ impl SimpleAsyncComponent for DownloadComponentsApp { } } - async fn init( - _init: Self::Init, - root: Self::Root, - sender: AsyncComponentSender, - ) -> AsyncComponentParts { + async fn init(_init: Self::Init, root: Self::Root, sender: AsyncComponentSender) -> AsyncComponentParts { let model = Self { progress_bar: ProgressBar::builder() .launch(ProgressBarInit { diff --git a/src/ui/first_run/finish.rs b/src/ui/first_run/finish.rs index ea2163c..e69ab96 100644 --- a/src/ui/first_run/finish.rs +++ b/src/ui/first_run/finish.rs @@ -68,11 +68,7 @@ impl SimpleAsyncComponent for FinishApp { } } - async fn init( - _init: Self::Init, - root: Self::Root, - _sender: AsyncComponentSender, - ) -> AsyncComponentParts { + async fn init(_init: Self::Init, root: Self::Root, _sender: AsyncComponentSender) -> AsyncComponentParts { let model = Self; let widgets = view_output!(); diff --git a/src/ui/first_run/main.rs b/src/ui/first_run/main.rs index eae3361..528e9bb 100644 --- a/src/ui/first_run/main.rs +++ b/src/ui/first_run/main.rs @@ -115,11 +115,7 @@ impl SimpleComponent for FirstRunApp { } } - fn init( - _parent: Self::Init, - root: &Self::Root, - sender: ComponentSender, - ) -> ComponentParts { + fn init(_parent: Self::Init, root: Self::Root, sender: ComponentSender) -> ComponentParts { tracing::info!("Initializing first run window"); let toast_overlay = adw::ToastOverlay::new(); diff --git a/src/ui/first_run/select_voiceovers.rs b/src/ui/first_run/select_voiceovers.rs index 4ea632b..b92aace 100644 --- a/src/ui/first_run/select_voiceovers.rs +++ b/src/ui/first_run/select_voiceovers.rs @@ -51,7 +51,7 @@ impl SimpleAsyncComponent for SelectVoiceoversApp { #[local_ref] add_suffix = english -> gtk::Switch { set_valign: gtk::Align::Center, - set_state: true + set_active: true } }, @@ -110,11 +110,7 @@ impl SimpleAsyncComponent for SelectVoiceoversApp { } } - async fn init( - _init: Self::Init, - root: Self::Root, - _sender: AsyncComponentSender, - ) -> AsyncComponentParts { + async fn init(_init: Self::Init, root: Self::Root, _sender: AsyncComponentSender) -> AsyncComponentParts { let model = Self { english: gtk::Switch::new(), japanese: gtk::Switch::new(), diff --git a/src/ui/first_run/welcome.rs b/src/ui/first_run/welcome.rs index 69bf7da..5c980c8 100644 --- a/src/ui/first_run/welcome.rs +++ b/src/ui/first_run/welcome.rs @@ -66,11 +66,7 @@ impl SimpleAsyncComponent for WelcomeApp { } } - async fn init( - _init: Self::Init, - root: Self::Root, - _sender: AsyncComponentSender, - ) -> AsyncComponentParts { + async fn init(_init: Self::Init, root: Self::Root, _sender: AsyncComponentSender) -> AsyncComponentParts { let model = Self; let widgets = view_output!(); diff --git a/src/ui/main/mod.rs b/src/ui/main/mod.rs index db887f8..0f157a7 100644 --- a/src/ui/main/mod.rs +++ b/src/ui/main/mod.rs @@ -682,11 +682,7 @@ impl SimpleComponent for App { } } - fn init( - _init: Self::Init, - root: &Self::Root, - sender: ComponentSender, - ) -> ComponentParts { + fn init(_init: Self::Init, root: Self::Root, sender: ComponentSender) -> ComponentParts { tracing::info!("Initializing main window"); let model = App { @@ -819,8 +815,8 @@ impl SimpleComponent for App { Ok(web_cache) => { let web_cache = String::from_utf8_lossy(&web_cache); - // https://webstatic-sea.[ho-yo-ver-se].com/hkrpg/event/e20211215gacha-v2/index.html?...... - if let Some(url) = web_cache.lines().rev().find(|line| line.contains("gacha-v2/index.html")) { + // https://webstatic-sea.[ho-yo-ver-se].com/hkrpg/event/e20211215gacha-v3/index.html?...... + if let Some(url) = web_cache.lines().rev().find(|line| line.contains("gacha-v3/index.html")) { let url_begin_pos = url.find("https://").unwrap(); let url_end_pos = url_begin_pos + url[url_begin_pos..].find("\0\0\0\0").unwrap(); diff --git a/src/ui/migrate_installation.rs b/src/ui/migrate_installation.rs index 6f115e6..a31a98f 100644 --- a/src/ui/migrate_installation.rs +++ b/src/ui/migrate_installation.rs @@ -36,11 +36,7 @@ impl SimpleComponent for MigrateInstallationApp { } } - fn init( - _init: Self::Init, - root: &Self::Root, - _sender: ComponentSender, - ) -> ComponentParts { + fn init(_init: Self::Init, root: Self::Root, _sender: ComponentSender) -> ComponentParts { tracing::info!("Initializing migration window"); let model = Self { diff --git a/src/ui/preferences/enhancements/environment.rs b/src/ui/preferences/enhancements/environment.rs index f7d925b..4a0f6cc 100644 --- a/src/ui/preferences/enhancements/environment.rs +++ b/src/ui/preferences/enhancements/environment.rs @@ -71,91 +71,82 @@ impl SimpleAsyncComponent for EnvironmentPage { type Output = EnhancementsAppMsg; view! { - gtk::Box { - set_orientation: gtk::Orientation::Vertical, + adw::NavigationPage { + #[wrap(Some)] + set_child = >k::Box { + set_orientation: gtk::Orientation::Vertical, - adw::HeaderBar { - #[wrap(Some)] - set_title_widget = &adw::WindowTitle { - set_title: &tr!("environment") + adw::HeaderBar { + #[wrap(Some)] + set_title_widget = &adw::WindowTitle { + set_title: &tr!("environment") + } }, - pack_start = >k::Button { - set_icon_name: "go-previous-symbolic", + adw::PreferencesPage { + set_title: &tr!("environment"), + set_icon_name: Some("document-properties-symbolic"), - connect_clicked[sender] => move |_| { - sender.output(EnhancementsAppMsg::OpenMainPage).unwrap(); - } - } - }, + add = &adw::PreferencesGroup { + set_title: &tr!("game-command"), + set_description: Some(&tr!("game-command-description")), - adw::PreferencesPage { - set_title: &tr!("environment"), - set_icon_name: Some("document-properties-symbolic"), + adw::EntryRow { + set_title: "%command%", + set_text: CONFIG.game.command.as_ref().unwrap_or(&String::new()).trim(), - add = &adw::PreferencesGroup { - set_title: &tr!("game-command"), - set_description: Some(&tr!("game-command-description")), + connect_changed => |entry| { + if let Ok(mut config) = Config::get() { + let command = entry.text().trim().to_string(); - adw::EntryRow { - set_title: "%command%", - set_text: CONFIG.game.command.as_ref().unwrap_or(&String::new()).trim(), + config.game.command = if command.is_empty() { + None + } else { + Some(command) + }; - connect_changed => |entry| { - if let Ok(mut config) = Config::get() { - let command = entry.text().trim().to_string(); - - config.game.command = if command.is_empty() { - None - } else { - Some(command) - }; - - Config::update(config); + Config::update(config); + } } } - } - }, + }, - add = &adw::PreferencesGroup { - set_title: &tr!("new-variable"), + add = &adw::PreferencesGroup { + set_title: &tr!("new-variable"), - #[wrap(Some)] - set_header_suffix = >k::Button { - add_css_class: "flat", + #[wrap(Some)] + set_header_suffix = >k::Button { + add_css_class: "flat", - set_valign: gtk::Align::Center, + set_valign: gtk::Align::Center, - adw::ButtonContent { - set_icon_name: "list-add-symbolic", - set_label: &tr!("add") + adw::ButtonContent { + set_icon_name: "list-add-symbolic", + set_label: &tr!("add") + }, + + connect_clicked => EnvironmentPageMsg::Add }, - connect_clicked => EnvironmentPageMsg::Add + #[local_ref] + name_entry -> adw::EntryRow { + set_title: &tr!("name") + }, + + #[local_ref] + value_entry -> adw::EntryRow { + set_title: &tr!("value") + } }, #[local_ref] - name_entry -> adw::EntryRow { - set_title: &tr!("name") - }, - - #[local_ref] - value_entry -> adw::EntryRow { - set_title: &tr!("value") - } - }, - - #[local_ref] - add = variables -> adw::PreferencesGroup {} + add = variables -> adw::PreferencesGroup {} + } } } } - async fn init( - _init: Self::Init, - root: Self::Root, - sender: AsyncComponentSender, - ) -> AsyncComponentParts { + async fn init(_init: Self::Init, root: Self::Root, sender: AsyncComponentSender) -> AsyncComponentParts { tracing::info!("Initializing environment settings"); let mut model = Self { diff --git a/src/ui/preferences/enhancements/game.rs b/src/ui/preferences/enhancements/game.rs index 94843cb..2aedc52 100644 --- a/src/ui/preferences/enhancements/game.rs +++ b/src/ui/preferences/enhancements/game.rs @@ -74,11 +74,7 @@ impl AsyncFactoryComponent for GameSession { } } - async fn init_model( - init: Self::Init, - _index: &DynamicIndex, - _sender: AsyncFactorySender, - ) -> Self { + async fn init_model(init: Self::Init, _index: &DynamicIndex, _sender: AsyncFactorySender) -> Self { init } } @@ -105,57 +101,48 @@ impl SimpleAsyncComponent for GamePage { type Output = EnhancementsAppMsg; view! { - gtk::Box { - set_orientation: gtk::Orientation::Vertical, + adw::NavigationPage { + #[wrap(Some)] + set_child = >k::Box { + set_orientation: gtk::Orientation::Vertical, - adw::HeaderBar { - #[wrap(Some)] - set_title_widget = &adw::WindowTitle { - set_title: &tr!("game") + adw::HeaderBar { + #[wrap(Some)] + set_title_widget = &adw::WindowTitle { + set_title: &tr!("game") + } }, - pack_start = >k::Button { - set_icon_name: "go-previous-symbolic", + adw::PreferencesPage { + set_title: &tr!("game"), + set_icon_name: Some("applications-games-symbolic"), - connect_clicked[sender] => move |_| { - sender.output(EnhancementsAppMsg::OpenMainPage).unwrap(); - } - } - }, + add = &adw::PreferencesGroup { + set_title: &tr!("game-sessions"), - adw::PreferencesPage { - set_title: &tr!("game"), - set_icon_name: Some("applications-games-symbolic"), + #[local_ref] + session_name_entry -> adw::EntryRow { + set_title: &tr!("name"), - add = &adw::PreferencesGroup { - set_title: &tr!("game-sessions"), + add_suffix = >k::Button { + set_icon_name: "list-add-symbolic", + add_css_class: "flat", + + set_valign: gtk::Align::Center, + + connect_clicked => GamePageMsg::AddSession + } + } + }, #[local_ref] - session_name_entry -> adw::EntryRow { - set_title: &tr!("name"), - - add_suffix = >k::Button { - set_icon_name: "list-add-symbolic", - add_css_class: "flat", - - set_valign: gtk::Align::Center, - - connect_clicked => GamePageMsg::AddSession - } - } - }, - - #[local_ref] - add = sessions -> adw::PreferencesGroup {}, + add = sessions -> adw::PreferencesGroup {}, + } } } } - async fn init( - _init: Self::Init, - root: Self::Root, - sender: AsyncComponentSender, - ) -> AsyncComponentParts { + async fn init(_init: Self::Init, root: Self::Root, sender: AsyncComponentSender) -> AsyncComponentParts { tracing::info!("Initializing game settings"); let mut model = Self { diff --git a/src/ui/preferences/enhancements/mod.rs b/src/ui/preferences/enhancements/mod.rs index 07de737..6f55b8d 100644 --- a/src/ui/preferences/enhancements/mod.rs +++ b/src/ui/preferences/enhancements/mod.rs @@ -17,6 +17,8 @@ use anime_launcher_sdk::anime_game_core::installer::downloader::Downloader; use anime_launcher_sdk::discord_rpc::DiscordRpc; use anime_launcher_sdk::is_available; +use enum_ordinalize::Ordinalize; + pub mod game; pub mod sandbox; pub mod environment; @@ -232,12 +234,12 @@ impl SimpleAsyncComponent for EnhancementsApp { add_suffix = >k::Switch { set_valign: gtk::Align::Center, - set_state: CONFIG.game.wine.borderless, + set_active: CONFIG.game.wine.borderless, connect_state_notify => |switch| { if is_ready() { if let Ok(mut config) = Config::get() { - config.game.wine.borderless = switch.state(); + config.game.wine.borderless = switch.is_active(); Config::update(config); } @@ -277,12 +279,12 @@ impl SimpleAsyncComponent for EnhancementsApp { add_suffix = >k::Switch { set_valign: gtk::Align::Center, - set_state: CONFIG.game.wine.virtual_desktop.enabled, + set_active: CONFIG.game.wine.virtual_desktop.enabled, connect_state_notify => |switch| { if is_ready() { if let Ok(mut config) = Config::get() { - config.game.wine.virtual_desktop.enabled = switch.state(); + config.game.wine.virtual_desktop.enabled = switch.is_active(); Config::update(config); } @@ -298,12 +300,12 @@ impl SimpleAsyncComponent for EnhancementsApp { add_suffix = >k::Switch { set_valign: gtk::Align::Center, - set_state: CONFIG.game.wine.drives.drive_c, + set_active: CONFIG.game.wine.drives.drive_c, connect_state_notify => |switch| { if is_ready() { if let Ok(mut config) = Config::get() { - config.game.wine.drives.drive_c = switch.state(); + config.game.wine.drives.drive_c = switch.is_active(); Config::update(config); } @@ -343,12 +345,12 @@ impl SimpleAsyncComponent for EnhancementsApp { add_suffix = >k::Switch { set_valign: gtk::Align::Center, - set_state: CONFIG.game.wine.drives.game_folder.is_some(), + set_active: CONFIG.game.wine.drives.game_folder.is_some(), connect_state_notify[map_game_folder_row] => move |switch| { if is_ready() { if let Ok(mut config) = Config::get() { - if switch.state() { + if switch.is_active() { config.game.wine.drives.game_folder = Some(AllowedDrives::list()[map_game_folder_row.selected() as usize]); } else { config.game.wine.drives.game_folder = None; @@ -415,12 +417,12 @@ impl SimpleAsyncComponent for EnhancementsApp { add_suffix = >k::Switch { set_valign: gtk::Align::Center, - set_state: CONFIG.game.enhancements.fsr.enabled, + set_active: CONFIG.game.enhancements.fsr.enabled, connect_state_notify => |switch| { if is_ready() { if let Ok(mut config) = Config::get() { - config.game.enhancements.fsr.enabled = switch.state(); + config.game.enhancements.fsr.enabled = switch.is_active(); Config::update(config); } @@ -438,12 +440,12 @@ impl SimpleAsyncComponent for EnhancementsApp { add_suffix = >k::Switch { set_valign: gtk::Align::Center, - set_state: CONFIG.game.enhancements.gamemode, + set_active: CONFIG.game.enhancements.gamemode, connect_state_notify => |switch| { if is_ready() { if let Ok(mut config) = Config::get() { - config.game.enhancements.gamemode = switch.state(); + config.game.enhancements.gamemode = switch.is_active(); Config::update(config); } @@ -470,12 +472,12 @@ impl SimpleAsyncComponent for EnhancementsApp { add_suffix = >k::Switch { set_valign: gtk::Align::Center, - set_state: CONFIG.game.enhancements.gamescope.enabled, + set_active: CONFIG.game.enhancements.gamescope.enabled, connect_state_notify => |switch| { if is_ready() { if let Ok(mut config) = Config::get() { - config.game.enhancements.gamescope.enabled = switch.state(); + config.game.enhancements.gamescope.enabled = switch.is_active(); Config::update(config); } @@ -494,12 +496,12 @@ impl SimpleAsyncComponent for EnhancementsApp { add_suffix = >k::Switch { set_valign: gtk::Align::Center, - set_state: CONFIG.launcher.discord_rpc.enabled, + set_active: CONFIG.launcher.discord_rpc.enabled, connect_state_notify => |switch| { if is_ready() { if let Ok(mut config) = Config::get() { - config.launcher.discord_rpc.enabled = switch.state(); + config.launcher.discord_rpc.enabled = switch.is_active(); Config::update(config); } @@ -546,13 +548,13 @@ impl SimpleAsyncComponent for EnhancementsApp { }, #[local_ref] - game_page -> gtk::Box {}, + game_page -> adw::NavigationPage, #[local_ref] - sandbox_page -> gtk::Box {}, + sandbox_page -> adw::NavigationPage, #[local_ref] - environment_page -> gtk::Box {} + environment_page -> adw::NavigationPage, } async fn init( @@ -688,28 +690,28 @@ impl SimpleAsyncComponent for EnhancementsApp { PREFERENCES_WINDOW.as_ref() .unwrap_unchecked() .widget() - .close_subpage(); + .pop_subpage(); } EnhancementsAppMsg::OpenGameSettingsPage => unsafe { PREFERENCES_WINDOW.as_ref() .unwrap_unchecked() .widget() - .present_subpage(self.game_page.widget()); + .push_subpage(self.game_page.widget()); } EnhancementsAppMsg::OpenSandboxSettingsPage => unsafe { PREFERENCES_WINDOW.as_ref() .unwrap_unchecked() .widget() - .present_subpage(self.sandbox_page.widget()); + .push_subpage(self.sandbox_page.widget()); } EnhancementsAppMsg::OpenEnvironmentSettingsPage => unsafe { PREFERENCES_WINDOW.as_ref() .unwrap_unchecked() .widget() - .present_subpage(self.environment_page.widget()); + .push_subpage(self.environment_page.widget()); } EnhancementsAppMsg::Toast { title, description } => { diff --git a/src/ui/preferences/enhancements/sandbox.rs b/src/ui/preferences/enhancements/sandbox.rs index 8aa3b7f..9c84b92 100644 --- a/src/ui/preferences/enhancements/sandbox.rs +++ b/src/ui/preferences/enhancements/sandbox.rs @@ -98,235 +98,226 @@ impl SimpleAsyncComponent for SandboxPage { type Output = EnhancementsAppMsg; view! { - gtk::Box { - set_orientation: gtk::Orientation::Vertical, - - adw::HeaderBar { - #[wrap(Some)] - set_title_widget = &adw::WindowTitle { - set_title: &tr!("sandbox") - }, - - pack_start = >k::Button { - set_icon_name: "go-previous-symbolic", - - connect_clicked[sender] => move |_| { - sender.output(EnhancementsAppMsg::OpenMainPage).unwrap(); - } - } - }, - - adw::PreferencesPage { - set_title: &tr!("sandbox"), - set_icon_name: Some("folder-symbolic"), - - set_sensitive: is_available("bwrap"), - - add = &adw::PreferencesGroup { - set_title: &tr!("sandbox"), - set_description: Some(&tr!("sandbox-description")), - - adw::ActionRow { - set_title: &tr!("enable-sandboxing"), - set_subtitle: &tr!("enable-sandboxing-description"), - - add_suffix = >k::Switch { - set_valign: gtk::Align::Center, - - set_state: CONFIG.sandbox.enabled, - - connect_state_notify => |switch| { - if is_ready() { - if let Ok(mut config) = Config::get() { - config.sandbox.enabled = switch.state(); - - Config::update(config); - } - } - } - } - }, - - adw::ActionRow { - set_title: &tr!("hide-home-directory"), - set_subtitle: &tr!("hide-home-directory-description"), - - add_suffix = >k::Switch { - set_valign: gtk::Align::Center, - - set_state: CONFIG.sandbox.isolate_home, - - connect_state_notify => |switch| { - if is_ready() { - if let Ok(mut config) = Config::get() { - config.sandbox.isolate_home = switch.state(); - - Config::update(config); - } - } - } - } - }, - - adw::EntryRow { - set_title: &tr!("hostname"), - set_text: CONFIG.sandbox.hostname.as_ref().unwrap_or(&String::new()).trim(), - - connect_changed => |entry| { - if let Ok(mut config) = Config::get() { - let command = entry.text().trim().to_string(); - - config.sandbox.hostname = if command.is_empty() { - None - } else { - Some(command) - }; - - Config::update(config); - } - } - }, - - adw::EntryRow { - set_title: &tr!("additional-arguments"), - set_text: CONFIG.sandbox.args.as_ref().unwrap_or(&String::new()).trim(), - - connect_changed => |entry| { - if let Ok(mut config) = Config::get() { - let command = entry.text().trim().to_string(); - - config.sandbox.args = if command.is_empty() { - None - } else { - Some(command) - }; - - Config::update(config); - } - }, - - add_suffix = >k::Button { - set_icon_name: "dialog-information-symbolic", - add_css_class: "flat", - - set_valign: gtk::Align::Center, - - connect_clicked[sender] => move |_| { - if let Err(err) = open::that("https://man.archlinux.org/man/bwrap.1") { - sender.output(EnhancementsAppMsg::Toast { - title: tr!("documentation-url-open-failed"), - description: Some(err.to_string()) - }).unwrap(); - } - } - } - } - }, - - add = &adw::PreferencesGroup { - set_title: &tr!("private-directories"), - set_description: Some(&tr!("private-directories-description")), - - #[local_ref] - private_path_entry -> adw::EntryRow { - set_title: &tr!("path"), - - add_suffix = >k::Button { - set_icon_name: "list-add-symbolic", - add_css_class: "flat", - - set_valign: gtk::Align::Center, - - connect_clicked => SandboxPageMsg::AddPrivate - } - } - }, - - #[local_ref] - add = private_paths -> adw::PreferencesGroup {}, - - add = &adw::PreferencesGroup { - set_title: &tr!("shared-directories"), - set_description: Some(&tr!("shared-directories-description")), + adw::NavigationPage { + #[wrap(Some)] + set_child = >k::Box { + set_orientation: gtk::Orientation::Vertical, + adw::HeaderBar { #[wrap(Some)] - set_header_suffix = >k::Button { - add_css_class: "flat", + set_title_widget = &adw::WindowTitle { + set_title: &tr!("sandbox") + } + }, - set_valign: gtk::Align::Center, + adw::PreferencesPage { + set_title: &tr!("sandbox"), + set_icon_name: Some("folder-symbolic"), - adw::ButtonContent { - set_icon_name: "list-add-symbolic", - set_label: &tr!("add") + set_sensitive: is_available("bwrap"), + + add = &adw::PreferencesGroup { + set_title: &tr!("sandbox"), + set_description: Some(&tr!("sandbox-description")), + + adw::ActionRow { + set_title: &tr!("enable-sandboxing"), + set_subtitle: &tr!("enable-sandboxing-description"), + + add_suffix = >k::Switch { + set_valign: gtk::Align::Center, + + set_active: CONFIG.sandbox.enabled, + + connect_state_notify => |switch| { + if is_ready() { + if let Ok(mut config) = Config::get() { + config.sandbox.enabled = switch.is_active(); + + Config::update(config); + } + } + } + } }, - connect_clicked => SandboxPageMsg::AddShared + adw::ActionRow { + set_title: &tr!("hide-home-directory"), + set_subtitle: &tr!("hide-home-directory-description"), + + add_suffix = >k::Switch { + set_valign: gtk::Align::Center, + + set_active: CONFIG.sandbox.isolate_home, + + connect_state_notify => |switch| { + if is_ready() { + if let Ok(mut config) = Config::get() { + config.sandbox.isolate_home = switch.is_active(); + + Config::update(config); + } + } + } + } + }, + + adw::EntryRow { + set_title: &tr!("hostname"), + set_text: CONFIG.sandbox.hostname.as_ref().unwrap_or(&String::new()).trim(), + + connect_changed => |entry| { + if let Ok(mut config) = Config::get() { + let command = entry.text().trim().to_string(); + + config.sandbox.hostname = if command.is_empty() { + None + } else { + Some(command) + }; + + Config::update(config); + } + } + }, + + adw::EntryRow { + set_title: &tr!("additional-arguments"), + set_text: CONFIG.sandbox.args.as_ref().unwrap_or(&String::new()).trim(), + + connect_changed => |entry| { + if let Ok(mut config) = Config::get() { + let command = entry.text().trim().to_string(); + + config.sandbox.args = if command.is_empty() { + None + } else { + Some(command) + }; + + Config::update(config); + } + }, + + add_suffix = >k::Button { + set_icon_name: "dialog-information-symbolic", + add_css_class: "flat", + + set_valign: gtk::Align::Center, + + connect_clicked[sender] => move |_| { + if let Err(err) = open::that("https://man.archlinux.org/man/bwrap.1") { + sender.output(EnhancementsAppMsg::Toast { + title: tr!("documentation-url-open-failed"), + description: Some(err.to_string()) + }).unwrap(); + } + } + } + } }, - #[local_ref] - shared_path_from_entry -> adw::EntryRow { - set_title: &tr!("original-path") - }, - - #[local_ref] - shared_path_to_entry -> adw::EntryRow { - set_title: &tr!("new-path") - }, - - adw::ActionRow { - set_title: &tr!("read-only"), - set_subtitle: &tr!("read-only-description"), + add = &adw::PreferencesGroup { + set_title: &tr!("private-directories"), + set_description: Some(&tr!("private-directories-description")), #[local_ref] - add_suffix = read_only_switch -> gtk::Switch { - set_valign: gtk::Align::Center + private_path_entry -> adw::EntryRow { + set_title: &tr!("path"), + + add_suffix = >k::Button { + set_icon_name: "list-add-symbolic", + add_css_class: "flat", + + set_valign: gtk::Align::Center, + + connect_clicked => SandboxPageMsg::AddPrivate + } } - } - }, + }, - #[local_ref] - add = shared_paths -> adw::PreferencesGroup {}, + #[local_ref] + add = private_paths -> adw::PreferencesGroup {}, - add = &adw::PreferencesGroup { - set_title: &tr!("symlinks"), - set_description: Some(&tr!("symlinks-description")), + add = &adw::PreferencesGroup { + set_title: &tr!("shared-directories"), + set_description: Some(&tr!("shared-directories-description")), - #[wrap(Some)] - set_header_suffix = >k::Button { - add_css_class: "flat", + #[wrap(Some)] + set_header_suffix = >k::Button { + add_css_class: "flat", - set_valign: gtk::Align::Center, + set_valign: gtk::Align::Center, - adw::ButtonContent { - set_icon_name: "list-add-symbolic", - set_label: &tr!("add") + adw::ButtonContent { + set_icon_name: "list-add-symbolic", + set_label: &tr!("add") + }, + + connect_clicked => SandboxPageMsg::AddShared }, - connect_clicked => SandboxPageMsg::AddSymlink + #[local_ref] + shared_path_from_entry -> adw::EntryRow { + set_title: &tr!("original-path") + }, + + #[local_ref] + shared_path_to_entry -> adw::EntryRow { + set_title: &tr!("new-path") + }, + + adw::ActionRow { + set_title: &tr!("read-only"), + set_subtitle: &tr!("read-only-description"), + + #[local_ref] + add_suffix = read_only_switch -> gtk::Switch { + set_valign: gtk::Align::Center + } + } }, #[local_ref] - symlink_path_from_entry -> adw::EntryRow { - set_title: &tr!("original-path") + add = shared_paths -> adw::PreferencesGroup {}, + + add = &adw::PreferencesGroup { + set_title: &tr!("symlinks"), + set_description: Some(&tr!("symlinks-description")), + + #[wrap(Some)] + set_header_suffix = >k::Button { + add_css_class: "flat", + + set_valign: gtk::Align::Center, + + adw::ButtonContent { + set_icon_name: "list-add-symbolic", + set_label: &tr!("add") + }, + + connect_clicked => SandboxPageMsg::AddSymlink + }, + + #[local_ref] + symlink_path_from_entry -> adw::EntryRow { + set_title: &tr!("original-path") + }, + + #[local_ref] + symlink_path_to_entry -> adw::EntryRow { + set_title: &tr!("new-path") + } }, #[local_ref] - symlink_path_to_entry -> adw::EntryRow { - set_title: &tr!("new-path") - } - }, - - #[local_ref] - add = symlink_paths -> adw::PreferencesGroup {} + add = symlink_paths -> adw::PreferencesGroup {} + } } } } - async fn init( - _init: Self::Init, - root: Self::Root, - sender: AsyncComponentSender, - ) -> AsyncComponentParts { + async fn init(_init: Self::Init, root: Self::Root, sender: AsyncComponentSender) -> AsyncComponentParts { tracing::info!("Initializing sandbox settings"); let mut model = Self { diff --git a/src/ui/preferences/gamescope.rs b/src/ui/preferences/gamescope.rs index 207ae06..adaf7dc 100644 --- a/src/ui/preferences/gamescope.rs +++ b/src/ui/preferences/gamescope.rs @@ -6,6 +6,8 @@ use anime_launcher_sdk::star_rail::config::Config; use anime_launcher_sdk::config::schema_blanks::prelude::*; +use enum_ordinalize::Ordinalize; + use crate::*; pub struct GamescopeApp; @@ -128,13 +130,13 @@ impl SimpleAsyncComponent for GamescopeApp { add_suffix = >k::Switch { set_valign: gtk::Align::Center, - set_state: CONFIG.game.enhancements.gamescope.integer_scaling, + set_active: CONFIG.game.enhancements.gamescope.integer_scaling, connect_state_notify => |switch| { if is_ready() { if let Ok(mut config) = Config::get() { - config.game.enhancements.gamescope.integer_scaling = switch.state(); - + config.game.enhancements.gamescope.integer_scaling = switch.is_active(); + Config::update(config); } } @@ -148,13 +150,13 @@ impl SimpleAsyncComponent for GamescopeApp { add_suffix = >k::Switch { set_valign: gtk::Align::Center, - set_state: CONFIG.game.enhancements.gamescope.fsr, + set_active: CONFIG.game.enhancements.gamescope.fsr, connect_state_notify => |switch| { if is_ready() { if let Ok(mut config) = Config::get() { - config.game.enhancements.gamescope.fsr = switch.state(); - + config.game.enhancements.gamescope.fsr = switch.is_active(); + Config::update(config); } } @@ -168,13 +170,13 @@ impl SimpleAsyncComponent for GamescopeApp { add_suffix = >k::Switch { set_valign: gtk::Align::Center, - set_state: CONFIG.game.enhancements.gamescope.nis, + set_active: CONFIG.game.enhancements.gamescope.nis, connect_state_notify => |switch| { if is_ready() { if let Ok(mut config) = Config::get() { - config.game.enhancements.gamescope.nis = switch.state(); - + config.game.enhancements.gamescope.nis = switch.is_active(); + Config::update(config); } } @@ -250,17 +252,33 @@ impl SimpleAsyncComponent for GamescopeApp { } } } + }, + + adw::ActionRow { + set_title: &tr!("force-grab-cursor"), + set_subtitle: &tr!("force-grab-cursor-description"), + + add_suffix = >k::Switch { + set_valign: gtk::Align::Center, + set_active: CONFIG.game.enhancements.gamescope.force_grab_cursor, + + connect_state_notify => |switch| { + if is_ready() { + if let Ok(mut config) = Config::get() { + config.game.enhancements.gamescope.force_grab_cursor = switch.is_active(); + + Config::update(config); + } + } + } + } } } } } } - async fn init( - _init: Self::Init, - root: Self::Root, - _sender: AsyncComponentSender, - ) -> AsyncComponentParts { + async fn init(_init: Self::Init, root: Self::Root, _sender: AsyncComponentSender) -> AsyncComponentParts { tracing::info!("Initializing gamescope settings"); let model = Self; diff --git a/src/ui/preferences/general/components.rs b/src/ui/preferences/general/components.rs index bf8dfff..7eb7c26 100644 --- a/src/ui/preferences/general/components.rs +++ b/src/ui/preferences/general/components.rs @@ -49,202 +49,193 @@ impl SimpleAsyncComponent for ComponentsPage { type Output = GeneralAppMsg; view! { - gtk::Box { - set_orientation: gtk::Orientation::Vertical, + adw::NavigationPage { + #[wrap(Some)] + set_child = >k::Box { + set_orientation: gtk::Orientation::Vertical, - adw::HeaderBar { - #[wrap(Some)] - set_title_widget = &adw::WindowTitle { - set_title: &tr!("components") + adw::HeaderBar { + #[wrap(Some)] + set_title_widget = &adw::WindowTitle { + set_title: &tr!("components") + } }, - pack_start = >k::Button { - set_icon_name: "go-previous-symbolic", + adw::PreferencesPage { + add = &adw::PreferencesGroup { + set_title: &tr!("wine-version"), - connect_clicked[sender] => move |_| { - sender.output(GeneralAppMsg::OpenMainPage).unwrap(); - } + adw::ComboRow { + set_title: &tr!("selected-version"), + + #[watch] + #[block_signal(wine_selected_notify)] + set_model: Some(>k::StringList::new(&model.downloaded_wine_versions.iter().map(|(version, _)| version.title.as_str()).collect::>())), + + #[watch] + #[block_signal(wine_selected_notify)] + set_selected: model.selected_wine_version, + + #[watch] + set_activatable: !model.selecting_wine_version, + + connect_selected_notify[sender] => move |row| { + if is_ready() { + sender.input(ComponentsPageMsg::SelectWine(row.selected() as usize)); + } + } @wine_selected_notify, + + add_suffix = >k::Spinner { + set_spinning: true, + + #[watch] + set_visible: model.selecting_wine_version + } + }, + + adw::ActionRow { + set_title: &tr!("recommended-only"), + set_subtitle: &tr!("wine-recommended-description"), + + add_suffix = >k::Switch { + set_valign: gtk::Align::Center, + + #[block_signal(wine_recommended_notify)] + set_active: true, + + connect_state_notify[sender] => move |switch| { + if is_ready() { + sender.input(ComponentsPageMsg::WineRecommendedOnly(switch.is_active())); + } + } @wine_recommended_notify + } + } + }, + + add = &adw::PreferencesGroup { + add = model.wine_components.widget(), + }, + + add = &adw::PreferencesGroup { + set_title: &tr!("wine-options"), + + adw::ActionRow { + set_title: &tr!("wine-use-shared-libraries"), + set_subtitle: &tr!("wine-use-shared-libraries-description"), + + add_suffix = >k::Switch { + set_valign: gtk::Align::Center, + + #[block_signal(wine_shared_libraries_notify)] + set_active: CONFIG.game.wine.shared_libraries.wine, + + connect_state_notify => |switch| { + if is_ready() { + if let Ok(mut config) = Config::get() { + config.game.wine.shared_libraries.wine = switch.is_active(); + + Config::update(config); + } + } + } @wine_shared_libraries_notify + } + }, + + adw::ActionRow { + set_title: &tr!("gstreamer-use-shared-libraries"), + set_subtitle: &tr!("gstreamer-use-shared-libraries-description"), + + add_suffix = >k::Switch { + set_valign: gtk::Align::Center, + + #[block_signal(gstreamer_shared_libraries_notify)] + set_active: CONFIG.game.wine.shared_libraries.gstreamer, + + connect_state_notify => |switch| { + if is_ready() { + if let Ok(mut config) = Config::get() { + config.game.wine.shared_libraries.gstreamer = switch.is_active(); + + Config::update(config); + } + } + } @gstreamer_shared_libraries_notify + } + } + }, + + add = &adw::PreferencesGroup { + set_title: &tr!("dxvk-version"), + + #[watch] + set_description: Some(&if !model.allow_dxvk_selection { + tr!("dxvk-selection-disabled") + } else { + String::new() + }), + + #[watch] + set_sensitive: model.allow_dxvk_selection, + + adw::ComboRow { + set_title: &tr!("selected-version"), + + #[watch] + #[block_signal(dxvk_selected_notify)] + set_model: Some(>k::StringList::new(&model.downloaded_dxvk_versions.iter().map(|version| version.name.as_str()).collect::>())), + + #[watch] + #[block_signal(dxvk_selected_notify)] + set_selected: model.selected_dxvk_version, + + #[watch] + set_activatable: !model.selecting_dxvk_version, + + connect_selected_notify[sender] => move |row| { + if is_ready() { + sender.input(ComponentsPageMsg::SelectDxvk(row.selected() as usize)); + } + } @dxvk_selected_notify, + + add_suffix = >k::Spinner { + set_spinning: true, + + #[watch] + set_visible: model.selecting_dxvk_version + } + }, + + adw::ActionRow { + set_title: &tr!("recommended-only"), + set_subtitle: &tr!("dxvk-recommended-description"), + + add_suffix = >k::Switch { + set_valign: gtk::Align::Center, + + #[block_signal(dxvk_recommended_notify)] + set_active: true, + + connect_state_notify[sender] => move |switch| { + if is_ready() { + sender.input(ComponentsPageMsg::DxvkRecommendedOnly(switch.is_active())); + } + } @dxvk_recommended_notify + } + } + }, + + add = &adw::PreferencesGroup { + #[watch] + set_sensitive: model.allow_dxvk_selection, + + add = model.dxvk_components.widget(), + }, } - }, - - adw::PreferencesPage { - add = &adw::PreferencesGroup { - set_title: &tr!("wine-version"), - - adw::ComboRow { - set_title: &tr!("selected-version"), - - #[watch] - #[block_signal(wine_selected_notify)] - set_model: Some(>k::StringList::new(&model.downloaded_wine_versions.iter().map(|(version, _)| version.title.as_str()).collect::>())), - - #[watch] - #[block_signal(wine_selected_notify)] - set_selected: model.selected_wine_version, - - #[watch] - set_activatable: !model.selecting_wine_version, - - connect_selected_notify[sender] => move |row| { - if is_ready() { - sender.input(ComponentsPageMsg::SelectWine(row.selected() as usize)); - } - } @wine_selected_notify, - - add_suffix = >k::Spinner { - set_spinning: true, - - #[watch] - set_visible: model.selecting_wine_version - } - }, - - adw::ActionRow { - set_title: &tr!("recommended-only"), - set_subtitle: &tr!("wine-recommended-description"), - - add_suffix = >k::Switch { - set_valign: gtk::Align::Center, - - #[block_signal(wine_recommended_notify)] - set_state: true, - - connect_state_notify[sender] => move |switch| { - if is_ready() { - sender.input(ComponentsPageMsg::WineRecommendedOnly(switch.state())); - } - } @wine_recommended_notify - } - } - }, - - add = &adw::PreferencesGroup { - add = model.wine_components.widget(), - }, - - add = &adw::PreferencesGroup { - set_title: &tr!("wine-options"), - - adw::ActionRow { - set_title: &tr!("wine-use-shared-libraries"), - set_subtitle: &tr!("wine-use-shared-libraries-description"), - - add_suffix = >k::Switch { - set_valign: gtk::Align::Center, - - #[block_signal(wine_shared_libraries_notify)] - set_state: CONFIG.game.wine.shared_libraries.wine, - - connect_state_notify => |switch| { - if is_ready() { - if let Ok(mut config) = Config::get() { - config.game.wine.shared_libraries.wine = switch.state(); - - Config::update(config); - } - } - } @wine_shared_libraries_notify - } - }, - - adw::ActionRow { - set_title: &tr!("gstreamer-use-shared-libraries"), - set_subtitle: &tr!("gstreamer-use-shared-libraries-description"), - - add_suffix = >k::Switch { - set_valign: gtk::Align::Center, - - #[block_signal(gstreamer_shared_libraries_notify)] - set_state: CONFIG.game.wine.shared_libraries.gstreamer, - - connect_state_notify => |switch| { - if is_ready() { - if let Ok(mut config) = Config::get() { - config.game.wine.shared_libraries.gstreamer = switch.state(); - - Config::update(config); - } - } - } @gstreamer_shared_libraries_notify - } - } - }, - - add = &adw::PreferencesGroup { - set_title: &tr!("dxvk-version"), - - #[watch] - set_description: Some(&if !model.allow_dxvk_selection { - tr!("dxvk-selection-disabled") - } else { - String::new() - }), - - #[watch] - set_sensitive: model.allow_dxvk_selection, - - adw::ComboRow { - set_title: &tr!("selected-version"), - - #[watch] - #[block_signal(dxvk_selected_notify)] - set_model: Some(>k::StringList::new(&model.downloaded_dxvk_versions.iter().map(|version| version.name.as_str()).collect::>())), - - #[watch] - #[block_signal(dxvk_selected_notify)] - set_selected: model.selected_dxvk_version, - - #[watch] - set_activatable: !model.selecting_dxvk_version, - - connect_selected_notify[sender] => move |row| { - if is_ready() { - sender.input(ComponentsPageMsg::SelectDxvk(row.selected() as usize)); - } - } @dxvk_selected_notify, - - add_suffix = >k::Spinner { - set_spinning: true, - - #[watch] - set_visible: model.selecting_dxvk_version - } - }, - - adw::ActionRow { - set_title: &tr!("recommended-only"), - set_subtitle: &tr!("dxvk-recommended-description"), - - add_suffix = >k::Switch { - set_valign: gtk::Align::Center, - - #[block_signal(dxvk_recommended_notify)] - set_state: true, - - connect_state_notify[sender] => move |switch| { - if is_ready() { - sender.input(ComponentsPageMsg::DxvkRecommendedOnly(switch.state())); - } - } @dxvk_recommended_notify - } - } - }, - - add = &adw::PreferencesGroup { - #[watch] - set_sensitive: model.allow_dxvk_selection, - - add = model.dxvk_components.widget(), - }, } } } - async fn init( - _init: Self::Init, - root: Self::Root, - sender: AsyncComponentSender, - ) -> AsyncComponentParts { + async fn init(_init: Self::Init, root: Self::Root, sender: AsyncComponentSender) -> AsyncComponentParts { tracing::info!("Initializing general settings -> components page"); let model = Self { diff --git a/src/ui/preferences/general/mod.rs b/src/ui/preferences/general/mod.rs index 1b42876..e0cecc7 100644 --- a/src/ui/preferences/general/mod.rs +++ b/src/ui/preferences/general/mod.rs @@ -238,7 +238,7 @@ impl SimpleAsyncComponent for GeneralApp { connect_state_notify => |switch| { #[allow(unused_must_use)] - if switch.state() { + if switch.is_active() { std::fs::remove_file(KEEP_BACKGROUND_FILE.as_path()); } else { std::fs::write(KEEP_BACKGROUND_FILE.as_path(), ""); @@ -542,7 +542,7 @@ impl SimpleAsyncComponent for GeneralApp { }, #[local_ref] - components_page -> gtk::Box {} + components_page -> adw::NavigationPage, } async fn init( @@ -684,14 +684,14 @@ impl SimpleAsyncComponent for GeneralApp { PREFERENCES_WINDOW.as_ref() .unwrap_unchecked() .widget() - .close_subpage(); + .pop_subpage(); } GeneralAppMsg::OpenComponentsPage => unsafe { PREFERENCES_WINDOW.as_ref() .unwrap_unchecked() .widget() - .present_subpage(self.components_page.widget()); + .push_subpage(self.components_page.widget()); } #[allow(unused_must_use)] diff --git a/src/ui/preferences/main.rs b/src/ui/preferences/main.rs index 2ea0335..0670d5b 100644 --- a/src/ui/preferences/main.rs +++ b/src/ui/preferences/main.rs @@ -74,11 +74,7 @@ impl SimpleAsyncComponent for PreferencesApp { } } - async fn init( - parent: Self::Init, - root: Self::Root, - sender: AsyncComponentSender, - ) -> AsyncComponentParts { + async fn init(parent: Self::Init, root: Self::Root, sender: AsyncComponentSender) -> AsyncComponentParts { tracing::info!("Initializing preferences window"); let model = Self {