ソフトウェアが1つの(絵文字)フォントしか使用しないようにする方法は?

ソフトウェアが1つの(絵文字)フォントしか使用しないようにする方法は?

コンテキスト:

私はLuke Smithのst(suckless-terminal)バージョンを使用していますモノイドグループU1F970ほとんどのUnicodeシンボルのフォントを使用している場合は、カラー絵文字フォントを読み込もうとするなど、いくつかの絵文字を見たときに通常クラッシュが発生することがわかりましたst(現在はApple Color Emoji他のユーザーのデフォルトです。Noto Color Emoji両方を試してみましたが、同じです。

X Error of failed request:  BadLength (poly request too large or internal Xlib length error)
  Major opcode of failed request:  139 (RENDER)
  Minor opcode of failed request:  20 (RenderAddGlyphs)
  Serial number of failed request:  850
  Current serial number in output stream:  883

この競合を回避するには、いくつかの「不満足な」回避策があります。

  • stまったく使用しないでください。そして、同じ問題がある他のソフトウェアを使用しないでください。
  • インストールしてttf-ancient-fonts-symbola使用し、あちこちで無色の絵文字が使えます。このソリューションでは、色の絵文字を持っているか、使用するたびにデフォルトで色の絵文字が使用されるため、色の
    絵文字を削除する必要があります。NotoAppleSymbola
  • 起動時にフォントを無効にしてからst.ファイル名の前にaがある場合は非表示にすることができます)、再度有効にします。不正行為のように見え、他のソフトウェアを起動すると問題が発生する可能性があります。
  • 個人用userフォルダに絵文字を保存し、別のユーザーを作成しuser_2、起動して再び戻しstます。これを行う方法はありますか?もしそうなら、これが衝突を防ぐ最も簡単な方法ですか?user_2user
  • 次のソリューションを使用してください。GithubのLuke SmithのSt
    If st crashes when viewing emojis, install libxft-bgra from the AUR.
    Archベースのディストリビューションを使用していないため、機能しない可能性があります。
    (現在、Ubuntu 20.04LTSを使用しています。AURを安全に使用する方法を知っている人がいる場合はそうではありません。)

私がしたいこと:

Apple Color Emoji選択したソフトウェアを除くすべてのソフトウェアを許可するようにコンピュータに指示します
(現在はst(一部のテストでは2番目のソフトウェアのみをpango-view使用しています)、または他のソフトウェアを使用していますxft)、絵文字に「許可する」項目を使用するように指示
します。 、することが最善です。ststSymbola

または、少なくともSymbola基本的にemoji家族の写真を撮るように自分のコンピュータに指示してください。可能であれば、
「基本的にのみ適用されます」。st

私は解決策があるかもしれないと思いますfont-config

私が試したこと(完全ではありません):

を使用すると、ターゲットfont-configのみのようないくつかのタグがあります<match><test><string>st</string></test>…</match>(「フォントを太字で表示する、stのみ、特定のサイズのみ」と言うことができます。私のコンピュータで動作します)。 1つ以上のフォントをグローバルモードで無効にするなど、他のタグもあります。st

<selectfont><rejectfont><glob>/path/to/emoji/font</glob></rejectfont></selectfont>

それらを組み合わせてみましたが、不可能に見えます。以下はうまくいかないコードです。 (
フォントは「のみst」ではなく、どこからでも削除されます。)

<match>
    <test qual="all" name="prgname" target="pattern" compare="eq"><string>St</string></test>
    <selectfont>
        <rejectfont>
            <glob>/home/user/.local/share/fonts/Apple*</glob>
        </rejectfont>
    </selectfont>
</match>

私は<selectfont>ラベルが<match>ラベルの中にあるべきだとは思わない。


これ質問実際に知られており、関連性があるだけでなく、stここでほぼすべてのソリューションを試してみましたが、それでもクラッシュが発生します。
誰かがこの質問について提案したのと似たような私が試したことの例:

<match target="pattern">
  <test name="family"><string>emoji</string></test>
  <edit name="family" mode="append"><string>Symbola</string></edit>
</match>
<match target="pattern">
  <test qual="any" name="family"><string>Apple Color Emoji</string></test>
   <edit name="family" mode="assign" binding="same"><string>Symbola</string></edit>
</match>

しかし、その有無にかかわらず、出力はfc-match --verbose :family=emoji | grep '^.family:
依然として同じですfamily: "Apple Color Emoji"(s)

代わりに、デフォルトの固定幅フォントを使用してもmonospace機能しません。私がここで何か間違っているのでしょうか?emojiApple Color Emoji


デフォルトのフォントを設定するソリューションが見つかりました(下記はい)、

<alias>
  <family>monospace</family>
  <prefer><family>Cantarell</family></prefer>
</alias>

monospaceというランダムなフォントを設定しましたが、うまくいきCantarellました。含まれている他のフォントでも機能しますが、ここに代わりに
書くと機能します!したがって、デフォルトのフォントを変更する方法があります。良いスタートだが、ソフトウェアだけに限らず、同じように扱われないようだ。絵文字のデフォルト値はとを両方有効にする場合であり、このソリューションではデフォルト値にリセットすることはできません。emojimonospace
emojisans-serifserifmonospace
Noto Color EmojiApple Color EmojiNoto Color EmojiApple Color Emoji

私もこの設定はうまくいきますが、うまくいきませんでした。sans-serif試すmonospaceたびに同様の結果が出てsansも動作しません。代わりに同じコメントです。おそらくこれら3つの単語は、、、を意味し、共通点があるでしょう。:family=sans:family=sans-seriffc-matchmonomonospacesansmonoemoji

しかし、この「共通基盤」とは何ですか?このようなもの
を作る方法はありますか?emojimonospace

ベストアンサー1

おすすめ記事