質問: 以前 tmux で`ctrl + b`の代わりに`caps lock + b`キーをファンクションキーとして使いたいと質問をした者です。 そのときは結論としてtmuxではなく、より下のレイヤにあるプログラムに働きかける必要があるとの回答をいただきました。 それで少し、自力で調べては見たのですが、普段何も考えず、特に知識もなく、いわゆる「ターミナル」「端末」あるいは「コンソール」などと呼ばれる黒い画面でコマンドをいじっていただけの私では、そもそも用語の段階でほとんど理解ができませんでした。この上さらに「X」とそうでない場合もあるという情報に接すると、どこからどうしていいのかわかりません。 こういう状態の人が一般的に端末の基本からキーバインディングを理解し、それを変更したいと思った場合、どの情報からあたっていくのが良いのでしょうか。 良いチュートリアルになりそうな書籍やリンク等ありましたら教えてください。 利用している環境は、Ubuntu15.04でこちらはデスクトップとして使ってます。もう一つXのないものでCentOS6.7も使っています。ubuntuからCentOSにsshでつなげるときもあって、こういう場合の端末設定は何が優先されるのかなど全く分かっていません。
回答: 期待されている回答とは異なるかもしれませんが・・・ 1.キーボードや画面自体にて変更可能なものは、ブツ自体で設定しましょう。 ソフトウエア側での設定は不要になります。 - LCD 画面の明るさとか色合いとか - Happy Hacking Keyboard とか使えば A の左となりは Ctrl になっています - 他にも Ctrl/Caps をハードウエア的に入れ替え可能なキーボードとかあったりします。 キーボードや画面は、それが直結している機械で制御されています。 リモートマシンには、ローカルマシンが抽象化した結果だけが送られます。 2.機械自体に変更機能があればそれで設定しましょう。 - ノート系マシンなら BIOS 設定に Ctrl/Fn 入れ替え機能があったりします。 3.機械に入っている OS/デバイスドライバ/設定機能 で設定します。 [ssh](/questions/tagged/ssh "'ssh' のタグが付いた質問を表示") や telnet を使う場合、直接操作している機械の設定が使われます。 3-a. 操作員 --- Windows 7 ---ssh--- Linux(Ubuntu/CentOS) Windows 7 側のキー入れ替え機能でキー設定します。 このとき Ubuntu/CentOS の X は使われないので `xmodmap` で設定しても意味ないです。 検索キーワード: Windows Caps Ctrl オイラんとこではこの運用が主体です。 オイラは Windows 側のキー設定を レジストリ で入れ替えています。 ( [ssh](/questions/tagged/ssh "'ssh' のタグが付いた質問を表示") Terminal に限らず全 Windows 上で動くソフトのキー設定が変わります) 3-b. 操作員 --- Linux (Ubuntu) ---ssh--- Linux(CentOS) 3-c. Linux (Ubuntu) に直接ログインして Ubuntu を使う場合 両者とも Ubuntu の X server が使われますから キー設定は X 自体の持っている機能 `xmodmap` で行うのが良いでしょう。 検索キーワード: Unix Caps Ctrl 当該ターミナルに限らず同一 X server 上で動く全てのソフトのキー設定が変わります。 - ユーザー単位で切り替えるように設定すればログインユーザごとに違うキー設定で、 - X server 起動時に切り替えるよう設定すれば全ユーザが同じキー設定で、 使うことができるでしょう。 4.Linux (CentOS) に直接ログイン (X server を使わないテキストログイン) の場合 難度が高いので解説省略 検索キーワード: コンソール キーボード 設定 5.特定ソフトが、そのソフト専用のキー設定を可能な場合、それで設定しましょう。 ゲームなどでは良くありそうです。 ターミナルソフト等では提供されていない場合がほとんどです。 当然、他のソフトとは連動しません。 理解順としては a.ターミナルソフトは X Window 配下の "何とかTerm" であるか? Yes → `xmodmap` No→b b.ターミナルを実行している Local マシンは何か? Windows → Windows 側でのキー入れ替え Linux + 非 X (テキストログイン) → Linux コンソールのキー入れ替え でいいんぢゃないかな。