はてなキーワード: XMLとは
あわよくば、その時期にやっていたことを書いてくれないか?僕は君を救えないが、やっていたことを知りたいのだ。
例)Ruby on Rails で、XML を Android/iOS/ブラウザにくわせるとか
※ 再ポストを許してくれ。どうしても、聞く人がいないのだ。
当方は、元プログラマー。今となっては、家庭の都合で引退した身。嫌なことがあって、久しぶりにプログラミングを勉強したら楽しくて仕方ない。
たとえば、Ruby on Rails, Next with React on TypeScript とか最高にイカしていると思ったし、Kubernetes や Terraform で AWS, GCP を触れば IaC に感銘したし、Kafka や Elasticsearch といった NoSQL が RDB が進歩した上で共闘している様は夢のようだ。PHP や Java も元気にしていて、おじさん嬉しいよ。(最近の流行りだから Docker も触ったが、Vagrant なんかを触れた身からすると、正当な進化だよね。)ただ Python が人気なのは理解できないし、そんでもって C は苦手なままだけどな。あと、CSS と HTML のナレッジのアップデートについていけないのは歳のせいだろう。
閑話休題。それでタイトルの質問なんだけど、今のモバイルアプリの開発手法について知りたいのだ。もちろん React Native といったものがあるのは知っているが、この手のものは好きになれないのよね。どうしても無理から生じる齟齬が気になっちゃうし、もっと言えば「プログラミングを介して、設計思想に触れたい」からね。
まず、iOS の話題から。今は iOS は SwiftUI だけで書けば良いのかしら?昔は Objective-C と Storyboard を使っていたけど、新規のプロジェクトだと無視してもよいのよね?いや、だめだったら追加で勉強するだけだから良いのよ。その、加減がわからなくてね。自分としては Swift言語が好きで、SwiftUI は StoryBoard よりマシだと思うから、そこは問題ないのよね。10年前より、絶対に良くなったと思うし。あと SwiftUI と Swift言語の example 集とか、CocoaPods のまとめサイトなんかを教えてほしいな。公式だけじゃ物足りない。
次に Android なんだけど、現行なのは Kotlin言語 + Android Studio の UI ビルダーを強制なんでしょ?昔は Java言語 + XML の MVC という感じで、当時としては iOS よりまともなイメージだったけど、最近ふれたら蕁麻疹が出そうだった。なんというか、ちょっと体が受け付けない感じがする。だから、Android は昔の開発手法で良いのかを教えてほしい。あと、iOS と同様に example を大量に載せたページをお願いします。
こんな感じかな。追加で知っておくべきことがあれば、嬉しい。たとえば、PWA とか。自分としてはモバイルのプログラミングが理解できたら、ブロックチェーンや人工知能を除くと、ここ10年のナレッジはキャッチアップできたつもりなので満足なんだよね。あと気力があれば、作成物を増田に晒すかもしれないです。
久しぶりに、伊藤計劃「ハーモニー」読んだんだけど、少し気がついたことがあるので、
間違っているかもしれないけど、書いてみる。
「ハーモニー」のETMLが文法的におかしいのは、生府の検閲から逃れるため。
「ソースを見る」の状態で未来の人類が読んでいる状況を「ハーモニー」は表している。
それで、実は「ハーモニー」はミァハがトァンをかばうために書いた物語だった。
色んな所で言われてるけど、この小説のファイル形式であるETMLは、文法的におかしい。
例えば、箇条書きでタグで両方から囲まなきゃいけない(HTMLなら<li>~</li>)のに、<i:~>と、タグの中に箇条書きの要素を書いたり、
皮肉っぽくQ&Aをしているところでも、<q:~><a:~>と書いていたりする。
それはもう、至る所で間違えている。
伊藤計劃がXMLとかHTMLの文法に詳しくないってことはないと思う。たぶん、わざと間違えた。
じゃあなぜ間違えたのか?
もし、こういう文法間違いがあると、どうなるか。
もしHTMLなら、表示ソフト(ブラウザ、たとえばGoogle Chrome)であいまいに解釈してくれたりするけど、
本来なら「文法がおかしいので表示できません」とか、真っ白いページになるべき。
だから、ETMLの文法がおかしい「ハーモニー」も、ETML用表示ソフトでは何も表示されないことになる。
そうなったら、普通の人は見るのを止めるよね。でも、何人かに一人は、Google Chromeの機能にあるような「ソースを見る」に似た行動をとる。
そうなると、タグがあって読みにくいけど、きちんと文章が表示されることになる。
その何人かに一人に読んでもらいたいために、文法として間違えたETMLで「ハーモニー」を書いた。
そういう、何人かに一人が読んでいる状況を表すために、伊藤計劃はETMLのタグ付きで「ハーモニー」を書いたんだと思う。
そりゃあ、もちろん、ハーモニクス後の世界で、なぜハーモニクスが起こったのかを記録として残すため、だと思う。
もし、ETMLが正しい「ハーモニー」を書いたら、生府の検閲に引っかかって、消されるかもしれない。
だから、ETML表示ソフトウェアに入力しても、何も表示されないようにした。
何人かに一人に気づいてもらえばそれでいいと思って、書いたんだろう。
でね、「ハーモニー」で文法的におかしい部分を読んでいたら、冒頭部分にこんな文章があるのに気づいた。
いまから語るのは、
<declaration:calculation>
<pls:敗残者の物語>
<pls:脱走者の物語>
</declaration>
ETMLのタグの意味はわからないから推測だけど、「declaration:calculation」で数式を宣言してると思う。
で、「pls」は加算記号+で、「eql」は等号記号=だと思う。
となると、「ハーモニー」を語っているのは、「わたし=敗残者+脱走者」ってことになる。
真っ先に出てくるのはトァンだよな。本人がそう気取ってるし。
社会に馴染めなくて、負けるように、逃げるように辺境の戦地に行って、
でもさ、社会的にはトァンは官僚で、しかも本人が言っているように、高級官僚でありエリートだよな。
社会的には敗残者でも脱走者でもない。
じゃあ他に誰がいる?
一人いる。<次世代ヒト行動特性記述ワーキンググループ>の争いから敗れ、
チェチェンに逃亡した者が。
そう、ミァハ。
この物語は、ミァハが書いている。
死んだはずのミァハが書いている。
すごく謎に思える。
でも、こう考えたらどうだろう?
ミァハは、トァンをかばいたくて、トァンを主人公に物語を書いた。
実は、チェチェンで意識が芽生えたのがトァンで、ヌァザの実の娘がミァハだとしたら。
トァンが、長老たちにハーモニクスをさせたいがために、全世界同時自殺を実行したとしたら。
最大限つじつまが合うように「ハーモニー」を書いたとしたら。
そう思って読むと、つじつまが合わないところがある。
「ハーモニー」は、全部で5日間の物語だよね。トァンがセラピーを受けるまでの猶予期間である5日間の物語。
そのうち、日本で2日、バクダッドで飛行機移動込みで2日、チェチェンで飛行機もろもろ移動込みで1日。これで5日間。
なのにさ、バクダッドからチェチェンに出発する前に日本に立ち寄ってミァハの名刺を取りに戻った、と書かれてる。
バクダッドと日本を往復するだけでもう1日かかるよね。これでは5日間を越えてセラピーを受けることになっちゃう。
時間的に間に合わない。
となると、トァンは5日間の内に実家に行ったことになる。トァンが誰かの家に行ったのは、ミァハの実家だけだよね。
日本やバクダッドのホテルに名刺があるわけないし、飛行機の中にもあるわけないよね。
つまり、ミァハの実家によった時に、トァンは名刺を手に入れたんだよ。
ミァハの実家なのに、トァンは名刺を手に入れることができた。何故か?
「ミァハの実家が、トァンの実家でもあった」とすると、説明がつく。
ミァハとトァンが義理の姉妹だと考えると、整合性が取れることが多い。
例えば、ミァハが13年前になぜ栄養を取らないようにする錠剤を作れたか、について。
錠剤を作るための技術に近かったのは、むしろトァンじゃん。何しろ父ヌァザがWatchMeを作ったんだし。
その気になれば知識はいくらでも入ったはず。でも錠剤を作ったのは、普通の家庭で養女になっていたミァハ。
ミァハがヌァザの養女になっていたら、納得できる。いくらでも知識を得られるし、錠剤も作れる。
もう一つ、なぜ本というデッドメディアを普通の家庭のミァハが持っていたかについて。
普通の家庭では存在も知らないはず。でも、ヌァザの養女であれば、冴紀ケイタでもわかるように、
本を持っていても不思議ではないし、それだけのお小遣いを持っていても不思議ではない。
そもそも名刺の知識もヌァザから得られる。ヌァザがそういう人々とも交流があっただろうし。
そして、ミァハとトァンが義理の姉妹なら、最初の段階で「もしかしたら必要になるかも」と考えて、
あと一つだけ、なぜトァンではなく、キアンを自殺させたのかについても説明がつく。
どちらを殺すか選択するとき、義理とはいえ姉妹であったトァンではなく、キアンを選択した。
もちろん、後から呼び出すことや、行動力の差で選んだという可能性はあるけど、
一番の理由になるでしょ。
最後に、なんで姉妹であることを隠して、別人であるかのように書かれたのかについて。
これだけの殺人事件の内、もしミァハとトァンが義理の姉妹で、かつトァンをかばうために
ミァハが書いているのだとしたら、まずは全世界同時自殺を自分のせいにする。
問題は、残り2件。義理の姉妹のままだと、ミァハが自分の父親を殺害するのは
書いていて受け入れられたとしても、トァンが義理とはいえ姉妹を殺害することになる。
トァンにとって、あまり聞こえは良くない。
そうすると、トァンは、自分の目的を達成するために全世界同時自殺を実行し、
それに紛れて、こともあろうにかつての友人を自殺させ、
DummyMeを入れているから。WatchMeからハーモニクスの命令を実行したように見せかけることができる。
その上で、ETMLのシステムができたときに、「ハーモニー」を書いたんじゃないかな。
自分の思いを達成するためとはいえ、偽の歴史を後世に残すことになるので、
唐突にサービスの終了を通告され、はてなブログへ強制移住された。
はてなブログには過去の記事を流し読みする機能がなく、もうあの当時の日記は読めない、自分の過去の記憶が裁断されスクラップにされたような酷い苦痛を味わった。
最近はてなブログに画像を貼るのはすごいお手軽な事に気付き、もっぱらはてなブログ万歳。画像があれば文章だけと違ってとても脳みそに残る。
はてなダイアリーが恋しいという気持ちはどこか遠くに吹き飛んだ。
で。はてなダイアリーってどんな画面だったのか、どういう仕様だったのか、というのがはてなブログに移住して月日が経つにつれ忘れてしまった。
日記のテキストデータは手元にxmlファイルとして残ってる。これをあの当時のはてなダイアリーのUIで読み込む方法が分からない。だれか教えてクレメンス
俺は意固地で決まり事を作るとき、厳しくしすぎて周りの人とギスったりする。何年たってもそんなで、他の要因もあり、自分は自閉症なんじゃないかとおもった。
しかし、自閉症というものはもっと深刻なもので、自分とは全く違った(自閉症のドキュメンタリはかなり内容に共感した。勝手に掃除されたくなかったりとかすごい分かる)。
さらに調べてみると、自閉症スペクトラムという、段階みたいなものがあるらしい。社会的にはそこまで困ってない(会社の人間関係が少し危ういくらい)ので、0%から100%で表すとしたら自分は10%くらいだろうか?自分の位置がはっきりすると少し気が楽になった。
スペクトラムというものを考えると、あーこれも自閉症スペクトラムの左端かなぁというのがある。
日本だと、論文やら注文書やらの表にはフルに罫線を引かせる。海外だと横線だけだったり、軽い印象だ。
自閉症傾向の方はカッチリしたものに安心感を覚えるらしい。まぁこれは好みなんでいいんじゃないかと思う。
具体的に言うとXML。SOAPはよりラフなJSON形式のRESTになったし(別に書式はXMLでもいいんだっけ?JSON以外みたことない)。何でもかんでも1回XMLにしたがるよなぁ。
他にも様々あるけど、マイクロソフトのサービスを全部列挙することになるからやめとく。まぁエンジニアってそういう傾向あるから、いいんじゃないんですかね。
photoshopで作ったpsdのwebデザインを渡されて、フロントエンド担当がHTML/CSSコーディングしてるんだけどどうなのこれ?
そういう職場もある
客に見せるデザインカンプの方が先に必要なことも多々あるのでは
最近はFigmaのようなWebページやモバイルアプリなどのUIデザインのツールが多くある
それをそのPhotoshopのようなデザインカンプ作成に使うのはありだと思う
というか、こっちの方がデータがXMLやJSON形式だったりするので、デザインからそのままコードに落とし込みやすい
Figmaでネイティブのデスクトップアプリさえデザインして一発で落とし込む試みをGitHubで開発している人もいる
上述したとおり、デザインカンプのことですね
いきなりHTML/CSSを書くと、後から抜本的な調整が不可能になる
プログラミングも同じで、かなり書いてから、やっぱあれナシだから、みたいなのは嫌なので
それをなんか知らないけど、普段使わねーphotoshop開いてルーラー出して、
自分も馬鹿げていると思うこともあるが、そもそも社内研修やスクールでそう教えてるところもある
自分もそう教えられたときがあって、その場では嫌々ながら教えられたやり方で課題をこなしたりしてた
ここで逆らっても意味ないなあ、と思ったので
客なり講師なりを全否定するなら、そこに自分がいる意味がなくなっちゃうよなあ、とも思ったので
正直、そういう場合はちょっと揉めることが多いのだけど、仕方がないですね
仕様等の客の話を聞きながら勝手に自分の中で、あのライブラリやあのフレームワーク使えば楽勝だろう、と思っていると、
後々になってその前提としていたライブラリやフレームワークでは実現が難しい仕様を喋りだしたりすることもある
今の会社含めて2社しか経験してないので、一般的かどうかは判断できないが、前職ではHTML/CSSまでデザイナーの人が書いてたぞ
そういう職場もある
Zeplinは知らないけど、ツールにクソコードを吐かれるのはよくあるので、そこは相談するしかないのかなあ
相談するだけ無駄なケースも多いので、転職するとか、仕事自体を蹴ってしまうことも考えるべきかも
現に生きてけないで🍣
本来はこうでしょ?
(中略)
今になって思い返しても、自分のやり方の方が正しかったんじゃん、やっぱアホだろあれは、
と思うこともあるけど、世の中そんなもんなのでなんとも言い難い
決定権が自分にないと当然無理だし、フリーランスで決定権が持てても今度は仕事が小さくなるし
それは偏見
例えば、音声のスペクトル、声門とかを画像編集ソフトでプレビュー、加工することもなくはない
もっとも、それ専用のアプリ使った方がいいのは言うまでもないが
自分は普段はPhotoshopを使ってないけど、PSはJavaScriptなどでプラグインが書けるはずだし、
といっても、何でもPhotoshop同様、何でもExcelの世界で、Excelで仕様書とかあんたバカァ?とは思う
(中略)
これもやんわり、なんとかなりませんか?みたいに言うぐらいしかできない気がする
でも、意見するだけで攻撃的になる人もいるので、転職案件なのかもなあ
そもそも何でもかんでもwebページをポスターみたいに着飾るんじゃねーよ
ランディングページならともかく、よく使うwebアプリを着飾るんじゃねーよ、開発もしにくい、使いにくいしでまったく良いこと無い
それは客が要求するのもあるんで
大抵Craigslist, Hacker News くらいのデザインで十分なんだよ
フロントエンドエンジニアみたいな肩書でドヤってる人を見るとウンザリする
いっそJavaScriptなくした方がいいんじゃないかとさえ思うときがある
Webブラウザのタブごとに動作しているわけで、ブラウザが重くなる原因の1つだと思うし、
ブラウザ上でしか動作しないJavaScript書いて人生を消費したくない
でも、本当に?
カラーリングで、開発環境でコードが見やすくなる。マークアップ言語には、markdown, html, wikiなどがあげられると思う。
また、xml, jsonなどのデータもマークアップ言語と言ってよいだろう。
(pythonを使えば否が応でもスペース4つを空けることになるだろう。(あるいはtab一つ分))
まずは、ブラインドタッチでマークアップ言語を書き、一文字でも違うとコンピューターは、こちらの意図通りには動いてくれないという悲しみにひたらないかぎり、
全角スペース、半角スペースを目grep出来るようにならないと、プログミングは上達しないことをここに宣言したい☆
むかしXMLが流行った頃にXMLスキーマだとかWSDLとか使ってたんだけど、まぁ端的に言ってゴミ
これらを使えばXMLがvalidであることを保証できる。たしかにそうだ。
でも仕様とかややこしい割には、バグが減るとか工数が減るとかそういったことの恩恵はまるでありません
誰がこの複雑な仕様を使える?チームの中でもちゃんと理解できてるのが一人入れば良いほうだろう。
JSONスキーマも似たような運命をたどるとしか思えないので、手を出す気にならない。
JSONは単純な構文で、適当に書いて適当に入出力使って、インターフェースとなるデータ構造は、API利用者同士で密に相談しあって使えばいいんじゃないかな。それで何事もスムーズに行くはず。
一般公開とかするなら仕様を自然言語で文書として残しとけばOKで、そこらへんをプログラムで取り扱いたいってのは、まぁ理想としてはわかるんだけど、うまくいくとは思えないんだよね。
自分みたいに低能作業員には難しいけど、優秀な技術者を取り揃えてるところなら実装、運用できるのかなぁ…
スキーマ出てくるとこれをプログラム的に取り扱って、データやり取りするためのインターフェース部分を自動生成しましょ、みたいなくっそ寒いノリがでてきて、
この自動生成された部分がだいたいバグってたり、仮にバグってなくてもバグを探すために、自動生成されたきっしょいコードを延々と人間の手で解析するみたいな、非人道的な作業が発生するんだよなぁ
仕事で使わされそうになったらやだな
カスタマーサポートからjavaを解析するチームに転属になった
これまで前職で7年くらいSIerでjavaいじってきたけど、表面上をいじったり設定を変えたりしたたけで、全然スキルにならないことはわかっていた
だから転職してカスタマーサポートになったのに、カスタマーサポートの中では多少コードが読める、というだけで転属になってしまった。
java+tomcat+postgressqlというまーたぶんOSS使うなら標準的な構成だと思うんだけど、
tomcatの外にあるcontext.xmlじゃなくてjavaプロジェクト内のcontext.xmlの設定を変えただけでなんでDBの見る先が変わるんだろう?
eclipse内にあるtomcatってwindowsで普通にインストールするtomcatとどう違うの?
そのへんも分からないし、手順書通りにやっても動かないこともストレス(これはpostgressqlをインストール済みの環境でリストア済みのDBがあること前提で手順書が書かれていることが後に分かった👍️)。
このITのなぜ?に一つ一つ答えられる人がいなくて前職辞めたのに、みんな忙しそうで聞きづらい。
みんなどうやって一から環境構築してるんだろ?構造わかってるから出来てるんだよね...。
設定変えたら動くからそんなもん、て言われたらそれまでなんだけど。
きっとこうやって割り切れなさを抱えてるから仕事遅いと思われてるし、気ぃ遣いで優しそうだと思われてるかもしれないけど、ほんとは一から十まで最初から教えてくれないと分からない頭悪い人だと自分では思ってる。
きっかけと構造さえ掴めれば応用きいたりするんだけど...知識欲もあるし誰か教えてほしい。学校にいくか、本を買って読まなきゃなーって思ってるところです。
人に聞けない俺はその方向で合ってるのかな?
時間 | 記事数 | 文字数 | 文字数平均 | 文字数中央値 |
---|---|---|---|---|
00 | 108 | 15295 | 141.6 | 31 |
01 | 108 | 6570 | 60.8 | 30 |
02 | 81 | 13175 | 162.7 | 59 |
03 | 50 | 4631 | 92.6 | 63.5 |
04 | 18 | 1980 | 110.0 | 56.5 |
05 | 18 | 1564 | 86.9 | 40 |
06 | 46 | 4789 | 104.1 | 38 |
07 | 50 | 4162 | 83.2 | 37 |
08 | 78 | 5308 | 68.1 | 29 |
09 | 93 | 7249 | 77.9 | 45 |
10 | 128 | 12025 | 93.9 | 40 |
11 | 259 | 21947 | 84.7 | 42 |
12 | 228 | 23793 | 104.4 | 46 |
13 | 234 | 14339 | 61.3 | 40.5 |
14 | 266 | 25201 | 94.7 | 39 |
15 | 230 | 16828 | 73.2 | 35 |
16 | 191 | 11867 | 62.1 | 32 |
17 | 135 | 8910 | 66.0 | 29 |
18 | 155 | 10988 | 70.9 | 32 |
19 | 105 | 9787 | 93.2 | 30 |
20 | 93 | 13160 | 141.5 | 39 |
21 | 119 | 14807 | 124.4 | 32 |
22 | 127 | 15394 | 121.2 | 33 |
23 | 79 | 8583 | 108.6 | 54 |
1日 | 2999 | 272352 | 90.8 | 37 |
八村塁(6), ヤマシタトモコ(6), 凪のお暇(8), たそがれたかこ(6), 夏至(6), コロプラ(3), メタモルフォーゼ(3), 意趣返し(7), サクセス(6), 縁側(3), ぷっくり(3), xml(3), 福満しげゆき(3), 自発的(14), 生き方(36), プール(11), スパム(11), 模索(10), アイス(9), いいえ(10), おじ(10), 前向き(11), 著しく(6), 女に(27), 子供部屋(8), ポリコレ(36), 革命(8), マンガ(20), 遺伝子(15), 渡す(8), 少子化(15), 感情(73), 匂い(17), 非モテ(16), 反(16), 年金(19), 容姿(24)
■男の生き方 /20190620231440(50), ■男は男なんて助けない。女にでもすがってろ /20190620001337(25), ■はてなはJinやまとめ速報をを排除できない(その理由も教えるよ) /20190621112428(15), ■「ポリコレ」という言葉を使う差別主義者ウヨクどもに言論の自由はいらない /20190621010359(12), ■「社会的弱者」を一度体験したら他人に優しくなれるか /20190621123708(12), ■anond:20190620231440 /20190621015204(11), ■「自然派ママ(ナチュラル基地外・こじらせナチュラリスト等)」の新しい名称 /20190621003310(8), ■腐女子がゲイだけを許すのはなぜなのか /20190620145908(7), ■つわりが辛すぎ /20190621211212(7), ■anond:20190621141800 /20190621141927(7), ■分散SNSで「Gabをドメインブロックするべき」という提起が紛糾している /20190621024537(7), ■アマゾンで棺桶を買ってその中で寝るのがマイブームなんだけど親が気持ち悪がる /20190621170210(6), ■肉が違うと腹が立つ /20190619043352(6), ■やっぱり、結婚は金と若さとの交換だわ /20190621090819(6), ■女の敵は女なんじゃないの? /20190621114823(6), ■タイトル思いつかねぇや /20190621013929(6), ■SNSなどネット上の笑い表現(笑・w・草・竹)で年齢がバレるって知ってた? /20190621160607(6), ■おっさんはおっさんが大嫌いだし弱い男はもっと嫌い /20190618201336(6), ■自己肯定感が欲しいので誰か僕をほめてください /20190621075325(6), ■ /20190621154013(6), ■非モテ童貞が「彼女がほしい」というと「風俗(ソープ)に行け」と言われるのなんでなの /20190621094225(6)
6386764(3978)
AquaSKKには同時打鍵を認識・記述する方法がないため、新下駄配列を使用するには、AZIKの場合のようにかな規則とショートカットキーをいじるだけでは不十分です。さらに一歩進んで、キー割り当てソフトを使用する必要があります。
私はKeyRemap4MacBookを使ってそれなりに新下駄配列が使える状態に出来たので今の時点での成果を少しずつ紹介していきます。
AZIKの場合以上に、SKKで多用する「L」「Q」「X」といった単打のショートカットは、Controlとの組み合わせなどに変更しておく必要があります。これらのキーを使うかながどれも打てなくなるからです。
AZIKの場合のQ,L,Xの問題と同じく、keymap.confを修正します。
AZIKの場合と異なり、この問題の修正には.ruleファイルの変更は不要です。
両手で同時打鍵をする新下駄配列では小指でのシフト操作は現実的ではありませんので、スペースキーでシフトするSandSを採用します。
KeyRemap4MacBookに最初から含まれている「Space to Shift_L (+When you type spce only, sendSpace)」の各種設定を好みで選んでもらえばいいと思います。
KeyRemap4MacBookには、既に「ことえり」「ATOK」といった普通のIME用の設定はあります。
これらの設定でも、ほとんどのひらがな、カタカナの入力はスムーズにできます。
しかし、これらの設定では、漢字(単語)入力でつまります。単打入力の際にシフトしても、変換モードに移行しないのです。
この原因は、jis_shingeta_base.xmlにおいて、単打の場合はモディファイアキーが押されていない場合のみ、新下駄配列への置き換えが行なわれるように設定されているからです。
下記の「ModifierFlag::NONE」という文字列がそれです。(「く」の定義を例にしています)
<autogen>--KeyToKey-- KeyCode::H, ModifierFlag::NONE, KeyCode::K, KeyCode::U, KeyCode::VK_NONE</autogen>
これは各種のショートカットキーを使えるようにするためでしょうが、SKK的には困ります。
シフト付きの単打の場合も新下駄配列への置き換えが行なわれるように、上記のjis_shingeta_base.xmlをコピー((usキーボードの場合はjis_shingeta_base_for_us.xmlをベースにした方がいいのでしょうね。))した上で、単打がシフトされている場合にも、文字が入れ替えられ、また、単打がシフトされている場合には入れ替えられた文字の一文字目もシフトされる定義を追加しましょう。
<autogen>--KeyToKey-- KeyCode::H, ModifierFlag::NONE, KeyCode::K, KeyCode::U, KeyCode::VK_NONE</autogen> <autogen>--KeyToKey-- KeyCode::H, ModifierFlag::SHIFT_L, KeyCode::K, ModifierFlag::SHIFT_L, KeyCode::U, KeyCode::VK_NONE</autogen>
この追加を単打文字全てに対して行ない、修正後の定義をprivate.xmlに追加します。
これで、そこそこ打てるようになるはずです。
単打でないかなのほとんどは、シフトによって普通に変換モードに入ることができます。KeyRemap4MacBookで同時打鍵を表現するのに使われる--SimultaneousKeyPresses--は、シフトについて設定しない場合、シフトをそのまま渡してくれるからです。
ただし、この仕様はDと@の同時打鍵で入力される「うぉ」の場合は問題となります。
<autogen>--SimultaneousKeyPresses-- KeyCode::D, KeyCode::JIS_ATMARK, KeyCode::U, KeyCode::X, KeyCode::O, KeyCode::VK_NONE</autogen>
「うぉ」を表現するのに必要なU、X、Oのすべてがシフトしてしまうのが良くないようで、シフトすると「う」と「ぉ」の間に送りの区切れがあると認識されて辞書登録モードに入ってしまいます。
以下のようにDがシフトしている場合の設定を明示的に追加して、Uだけがシフトするようにすれば大丈夫です。
<autogen>--SimultaneousKeyPresses-- KeyCode::D, ModifierFlag::SHIFT_L, KeyCode::JIS_ATMARK, KeyCode::U, ModifierFlag::SHIFT_L, KeyCode::X, KeyCode::O, KeyCode::VK_NONE</autogen>
同手同時打鍵による記号入力のうち、!と?の入力は特に問題なくできます。デフォルトでは半角ですが、全角にしたければAquaSKKの.ruleファイルで指定するだけで大丈夫です。
!,!,!,! ?,?,?,?
RとF、RとGの同時打鍵による「・」の入力については、jis_shingeta_base.xmlに設定がありません。これは、・についてはIMによって、入力方法が異なるからです。SKKの場合はz/で・を入力しますから、RとF、RとG同時打鍵でz/が入力されるようにしましょう。
<autogen>--SimultaneousKeyPresses-- KeyCode::R, KeyCode::F, KeyCode::Z, KeyCode::SLASH, KeyCode::VK_NONE</autogen> <autogen>--SimultaneousKeyPresses-- KeyCode::R, KeyCode::G, KeyCode::Z, KeyCode::SLASH, KeyCode::VK_NONE</autogen>
/もjis_shingeta_base.xmlに設定がありません。しかも、SKKのデフォルトでは/の直接入力ができませんので、KeyRemap4MacBookの設定を弄るだけでは対応できません。
そこで、まず.ruleファイルに「s/」で「/」が入力できるような設定を追加したうえで、
s/,/,/,/
HとUの同時打鍵でSと/が入力されるようにprivate.xmlに設定を追加します。
<autogen>--SimultaneousKeyPresses-- KeyCode::H, KeyCode::U, KeyCode::S, KeyCode::SLASH, KeyCode::VK_NONE</autogen>
FG同時打鍵による「」、HJ同時打鍵による()の入力は一見できてるように見えるかもしれませんが、無駄な改行が挿入されるうえ、真ん中に移動してくれません。他のIMでの確定用に無駄なENTERが入力されるからです。
<!-- FG -> 「」 &amp; ENTER &amp; 左移動 --> <autogen>--SimultaneousKeyPresses-- KeyCode::F, KeyCode::G, KeyCode::JIS_BRACKET_LEFT, KeyCode::JIS_BRACKET_RIGHT, KeyCode::RETURN, KeyCode::CURSOR_LEFT, KeyCode::VK_NONE</autogen> <!-- HJ -> () &amp; ENTER &amp; 左移動 --> <autogen>--SimultaneousKeyPresses-- KeyCode::H, KeyCode::J, KeyCode::KEY_8, ModifierFlag::SHIFT_L, KeyCode::KEY_9, ModifierFlag::SHIFT_L, KeyCode::RETURN, KeyCode::CURSOR_LEFT, KeyCode::VK_NONE</autogen>
これは、KeyCode::RETURNを削除すれば解決です。
<!-- FG -> 「」 &amp; 左移動 --> <autogen>--SimultaneousKeyPresses-- KeyCode::F, KeyCode::G, KeyCode::JIS_BRACKET_LEFT, KeyCode::JIS_BRACKET_RIGHT, KeyCode::CURSOR_LEFT, KeyCode::VK_NONE</autogen> <!-- HJ -> () &amp; ENTER &amp; 左移動 --> <autogen>--SimultaneousKeyPresses-- KeyCode::H, KeyCode::J, KeyCode::KEY_8, ModifierFlag::SHIFT_L, KeyCode::KEY_9, ModifierFlag::SHIFT_L, KeyCode::CURSOR_LEFT, KeyCode::VK_NONE</autogen>
新下駄配列を使っていると、候補ウィンドウの選択ラベル(ASDFGHJKL)が使えなくなります。AquaSKKの環境設定で選択ラベルを1から9か、1から0に変えておきましょう。
自分が昔、(今は非公開にしている)はてなダイヤリーに書いた記事を読もうとしている人がいたので、はてな匿名ダイヤリーに載せます。最近のMacではKeyRemap4MacBook(後のKarabiner)は使えないですが、AquaSKKの設定部分は参考になるかもしれません。
以下の手順で、AquaSKKで新下駄配列を使えるようにします。
一部のソフトでフォントサイズの拡大に使われるControl+Shift+;のキーボードショートカットが使えなくなるという不具合があります。(他にも使えなくなるショートカットがあるかもしれません)
また、AquaSKK以外の入力メソッドでも、新下駄配列になる上、多分そちらでは新下駄配列は快適には使えません。(適時、KeyRemap4MacBookの設定を切り替えてください)
なお、この設定はJISキーボード用です。USキーボードの人はKeyRemap4MacBook用の設定ファイルをUSキーボード向けに修正してみてください。
Q,X,Lのショートカットキーは使えなくなります。これらのキーが絡むショートカットキーは以下のように変更されます。
各種設定やファイルの内容の意味については、AquaSKKで新下駄配列を使うための設定 解説編を参照してください。
AquaSKKの環境設定の「変換」タブの「選択ラベル」の内容を以下の通り変更します。
1234567890
~/Library/Application Support/AquaSKK/
に以下の行を含み、ファイル名が.ruleで終わるテキストファイルを作成の上、AquaSKKの環境設定の「かな規則」タブでチェックを入れます。
s/,/,/,/
~/Library/Application Support/AquaSKK/
に下記の内容を含むkeymap.confという名称のテキストファイルを追加した後、AquaSKKメニューから設定ファイルの再読み込みをします。
### ### keymap.conf ### # ====================================================================== # event section # ====================================================================== SKK_JMODE ctrl::j||alt::j||ctrl::shift::j SKK_ENTER group::hex::0x03,0x0a,0x0d||ctrl::m SKK_CANCEL ctrl::g||hex::0x1b SKK_BACKSPACE hex::0x08||ctrl::h SKK_DELETE hex::0x7f||ctrl::d SKK_TAB hex::0x09||ctrl::i SKK_PASTE ctrl::y SKK_LEFT hex::0x1c||ctrl::b||keycode::7b SKK_RIGHT hex::0x1d||ctrl::f||keycode::7c SKK_UP hex::0x1e||ctrl::a||keycode::7e SKK_DOWN hex::0x1f||ctrl::e||keycode::7d SKK_PING ctrl::; SKK_UNDO ctrl::/ # ====================================================================== # attribute section(for SKK_CHAR) # ====================================================================== ToggleKana ctrl::q||alt::q ToggleJisx0201Kana shift::ctrl::q SwitchToAscii alt::l||ctrl::l SwitchToJisx0208Latin shift::ctrl::l||alt::shift::l EnterAbbrev / EnterJapanese Q NextCompletion . PrevCompletion , NextCandidate hex::0x20||ctrl::n PrevCandidate ctrl::x||ctrl::p RemoveTrigger ctrl::X UpperCases group::A-Z Direct group::keycode::0x41,0x43,0x45,0x4b,0x4e,0x51-0x59,0x5b,0x5c,0x5f InputChars group::hex::0x20-0x7e CompConversion alt::hex::0x20||shift::hex::0x20 # ====================================================================== # handle option # ====================================================================== AlwaysHandled group::keycode::0x66,0x68 PseudoHandled hex::0x1b
KeyRemap4MacBookをインストールの上、KeyRemap4MacBookに最初から含まれている「Space to Shift_L (+When you type spce only, send Space)」の設定を有効にします。
以下の要素をKeyRemap4MacBook用のprivate.xmlファイルに追加し、private.xmlの再読み込みをした上で、有効化します。
<item> <name>新下駄配列(Aqua SKK向け・ローマ字入力)</name> <identifier>remap.jis_shingeta_input_roman_qwerty_skk</identifier> <inputmode_only>JAPANESE</inputmode_only> <!-- 新下駄配列 --> <!-- 単打Shift --> <!-- 2段目 - ーには、ちぐばこがひげ「 --> <autogen>--KeyToKey-- KeyCode::Q, ModifierFlag::SHIFT_L, KeyCode::MINUS, KeyCode::VK_NONE</autogen> <autogen>--KeyToKey-- KeyCode::W, ModifierFlag::SHIFT_L, KeyCode::N, ModifierFlag::SHIFT_L, KeyCode::I, KeyCode::VK_NONE</autogen> <autogen>--KeyToKey-- KeyCode::E, ModifierFlag::SHIFT_L, KeyCode::H, ModifierFlag::SHIFT_L, KeyCode::A, KeyCode::VK_NONE</autogen> <autogen>--KeyToKey-- KeyCode::R, ModifierFlag::SHIFT_L, KeyCode::COMMA, KeyCode::VK_NONE</autogen> <autogen>--KeyToKey-- KeyCode::T, ModifierFlag::SHIFT_L, KeyCode::T, ModifierFlag::SHIFT_L, KeyCode::I, KeyCode::VK_NONE</autogen> <autogen>--KeyToKey-- KeyCode::Y, ModifierFlag::SHIFT_L, KeyCode::G, ModifierFlag::SHIFT_L, KeyCode::U, KeyCode::VK_NONE</autogen> <autogen>--KeyToKey-- KeyCode::U, ModifierFlag::SHIFT_L, KeyCode::B, ModifierFlag::SHIFT_L, KeyCode::A, KeyCode::VK_NONE</autogen> <autogen>--KeyToKey-- KeyCode::I, ModifierFlag::SHIFT_L, KeyCode::K, ModifierFlag::SHIFT_L, KeyCode::O, KeyCode::VK_NONE</autogen> <autogen>--KeyToKey-- KeyCode::O, ModifierFlag::SHIFT_L, KeyCode::G, ModifierFlag::SHIFT_L, KeyCode::A, KeyCode::VK_NONE</autogen> <autogen>--KeyToKey-- KeyCode::P, ModifierFlag::SHIFT_L, KeyCode::H, ModifierFlag::SHIFT_L, KeyCode::I, KeyCode::VK_NONE</autogen> <autogen>--KeyToKey-- KeyCode::JIS_ATMARK, ModifierFlag::SHIFT_L, KeyCode::G, ModifierFlag::SHIFT_L, KeyCode::E, KeyCode::VK_NONE</autogen> <!-- 「 --> <!-- 3段目 - のとかんっくういしなBS」 --> <autogen>--KeyToKey-- KeyCode::A, ModifierFlag::SHIFT_L, KeyCode::N, ModifierFlag::SHIFT_L, KeyCode::O, KeyCode::VK_NONE</autogen> <autogen>--KeyToKey-- KeyCode::S, ModifierFlag::SHIFT_L, KeyCode::T, ModifierFlag::SHIFT_L, KeyCode::O, KeyCode::VK_NONE</autogen> <autogen>--KeyToKey-- KeyCode::D, ModifierFlag::SHIFT_L, KeyCode::K, ModifierFlag::SHIFT_L, KeyCode::A, KeyCode::VK_NONE</autogen> <autogen>--KeyToKey-- KeyCode::F, ModifierFlag::SHIFT_L, KeyCode::N, ModifierFlag::SHIFT_L, KeyCode::N, KeyCode::VK_NONE</autogen> <autogen>--KeyToKey-- KeyCode::G, ModifierFlag::SHIFT_L, KeyCode::X, ModifierFlag::SHIFT_L, KeyCode::T, KeyCode::U, KeyCode::VK_NONE</autogen> <autogen>--KeyToKey-- KeyCode::H, ModifierFlag::SHIFT_L, KeyCode::K, ModifierFlag::SHIFT_L, KeyCode::U, KeyCode::VK_NONE</autogen> <autogen>--KeyToKey-- KeyCode::J, ModifierFlag::SHIFT_L, KeyCode::U, ModifierFlag::SHIFT_L, KeyCode::VK_NONE</autogen> <autogen>--KeyToKey-- KeyCode::K, ModifierFlag::SHIFT_L, KeyCode::I, ModifierFlag::SHIFT_L, KeyCode::VK_NONE</autogen> <autogen>--KeyToKey-- KeyCode::L, ModifierFlag::SHIFT_L, KeyCode::S, ModifierFlag::SHIFT_L, KeyCode::I, KeyCode::VK_NONE</autogen> <autogen>--KeyToKey-- KeyCode::SEMICOLON, ModifierFlag::SHIFT_L, KeyCode::N, ModifierFlag::SHIFT_L, KeyCode::A, KeyCode::VK_NONE</autogen> <!-- 」 --> <!-- 4段目 - すまきるつてたで。ぶ¥ --> <autogen>--KeyToKey-- KeyCode::Z, ModifierFlag::SHIFT_L, KeyCode::S, ModifierFlag::SHIFT_L, KeyCode::U, KeyCode::VK_NONE</autogen> <autogen>--KeyToKey-- KeyCode::X, ModifierFlag::SHIFT_L, KeyCode::M, ModifierFlag::SHIFT_L, KeyCode::A, KeyCode::VK_NONE</autogen> <autogen>--KeyToKey-- KeyCode::C, ModifierFlag::SHIFT_L, KeyCode::K, ModifierFlag::SHIFT_L, KeyCode::I, KeyCode::VK_NONE</autogen> <autogen>--KeyToKey-- KeyCode::V, ModifierFlag::SHIFT_L, KeyCode::R, ModifierFlag::SHIFT_L, KeyCode::U, KeyCode::VK_NONE</autogen> <autogen>--KeyToKey-- KeyCode::B, ModifierFlag::SHIFT_L, KeyCode::T, ModifierFlag::SHIFT_L, KeyCode::U, KeyCode::VK_NONE</autogen> <autogen>--KeyToKey-- KeyCode::N, ModifierFlag::SHIFT_L, KeyCode::T, ModifierFlag::SHIFT_L, KeyCode::E, KeyCode::VK_NONE</autogen> <autogen>--KeyToKey-- KeyCode::M, ModifierFlag::SHIFT_L, KeyCode::T, ModifierFlag::SHIFT_L, KeyCode::A, KeyCode::VK_NONE</autogen> <autogen>--KeyToKey-- KeyCode::COMMA, ModifierFlag::SHIFT_L, KeyCode::D, ModifierFlag::SHIFT_L, KeyCode::E, KeyCode::VK_NONE</autogen> <!-- 。 --> <autogen>--KeyToKey-- KeyCode::SLASH, ModifierFlag::SHIFT_L, KeyCode::B, ModifierFlag::SHIFT_L, KeyCode::U, KeyCode::VK_NONE</autogen> <!-- 単打 --> <!-- 2段目 - ーには、ちぐばこがひげ「 --> <autogen>--KeyToKey-- KeyCode::Q, ModifierFlag::NONE, KeyCode::MINUS, KeyCode::VK_NONE</autogen> <autogen>--KeyToKey-- KeyCode::W, ModifierFlag::NONE, KeyCode::N, KeyCode::I, KeyCode::VK_NONE</autogen> <autogen>--KeyToKey-- KeyCode::E, ModifierFlag::NONE, KeyCode::H, KeyCode::A, KeyCode::VK_NONE</autogen> <autogen>--KeyToKey-- KeyCode::R, ModifierFlag::NONE, KeyCode::COMMA, KeyCode::VK_NONE</autogen> <autogen>--KeyToKey-- KeyCode::T, ModifierFlag::NONE, KeyCode::T, KeyCode::I, KeyCode::VK_NONE</autogen> <autogen>--KeyToKey-- KeyCode::Y, ModifierFlag::NONE, KeyCode::G, KeyCode::U, KeyCode::VK_NONE</autogen> <autogen>--KeyToKey-- KeyCode::U, ModifierFlag::NONE, KeyCode::B, KeyCode::A, KeyCode::VK_NONE</autogen> <autogen>--KeyToKey-- KeyCode::I, ModifierFlag::NONE, KeyCode::K, KeyCode::O, KeyCode::VK_NONE</autogen> <autogen>--KeyToKey-- KeyCode::O, ModifierFlag::NONE, KeyCode::G, KeyCode::A, KeyCode::VK_NONE</autogen> <autogen>--KeyToKey-- KeyCode::P, ModifierFlag::NONE, KeyCode::H, KeyCode::I, KeyCode::VK_NONE</autogen> <autogen>--KeyToKey-- KeyCode::JIS_ATMARK, ModifierFlag::NONE, KeyCode::G, KeyCode::E, KeyCode::VK_NONE</autogen> <!-- 「 --> <!-- 3段目 - のとかんっくういしなBS」 --> <autogen>--KeyToKey-- KeyCode::A, ModifierFlag::NONE, KeyCode::N, KeyCode::O, KeyCode::VK_NONE</autogen> <autogen>--KeyToKey-- KeyCode::S, ModifierFlag::NONE, KeyCode::T, KeyCode::O, KeyCode::VK_NONE</autogen> <autogen>--KeyToKey-- KeyCode::D, ModifierFlag::NONE, KeyCode::K, KeyCode::A, KeyCode::VK_NONE</autogen> <autogen>--KeyToKey-- KeyCode::F, ModifierFlag::NONE, KeyCode::N, KeyCode::N, KeyCode::VK_NONE</autogen> <autogen>--KeyToKey-- KeyCode::G, ModifierFlag::NONE, KeyCode::X, KeyCode::T, KeyCode::U, KeyCode::VK_NONE</autogen> <autogen>--KeyToKey-- KeyCode::H, ModifierFlag::NONE, KeyCode::K, KeyCode::U, KeyCode::VK_NONE</autogen> <autogen>--KeyToKey-- KeyCode::J, ModifierFlag::NONE, KeyCode::U, KeyCode::VK_NONE</autogen> <autogen>--KeyToKey-- KeyCode::K, ModifierFlag::NONE, KeyCode::I, KeyCode::VK_NONE</autogen> <autogen>--KeyToKey-- KeyCode::L, ModifierFlag::NONE, KeyCode::S, KeyCode::I, KeyCode::VK_NONE</autogen> <autogen>--KeyToKey-- KeyCode::SEMICOLON, ModifierFlag::NONE, KeyCode::N, KeyCode::A, KeyCode::VK_NONE</autogen> <autogen>--KeyToKey-- KeyCode::JIS_COLON, ModifierFlag::NONE, KeyCode::DELETE, KeyCode::VK_NONE</autogen> <!-- 」 --> <!-- 4段目 - すまきるつてたで。ぶ¥ --> <autogen>--KeyToKey-- KeyCode::Z, ModifierFlag::NONE, KeyCode::S, KeyCode::U, KeyCode::VK_NONE</autogen> <autogen>--KeyToKey-- KeyCode::X, ModifierFlag::NONE, KeyCode::M, KeyCode::A, KeyCode::VK_NONE</autogen> <autogen>--KeyToKey-- KeyCode::C, ModifierFlag::NONE, KeyCode::K, KeyCode::I, KeyCode::VK_NONE</autogen> <autogen>--KeyToKey-- KeyCode::V, ModifierFlag::NONE, KeyCode::R, KeyCode::U, KeyCode::VK_NONE</autogen> <autogen>--KeyToKey-- KeyCode::B, ModifierFlag::NONE, KeyCode::T, KeyCode::U, KeyCode::VK_NONE</autogen> <autogen>--KeyToKey-- KeyCode::N, ModifierFlag::NONE, KeyCode::T, KeyCode::E, KeyCode::VK_NONE</autogen> <autogen>--KeyToKey-- KeyCode::M, ModifierFlag::NONE, KeyCode::T, KeyCode::A, KeyCode::VK_NONE</autogen> <autogen>--KeyToKey-- KeyCode::COMMA, ModifierFlag::NONE, KeyCode::D, KeyCode::E, KeyCode::VK_NONE</autogen> <!-- 。 --> <autogen>--KeyToKey-- KeyCode::SLASH, ModifierFlag::NONE, KeyCode::B, KeyCode::U, KeyCode::VK_NONE</autogen> <autogen>--KeyToKey-- KeyCode::JIS_UNDERSCORE, ModifierFlag::NONE, KeyCode::JIS_YEN, KeyCode::VK_NONE</autogen> <!-- 中指シフト --> <!-- 2段目 - K:ファごふフィフェ , D:ウィぱよみウェウォ --> <!-- K --> <autogen>--SimultaneousKeyPresses-- KeyCode::K, KeyCode::Q, KeyCode::F, KeyCode::A, KeyCode::VK_NONE</autogen> <autogen>--SimultaneousKeyPresses-- KeyCode::K, KeyCode::W, KeyCode::G, KeyCode::O, KeyCode::VK_NONE</autogen> <autogen>--SimultaneousKeyPresses-- KeyCode::K, KeyCode::E, KeyCode::F, KeyCode::U, KeyCode::VK_NONE</autogen> <autogen>--SimultaneousKeyPresses-- KeyCode::K, KeyCode::R, KeyCode::F, KeyCode::I, KeyCode::VK_NONE</autogen> <autogen>--SimultaneousKeyPresses-- KeyCode::K, KeyCode::T, KeyCode::F, KeyCode::E, KeyCode::VK_NONE</autogen> <!-- D --> <autogen>--SimultaneousKeyPresses-- KeyCode::D, KeyCode::Y, KeyCode::W, KeyCode::I, KeyCode::VK_NONE</autogen> <autogen>--SimultaneousKeyPresses-- KeyCode::D, KeyCode::U, KeyCode::P, KeyCode::A, KeyCode::VK_NONE</autogen> <autogen>--SimultaneousKeyPresses-- KeyCode::D, KeyCode::I, KeyCode::Y, KeyCode::O, KeyCode::VK_NONE</autogen> <autogen>--SimultaneousKeyPresses-- KeyCode::D, KeyCode::O, KeyCode::M, KeyCode::I, KeyCode::VK_NONE</autogen> <autogen>--SimultaneousKeyPresses-- KeyCode::D, KeyCode::P, KeyCode::W, KeyCode::E, KeyCode::VK_NONE</autogen> <autogen>--SimultaneousKeyPresses-- KeyCode::D, KeyCode::JIS_ATMARK, KeyCode::U, KeyCode::X, KeyCode::O, KeyCode::VK_NONE</autogen> <!-- Shiftウォ --> <autogen>--SimultaneousKeyPresses-- KeyCode::D, ModifierFlag::SHIFT_L, KeyCode::JIS_ATMARK, KeyCode::U, ModifierFlag::SHIFT_L, KeyCode::X, KeyCode::O, KeyCode::VK_NONE</autogen> <!-- 3段目 - K:ほじれもゆ , D:へあ[][]え --> <!-- K --> <autogen>--SimultaneousKeyPresses-- KeyCode::K, KeyCode::A, KeyCode::H, KeyCode::O, KeyCode::VK_NONE</autogen> <autogen>--SimultaneousKeyPresses-- KeyCode::K, KeyCode::S, KeyCode::J, KeyCode::I, KeyCode::VK_NONE</autogen> <autogen>--SimultaneousKeyPresses-- KeyCode::K, KeyCode::D, KeyCode::R, KeyCode::E, KeyCode::VK_NONE</autogen> <autogen>--SimultaneousKeyPresses-- KeyCode::K, KeyCode::F, KeyCode::M, KeyCode::O, KeyCode::VK_NONE</autogen> <autogen>--SimultaneousKeyPresses-- KeyCode::K, KeyCode::G, KeyCode::Y, KeyCode::U, KeyCode::VK_NONE</autogen> <!-- D --> <autogen>--SimultaneousKeyPresses-- KeyCode::D, KeyCode::H, KeyCode::H, KeyCode::E, KeyCode::VK_NONE</autogen> <autogen>--SimultaneousKeyPresses-- KeyCode::D, KeyCode::J, KeyCode::A, KeyCode::VK_NONE</autogen> <!-- [] --> <!-- [] --> <autogen>--SimultaneousKeyPresses-- KeyCode::D, KeyCode::SEMICOLON, KeyCode::E, KeyCode::VK_NONE</autogen> <!-- 4段目 - K:づぞぼむフォ , D:せねべぷヴ --> <!-- K --> <autogen>--SimultaneousKeyPresses-- KeyCode::K, KeyCode::Z, KeyCode::D, KeyCode::U, KeyCode::VK_NONE</autogen> <autogen>--SimultaneousKeyPresses-- KeyCode::K, KeyCode::X, KeyCode::Z, KeyCode::O, KeyCode::VK_NONE</autogen> <autogen>--SimultaneousKeyPresses-- KeyCode::K, KeyCode::C, KeyCode::B, KeyCode::O, KeyCode::VK_NONE</autogen> <autogen>--SimultaneousKeyPresses-- KeyCode::K, KeyCode::V, KeyCode::M, KeyCode::U, KeyCode::VK_NONE</autogen> <autogen>--SimultaneousKeyPresses-- KeyCode::K, KeyCode::B, KeyCode::F, KeyCode::O, KeyCode::VK_NONE</autogen> <!-- D --> <autogen>--SimultaneousKeyPresses-- KeyCode::D, KeyCode::N, KeyCode::S, KeyCode::E, KeyCode::VK_NONE</autogen> <autogen>--SimultaneousKeyPresses-- KeyCode::D, KeyCode::M, KeyCode::N, KeyCode::E, KeyCode::VK_NONE</autogen> <autogen>--SimultaneousKeyPresses-- KeyCode::D, KeyCode::COMMA, KeyCode::B, KeyCode::E, KeyCode::VK_NONE</autogen> <autogen>--SimultaneousKeyPresses-- KeyCode::D, KeyCode::DOT, KeyCode::P, KeyCode::U, KeyCode::VK_NONE</autogen> <autogen>--SimultaneousKeyPresses-- KeyCode::D, KeyCode::SLASH, KeyCode::V, KeyCode::U, KeyCode::VK_NONE</autogen> <!-- 薬指シフト --> <!-- 2段目 - L:ぢめけティディ , S:シェぺどやジェ --> <!-- L --> <autogen>--SimultaneousKeyPresses-- KeyCode::L, KeyCode::Q, KeyCode::D, KeyCode::I, KeyCode::VK_NONE</autogen> <autogen>--SimultaneousKeyPresses-- KeyCode::L, KeyCode::W, KeyCode::M, KeyCode::E, KeyCode::VK_NONE</autogen> <autogen>--SimultaneousKeyPresses-- KeyCode::L, KeyCode::E, KeyCode::K, KeyCode::E, KeyCode::VK_NONE</autogen> <autogen>--SimultaneousKeyPresses-- KeyCode::L, KeyCode::R, KeyCode::T, KeyCode::H, KeyCode::I, KeyCode::VK_NONE</autogen> <autogen>--SimultaneousKeyPresses-- KeyCode::L, KeyCode::T, KeyCode::D, KeyCode::H, KeyCode::I, KeyCode::VK_NONE</autogen> <!-- S --> <autogen>--SimultaneousKeyPresses-- KeyCode::S, KeyCode::Y, KeyCode::S, KeyCode::H, KeyCode::E, KeyCode::VK_NONE</autogen> <autogen>--SimultaneousKeyPresses-- KeyCode::S, KeyCode::U, KeyCode::P, KeyCode::E, KeyCode::VK_NONE</autogen> <autogen>--SimultaneousKeyPresses-- KeyCode::S, KeyCode::I, KeyCode::D, KeyCode::O, KeyCode::VK_NONE</autogen> <autogen>--SimultaneousKeyPresses-- KeyCode::S, KeyCode::O, KeyCode::Y, KeyCode::A, KeyCode::VK_NONE</autogen> <autogen>--SimultaneousKeyPresses-- KeyCode::S, KeyCode::P, KeyCode::J, KeyCode::E, KeyCode::VK_NONE</autogen> <!-- 3段目 - L:をさおりず , S:びら[][]そ --> <!-- L --> <autogen>--SimultaneousKeyPresses-- KeyCode::L, KeyCode::A, KeyCode::W, KeyCode::O, KeyCode::VK_NONE</autogen> <autogen>--SimultaneousKeyPresses-- KeyCode::L, KeyCode::S, KeyCode::S, KeyCode::A, KeyCode::VK_NONE</autogen> <autogen>--SimultaneousKeyPresses-- KeyCode::L, KeyCode::D, KeyC