17302


以前 tmux で`ctrl + b`の代わりに`caps lock + b`キーをファンクションキーとして使いたいと質問をした者です。  
そのときは結論としてtmuxではなく、より下のレイヤにあるプログラムに働きかける必要があるとの回答をいただきました。  
それで少し、自力で調べては見たのですが、普段何も考えず、特に知識もなく、いわゆる「ターミナル」「端末」あるいは「コンソール」などと呼ばれる黒い画面でコマンドをいじっていただけの私では、そもそも用語の段階でほとんど理解ができませんでした。この上さらに「X」とそうでない場合もあるという情報に接すると、どこからどうしていいのかわかりません。

こういう状態の人が一般的に端末の基本からキーバインディングを理解し、それを変更したいと思った場合、どの情報からあたっていくのが良いのでしょうか。  
良いチュートリアルになりそうな書籍やリンク等ありましたら教えてください。

利用している環境は、Ubuntu15.04でこちらはデスクトップとして使ってます。もう一つXのないものでCentOS6.7も使っています。ubuntuからCentOSにsshでつなげるときもあって、こういう場合の端末設定は何が優先されるのかなど全く分かっていません。


CC BY-SA 3.0
2015-10-05T20:49:27.980
17296
2015-10-06T02:27:11.447
2015-10-06T00:03:19.673
9403
9403
question
linux unix console key-binding
*nixでのキーバインディングに関して基本から分る情報を探したい


まったく何も知らない状態から教えろ・・・となると「範囲が広すぎ」クローズモデ対象なんですが・・・

こういうときは google でも bing でもお好きな検索エンジンに対してキーワード検索しましょう。  
ご自分で既にキーワード抽出できていますよね。 "unix" "キーバインド" "変更"  
オイラの google 検索によると [emacs](/questions/tagged/emacs "'emacs' のタグが付いた質問を表示") や
[bash](/questions/tagged/bash "'bash' のタグが付いた質問を表示") のキー機能のマップ変更のほうが多く抽出されたので  
キーワード変更 "unix" "キーボード" "設定" とかに変更してみました。  
こっちのほうが今回の目的にはより合致しているようです。

今時の [linux](/questions/tagged/linux "'linux' のタグが付いた質問を表示")
ディストリビューションをインストールしたような状況だと  
ほぼ確実に X Window System と呼ばれるグラフィック画面表示機構が使われています。  
なのでキー設定は `xmodmap` で行うことになります。  
まずはその辺から探してみると良いでしょう。

ウチの部内サーバのようにコンソールログインすることが無いような機械だと  
メモリ CPU の節約のため X 使わない設定にすることもありますがまあレアです。  
[linux](/questions/tagged/linux "'linux' のタグが付いた質問を表示") ではない
[unix](/questions/tagged/unix "'unix' のタグが付いた質問を表示") マシンである、ということなら  
そのマシン名・ＯＳ名をきっちり書くとアドバイスできる人がいるかもしれません。


CC BY-SA 3.0
2015-10-05T21:45:50.733
17297
2015-10-05T21:45:50.733
8589
17296
answer


期待されている回答とは異なるかもしれませんが・・・

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 コンソールのキー入れ替え  
でいいんぢゃないかな。


CC BY-SA 3.0
2015-10-06T02:27:11.447
17302
2015-10-06T02:27:11.447
8589
17296
answer