From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.devel Subject: Re: [ELPA] Add new 'show-font' package? Date: Fri, 06 Sep 2024 14:40:07 +0300 Message-ID: <86ed5x104o.fsf@gnu.org> References: <87msknu635.fsf@protesilaos.com> <87jzfqjtdh.fsf@posteo.net> <867cbq4cun.fsf@gnu.org> <87zfol4a5t.fsf@protesilaos.com> <86ttet1fbe.fsf@gnu.org> <874j6tgv0w.fsf@protesilaos.com> <86plph1cc1.fsf@gnu.org> <87r09xfdoa.fsf@protesilaos.com> <86le0512kq.fsf@gnu.org> <87plph6o9z.fsf@protesilaos.com> Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="5815"; mail-complaints-to="usenet@ciao.gmane.io" Cc: philipk@posteo.net, emacs-devel@gnu.org To: Protesilaos Stavrou Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Fri Sep 06 13:40:58 2024 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1smXKk-0001KU-LR for ged-emacs-devel@m.gmane-mx.org; Fri, 06 Sep 2024 13:40:58 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1smXKJ-0005OF-UE; Fri, 06 Sep 2024 07:40:31 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1smXKG-0005Dc-0s for emacs-devel@gnu.org; Fri, 06 Sep 2024 07:40:28 -0400 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1smXKE-0004Zg-ES; Fri, 06 Sep 2024 07:40:26 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=UermjaLFaZwaEyZqH6aKiOt2VO30DkqRGZ5bLy8fykc=; b=FTmK5hemSSqL 301Q5xfkvLXxg4MEqm6ouwGRsuZMW7SGwJsTX9E5OPCi3xVOXf0ssxNWiZ267RM0be+Ya+OUusHZl LTS3xPeKcHVp7VeMshbrWkYqh0WfPsdDv9y0VBiRf2+NNHfnAUlXgNQXwVAbiv+NF6uFxUanlbv4Z 0BQXxtBMksIA8lMq7FmmAHQd1vdSSvj9+wVR9eMLqFgSUStu/v6tuKtbSnoYzm+SH2leHosfVGsXx JDdw8UGjWEK6FWbBtN2pD+f0f/sX1f/MSYM/YMhzI2veUd0K+izlz11lMtkO/ZAxFoFF4CkVI1i1t vIMzE9EE3xQ8IE5iyuqhkQ==; In-Reply-To: <87plph6o9z.fsf@protesilaos.com> (message from Protesilaos Stavrou on Fri, 06 Sep 2024 13:59:36 +0300) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:323470 Archived-At: > From: Protesilaos Stavrou > Cc: philipk@posteo.net, emacs-devel@gnu.org > Date: Fri, 06 Sep 2024 13:59:36 +0300 > > >> Imagine the user has just downloaded a font in "~/Downloads" and tries > >> to visit it. > > > > That is only relevant to fonts that are not yet installed, which is a > > separate use case, and IMO needs a different handling and perhaps also > > different UI. For now, AFAIU you are working on fonts that are > > already installed, and for those most users will not know the file > > names (nor will care about them). > > 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. > 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. > > 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.