Hatena::Grouplinux2

Going My Linux Way このページをアンテナに追加 RSSフィード

2012年01月21日(土)

コンソールHack(その4)

23:55 | コンソールHack(その4) - Going My Linux Way を含むブックマーク はてなブックマーク - コンソールHack(その4) - Going My Linux Way コンソールHack(その4) - Going My Linux Way のブックマークコメント

LINUXデスクトップHACKS」の第2章「コンソール」を読んでのメモ(その4)。

X環境でなく、コンソールでのキーボードの再定義についての Hack です。

コンソール色々

ls の出力をカラー化するには以下のようにエイリアスするとよいです。

alias ls='ls -FC --color=auto'   # --color=auto がカラー化のオプションです

ls が出力するエスケープシーケンスをきちんと処理するために less、lv は以下のようにエイリアスするとよいです。

alias less='less -R'
alias lv='lv -c'

grep をカラー化したい場合、以下の環境変数を設定します。

export GREP_OPTIONS=--color=auto

diff をカラー化したい場合は、colordiff を使うとよいでしょう。

alias diff='colordiff'

gcc や make のカラー版、colorgcc や colormake などもあります。

----

rakuten:hmvjapan:11670694

コンソールHack(その3)

23:44 | コンソールHack(その3) - Going My Linux Way を含むブックマーク はてなブックマーク - コンソールHack(その3) - Going My Linux Way コンソールHack(その3) - Going My Linux Way のブックマークコメント

LINUXデスクトップHACKS」の第2章「コンソール」を読んでのメモ(その3)。

X環境でなく、コンソールでのキーボードの再定義についての Hack です。

仮想コンソールの変更

仮想コンソールは、X環境では以下のようにして開けます。

[Ctrl] + [Alt] + [F1]    # 仮想コンソール#1 に変更

また、仮想コンソールから別の仮想コンソールへ変更するには以下のようにします。

[Alt] + [F7]  # 仮想コンソール#7 に変更

仮想コンソールは大抵のディストリデフォルトでは 6つ確保されています。

なので、仮想コンソール#7 に変更すると X 環境(グラフィカル環境)に戻れます。

また、仮想コンソールは以下のコマンドで変更できます。

$ chvt 2        # 仮想コンソール#2 に変更

----

コンソールHack(その2)

23:33 | コンソールHack(その2) - Going My Linux Way を含むブックマーク はてなブックマーク - コンソールHack(その2) - Going My Linux Way コンソールHack(その2) - Going My Linux Way のブックマークコメント

LINUXデスクトップHACKS」の第2章「コンソール」を読んでのメモ(その2)。

X環境でなく、コンソールでのキーボードの再定義についての Hack です。

端末制御

tput コマンドで端末制御が行えます。(環境依存です)

$ tput cols     # 桁数を返す

$ tput cup 0 0  # 0 行 0 桁にカーソルを移動する

$ tput clear    # クリア

$ tput sc       # 現在位置の保存

$ tput rc       # 保存していた位置の復元

$ tput setab [0-7] # 背景色設定(ANSIエスケープシーケンスを使用)

$ tput setb [0-7]  # 背景色設定

$ tput setaf [0-7] # 前景色設定(ANSIエスケープシーケンスを使用)

$ tput setf [0-7] # 前景色設定

$ tput bold       # 太字モード設定

$ tput dim        # 半輝度モード設定

$ tput smul       # 下線モード設定

$ tput rmul       # 下線モード終了

$ tput rev        # 反転モード設定

bash では変数 PROMPT_COMMAND にプロンプト表示時に実行するコマンドを指定できます。

以下のようにすると、プロンプトとそれ以降の文字に色がつきます。

PROMPT_COMMAND="tput setf 1"

----

コンソールHack(その1)

18:11 | コンソールHack(その1) - Going My Linux Way を含むブックマーク はてなブックマーク - コンソールHack(その1) - Going My Linux Way コンソールHack(その1) - Going My Linux Way のブックマークコメント

LINUXデスクトップHACKS」の第2章「コンソール」を読んでのメモ(その1)。

X環境でなく、コンソールでのキーボードの再定義についての Hack です。

キー設定の表示

以下のコマンドでキー設定が表示されます。--keys-only は簡略表示オプションです。

$ sudo dumpkeys --keys-only

以下のような出力になります。

  :
 (略)
  :
keycode  59 = F1 
        shift   keycode  59 = F13   # 「Shift」同時押下:「F13」送出
        altgr   keycode  59 = Console_13      
        shift   altgr   keycode  59 = Console_25      
        control keycode  59 = F25 
        shift   control keycode  59 = F37             
        altgr   control keycode  59 = Console_13      
        shift   altgr   control keycode  59 = Console_25      
        alt     keycode  59 = Console_1 # 「左Alt」同時押下: 仮想コンソール#1開く
  :
 (略)
  :

keycode はキーボードのキーを識別する値です。(keycode 59 は「F1」と刻印されたキー)

ハードウェア(キーボード)からは「keycode 59 のキーが打鍵された」という信号しか送られません。ドライバがその信号を受け取って「F1」が押下されたと解釈します。

以下のようにして、「F13」押下時に送出される文字列を調べることができます。

$ sudo dumpkeys | grep ^string | grep F13
string F13 = "\033[25~"

キーコードを調べる

(X環境でなく、コンソールで)以下のようにします。

起動している間にキーを押下すると、そのキーの情報が出力されます。

$ showkey
  :
keycode 59 press       # 押したキーの keycode が表示される
keycode 59 release
  :
(10秒放置すると終了する) 

キー設定

一括して変更する場合、以下のように設定を一旦ファイルに出力して編集するのがいいでしょう。

$ sudo dumpkeys --keys-only > mykeys  # 一旦 mykeys に書き出す
(vi mykeys でキー設定を編集)
$ sudo loadkeys mykeys      # キー設定

1個程度のキーの設定ならば直接標準入力から設定を送り込んでもいいです。

$ echo "keycode 58 = VoidSymbol" | sudo loadkeys # CapsLock を無効

$ echo "keycode 58 = Control" | sudo loadkeys    # CapsLock を Ctrl に変換

以下の例では CapsLock を押下すると date コマンドが実行されるようになります。

$ echo "string F100 = \"date\n\"" | sudo loadkeys  # F100 ラベル定義
$ echo "keycode 58 = F100" | sudo loadkeys

string で定義するラベル(上では F100) は Fxx のような形式にします。

キー設定をデフォルトに戻す

キー設定をデフォルトに戻すには、以下のようにします。

$ sudo loadkeys --default

キー設定はシステムリブートした場合などにリセットされるので、恒常的にキー設定をしたい場合は /etc/rc.local などに記述するといいでしょう。

また、X 環境で不具合が生じないように X を起動する前にはコンソール環境でのキー設定はデフォルトにします。(XFree86Xorg はコンソール設定を上書きするそうなので通常は気にする必要ありません)


詳細は、dumpkeys(1)、loadkeys(1)、showkey(1)、keymaps(5) を参照しましょう。

----

トラックバック - http://linux2.g.hatena.ne.jp/lnznt/20120121