グローバルHotKeysをLinuxでWINEプログラムにバインドする方法
WINEのLinuxにWindowsプログラムをインストールしたことがありますが、これはシステム全体のホットキーをバインドしないことを確認するためだけのものですか? HTGはあなたが探していた周りの仕事をしています.
djeucalyptusによるイメージ
概要
Linuxに切り替えるという考えさえ考えたことがある人なら誰でも、おそらくすぐにあなたが機能する必要があるのはこの1つのWindowsアプリがあるという問題に遭遇したことでしょう。私達はあなたがWINEを使ってこれを達成できることをあなたにすでに示しました.
この作家のために、アプリケーションはマイクロソフトSAPI4エンジンを利用する音声合成アプリケーションでした。 WINEでプログラムをインストールするのは簡単ではありませんでしたが、完了するとプログラムのさまざまな動作(読み取り開始、読み取り停止など)を引き起こすホットキーが機能しなくなったことがすぐにわかりました。 WINEの問題.
たくさんの検索の後、ついにネイティブ関数を使ってX.orgインターフェースを操作することができるGNUユーティリティの形の解決策を見つけました。その種類の唯一のものではありませんが、xdotoolは最も作業しやすいもので、すでにUbuntu / Mintリポジトリにありました。.
xdotool
xdotoolプログラムは、CLIから多くのウィンドウ関連のタスクを実行できます。それにもかかわらず、私たちが利用するのは「検索」と「キー」の2つだけです。 「検索」機能はまさにそれを行い、あなたがそれに設定したパラメータに従ってウィンドウIDを検索します。 「キー」機能を使用すると、ウィンドウIDに対するキーストロークをシミュレートできます。.
インストールと設定
すでにWINEとその下に必要なプログラムがインストールされていると仮定します。この例では、Balabolkaを「Windows」アプリケーションとして使用します。これは、私がこのソリューションを必要としていた元のプログラムの優れたフリーウェアの複製だからです(第2スピーチセンター)。.
Balabolkaも使用することを選択した場合は、そのホットキー機能を有効にする必要があります。.
注:SAPI音声がインストールされるように、デモモードでもTTSReaderまたは2nd Speech Centerをインストールすることをお勧めします。.
プログラムを開き、「オプション」 - >「設定」の下の設定(Shift + F6)に行きます。.
[ホットキー]タブに移動し、[グローバルホットキーを使用する]のチェックボックスをオンにします。.
OKをクリック.
バックグラウンドで実行したままにして、キーストロークをフックしたときにその仕事ができるようにします。.
次を発行してxdotoolをインストールします。
sudo apt-get xdotoolをインストールする
グローバルバインディング
xdotoolプログラムだけでは、グローバルにホットキーにバインドすることはできませんが、既存のOSホットキーシステムを使用できます。 xdotoolを使ってBalabolkaプログラムにキーストロークを送信し、OSのホットキーシステムから呼び出す単純なスクリプトを作成します。.
次の内容で「start_read.sh」というスクリプトを作成します。
xdotool key --window $(xdotool検索 - 制限1 --all --pid $(pgrep balabolka) - 名前Balabolka) "ctrl + alt + F9"
今回は「stop_read.sh」という別のスクリプトを作成し、次の内容を作成します。
xdotool key --window $(xdotool検索--limit 1 --all --pid $(pgrep balabolka) - 名前Balabolka) "ctrl + alt + F7"
注:これはスクリプトを必要としない1つのライナーですが、Mint / Ubuntuの「キーボードショートカット」プログラムは、直接呼び出すだけでは機能しませんでした。あなたがそれをする方法を知っているならば、以下のコメントで共有してください.
このコマンドをそのコンポーネントにブレーキをかけると、次のようになります。
- “ -pid $(pgrep balabolka)”パートは、プロセスIDを確認するために使用したいプログラム上で“ pgrep”を実行します。これは、xdotoolの検索対象をそのPIDだけに絞り込みます。.
- “ xdotool search -limit 1 -all…-name Balabolka”の部分では、xdotoolの検索範囲をさらに狭め、返される回答を1に制限しています。結果を制限するプログラムは、「キー」コマンドのフォーマッタとして機能します。あなたがそれがあなたが使っているプログラムにとって問題であるならば、あなたはあなたがこの部分をもっとマッサージする必要があると思うかもしれません.
- "xdotool key -window%WINDOW_ID%" ctrl + alt + F7 ""パートは、前のパートで取得したwindowIDに目的のキーストロークを送信します。.
スクリプトを実行可能にする.
Linuxミントキーボード ショートカット
Linux Mintでは、グローバルホットキーは「キーボードショートカット」プログラムに設定されています。.
開いたら「追加」をクリックして新しいカスタムショートカットを作成します。
名前を付けて、「Command」の下に、上記で作成したスクリプトのいずれかへのフルパスを指定します。 2番目のスクリプトについても同じ手順を繰り返します。.
それでは、「ショートカット」列で、「無効」という単語をクリックして、新しいキーコンボを設定するためのオプションを取得します。.
注:必要に応じて、プログラムのデフォルト以外のものを使用することができます。ある意味では、あなたが使用するプログラムにもよるが、そうでなければあなたのコントロールの範囲外になるであろうキーバインディングへの「再マップ」を作成すること.
選択したコンボをクリックして魔法を聞いてください.
Ubuntuキーボード
Ubuntuでは、グローバルホットキーを設定するプログラムは単に「キーボード」と呼ばれます。.
[ショートカット]タブに切り替えて、[カスタムショートカット]を選択します。.
プラス記号をクリックしてショートカットを追加します。名前を付けて、「Command」の下に、上記で作成したスクリプトのいずれかへのフルパスを指定します。 2番目のスクリプトについても同じ手順を繰り返します。.
新しいキーコンボを設定するためのオプションを取得するために今「無効」の単語をクリックしてください.
注意:Mintセクションのメモを繰り返して、必要に応じてプログラムのデフォルト以外のものを使用することができます。ある意味では、あなたが使用するプログラムにもよるが、そうでなければあなたのコントロールの範囲外になるであろうキーバインディングへの「再マップ」を作成すること.
作者のメモ
私が真剣にLinuxへの移行を検討するたびに、この問題は私の問題リストの最初のものでした。 Linuxに問題がないわけではありませんが、これは私にとってハードルでした。私は何度も何度も試してみました、その分野の友人や人々に尋ね、それを賞金にしさえしました…私はこのサガが終わって、私の魂がついに休むことができてうれしいです.
それは私が同じ試練を経験する必要がないように私がそこにいる誰かを手助けしてくれたことが私の願いです。.
Doc Brown:その日のビジョンを実現するには、私に30年近く、家族全員の幸運が必要です。私の神よ、それはずっと長いのですか?