urxvtでZshアイコンが壊れています。

urxvtでZshアイコンが壊れています。

だから私は現在manjaro linuxを使用しており、urxvtを端末として使用していますが、本当に気に入っています。これらすべてが始まる前に、端末の切り替えはオプションではありませんでした。失礼になったらすみません。

zshをデフォルトのシェルとしてインストールし、oh-my-zshを介してrobbyrussellテーマを追加しました。最初はすべてが大丈夫で、すべてがうまく機能しましたが、更新した後にアイコンが壊れました。特に(そのテーマに慣れている場合)、矢印アイコンは壊れており、他のすべてのテーマのすべてのアイコンと同じです。

この問題は、他の端末(sterminalなど)を使用しようとするとテーマが正しく機能するため、urxvtでのみ発生します。

ここからいくつかのスクリーンショットを見ることができます。次のように表示されます(ターミナルで撮影したスクリーンショット)。

次のようになります(rxvtのスクリーンショット)。

私はreddit、githubリポジトリ(oh-my-zsh、robbyrussellの公式リポジトリなど)で助けを探していましたが、誰も私を助けていないようです。

私のオペレーティングシステムと端末に関する情報は次のとおりです。

URXVT Version 9.22
Operating System : Manjaro i3 4.12.24-1
No Desktop Envoirment
i3wm as window manager

私はzshrcファイルにデフォルトのoh-my-zsh設定を使用しており、見つけることができるmanjaro i3のデフォルトのXresourcesを使用しています。ここ。より多くの情報が必要な場合はお知らせください。どんな助けでも大変感謝します!

答え1

まず、端末タイプrxvtとunicode-rxvt(しばしばurxvtと省略)の間にはかなりの違いがあります。使用中の端末が「URXVTバージョン9.22」とマークされているので、混乱を避けるためにrxvtではなくurxvtという正しい名前を使用してください。

Mikelが指摘したように、Xresourcesファイルはurxvtに(a)レガシーX11サーバーによって提供されるフォント方法と(b)機能が制限されたビットマップフォントである9x15フォントを使用するように指示します。

oh-my-zsh Github READMEファイルの説明

多くのテーマを正しくレンダリングするには、Powerlineフォントをインストールする必要があります。

したがって、正しい矢印の外観を表示するには、端末で適切なフォントを使用する必要があります。たぶん、その機能を中断したアップデートは、urxvtを介してフォントの使用をリセットしたアップデートでした。

プロンプトを正しく表示するためにsterminalを宣言する場合は、使用しているフォントを確認し、urxvt -font "font_name"手動テストで機能することを確認してから、そのフォントを使用するように$ {HOME}ディレクトリの.Xresourcesを変更してください。 (Xftが提供する最新のフォント方法の場合、フォント名の前には「xft:」が続き、後にはフォントサイズを表す「:size = 12」が続きます。)

私のurxvtをチェックした後、かなり多くのよく知られているTrueTypeとOpenTypeモノスペースフォントが「右矢印」の文字の外観を提供せず、代わりに空のボックスのみを表示するようです。ただし、Deja Vu Sans Monoは使いやすい標準フォントです(システムにインストールする必要があります)。

だからurxvtを始めましょう

urxvt -font "xft:Deja Vu Sans Mono:size=12" &

プロンプトが正しく表示されることを確認してください。

見てhttps://bbs.archlinux.org/viewtopic.php?id=173477Xresources/Xdefaultsファイルのurxvtフォントリソース仕様の変更に関する議論

PS urxvtdデーモンを最初に起動し、次にurxvtcを使用して端末を起動すると、複数のurxvt端末をより効率的に使用できることを忘れないでください。

付録

urxvtを使用しており、DejaVu Sans Monoがインストールされていることを確認していただきありがとうございます。

端末プロンプトで入力されたコマンドに対してフォント置換が発生しないことを確認する

   fc-match  "DejaVu Sans Mono"

出力を生成する

   DejaVuSansMono.ttf: "DejaVu Sans Mono" "Book"

実際のフォントファイルの場所とそのフォントに使用できるスタイルは、次のコマンドを使用して確認できます。

    fc-list | grep --color 'DejaVu Sans Mono'

今、すべてが大丈夫だと仮定し、端末のコマンドラインでurxvtを実行してそれを確認する必要があります。 (上記で完全にはっきりと説明できず申し訳ありません。DejaとVuの間にスペースがあり、問題が発生する可能性があります。)

    urxvt -font "xft:DejaVu Sans Mono:size=12" &   

右矢印文字(ここ)「➜」をカットしてこのurxvtに貼り付けると正しく表示され、実際に動作していることを確認しました。

また、Xresourcesファイルに次のものを含めることを確認できます。

 URxvt.font:                     xft:DejaVu Sans Mono:autohint=true:size=12
 URxvt.boldFont:                 xft:DejaVu Sans Mono:autohint=true:bold:size=12
 URxvt.italicFont:               xft:DejaVu Sans Mono:autohint=true:italic:size=12
 URxvt.boldItalicFont:           xft:DejaVu Sans Mono:autohint=true:bold:italic:size=12

xrdb -mergeを使用してXorgサーバーリソースデータベースにロードします。

通常、urxvt "Luxi Mono"(読みやすいIMHO)で使用されるフォントは、 "Font Manager"プログラムに "Luxi Mono"に文字の外観があるとマークされていますが、右矢印を正しく表示しません。同様に、xtermは破損していますが、lxterminal、mate-terminal、およびxfce4-terminal(デフォルト設定でフォントがLuxi Monoに設定されていることを確認)でテストすると、すべて右矢印が正しく表示されます。したがって、同様に機能する他のフォントがいくつかの共通コード(例えばlibvte)を共有するように、urxvtとxtermのいくつかのフォントに問題があるようです(私が正しく理解した場合は、いくつかのコードソースを共有しています)。

答え2

また、Manjaro Linux(18.0.4 Illyria)とURXVTバージョン9.22のi3wm Community Editionを使用しています。 Oh My Zshをインストールするのと同じ問題が発生しました。

JG Millerの包括的で有用なアドバイスに従って、~/.Xresourcesファイルを提案どおりに編集し、効果がありました。素晴らしい!

Manjaroのプレインストールされたファイルマネージャであるレンジャー(viキーバインディングベースの端末)を開くまで。 ~/.Xresources を変更すると、このアプリケーションのアイコン形式が無効になります。

一つを探す同様のスタックオーバーフローの質問~/.Xresourcesファイルを修正しました(上記の変更を元に戻した後)。

URxvt.font:      9x15,xft:TerminessTTFNerdFontMono

到着する:

URxvt.font:      9x15,xft:TerminessTTFNerdFontMono,xft:DejaVu Sans Mono:autohint=true:size=12

上記の意味は、Manjaro i3基本フォントがRangerで使用されているが認識できない文字の外観(Oh My Zshの文字文字)が見つかると、DejaVu Sans Monoが使用されることです。これで、両方のアプリケーションが正しく表示されます。

正しい方向を教えてくれたJG Millerに感謝します。

関連情報