web-dev-qa-db-ja.com

Pythonでubuntuのキーボードレイアウト/入力メソッドを定義しますか?

私はここで少し必死で、Linuxでキーボードレイアウトを定義する可能性に夢中になっています(ここではubuntu 10.04)。キーボードマッピングを定義する簡単でグラフィカルな方法はないようです( keyboardlayouteditor を除くが、率直に言って、インストールの説明がわかりません。インストールantlr?cairo?pango?gobject ??文法を生成します?? wtf ???)。

私はドイツ語レイアウトのAppleアルミニウムキーボードを使用していますが、何をしても(<>)キーと(^°)キーは常に交換されます(デフォルトの動作を変更することができました)マルチメディアから「通常の」アプリケーション中心のf1 ... f12キーの場合...あなたがしなければならないのは、行echo 2 > /sys/module/hid_Apple/parameters/fnmode/etc/rc.local...に追加することだけです。私はこれをウェブで検索しなければならなかったことを恥じています!)。

私の苦痛に加えて、私は中国のIMEが恐ろしいことに気づき(私が試した多くのIMEのうち、窓のグーグルピンインの近くに来るものは1つもありません)、ibusもscimeも私にとって満足のいく方法で機能していません。

linuxキーボードが沼地を扱っているのを見つけました。私はこれがコンピュータサイエンスで最も難しい問題の1つであるに違いないことを知っています。なぜなら、この主題は、ウィンドウ上であろうとブラウザ内のJavaScriptであろうと、非常に複雑になるからです。言語学者として、私は適切なテキスト処理ポーズの固有の複雑さをよく知っていますが、 xkbの構成方法の説明を見ると 星間宇宙船の構築はケーキウォークのように見えます。

だから私の考えは次のとおりです:

  1. キーストロークが記録されるシステム内の場所を見つけます。
  2. デーモン(Pythonで実装されています。IOCTLなどをリッスンする必要があると聞きました)を使用して、これらのコード(スキャンコードまたは文字コードの可能性があります)を読み取ります。
  3. 特定のコードの組み合わせが表示されたら、それらを切り替えて必要な処理を実行します。
  4. アプリケーションは、以前はUを表示し、その逆も同様にXを表示するようになりました。
  5. 利益!

したがって、質問は次のとおりです。

  • キーボードコードを読み取ることができる場所は、ubuntu/linuxシステムにありますか?
  • インターセプトデーモンがそれらを処理するまで、そのようなキーボードアクションの処理をブロックする方法はありますか?
  • 私は実際にそのようなコードを台無しにすることができますか?
  • このようなインターセプターは、幅広いユースケースで機能しますか?コマンドライン、GTKアプリ、ワイン、Firefoxなどで?
  • 別の方法は、実際にはkeyboardlayouteditorをgrokすることです。したがって、誰かが読みやすい完全なインストール手順について投稿したり、インストール可能なパッケージを指摘したりできれば、それも素晴らしいことです。またはあらゆる種類の使用可能なソフトウェア。
3
flow

Xevを使用してキーコードを読み取り、xmodmapを使用してキーコードをマップできます。

たとえば、キーコード191をF13にマップする場合は、.Xmodmapファイルに次を追加できます。

キーコード191 = F13

xmodmap〜/.Xmodmapを実行すると、キーコード191のこのボタンがF13またはマップしたものにマップされます。

1
Cheesebaron