Lucid Puppy 5.2.8 の 端末環境(roxterm)

パピーを名犬にするための技、テクニック

モデレータ: 暇人, YoN, nyu

返信する
cygnus_odile
記事: 665
登録日時: 09/08/16(日) 14:30

Lucid Puppy 5.2.8 の 端末環境(roxterm)

投稿記事 by cygnus_odile »

日本語化 Lucid Puppy 5.2.8 (lupu-528.iso + lang_pack_ja-1.2.sfs) にて。

 Lucid-528 には、三種の端末エミュレータが装備されているようだ。

  roxterm, lxterminal, urxvt

 デスクトップにアイコンが設置されている標準の console は、
 /usr/local/bin/defaultterminal で、Roxterm が起動するようになっている。

 で、[メニュー]の[ユーティリティ]と辿ると、他にもあって

  lxterminal ・・・・・・LXDE デスクトッププロジェクトの成果物、マルチタブサポート
  console   ・・・・・・Roxterm が起動する(/usr/bin/roxterm)、マルチタブサポート
  Rxvt    ・・・・・・urxvt (rxvt-unicode)へのシンボリックリンクとなっている。


 これらのうち、LxTerminal, Roxterm は、日本語のインライン変換がサポートされている。また、copy, paste などの操作メニューがウインドウに備わっているのも ユーザーフレンドリィ だし、設定メニューも呼び出せて、表示フォントの変更も容易だ。また、URL文字列 を表示させると、アンダーライン表示され、その上でマウス右クリックすると、当該の URL を、ブラウザで開くメニューが表示されるなど、お便利な仕様となっている。


 しかしながら、素の状態では、 unicode の記号文字が、半角幅で小さく表示されてしまうのが難点だ。
 試しに、こちらhttp://mars.shehas.net/~tmatsuo/bts/symbols.txt から拾った symbols.txt を Roxterm にて表示させてみると、

# cat symbols.txt (左 liberation mono /右 Takaoゴシック フォント)
画像


 Web [http://espion.just-size.jp/archives/07/305201555.html] の記載を参考にする。と、libvte9 を利用している所謂 vte-based terminal emulator では、

(1)環境変数 VTE_CJK_WIDTH に VTE_CJK_WIDTH=1 と値をセットする

とよいらしい。で、Roxterm の依存ライブラリを見てみると、libvte9 に依存と記載されているので、試してみた。

# env VTE_CJK_WIDTH=1 roxterm
# cat symbols.txt (左 liberation mono /右 Takaoゴシック フォント)
画像

とまあ、この様に、日本語の記号文字が全角幅で表示されるようになる。が、しかし

 (a)コマンドラインでのカーソル移動がおかしくなる。
 例: # echo '○×△□さん、こんにちは'
 例: # gawk '/○×△/' test.txt

 (b)端末上のテキストエディタ(例:Gnu nano)で全角漢字混じりの文章を扱う際に、カーソル移動が半角幅となってしまい、
 カーソル位置と文字位置が合致しない。


のような不具合が発生する。結局のところ、

(2)East Asian Ambigous Width Character の 文字幅を 全角に規定した 改変 ja_JP.UTF-8 ロケールを用いる。
  改変した charmap : UTF-8-EAW-FULLWIDTH を /usr/share/i18n/charmaps/ 下に配置してlocale の再定義。
  

コード: 全て選択

# localedef -f UTF-8-EAW-FULLWIDTH -i ja_JP ja_JP.UTF-8

    詳細手順は、以前のトピック viewtopic.php?f=13&t=2027#p14599 
    を参照して下さい。 ただし、lupu528 では、charmap を .gz でなく、decompress した。

のロケール改変措置と合わせて、Lucid Puppy 5.2.8 の標準端末 Roxterm での文字表示&操作を正常に行うことが出来た。

# nano symbols.txt (左 liberation mono /右 Takaoゴシック フォント)
画像


 で、この設定(1)を普段使いするために、とりあえず、デスクトップのコンソールアイコン(console)に、プログラムとして設定されている /usr/local/bin/defaultterminal を書き換えてみた。具体的には、

# cat /usr/local/bin/defaultterminal

コード: 全て選択

#! /bin/sh
exec roxterm
   ↓↓

# cat /usr/local/bin/defaultterminal

コード: 全て選択

#! /bin/sh
# exec roxterm
env VTE_CJK_WIDTH=1 roxterm
これで、標準端末 "console" ( roxterm )は、OK。

 ※ 本来こういう 環境変数 の 設定は、~/.Xdefaults とか、~/.xinitrc とかに
      VTE_CJK_WIDTH=1
      export VTE_CJK_WIDTH
  とでも、書き込んでおくのだろうな。



(追記) lxterminal でも同様の措置で OK のようだ。
  日本語ロケールの改変 と、
  env VTE_CJK_WIDTH=1 lxterminal
と、環境変数を設定しての起動で確認。


余談:
 lupu528 で、X-server 起動時に、 fbpanel が複数回呼ばれている。 ~/Startup ディレクトリ内の run_fixmenus なるスクリプトを、 当該ディレクトリから(~/my-applications あたりに)退避、もしくは消去で、複数回呼びだしを回避した。 起動時に、 ~/.xinitrc の終わりの近くで、 "fbpanel" が既に呼ばれてるみたいだ。
返信する