eightban's memo

残しておきたい記事をまとめてみました。このブログに書いてあるドキュメントやブログで配布しているファイルの使用によって発生するいかなる損害に対してもこのブログの管理者は責任を負いません。使用する場合は自己責任のもとに使用してください。

jqコマンド アクセシビリティ

「ちーたんタッチボード」のボードファイルをjqコマンドで作ってみる

更新日:

「ちーたんタッチボード」

 Windows タブレット端末向けのソフトウェアキーボード&マウスパッドの機能を提供するアプリです。キーの配置を好みに合わせて自由に設定することができます。

https://sorceryforce.net/ja/tiitan-touch-board

バリアフリーパソコンサポート まほろばさん

障碍者や高齢者を対象に、パソコンなどのIT機器に関する技術支援を行うボランティアグループです。

Windowsのマウス操作向け設定 (ショートカット)の記事です

https://petile.com/mahoroba/e2123.html

こちらを参考に作成させていただきました

jqコマンド

https://stedolan.github.io/jq/

jqコマンドを使ってCSV ファイルからJSON ファイルを作成

作成用バッチファイル

if "%1" == "" (
set Width=100
set Height=700
set Name=tate2x15
set Name2=175_%Name%_1_01
) else (
set Width=%1
set Height=%2
set Name=%3
set Name2=%4
)
set mappingi=mappingi
set mappingt=mappingt
set mappingp=mappingp
set mappingq=mappingq
set mappings=mappings

set outf=%Name2%.setting
set inf=%Name2%.csv

findstr "%mappingi%" %inf% > %mappingi%.csv
findstr "%mappingt%" %inf% > %mappingt%.csv
findstr "%mappingp%" %inf% > %mappingp%.csv
findstr "%mappingq%" %inf% > %mappingq%.csv
findstr "%mappings%" %inf% > %mappings%.csv

echo { > %outf%
echo  "IdentityName": "%Name2%", >> %outf%
echo  "Author": "eightban", >> %outf%
echo  "Version": 1, >> %outf%
echo  "KeyReleaseTimingWhenActiveWindowChange": "Window", >> %outf%
echo  "GeneratorIdentityName": "none", >> %outf%
echo  "GeneratorVersion": 1.0, >> %outf%
echo  "Boards": [ >> %outf%
echo   { >> %outf%
echo    "Keys": [ >> %outf%


type %mappingi%.csv|jq-win64.exe -R -c -f %mappingi%.jq>>%outf%
type %mappingt%.csv|jq-win64.exe -R -c -f %mappingt%.jq>>%outf%
type %mappingp%.csv|jq-win64.exe -R -c -f %mappingp%.jq>>%outf%
type %mappingq%.csv|jq-win64.exe -R -c -f %mappingq%.jq>>%outf%
type %mappings%.csv|jq-win64.exe -R -c -f %mappings%.jq>>%outf%
echo   {} >> %outf%
timeout /t 5

echo    ], >> %outf%
echo    "IdentityName": "%Name%", >> %outf%
echo    "Position": { >> %outf%
echo     "X": 0, >> %outf%
echo     "Y": 0, >> %outf%
echo     "Width": %Width%, >> %outf%
echo     "Height": %Height% >> %outf%
echo    }, >> %outf%
echo    "StartPositionType": "TopLeft", >> %outf%
echo    "PositionOffset": { >> %outf%
echo     "X": 0, >> %outf%
echo     "Y": 0 >> %outf%
echo    }, >> %outf%
echo    "CenterPosition": { >> %outf%
echo     "X": 0, >> %outf%
echo     "Y": 0 >> %outf%
echo    }, >> %outf%
echo    "FontSizeScale": 0.9, >> %outf%
echo    "BoardScale": 1 >> %outf%
echo   } >> %outf%
echo  ] >> %outf%
echo } >> %outf%

powershell -Command "(Get-Content -Path '%outf%' -Encoding utf8 ) -replace '}}','}},'   | Out-File '%outf%.wk' -Encoding utf8 "
powershell -Command "(Get-Content -Path '%outf%.wk' -Encoding utf8 ) -replace '}]}','}]},'   | Out-File '%outf%' -Encoding utf8 "

type %outf%|jq-win64.exe >%outf%.wk
type %outf%.wk>%outf%
del %outf%.wk
timeout /t 5

イメージ用 mappingi.jq

split(",")|
{"KeyType":.[0],
"ImageName":.[1],
"ImageStretchMode":.[2],
"Position": {
"X": .[3] | tonumber,
"Y": .[4] | tonumber,
"Width": .[5] | tonumber,
"Height": .[6] | tonumber
},
}

テキスト用 mappingt.jq

split(",")|
{"KeyType":.[0],
"DisplayText":.[1],
"FontSize":.[2],
"Position": {
"X": .[3],
"Y": .[4],
"Width": .[5],
"Height": .[6]
},
}

プロセス2用 mappingp.jq

split(",")|
{"KeyType":.[0],
"DisplayText":.[1],
"FontSize":.[2],
"Position": {
"X": .[3],
"Y": .[4],
"Width": .[5],
"Height": .[6]
},
"Processes": [
{
"KeyType": .[7]
},
{
"KeyType": .[8]
}
],
}

プロセス3用 mappingq.jq

split(",")|
{"KeyType":.[0],
"DisplayText":.[1],
"FontSize":.[2],
"Position": {
"X": .[3],
"Y": .[4],
"Width": .[5],
"Height": .[6]
},
"Processes": [
{
"KeyType": .[7]
},
{
"KeyType": .[8]
},
{
"KeyType": .[9]
}
],
}

シフトキー用 mappings.jq

split(",")|
{"KeyType":.[0],
"DisplayText":.[1],
"FontSize":.[2],
"Position": {
"X": .[3],
"Y": .[4],
"Width": .[5],
"Height": .[6],
},
"IsToggle": .[7],
"IsOneClickToggleRelease": .[8],
"Processes": [
{
"KeyType": .[9]
}
],

}

入力用 CSV ファイル

BoardMove,BoardMove,Fill,0,0,50,50,,,,mappingimappingi
ConfigMenu,Config,Fill,50,0,50,50,,,,mappingi
BoardNext,BoardNext,Fill,50,50,50,50,,,,mappingi
BoardPrev,BoardPrev,Fill,0,50,50,50,,,,mappingi
AltTab,アプリ切替,12,0,100,50,50,LeftAlt,Tab,,mappingp
AltF4,アプリ終了,12,50,100,50,50,LeftAlt,F4,,mappingp
WinDown,最小化,12,0,150,50,50,LeftWindows,Down,,mappingp
WinUp,最大化,12,50,150,50,50,LeftWindows,Up,,mappingp
LeftShift,Shift,12,0,200,50,50,true,true,LeftShift,mappings
RightShift,Shift2,12,50,200,50,50,true,false,RightShift,mappings
CtrlC,コピー,12,0,250,50,50,LeftCtrl,C,,mappingp
CtrlV,貼付,12,50,250,50,50,LeftCtrl,V,,mappingp
CtrlX,切り取り,12,0,300,50,50,LeftCtrl,X,,mappingp
WinV,クリップボード,12,50,300,50,50,LeftWindows,V,,mappingp
CtrlA,全選択,12,0,350,50,50,LeftCtrl,A,,mappingp
ShiftF10,右クリック,12,50,350,50,50,LeftShift,F10,,mappingp
PageUp,ページ↑,12,0,400,50,50,,,,mappingt
PageDown,ページ↓,12,50,400,50,50,,,,mappingt
Up,↑,12,0,450,50,50,,,,mappingt
Down,↓,12,50,450,50,50,,,,mappingt
Left,←,12,0,500,50,50,,,,mappingt
Right,→,12,50,500,50,50,,,,mappingt
Delete,Del,12,0,550,50,50,,,,mappingt
BackSpace,BS,12,50,550,50,50,,,,mappingt
Space,スペース,12,0,600,50,50,,,,mappingt
Enter,エンター,12,50,600,50,50,,,,mappingt

Microsoft Excel,cassavaなどで編集してください
bomなしUTF 8で保存(メモ帳で変換できます)
11列目はそれぞれの種別によって設定します

解説

ボード名.入力CSV ファイル名.出力ファイル名.ボードサイズを設定します
CSV ファイルを振り分けます。
ボードファイルの前半部を作成します。

CSV ファイルから JSON ファイルを作成します。-R 入力そのまま。-c 整形しない

ボードファイルの後半部を作成します。

キーの行の末尾にカンマを入れます。
整形します

画像

作成ソース

カスタマイズして使用ください

別バージョン

-jqコマンド, アクセシビリティ

Copyright© eightban's memo , 2024 All Rights Reserved Powered by STINGER.