emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [ELPA] Add new 'show-font' package?


From: Protesilaos Stavrou
Subject: Re: [ELPA] Add new 'show-font' package?
Date: Fri, 06 Sep 2024 16:40:09 +0300

> From: Eli Zaretskii <eliz@gnu.org>
> Date: Fri,  6 Sep 2024 14:40:07 +0300

> [... 14 lines elided]

>> This is not intended for fonts that are already installed on the system.
>> It is for users who download a font from some website and then store it
>> locally. We then want a major mode to preview the font instead of
>> showing unreadable characters.
>
> This seems to be in contradiction to what you said originally: that
> you first want to handle installed fonts.  A font that is not yet
> installed will not appear in x-family-fonts, so you need something
> else entirely.

The "something else" is why I am relying on 'fc-list' and 'fc-scan'. I
am keeping this dependency for the time being and will let users of
other platforms tell me what the equivalent programs are on their
system.

>> If there is a function that can read FILE and infer the font name (or
>> names) from it, then we can check if the font[s] are available and
>> preview them accordingly. Else print a message that the fonts are not
>> available on the system.
>
> Emacs doesn't access font files directly, it uses system facilities
> for that.  So the answer to your question is NO, not using Emacs APIs
> related to fonts.

I see, thank you! I will keep using external programs then.

>> > This concept surprises me, since the tools and commands which I've seen
>> > that allow users to preview a font show the list of installed fonts,
>> > and then allow selecting a font from that list.  In which case the
>> > font's file name is not very relevant.  Moreover, some font files can
>> > have several different font families, in which case a file name will
>> > not unequivocally determine the font.
>> 
>>  I already have all the code ready in my local repository. There are two
>> commands to work with installed fonts (per 'x-family-fonts'):
>> 
>> - show-font-select-preview :: Use minibuffer completion to select a
>>   font family and then display a buffer rendered in that family.
>> 
>> - show-font-list :: Produce a buffer that has a short preview of each
>>   installed font, accompanied by the name of the font.
>> 
>> Now all I am missing is the case with the file that I noted above. Then
>> the prototype is feature complete and I can work on further refinements.
>
> If you are now talking only about uninstalled fonts, the way to handle
> them in Emacs will be quite complicated, I think, and will be
> highly-dependent on the font back-end.  I'm not even sure this is
> possible on all supported system (e.g., I don't know how to do that on
> MS-Windows, I think it's impossible there).  You may need to tell
> users to install a font temporarily for previewing it.

These are for installed fonts that we find with 'x-family-fonts'. I
followed your suggestion and have now built on top of that function.

Indeed, it is hard to preview a font that is not installed on the
system. For those cases, we show the relevant warning and then provide
the means to install that file by copying to the OS-dependent path (I
implemented this earlier).

* * *

@Philip I made lots of changes since our last exchange earlier today. I
think the package is ready for the release of version 0.1.0. I just need
to write a manual for it. Is there anything else left before I push to
elpa.git (I completely rewrote the file handler and there is no external
code now)?

-- 
Protesilaos Stavrou
https://protesilaos.com



reply via email to

[Prev in Thread] Current Thread [Next in Thread]