web-dev-qa-db-ja.com

Zshアイコンがurxvtで壊れた

私は現在manjaro linuxを使用しており、私の好きなターミナルとしてurxvtを使用しています。これにより、すべてのターミナルの切り替えが開始される前にオプションを選択することはできません。失礼です。

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

この問題はurxvtでのみ発生します。sterminalのような他の端末で試すと、テーマが機能するためです。

あなたがここで見ることができるいくつかのスクリーンショットこれはそれがどのように見えるはずであるかです(sterminalから取られたスクリーンショット)

そしてこれはそれがどのように見えるかです(rxvtから取られたスクリーンショット)

Reddit、oh-my-zshやrobbyrussell officiall repoなどのgithubリポジトリで助けを求めてきましたが、だれも私を助けてくれたようには見えなかったので、皆さんに助けてもらいたいと思っています。

ここに私のOSとターミナルに関するいくつかの情報があります:

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のデフォルトのXreourcesを使用しています here です。さらに情報が必要な場合は、私に教えてください。どんな助けでも大歓迎です!

4
KnownAsDon

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

Mikelが指摘したように、Xresourcesファイルはurxvtに、(a)古いスタイルのX11サーバーが提供するフォントメソッドであり、(b)機能が制限されたビットマップフォントである9x15フォントを使用するように指示しています。

Oh-my-zsh Github READMEファイルで説明しています

多くのテーマでは、適切にレンダリングするためにパワーラインフォントをインストールする必要があります

したがって、正しい矢印の形状を表示するには、適切なフォントを使用する端末が必要です。おそらく、機能を壊した更新は、urxvtによるフォント使用をリセットする更新だったのでしょうか?

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

私のurxvtをチェックインしたところ、よく知られているTrueTypeおよびOpenTypeのモノスペースフォントの多くは「右矢印」グリフを提供せず、空のボックスを表示しているようです。ただし、機能する(システムにインストールする必要がある)すぐに利用できる標準フォントは、Deja Vu Sans Monoです。

だからurxvtを起動してみてください

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

プロンプトが正しく表示されるかどうかを確認します。

Xresources/Xdefaultsファイルでurxvtのフォントリソース仕様を変更する方法については、 https://bbs.archlinux.org/viewtopic.php?id=173477 を参照してください。

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 Xresource_file_nameを使用してXorgサーバーリソースデータベースにロードし、これらの値が100%使用されることを確認してから、コマンドラインでurxvtのみを使用してターミナルを起動すると、フォントが右矢印文字を正しく表示するターミナルになります。 。 (また、このフォントの特徴であるl文字が丸く、ゼロ文字の中央にドットがあることに注意してください)。

「font-manager」プログラムが「Luxi Mono」にグリフがあることを明らかにしても、urxvt「Luxi Mono」で通常使用するフォント(読みやすく、見やすいIMHO)は右矢印を正しく表示しません。同様にxtermも壊れていますが、lxterminal、mate-terminal、xfce4-terminal(設定でフォントがLuxi Monoに設定されていることを確認)でのテストでは、すべて右矢印が正しく表示されます。したがって、urxvtとxtermの一部のフォント(一部のコードオリジンを正しく理解している場合)は、同様に機能する他のフォントと同じように、何かが壊れているように見えます。

10
J G Miller

私もManjaro Linux(18.0.4 Illyria)のi3wmコミュニティ版とURXVTバージョン9.22を使用しています。 Oh My Zshのインストールでまったく同じ問題が発生しました。

J G Millerの包括的で有用なアドバイスに従って、私は〜/ .Xresourcesファイルを提案どおりに編集しましたが、うまくいきました。素晴らしい!

Manjaroのプレインストールされたファイルマネージャー-レンジャー(viキーバインディングを使用した端末ベース)を開くまで。 〜/ .Xresourcesへの変更により、このアプリケーションのアイコンの形式が不正になりました。

similar stack overflow question I(上記の変更を元に戻した後)を見つけると、〜/ .Xresourcesファイルが次のように修正されました。

URxvt.font:      9x15,xft:TerminessTTFNerdFontMono

に:

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

私の理解では、上記はManjaro i3のデフォルトフォントがレンジャーに使用されますが、認識されないグリフ(Oh My Zshのグリフなど)が検出されると、代わりにDejaVu Sans Monoが使用されることを意味します。両方のアプリケーションが正しく表示されるようになりました。

正しい方向に進んでくれたJ G Millerに感謝します。

1
Concrete_Buddha