Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 93459a22b5 |
-13
@@ -1,13 +0,0 @@
|
|||||||
# Generated by nix
|
|
||||||
.direnv/
|
|
||||||
result
|
|
||||||
|
|
||||||
# Generated by Cargo
|
|
||||||
# will have compiled files and executables
|
|
||||||
debug/
|
|
||||||
target/
|
|
||||||
|
|
||||||
# These are backup files generated by rustfmt
|
|
||||||
**/*.rs.bk
|
|
||||||
|
|
||||||
.qmlls.ini
|
|
||||||
Generated
-570
@@ -1,570 +0,0 @@
|
|||||||
# This file is automatically @generated by Cargo.
|
|
||||||
# It is not intended for manual editing.
|
|
||||||
version = 4
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "anstyle"
|
|
||||||
version = "1.0.14"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000"
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "anyhow"
|
|
||||||
version = "1.0.102"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c"
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "cc"
|
|
||||||
version = "1.2.60"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "43c5703da9466b66a946814e1adf53ea2c90f10063b86290cc9eb67ce3478a20"
|
|
||||||
dependencies = [
|
|
||||||
"find-msvc-tools",
|
|
||||||
"jobserver",
|
|
||||||
"libc",
|
|
||||||
"shlex",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "cfg-if"
|
|
||||||
version = "1.0.4"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "clang-format"
|
|
||||||
version = "0.3.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "696283b40e1a39d208ee614b92e5f6521d16962edeb47c48372585ec92419943"
|
|
||||||
dependencies = [
|
|
||||||
"thiserror",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "clap"
|
|
||||||
version = "4.6.1"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "1ddb117e43bbf7dacf0a4190fef4d345b9bad68dfc649cb349e7d17d28428e51"
|
|
||||||
dependencies = [
|
|
||||||
"clap_builder",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "clap_builder"
|
|
||||||
version = "4.6.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "714a53001bf66416adb0e2ef5ac857140e7dc3a0c48fb28b2f10762fc4b5069f"
|
|
||||||
dependencies = [
|
|
||||||
"anstyle",
|
|
||||||
"clap_lex",
|
|
||||||
"strsim",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "clap_lex"
|
|
||||||
version = "1.1.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9"
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "codespan-reporting"
|
|
||||||
version = "0.11.1"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e"
|
|
||||||
dependencies = [
|
|
||||||
"termcolor",
|
|
||||||
"unicode-width 0.1.14",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "codespan-reporting"
|
|
||||||
version = "0.13.1"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "af491d569909a7e4dee0ad7db7f5341fef5c614d5b8ec8cf765732aba3cff681"
|
|
||||||
dependencies = [
|
|
||||||
"serde",
|
|
||||||
"termcolor",
|
|
||||||
"unicode-width 0.2.2",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "convert_case"
|
|
||||||
version = "0.6.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca"
|
|
||||||
dependencies = [
|
|
||||||
"unicode-segmentation",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "cxx"
|
|
||||||
version = "1.0.194"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "747d8437319e3a2f43d93b341c137927ca70c0f5dabeea7a005a73665e247c7e"
|
|
||||||
dependencies = [
|
|
||||||
"cc",
|
|
||||||
"cxx-build",
|
|
||||||
"cxxbridge-cmd",
|
|
||||||
"cxxbridge-flags",
|
|
||||||
"cxxbridge-macro",
|
|
||||||
"foldhash",
|
|
||||||
"link-cplusplus",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "cxx-build"
|
|
||||||
version = "1.0.194"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "b0f4697d190a142477b16aef7da8a99bfdc41e7e8b1687583c0d23a79c7afc1e"
|
|
||||||
dependencies = [
|
|
||||||
"cc",
|
|
||||||
"codespan-reporting 0.13.1",
|
|
||||||
"indexmap",
|
|
||||||
"proc-macro2",
|
|
||||||
"quote",
|
|
||||||
"scratch",
|
|
||||||
"syn",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "cxx-gen"
|
|
||||||
version = "0.7.194"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "035b6c61a944483e8a4b2ad4fb8b13830d63491bd004943716ad16d85dcc64bc"
|
|
||||||
dependencies = [
|
|
||||||
"codespan-reporting 0.13.1",
|
|
||||||
"indexmap",
|
|
||||||
"proc-macro2",
|
|
||||||
"quote",
|
|
||||||
"syn",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "cxx-qt"
|
|
||||||
version = "0.8.1"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "3fdf26e5ee4375a85799d0fe436662e5a8ef099bd0964b84bce8812c35c7daea"
|
|
||||||
dependencies = [
|
|
||||||
"cxx",
|
|
||||||
"cxx-qt-build",
|
|
||||||
"cxx-qt-macro",
|
|
||||||
"qt-build-utils",
|
|
||||||
"static_assertions",
|
|
||||||
"thiserror",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "cxx-qt-build"
|
|
||||||
version = "0.8.1"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "f9a88c7f8241bfe4dfd19d27397a5845f0f275735a34ee7fb219045da81945e3"
|
|
||||||
dependencies = [
|
|
||||||
"cc",
|
|
||||||
"codespan-reporting 0.11.1",
|
|
||||||
"cxx-gen",
|
|
||||||
"cxx-qt-gen",
|
|
||||||
"proc-macro2",
|
|
||||||
"qt-build-utils",
|
|
||||||
"quote",
|
|
||||||
"serde",
|
|
||||||
"serde_json",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "cxx-qt-gen"
|
|
||||||
version = "0.8.1"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "9b1917c90b10117890e3794f4a0dc764a24704de40711d688ae128b0704490b8"
|
|
||||||
dependencies = [
|
|
||||||
"clang-format",
|
|
||||||
"convert_case",
|
|
||||||
"cxx-gen",
|
|
||||||
"indoc",
|
|
||||||
"proc-macro2",
|
|
||||||
"quote",
|
|
||||||
"syn",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "cxx-qt-lib"
|
|
||||||
version = "0.8.1"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "d7b3de184cff59ad29d657021f933380e584d9b70265247f6a96098bef964211"
|
|
||||||
dependencies = [
|
|
||||||
"cxx",
|
|
||||||
"cxx-qt",
|
|
||||||
"cxx-qt-build",
|
|
||||||
"qt-build-utils",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "cxx-qt-macro"
|
|
||||||
version = "0.8.1"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "230b0d8b20d3d02a85885742be4fabc0382fead4e382dd8c9c9ff1827f221e8c"
|
|
||||||
dependencies = [
|
|
||||||
"cxx-qt-gen",
|
|
||||||
"proc-macro2",
|
|
||||||
"quote",
|
|
||||||
"syn",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "cxxbridge-cmd"
|
|
||||||
version = "1.0.194"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "d0956799fa8678d4c50eed028f2de1c0552ae183c76e976cf7ca8c4e36a7c328"
|
|
||||||
dependencies = [
|
|
||||||
"clap",
|
|
||||||
"codespan-reporting 0.13.1",
|
|
||||||
"indexmap",
|
|
||||||
"proc-macro2",
|
|
||||||
"quote",
|
|
||||||
"syn",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "cxxbridge-flags"
|
|
||||||
version = "1.0.194"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "23384a836ab4f0ad98ace7e3955ad2de39de42378ab487dc28d3990392cb283a"
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "cxxbridge-macro"
|
|
||||||
version = "1.0.194"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "e6acc6b5822b9526adfb4fc377b67128fdd60aac757cc4a741a6278603f763cf"
|
|
||||||
dependencies = [
|
|
||||||
"indexmap",
|
|
||||||
"proc-macro2",
|
|
||||||
"quote",
|
|
||||||
"syn",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "equivalent"
|
|
||||||
version = "1.0.2"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "find-msvc-tools"
|
|
||||||
version = "0.1.9"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582"
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "foldhash"
|
|
||||||
version = "0.2.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb"
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "getrandom"
|
|
||||||
version = "0.3.4"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd"
|
|
||||||
dependencies = [
|
|
||||||
"cfg-if",
|
|
||||||
"libc",
|
|
||||||
"r-efi",
|
|
||||||
"wasip2",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "hashbrown"
|
|
||||||
version = "0.17.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "4f467dd6dccf739c208452f8014c75c18bb8301b050ad1cfb27153803edb0f51"
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "indexmap"
|
|
||||||
version = "2.14.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9"
|
|
||||||
dependencies = [
|
|
||||||
"equivalent",
|
|
||||||
"hashbrown",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "indoc"
|
|
||||||
version = "2.0.7"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "79cf5c93f93228cf8efb3ba362535fb11199ac548a09ce117c9b1adc3030d706"
|
|
||||||
dependencies = [
|
|
||||||
"rustversion",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "itoa"
|
|
||||||
version = "1.0.18"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682"
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "jobserver"
|
|
||||||
version = "0.1.34"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33"
|
|
||||||
dependencies = [
|
|
||||||
"getrandom",
|
|
||||||
"libc",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "libc"
|
|
||||||
version = "0.2.185"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "52ff2c0fe9bc6cb6b14a0592c2ff4fa9ceb83eea9db979b0487cd054946a2b8f"
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "link-cplusplus"
|
|
||||||
version = "1.0.12"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "7f78c730aaa7d0b9336a299029ea49f9ee53b0ed06e9202e8cb7db9bae7b8c82"
|
|
||||||
dependencies = [
|
|
||||||
"cc",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "memchr"
|
|
||||||
version = "2.8.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79"
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "proc-macro2"
|
|
||||||
version = "1.0.106"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934"
|
|
||||||
dependencies = [
|
|
||||||
"unicode-ident",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "qt-build-utils"
|
|
||||||
version = "0.8.1"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "4d074750fd3baba12fdb47388d591ad9ed043e23864a79d129dcf3a1ef6fc8d9"
|
|
||||||
dependencies = [
|
|
||||||
"anyhow",
|
|
||||||
"cc",
|
|
||||||
"semver",
|
|
||||||
"serde",
|
|
||||||
"thiserror",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "quote"
|
|
||||||
version = "1.0.45"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924"
|
|
||||||
dependencies = [
|
|
||||||
"proc-macro2",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "r-efi"
|
|
||||||
version = "5.3.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f"
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "rshell"
|
|
||||||
version = "0.1.0"
|
|
||||||
dependencies = [
|
|
||||||
"cxx",
|
|
||||||
"cxx-qt",
|
|
||||||
"cxx-qt-build",
|
|
||||||
"cxx-qt-lib",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "rustversion"
|
|
||||||
version = "1.0.22"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d"
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "scratch"
|
|
||||||
version = "1.0.9"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "d68f2ec51b097e4c1a75b681a8bec621909b5e91f15bb7b840c4f2f7b01148b2"
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "semver"
|
|
||||||
version = "1.0.28"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd"
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "serde"
|
|
||||||
version = "1.0.228"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e"
|
|
||||||
dependencies = [
|
|
||||||
"serde_core",
|
|
||||||
"serde_derive",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "serde_core"
|
|
||||||
version = "1.0.228"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad"
|
|
||||||
dependencies = [
|
|
||||||
"serde_derive",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "serde_derive"
|
|
||||||
version = "1.0.228"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79"
|
|
||||||
dependencies = [
|
|
||||||
"proc-macro2",
|
|
||||||
"quote",
|
|
||||||
"syn",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "serde_json"
|
|
||||||
version = "1.0.149"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86"
|
|
||||||
dependencies = [
|
|
||||||
"itoa",
|
|
||||||
"memchr",
|
|
||||||
"serde",
|
|
||||||
"serde_core",
|
|
||||||
"zmij",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "shlex"
|
|
||||||
version = "1.3.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "static_assertions"
|
|
||||||
version = "1.1.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "strsim"
|
|
||||||
version = "0.11.1"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "syn"
|
|
||||||
version = "2.0.117"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99"
|
|
||||||
dependencies = [
|
|
||||||
"proc-macro2",
|
|
||||||
"quote",
|
|
||||||
"unicode-ident",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "termcolor"
|
|
||||||
version = "1.4.1"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755"
|
|
||||||
dependencies = [
|
|
||||||
"winapi-util",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "thiserror"
|
|
||||||
version = "1.0.69"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52"
|
|
||||||
dependencies = [
|
|
||||||
"thiserror-impl",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "thiserror-impl"
|
|
||||||
version = "1.0.69"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1"
|
|
||||||
dependencies = [
|
|
||||||
"proc-macro2",
|
|
||||||
"quote",
|
|
||||||
"syn",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "unicode-ident"
|
|
||||||
version = "1.0.24"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "unicode-segmentation"
|
|
||||||
version = "1.13.2"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "9629274872b2bfaf8d66f5f15725007f635594914870f65218920345aa11aa8c"
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "unicode-width"
|
|
||||||
version = "0.1.14"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af"
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "unicode-width"
|
|
||||||
version = "0.2.2"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254"
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "wasip2"
|
|
||||||
version = "1.0.2+wasi-0.2.9"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5"
|
|
||||||
dependencies = [
|
|
||||||
"wit-bindgen",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "winapi-util"
|
|
||||||
version = "0.1.11"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22"
|
|
||||||
dependencies = [
|
|
||||||
"windows-sys",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "windows-link"
|
|
||||||
version = "0.2.1"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "windows-sys"
|
|
||||||
version = "0.61.2"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc"
|
|
||||||
dependencies = [
|
|
||||||
"windows-link",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "wit-bindgen"
|
|
||||||
version = "0.51.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5"
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "zmij"
|
|
||||||
version = "1.0.21"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa"
|
|
||||||
-15
@@ -1,15 +0,0 @@
|
|||||||
[package]
|
|
||||||
name = "rshell"
|
|
||||||
version = "0.1.0"
|
|
||||||
edition = "2024"
|
|
||||||
|
|
||||||
[lib]
|
|
||||||
crate-type = ["cdylib"]
|
|
||||||
|
|
||||||
[dependencies]
|
|
||||||
cxx = "1.0"
|
|
||||||
cxx-qt = "0.8"
|
|
||||||
cxx-qt-lib = { version = "0.8", features = ["qt_qml"] }
|
|
||||||
|
|
||||||
[build-dependencies]
|
|
||||||
cxx-qt-build = { version = "0.8", features = ["link_qt_object_files"] }
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
use cxx_qt_build::{CxxQtBuilder, PluginType, QmlModule};
|
|
||||||
|
|
||||||
fn main() {
|
|
||||||
CxxQtBuilder::new_qml_module(
|
|
||||||
QmlModule::new("one.krantz.rshell").plugin_type(PluginType::Dynamic),
|
|
||||||
)
|
|
||||||
.files(["src/my_object.rs"])
|
|
||||||
.build();
|
|
||||||
|
|
||||||
// This is a fix for "Could not resolve 'qt_plugin_instance' function"
|
|
||||||
// It works by using black magic with some rocket science to get things to work
|
|
||||||
println!("cargo::rustc-link-arg-cdylib=-Wl,--version-script=qt-plugin.version");
|
|
||||||
}
|
|
||||||
Generated
-98
@@ -1,98 +0,0 @@
|
|||||||
{
|
|
||||||
"nodes": {
|
|
||||||
"crane": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1775839657,
|
|
||||||
"narHash": "sha256-SPm9ck7jh3Un9nwPuMGbRU04UroFmOHjLP56T10MOeM=",
|
|
||||||
"owner": "ipetkov",
|
|
||||||
"repo": "crane",
|
|
||||||
"rev": "7cf72d978629469c4bd4206b95c402514c1f6000",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "ipetkov",
|
|
||||||
"repo": "crane",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-parts": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs-lib": "nixpkgs-lib"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1775087534,
|
|
||||||
"narHash": "sha256-91qqW8lhL7TLwgQWijoGBbiD4t7/q75KTi8NxjVmSmA=",
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "flake-parts",
|
|
||||||
"rev": "3107b77cd68437b9a76194f0f7f9c55f2329ca5b",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "flake-parts",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1776169885,
|
|
||||||
"narHash": "sha256-l/iNYDZ4bGOAFQY2q8y5OAfBBtrDAaPuRQqWaFHVRXM=",
|
|
||||||
"owner": "nixos",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "4bd9165a9165d7b5e33ae57f3eecbcb28fb231c9",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nixos",
|
|
||||||
"ref": "nixos-unstable",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs-lib": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1774748309,
|
|
||||||
"narHash": "sha256-+U7gF3qxzwD5TZuANzZPeJTZRHS29OFQgkQ2kiTJBIQ=",
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "nixpkgs.lib",
|
|
||||||
"rev": "333c4e0545a6da976206c74db8773a1645b5870a",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "nixpkgs.lib",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"root": {
|
|
||||||
"inputs": {
|
|
||||||
"crane": "crane",
|
|
||||||
"flake-parts": "flake-parts",
|
|
||||||
"nixpkgs": "nixpkgs",
|
|
||||||
"treefmt-nix": "treefmt-nix"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"treefmt-nix": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1775636079,
|
|
||||||
"narHash": "sha256-pc20NRoMdiar8oPQceQT47UUZMBTiMdUuWrYu2obUP0=",
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "treefmt-nix",
|
|
||||||
"rev": "790751ff7fd3801feeaf96d7dc416a8d581265ba",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "treefmt-nix",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"root": "root",
|
|
||||||
"version": 7
|
|
||||||
}
|
|
||||||
@@ -1,291 +0,0 @@
|
|||||||
{
|
|
||||||
description = "A quickshell based graphical shell named rshell";
|
|
||||||
|
|
||||||
inputs = {
|
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
|
||||||
|
|
||||||
flake-parts.url = "github:hercules-ci/flake-parts";
|
|
||||||
|
|
||||||
treefmt-nix = {
|
|
||||||
url = "github:numtide/treefmt-nix";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
|
|
||||||
crane.url = "github:ipetkov/crane";
|
|
||||||
};
|
|
||||||
|
|
||||||
outputs = {
|
|
||||||
self,
|
|
||||||
flake-parts,
|
|
||||||
treefmt-nix,
|
|
||||||
crane,
|
|
||||||
...
|
|
||||||
} @ inputs:
|
|
||||||
flake-parts.lib.mkFlake {inherit inputs;} {
|
|
||||||
imports = [
|
|
||||||
treefmt-nix.flakeModule
|
|
||||||
];
|
|
||||||
|
|
||||||
systems = ["aarch64-linux" "x86_64-linux" "aarch64-darwin" "x86_64-darwin"];
|
|
||||||
|
|
||||||
perSystem = {
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
craneLib = crane.mkLib pkgs;
|
|
||||||
src = let
|
|
||||||
unfilteredRoot = ./.;
|
|
||||||
in
|
|
||||||
lib.fileset.toSource {
|
|
||||||
root = unfilteredRoot;
|
|
||||||
fileset = lib.fileset.unions [
|
|
||||||
# Default files from crane (Rust and cargo files)
|
|
||||||
(craneLib.fileset.commonCargoSources unfilteredRoot)
|
|
||||||
(lib.fileset.maybeMissing ./qt-plugin.version)
|
|
||||||
];
|
|
||||||
};
|
|
||||||
manifest = (lib.importTOML "${src}/Cargo.toml").package;
|
|
||||||
|
|
||||||
# pkgs.qt6.env already includes pkgs.qt6.qtbase
|
|
||||||
# And using `with` to prevent a lot of typing.
|
|
||||||
qtEnv = with pkgs.qt6;
|
|
||||||
env "qt-rshell-${qtbase.version}" [
|
|
||||||
qtdeclarative
|
|
||||||
qttools
|
|
||||||
];
|
|
||||||
|
|
||||||
# runtime dependencies
|
|
||||||
buildInputs = with pkgs; [
|
|
||||||
qtEnv
|
|
||||||
];
|
|
||||||
|
|
||||||
# build dependencies
|
|
||||||
nativeBuildInputs = with pkgs; [
|
|
||||||
# pkg-config
|
|
||||||
# rustPlatform.bindgenHook
|
|
||||||
];
|
|
||||||
|
|
||||||
# Build *just* the cargo dependencies, so we can reuse
|
|
||||||
# all of that work (e.g. via cachix) when running in CI
|
|
||||||
cargoArtifacts = craneLib.buildDepsOnly {
|
|
||||||
inherit src buildInputs nativeBuildInputs;
|
|
||||||
};
|
|
||||||
in rec {
|
|
||||||
# Dev Shell that lets you enter an environment with all the necessary utilites
|
|
||||||
# Available through 'nix develop'
|
|
||||||
# Also can be activated automatically if direnv is installed on the system with 'direnv allow'
|
|
||||||
devShells.default = craneLib.devShell {
|
|
||||||
inherit checks;
|
|
||||||
|
|
||||||
# extra tooling dependencies
|
|
||||||
packages = with pkgs; [
|
|
||||||
rust-analyzer
|
|
||||||
quickshell
|
|
||||||
];
|
|
||||||
|
|
||||||
shellHook =
|
|
||||||
/*
|
|
||||||
bash
|
|
||||||
*/
|
|
||||||
''
|
|
||||||
export QML2_IMPORT_PATH=$(git rev-parse --show-toplevel)/result/:$QML2_IMPORT_PATH
|
|
||||||
'';
|
|
||||||
|
|
||||||
inputsFrom = [packages.default];
|
|
||||||
};
|
|
||||||
|
|
||||||
# Formatter for nix files, available through 'nix fmt'
|
|
||||||
treefmt = {
|
|
||||||
programs.alejandra.enable = true;
|
|
||||||
programs.rustfmt = {
|
|
||||||
enable = true;
|
|
||||||
edition = manifest.edition;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# Your custom packages
|
|
||||||
# Accessible through 'nix build', 'nix shell', 'nix run', etc
|
|
||||||
packages = rec {
|
|
||||||
lib = craneLib.buildPackage {
|
|
||||||
inherit src buildInputs nativeBuildInputs cargoArtifacts;
|
|
||||||
};
|
|
||||||
|
|
||||||
qmlModule = pkgs.runCommand "rshell-qml-dir" {} ''
|
|
||||||
mkdir -p $out
|
|
||||||
|
|
||||||
cat << EOF > $out/qmldir
|
|
||||||
${''
|
|
||||||
module one.krantz.rshell
|
|
||||||
plugin rshell ${lib}/lib
|
|
||||||
''}
|
|
||||||
EOF
|
|
||||||
'';
|
|
||||||
|
|
||||||
default = qmlModule;
|
|
||||||
};
|
|
||||||
|
|
||||||
checks = {
|
|
||||||
clippy = craneLib.cargoClippy {
|
|
||||||
inherit src buildInputs nativeBuildInputs cargoArtifacts;
|
|
||||||
cargoClippyExtraArgs = "-- --deny warnings";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
flake = {
|
|
||||||
homeManagerModules.default = {
|
|
||||||
lib,
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
cfg = config.krantz.rshell;
|
|
||||||
|
|
||||||
colors = config.lib.stylix.colors;
|
|
||||||
mkColorOption = default: description:
|
|
||||||
lib.mkOption {
|
|
||||||
inherit default;
|
|
||||||
description = "The ${description} color.";
|
|
||||||
type = lib.types.str;
|
|
||||||
};
|
|
||||||
|
|
||||||
qmlDir = pkgs.runCommand "quickshell-config" {} ''
|
|
||||||
mkdir -p $out
|
|
||||||
|
|
||||||
# Copy your main files
|
|
||||||
cp -r ${lib.sources.sourceFilesBySuffices ./qml [".qml"]}/* $out/
|
|
||||||
|
|
||||||
# Copy the rust plugin
|
|
||||||
cp -Lr ${self.packages.${pkgs.stdenv.hostPlatform.system}.qmlModule} $out/one.krantz.rshell
|
|
||||||
|
|
||||||
# Copy the nix generate qml files
|
|
||||||
cp -Lr ${nixQmlDir} $out/nix
|
|
||||||
'';
|
|
||||||
|
|
||||||
nixQmlDir = pkgs.runCommand "nix-qml-dir" {} ''
|
|
||||||
mkdir -p $out/
|
|
||||||
|
|
||||||
cat << EOF > $out/CodeDirStat.qml
|
|
||||||
${
|
|
||||||
/*
|
|
||||||
qml
|
|
||||||
*/
|
|
||||||
''
|
|
||||||
pragma Singleton
|
|
||||||
|
|
||||||
import Quickshell
|
|
||||||
import Quickshell.Io
|
|
||||||
import QtQuick
|
|
||||||
|
|
||||||
Singleton {
|
|
||||||
id: root
|
|
||||||
property int files
|
|
||||||
property int commits
|
|
||||||
property int stashes
|
|
||||||
|
|
||||||
Process {
|
|
||||||
id: codedirstatproc
|
|
||||||
command: [${"\""
|
|
||||||
+ (with pkgs;
|
|
||||||
writeScript "quickshell-codedirstat"
|
|
||||||
/*
|
|
||||||
nu
|
|
||||||
*/
|
|
||||||
''
|
|
||||||
#!${nushell}/bin/nu --plugins [${nushellPlugins.gstat}/bin/nu_plugin_gstat]
|
|
||||||
|
|
||||||
ls ~/code/**/*/.git/..
|
|
||||||
| each {|r| gstat $r.name}
|
|
||||||
| each {|r| { files: (($r.wt_untracked + $r.wt_modified) > 0), commits: ($r.ahead > 0), stashes: ($r.stashes > 0) }}
|
|
||||||
| into int files commits stashes
|
|
||||||
| math sum
|
|
||||||
| $"($in.files):($in.commits):($in.stashes)"
|
|
||||||
'')
|
|
||||||
+ "\""}]
|
|
||||||
running: true
|
|
||||||
|
|
||||||
stdout: StdioCollector {
|
|
||||||
onStreamFinished: {
|
|
||||||
const res = this.text.split(":")
|
|
||||||
|
|
||||||
root.files = res[0]
|
|
||||||
root.commits = res[1]
|
|
||||||
root.stashes = res[2]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Timer {
|
|
||||||
interval: 30000
|
|
||||||
running: true
|
|
||||||
repeat: true
|
|
||||||
onTriggered: codedirstatproc.running = true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
''
|
|
||||||
}
|
|
||||||
EOF
|
|
||||||
|
|
||||||
cat << EOF > $out/Theme.qml
|
|
||||||
${
|
|
||||||
/*
|
|
||||||
qml
|
|
||||||
*/
|
|
||||||
''
|
|
||||||
pragma Singleton
|
|
||||||
|
|
||||||
import Quickshell
|
|
||||||
import QtQuick
|
|
||||||
|
|
||||||
Singleton {
|
|
||||||
${builtins.concatStringsSep "\n" (
|
|
||||||
lib.attrsets.mapAttrsToList (
|
|
||||||
name: color: "readonly property color ${name}: \"#${color}\""
|
|
||||||
)
|
|
||||||
cfg.colors
|
|
||||||
)}
|
|
||||||
}
|
|
||||||
''
|
|
||||||
}
|
|
||||||
EOF
|
|
||||||
'';
|
|
||||||
in {
|
|
||||||
options.krantz.rshell = {
|
|
||||||
enable = lib.mkEnableOption "rshell, quickshell based graphical shell";
|
|
||||||
|
|
||||||
colors = {
|
|
||||||
bg = mkColorOption colors.base00-hex "default background";
|
|
||||||
fg = mkColorOption colors.base07-hex "default content";
|
|
||||||
text = mkColorOption colors.base07-hex "default text";
|
|
||||||
accent = mkColorOption colors.base0D-hex "accent";
|
|
||||||
shaded = mkColorOption colors.base03-hex "darker icon or text";
|
|
||||||
|
|
||||||
containerBg = mkColorOption colors.base01-hex "container background";
|
|
||||||
|
|
||||||
divider = mkColorOption colors.base02-hex "divider";
|
|
||||||
inactive = mkColorOption colors.base03-hex "inactive element";
|
|
||||||
|
|
||||||
bad = mkColorOption colors.base08-hex "bad state / low amount of resource";
|
|
||||||
ok = mkColorOption colors.base0A-hex "ok state / medium amount of resource";
|
|
||||||
good = mkColorOption colors.base0B-hex "good state / high amount of resource";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
programs.quickshell = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
systemd.enable = true;
|
|
||||||
|
|
||||||
configs = {
|
|
||||||
"shell.qml" = "${qmlDir}/shell.qml";
|
|
||||||
"nix" = nixQmlDir;
|
|
||||||
"one.krantz.rshell" = self.packages.${pkgs.stdenv.hostPlatform.system}.qmlModule;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
nix/
|
|
||||||
@@ -1,234 +0,0 @@
|
|||||||
import "nix"
|
|
||||||
|
|
||||||
import Quickshell
|
|
||||||
import Quickshell.Wayland
|
|
||||||
|
|
||||||
import QtQuick
|
|
||||||
import QtQuick.Controls
|
|
||||||
import QtQuick.Layouts
|
|
||||||
|
|
||||||
// You'll need to create or import a fuzzy matching utility
|
|
||||||
// For desktop entries, you may need a custom C++ plugin or use
|
|
||||||
// QProcess to query applications
|
|
||||||
|
|
||||||
PanelWindow {
|
|
||||||
id: win
|
|
||||||
|
|
||||||
anchors {
|
|
||||||
top: true
|
|
||||||
bottom: true
|
|
||||||
left: true
|
|
||||||
right: true
|
|
||||||
}
|
|
||||||
|
|
||||||
exclusionMode: ExclusionMode.Ignore
|
|
||||||
|
|
||||||
focusable: true
|
|
||||||
|
|
||||||
color: "transparent"
|
|
||||||
|
|
||||||
// Main content container
|
|
||||||
Rectangle {
|
|
||||||
id: contentBox
|
|
||||||
anchors.top: parent.top
|
|
||||||
anchors.horizontalCenter: parent.horizontalCenter
|
|
||||||
anchors.topMargin: 100
|
|
||||||
|
|
||||||
width: 700
|
|
||||||
height: contentCol.implicitHeight + contentCol.anchors.topMargin + contentCol.anchors.bottomMargin
|
|
||||||
radius: 12
|
|
||||||
|
|
||||||
color: Theme.bg
|
|
||||||
palette {
|
|
||||||
text: Theme.fg
|
|
||||||
placeholderText: Theme.shaded
|
|
||||||
windowText: Theme.fg
|
|
||||||
}
|
|
||||||
|
|
||||||
// Close on escape and handle Alt+number shortcuts
|
|
||||||
Keys.onPressed: event => {
|
|
||||||
if (event.key === Qt.Key_Escape) {
|
|
||||||
win.visible = false;
|
|
||||||
event.accepted = true;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Handle Alt+1 through Alt+9
|
|
||||||
if (event.modifiers & Qt.AltModifier) {
|
|
||||||
var num = -1;
|
|
||||||
if (event.key >= Qt.Key_1 && event.key <= Qt.Key_9) {
|
|
||||||
num = event.key - Qt.Key_1; // 0-8
|
|
||||||
} else if (event.key === Qt.Key_0) {
|
|
||||||
num = 9; // Alt+0 for 10th item if needed
|
|
||||||
}
|
|
||||||
|
|
||||||
if (num >= 0 && num < appList.count) {
|
|
||||||
launch(appList.get(num));
|
|
||||||
event.accepted = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ColumnLayout {
|
|
||||||
id: contentCol
|
|
||||||
anchors.fill: parent
|
|
||||||
anchors.margins: 15
|
|
||||||
Layout.preferredHeight: 20
|
|
||||||
spacing: 10
|
|
||||||
|
|
||||||
// Search entry row
|
|
||||||
RowLayout {
|
|
||||||
id: searchEntry
|
|
||||||
Layout.fillWidth: true
|
|
||||||
|
|
||||||
spacing: 10
|
|
||||||
|
|
||||||
Text {
|
|
||||||
font.pixelSize: 32
|
|
||||||
text: ""
|
|
||||||
color: Theme.accent
|
|
||||||
}
|
|
||||||
|
|
||||||
TextField {
|
|
||||||
id: searchField
|
|
||||||
Layout.fillWidth: true
|
|
||||||
placeholderText: "Application"
|
|
||||||
|
|
||||||
font.pixelSize: 24
|
|
||||||
|
|
||||||
background: Rectangle {
|
|
||||||
color: "transparent"
|
|
||||||
}
|
|
||||||
|
|
||||||
onTextChanged: search(text)
|
|
||||||
|
|
||||||
onAccepted: {
|
|
||||||
if (appList.count > 0) {
|
|
||||||
console.log("launching:", appList.get(0).name);
|
|
||||||
launch(appList.get(0));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Component.onCompleted: forceActiveFocus()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Rectangle {
|
|
||||||
Layout.fillWidth: true
|
|
||||||
Layout.preferredHeight: 3
|
|
||||||
color: Theme.divider
|
|
||||||
visible: appList.count > 0
|
|
||||||
}
|
|
||||||
|
|
||||||
// Application list
|
|
||||||
ListView {
|
|
||||||
id: listView
|
|
||||||
visible: appList.count > 0
|
|
||||||
Layout.fillWidth: true
|
|
||||||
Layout.preferredHeight: Math.min(appList.count * 50, 450)
|
|
||||||
model: appList
|
|
||||||
spacing: 0
|
|
||||||
clip: true
|
|
||||||
|
|
||||||
delegate: Button {
|
|
||||||
id: entryButton
|
|
||||||
width: listView.width
|
|
||||||
height: 50
|
|
||||||
|
|
||||||
background: Rectangle {
|
|
||||||
color: entryButton.hovered ? Theme.accent : "transparent"
|
|
||||||
radius: 14
|
|
||||||
}
|
|
||||||
|
|
||||||
contentItem: RowLayout {
|
|
||||||
anchors.fill: parent
|
|
||||||
anchors.leftMargin: 12
|
|
||||||
anchors.rightMargin: 12
|
|
||||||
spacing: 10
|
|
||||||
|
|
||||||
Image {
|
|
||||||
source: model.icon ? "image://icon/" + model.icon : ""
|
|
||||||
Layout.preferredWidth: 32
|
|
||||||
Layout.preferredHeight: 32
|
|
||||||
}
|
|
||||||
|
|
||||||
Label {
|
|
||||||
text: model.name
|
|
||||||
font.pixelSize: 24
|
|
||||||
Layout.fillWidth: true
|
|
||||||
elide: Text.ElideRight
|
|
||||||
maximumLineCount: 1
|
|
||||||
wrapMode: Text.Wrap
|
|
||||||
}
|
|
||||||
|
|
||||||
Label {
|
|
||||||
text: "⌘" + (index + 1)
|
|
||||||
Layout.alignment: Qt.AlignRight
|
|
||||||
color: entryButton.hovered ? Theme.fg : Theme.accent
|
|
||||||
font.pointSize: 12
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
onClicked: launch(model)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Close when clicking outside content
|
|
||||||
MouseArea {
|
|
||||||
anchors.fill: parent
|
|
||||||
onPressed: mouse => {
|
|
||||||
var pnt = mapToItem(contentBox, mouse.x, mouse.y);
|
|
||||||
|
|
||||||
if (!contentBox.contains(Qt.point(pnt.x, pnt.y))) {
|
|
||||||
win.visible = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Let clicks pass through to content
|
|
||||||
propagateComposedEvents: true
|
|
||||||
}
|
|
||||||
|
|
||||||
// Data model for applications
|
|
||||||
ListModel {
|
|
||||||
id: appList
|
|
||||||
}
|
|
||||||
|
|
||||||
// Function to perform fuzzy search
|
|
||||||
function search(text) {
|
|
||||||
if (text === "") {
|
|
||||||
appList.clear();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// You'll need to implement fuzzy_query
|
|
||||||
// This could be via a C++ plugin or calling an external process
|
|
||||||
// For now, placeholder showing the pattern:
|
|
||||||
var results = DesktopEntries.applications.values;
|
|
||||||
appList.clear();
|
|
||||||
for (var i = 0; i < results.length; i++) {
|
|
||||||
appList.append(results[i]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Function to launch application
|
|
||||||
function launch(app) {
|
|
||||||
if (!app)
|
|
||||||
return;
|
|
||||||
win.visible = false;
|
|
||||||
|
|
||||||
app.execute();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Handle visibility changes
|
|
||||||
onVisibleChanged: {
|
|
||||||
if (visible) {
|
|
||||||
searchField.forceActiveFocus();
|
|
||||||
searchField.selectAll();
|
|
||||||
} else {
|
|
||||||
searchField.text = "";
|
|
||||||
appList.clear();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-349
@@ -1,349 +0,0 @@
|
|||||||
import "nix"
|
|
||||||
import "one.krantz.rshell"
|
|
||||||
|
|
||||||
import Quickshell
|
|
||||||
import Quickshell.Hyprland
|
|
||||||
import Quickshell.Services.UPower
|
|
||||||
|
|
||||||
import QtQuick
|
|
||||||
import QtQuick.Layouts
|
|
||||||
import QtQuick.Controls
|
|
||||||
import QtQuick.Shapes
|
|
||||||
|
|
||||||
Variants {
|
|
||||||
model: Quickshell.screens
|
|
||||||
|
|
||||||
PanelWindow {
|
|
||||||
id: panel
|
|
||||||
// the screen from the screens list will be injected into this
|
|
||||||
// property
|
|
||||||
required property var modelData
|
|
||||||
|
|
||||||
// we can then set the window's screen to the injected property
|
|
||||||
screen: modelData
|
|
||||||
|
|
||||||
anchors.top: true
|
|
||||||
anchors.left: true
|
|
||||||
anchors.right: true
|
|
||||||
|
|
||||||
implicitHeight: 36
|
|
||||||
|
|
||||||
margins.top: 7
|
|
||||||
margins.left: 7
|
|
||||||
margins.right: 7
|
|
||||||
|
|
||||||
color: "transparent"
|
|
||||||
|
|
||||||
Rectangle {
|
|
||||||
id: bar
|
|
||||||
anchors.fill: parent
|
|
||||||
radius: 7
|
|
||||||
color: Theme.bg
|
|
||||||
|
|
||||||
// Left section
|
|
||||||
Pane {
|
|
||||||
anchors.top: parent.top
|
|
||||||
anchors.bottom: parent.bottom
|
|
||||||
anchors.left: parent.left
|
|
||||||
topPadding: 0
|
|
||||||
bottomPadding: 0
|
|
||||||
leftPadding: 10
|
|
||||||
rightPadding: 10
|
|
||||||
|
|
||||||
background: Rectangle {
|
|
||||||
radius: bar.radius
|
|
||||||
color: Theme.containerBg
|
|
||||||
}
|
|
||||||
|
|
||||||
RowLayout {
|
|
||||||
anchors.fill: parent
|
|
||||||
|
|
||||||
spacing: 10
|
|
||||||
|
|
||||||
Text {
|
|
||||||
id: clock
|
|
||||||
|
|
||||||
Layout.fillHeight: true
|
|
||||||
verticalAlignment: Text.AlignVCenter
|
|
||||||
horizontalAlignment: Text.AlignHCenter
|
|
||||||
|
|
||||||
color: Theme.text
|
|
||||||
font.bold: true
|
|
||||||
|
|
||||||
text: Time.time
|
|
||||||
}
|
|
||||||
|
|
||||||
Rectangle {
|
|
||||||
Layout.fillHeight: true
|
|
||||||
width: 3
|
|
||||||
color: Theme.divider
|
|
||||||
}
|
|
||||||
|
|
||||||
Text {
|
|
||||||
id: codedirstat
|
|
||||||
|
|
||||||
Layout.fillHeight: true
|
|
||||||
verticalAlignment: Text.AlignVCenter
|
|
||||||
horizontalAlignment: Text.AlignHCenter
|
|
||||||
|
|
||||||
color: Theme.text
|
|
||||||
font.bold: true
|
|
||||||
|
|
||||||
text: `${CodeDirStat.files}<font color=\"${Theme.shaded}\"> </font>${CodeDirStat.commits}<font color=\"${Theme.shaded}\"> </font>${CodeDirStat.stashes}<font color=\"${Theme.shaded}\"></font>`
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Center section
|
|
||||||
RowLayout {
|
|
||||||
anchors.top: parent.top
|
|
||||||
anchors.bottom: parent.bottom
|
|
||||||
anchors.horizontalCenter: parent.horizontalCenter
|
|
||||||
|
|
||||||
anchors.leftMargin: 10
|
|
||||||
anchors.rightMargin: 10
|
|
||||||
spacing: 10
|
|
||||||
|
|
||||||
Repeater {
|
|
||||||
model: 6
|
|
||||||
|
|
||||||
Rectangle {
|
|
||||||
id: workspace
|
|
||||||
required property int index
|
|
||||||
readonly property HyprlandWorkspace ws: {
|
|
||||||
Hyprland.workspaces.values.find(ws => ws.id === index + 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
width: 16
|
|
||||||
height: width
|
|
||||||
radius: width * 0.5
|
|
||||||
|
|
||||||
border.width: 3
|
|
||||||
border.color: Theme.inactive
|
|
||||||
|
|
||||||
color: "transparent"
|
|
||||||
|
|
||||||
states: [
|
|
||||||
State {
|
|
||||||
name: "active-current"
|
|
||||||
when: (workspace.ws && workspace.ws.active && workspace.ws.monitor.name === panel.screen.name)
|
|
||||||
|
|
||||||
PropertyChanges {
|
|
||||||
target: workspace
|
|
||||||
color: workspace.border.color
|
|
||||||
border.color: Theme.accent
|
|
||||||
}
|
|
||||||
},
|
|
||||||
State {
|
|
||||||
name: "active-other"
|
|
||||||
when: (workspace.ws && workspace.ws.active)
|
|
||||||
|
|
||||||
PropertyChanges {
|
|
||||||
target: workspace
|
|
||||||
color: workspace.border.color
|
|
||||||
border.color: Theme.fg
|
|
||||||
}
|
|
||||||
},
|
|
||||||
State {
|
|
||||||
name: "current"
|
|
||||||
when: (workspace.ws && workspace.ws.monitor.name === panel.screen.name)
|
|
||||||
|
|
||||||
PropertyChanges {
|
|
||||||
target: workspace
|
|
||||||
border.color: Theme.accent
|
|
||||||
}
|
|
||||||
},
|
|
||||||
State {
|
|
||||||
name: "other"
|
|
||||||
when: (workspace.ws)
|
|
||||||
|
|
||||||
PropertyChanges {
|
|
||||||
target: workspace
|
|
||||||
border.color: Theme.fg
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
|
|
||||||
transitions: Transition {
|
|
||||||
ParallelAnimation {
|
|
||||||
ColorAnimation {
|
|
||||||
target: workspace
|
|
||||||
property: "color"
|
|
||||||
duration: 500
|
|
||||||
easing.type: Easing.InOutQuad
|
|
||||||
}
|
|
||||||
ColorAnimation {
|
|
||||||
target: workspace.border
|
|
||||||
property: "color"
|
|
||||||
duration: 500
|
|
||||||
easing.type: Easing.InOutQuad
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Right section
|
|
||||||
Pane {
|
|
||||||
anchors.top: parent.top
|
|
||||||
anchors.bottom: parent.bottom
|
|
||||||
anchors.right: parent.right
|
|
||||||
topPadding: 0
|
|
||||||
bottomPadding: 0
|
|
||||||
leftPadding: 10
|
|
||||||
rightPadding: 10
|
|
||||||
|
|
||||||
background: Rectangle {
|
|
||||||
radius: bar.radius
|
|
||||||
color: Theme.containerBg
|
|
||||||
}
|
|
||||||
|
|
||||||
RowLayout {
|
|
||||||
anchors.fill: parent
|
|
||||||
|
|
||||||
spacing: 10
|
|
||||||
|
|
||||||
Item {
|
|
||||||
id: batteryIcon
|
|
||||||
property UPowerDevice battery: UPower.displayDevice
|
|
||||||
visible: battery.isPresent
|
|
||||||
|
|
||||||
width: 60
|
|
||||||
height: 30
|
|
||||||
property real borderWidth: 3
|
|
||||||
scale: 2 / 3
|
|
||||||
|
|
||||||
// Properties
|
|
||||||
property color lowColor: Theme.bad
|
|
||||||
property color mediumColor: Theme.ok
|
|
||||||
property color highColor: Theme.good
|
|
||||||
property color borderColor: Theme.fg
|
|
||||||
|
|
||||||
// Calculate fill color based on level
|
|
||||||
property color fillColor: {
|
|
||||||
if (battery.percentage <= 0.15)
|
|
||||||
return lowColor;
|
|
||||||
if (battery.percentage <= 0.4)
|
|
||||||
return mediumColor;
|
|
||||||
return highColor;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Battery body with border
|
|
||||||
Rectangle {
|
|
||||||
id: batteryBody
|
|
||||||
anchors.fill: parent
|
|
||||||
color: "transparent"
|
|
||||||
border.color: batteryIcon.borderColor
|
|
||||||
border.width: batteryIcon.borderWidth
|
|
||||||
radius: 7
|
|
||||||
|
|
||||||
// Fill progress bar
|
|
||||||
Rectangle {
|
|
||||||
id: fillBar
|
|
||||||
anchors {
|
|
||||||
left: parent.left
|
|
||||||
top: parent.top
|
|
||||||
bottom: parent.bottom
|
|
||||||
margins: batteryIcon.borderWidth + 2
|
|
||||||
}
|
|
||||||
width: Math.max(0, (parent.width - 2 * batteryIcon.borderWidth) * batteryIcon.battery.percentage)
|
|
||||||
color: batteryIcon.fillColor
|
|
||||||
radius: 2
|
|
||||||
|
|
||||||
// Smooth animation for level changes
|
|
||||||
Behavior on width {
|
|
||||||
NumberAnimation {
|
|
||||||
duration: 1000
|
|
||||||
easing.type: Easing.OutCubic
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Color transition animation
|
|
||||||
Behavior on color {
|
|
||||||
ColorAnimation {
|
|
||||||
duration: 500
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Battery positive terminal (nub)
|
|
||||||
Rectangle {
|
|
||||||
id: batteryNub
|
|
||||||
anchors {
|
|
||||||
left: batteryBody.right
|
|
||||||
verticalCenter: batteryBody.verticalCenter
|
|
||||||
}
|
|
||||||
width: 6
|
|
||||||
height: 12
|
|
||||||
color: batteryIcon.borderColor
|
|
||||||
radius: 1
|
|
||||||
}
|
|
||||||
|
|
||||||
// Lightning bolt (visible when charging)
|
|
||||||
Shape {
|
|
||||||
id: lightningBolt
|
|
||||||
anchors.centerIn: batteryBody
|
|
||||||
width: 14
|
|
||||||
height: 20
|
|
||||||
scale: 0.8
|
|
||||||
visible: batteryIcon.battery.state === UPowerDeviceState.Charging || batteryIcon.battery.state === UPowerDeviceState.FullyCharged || batteryIcon.battery.state === UPowerDeviceState.PendingCharge
|
|
||||||
opacity: batteryIcon.battery.state === UPowerDeviceState.FullyCharged || batteryIcon.battery.state === UPowerDeviceState.PendingCharge ? 100 : 0
|
|
||||||
|
|
||||||
// Pulsing animation
|
|
||||||
SequentialAnimation on opacity {
|
|
||||||
running: batteryIcon.battery.state === UPowerDeviceState.Charging
|
|
||||||
loops: Animation.Infinite
|
|
||||||
NumberAnimation {
|
|
||||||
to: 1
|
|
||||||
duration: 400
|
|
||||||
}
|
|
||||||
NumberAnimation {
|
|
||||||
to: 0.4
|
|
||||||
duration: 400
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ShapePath {
|
|
||||||
strokeWidth: 1
|
|
||||||
fillColor: batteryIcon.borderColor
|
|
||||||
startX: 5
|
|
||||||
startY: 20
|
|
||||||
|
|
||||||
PathLine {
|
|
||||||
x: 14
|
|
||||||
y: 8
|
|
||||||
}
|
|
||||||
PathLine {
|
|
||||||
x: 7
|
|
||||||
y: 8
|
|
||||||
}
|
|
||||||
PathLine {
|
|
||||||
x: 11
|
|
||||||
y: 0
|
|
||||||
}
|
|
||||||
PathLine {
|
|
||||||
x: 7
|
|
||||||
y: 0
|
|
||||||
}
|
|
||||||
PathLine {
|
|
||||||
x: 0
|
|
||||||
y: 12
|
|
||||||
}
|
|
||||||
PathLine {
|
|
||||||
x: 7
|
|
||||||
y: 12
|
|
||||||
}
|
|
||||||
PathLine {
|
|
||||||
x: 5
|
|
||||||
y: 20
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
import "nix"
|
|
||||||
|
|
||||||
pragma Singleton
|
|
||||||
|
|
||||||
import Quickshell
|
|
||||||
import QtQuick
|
|
||||||
|
|
||||||
Singleton {
|
|
||||||
id: root
|
|
||||||
readonly property string time: {
|
|
||||||
Qt.formatDateTime(clock.date, "MM/dd/yy hh:mm:ss AP")
|
|
||||||
}
|
|
||||||
|
|
||||||
SystemClock {
|
|
||||||
id: clock
|
|
||||||
precision: SystemClock.Seconds
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
import Quickshell
|
|
||||||
|
|
||||||
ShellRoot {
|
|
||||||
settings.watchFiles: true
|
|
||||||
|
|
||||||
Bar {}
|
|
||||||
}
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
QT_PLUGIN_META {
|
|
||||||
global:
|
|
||||||
qt_plugin_instance;
|
|
||||||
};
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
pub mod my_object;
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
#[cxx_qt::bridge]
|
|
||||||
pub mod qobject {
|
|
||||||
unsafe extern "C++" {
|
|
||||||
include!("cxx-qt-lib/qstring.h");
|
|
||||||
type QString = cxx_qt_lib::QString;
|
|
||||||
}
|
|
||||||
|
|
||||||
extern "RustQt" {
|
|
||||||
#[qobject]
|
|
||||||
#[qml_element]
|
|
||||||
#[qproperty(i32, counter)]
|
|
||||||
type CounterLogic = super::CounterLogicRust;
|
|
||||||
|
|
||||||
#[qinvokable]
|
|
||||||
fn increment(self: Pin<&mut Self>);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
use core::pin::Pin;
|
|
||||||
|
|
||||||
#[derive(Default)]
|
|
||||||
pub struct CounterLogicRust {
|
|
||||||
counter: i32,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl qobject::CounterLogic {
|
|
||||||
pub fn increment(self: Pin<&mut Self>) {
|
|
||||||
let new_val = *self.counter() + 1;
|
|
||||||
self.set_counter(new_val);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user