unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Adding icon sets to Emacs -- and next steps for icons.el
@ 2022-08-24  6:45 Stefan Kangas
  2022-08-24  6:56 ` Po Lu
                   ` (2 more replies)
  0 siblings, 3 replies; 51+ messages in thread
From: Stefan Kangas @ 2022-08-24  6:45 UTC (permalink / raw)
  To: emacs-devel

Hi Emacs,

I've procrastinated on this for long enough, so...

I've just pushed the branch scratch/icons with my work from before Lars
merged his icons.el.  I intend to start finishing this up for merging to
master, including properly merging it with Lars' work.

The idea behind my icons.el is that a user should be able to switch out
all icons at once (to get a consistent look) rather than having to
customize a potentially large number of individual icons.

The work that I've done therefore operate on a different level from
Lars' work: it tries to map an icon name (currently a string) like
"warning" to a concrete file, which could be, e.g.,
"material/alert/warning.svg" or "octicons/alert-16.svg".

The exact file chosen will depend on the available icon sets, the user
option `icons-set-priority', and the font size.[1]

This means you can say:

    (icons-get "content/inventory")
    => #(" " 0 1
         (display
          (image :type svg
                 :file ".../etc/images/material/content/inventory.svg"
                 :scale 1.1052631578947367
                 :ascent center
                 :height (1 . em)
                 :transform-smoothing t)))

    (icons-get-filename "content/inventory")
    => "/home/skangas/wip/emacs/etc/images/material/content/inventory.svg"

My idea is to keep Lars' idea of individual customizable icons, but
leave the choice of which image file to the code I've written.
I imagine that the `warnings-suppress' icon definition in warnings.el
should look something like:

    (define-icon warnings-suppress button
      '((image "warning")                 ;;; <<< NEW LINE >>>
        (emoji "⛔")
        (symbol " ■ ")
        (text " stop "))
      "Suppress warnings."
      :version "29.1"
      :help-echo "Click to suppress this warning type")

From here, "warning" will be fed to my `icons-get', which will be
responsible for producing, e.g., the ".../material/alert/warning.svg"
file from the "materials" icon set, based on whatever knobs we decide to
have.

I have included material icons and octicons as two default sets, to be
distributed with Emacs.  (They would not be considered a part of Emacs
and so don't need to be subject to copyright assignment.)  More icon
sets would be easy to add to either GNU ELPA or core later.

To test this: build the scratch/icons branch, then check the main
toolbar, `M-x list-icons', the `M-x mpc' toolbar, and `M-x compile'.

Note that this is very much WIP still, but any comments are welcome.

Footnotes:
[1] Some icon sets provide more than one version of an icon, intended
    for viewing at smaller and larger sizes.  So asking for "warning"
    should give you either "octicons/alert-16.svg" or
    "octicons/alert-24.svg" depending on the size of the default face.



^ permalink raw reply	[flat|nested] 51+ messages in thread
* Re: Adding icon sets to Emacs -- and next steps for icons.el
@ 2022-08-24 12:43 Angelo Graziosi
  2022-08-24 13:05 ` Dmitry Gutov
  2022-09-07 19:11 ` Jean Louis
  0 siblings, 2 replies; 51+ messages in thread
From: Angelo Graziosi @ 2022-08-24 12:43 UTC (permalink / raw)
  To: emacs-devel@gnu.org

[-- Attachment #1: Type: text/plain, Size: 317 bytes --]

> I've just pushed the branch scratch/icons

I have build that branch on Windows (10). The result is that Emacs toolbar has the icons shown in the attached emacs-new-icons.png.


For completeness I attached the old, emacs-old-icons.png, current in master, result.

In my opinion, the old is better...

Ciao,
  Angelo.

[-- Attachment #2: emacs-new-icons.png --]
[-- Type: image/png, Size: 4174 bytes --]

[-- Attachment #3: emacs-old-icons.png --]
[-- Type: image/png, Size: 6566 bytes --]

^ permalink raw reply	[flat|nested] 51+ messages in thread
* Re: Adding icon sets to Emacs -- and next steps for icons.el
@ 2022-08-24 16:08 Payas Relekar
  2022-08-24 18:10 ` Dmitry Gutov
  0 siblings, 1 reply; 51+ messages in thread
From: Payas Relekar @ 2022-08-24 16:08 UTC (permalink / raw)
  To: emacs-devel

Dmitry Gutov <dgutov@yandex.ru> writes:

> "decent contrast" is a fairly low bar.
>

Yet surprising amount of *modern* software fails to clear it..

I'm just glad modus-themes makes 'contrast' issues thing of the past in
Emacs. Now if icons acheive the same feat, I might just enable the
toolbar.

Thanks,
Payas

--



^ permalink raw reply	[flat|nested] 51+ messages in thread
* Re: Adding icon sets to Emacs -- and next steps for icons.el
@ 2022-09-08 10:03 Payas Relekar
  2022-09-08 11:44 ` Dmitry Gutov
  0 siblings, 1 reply; 51+ messages in thread
From: Payas Relekar @ 2022-09-08 10:03 UTC (permalink / raw)
  To: emacs-devel

Jean Louis <bugs@gnu.support> writes:

> * Visuwesh <visuweshm@gmail.com> [2022-08-25 15:57]:
>> [1] https://www.haiku-inc.org/trademarks/haiku_icons/
>> [2] https://github.com/darealshinji/haiku-icons
>
> Those are nice.

As a daily user of Haiku, these icons are indeed nice. As mentioned by
others, there are SVGs along with PNG version so they can be scaled for
high resolution, almost all of them have distinct shapes and bright
colors with high contrast, and in a world full of flat text buttons and
monochrome logos they are a joy to use.

They are also quite unique to look at. It'll be very nice to have them
in Emacs GUI by default.

Thanks,
Payas

--



^ permalink raw reply	[flat|nested] 51+ messages in thread
* Re: Adding icon sets to Emacs -- and next steps for icons.el
@ 2022-09-08 12:19 Payas Relekar
  2022-09-08 14:03 ` Po Lu
  2022-09-08 21:24 ` Stefan Kangas
  0 siblings, 2 replies; 51+ messages in thread
From: Payas Relekar @ 2022-09-08 12:19 UTC (permalink / raw)
  To: emacs-devel

Dmitry Gutov <dgutov@yandex.ru> writes:

> On 08.09.2022 13:03, Payas Relekar wrote:
>> They are also quite unique to look at. It'll be very nice to have them
>> in Emacs GUI by default.
>
> It might be weirdly fitting, to have Emacs GUI default to Haiku icons.

It'll also make Emacs look more *modern* without being gaudy/flat/useless.

Make Emacs look nice and increase Haiku's awareness in the process.

Sum of two free projects is better than their addition eh?

Thanks,
Payas

--



^ permalink raw reply	[flat|nested] 51+ messages in thread

end of thread, other threads:[~2022-09-09 11:04 UTC | newest]

Thread overview: 51+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-08-24  6:45 Adding icon sets to Emacs -- and next steps for icons.el Stefan Kangas
2022-08-24  6:56 ` Po Lu
2022-08-24  7:20 ` Stefan Kangas
2022-08-24 11:25 ` Lars Ingebrigtsen
  -- strict thread matches above, loose matches on Subject: below --
2022-08-24 12:43 Angelo Graziosi
2022-08-24 13:05 ` Dmitry Gutov
2022-08-24 13:22   ` Eli Zaretskii
2022-08-24 13:26     ` Visuwesh
2022-08-24 14:19       ` Eli Zaretskii
2022-08-24 14:32         ` Visuwesh
2022-08-24 16:23         ` Stefan Monnier
2022-08-24 16:34           ` Eli Zaretskii
2022-08-25  1:11       ` Po Lu
2022-08-25  1:35         ` Visuwesh
2022-08-24 13:36     ` Po Lu
2022-08-24 13:51       ` Angelo Graziosi
2022-08-24 16:40       ` Stefan Kangas
2022-08-24 13:46     ` Angelo Graziosi
2022-08-24 13:47     ` Dmitry Gutov
2022-08-24 13:58       ` Po Lu
2022-08-24 14:26         ` Dmitry Gutov
2022-08-25  1:10           ` Po Lu
2022-08-25  1:22             ` Dmitry Gutov
2022-08-25  2:34               ` Po Lu
2022-08-24 23:09     ` Stefan Kangas
2022-08-25  1:23       ` Po Lu
2022-08-25  5:39         ` Eli Zaretskii
2022-08-25  6:49           ` Po Lu
2022-08-25 11:01       ` Visuwesh
2022-09-07 20:03         ` Jean Louis
2022-09-08  8:18           ` Po Lu
2022-09-08  8:25             ` Dmitry Gutov
2022-09-08  8:37             ` Jean Louis
2022-09-08 10:38               ` Po Lu
2022-08-25 21:26       ` Rudolf Adamkovič
2022-09-08 11:00         ` Jean Louis
2022-09-09 11:04           ` Rudolf Adamkovič
2022-08-25  9:28   ` Lars Ingebrigtsen
2022-09-07 19:11 ` Jean Louis
2022-08-24 16:08 Payas Relekar
2022-08-24 18:10 ` Dmitry Gutov
2022-08-25  1:39   ` Visuwesh
2022-08-25  5:28     ` Tim Cross
2022-09-08 10:03 Payas Relekar
2022-09-08 11:44 ` Dmitry Gutov
2022-09-09  3:03   ` Richard Stallman
2022-09-08 12:19 Payas Relekar
2022-09-08 14:03 ` Po Lu
2022-09-08 14:11   ` Payas Relekar
2022-09-08 21:24 ` Stefan Kangas
2022-09-09  1:48   ` Po Lu

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).