キーボードのいくつかのキーのキー割り当てを変更したい。コマンドを実行するものと、異なるキーをアクティブにするものがあります。
これを行うためにどのアプリケーションを使用できますか?
インデックス:
キーボードのいくつかのキーのキー割り当てを変更したい。コマンドを実行するものと、異なるキーをアクティブにするものがあります。
これを行うためにどのアプリケーションを使用できますか?
インデックス:
回答:
sudo apt-get install xbindkeys
Xbindkeysは非常に汎用性の高いプログラムで、非常に簡単にキーを再マッピングできます。キーバインディングを特定のコマンドに変更するために、ホームディレクトリにあるデフォルトの設定ファイルを使用します。
デフォルトの設定ファイルを作成するには、次のコマンドを使用します。
xbindkeys --defaults
デフォルトの設定ファイルを印刷します。したがって、デフォルト値を含むファイルを作成する場合は、次を使用します。
xbindkeys --defaults > $HOME/.xbindkeysrc
これは、.xbindkeysrc
ホーム(~
)にあるという名前の隠しファイルにデフォルト値を出力します。
キーのバインディングを実際に変更するには、まずそれらのキーの名前またはキーシムが何であるかを知る必要があります。 ハンドルxbindkeys
を使用して-k
、キーまたはキーの組み合わせの名前を検索できます。実行:
xbindkeys -k
そして、キーまたはキーの組み合わせを押します。あなたの出力はなります何かこれに類似する(ときに押しますspace):
"NoCommand"
m:0x10 + c:65
Mod2 + space
"No Command"
現在、Spaceキーに関連付けられているコマンドがないことを示しています。
m:0x10 + c:65
Mod2 + space
キー/キーの組み合わせの名前です。
先ほど作成した設定ファイルを開きましょう:
gedit .xbindkeysrc
デフォルトの設定ファイルからの抜粋を次に示します。
#
# A list of keys is in /usr/include/X11/keysym.h and in
# /usr/include/X11/keysymdef.h
# The XK_ is not needed.
#
# List of modifier:
# Release, Control, Shift, Mod1 (Alt), Mod2 (NumLock),
# Mod3 (CapsLock), Mod4, Mod5 (Scroll).
#
# The release modifier is not a standard X modifier, but you can
# use it if you want to catch release events instead of press events
# By defaults, xbindkeys does not pay attention with the modifiers
# NumLock, CapsLock and ScrollLock.
# Uncomment the lines above if you want to pay attention to them.
#keystate_numlock = enable
#keystate_capslock = enable
#keystate_scrolllock= enable
# Examples of commands:
"xbindkeys_show"
control+shift + q
で始まるすべての行#
はコメントであり、によって読み取られたり実行されたりすることはありませんxbindkeys
。
これまでコメントアウトされていない唯一の行は次のとおりです。
"xbindkeys_show"
control+shift + q
この抜粋は、xbindkeys
コマンドの基本的な構文を示しています。
"Command to run (in quotes)"
key to associate with command (no quotes)
あなたが見ることができるように:
"xbindkeys_show"
control+shift + q
+ + xbindkeys_show
を押したときにコマンドを実行します。 CtrlShiftq
次に、いくつかのキーをバインドしてみましょう。空白になるように、デフォルトファイル全体をクリアすることをお勧めします。おそらく不要なプリセットキーバインドが含まれています。
次に、Ctrl+ bを使用してブラウザを開きたいとしましょう。最初に、+の名前またはキーシムが何であるかを知る必要があります。前述のように、キーの名前を見つけるために使用できますが、もっと簡単な方法があります。+のような単純な組み合わせの場合は、次を使用できます。 Ctrlbxbindkeys -k
Ctrlb
Control+b
ずっと簡単ですよね!
次に、お気に入りのブラウザのコマンドを見つけます。
Firefoxの場合: firefox
Chromiumの場合: chromium-browser
Operaの場合: opera
以前の構文を覚えていますか?xbindkeys
Firefoxの(またはあなたの他の好みのブラウザ)を押すときに起動するコマンドCtrl+ bです。
"firefox"
Control+b
それを設定ファイルに入れて保存します。コマンドがまだ機能しないことに気付くかもしれませんxbindkeys
。それは実行されていないからです。起動するにxbindkeys
は、ターミナルから実行します。あなたのCtrl+は、b今お使いのブラウザを起動する必要があります!
キーボードのキーがキーボードの別のキーを呼び出すようにしたい場合xbindkeys
、それ自体ではサポートしていないため、追加のソフトウェアが必要になります。私たちは使用できる2つのプログラムを知っている、xdotool
とxte
。私が好むxte
ので、私はそれを使うつもりです。
インストールしてください:
sudo apt-get install xautomation
の構文xte
は次のとおりです。
xte 'command key/mousebutton/xyCoordinates'
例:
単一のキーを押すには: xte 'key keyName'
キーの組み合わせを呼び出すには: xte 'keydown keyName' 'keydown secondKeyName' 'keyup keyName' 'keyup secondKeyName
マウスボタンを呼び出すには:( xte 'mouseclick buttonNumber'
ボタン番号の検索については後ほど説明します)
マウスを移動するには: xte 'mousemove xCoordinate yCoordinate'
もっと!読むman xte
キーの押下をシミュレートするコマンドがわかったので、次のxbindkeys
ようにスクリプトから呼び出すことができます。
"xte 'key b'"
Control+b
ご想像のとおり、これは+ xte 'key b'
を押すと呼び出され、現在作業中のドキュメントにaが入力されます。 Ctrlbb
ただし、注意すべきことは、xbindkeys
それxte
が常にうまく機能するとは限らないということです。出力を取得するためにキーを正確に同時に押す必要がある場合もあれば、正常に機能する場合もあります。これは、システム構成やハードウェアと関係がある場合と関係ない場合があります。キーを他のキーにバインドするより信頼性の高い方法については、maggotbrainの回答を参照してください。
またxbindkeys
、マウスボタンをコマンドにバインドするために使用することもできます(キーボードショートカット、上記を参照)。マウスボタンの基本的な形式は、今ではおなじみのはずです。
" [command to run] "
b:n
[command to run]
実行するコマンドとn
、そのコマンドに使用するマウスボタンの番号はどこにありますか。
マウスボタンの数がわからない場合は、xev
それが何であるかを調べるために使用できます。
xev | grep button
出力は次のようになります。
user@host:~$ xev | grep button
state 0x10, button 1, same_screen YES
state 0x110, button 1, same_screen YES
state 0x10, button 2, same_screen YES
state 0x210, button 2, same_screen YES
state 0x10, button 3, same_screen YES
state 0x410, button 3, same_screen YES
マウスボタンを押すたび。
例えば:
" firefox "
b:2
マウスの中ボタンを押すと、Firefoxが起動します。
xev
およびを使用してキーバインディングを変更するxmodmap
。
どちらのコマンドラインアプリケーションもデフォルトで使用できるため、追加のソフトウェアをインストールする必要はありません。
Xevは 「ウィンドウを作成し、ウィンドウに何かが発生したとき(移動、サイズ変更、入力、クリックなど)にイベントを送信するようXサーバーに要求します。」 xev manページ
xmodmapは「クライアントアプリケーションがイベントキーコードをキーシムに変換するために使用するキーボード修飾子マップとキーマップテーブルを編集および表示するために使用されるプログラム」です。 xmodmapのマニュアルページ
次の例では、Caps_Lockキーをキーの動作に再マッピングしますEsc(多くのvi / vimユーザーは、これが便利なキーボードマッピングであると感じています)。
開始xev
ターミナルウィンドウからアプリケーションを(Ctrl- - )。Altt
アプリケーションは初期化され、複数の行を表示し、空白のウィンドウを開始します。キープxev
フォーカスでのアプリケーションウィンドウを、そしてその性質/動作使用したいキーを押してください。
端末ウィンドウに、数行の出力が表示されます。返された3行目をメモします。これには、他のキーに移動するプロパティの名前が含まれます。
KeyPress event, serial 32, synthetic NO, window 0x3e00001,
root 0x256, subw 0x0, time 16245388, (616,73), root:(1487,535),
state 0x10, keycode 9 (keysym 0xff1b, Escape), same_screen YES,
XLookupString gives 1 bytes: (1b) ""
この場合、Esckey(keycode 9)は"Escape"という名前を使用します。
今回Caps Lockは、使用しているキーコードを探しています。
繰り返しますが、3行目に注意してください。
KeyRelease event, serial 32, synthetic NO, window 0x4c00001,
root 0x256, subw 0x0, time 94702774, (862,151), root:(1733,613),
state 0x10, keycode 66 (keysym 0xffe5, Caps_Lock), same_screen YES,
XKeysymToKeycode returns keycode: 9
XLookupString gives 1 bytes: (1b) ""
から変更するキーに関する情報を取得したので、キーマップの変更にxev
使用xmodmap
します。コマンド端末(Ctrl+ Alt+ t)から、次のコマンドを実行します。
このコマンドは、Caps Lockと同じ動作を使用するように変更しますEsc
xmodmap -e "keycode 66 = Escape"
このオプションは、キーマップテーブルを式としてファイルに出力します ~/.Xmodmap
xmodmap -pke > ~/.Xmodmap
次のコマンドで変更をアクティブにします(このログインセッションのみ)。
xmodmap ~/.Xmodmap
再起動後も変更を永続化する:
存在しない場合は、ホームフォルダにというファイルを作成します.xinitrc
。
touch .xinitrc
ファイルに次の行を配置して、ファイルを保存します。
xmodmap ~/.Xmodmap
(などNum Lock)
修飾キーのキーマップテーブルを取得します(出力はここで省略)
$ xmodmap -pm
shift Shift_L (0x32), Shift_R (0x3e)
mod2 Num_Lock (0x4d)
たとえば、数字キーパッドのDel/ Periodキーのピリオドの動作を コンマに変更する場合は、次のコマンドを使用します。
xmodmap -e "keycode 91 mod2 = KP_Delete comma"
これはmod2
、修飾子Num Lockが押されたときにキーの動作を変更するためにキーマッピングを使用していることに注意してください。この構文は次のとおりです。
xmodmap -e "<KEYCODE> <MODIFIER> = <behaviour> <behaviour_with_modifier>"
デフォルトでは(これはSethによる優秀な回答を補完するためだけです)、Ubuntu(この例では16.04を使用しています)には、システム設定にデフォルトである2つのカテゴリがあります。
システム設定に移動するには、上のトップで右クリックし歯車のアイコン:
次に、[ システム設定]を選択します。
ここには、ショートカット作成セクションに移動できる2つのオプションがあります。
[ テキストエントリ]を選択した場合、右下の[キーボード設定]リンクを選択する必要があります。これにより、ショートカットオプションに直接送られます。
[ キーボード ]オプションを選択した場合、[ ショートカット ] タブをクリックする必要があります。
[ショートカット]タブに到着したら、左側のリストの下部にある[ カスタムショートカット]を選択します。
次に、一番下のプラス記号をクリックして、独自のショートカットの作成を開始します。
それ以降は、ショートカットの名前を追加するだけです(ショートカットの名前を、実際に実行するコマンドの名前と混同しないでください)。そして、以下の[コマンド]フィールドには、このショートカットに対して実行されるコマンドを配置します。次の例では、ショートカットに「Sublime Text 3」という名前を付けて、特定のショートカットが何に関連するのかを確認しました。コマンドフィールドに、実際のコマンドを追加しましたsubl
。
ショートカットにはまだキーまたはキーの組み合わせが割り当てられていないため、デフォルトで無効になっていることを示す次の画面が表示されます。
次に、「無効」メッセージをクリックして、キーの組み合わせを追加します。
このパートでは、SHIFT+ CTRL+のキーの組み合わせを割り当てますS。この組み合わせを押すと、Sublime Textアプリが開きます。
その後、対応するキーの組み合わせを押して、アプリが開いているのを見て、組み合わせを簡単にテストできます。
注:Xサーバーを強制終了するような特別な組み合わせについては、次のリンクにアクセスすることをお勧めします。Ctrl-Alt-Backspaceを有効にしてXサーバーを強制終了するにはどうすればよいですか?
If you click on the Options button at the bottom right (Found on 13.04 or previous versions)...
13.04を超えるバージョンのオプションボタンはどこにありますか?
[システム設定] → [ Keboard ]に移動し、[ ショートカット ]タブを選択して、ブラウザーの新しいカスタムショートカットを追加します。デフォルトのブラウザがFirefoxの場合firefox
、コマンドフィールドでforを使用します。デフォルトのブラウザがFirefoxの場合chromium-browser
、などを使用します。
ソフトウェアセンターからAutoKeyをインストールすることにより、複雑な(マルチキー)キーボードショートカットを作成できます。xmodmapとは異なり、AutoKeyはキーボードの実際のキーを再バインドしません。バックグラウンドで実行され、定義されたキーボードショートカットをインターセプトし、シミュレートされたキー押下をアプリケーションに送信します。
AutoKeyを初めて起動すると、バックグラウンドでサービスが開始されます(通知アイコンは統一されて更新されていないため、視覚的な表示はありません)。実行されたら、ランチャーを再度実行して設定インターフェイスを起動できます。
[編集]> [設定]を開き、[ログイン時にAutoKeyを自動的に開始する]を選択して、ログインするたびにショートカットが機能することを確認します。
マップするキーをテキストボックスに入力します。
「ホットキー」の横にある「設定」ボタンを押します。これは、あなたがマップするキーの組み合わせを決定するためのダイアログが現れますからを。
[ファイル]> [保存]を選択します
完了した構成の例(を<enter>
押すと送信されます<ctrl>+m
)は次のようになります。
これを試して:
XKeyCapsというプログラムをインストールします。インストールするには、キーボードのCtrl+ Alt+ Tを押してターミナルを開きます。開いたら、以下のコマンドを実行します:
sudo apt-get install xkeycaps
インストールしたら、プロンプトでxkeycapsを実行してプログラムを実行できます。実行したら、正しいキーボードレイアウトを選択し、[OK]をクリックします
次に、画面にキーボードが表示されたら、必要なキーを右クリックし、場合によってはSを選択して、交換キーを選択します。
起動するたびに自動起動するように、セッションに以下の行を追加してください。
xmodmap ~/.xmodmap-`uname-n`
uname-n
はずuname -n
ですか?
unmae-n
。テストするためにUbuntuマシンにアクセスすることはできませんが、一度実行したら、さらに確認します。
キーを再マップしたいだけなら、他の答えは素晴らしいです。
ただし、それにアプローチする別の方法があります。AutoKeyはキーボードマクロプロセッサであり、任意のキー/修飾子の組み合わせを、キーボードなどで実行できるほぼすべての処理を実行できるスクリプトに関連付けることができます。
AutoKeyにはスクリプトレコーダーと基本的なキーシーケンスを入力する簡単な方法がありますが、そのスクリプトはPythonで記述されており、コーディングできるほとんどすべてのことができます。
最も簡単な使用方法は、キーストロークをアプリケーション/デスクトップに送信することです。このように使用すると、システム/アプリケーションは入力していないことを認識できません。そのため、APIや他のインターフェイスは必要ありません。
AutoKeyはフレーズも処理できます。トリガー文字列を入力すると、その文字列を新しいテキストに置き換えることができます(すぐに、または改行やタブなどの区切り文字を入力した後)。
また、特定の種類のウィンドウ(タイトルにMozillaが含まれているため、FirefoxやThunderbirdなどでのみ動作するウィンドウ)でのみ実行されるように特定のフレーズまたはスクリプトを制限できるウィンドウフィルターもあります。
AutoKeyには現在GtkおよびQtバージョンがあります。
編集:
ユーザーフォーラム アクティブなユーザーフォーラム。
wikiには多くのスクリプト例があります。主に多くのオプションを備えたGUIアプリであるため、例では多くのスクリーンショットと記事全体が必要になります。
「Jmail!」と入力すると、すぐにかなり長いメールアドレスに置き換えられるようにフレーズが定義されています。
私はタイピングによってトリガされるスクリプトを書いたCtrl- P彼らのタイトルに「Mozillaを」持っているウィンドウにのみ有効です。入力Ctrl- P(FirefoxまたはThunderbird)印刷ダイアログを表示し、[ファイルに印刷]を選択し、印刷キューで次に利用可能な印刷ファイルの名前を入力します(01、02、...に番号を付け、スクリプトがキューを読み取りますディレクトリ、最後のファイル番号を見つけて、1ずつ増やします。両面印刷エミュレーションソフトウェア(duplexpr)とともに使用して、大量のキーストロークとマウスの動きを排除します。
ゲーマーが他のスクリプトを見て、キャラクターやリソースに関する情報に非常にすばやくアクセスできるようにして、アクションに集中できるようにしました。
マウスボタンとしてキーボードキーを使用する
キーボードのキーをマウスボタンにマップすることもできます。キーボードのキーを使用してクリックする場合(Macbookまたはトラックパッドのボタンが悪い場合に便利)、次の操作を実行できます。
いくつかのユーティリティをインストールします。
sudo apt-get install x11-utils xkbset x11-xserver-utils
マップするキーのキーコードを見つけます。
xev | grep keycode
の端末で目的のキーを押すと、次のような行が表示されます。
state 0x0, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
キーコードを使用して、マウスの左ボタンと同じようにキーを再マッピングします。
xkbset m
xmodmap -e "keycode 64 = Pointer_Button1"
Pointer_Button3
マウスの右ボタンでPointer_Button2
あり、中央です。
xkb
Xキーボード拡張です。キーボードのキーを指定された機能にマッピングします。
xkb
シンボルはにあります/usr/share/X11/xkb/symbols/
。修飾キーはにマップされ/usr/share/X11/xkb/symbols/pc
ます。
たとえば、キーCaps Lock
とLeft Control
キーの機能を切り替える必要があります。pc
ファイルには次の変更が必要です。
key <CAPS> { [ Control_L ] };
key <LCTL> { [ Caps_Lock ] };
あなたはクリアする必要が新しいマッピングに適用するためにxkb
からのキャッシュを/var/lib/xkb
:
rm -rf /var/lib/xkb/*
さて、Xセッションを再起動するだけで準備完了です。
ソース:https : //radu.cotescu.com/remapping-keys-in-ubuntu-14.04/
編集:ディレクトリls
内で
行うと、symbols
これが得られます:
af cm gn kz nec_vndr sk
al cn gr la ng sn
altwin compose group latam nl sony_vndr
am ctrl hp_vndr latin no srvr_ctrl
apl cz hr level3 nokia_vndr sun_vndr
ara de hu level5 np sy
at digital_vndr ie lk olpc terminate
az dk il lt pc th
ba ee in lv ph tj
bd empty inet ma pk tm
be epo iq macintosh_vndr pl tr
bg es ir mao pt tw
br et is md ro typo
brai eurosign it me rs tz
bt fi jp mk ru ua
bw fo ke ml rupeesign us
by fr keypad mm se uz
ca fujitsu_vndr kg mn sgi_vndr vn
capslock gb kh mt sharp_vndr xfree68_vndr
cd ge kpdl mv shift za
ch gh kr nbsp si
ファイル内のマッピングru
は、ロシアの標準キーボードに基づいています。このmacintosh_vndr
フォルダーには、Appleキーボードのマッピングが含まれています。一言で言えば、このアプローチは非常に多用途です。さあ、それで遊んでください:)
/usr/share/X11/xkb/symbols/pc
。
「キーボード」アプリケーションの下にあることが判明しました。
それを表示する場合、必要に応じてショートカットを変更できます...
初めて使用する場合、変更は少し奇妙です。右側をクリックします(ctrl-alt-T、Disabledなどの列をクリックしてから、実際のキー(ctrlaltb必要なキーなど)をクリックします。そのスペースに新しいキーシーケンスが表示されます。ウィンドウを閉じます(またはクリックして))、新しいショートカットが機能するようになります。
CCSMでは、いくつかのシステムキーボードショートカットを変更できます。
それをインストールするには、ソフトウェアセンターまたは次のコマンドを使用します。
sudo apt-get install compizconfig-settings-manager
Windows 10のように、「ウィンドウスプレッド」ショートカットをデフォルトのSuper+ WからSuper+ に変更するために使用しましたTab。別のスレッドでの答えから:
gnome-screenshot
Mintのように、アプリケーションを使用してスクリーンショットを保存するためにPrint Screenを押したかった
しかし、squashfs
ツールを使用してカスタムISOを作成するときにデフォルトにしたいので、GUIではなくターミナルを使用してそれを実行したかったのです。
最初にコマンドを使用してgnome-screenshotをインストールしました
sudo apt-get install gnome-screenshot
次に、設定->キーボード->カスタムショートカット ->追加(+)ボタン-> を使用してカスタムショートカットを割り当てました。
ダイアログで:
追加ボタンを押す
次に、Print screenキーを押します。
キーがバインドされました。必要に応じてスクリーンショットを保存できます。
しかし、ターミナルを使用していない、それはGUIの方法です
次に、dconf-editor
使用してインストールしました
sudo apt-get install dconf-editor
検索してgnome-screenshot
、このパスでカスタムキーバインディングを見つけます
/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/
キーの値は次のとおりです。
これらをコピーして、GUIカスタムショートカットキーを削除します
ターミナルを開いてこれらのコマンドを入力します
dconf write /org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/command "'gnome-screenshot'"
dconf write /org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/binding "'Print'"
dconf write /org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/name "'print screen'"
そして出来上がり
これでdconf
、ターミナルのみを使用してGUIなしでスクリーンショットを保存できます。私はもう必要ありませんdconf-editor
。値を取得するためにインストールされただけです。