キーボードのキーのコードが一時的にキーマップを変更できるようにするにはどうすればよいですか?


9

私は実際の「同時Viのモード」機能に慣れてきたKeyRemap4MacBookボタンを長押しすることができますsし、d同時にキーをしてから使用してhjk、およびl矢印キーなどのキーを。ときsdいない、一緒に押されsたりdイベントが発生したが、私が正常に入力したときに、私が打つと任意の遅延問題が気づかないsか、d個別に。

Linux(特にRHEL 6.4)でこの機能を再現するにはどうすればよいですか?

私が持っていたいくつかのアイデア:

  1. 場合s+は、d改質剤に再マッピングすることができ、その後、キーはhjkl+修飾子は、それに応じてマッピングすることができました。(現在使用しているキーボードには、s+の代わりに使用できる予備の修飾キーがありませんd。さらに、同時Viモードのポイントは、すべての指をホーム行に保持することです。 CapsLockはすでにとに再マッピングされControlていますEscape)。

  2. 理想的には、システム設定または既に使用しているXKBキーボードのようなものを使用してこれを行う方法を見つけるでしょう。それが不可能な場合は、おそらくxcapeプログラム(私が使用していて、キーをさまざまなキープレスおよび修飾キーシンボルにマップできるようにする)に似たものを書くことができます。 xcapeただし、キーが離されるsとトリガーされるため、dキーとキーが遅くなりすぎないように微調整する必要があります。


RHEL 6.4では?Xまたはターミナル経由でvimを使用していますか?
Otheus

ああ、どうやってCapsLockをControl AND Escapeにマッピングしますか?
Otheus

CapsLockをコントロールにマップし、xcape(上記にリンク)を使用して、コントロールの短押しをエスケープにマップします。質問では、KeyRemap4MacBookのViライクなモードを指しますが、それ自体をvimではありません。これまでのところ、私が探しているものに対して私が見つけた最も有望なオプションは、Ploverで使用されているのと同様の方法でPython Xlibモジュールを使用することです。これまでのところ、これに取り組む時間はあまりありませんでした。
ws_e_c421

回答:


2

標準ツールではこれを行うことはできません。何かを作成する必要があります(おそらく、多くのxserverが影響を受けます。これをXの外部で機能させる場合は、カーネルが変更されます)。

これは、デザインが基づいている(および最適化されている)アイデアには、通常のキーのコード化や修飾子からの文字の放出が含まれていないためです。


私はまだこれを調べています(もっと時間が必要です)。Xベースのソリューションのテンプレートを提供していると思われるPloverプロジェクトを見つけましたが、Waylandに切り替えたいので、調査を中止しました。最近、libevdevとlibudevを使用して動的にデバイスを取得および再マッピングするcaps2esc を発見しました。このようなアプローチは、再マッピングに加えてコードでも機能すると思いますが、さらに調査する必要があります(私はlibinputソリューションも好みます)。
ws_e_c421

libinputのコメントが間違っていました。caps2escはlibinputの代替であるxf86-input-evdevドライバーで動作すると思っていましたが、実際には両方のプロジェクトで使用される低レベルのライブラリであるlibevdevレベルで動作します。caps2escのツールは、インターセプトツールプロジェクトにリファクタリングされました。インターセプトツール用に適切に作成されたプラグインが、私が説明した機能を提供できると思います。調査するリストに載っています。
ws_e_c421 2017年

2

4年後、ようやくこの質問に対する大まかな回答のドラフトができました。答えは、libevdevを使用してキーボード入力を取得し、再入力する前に処理を行うInterception Toolsを使用することです。同時キーマッピングについては、私はと呼ばれる傍受ツールの大まかなプラグイン作ったChordedキーマップすることができますhjklとき、矢印キーのように振る舞うsとがd同時に押されています。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.