[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[FDclone-users:00006] terminal keycode settings



佐野@浜松です。

 FDclone 2.01 の Debian パッケージを作成しましたが、
その中でシステム設定ファイル (/etc/fdclone/fd2rc) に
以下のような記述を書いたところ、白井さんから [ で
書くより case を使ったほうがいいですよというアドバイスを
受け、こちらに相談することにしました。

現状の記述は以下:

# settings for kterm
if [ " $TERM" = " kterm" ]; then
	keymap HOME	"\033OH"
	keymap END	"\033OF"
	#keymap INS	"\033[2~"
	#keymap DEL	"\033[3~"
	keymap BS	"\177"
	#keymap PPAGE	"\033[5~"
	#keymap NPAGE	"\033[6~"
	#keymap RET	"\033OM"
	keymap F1	"\033[11~"
	keymap F2	"\033[12~"
	keymap F3	"\033[13~"
	keymap F4	"\033[14~"
	keymap F5	"\033[15~"
	keymap F6	"\033[17~"
	keymap F7	"\033[18~"
	keymap F8	"\033[19~"
	keymap F9	"\033[20~"
	keymap F10	"\033[21~"
	keymap F11	"\033[23~"
	keymap F12	"\033[24~"
	keymap PLUS	"\033Ok"
	keymap MINUS	"\033Om"
	keymap ASTER	"\033Oj"
	keymap SLASH	"\033Oo"
fi

# settings for xterm
if [ " $TERM" = " xterm" ]; then
	keymap HOME	"\033OH"
	keymap END	"\033OF"
	#keymap INS	"\033[2~"
	#keymap DEL	"\033[3~"
	keymap BS	"\177"
	#keymap PPAGE	"\033[5~"
	#keymap NPAGE	"\033[6~"
	#keymap RET	"\033OM"
	keymap F1	"\033OP"
	keymap F2	"\033OQ"
	keymap F3	"\033OR"
	keymap F4	"\033OS"
	keymap F5	"\033[15~"
	keymap F6	"\033[17~"
	keymap F7	"\033[18~"
	keymap F8	"\033[19~"
	keymap F9	"\033[20~"
	keymap F10	"\033[21~"
	keymap F11	"\033[23~"
	keymap F12	"\033[24~"
	keymap PLUS	"\033Ok"
	keymap MINUS	"\033Om"
	keymap ASTER	"\033Oj"
	keymap SLASH	"\033Oo"
	# code
	LANGUAGE=eng
fi

# settings for linux
if [ " $TERM" = " linux" ]; then
	LANGUAGE=eng
fi

 xterm と kterm では共通する部分も多いので、
これらをうまくまとめられると良いのですが。

試しに case で書き直してみたのが以下です。

 xtermkey()
  {
	keymap HOME	"\033OH"
	keymap END	"\033OF"
	#keymap INS	"\033[2~"
	#keymap DEL	"\033[3~"
	keymap BS	"\177"
	#keymap PPAGE	"\033[5~"
	#keymap NPAGE	"\033[6~"
	#keymap RET	"\033OM"
	keymap F5	"\033[15~"
	keymap F6	"\033[17~"
	keymap F7	"\033[18~"
	keymap F8	"\033[19~"
	keymap F9	"\033[20~"
	keymap F10	"\033[21~"
	keymap F11	"\033[23~"
	keymap F12	"\033[24~"
	keymap PLUS	"\033Ok"
	keymap MINUS	"\033Om"
	keymap ASTER	"\033Oj"
	keymap SLASH	"\033Oo"
  }
	
 case $TERM in
   linux)
	LANGUAGE=eng
	;;
   xterm)
	LANGUAGE=eng
	keymap F1	"\033OP"
	keymap F2	"\033OQ"
	keymap F3	"\033OR"
	keymap F4	"\033OS"
	xtermkey
	;;
   kterm)
	keymap F1	"\033[11~"
	keymap F2	"\033[12~"
	keymap F3	"\033[13~"
	keymap F4	"\033[14~"
	xtermkey
	;;
 esac

こんな感じでいかがでしょう ? 
もっと良い方法があればよろしくお願いします。

-- 
  Taketoshi Sano: <sano@debian.org>,<sano@debian.or.jp>,<kgh12351@nifty.ne.jp>