クロスオペレーティングシステムのカスタムキーボードレイアウト

クロスオペレーティングシステムのカスタムキーボードレイアウト

Macintosh、Windows、Linux(xkb) のキーボード レイアウトを同時に生成するソフトウェアはありますか?

編集: 私の理解では、Microsoft Keyboard Layout Creator は修飾キーの変更をサポートしていません (この問題は autohotkey で回避できるかもしれないと読んだことがあります)

答え1

残念ながら、主要なデスクトップ OS のネイティブ キーボード レイアウト ファイルを生成またはトランスコード (移植) できるソフトウェア ツールやパッケージはありません (少なくとも、一般に公開されているものはありません)。このようなツールは、同じマシンとキーボードであるかどうかに関係なく、複数の OS を定期的に使用しなければならないすべての人にとって非常に便利です。これはますます一般的になっています。しかし、これまでこのようなツールは開発されておらず、リリースされていません。それは理由がないわけではありません。OS 間でキーボードを「移植」したり、異なるプラットフォーム間で正確に同期されたキーボード レイアウトを維持しようとすると、さまざまな問題が伴います。大きな障壁の 1 つは、さまざまなオペレーティング システムで使用および/または認識される「修飾キー」/コマンド キーの違いです。さらに、Mac には独自の物理キーボードがあり、一部のキーは他の OS に直接対応または変換されないため、整理して克服する必要がある問題と不整合の 2 番目の「レイヤー」が作成されます。基本的に、指定したプラットフォーム間でまったく同じように機能するキーボード レイアウトを持つことは技術的に不可能です。

しかしキーマン開発者は、キーボード レイアウトとテキスト入力の開発のための強力なサード パーティ ソフトウェア ツールであり、おそらく、あなたの要件を可能な限り満たすものだと思います。これは、私が知る限り、一般に公開されている唯一の同種のツールです。サード パーティ ソフトウェアは理想的ではありませんが、そのすべての機能を考慮すると、Keyman は検討する価値があると私は断言します。ただし、あなたの目標が正確に何であるか (およびキーボード レイアウトがどの程度複雑/ユニークであるか) によって異なります。

Keyman の開発者パッケージは、Microsoft および Apple のデスクトップ OS の最新バージョンだけでなく、それぞれのモバイル プラットフォーム/デバイス、さらには Android を含む *nix ベースのプラットフォーム向けの入力方法/キーボード レイアウトのフォントを含むオールインワン インストーラーを含むさまざまな種類の出力ファイルを生成できる強力なツールです。つまり、オンスクリーンの仮想キーボードの開発も容易になります。すべて 1 つの統合ツールを使用して、1 つの統合プロジェクト ファイルを編集します。さらに、最近オープンソース化され、無料になりました。これに勝るものは望めないと思います... 多くの複雑なスクリプトで必要とされる柔軟で高度な機能と特徴をサポートするために、Keyman は、いわゆる「複雑な」言語/書記体系 (主に、周囲のテキストに基づいて文字を動的に並べ替えたり、文字を選択したりする必要があることが多いインドやチベットなどの南アジアのスクリプトが含まれ、シーケンスが完了した後でもシーケンス全体を再入力せずに編集できるようにする必要があります) に必要な、Keyman が提供する高度なコンテキスト依存機能をサポートしない OS ネイティブのファイル/テクノロジ (.klc/.dll または .keylayout) の代わりに独自のエンジンを使用します。 韓国語Keyman ソース ファイルからキーボードをコンパイルするには、*nix ベースのシステムにインストールして使用する必要があります。(KMFL は Keyman エンジンの移植/書き換えです)。Keyman
エンジン (または同等のもの) は非常に効率的で、必要なリソースもほとんどありません。また、非常に成熟しており、非常に安定しており、問題なくスムーズかつ確実に動作します。

Keyman がサポートするさまざまなプラットフォームや形式のほとんどには、何らかの固有の制限や技術的な制限 (前に触れたように、固有の修飾キーなど) があったり、開発がまだ進行中であったりして、特定の機能が動作しない、または (完全に) 実装されない場合があります。Keyman では、各プラットフォームに固有の機能をカスタマイズおよび最適化して組み込んだりエンコードしたりできるため、これらの問題や違いを軽減できます。

先ほども述べたように、Keyman製品はすべて最近、商用からオープンソースに移行されました。シルKeyman プロジェクトを元の所有者である Tavultesoft から取得しました。SIL は、サポート スタッフとユーザー フォーラムを追加して、元の開発者による継続的な開発をサポートするためのリソースにアクセスできます。

キーボードがサポートするように設計されている言語/書記体系の複雑さに応じて、Keyman のグラフィック UI でサポートされている機能のみを使用してプロジェクトを完了できる場合があります。ただし、デッド キー、コンテキストの並べ替え、置換などのより複雑な機能には、一般的なエンド ユーザーにとってはかなり習得が難しい Keyman のキーボード記述言語 (コーディング/スクリプト言語) を使用する必要があります。

この記述言語は非常に柔軟で拡張性があり、Unicode の正規化、コンテキスト ベースのグリフの並べ替えや置換など、複雑なテキスト処理や処理が可能です。また、自動または長押しによる出力のポップアップ リストなど、適切な「入力メソッド」に近い機能 (基本的なグラフィカル オーバーレイ要素/ウィンドウを含む) も用意されています。また、キーを繰り返し押したりタップしたりして、ループする出力リストを循環させるという、ユニークで便利な機能も用意されています。この機能は特に気に入っています。1 つのキーに長い文字リストを保存することもできますが、2 ~ 5 個に抑えた方が実用的で便利です。私は、使用しているスクリプト言語で使用される珍しい括弧にアクセスするために括弧キーでこの機能を使用し、あまり使用しない記号にアクセスするために他の記号キーでこの機能を使用しています。特定の修飾子の組み合わせを覚える必要がないので便利です。必要な文字が印刷されるまでキーをタップするだけで、誤ってその文字をパスした場合は、その文字が再び表示されるまでタップし続けるだけです。また、「Compose Key」の動作と同様に、自動置換を行うように設定することもできます。つまり、± を +- に、∓ を -+ に置き換え、≤ ≰ ⪇ ≦ ≨ ≮ ≲ ≠ などの文字を同様のシーケンスに置き換えます。

上で触れたように、高度な機能を作成するために使用されている言語は、私にとって理想的でも直感的でもないようです。また、ドキュメンテーションこのキーボード記述言語の構文と「語彙」は、いくぶん曖昧で、不明瞭で、混乱を招きやすく、増強、拡張、改善が必要です。しかし、これは改善されつつあり、現在も開発が続けられているようです。ユーザー フォーラムはあまり活発ではないようです (あまり投稿がありません) が、質問に対する回答はすぐに投稿されているようです。
さらに重要なことは、特定の使用法や機能をコードでどのように表記/記述するかという点では、言語自体が扱いにくく、過度に/不必要に複雑で、少し直感に反しているように私には思えます。しかし私は開発者/プログラマーではないので、私の評価はその文脈で考慮されるべきであり、「鵜呑みにしない」開発者は、ソフトウェア、スクリプト言語、ドキュメントに関する機能のリクエスト、提案、フィードバックをかなり積極的に検討し、評価しているようです。

幸いなことに、Keyman はすでに 1,000 を超える言語をサポートしており、それらのソース ファイル/コードを観察、調査、変更し、さらにはコピーして独自のプロジェクトに挿入したり再利用したりすることもできます。

さまざまな種類のソース ファイルから、Keyman エンジン、アイコン、フォント、さらにはキーボード レイアウトやテキスト処理ファイルを含む完全に自動化されたインストーラー パッケージまで、さまざまな種類のファイルやパッケージを生成できます。キーボードのさまざまな動作を有効にする、ユーザーが切り替え可能なカスタマイズされた設定を作成することもできます。

Keyman に OS ネイティブのキーボード レイアウト形式を少なくともインポートする機能がないのは残念です。それができれば非常に役立ち、驚くほど素晴らしいことです。ただし、これはオープン ソースなので、スキル、モチベーション、時間のある人なら誰でも作業を開始できます。また、フォーラムに十分なリクエストとコメントがあれば、開発者にこの作業に取り組むよう説得できるかもしれません。
このようなプロジェクトは、海外で仕事を探している安価なフリーランス コーダーに外注して取り組むのにも適している可能性があります。残念ながら、Keyman の機能の多くは、Windows および MacOS のキーボード レイアウト/入力 API でサポートされていないため、Keyman でネイティブのキーボード レイアウト ファイルを生成することはできません。

~~~~~~ テキストを生成しないキー(修飾キー/コマンドキー、ファンクションキー、メディアキー、編集キー(上、下、バックスペースなど)など)の出力/機能を変更することは、ほとんどのオペレーティングシステムではキーボードレイアウトの一部とは見なされず、Windowsではまったくネイティブにサポートされていません。MacOSでは、キーボードコントロールパネルで修飾キーを再割り当てする方法が提供されており、*nixのさまざまなフレーバーには、同様の、多くの場合より広範なカスタマイズを可能にするさまざまなツールがあります。Windows
用のサードパーティツールには、Kbd編集これは、Windows 用の標準の klc ファイルと DLL インストーラー パッケージを実際に生成します。KbdEdit は、MSKLC がどうあるべきかという私の想像とほぼ同じです... 非常に強力で柔軟性があり、連鎖デッドキーを使用した非常に複雑なキーボード レイアウトの作成など、ほぼ何でもできます... また、任意のキーを、日本語/アジア キーボードの修飾キーを含む多数のわかりにくい v_keys に再割り当てする機能もあります。これらのわかりにくい修飾キーを創造的に再利用することで、前述した OS 間の相違点のギャップを埋められる可能性がありますが、これを実装する直接的または明白な方法はありません。Windows キーボードは、技術的には最大 15 個の個別の Shift/修飾キーの状態/レベル/レイヤーを持つことができると思います。そのうちの 1 つ (かなキー) は、Caps Lock のようにロック/切り替え可能にすることができます。キーボードは、追加ソフトウェアやサード パーティ ソフトウェアなしで動作します。ただし、もちろん Mac や Linux に移植するツールはありません。

カラビナは、MacOS に最も近い類似品ですが、前提がまったく異なり、キーボード レイアウト自体と直接関係しているわけではありません。ただし、カスタム修飾キーとキーの動作 (修飾キーを単独でタップし、修飾キーとして使用しない場合に文字を出力するなど) を作成できる XML ベースのネイティブ言語を備えています。カスタム修飾キーが役立つためには、そのような目的のために特別に設計されていない言語を使用して、必要なすべての可能な出力を手動でプログラムする必要があります。ただし、非常に多用途で強力であり、かなりクールな低レベルのトリックや機能を実行できます。しかも無料です。

ウクレレは、ネイティブ キーボード レイアウト ファイルとバンドルを生成する、MacOS 用の無料ツールです。MSKLC よりもはるかに強力で直感的なインターフェイスと、開発者が頻繁に訪れる非常に役立つフォーラムを備えています。オープンソースではありませんが、これも SIL が所有しています。たとえばデッド キーを作成するために、Ukelele の GUI を Keyman Developer パッケージに統合すると便利です。もちろん、他のプラットフォームからレイアウトをインポートまたはエクスポートすることはできません。

答え2

はい、それはかなり簡単です。

マックOS Mac OSではすべてがオンボードになっており、シンプルでステップバイステップの手順が見つかりますここ

ウィンドウズ Microsoft はここで独自の手順リストを提供しています: http://msdn.microsoft.com/en-us/goglobal/bb964665.aspx

リナックス Linuxのカスタムキーボードレイアウトを作成する日本語

同様の質問が StackOverflow でかつて尋ねられたことがあります: https://stackoverflow.com/questions/826986/how-to-make-a-custom-keyboard-layout

関連情報