diff mbox series

[bug#54953] gnu: Add emacs-nano-theme

Message ID eOjW4-qn1Zv6eHF0qV0YA8UnOd3rnQqJcuim3jpooWykVlSTjMWtrrtKhMc0ZZ-o1y8J2FMQriORYSN_eGnHN7254U5aQZGXjvRT-VuSppg=@protonmail.com
State New
Headers show
Series [bug#54953] gnu: Add emacs-nano-theme | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch success View Laminar job
cbaines/issue success View issue

Commit Message

Maya April 15, 2022, 9:50 a.m. UTC
---
This is my first git patch ever. I really hope I did everything correctly. This is imported emacs package from ELPA, but I shortened the ELPA description a bit.

I apologize for any mistakes I made. I never used this method before.

Maya

 gnu/packages/emacs-xyz.scm | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

--
2.35.1

Comments

M April 17, 2022, 8:31 a.m. UTC | #1
Maya via Guix-patches via schreef op vr 15-04-2022 om 09:50 [+0000]:
> +   (synopsis "N Λ N O theme")
> +   (description
> +    "N Λ N O theme

Conventionally, except for composite words, words are written without
spaces. And Λ is not a fancy A, but the capital Greek letter lambda.
You are also mixing Greek and Latin alphabet here, and I don't see why
the lambda, nu and omicron is capitalised here.  My proposal: Νανο.

(Nitpickery reported upstream at
<https://github.com/rougier/nano-theme/issues/26>.  I don't think it
has to be changed downstream in Guix.)

>  is a consistent theme that comes in two flavors:  - a light theme
> +that is based on Material (https://material.io/)  - a dark theme that is based
> +on Nord (https://www.nordtheme.com/).

To make lists, use the Texinfo markup @itemize, @item and @end itemize,
then "guix show emacs-nano-theme" can render the list nicely.
Texinfo also has some markup for hyperlinks.

> +
> +A theme is fully defined by a set of (1+6) faces as explained in this paper
> +https://arxiv.org/abs/2008.06030

Missing period at end of sentence.

> +
> +Recommended font is \"Roboto Mono\" or \"Roboto Mono Nerd\" if you want to benefit
> +from all the fancy glyphs.")

Maybe a reference to the Guix package (I think it's font-google-
roboto?) would be useful here?

Greetings,
Maxime.
Maya April 18, 2022, 1:52 p.m. UTC | #2
> For the record, this space is for the commit message, which should be
> an explanation if needed (not needed for the addition of a package),
> and a ChangeLog.
Oh I am sorry, I didn't know that.

>You might want to simply write "Emacs theme defined by 7 faces"
I agree. If it is fine that the package now will not agree with upstream.

> I agree with Maxime.  Use "Nano Theme", "@code{nano-theme}" or simply
> "This package provides a theme that comes in two flavours".  I'm not
> sure whether we should add "consistent" -- it would suggest that other
> themes are inconsistent, which sure some of them might be but most
> don't strive to be.
I wouldn't call it that ("consistent") myself and I do agree that it sounds a bit weird, if it is, again, fine, that it will not agree with upstream, I will change it.

> Here too I would suggest @code{nano-theme} or this-theme.
It sounds better. However does it matter that it now will not match guix package name but match the emacs package name?

> "It is recommended to use a font with programming ligatures, such as
> @code{font-google-roboto}".  On that note, does Roboto have programming
> ligatures?
It sadly does not. But Roboto Mono Nerd is not packaged for guix and I haven't checked the license on their assets yet. I believe that Roboto Mono is recommended as a aesthetic matching font.

Best,
Maya.
Liliana Marie Prikler April 18, 2022, 4:03 p.m. UTC | #3
Am Montag, dem 18.04.2022 um 13:52 +0000 schrieb Maya:
> > For the record, this space is for the commit message, which should
> > be an explanation if needed (not needed for the addition of a
> > package), and a ChangeLog.
> Oh I am sorry, I didn't know that.
No problem.  Now you do :)

> > You might want to simply write "Emacs theme defined by 7 faces"
> I agree. If it is fine that the package now will not agree with
> upstream.
Many upstreams don't have useful synopses or descriptions, so we often
have to adapt them.  In other words, it's no harm if you put more
effort into synopses and descriptions than merely copying them from
elsewhere, as long as formal requirements are met (e.g. the synopsis is
a short line, the description consists of full sentences, etc.)

> > I agree with Maxime.  Use "Nano Theme", "@code{nano-theme}" or
> > simply "This package provides a theme that comes in two flavours". 
> > I'm not sure whether we should add "consistent" -- it would suggest
> > that other themes are inconsistent, which sure some of them might
> > be but most don't strive to be.
> I wouldn't call it that ("consistent") myself and I do agree that it
> sounds a bit weird, if it is, again, fine, that it will not agree
> with upstream, I will change it.
As above, we usually strip all marketing words from upstream
descriptions.

> > Here too I would suggest @code{nano-theme} or this-theme.
> It sounds better. However does it matter that it now will not match
> guix package name but match the emacs package name?
That's fine imo.  IIUC nano-theme would be a feature that you can
(require), no?

> > "It is recommended to use a font with programming ligatures, such
> > as @code{font-google-roboto}".  On that note, does Roboto have
> > programming ligatures?
> It sadly does not. But Roboto Mono Nerd is not packaged for guix and
> I haven't checked the license on their assets yet. I believe that
> Roboto Mono is recommended as a aesthetic matching font.
Last time I checked, Nerd fonts were a special kind of mess that's
difficult to disentangle and more difficult to check licenses on.  I
wouldn't bother too hard.

Is the recommendation important in your opinion?

Cheers
Maya April 18, 2022, 4:28 p.m. UTC | #4
> > > Here too I would suggest @code{nano-theme} or this-theme.
> > It sounds better. However does it matter that it now will not match
> > guix package name but match the emacs package name?
> That's fine imo.  IIUC nano-theme would be a feature that you can
> (require), no?
Yes it is a emacs package of that name. You also then load-theme it, so I guess it's fine.

> > > "It is recommended to use a font with programming ligatures, such
> > > as @code{font-google-roboto}".  On that note, does Roboto have
> > > programming ligatures?
> > It sadly does not. But Roboto Mono Nerd is not packaged for guix and
> > I haven't checked the license on their assets yet. I believe that
> > Roboto Mono is recommended as a aesthetic matching font.
> Last time I checked, Nerd fonts were a special kind of mess that's
> difficult to disentangle and more difficult to check licenses on.  I
> wouldn't bother too hard.
It looks like it. I didn't felt comfortable packaging it as it looked like they automatically download copyrighted content.

> Is the recommendation important in your opinion?
There is kind of a problem with that. The nano-theme package also provides a method of setting other not theme-related functionality under the nano-mode function. But that function prints an error if Roboto Mono Nerd isn't present on the system. (but does not fail)

As for the recommendation of the Roboto Mono itself, I don't know. The nano packages are all about aesthetics. And the theme optionally sets faces to Roboto (or Fira Code as a fallback font). Weirdly enough, the code also sets some faces to Victor Mono, but there is no mention of that in the package description.

The longer I'm looking at the code, the weirder it gets. It seems like it's not only a them per-se. But rather a visual style that kind-of breaks the borders of normal emacs theme.

Best,
Maya
diff mbox series

Patch

diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 2d95421472..e88c2898b8 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -1076,6 +1076,34 @@  (define-public emacs-nano-modeline
 displayed at the bottom or at the top.")
       (license license:gpl3+))))

+(define-public emacs-nano-theme
+  (package
+   (name "emacs-nano-theme")
+   (version "0.3.0")
+   (source
+    (origin
+     (method url-fetch)
+     (uri (string-append
+           "https://elpa.gnu.org/packages/nano-theme-"
+           version
+           ".tar"))
+     (sha256
+      (base32 "1nq5x46467vnsfg3fzb0qyg97xpnwsvbqg8frdjil5zq5fhsgmrz"))))
+   (build-system emacs-build-system)
+   (home-page "https://github.com/rougier/nano-theme")
+   (synopsis "N Λ N O theme")
+   (description
+    "N Λ N O theme is a consistent theme that comes in two flavors:  - a light theme
+that is based on Material (https://material.io/)  - a dark theme that is based
+on Nord (https://www.nordtheme.com/).
+
+A theme is fully defined by a set of (1+6) faces as explained in this paper
+https://arxiv.org/abs/2008.06030
+
+Recommended font is \"Roboto Mono\" or \"Roboto Mono Nerd\" if you want to benefit
+from all the fancy glyphs.")
+   (license license:gpl3+)))
+
 (define-public emacs-moody
   (package
     (name "emacs-moody")