emms-help
[Top][All Lists]
Advanced

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

[Björn Bidar] Re: best practices for implementing Emms configuration


From: Yoni Rabkin
Subject: [Björn Bidar] Re: best practices for implementing Emms configuration
Date: Sun, 11 Dec 2022 16:58:17 -0500
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.90 (gnu/linux)

Moving this thread of the emacs-devel discussion to the emms mailing
list.

-------------------- Start of forwarded message --------------------
>From fetchmail  Sun Dec 11 03: 03:01 2022
From: Björn Bidar <bjorn.bidar@thaodan.de>
To: Yoni Rabkin <yoni@rabkins.net>
Cc: emacs-devel <emacs-devel@gnu.org>
Subject: Re: best practices for implementing Emms configuration
Date: Sun, 11 Dec 2022 10:02:52 +0200

> Yoni Rabkin <yoni@rabkins.net> writes:

> >> I think would make more sense to have defaults for common use cases such
> >> as these then writing a configuration, simplifying the configuration
> >> rather than making it easier to configure.
> >>
> >> For example Circe provides defaults for common IRC server's than can be
> >> adjusted individually.
> >>
> >> Emms could provide similar defaults.
> >
> > No reason why mpd configuration can't be a part of the y-or-n-p type of
> > easy configuration I'm thinking about.

> Why focus on that "wizard" or dialog when the base emms configuration
> could use some simplification?

The two are not exclusive. Emms setup should be as simple as possible
AND we can implement "wizards".

This is a typical configuration. It will work on a vanilla install of
Trisquel (an OS which comes with vlc out of the box):

    (emms-all)
    (setq emms-player-list '(emms-player-vlc)
          emms-info-functions '(emms-info-native))

`emms-all' already loads all stable packages, and does some
configuration to get them going (sane initial setup options that people
think everyone should have can be added to that.)

We could, in pseudocode:

   1. set emms-player-list to nil

   2. default to `emms-info-native'.

   3. run player auto-discovery at the end of `emms-all' and set (in the
      above example where only vlc is installed) a variable called
      `emms-discovered-player-list' to be '(emms-player-vlc)

   4. When emms.el:emms-player-start is called, it can check to see if
      `emms-player-list' is nil, and if so, use the first player off of
      `emms-discovered-player-list'.

This would simplify the base setup for most users to:

(emms-all)

...which is pretty simple.

By contrast, running an `emms-setup' or similar could take the user
step-by-step to create a more involved setup. For instance, an
interactive emms-setup can detect that you have an mpd client on your
machine and ask if you want Emms to configure itself to use that.


> The two main ways of configuration in Emacs are either manual
> configuration with setq or setopt preferably with use-package (Emacs
> 29+) or the custom interface.

setq, setopt, and use-package are the same thing, with use-package being
a common-lisp-like domain-specific-language for emacs setup. There isn't
anything we can do to help people with those, except to make sure that
they don't need to set anything that we can set for them beforehand, as
above.

I have no kind words for the customize gui. I'm sure that back in the
day when presenting a user with a grey box full of checkboxes was
considered an acceptable setup screen for an application, then the emacs
customize gui was every bit as "good" an idea... the less said the
better.

> The configuration should be simple enough that selecting a profile with
> either should be good enough.

Can you explain what you mean by "profile"? And what "selecting a
profile" might look like?


> > But this thread should be picked up in emms-help@gnu.org.

> Posting to emms-help would be good then, there wasn't a post in that
> list.

here we are



reply via email to

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