キーボードドライバのパッチあて
XPERIA X1はFn併用に割り当てられていないキーがたくさんあるので、記号に割り当てるようkeypad.dllをいじってみました。あとSoftキーがApp2(0xc2)やApp3(0xc3)になっているんで、ここはSoft1(0x70)とSoft2(0x71)に変更してみました。
なお、id:tmytさんが手を入れられたKeypad.dllをベースに色々追加してみましたが、XPANELキー(0xea)はキーダウンは0xeaだけど、キーアップが0xeaにスキャンコード0xffがついてくるようで、そこをつぶせなかったので使い方によっては若干変な動きをします。私はXPANELキーに短押でWIN、長押でXPANELにしたかったのですが、普通に割り当ててもうまくいかず、試行錯誤のうえSortInchKeyでXPANEL(0xea)をコード登録のうえ、XPANELにスキャン:0xffで短押にアプリ実行PQz_KEY.exe、パラメータにD:0x5b U:0x5bでWINキー割当、長押にアプリ実行PMRunner.exe(tmytさん作)でXPANEL起動の設定ができました。あとFnで割り当てしきれなかった{}は、PQzIIのProgramからPQz_KEY.exeでCtrl+Tに0x10+0xdbで{、Cntl+Yに0x10+0xddで}としてみました。
で、こんな感じになってます。
キー | コード | キー(Fn+) | コード(Fn+) | |
Win | 0x5b | |||
Q | 0x51 | Fn + Q = ! | 0x21 | |
W | 0x57 | Fn + W = " | 0x22 | |
E | 0x45 | Fn + E = / | 0x2f | |
R | 0x52 | Fn + R = & | 0x26 | |
T | 0x54 | Fn + T = ( | 0x28 | |
Y | 0x59 | Fn + Y = ) | 0x29 | |
U | 0x55 | Fn + U = 1 | 0x31 | |
I | 0x49 | Fn + I = 2 | 0x32 | |
O | 0x4f | Fn + O = 3 | 0x33 | |
P | 0x50 | Fn + P = ; | 0x3b | |
← | 0x08 | Fn + ← = Del | 0x2e | |
Tab | 0x09 | |||
A | 0x41 | Fn + A = ^ | 0x5e | |
S | 0x53 | Fn + S = % | 0x25 | |
D | 0x44 | Fn + D = $ | 0x24 | |
F | 0x46 | Fn + F = [ | 0xdb | |
G | 0x47 | Fn + G = ] | 0xdd | |
H | 0x48 | Fn + H = - | 0x2d | |
J | 0x4a | Fn + J = 4 | 0x34 | |
K | 0x4b | Fn + K = 5 | 0x35 | |
L | 0x4c | Fn + L = 6 | 0x36 | |
Enter | 0x0d | |||
@ | 0x40 | Fn + @ = _ | 0x5f | |
Z | 0x5a | Fn + Z = ~ | 0x7e | |
X | 0x58 | Fn + X = \ | 0x5c | |
C | 0x43 | Fn + C = < | 0x3c | |
V | 0x56 | Fn + V = > | 0x3e | |
B | 0x42 | Fn + B = = | 0x3d | |
N | 0x4e | Fn + N = + | 0x2b | |
M | 0x4d | Fn + M = 7 | 0x37 | |
: | 0x3a | Fn + : = 8 | 0x38 | |
' | 0xde | Fn + ' = 9 | 0x39 | |
Fn | 0xec | |||
Sym | 0xeb | |||
au | 0xed | |||
Space | 0x20 | |||
, | 0xbc | Fn + , = * | 0x2a | |
. | 0xbe | Fn + . = 0 | 0a30 | |
? | 0x3f | Fn + ? = # | 0x23 | |
OK | 0x5c | |||
Soft1 | 0x70 | (0xc2+scan:0xffから振り直し) | ||
Soft2 | 0x71 | (0xc3+scan:0xffから振り直し) | ||
Phone | 0x72 | |||
Phone End | 0x73 | |||
XPANEL | 0xea | |||
OK | ||||
LEFT | 0x25+0x84 | |||
UP | 0x26+0x84 | |||
RIGHT | 0x27+0x84 | |||
DOWN | 0x28+0x84 |
試してみたいという奇特な方は・・・
オレオレ署名なんでDark_Sign_cert.cabSDKCertで署名してから、XperiaHackedKeypad.dll.CABをいれてください。
インストール後再起動したらキーボードが効かなくなっているかもしれませんが、dllがstopしているだけなのでFdcSoftのTaskMgrなどからServiceを開始すれば大丈夫です。
Dark_sign_cert.cab
XperiaHackedKeypad.dll.CAB
SDKCert修正版
SDKCerts.CAB
XperiaHackedKeypad.dll.CAB
とはいったものの、私は比較的最近XPERIA X1を手に入れましたが、皆さん既に長く使われてると思うのでこの辺はとっくに解決してますよね。
(追記)4/19 11:46
さっき再起動したら、XPANELキーはスキャンコード0xffをはいてませんでした。昨日は寝ぼけてたのかも。。。ということで、XPANEL長押しは解決できてません。それと再起動のたびkeypad.dllのServiceがとまっているようなので、そこもどうにかする必要がありそうです。もう少し調べてみることにします。
(追記)4/19 20:28
オレオレ署名だと再起動の度にいちいちService立ち上げないといけないので、KovskyKitchenに入っていたSDKSamplePrivDeveloper.cerで署名しなおしました。今回デバイスに署名は入れなおしませんでしたが、たぶん依然に入れたSDKCerts.cabで通ってるのだと思いますのでそれも一緒に置いておきます。
XPANELのスキャンコード0xffはSortInchKeyとかで色々設定いじっているとやはり出てくるときがあるみたいで挙動がよくわかりません。ということで長押し割り当ては依然できず。。。