feat(shortcuts): add helper written in egui

This commit adds a simple egui helper application which shows a list of
shortcuts defined in a user's whkdrc file. Parsing AHK files is not
supported.

In addition to listing out shortcuts defined in the whkdrc file, the top
line allows users to add filter a filter to narrow down the list of
commands and key bindings to the ones they are interested in.

A new komorebic command "toggle-shortcuts" has been introduced which
will first attempt to kill "komorebi-shortcuts.exe", and then exit if
the kill signal was successful (ie. a process was closed), or proceed to
open "komorebi-shortcuts.exe" if the kill signal was not successful (ie.
no process was closed, so we should open one).

"komorebi-shortcuts.exe" has been added as a floating application in
lib.rs to allow for users to use the "komorebic move" command to
manipulate its position via their existing keyboard bindings.
This commit is contained in:
LGUG2Z
2025-05-03 17:37:02 -07:00
parent 4ea835fa59
commit 70f561e6ac
13 changed files with 256 additions and 15 deletions

73
Cargo.lock generated
View File

@@ -180,6 +180,12 @@ dependencies = [
"alloc-no-stdlib",
]
[[package]]
name = "allocator-api2"
version = "0.2.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923"
[[package]]
name = "android-activity"
version = "0.6.0"
@@ -932,6 +938,16 @@ dependencies = [
"phf_codegen 0.11.3",
]
[[package]]
name = "chumsky"
version = "0.9.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8eebd66744a15ded14960ab4ccdbfb51ad3b81f51f3f04a80adac98c985396c9"
dependencies = [
"hashbrown 0.14.5",
"stacker",
]
[[package]]
name = "clap"
version = "4.5.37"
@@ -2320,6 +2336,16 @@ version = "0.12.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
[[package]]
name = "hashbrown"
version = "0.14.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
dependencies = [
"ahash",
"allocator-api2",
]
[[package]]
name = "hashbrown"
version = "0.15.2"
@@ -3027,6 +3053,16 @@ dependencies = [
"windows-core 0.61.0",
]
[[package]]
name = "komorebi-shortcuts"
version = "0.1.0"
dependencies = [
"dirs 6.0.0",
"eframe",
"whkd-core",
"whkd-parser",
]
[[package]]
name = "komorebi-themes"
version = "0.1.37"
@@ -4617,6 +4653,15 @@ dependencies = [
"syn 2.0.100",
]
[[package]]
name = "psm"
version = "0.1.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6e944464ec8536cd1beb0bbfd96987eb5e3b72f2ecdafdc5c769a37f1fa2ae1f"
dependencies = [
"cc",
]
[[package]]
name = "qoi"
version = "0.4.1"
@@ -5564,6 +5609,19 @@ version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
[[package]]
name = "stacker"
version = "0.1.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cddb07e32ddb770749da91081d8d0ac3a16f1a569a18b20348cd371f5dead06b"
dependencies = [
"cc",
"cfg-if 1.0.0",
"libc",
"psm",
"windows-sys 0.52.0",
]
[[package]]
name = "starship-battery"
version = "0.10.1"
@@ -6752,6 +6810,21 @@ dependencies = [
"winsafe",
]
[[package]]
name = "whkd-core"
version = "0.2.9"
source = "git+https://github.com/LGUG2Z/whkd?rev=29df24ff2dd715655b0366bd2a598837c699a8e9#29df24ff2dd715655b0366bd2a598837c699a8e9"
[[package]]
name = "whkd-parser"
version = "0.2.9"
source = "git+https://github.com/LGUG2Z/whkd?rev=29df24ff2dd715655b0366bd2a598837c699a8e9#29df24ff2dd715655b0366bd2a598837c699a8e9"
dependencies = [
"chumsky",
"thiserror 2.0.12",
"whkd-core",
]
[[package]]
name = "win32-display-data"
version = "0.1.0"