【何を】screenコマンドで表示が崩れる問題【今更】
現象
screen
コマンドで開始したセッション上で alsamixer
を実行すると表示が崩れることに最近気が付いた。
取り合えず矢印キーでの音量設定はできるので構わず使っていたが、流石に気持ち悪いので調べてみた。
対応方法
~/.screenrc
に(無ければ作成)以下追記
cjkwidth off
参考URL:
bug #46273: screen 4.3.1 broken nmon's display and alsamixer
try adding "cjkwidth off" to your ~/.screenrc and it will probably work again.
cjk
の意味は以下参照。
CJK統合漢字 - Wikipedia
CJK統合漢字の名称は、中国語(Chinese)、日本語(Japanese)、朝鮮語(Korean) で使われている漢字をひとまとめにしたことからきている。
所謂全角文字って認識でいいのかな。どうもその文字幅設定機能に問題があるので off
にしろってことらしい。
御託
そもそも、alsamixer
は ncurses
を利用している。
alsamixer(1) - Linux man page
alsamixer - soundcard mixer for ALSA soundcard driver, with ncurses interface
ncurses
は以下参照。
ncurses - Wikipedia
ncurses は、端末に依存しない形式でテキストユーザインタフェース (TUI) を作成するためのAPIを提供するライブラリ。画面切り替えを最適化し、リモートシェルで使ってもレイテンシを最小に抑えるようになっている。
根源的には、screen
コマンド + ncurses
の問題。(alsamixer
云々ではなく)
経緯としては、GNU Screen 4.x 辺りのパッチに問題があり、表示に不具合が発生するようになったらしい。
UTF8環境のGNU Screen 4.1_4.2でNCursesの表示がおかしくなる - Narrow Escape
GNU Screen 4.2.0にしたら罫線表示がぶっ壊れた
GNU screenの日本語環境でncursesを使うと表示が乱れる - ksaitoの日記
Unicode の曖昧な文字幅問題 その2 - diary of a madman
GNU screen
っていうかバグだよね、これ。cjkwidth
機能を off
にすることによる問題回避は小手先の対応に過ぎない。根本的な修正を望みたいところ。
英語圏にも日本人以上に日本語、文字コードレベルで詳しい方もいて驚かされる。
海外の技術者が日本語の「文字化け」を本気で解説、日本人顔負けの日本通っぷりが披露される - GIGAZINE
しかし、Linux の世界では非英語圏は蚊帳の外というか、あまり熱心に対応してくれないよな。ぶっちゃけ、物凄くどうでもいいです、ぐらいな感じだろうし。
とはいえ今回色々と調べていて良い勉強になった。
個人的に screen
コマンドは常用しているが、セッションの作成に限定した単純な使い方だけだった。(無線LAN がよく切れるのでその対策)
奥が深いツールなのでもう少し勉強して使い込んでいきたいと思ったなり。
Author And Source
この問題について(【何を】screenコマンドで表示が崩れる問題【今更】), 我々は、より多くの情報をここで見つけました https://qiita.com/god19/items/e016740a0504ab5447c5著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .