web-dev-qa-db-ja.com

システム修飾キーを再割り当てします

MacOSでは、「システム修飾キー」(コピー、貼り付けなどのシステム全体のOSショートカットのキー)はcmdであり、ctrlキーとは別のものです。つまり、cmdキーは、新しいブラウザタブを開いたり、システム全体にコピー/貼り付けしたりするために使用でき、ctrlキーは、テキストemacsスタイルをナビゲートするために使用できます(例:ctrl-a OSの任意の場所の行頭に移動します)。

Debianに切り替えて以来、私はこの分離がないことに非常に不満を感じています。これは、私の筋肉の記憶ctrl-aが行の先頭に移動すると、代わりにすべてのテキストが選択されることを意味します(Macの場合のcmd-aのように)。

ctrlキーの職務を別のキーに再割り当てする方法はありますか?これは、ctrlをキーボードの別のキーに再マップすることを意味するものではありません。まだctrlを存在させたいのですが、コピー/貼り付けなどに使用したくないので、別の修飾キーでこれを実行し、ctrlをemacs用に空けておきます-スタイルコマンド。

すべての場合にこれを行うのは難しいかもしれないことを理解していますが、Chrome、ターミナル、および一部のIDEで機能させることができたとしても、それで十分です。

3
Conor Taylor

このユースケースに適応できる過去数日間に私が見つけたものの1つは、 AutoKey です。これにより、(とりわけ)特定のキーの組み合わせでpythonスクリプトを実行して、アクションを変更できます。これを使用して、LinuxのmacOSキーボードを模倣できます(ctrlは独自のキーであり、この場合はcmdaltまたはwinと同義であると見なすことができます。

たとえば、ctrl-aを変更して行の先頭(emacsスタイル)に移動し、alt-aを使用してすべてを選択するには、次のスクリプトを作成しました。

import re

if re.match('.*Gnome-terminal', window.get_active_class()):
  keyboard.send_keys("<ctrl>+a")
else:
  keyboard.send_keys("<home>")

これにより、ctrl-aはターミナルでの動作を保持できますが、行の先頭に移動するのは他のすべてのプログラムです(例:ChromeおよびIntelliJ)。AutoKeyでは、これはctrl-aにバインドされ、それがいつでも実行されます。ショートカットが押されました。

別の例は、alt-wを使用してタブを閉じることです(Chrome、IntelliJ、ターミナルなど)。これは、次のスクリプトをalt+wにバインドして実行できます。

import re

if re.match('.*(Gnome-terminal|jetbrains-clion)', window.get_active_class()):
  keyboard.send_keys("<ctrl>+<shift>+w")
else:
  keyboard.send_keys("<ctrl>+w")
0
Conor Taylor
  • コマンド+スペース
  • キーボードを検索します([設定]-> [キーボード]から移動することもできます)
  • サブタブを選択-キーボード
  • 修飾キーをクリックします
  • 必要に応じて変更してください。お役に立てれば。これが修飾キーのスクリーンショットです!!

修飾キー

1
tekawade