ime for text input
This commit is contained in:
parent
a2b086a779
commit
5f89601ef2
10 changed files with 784 additions and 48 deletions
|
|
@ -1 +0,0 @@
|
|||
/nix/store/jh41lavwqi3qdwypiv713yipf3dxi3nx-source
|
||||
|
|
@ -1 +0,0 @@
|
|||
/nix/store/npfcdcbsyzm1cnh0jqqn3jf2wx49hgwp-source
|
||||
1
.direnv/flake-inputs/pg23i5nvj8wg12bb657b2r4s5kixjqic-source
Symbolic link
1
.direnv/flake-inputs/pg23i5nvj8wg12bb657b2r4s5kixjqic-source
Symbolic link
|
|
@ -0,0 +1 @@
|
|||
/nix/store/pg23i5nvj8wg12bb657b2r4s5kixjqic-source
|
||||
1
.direnv/flake-inputs/zgbjmrhgvd8a42nyi1jck6v98gzvvql0-source
Symbolic link
1
.direnv/flake-inputs/zgbjmrhgvd8a42nyi1jck6v98gzvvql0-source
Symbolic link
|
|
@ -0,0 +1 @@
|
|||
/nix/store/zgbjmrhgvd8a42nyi1jck6v98gzvvql0-source
|
||||
|
|
@ -1 +1 @@
|
|||
/nix/store/mq0i12vdknm9wx5w5n7md59xn1z15ag3-my-project-env
|
||||
/nix/store/xa13w7i8cjcs7bhc21lczj9qyi40ay3s-my-project-env
|
||||
|
|
@ -18,7 +18,7 @@ DEVENV_DOTFILE='/home/nionidh/projects/rust-tomfoolery/cursor-mover-app/.devenv'
|
|||
export DEVENV_DOTFILE
|
||||
DEVENV_FLAKE_SHELL='default'
|
||||
export DEVENV_FLAKE_SHELL
|
||||
DEVENV_PROFILE='/nix/store/7wyfm3pdjlbl7747ghfqlvz2rfsf013l-devenv-profile'
|
||||
DEVENV_PROFILE='/nix/store/3niz0g2hddnbba4bcql8s8arc6mmna5m-devenv-profile'
|
||||
export DEVENV_PROFILE
|
||||
DEVENV_ROOT='/home/nionidh/projects/rust-tomfoolery/cursor-mover-app'
|
||||
export DEVENV_ROOT
|
||||
|
|
@ -31,7 +31,7 @@ export DEVENV_TASKS
|
|||
DEVENV_TASK_FILE='/nix/store/r04g3f96h64qk8xzpm7z0vd17w5b494d-tasks.json'
|
||||
export DEVENV_TASK_FILE
|
||||
HOSTTYPE='x86_64'
|
||||
HOST_PATH='/nix/store/idl8schy78hxa05jyndj4nmb4wzgcln2-compiler-rt-libc-21.1.8/bin:/nix/store/i2vmgx46q9hd3z6rigaiman3wl3i2gc4-coreutils-9.9/bin:/nix/store/16wfacfgap3chf7mcjnd8dwi85dj4qqi-findutils-4.10.0/bin:/nix/store/3p87h6dn5i87i3iq9364imzbqgwvkg2p-diffutils-3.12/bin:/nix/store/ryz8kcrm2bxpccllfqlb7qldsfnqp5c2-gnused-4.9/bin:/nix/store/02vv0r262agf9j5n2y1gmbjvdf12zkl0-gnugrep-3.12/bin:/nix/store/2xq9rayckw8zq26k274xxlikn77jn60j-gawk-5.3.2/bin:/nix/store/qyg62bc2xnpwz0fa9prqxvvk00zj4g9q-gnutar-1.35/bin:/nix/store/84yyzmxs7mb8nhkvcfv9n1l9irpb6mnq-gzip-1.14/bin:/nix/store/90yw24gqmwph4xjp4mqhpx1y1gcrvqla-bzip2-1.0.8-bin/bin:/nix/store/vbah5c4rzy1q1hbqhginyxjhj8d4dj8j-gnumake-4.4.1/bin:/nix/store/f15k3dpilmiyv6zgpib289rnjykgr1r4-bash-5.3p9/bin:/nix/store/wwij6563c6wbg4kzgjhng7vlhf7api19-patch-2.8/bin:/nix/store/zys6d102zp171wpwcs08g632886w2qxs-xz-5.8.2-bin/bin:/nix/store/nyy0bvgjwd98x7ih8pl6pr79qjljgsf7-file-5.45/bin'
|
||||
HOST_PATH='/nix/store/i2vmgx46q9hd3z6rigaiman3wl3i2gc4-coreutils-9.9/bin:/nix/store/16wfacfgap3chf7mcjnd8dwi85dj4qqi-findutils-4.10.0/bin:/nix/store/3p87h6dn5i87i3iq9364imzbqgwvkg2p-diffutils-3.12/bin:/nix/store/ryz8kcrm2bxpccllfqlb7qldsfnqp5c2-gnused-4.9/bin:/nix/store/02vv0r262agf9j5n2y1gmbjvdf12zkl0-gnugrep-3.12/bin:/nix/store/2xq9rayckw8zq26k274xxlikn77jn60j-gawk-5.3.2/bin:/nix/store/qyg62bc2xnpwz0fa9prqxvvk00zj4g9q-gnutar-1.35/bin:/nix/store/84yyzmxs7mb8nhkvcfv9n1l9irpb6mnq-gzip-1.14/bin:/nix/store/90yw24gqmwph4xjp4mqhpx1y1gcrvqla-bzip2-1.0.8-bin/bin:/nix/store/vbah5c4rzy1q1hbqhginyxjhj8d4dj8j-gnumake-4.4.1/bin:/nix/store/f15k3dpilmiyv6zgpib289rnjykgr1r4-bash-5.3p9/bin:/nix/store/wwij6563c6wbg4kzgjhng7vlhf7api19-patch-2.8/bin:/nix/store/zys6d102zp171wpwcs08g632886w2qxs-xz-5.8.2-bin/bin:/nix/store/nyy0bvgjwd98x7ih8pl6pr79qjljgsf7-file-5.45/bin'
|
||||
export HOST_PATH
|
||||
IFS='
|
||||
'
|
||||
|
|
@ -53,13 +53,13 @@ NIX_CC='/nix/store/a245z3cvf9x9sn0xlk6k8j9xhxbhda1z-gcc-wrapper-15.2.0'
|
|||
export NIX_CC
|
||||
NIX_CC_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu='1'
|
||||
export NIX_CC_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu
|
||||
NIX_CFLAGS_COMPILE=' -frandom-seed=mq0i12vdkn -isystem /nix/store/4jp1vkr9gj5n3zbpp2xvkp8n3g56lpv0-binaryen-125/include -isystem /nix/store/4jp1vkr9gj5n3zbpp2xvkp8n3g56lpv0-binaryen-125/include -isystem /nix/store/vi6gkki39fqlm3fhvrgkgfpb2b4f4x89-libxkbcommon-1.11.0-dev/include -isystem /nix/store/vi6gkki39fqlm3fhvrgkgfpb2b4f4x89-libxkbcommon-1.11.0-dev/include -isystem /nix/store/rszqwjpka3yy6x72d4n3j12a3gxkqbpn-clang-21.1.8-dev/include -isystem /nix/store/rszqwjpka3yy6x72d4n3j12a3gxkqbpn-clang-21.1.8-dev/include -isystem /nix/store/i5vppnbl2qnrvm4h5azwq83rr9gm7sdy-compiler-rt-libc-21.1.8-dev/include -isystem /nix/store/i5vppnbl2qnrvm4h5azwq83rr9gm7sdy-compiler-rt-libc-21.1.8-dev/include -isystem /nix/store/4jp1vkr9gj5n3zbpp2xvkp8n3g56lpv0-binaryen-125/include -isystem /nix/store/4jp1vkr9gj5n3zbpp2xvkp8n3g56lpv0-binaryen-125/include -isystem /nix/store/vi6gkki39fqlm3fhvrgkgfpb2b4f4x89-libxkbcommon-1.11.0-dev/include -isystem /nix/store/vi6gkki39fqlm3fhvrgkgfpb2b4f4x89-libxkbcommon-1.11.0-dev/include -isystem /nix/store/rszqwjpka3yy6x72d4n3j12a3gxkqbpn-clang-21.1.8-dev/include -isystem /nix/store/rszqwjpka3yy6x72d4n3j12a3gxkqbpn-clang-21.1.8-dev/include -isystem /nix/store/i5vppnbl2qnrvm4h5azwq83rr9gm7sdy-compiler-rt-libc-21.1.8-dev/include -isystem /nix/store/i5vppnbl2qnrvm4h5azwq83rr9gm7sdy-compiler-rt-libc-21.1.8-dev/include'
|
||||
NIX_CFLAGS_COMPILE=' -frandom-seed=xa13w7i8cj -isystem /nix/store/4jp1vkr9gj5n3zbpp2xvkp8n3g56lpv0-binaryen-125/include -isystem /nix/store/vi6gkki39fqlm3fhvrgkgfpb2b4f4x89-libxkbcommon-1.11.0-dev/include -isystem /nix/store/4jp1vkr9gj5n3zbpp2xvkp8n3g56lpv0-binaryen-125/include -isystem /nix/store/vi6gkki39fqlm3fhvrgkgfpb2b4f4x89-libxkbcommon-1.11.0-dev/include'
|
||||
export NIX_CFLAGS_COMPILE
|
||||
NIX_ENFORCE_NO_NATIVE='1'
|
||||
export NIX_ENFORCE_NO_NATIVE
|
||||
NIX_HARDENING_ENABLE='bindnow format fortify fortify3 libcxxhardeningextensive libcxxhardeningfast pic relro stackclashprotection stackprotector strictoverflow zerocallusedregs'
|
||||
export NIX_HARDENING_ENABLE
|
||||
NIX_LDFLAGS='-rpath /home/nionidh/projects/rust-tomfoolery/cursor-mover-app/outputs/out/lib -L/nix/store/4jp1vkr9gj5n3zbpp2xvkp8n3g56lpv0-binaryen-125/lib -L/nix/store/4jp1vkr9gj5n3zbpp2xvkp8n3g56lpv0-binaryen-125/lib -L/nix/store/fwhb4yynphdqiqb48mlh0v5wlwz50s22-rust-mixed/lib -L/nix/store/fwhb4yynphdqiqb48mlh0v5wlwz50s22-rust-mixed/lib -L/nix/store/ni6pwnn5cg4mwm2fkmqrm2bzjvj16b64-libxkbcommon-1.11.0/lib -L/nix/store/ni6pwnn5cg4mwm2fkmqrm2bzjvj16b64-libxkbcommon-1.11.0/lib -L/nix/store/xibf2ayyaljj1r7wgjf4n7n4vg5z8n2v-clang-21.1.8-lib/lib -L/nix/store/xibf2ayyaljj1r7wgjf4n7n4vg5z8n2v-clang-21.1.8-lib/lib -L/nix/store/4jp1vkr9gj5n3zbpp2xvkp8n3g56lpv0-binaryen-125/lib -L/nix/store/4jp1vkr9gj5n3zbpp2xvkp8n3g56lpv0-binaryen-125/lib -L/nix/store/fwhb4yynphdqiqb48mlh0v5wlwz50s22-rust-mixed/lib -L/nix/store/fwhb4yynphdqiqb48mlh0v5wlwz50s22-rust-mixed/lib -L/nix/store/ni6pwnn5cg4mwm2fkmqrm2bzjvj16b64-libxkbcommon-1.11.0/lib -L/nix/store/ni6pwnn5cg4mwm2fkmqrm2bzjvj16b64-libxkbcommon-1.11.0/lib -L/nix/store/xibf2ayyaljj1r7wgjf4n7n4vg5z8n2v-clang-21.1.8-lib/lib -L/nix/store/xibf2ayyaljj1r7wgjf4n7n4vg5z8n2v-clang-21.1.8-lib/lib'
|
||||
NIX_LDFLAGS='-rpath /home/nionidh/projects/rust-tomfoolery/cursor-mover-app/outputs/out/lib -L/nix/store/4jp1vkr9gj5n3zbpp2xvkp8n3g56lpv0-binaryen-125/lib -L/nix/store/fwhb4yynphdqiqb48mlh0v5wlwz50s22-rust-mixed/lib -L/nix/store/ni6pwnn5cg4mwm2fkmqrm2bzjvj16b64-libxkbcommon-1.11.0/lib -L/nix/store/4jp1vkr9gj5n3zbpp2xvkp8n3g56lpv0-binaryen-125/lib -L/nix/store/fwhb4yynphdqiqb48mlh0v5wlwz50s22-rust-mixed/lib -L/nix/store/ni6pwnn5cg4mwm2fkmqrm2bzjvj16b64-libxkbcommon-1.11.0/lib'
|
||||
export NIX_LDFLAGS
|
||||
NIX_NO_SELF_RPATH='1'
|
||||
NIX_PKG_CONFIG_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu='1'
|
||||
|
|
@ -76,7 +76,7 @@ OLDPWD=''
|
|||
export OLDPWD
|
||||
OPTERR='1'
|
||||
OSTYPE='linux-gnu'
|
||||
PATH='/nix/store/xgixy092whsar7fwm9lmcn4mv9kqn983-process-compose-1.87.0/bin:/nix/store/f53d7gw5jh2yc1rv62kp670gnqq3vwwz-checkall/bin:/nix/store/py79xv22ipf2ycg4qks55wwai9g4w2qg-dioxus-cli-0.7.3/bin:/nix/store/9dpg06rzbppmxi5q8rms8zyybz56sa6r-cargo-expand-1.0.119/bin:/nix/store/fl02yv3ax1qf1xkq64ik8qz5bjxyyd71-cargo-deny-0.19.0/bin:/nix/store/hadf76x1xknx2w6ydp05gzl2w3j40hqy-cargo-nextest-0.9.124/bin:/nix/store/s4rgqv7brrcq2jm8m00dyair22knq10s-typos-1.42.3/bin:/nix/store/4jp1vkr9gj5n3zbpp2xvkp8n3g56lpv0-binaryen-125/bin:/nix/store/fwhb4yynphdqiqb48mlh0v5wlwz50s22-rust-mixed/bin:/nix/store/m05d7wi0zxg35937jbp6rp7zsvbb5qv4-rust-analyzer-nightly-a96b6a9b887008bae01839543f9ca8e1f67f4ebe/bin:/nix/store/8njkmn9yfcka8yid251wk109n7a6sz1y-wasm-bindgen-cli-0.2.114/bin:/nix/store/ni6pwnn5cg4mwm2fkmqrm2bzjvj16b64-libxkbcommon-1.11.0/bin:/nix/store/6n5r46icm0bl55s9p5z2zgcv93m39r5l-clang-wrapper-21.1.8/bin:/nix/store/rm8isfm4fd14is3fv3h4m459rbiy91bx-clang-21.1.8/bin:/nix/store/0bdqq2z98kg2hfn3k60if6pb5fd5p10h-glibc-2.42-47-bin/bin:/nix/store/i2vmgx46q9hd3z6rigaiman3wl3i2gc4-coreutils-9.9/bin:/nix/store/m0rbbdfsbkdqpr6bs621jwi21ra1br4g-binutils-wrapper-2.44/bin:/nix/store/47mn80zqpygykqailwzw8zlag4cgl75q-binutils-2.44/bin:/nix/store/rszqwjpka3yy6x72d4n3j12a3gxkqbpn-clang-21.1.8-dev/bin:/nix/store/rvp7qlpf5jqvdckjy1afjb6aha6j8dxg-pkg-config-wrapper-0.29.2/bin:/nix/store/c2p7haf4zzkbrir9zs662r68c5dmylbq-patchelf-0.15.2/bin:/nix/store/a245z3cvf9x9sn0xlk6k8j9xhxbhda1z-gcc-wrapper-15.2.0/bin:/nix/store/mjf8jlq9grydcdvyw6hb063x5c34g5gf-gcc-15.2.0/bin:/nix/store/i6ppbrlpp6yki8qvka7nyv091xa8dchx-binutils-wrapper-2.44/bin:/nix/store/idl8schy78hxa05jyndj4nmb4wzgcln2-compiler-rt-libc-21.1.8/bin:/nix/store/i2vmgx46q9hd3z6rigaiman3wl3i2gc4-coreutils-9.9/bin:/nix/store/16wfacfgap3chf7mcjnd8dwi85dj4qqi-findutils-4.10.0/bin:/nix/store/3p87h6dn5i87i3iq9364imzbqgwvkg2p-diffutils-3.12/bin:/nix/store/ryz8kcrm2bxpccllfqlb7qldsfnqp5c2-gnused-4.9/bin:/nix/store/02vv0r262agf9j5n2y1gmbjvdf12zkl0-gnugrep-3.12/bin:/nix/store/2xq9rayckw8zq26k274xxlikn77jn60j-gawk-5.3.2/bin:/nix/store/qyg62bc2xnpwz0fa9prqxvvk00zj4g9q-gnutar-1.35/bin:/nix/store/84yyzmxs7mb8nhkvcfv9n1l9irpb6mnq-gzip-1.14/bin:/nix/store/90yw24gqmwph4xjp4mqhpx1y1gcrvqla-bzip2-1.0.8-bin/bin:/nix/store/vbah5c4rzy1q1hbqhginyxjhj8d4dj8j-gnumake-4.4.1/bin:/nix/store/f15k3dpilmiyv6zgpib289rnjykgr1r4-bash-5.3p9/bin:/nix/store/wwij6563c6wbg4kzgjhng7vlhf7api19-patch-2.8/bin:/nix/store/zys6d102zp171wpwcs08g632886w2qxs-xz-5.8.2-bin/bin:/nix/store/nyy0bvgjwd98x7ih8pl6pr79qjljgsf7-file-5.45/bin'
|
||||
PATH='/nix/store/xgixy092whsar7fwm9lmcn4mv9kqn983-process-compose-1.87.0/bin:/nix/store/f53d7gw5jh2yc1rv62kp670gnqq3vwwz-checkall/bin:/nix/store/py79xv22ipf2ycg4qks55wwai9g4w2qg-dioxus-cli-0.7.3/bin:/nix/store/9dpg06rzbppmxi5q8rms8zyybz56sa6r-cargo-expand-1.0.119/bin:/nix/store/fl02yv3ax1qf1xkq64ik8qz5bjxyyd71-cargo-deny-0.19.0/bin:/nix/store/hadf76x1xknx2w6ydp05gzl2w3j40hqy-cargo-nextest-0.9.124/bin:/nix/store/s4rgqv7brrcq2jm8m00dyair22knq10s-typos-1.42.3/bin:/nix/store/4jp1vkr9gj5n3zbpp2xvkp8n3g56lpv0-binaryen-125/bin:/nix/store/fwhb4yynphdqiqb48mlh0v5wlwz50s22-rust-mixed/bin:/nix/store/m05d7wi0zxg35937jbp6rp7zsvbb5qv4-rust-analyzer-nightly-a96b6a9b887008bae01839543f9ca8e1f67f4ebe/bin:/nix/store/8njkmn9yfcka8yid251wk109n7a6sz1y-wasm-bindgen-cli-0.2.114/bin:/nix/store/ni6pwnn5cg4mwm2fkmqrm2bzjvj16b64-libxkbcommon-1.11.0/bin:/nix/store/rvp7qlpf5jqvdckjy1afjb6aha6j8dxg-pkg-config-wrapper-0.29.2/bin:/nix/store/c2p7haf4zzkbrir9zs662r68c5dmylbq-patchelf-0.15.2/bin:/nix/store/a245z3cvf9x9sn0xlk6k8j9xhxbhda1z-gcc-wrapper-15.2.0/bin:/nix/store/mjf8jlq9grydcdvyw6hb063x5c34g5gf-gcc-15.2.0/bin:/nix/store/0bdqq2z98kg2hfn3k60if6pb5fd5p10h-glibc-2.42-47-bin/bin:/nix/store/i2vmgx46q9hd3z6rigaiman3wl3i2gc4-coreutils-9.9/bin:/nix/store/i6ppbrlpp6yki8qvka7nyv091xa8dchx-binutils-wrapper-2.44/bin:/nix/store/47mn80zqpygykqailwzw8zlag4cgl75q-binutils-2.44/bin:/nix/store/i2vmgx46q9hd3z6rigaiman3wl3i2gc4-coreutils-9.9/bin:/nix/store/16wfacfgap3chf7mcjnd8dwi85dj4qqi-findutils-4.10.0/bin:/nix/store/3p87h6dn5i87i3iq9364imzbqgwvkg2p-diffutils-3.12/bin:/nix/store/ryz8kcrm2bxpccllfqlb7qldsfnqp5c2-gnused-4.9/bin:/nix/store/02vv0r262agf9j5n2y1gmbjvdf12zkl0-gnugrep-3.12/bin:/nix/store/2xq9rayckw8zq26k274xxlikn77jn60j-gawk-5.3.2/bin:/nix/store/qyg62bc2xnpwz0fa9prqxvvk00zj4g9q-gnutar-1.35/bin:/nix/store/84yyzmxs7mb8nhkvcfv9n1l9irpb6mnq-gzip-1.14/bin:/nix/store/90yw24gqmwph4xjp4mqhpx1y1gcrvqla-bzip2-1.0.8-bin/bin:/nix/store/vbah5c4rzy1q1hbqhginyxjhj8d4dj8j-gnumake-4.4.1/bin:/nix/store/f15k3dpilmiyv6zgpib289rnjykgr1r4-bash-5.3p9/bin:/nix/store/wwij6563c6wbg4kzgjhng7vlhf7api19-patch-2.8/bin:/nix/store/zys6d102zp171wpwcs08g632886w2qxs-xz-5.8.2-bin/bin:/nix/store/nyy0bvgjwd98x7ih8pl6pr79qjljgsf7-file-5.45/bin'
|
||||
export PATH
|
||||
PC_CONFIG_FILES='/nix/store/f90qf91rzv18zpk3y4yf5saigawqw9nm-process-compose.yaml'
|
||||
export PC_CONFIG_FILES
|
||||
|
|
@ -101,7 +101,7 @@ STRINGS='strings'
|
|||
export STRINGS
|
||||
STRIP='strip'
|
||||
export STRIP
|
||||
XDG_DATA_DIRS='/nix/store/xgixy092whsar7fwm9lmcn4mv9kqn983-process-compose-1.87.0/share:/nix/store/fwhb4yynphdqiqb48mlh0v5wlwz50s22-rust-mixed/share:/nix/store/ni6pwnn5cg4mwm2fkmqrm2bzjvj16b64-libxkbcommon-1.11.0/share:/nix/store/rm8isfm4fd14is3fv3h4m459rbiy91bx-clang-21.1.8/share:/nix/store/rvp7qlpf5jqvdckjy1afjb6aha6j8dxg-pkg-config-wrapper-0.29.2/share:/nix/store/c2p7haf4zzkbrir9zs662r68c5dmylbq-patchelf-0.15.2/share'
|
||||
XDG_DATA_DIRS='/nix/store/xgixy092whsar7fwm9lmcn4mv9kqn983-process-compose-1.87.0/share:/nix/store/fwhb4yynphdqiqb48mlh0v5wlwz50s22-rust-mixed/share:/nix/store/ni6pwnn5cg4mwm2fkmqrm2bzjvj16b64-libxkbcommon-1.11.0/share:/nix/store/rvp7qlpf5jqvdckjy1afjb6aha6j8dxg-pkg-config-wrapper-0.29.2/share:/nix/store/c2p7haf4zzkbrir9zs662r68c5dmylbq-patchelf-0.15.2/share'
|
||||
export XDG_DATA_DIRS
|
||||
__structuredAttrs=''
|
||||
export __structuredAttrs
|
||||
|
|
@ -151,8 +151,8 @@ export dontAddDisableDepTrack
|
|||
declare -a envBuildBuildHooks=()
|
||||
declare -a envBuildHostHooks=()
|
||||
declare -a envBuildTargetHooks=()
|
||||
declare -a envHostHostHooks=('ccWrapper_addCVars' 'bintoolsWrapper_addLDVars' 'pkgConfigWrapper_addPkgConfigPath' 'ccWrapper_addCVars' 'bintoolsWrapper_addLDVars' )
|
||||
declare -a envHostTargetHooks=('ccWrapper_addCVars' 'bintoolsWrapper_addLDVars' 'pkgConfigWrapper_addPkgConfigPath' 'ccWrapper_addCVars' 'bintoolsWrapper_addLDVars' )
|
||||
declare -a envHostHostHooks=('pkgConfigWrapper_addPkgConfigPath' 'ccWrapper_addCVars' 'bintoolsWrapper_addLDVars' )
|
||||
declare -a envHostTargetHooks=('pkgConfigWrapper_addPkgConfigPath' 'ccWrapper_addCVars' 'bintoolsWrapper_addLDVars' )
|
||||
declare -a envTargetTargetHooks=()
|
||||
declare -a fixupOutputHooks=('if [ -z "${dontPatchELF-}" ]; then patchELF "$prefix"; fi' 'if [[ -z "${noAuditTmpdir-}" && -e "$prefix" ]]; then auditTmpdir "$prefix"; fi' 'if [ -z "${dontGzipMan-}" ]; then compressManPages "$prefix"; fi' '_moveLib64' '_moveSbin' '_moveSystemdUserUnits' 'patchShebangsAuto' '_pruneLibtoolFiles' '_doStrip' )
|
||||
hardeningDisable=''
|
||||
|
|
@ -162,7 +162,7 @@ mesonFlags=''
|
|||
export mesonFlags
|
||||
name='my-project-env'
|
||||
export name
|
||||
nativeBuildInputs='/nix/store/xgixy092whsar7fwm9lmcn4mv9kqn983-process-compose-1.87.0 /nix/store/f53d7gw5jh2yc1rv62kp670gnqq3vwwz-checkall /nix/store/py79xv22ipf2ycg4qks55wwai9g4w2qg-dioxus-cli-0.7.3 /nix/store/9dpg06rzbppmxi5q8rms8zyybz56sa6r-cargo-expand-1.0.119 /nix/store/fl02yv3ax1qf1xkq64ik8qz5bjxyyd71-cargo-deny-0.19.0 /nix/store/hadf76x1xknx2w6ydp05gzl2w3j40hqy-cargo-nextest-0.9.124 /nix/store/s4rgqv7brrcq2jm8m00dyair22knq10s-typos-1.42.3 /nix/store/4jp1vkr9gj5n3zbpp2xvkp8n3g56lpv0-binaryen-125 /nix/store/fwhb4yynphdqiqb48mlh0v5wlwz50s22-rust-mixed /nix/store/m05d7wi0zxg35937jbp6rp7zsvbb5qv4-rust-analyzer-nightly-a96b6a9b887008bae01839543f9ca8e1f67f4ebe /nix/store/8njkmn9yfcka8yid251wk109n7a6sz1y-wasm-bindgen-cli-0.2.114 /nix/store/vi6gkki39fqlm3fhvrgkgfpb2b4f4x89-libxkbcommon-1.11.0-dev /nix/store/6n5r46icm0bl55s9p5z2zgcv93m39r5l-clang-wrapper-21.1.8 /nix/store/rszqwjpka3yy6x72d4n3j12a3gxkqbpn-clang-21.1.8-dev /nix/store/rvp7qlpf5jqvdckjy1afjb6aha6j8dxg-pkg-config-wrapper-0.29.2'
|
||||
nativeBuildInputs='/nix/store/xgixy092whsar7fwm9lmcn4mv9kqn983-process-compose-1.87.0 /nix/store/f53d7gw5jh2yc1rv62kp670gnqq3vwwz-checkall /nix/store/py79xv22ipf2ycg4qks55wwai9g4w2qg-dioxus-cli-0.7.3 /nix/store/9dpg06rzbppmxi5q8rms8zyybz56sa6r-cargo-expand-1.0.119 /nix/store/fl02yv3ax1qf1xkq64ik8qz5bjxyyd71-cargo-deny-0.19.0 /nix/store/hadf76x1xknx2w6ydp05gzl2w3j40hqy-cargo-nextest-0.9.124 /nix/store/s4rgqv7brrcq2jm8m00dyair22knq10s-typos-1.42.3 /nix/store/4jp1vkr9gj5n3zbpp2xvkp8n3g56lpv0-binaryen-125 /nix/store/fwhb4yynphdqiqb48mlh0v5wlwz50s22-rust-mixed /nix/store/m05d7wi0zxg35937jbp6rp7zsvbb5qv4-rust-analyzer-nightly-a96b6a9b887008bae01839543f9ca8e1f67f4ebe /nix/store/8njkmn9yfcka8yid251wk109n7a6sz1y-wasm-bindgen-cli-0.2.114 /nix/store/vi6gkki39fqlm3fhvrgkgfpb2b4f4x89-libxkbcommon-1.11.0-dev /nix/store/rvp7qlpf5jqvdckjy1afjb6aha6j8dxg-pkg-config-wrapper-0.29.2'
|
||||
export nativeBuildInputs
|
||||
out='/home/nionidh/projects/rust-tomfoolery/cursor-mover-app/outputs/out'
|
||||
export out
|
||||
|
|
@ -183,9 +183,9 @@ phases='buildPhase'
|
|||
export phases
|
||||
pkg='/nix/store/a245z3cvf9x9sn0xlk6k8j9xhxbhda1z-gcc-wrapper-15.2.0'
|
||||
declare -a pkgsBuildBuild=()
|
||||
declare -a pkgsBuildHost=('/nix/store/xgixy092whsar7fwm9lmcn4mv9kqn983-process-compose-1.87.0' '/nix/store/f53d7gw5jh2yc1rv62kp670gnqq3vwwz-checkall' '/nix/store/py79xv22ipf2ycg4qks55wwai9g4w2qg-dioxus-cli-0.7.3' '/nix/store/9dpg06rzbppmxi5q8rms8zyybz56sa6r-cargo-expand-1.0.119' '/nix/store/fl02yv3ax1qf1xkq64ik8qz5bjxyyd71-cargo-deny-0.19.0' '/nix/store/hadf76x1xknx2w6ydp05gzl2w3j40hqy-cargo-nextest-0.9.124' '/nix/store/s4rgqv7brrcq2jm8m00dyair22knq10s-typos-1.42.3' '/nix/store/4jp1vkr9gj5n3zbpp2xvkp8n3g56lpv0-binaryen-125' '/nix/store/fwhb4yynphdqiqb48mlh0v5wlwz50s22-rust-mixed' '/nix/store/m05d7wi0zxg35937jbp6rp7zsvbb5qv4-rust-analyzer-nightly-a96b6a9b887008bae01839543f9ca8e1f67f4ebe' '/nix/store/8njkmn9yfcka8yid251wk109n7a6sz1y-wasm-bindgen-cli-0.2.114' '/nix/store/vi6gkki39fqlm3fhvrgkgfpb2b4f4x89-libxkbcommon-1.11.0-dev' '/nix/store/ni6pwnn5cg4mwm2fkmqrm2bzjvj16b64-libxkbcommon-1.11.0' '/nix/store/6n5r46icm0bl55s9p5z2zgcv93m39r5l-clang-wrapper-21.1.8' '/nix/store/m0rbbdfsbkdqpr6bs621jwi21ra1br4g-binutils-wrapper-2.44' '/nix/store/rszqwjpka3yy6x72d4n3j12a3gxkqbpn-clang-21.1.8-dev' '/nix/store/xibf2ayyaljj1r7wgjf4n7n4vg5z8n2v-clang-21.1.8-lib' '/nix/store/rm8isfm4fd14is3fv3h4m459rbiy91bx-clang-21.1.8' '/nix/store/rvp7qlpf5jqvdckjy1afjb6aha6j8dxg-pkg-config-wrapper-0.29.2' '/nix/store/c2p7haf4zzkbrir9zs662r68c5dmylbq-patchelf-0.15.2' '/nix/store/y03z7y8cgdck7vk8qpim30vps4d22gzv-update-autotools-gnu-config-scripts-hook' '/nix/store/0y5xmdb7qfvimjwbq7ibg1xdgkgjwqng-no-broken-symlinks.sh' '/nix/store/cv1d7p48379km6a85h4zp6kr86brh32q-audit-tmpdir.sh' '/nix/store/85clx3b0xkdf58jn161iy80y5223ilbi-compress-man-pages.sh' '/nix/store/p3l1a5y7nllfyrjn2krlwgcc3z0cd3fq-make-symlinks-relative.sh' '/nix/store/5yzw0vhkyszf2d179m0qfkgxmp5wjjx4-move-docs.sh' '/nix/store/fyaryjvghbkpfnsyw97hb3lyb37s1pd6-move-lib64.sh' '/nix/store/kd4xwxjpjxi71jkm6ka0np72if9rm3y0-move-sbin.sh' '/nix/store/pag6l61paj1dc9sv15l7bm5c17xn5kyk-move-systemd-user-units.sh' '/nix/store/cmzya9irvxzlkh7lfy6i82gbp0saxqj3-multiple-outputs.sh' '/nix/store/x8c40nfigps493a07sdr2pm5s9j1cdc0-patch-shebangs.sh' '/nix/store/cickvswrvann041nqxb0rxilc46svw1n-prune-libtool-files.sh' '/nix/store/xyff06pkhki3qy1ls77w10s0v79c9il0-reproducible-builds.sh' '/nix/store/z7k98578dfzi6l3hsvbivzm7hfqlk0zc-set-source-date-epoch-to-latest.sh' '/nix/store/pilsssjjdxvdphlg2h19p0bfx5q0jzkn-strip.sh' '/nix/store/a245z3cvf9x9sn0xlk6k8j9xhxbhda1z-gcc-wrapper-15.2.0' '/nix/store/i6ppbrlpp6yki8qvka7nyv091xa8dchx-binutils-wrapper-2.44' )
|
||||
declare -a pkgsBuildHost=('/nix/store/xgixy092whsar7fwm9lmcn4mv9kqn983-process-compose-1.87.0' '/nix/store/f53d7gw5jh2yc1rv62kp670gnqq3vwwz-checkall' '/nix/store/py79xv22ipf2ycg4qks55wwai9g4w2qg-dioxus-cli-0.7.3' '/nix/store/9dpg06rzbppmxi5q8rms8zyybz56sa6r-cargo-expand-1.0.119' '/nix/store/fl02yv3ax1qf1xkq64ik8qz5bjxyyd71-cargo-deny-0.19.0' '/nix/store/hadf76x1xknx2w6ydp05gzl2w3j40hqy-cargo-nextest-0.9.124' '/nix/store/s4rgqv7brrcq2jm8m00dyair22knq10s-typos-1.42.3' '/nix/store/4jp1vkr9gj5n3zbpp2xvkp8n3g56lpv0-binaryen-125' '/nix/store/fwhb4yynphdqiqb48mlh0v5wlwz50s22-rust-mixed' '/nix/store/m05d7wi0zxg35937jbp6rp7zsvbb5qv4-rust-analyzer-nightly-a96b6a9b887008bae01839543f9ca8e1f67f4ebe' '/nix/store/8njkmn9yfcka8yid251wk109n7a6sz1y-wasm-bindgen-cli-0.2.114' '/nix/store/vi6gkki39fqlm3fhvrgkgfpb2b4f4x89-libxkbcommon-1.11.0-dev' '/nix/store/ni6pwnn5cg4mwm2fkmqrm2bzjvj16b64-libxkbcommon-1.11.0' '/nix/store/rvp7qlpf5jqvdckjy1afjb6aha6j8dxg-pkg-config-wrapper-0.29.2' '/nix/store/c2p7haf4zzkbrir9zs662r68c5dmylbq-patchelf-0.15.2' '/nix/store/y03z7y8cgdck7vk8qpim30vps4d22gzv-update-autotools-gnu-config-scripts-hook' '/nix/store/0y5xmdb7qfvimjwbq7ibg1xdgkgjwqng-no-broken-symlinks.sh' '/nix/store/cv1d7p48379km6a85h4zp6kr86brh32q-audit-tmpdir.sh' '/nix/store/85clx3b0xkdf58jn161iy80y5223ilbi-compress-man-pages.sh' '/nix/store/p3l1a5y7nllfyrjn2krlwgcc3z0cd3fq-make-symlinks-relative.sh' '/nix/store/5yzw0vhkyszf2d179m0qfkgxmp5wjjx4-move-docs.sh' '/nix/store/fyaryjvghbkpfnsyw97hb3lyb37s1pd6-move-lib64.sh' '/nix/store/kd4xwxjpjxi71jkm6ka0np72if9rm3y0-move-sbin.sh' '/nix/store/pag6l61paj1dc9sv15l7bm5c17xn5kyk-move-systemd-user-units.sh' '/nix/store/cmzya9irvxzlkh7lfy6i82gbp0saxqj3-multiple-outputs.sh' '/nix/store/x8c40nfigps493a07sdr2pm5s9j1cdc0-patch-shebangs.sh' '/nix/store/cickvswrvann041nqxb0rxilc46svw1n-prune-libtool-files.sh' '/nix/store/xyff06pkhki3qy1ls77w10s0v79c9il0-reproducible-builds.sh' '/nix/store/z7k98578dfzi6l3hsvbivzm7hfqlk0zc-set-source-date-epoch-to-latest.sh' '/nix/store/pilsssjjdxvdphlg2h19p0bfx5q0jzkn-strip.sh' '/nix/store/a245z3cvf9x9sn0xlk6k8j9xhxbhda1z-gcc-wrapper-15.2.0' '/nix/store/i6ppbrlpp6yki8qvka7nyv091xa8dchx-binutils-wrapper-2.44' )
|
||||
declare -a pkgsBuildTarget=()
|
||||
declare -a pkgsHostHost=('/nix/store/i5vppnbl2qnrvm4h5azwq83rr9gm7sdy-compiler-rt-libc-21.1.8-dev' '/nix/store/idl8schy78hxa05jyndj4nmb4wzgcln2-compiler-rt-libc-21.1.8' )
|
||||
declare -a pkgsHostHost=()
|
||||
declare -a pkgsHostTarget=()
|
||||
declare -a pkgsTargetTarget=()
|
||||
declare -a postFixupHooks=('noBrokenSymlinksInAllOutputs' '_makeSymlinksRelative' '_multioutPropagateDev' )
|
||||
|
|
@ -231,9 +231,9 @@ if [ ! type -p direnv &>/dev/null && -f .envrc ]; then
|
|||
fi
|
||||
|
||||
mkdir -p "$DEVENV_STATE"
|
||||
if [ ! -L "$DEVENV_DOTFILE/profile" ] || [ "$(/nix/store/i2vmgx46q9hd3z6rigaiman3wl3i2gc4-coreutils-9.9/bin/readlink $DEVENV_DOTFILE/profile)" != "/nix/store/7wyfm3pdjlbl7747ghfqlvz2rfsf013l-devenv-profile" ]
|
||||
if [ ! -L "$DEVENV_DOTFILE/profile" ] || [ "$(/nix/store/i2vmgx46q9hd3z6rigaiman3wl3i2gc4-coreutils-9.9/bin/readlink $DEVENV_DOTFILE/profile)" != "/nix/store/3niz0g2hddnbba4bcql8s8arc6mmna5m-devenv-profile" ]
|
||||
then
|
||||
ln -snf /nix/store/7wyfm3pdjlbl7747ghfqlvz2rfsf013l-devenv-profile "$DEVENV_DOTFILE/profile"
|
||||
ln -snf /nix/store/3niz0g2hddnbba4bcql8s8arc6mmna5m-devenv-profile "$DEVENV_DOTFILE/profile"
|
||||
fi
|
||||
unset HOST_PATH NIX_BUILD_CORES __structuredAttrs buildInputs buildPhase builder depsBuildBuild depsBuildBuildPropagated depsBuildTarget depsBuildTargetPropagated depsHostHost depsHostHostPropagated depsTargetTarget depsTargetTargetPropagated dontAddDisableDepTrack doCheck doInstallCheck nativeBuildInputs out outputs patches phases preferLocalBuild propagatedBuildInputs propagatedNativeBuildInputs shell shellHook stdenv strictDeps
|
||||
|
||||
|
|
@ -241,10 +241,10 @@ mkdir -p /tmp/devenv-b51d30d
|
|||
ln -snf /tmp/devenv-b51d30d /home/nionidh/projects/rust-tomfoolery/cursor-mover-app/.devenv/run
|
||||
|
||||
|
||||
export PATH=/nix/store/c0xxs40qc5szabj2yiimh0cziknji84q-devenv-flake-compat/bin:$PATH
|
||||
export PATH=/nix/store/qgm0a9f2cxfsf6v0d4b5riy5x54w3zib-devenv-flake-compat/bin:$PATH
|
||||
|
||||
if [ -z "${DEVENV_SKIP_TASKS:-}" ]; then
|
||||
/nix/store/vjc136ikp6is5m8jv4r5s24gwcfl2naf-devenv-tasks-2.0.0/bin/devenv-tasks run devenv:enterShell --mode all --cache-dir /home/nionidh/projects/rust-tomfoolery/cursor-mover-app/.devenv --runtime-dir /tmp/devenv-b51d30d || exit $?
|
||||
/nix/store/bkl9r14hgr0qy850wkdj1bgs8884i46r-devenv-tasks-2.0.0/bin/devenv-tasks run devenv:enterShell --mode all --cache-dir /home/nionidh/projects/rust-tomfoolery/cursor-mover-app/.devenv --runtime-dir /tmp/devenv-b51d30d || exit $?
|
||||
if [ -f "$DEVENV_DOTFILE/load-exports" ]; then
|
||||
source "$DEVENV_DOTFILE/load-exports"
|
||||
fi
|
||||
|
|
|
|||
|
|
@ -64,7 +64,6 @@ pub fn MouseArea() -> Element {
|
|||
});
|
||||
|
||||
let key_down_handler = use_callback(move |evt: Event<KeyboardData>| {
|
||||
tracing::info!("Keydown");
|
||||
spawn(async move {
|
||||
_ = socket
|
||||
.send(ClientEvent::KeyEvent {
|
||||
|
|
@ -75,12 +74,49 @@ pub fn MouseArea() -> Element {
|
|||
});
|
||||
});
|
||||
|
||||
let key_up_handler = use_callback(move |evt: Event<KeyboardData>| {
|
||||
// let key_up_handler = use_callback(move |evt: Event<KeyboardData>| {
|
||||
// spawn(async move {
|
||||
// _ = socket
|
||||
// .send(ClientEvent::KeyEvent {
|
||||
// key: evt.key().to_string(),
|
||||
// is_pressed: false,
|
||||
// })
|
||||
// .await;
|
||||
// });
|
||||
// });
|
||||
|
||||
let mut input_state = use_signal(String::new);
|
||||
let input_handler = use_callback(move |evt: Event<FormData>| {
|
||||
let v = evt.value();
|
||||
input_state.set(v.clone());
|
||||
|
||||
spawn(async move {
|
||||
_ = socket.send(ClientEvent::TextInputEvent { text: v }).await;
|
||||
});
|
||||
});
|
||||
let key_press_handler = use_callback(move |evt: Event<KeyboardData>| {
|
||||
if evt.key() == Key::Enter {
|
||||
spawn(async move {
|
||||
_ = socket
|
||||
.send(ClientEvent::TextInputDoneEvent {
|
||||
text: input_state.replace(String::new()),
|
||||
})
|
||||
.await;
|
||||
});
|
||||
}
|
||||
});
|
||||
let input_focus_handler = use_callback(move |evt: Event<FocusData>| {
|
||||
input_state.set(String::new());
|
||||
spawn(async move {
|
||||
_ = socket.send(ClientEvent::TextInputStartEvent).await;
|
||||
});
|
||||
});
|
||||
|
||||
let input_blur_handler = use_callback(move |evt: Event<FocusData>| {
|
||||
spawn(async move {
|
||||
_ = socket
|
||||
.send(ClientEvent::KeyEvent {
|
||||
key: evt.key().to_string(),
|
||||
is_pressed: false,
|
||||
.send(ClientEvent::TextInputDoneEvent {
|
||||
text: input_state.replace(String::new()),
|
||||
})
|
||||
.await;
|
||||
});
|
||||
|
|
@ -88,7 +124,12 @@ pub fn MouseArea() -> Element {
|
|||
|
||||
rsx! {
|
||||
div {
|
||||
input { onkeydown: key_down_handler, onkeyup: key_up_handler}
|
||||
input {
|
||||
oninput: input_handler,
|
||||
value: input_state,
|
||||
onkeypress: key_press_handler,
|
||||
onfocus: input_focus_handler,
|
||||
onblur: input_blur_handler }
|
||||
div {
|
||||
class: Styles::mouse_area,
|
||||
|
||||
|
|
@ -105,6 +146,9 @@ enum ClientEvent {
|
|||
MouseMove { dx: f64, dy: f64 },
|
||||
Click,
|
||||
KeyEvent { key: String, is_pressed: bool },
|
||||
TextInputStartEvent,
|
||||
TextInputEvent { text: String },
|
||||
TextInputDoneEvent { text: String },
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize, Debug)]
|
||||
|
|
@ -131,6 +175,15 @@ async fn mouse_move(
|
|||
ClientEvent::KeyEvent { key, is_pressed } => {
|
||||
mouse_service.key_event(key, is_pressed).await;
|
||||
},
|
||||
ClientEvent::TextInputEvent { text } => {
|
||||
mouse_service.text_input(text).await;
|
||||
},
|
||||
ClientEvent::TextInputStartEvent => {
|
||||
mouse_service.text_input_start().await;
|
||||
},
|
||||
ClientEvent::TextInputDoneEvent { text } => {
|
||||
mouse_service.text_input_end(text).await;
|
||||
},
|
||||
}
|
||||
}
|
||||
}))
|
||||
|
|
|
|||
|
|
@ -1,8 +1,7 @@
|
|||
use std::{io::Write, str::FromStr, sync::Arc, time::Duration};
|
||||
use std::{io::Write, sync::Arc, time::Duration};
|
||||
|
||||
use dioxus::{
|
||||
fullstack::{FullstackContext, extract::FromRef},
|
||||
html::Key,
|
||||
logger::tracing,
|
||||
};
|
||||
use memfile::MemFile;
|
||||
|
|
@ -16,9 +15,14 @@ use wayland_client::{
|
|||
wl_seat::{self, WlSeat},
|
||||
},
|
||||
};
|
||||
use wayland_protocols_misc::zwp_virtual_keyboard_v1::client::{
|
||||
zwp_virtual_keyboard_manager_v1::ZwpVirtualKeyboardManagerV1,
|
||||
zwp_virtual_keyboard_v1::ZwpVirtualKeyboardV1,
|
||||
use wayland_protocols_misc::{
|
||||
zwp_input_method_v2::client::{
|
||||
zwp_input_method_manager_v2::ZwpInputMethodManagerV2, zwp_input_method_v2::ZwpInputMethodV2,
|
||||
},
|
||||
zwp_virtual_keyboard_v1::client::{
|
||||
zwp_virtual_keyboard_manager_v1::ZwpVirtualKeyboardManagerV1,
|
||||
zwp_virtual_keyboard_v1::ZwpVirtualKeyboardV1,
|
||||
},
|
||||
};
|
||||
use wayland_protocols_wlr::virtual_pointer::v1::client::{
|
||||
zwlr_virtual_pointer_manager_v1::ZwlrVirtualPointerManagerV1,
|
||||
|
|
@ -93,14 +97,49 @@ impl InputProxyService {
|
|||
key: String,
|
||||
is_pressed: bool,
|
||||
) {
|
||||
let guard = self.input_proxy_service_state.lock().await;
|
||||
if let Some(keyboard) = &guard.state.virtual_keyboard() {
|
||||
let time = get_wayland_timestamp();
|
||||
todo!();
|
||||
}
|
||||
|
||||
let key = Key::from_str(key.as_str()).unwrap().legacy_charcode();
|
||||
pub async fn text_input_start(&self) {
|
||||
let mut guard = self.input_proxy_service_state.lock().await;
|
||||
|
||||
keyboard.key(time, key, if is_pressed { 1 } else { 0 });
|
||||
if let Some(keyboard) = guard.state.input_method_mut() {
|
||||
keyboard.input_method_state += 1;
|
||||
|
||||
tracing::info!("Text Input Start");
|
||||
keyboard.input_method.delete_surrounding_text(4, 4);
|
||||
keyboard.input_method.commit(keyboard.input_method_state);
|
||||
|
||||
guard.event_queue.flush().unwrap();
|
||||
}
|
||||
}
|
||||
pub async fn text_input(
|
||||
&self,
|
||||
key: String,
|
||||
) {
|
||||
let mut guard = self.input_proxy_service_state.lock().await;
|
||||
|
||||
if let Some(keyboard) = guard.state.input_method_mut() {
|
||||
keyboard.input_method_state += 1;
|
||||
|
||||
tracing::info!("Text Input {key}");
|
||||
keyboard.input_method.set_preedit_string(key, 0, 0);
|
||||
keyboard.input_method.commit(keyboard.input_method_state);
|
||||
guard.event_queue.flush().unwrap();
|
||||
}
|
||||
}
|
||||
pub async fn text_input_end(
|
||||
&self,
|
||||
text: String,
|
||||
) {
|
||||
let mut guard = self.input_proxy_service_state.lock().await;
|
||||
|
||||
if let Some(keyboard) = guard.state.input_method_mut() {
|
||||
keyboard.input_method_state += 1;
|
||||
|
||||
tracing::info!("Text Input End");
|
||||
keyboard.input_method.commit_string(text);
|
||||
keyboard.input_method.commit(keyboard.input_method_state);
|
||||
guard.event_queue.flush().unwrap();
|
||||
}
|
||||
}
|
||||
|
|
@ -143,12 +182,18 @@ struct Keymap {
|
|||
size: u32,
|
||||
}
|
||||
|
||||
struct InputMethod {
|
||||
input_method: ZwpInputMethodV2,
|
||||
input_method_state: u32,
|
||||
}
|
||||
|
||||
enum InputProxyServiceState {
|
||||
Incomplete {
|
||||
queue_handle: QueueHandle<Self>,
|
||||
seat: Option<WlSeat>,
|
||||
virtual_pointer_manager: Option<ZwlrVirtualPointerManagerV1>,
|
||||
virtual_keyboard_manager: Option<ZwpVirtualKeyboardManagerV1>,
|
||||
input_method_manager: Option<ZwpInputMethodManagerV2>,
|
||||
keymap: Keymap,
|
||||
},
|
||||
Running {
|
||||
|
|
@ -158,6 +203,8 @@ enum InputProxyServiceState {
|
|||
|
||||
virtual_pointer: ZwlrVirtualPointerV1,
|
||||
virtual_keyboard: ZwpVirtualKeyboardV1,
|
||||
|
||||
input_method: InputMethod,
|
||||
},
|
||||
}
|
||||
impl InputProxyServiceState {
|
||||
|
|
@ -177,6 +224,7 @@ impl InputProxyServiceState {
|
|||
seat: None,
|
||||
virtual_pointer_manager: None,
|
||||
virtual_keyboard_manager: None,
|
||||
input_method_manager: None,
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -198,6 +246,13 @@ impl InputProxyServiceState {
|
|||
}
|
||||
}
|
||||
|
||||
fn input_method_mut(&mut self) -> Option<&mut InputMethod> {
|
||||
match self {
|
||||
Self::Running { input_method, .. } => Some(input_method),
|
||||
Self::Incomplete { .. } => None,
|
||||
}
|
||||
}
|
||||
|
||||
pub fn set_seat(
|
||||
&mut self,
|
||||
seat: WlSeat,
|
||||
|
|
@ -249,35 +304,63 @@ impl InputProxyServiceState {
|
|||
}
|
||||
}
|
||||
|
||||
pub fn set_input_method_manager(
|
||||
&mut self,
|
||||
input_method_manager: ZwpInputMethodManagerV2,
|
||||
) {
|
||||
if let Self::Incomplete {
|
||||
input_method_manager: existing @ None,
|
||||
..
|
||||
} = self
|
||||
{
|
||||
*existing = Some(input_method_manager);
|
||||
tracing::info!("Obtained Input Method Manager!");
|
||||
self.try_upgrade();
|
||||
} else {
|
||||
tracing::info!("Received duplicate ZwpInputMethodManagerV2");
|
||||
}
|
||||
}
|
||||
|
||||
pub fn try_upgrade(&mut self) {
|
||||
if let Self::Incomplete {
|
||||
queue_handle,
|
||||
keymap,
|
||||
seat: oseat @ Some(..),
|
||||
virtual_pointer_manager: ovpm @ Some(..),
|
||||
virtual_keyboard_manager: ovkm @ Some(..),
|
||||
seat: seat @ Some(..),
|
||||
virtual_pointer_manager: vpm @ Some(..),
|
||||
virtual_keyboard_manager: vkm @ Some(..),
|
||||
input_method_manager: imm @ Some(..),
|
||||
} = self
|
||||
{
|
||||
let virtual_keyboard = ovkm.as_ref().unwrap().create_virtual_keyboard(
|
||||
oseat.as_ref().unwrap(),
|
||||
let virtual_keyboard = vkm.as_ref().unwrap().create_virtual_keyboard(
|
||||
seat.as_ref().unwrap(),
|
||||
queue_handle,
|
||||
(),
|
||||
);
|
||||
|
||||
virtual_keyboard.keymap(XKB_V1, keymap.file.as_fd(), keymap.size);
|
||||
|
||||
let virtual_pointer = ovpm.as_ref().unwrap().create_virtual_pointer(
|
||||
Some(oseat.as_ref().unwrap()),
|
||||
let virtual_pointer = vpm.as_ref().unwrap().create_virtual_pointer(
|
||||
Some(seat.as_ref().unwrap()),
|
||||
queue_handle,
|
||||
(),
|
||||
);
|
||||
|
||||
let input_method =
|
||||
imm.as_ref()
|
||||
.unwrap()
|
||||
.get_input_method(seat.as_ref().unwrap(), queue_handle, ());
|
||||
|
||||
tracing::info!("InputProxyServiceState upgraded to running");
|
||||
*self = Self::Running {
|
||||
seat: oseat.take().unwrap(),
|
||||
virtual_pointer_manager: ovpm.take().unwrap(),
|
||||
virtual_keyboard_manager: ovkm.take().unwrap(),
|
||||
seat: seat.take().unwrap(),
|
||||
virtual_pointer_manager: vpm.take().unwrap(),
|
||||
virtual_keyboard_manager: vkm.take().unwrap(),
|
||||
virtual_pointer,
|
||||
virtual_keyboard,
|
||||
input_method: InputMethod {
|
||||
input_method,
|
||||
input_method_state: 0,
|
||||
},
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
@ -339,6 +422,33 @@ impl Dispatch<ZwpVirtualKeyboardManagerV1, ()> for InputProxyServiceState {
|
|||
}
|
||||
}
|
||||
|
||||
impl Dispatch<ZwpInputMethodManagerV2, ()> for InputProxyServiceState {
|
||||
fn event(
|
||||
_state: &mut Self,
|
||||
_proxy: &ZwpInputMethodManagerV2,
|
||||
_event: <ZwpInputMethodManagerV2 as Proxy>::Event,
|
||||
_data: &(),
|
||||
_conn: &Connection,
|
||||
_qhandle: &QueueHandle<Self>,
|
||||
) {
|
||||
tracing::warn!("Unknown event received from ZwpInputMethodManagerV2");
|
||||
}
|
||||
}
|
||||
|
||||
impl Dispatch<ZwpInputMethodV2, ()> for InputProxyServiceState {
|
||||
fn event(
|
||||
_state: &mut Self,
|
||||
_proxy: &ZwpInputMethodV2,
|
||||
_event: <ZwpInputMethodV2 as Proxy>::Event,
|
||||
_data: &(),
|
||||
_conn: &Connection,
|
||||
_qhandle: &QueueHandle<Self>,
|
||||
) {
|
||||
panic!();
|
||||
tracing::warn!("Unknown event received from ZwpInputMethodV2");
|
||||
}
|
||||
}
|
||||
|
||||
impl Dispatch<WlSeat, ()> for InputProxyServiceState {
|
||||
fn event(
|
||||
_state: &mut Self,
|
||||
|
|
@ -399,6 +509,15 @@ impl Dispatch<WlRegistry, ()> for InputProxyServiceState {
|
|||
);
|
||||
app_data.set_virtual_keyboard_manager(manager);
|
||||
},
|
||||
"zwp_input_method_manager_v2" => {
|
||||
let manager = registry.bind::<ZwpInputMethodManagerV2, _, _>(
|
||||
name,
|
||||
version,
|
||||
queue_handle,
|
||||
(),
|
||||
);
|
||||
app_data.set_input_method_manager(manager);
|
||||
},
|
||||
_ => {},
|
||||
},
|
||||
Event::GlobalRemove { .. } => todo!(),
|
||||
|
|
|
|||
|
|
@ -1,3 +1,571 @@
|
|||
fn is_key_string(s: &str) -> bool {
|
||||
s.chars().all(|c| !c.is_control()) && s.chars().skip(1).all(|c| !c.is_ascii())
|
||||
}
|
||||
|
||||
pub fn web_key_to_linux_keycode(s: &str) -> Option<u32> {
|
||||
match s {
|
||||
//s if is_key_string(s) => Ok(Character(s.to_string())),
|
||||
"Unidentified" => todo!(),
|
||||
"Alt" => Some(KEY_LEFTALT),
|
||||
"AltGraph" => Some(KEY_RIGHTALT),
|
||||
"CapsLock" => todo!(),
|
||||
"Control" => todo!(),
|
||||
"Fn" => todo!(),
|
||||
"FnLock" => todo!(),
|
||||
"Meta" => todo!(),
|
||||
"NumLock" => todo!(),
|
||||
"ScrollLock" => todo!(),
|
||||
"Shift" => todo!(),
|
||||
"Symbol" => todo!(),
|
||||
"SymbolLock" => todo!(),
|
||||
"Hyper" => todo!(),
|
||||
"Super" => todo!(),
|
||||
"Enter" => todo!(),
|
||||
"Tab" => todo!(),
|
||||
"ArrowDown" => todo!(),
|
||||
"ArrowLeft" => todo!(),
|
||||
"ArrowRight" => todo!(),
|
||||
"ArrowUp" => todo!(),
|
||||
"End" => todo!(),
|
||||
"Home" => todo!(),
|
||||
"PageDown" => todo!(),
|
||||
"PageUp" => todo!(),
|
||||
"Backspace" => todo!(),
|
||||
"Clear" => todo!(),
|
||||
"Copy" => todo!(),
|
||||
"CrSel" => todo!(),
|
||||
"Cut" => todo!(),
|
||||
"Delete" => todo!(),
|
||||
"EraseEof" => todo!(),
|
||||
"ExSel" => todo!(),
|
||||
"Insert" => todo!(),
|
||||
"Paste" => todo!(),
|
||||
"Redo" => todo!(),
|
||||
"Undo" => todo!(),
|
||||
"Accept" => todo!(),
|
||||
"Again" => todo!(),
|
||||
"Attn" => todo!(),
|
||||
"Cancel" => todo!(),
|
||||
"ContextMenu" => todo!(),
|
||||
"Escape" => todo!(),
|
||||
"Execute" => todo!(),
|
||||
"Find" => todo!(),
|
||||
"Help" => todo!(),
|
||||
"Pause" => todo!(),
|
||||
"Play" => todo!(),
|
||||
"Props" => todo!(),
|
||||
"Select" => todo!(),
|
||||
"ZoomIn" => todo!(),
|
||||
"ZoomOut" => todo!(),
|
||||
"BrightnessDown" => todo!(),
|
||||
"BrightnessUp" => todo!(),
|
||||
"Eject" => todo!(),
|
||||
"LogOff" => todo!(),
|
||||
"Power" => todo!(),
|
||||
"PowerOff" => todo!(),
|
||||
"PrintScreen" => todo!(),
|
||||
"Hibernate" => todo!(),
|
||||
"Standby" => todo!(),
|
||||
"WakeUp" => todo!(),
|
||||
"AllCandidates" => todo!(),
|
||||
"Alphanumeric" => todo!(),
|
||||
"CodeInput" => todo!(),
|
||||
"Compose" => todo!(),
|
||||
"Convert" => todo!(),
|
||||
"Dead" => todo!(),
|
||||
"FinalMode" => todo!(),
|
||||
"GroupFirst" => todo!(),
|
||||
"GroupLast" => todo!(),
|
||||
"GroupNext" => todo!(),
|
||||
"GroupPrevious" => todo!(),
|
||||
"ModeChange" => todo!(),
|
||||
"NextCandidate" => todo!(),
|
||||
"NonConvert" => todo!(),
|
||||
"PreviousCandidate" => todo!(),
|
||||
"Process" => todo!(),
|
||||
"SingleCandidate" => todo!(),
|
||||
"HangulMode" => todo!(),
|
||||
"HanjaMode" => todo!(),
|
||||
"JunjaMode" => todo!(),
|
||||
"Eisu" => todo!(),
|
||||
"Hankaku" => todo!(),
|
||||
"Hiragana" => todo!(),
|
||||
"HiraganaKatakana" => todo!(),
|
||||
"KanaMode" => todo!(),
|
||||
"KanjiMode" => todo!(),
|
||||
"Katakana" => todo!(),
|
||||
"Romaji" => todo!(),
|
||||
"Zenkaku" => todo!(),
|
||||
"ZenkakuHankaku" => todo!(),
|
||||
"Soft1" => todo!(),
|
||||
"Soft2" => todo!(),
|
||||
"Soft3" => todo!(),
|
||||
"Soft4" => todo!(),
|
||||
"ChannelDown" => todo!(),
|
||||
"ChannelUp" => todo!(),
|
||||
"Close" => todo!(),
|
||||
"MailForward" => todo!(),
|
||||
"MailReply" => todo!(),
|
||||
"MailSend" => todo!(),
|
||||
"MediaClose" => todo!(),
|
||||
"MediaFastForward" => todo!(),
|
||||
"MediaPause" => todo!(),
|
||||
"MediaPlay" => todo!(),
|
||||
"MediaPlayPause" => todo!(),
|
||||
"MediaRecord" => todo!(),
|
||||
"MediaRewind" => todo!(),
|
||||
"MediaStop" => todo!(),
|
||||
"MediaTrackNext" => todo!(),
|
||||
"MediaTrackPrevious" => todo!(),
|
||||
"New" => todo!(),
|
||||
"Open" => todo!(),
|
||||
"Print" => todo!(),
|
||||
"Save" => todo!(),
|
||||
"SpellCheck" => todo!(),
|
||||
"Key11" => todo!(),
|
||||
"Key12" => todo!(),
|
||||
"AudioBalanceLeft" => todo!(),
|
||||
"AudioBalanceRight" => todo!(),
|
||||
"AudioBassBoostDown" => todo!(),
|
||||
"AudioBassBoostToggle" => todo!(),
|
||||
"AudioBassBoostUp" => todo!(),
|
||||
"AudioFaderFront" => todo!(),
|
||||
"AudioFaderRear" => todo!(),
|
||||
"AudioSurroundModeNext" => todo!(),
|
||||
"AudioTrebleDown" => todo!(),
|
||||
"AudioTrebleUp" => todo!(),
|
||||
"AudioVolumeDown" => todo!(),
|
||||
"AudioVolumeUp" => todo!(),
|
||||
"AudioVolumeMute" => todo!(),
|
||||
"MicrophoneToggle" => todo!(),
|
||||
"MicrophoneVolumeDown" => todo!(),
|
||||
"MicrophoneVolumeUp" => todo!(),
|
||||
"MicrophoneVolumeMute" => todo!(),
|
||||
"SpeechCorrectionList" => todo!(),
|
||||
"SpeechInputToggle" => todo!(),
|
||||
"LaunchApplication1" => todo!(),
|
||||
"LaunchApplication2" => todo!(),
|
||||
"LaunchCalendar" => todo!(),
|
||||
"LaunchContacts" => todo!(),
|
||||
"LaunchMail" => todo!(),
|
||||
"LaunchMediaPlayer" => todo!(),
|
||||
"LaunchMusicPlayer" => todo!(),
|
||||
"LaunchPhone" => todo!(),
|
||||
"LaunchScreenSaver" => todo!(),
|
||||
"LaunchSpreadsheet" => todo!(),
|
||||
"LaunchWebBrowser" => todo!(),
|
||||
"LaunchWebCam" => todo!(),
|
||||
"LaunchWordProcessor" => todo!(),
|
||||
"BrowserBack" => todo!(),
|
||||
"BrowserFavorites" => todo!(),
|
||||
"BrowserForward" => todo!(),
|
||||
"BrowserHome" => todo!(),
|
||||
"BrowserRefresh" => todo!(),
|
||||
"BrowserSearch" => todo!(),
|
||||
"BrowserStop" => todo!(),
|
||||
"AppSwitch" => todo!(),
|
||||
"Call" => todo!(),
|
||||
"Camera" => todo!(),
|
||||
"CameraFocus" => todo!(),
|
||||
"EndCall" => todo!(),
|
||||
"GoBack" => todo!(),
|
||||
"GoHome" => todo!(),
|
||||
"HeadsetHook" => todo!(),
|
||||
"LastNumberRedial" => todo!(),
|
||||
"Notification" => todo!(),
|
||||
"MannerMode" => todo!(),
|
||||
"VoiceDial" => todo!(),
|
||||
"TV" => todo!(),
|
||||
"TV3DMode" => todo!(),
|
||||
"TVAntennaCable" => todo!(),
|
||||
"TVAudioDescription" => todo!(),
|
||||
"TVAudioDescriptionMixDown" => todo!(),
|
||||
"TVAudioDescriptionMixUp" => todo!(),
|
||||
"TVContentsMenu" => todo!(),
|
||||
"TVDataService" => todo!(),
|
||||
"TVInput" => todo!(),
|
||||
"TVInputComponent1" => todo!(),
|
||||
"TVInputComponent2" => todo!(),
|
||||
"TVInputComposite1" => todo!(),
|
||||
"TVInputComposite2" => todo!(),
|
||||
"TVInputHDMI1" => todo!(),
|
||||
"TVInputHDMI2" => todo!(),
|
||||
"TVInputHDMI3" => todo!(),
|
||||
"TVInputHDMI4" => todo!(),
|
||||
"TVInputVGA1" => todo!(),
|
||||
"TVMediaContext" => todo!(),
|
||||
"TVNetwork" => todo!(),
|
||||
"TVNumberEntry" => todo!(),
|
||||
"TVPower" => todo!(),
|
||||
"TVRadioService" => todo!(),
|
||||
"TVSatellite" => todo!(),
|
||||
"TVSatelliteBS" => todo!(),
|
||||
"TVSatelliteCS" => todo!(),
|
||||
"TVSatelliteToggle" => todo!(),
|
||||
"TVTerrestrialAnalog" => todo!(),
|
||||
"TVTerrestrialDigital" => todo!(),
|
||||
"TVTimer" => todo!(),
|
||||
"AVRInput" => todo!(),
|
||||
"AVRPower" => todo!(),
|
||||
"ColorF0Red" => todo!(),
|
||||
"ColorF1Green" => todo!(),
|
||||
"ColorF2Yellow" => todo!(),
|
||||
"ColorF3Blue" => todo!(),
|
||||
"ColorF4Grey" => todo!(),
|
||||
"ColorF5Brown" => todo!(),
|
||||
"ClosedCaptionToggle" => todo!(),
|
||||
"Dimmer" => todo!(),
|
||||
"DisplaySwap" => todo!(),
|
||||
"DVR" => todo!(),
|
||||
"Exit" => todo!(),
|
||||
"FavoriteClear0" => todo!(),
|
||||
"FavoriteClear1" => todo!(),
|
||||
"FavoriteClear2" => todo!(),
|
||||
"FavoriteClear3" => todo!(),
|
||||
"FavoriteRecall0" => todo!(),
|
||||
"FavoriteRecall1" => todo!(),
|
||||
"FavoriteRecall2" => todo!(),
|
||||
"FavoriteRecall3" => todo!(),
|
||||
"FavoriteStore0" => todo!(),
|
||||
"FavoriteStore1" => todo!(),
|
||||
"FavoriteStore2" => todo!(),
|
||||
"FavoriteStore3" => todo!(),
|
||||
"Guide" => todo!(),
|
||||
"GuideNextDay" => todo!(),
|
||||
"GuidePreviousDay" => todo!(),
|
||||
"Info" => todo!(),
|
||||
"InstantReplay" => todo!(),
|
||||
"Link" => todo!(),
|
||||
"ListProgram" => todo!(),
|
||||
"LiveContent" => todo!(),
|
||||
"Lock" => todo!(),
|
||||
"MediaApps" => todo!(),
|
||||
"MediaAudioTrack" => todo!(),
|
||||
"MediaLast" => todo!(),
|
||||
"MediaSkipBackward" => todo!(),
|
||||
"MediaSkipForward" => todo!(),
|
||||
"MediaStepBackward" => todo!(),
|
||||
"MediaStepForward" => todo!(),
|
||||
"MediaTopMenu" => todo!(),
|
||||
"NavigateIn" => todo!(),
|
||||
"NavigateNext" => todo!(),
|
||||
"NavigateOut" => todo!(),
|
||||
"NavigatePrevious" => todo!(),
|
||||
"NextFavoriteChannel" => todo!(),
|
||||
"NextUserProfile" => todo!(),
|
||||
"OnDemand" => todo!(),
|
||||
"Pairing" => todo!(),
|
||||
"PinPDown" => todo!(),
|
||||
"PinPMove" => todo!(),
|
||||
"PinPToggle" => todo!(),
|
||||
"PinPUp" => todo!(),
|
||||
"PlaySpeedDown" => todo!(),
|
||||
"PlaySpeedReset" => todo!(),
|
||||
"PlaySpeedUp" => todo!(),
|
||||
"RandomToggle" => todo!(),
|
||||
"RcLowBattery" => todo!(),
|
||||
"RecordSpeedNext" => todo!(),
|
||||
"RfBypass" => todo!(),
|
||||
"ScanChannelsToggle" => todo!(),
|
||||
"ScreenModeNext" => todo!(),
|
||||
"Settings" => todo!(),
|
||||
"SplitScreenToggle" => todo!(),
|
||||
"STBInput" => todo!(),
|
||||
"STBPower" => todo!(),
|
||||
"Subtitle" => todo!(),
|
||||
"Teletext" => todo!(),
|
||||
"VideoModeNext" => todo!(),
|
||||
"Wink" => todo!(),
|
||||
"ZoomToggle" => todo!(),
|
||||
"F1" => todo!(),
|
||||
"F2" => todo!(),
|
||||
"F3" => todo!(),
|
||||
"F4" => todo!(),
|
||||
"F5" => todo!(),
|
||||
"F6" => todo!(),
|
||||
"F7" => todo!(),
|
||||
"F8" => todo!(),
|
||||
"F9" => todo!(),
|
||||
"F10" => todo!(),
|
||||
"F11" => todo!(),
|
||||
"F12" => todo!(),
|
||||
"F13" => todo!(),
|
||||
"F14" => todo!(),
|
||||
"F15" => todo!(),
|
||||
"F16" => todo!(),
|
||||
"F17" => todo!(),
|
||||
"F18" => todo!(),
|
||||
"F19" => todo!(),
|
||||
"F20" => todo!(),
|
||||
"F21" => todo!(),
|
||||
"F22" => todo!(),
|
||||
"F23" => todo!(),
|
||||
"F24" => todo!(),
|
||||
"F25" => todo!(),
|
||||
"F26" => todo!(),
|
||||
"F27" => todo!(),
|
||||
"F28" => todo!(),
|
||||
"F29" => todo!(),
|
||||
"F30" => todo!(),
|
||||
"F31" => todo!(),
|
||||
"F32" => todo!(),
|
||||
"F33" => todo!(),
|
||||
"F34" => todo!(),
|
||||
"F35" => todo!(),
|
||||
_ => todo!(),
|
||||
}
|
||||
}
|
||||
|
||||
const KEY_RESERVED: u32 = 0;
|
||||
const KEY_ESC: u32 = 1;
|
||||
const KEY_1: u32 = 2;
|
||||
const KEY_2: u32 = 3;
|
||||
const KEY_3: u32 = 4;
|
||||
const KEY_4: u32 = 5;
|
||||
const KEY_5: u32 = 6;
|
||||
const KEY_6: u32 = 7;
|
||||
const KEY_7: u32 = 8;
|
||||
const KEY_8: u32 = 9;
|
||||
const KEY_9: u32 = 10;
|
||||
const KEY_0: u32 = 11;
|
||||
const KEY_MINUS: u32 = 12;
|
||||
const KEY_EQUAL: u32 = 13;
|
||||
const KEY_BACKSPACE: u32 = 14;
|
||||
const KEY_TAB: u32 = 15;
|
||||
const KEY_Q: u32 = 16;
|
||||
const KEY_W: u32 = 17;
|
||||
const KEY_E: u32 = 18;
|
||||
const KEY_R: u32 = 19;
|
||||
const KEY_T: u32 = 20;
|
||||
const KEY_Y: u32 = 21;
|
||||
const KEY_U: u32 = 22;
|
||||
const KEY_I: u32 = 23;
|
||||
const KEY_O: u32 = 24;
|
||||
const KEY_P: u32 = 25;
|
||||
const KEY_LEFTBRACE: u32 = 26;
|
||||
const KEY_RIGHTBRACE: u32 = 27;
|
||||
const KEY_ENTER: u32 = 28;
|
||||
const KEY_LEFTCTRL: u32 = 29;
|
||||
const KEY_A: u32 = 30;
|
||||
const KEY_S: u32 = 31;
|
||||
const KEY_D: u32 = 32;
|
||||
const KEY_F: u32 = 33;
|
||||
const KEY_G: u32 = 34;
|
||||
const KEY_H: u32 = 35;
|
||||
const KEY_J: u32 = 36;
|
||||
const KEY_K: u32 = 37;
|
||||
const KEY_L: u32 = 38;
|
||||
const KEY_SEMICOLON: u32 = 39;
|
||||
const KEY_APOSTROPHE: u32 = 40;
|
||||
const KEY_GRAVE: u32 = 41;
|
||||
const KEY_LEFTSHIFT: u32 = 42;
|
||||
const KEY_BACKSLASH: u32 = 43;
|
||||
const KEY_Z: u32 = 44;
|
||||
const KEY_X: u32 = 45;
|
||||
const KEY_C: u32 = 46;
|
||||
const KEY_V: u32 = 47;
|
||||
const KEY_B: u32 = 48;
|
||||
const KEY_N: u32 = 49;
|
||||
const KEY_M: u32 = 50;
|
||||
const KEY_COMMA: u32 = 51;
|
||||
const KEY_DOT: u32 = 52;
|
||||
const KEY_SLASH: u32 = 53;
|
||||
const KEY_RIGHTSHIFT: u32 = 54;
|
||||
const KEY_KPASTERISK: u32 = 55;
|
||||
const KEY_LEFTALT: u32 = 56;
|
||||
const KEY_SPACE: u32 = 57;
|
||||
const KEY_CAPSLOCK: u32 = 58;
|
||||
const KEY_F1: u32 = 59;
|
||||
const KEY_F2: u32 = 60;
|
||||
const KEY_F3: u32 = 61;
|
||||
const KEY_F4: u32 = 62;
|
||||
const KEY_F5: u32 = 63;
|
||||
const KEY_F6: u32 = 64;
|
||||
const KEY_F7: u32 = 65;
|
||||
const KEY_F8: u32 = 66;
|
||||
const KEY_F9: u32 = 67;
|
||||
const KEY_F10: u32 = 68;
|
||||
const KEY_NUMLOCK: u32 = 69;
|
||||
const KEY_SCROLLLOCK: u32 = 70;
|
||||
const KEY_KP7: u32 = 71;
|
||||
const KEY_KP8: u32 = 72;
|
||||
const KEY_KP9: u32 = 73;
|
||||
const KEY_KPMINUS: u32 = 74;
|
||||
const KEY_KP4: u32 = 75;
|
||||
const KEY_KP5: u32 = 76;
|
||||
const KEY_KP6: u32 = 77;
|
||||
const KEY_KPPLUS: u32 = 78;
|
||||
const KEY_KP1: u32 = 79;
|
||||
const KEY_KP2: u32 = 80;
|
||||
const KEY_KP3: u32 = 81;
|
||||
const KEY_KP0: u32 = 82;
|
||||
const KEY_KPDOT: u32 = 83;
|
||||
const KEY_ZENKAKUHANKAKU: u32 = 85;
|
||||
const KEY_102ND: u32 = 86;
|
||||
const KEY_F11: u32 = 87;
|
||||
const KEY_F12: u32 = 88;
|
||||
const KEY_RO: u32 = 89;
|
||||
const KEY_KATAKANA: u32 = 90;
|
||||
const KEY_HIRAGANA: u32 = 91;
|
||||
const KEY_HENKAN: u32 = 92;
|
||||
const KEY_KATAKANAHIRAGANA: u32 = 93;
|
||||
const KEY_MUHENKAN: u32 = 94;
|
||||
const KEY_KPJPCOMMA: u32 = 95;
|
||||
const KEY_KPENTER: u32 = 96;
|
||||
const KEY_RIGHTCTRL: u32 = 97;
|
||||
const KEY_KPSLASH: u32 = 98;
|
||||
const KEY_SYSRQ: u32 = 99;
|
||||
const KEY_RIGHTALT: u32 = 100;
|
||||
const KEY_LINEFEED: u32 = 101;
|
||||
const KEY_HOME: u32 = 102;
|
||||
const KEY_UP: u32 = 103;
|
||||
const KEY_PAGEUP: u32 = 104;
|
||||
const KEY_LEFT: u32 = 105;
|
||||
const KEY_RIGHT: u32 = 106;
|
||||
const KEY_END: u32 = 107;
|
||||
const KEY_DOWN: u32 = 108;
|
||||
const KEY_PAGEDOWN: u32 = 109;
|
||||
const KEY_INSERT: u32 = 110;
|
||||
const KEY_DELETE: u32 = 111;
|
||||
const KEY_MACRO: u32 = 112;
|
||||
const KEY_MUTE: u32 = 113;
|
||||
const KEY_VOLUMEDOWN: u32 = 114;
|
||||
const KEY_VOLUMEUP: u32 = 115;
|
||||
const KEY_POWER : u32 = 116 /* SC System Power Down */;
|
||||
const KEY_KPEQUAL: u32 = 117;
|
||||
const KEY_KPPLUSMINUS: u32 = 118;
|
||||
const KEY_PAUSE: u32 = 119;
|
||||
const KEY_SCALE : u32 = 120 /* AL Compiz Scale (Expose) */;
|
||||
const KEY_KPCOMMA: u32 = 121;
|
||||
const KEY_HANGEUL: u32 = 122;
|
||||
const KEY_HANGUEL: u32 = KEY_HANGEUL;
|
||||
const KEY_HANJA: u32 = 123;
|
||||
const KEY_YEN: u32 = 124;
|
||||
const KEY_LEFTMETA: u32 = 125;
|
||||
const KEY_RIGHTMETA: u32 = 126;
|
||||
const KEY_COMPOSE: u32 = 127;
|
||||
const KEY_STOP : u32 = 128 /* AC Stop */;
|
||||
const KEY_AGAIN: u32 = 129;
|
||||
const KEY_PROPS : u32 = 130 /* AC Properties */;
|
||||
const KEY_UNDO : u32 = 131 /* AC Undo */;
|
||||
const KEY_FRONT: u32 = 132;
|
||||
const KEY_COPY : u32 = 133 /* AC Copy */;
|
||||
const KEY_OPEN : u32 = 134 /* AC Open */;
|
||||
const KEY_PASTE : u32 = 135 /* AC Paste */;
|
||||
const KEY_FIND : u32 = 136 /* AC Search */;
|
||||
const KEY_CUT : u32 = 137 /* AC Cut */;
|
||||
const KEY_HELP : u32 = 138 /* AL Integrated Help Center */;
|
||||
const KEY_MENU : u32 = 139 /* Menu (show menu) */;
|
||||
const KEY_CALC : u32 = 140 /* AL Calculator */;
|
||||
const KEY_SETUP: u32 = 141;
|
||||
const KEY_SLEEP : u32 = 142 /* SC System Sleep */;
|
||||
const KEY_WAKEUP : u32 = 143 /* System Wake Up */;
|
||||
const KEY_FILE : u32 = 144 /* AL Local Machine Browser */;
|
||||
const KEY_SENDFILE: u32 = 145;
|
||||
const KEY_DELETEFILE: u32 = 146;
|
||||
const KEY_XFER: u32 = 147;
|
||||
const KEY_PROG1: u32 = 148;
|
||||
const KEY_PROG2: u32 = 149;
|
||||
const KEY_WWW : u32 = 150 /* AL Internet Browser */;
|
||||
const KEY_MSDOS: u32 = 151;
|
||||
const KEY_COFFEE : u32 = 152 /* AL Terminal Lock/Screensaver */;
|
||||
const KEY_SCREENLOCK: u32 = KEY_COFFEE;
|
||||
const KEY_ROTATE_DISPLAY : u32 = 153 /* Display orientation for e.g. tablets */;
|
||||
const KEY_DIRECTION: u32 = KEY_ROTATE_DISPLAY;
|
||||
const KEY_CYCLEWINDOWS: u32 = 154;
|
||||
const KEY_MAIL: u32 = 155;
|
||||
const KEY_BOOKMARKS : u32 = 156 /* AC Bookmarks */;
|
||||
const KEY_COMPUTER: u32 = 157;
|
||||
const KEY_BACK : u32 = 158 /* AC Back */;
|
||||
const KEY_FORWARD : u32 = 159 /* AC Forward */;
|
||||
const KEY_CLOSECD: u32 = 160;
|
||||
const KEY_EJECTCD: u32 = 161;
|
||||
const KEY_EJECTCLOSECD: u32 = 162;
|
||||
const KEY_NEXTSONG: u32 = 163;
|
||||
const KEY_PLAYPAUSE: u32 = 164;
|
||||
const KEY_PREVIOUSSONG: u32 = 165;
|
||||
const KEY_STOPCD: u32 = 166;
|
||||
const KEY_RECORD: u32 = 167;
|
||||
const KEY_REWIND: u32 = 168;
|
||||
const KEY_PHONE : u32 = 169 /* Media Select Telephone */;
|
||||
const KEY_ISO: u32 = 170;
|
||||
const KEY_CONFIG : u32 = 171 /* AL Consumer Control Configuration */;
|
||||
const KEY_HOMEPAGE : u32 = 172 /* AC Home */;
|
||||
const KEY_REFRESH : u32 = 173 /* AC Refresh */;
|
||||
const KEY_EXIT : u32 = 174 /* AC Exit */;
|
||||
const KEY_MOVE: u32 = 175;
|
||||
const KEY_EDIT: u32 = 176;
|
||||
const KEY_SCROLLUP: u32 = 177;
|
||||
const KEY_SCROLLDOWN: u32 = 178;
|
||||
const KEY_KPLEFTPAREN: u32 = 179;
|
||||
const KEY_KPRIGHTPAREN: u32 = 180;
|
||||
const KEY_NEW : u32 = 181 /* AC New */;
|
||||
const KEY_REDO : u32 = 182 /* AC Redo/Repeat */;
|
||||
const KEY_F13: u32 = 183;
|
||||
const KEY_F14: u32 = 184;
|
||||
const KEY_F15: u32 = 185;
|
||||
const KEY_F16: u32 = 186;
|
||||
const KEY_F17: u32 = 187;
|
||||
const KEY_F18: u32 = 188;
|
||||
const KEY_F19: u32 = 189;
|
||||
const KEY_F20: u32 = 190;
|
||||
const KEY_F21: u32 = 191;
|
||||
const KEY_F22: u32 = 192;
|
||||
const KEY_F23: u32 = 193;
|
||||
const KEY_F24: u32 = 194;
|
||||
const KEY_PLAYCD: u32 = 200;
|
||||
const KEY_PAUSECD: u32 = 201;
|
||||
const KEY_PROG3: u32 = 202;
|
||||
const KEY_PROG4: u32 = 203;
|
||||
const KEY_ALL_APPLICATIONS : u32 = 204 /* AC Desktop Show All Applications */;
|
||||
const KEY_DASHBOARD: u32 = KEY_ALL_APPLICATIONS;
|
||||
const KEY_SUSPEND: u32 = 205;
|
||||
const KEY_CLOSE : u32 = 206 /* AC Close */;
|
||||
const KEY_PLAY: u32 = 207;
|
||||
const KEY_FASTFORWARD: u32 = 208;
|
||||
const KEY_BASSBOOST: u32 = 209;
|
||||
const KEY_PRINT : u32 = 210 /* AC Print */;
|
||||
const KEY_HP: u32 = 211;
|
||||
const KEY_CAMERA: u32 = 212;
|
||||
const KEY_SOUND: u32 = 213;
|
||||
const KEY_QUESTION: u32 = 214;
|
||||
const KEY_EMAIL: u32 = 215;
|
||||
const KEY_CHAT: u32 = 216;
|
||||
const KEY_SEARCH: u32 = 217;
|
||||
const KEY_CONNECT: u32 = 218;
|
||||
const KEY_FINANCE : u32 = 219 /* AL Checkbook/Finance */;
|
||||
const KEY_SPORT: u32 = 220;
|
||||
const KEY_SHOP: u32 = 221;
|
||||
const KEY_ALTERASE: u32 = 222;
|
||||
const KEY_CANCEL : u32 = 223 /* AC Cancel */;
|
||||
const KEY_BRIGHTNESSDOWN: u32 = 224;
|
||||
const KEY_BRIGHTNESSUP: u32 = 225;
|
||||
const KEY_MEDIA: u32 = 226;
|
||||
const KEY_SWITCHVIDEOMODE : u32 = 227 /* Cycle between available video outputs (Monitor/LCD/TV-out/etc) */;
|
||||
const KEY_KBDILLUMTOGGLE: u32 = 228;
|
||||
const KEY_KBDILLUMDOWN: u32 = 229;
|
||||
const KEY_KBDILLUMUP: u32 = 230;
|
||||
const KEY_SEND : u32 = 231 /* AC Send */;
|
||||
const KEY_REPLY : u32 = 232 /* AC Reply */;
|
||||
const KEY_FORWARDMAIL : u32 = 233 /* AC Forward Msg */;
|
||||
const KEY_SAVE : u32 = 234 /* AC Save */;
|
||||
const KEY_DOCUMENTS: u32 = 235;
|
||||
const KEY_BATTERY: u32 = 236;
|
||||
const KEY_BLUETOOTH: u32 = 237;
|
||||
const KEY_WLAN: u32 = 238;
|
||||
const KEY_UWB: u32 = 239;
|
||||
const KEY_UNKNOWN: u32 = 240;
|
||||
const KEY_VIDEO_NEXT : u32 = 241 /* drive next video source */;
|
||||
const KEY_VIDEO_PREV : u32 = 242 /* drive previous video source */;
|
||||
const KEY_BRIGHTNESS_CYCLE : u32 = 243 /* brightness up, after max is min */;
|
||||
const KEY_BRIGHTNESS_AUTO : u32 = 244 /* Set Auto Brightness: manual brightness control is off, rely on ambient */;
|
||||
const KEY_BRIGHTNESS_ZERO: u32 = KEY_BRIGHTNESS_AUTO;
|
||||
const KEY_DISPLAY_OFF : u32 = 245 /* display device to off state */;
|
||||
const KEY_WWAN : u32 = 246 /* Wireless WAN (LTE, UMTS, GSM, etc.) */;
|
||||
const KEY_WIMAX: u32 = KEY_WWAN;
|
||||
const KEY_RFKILL : u32 = 247 /* Key that controls all radios */;
|
||||
const KEY_MICMUTE : u32 = 248 /* Mute / unmute the microphone */;
|
||||
|
||||
pub const KEYMAP: &str = "xkb_keymap {}";
|
||||
|
||||
pub const KEYMAP_: &str = "xkb_keymap {\
|
||||
|
|
|
|||
|
|
@ -117,10 +117,6 @@
|
|||
wasmBindgen
|
||||
|
||||
pkgs.libxkbcommon
|
||||
|
||||
pkgs.clang
|
||||
pkgs.llvmPackages.libclang
|
||||
|
||||
];
|
||||
|
||||
scripts.checkall.exec = ''
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue