emacs-bug-tracker
[Top][All Lists]
Advanced

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

bug#63595: closed (30.0.50; ERC 5.6: Add buffer-list and nick-list modul


From: GNU bug Tracking System
Subject: bug#63595: closed (30.0.50; ERC 5.6: Add buffer-list and nick-list modules)
Date: Fri, 14 Jul 2023 02:08:02 +0000

Your message dated Thu, 13 Jul 2023 19:07:46 -0700
with message-id <87r0pbs0st.fsf@neverwas.me>
and subject line Re: bug#63595: 30.0.50; ERC 5.6: Add buffer-list and nick-list 
modules
has caused the debbugs.gnu.org bug report #63595,
regarding 30.0.50; ERC 5.6: Add buffer-list and nick-list modules
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs@gnu.org.)


-- 
63595: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=63595
GNU Bug Tracking System
Contact help-debbugs@gnu.org with problems
--- Begin Message --- Subject: 30.0.50; ERC 5.6: Add buffer-list and nick-list modules Date: Fri, 19 May 2023 12:25:29 -0700 User-agent: Gnus/5.13 (Gnus v5.13)
Tags: patch
Severity: wishlist

(This bug could just as well be titled "Make ERC look more like
standalone clients," although that's perhaps a bit clickbaity.)


Hi,

Newcomers to ERC are occasionally dumbfounded by the absence of a
certain pair of IRC essentials, namely, a "window list" and a "nicknames
list." But what even existing users may not know is that ERC already has
both; they just don't quite work the way folks coming from other clients
might expect. This patch aims to address that as if it were a problem.

What's being proposed here is the addition of two new modules built
entirely on functionality already offered by their host libraries,
erc-status-sidebar.el and erc-speedbar.el. What's different is these
additions flirt with something somewhat verboten in ERC, and that's
changing existing defaults for non-security reasons (in this case,
chiefly for unifying UX [1]). Beyond that, these changes also hard-wire
potentially offensive choices into some of these defaults while trying
in earnest to ensure old behavior remains accessible. For example, one
module assumes no one with a non-nil `erc-header-line-format' has any
use for modes and topics in a side window. Other baked in preferences
include the nixing of all throwback icons [2] and the showing of
disconnected buffers in a muted face. The list goes on but is open for
discussion, as always.

Another consideration here is of course naming [3]. I've gone ahead and
dubbed the speedbar module 'nickbar' as a bit of an homage to its roots.
`nicklist' wasn't available because a popular module of that name was
once part of ERC, and people still use it today. For status-sidebar, I
went with `bufbar', in part for consistency but also because the
would-be canonical "status-sidebar" is already taken by the side
window's buffer for its major mode. We might also consider going with
the slightly pedestrian `buflist', which is already used by at least one
other IRC client for referring to this feature.

Lastly, I'd like to stress that these modules (thankfully) won't be
loaded by default, which means you'll need to add `bufbar' and `nickbar'
to `erc-modules' when trying them out. Note that this patch set
currently depends on bug#63569 [3], whose changes need applying
beforehand.

Thanks!


[1] My justifications for taking such liberties are at best anecdotal,
    based mostly on personal impressions of prevailing usage patterns
    and the perceived motivations behind them. A few examples:

    a. The relative newness of erc-status-sidebar.el, its lack of an
       associated module, and its absence from ERC's Custom menu all
       point to its defaults being somewhat more free for the changing.
       The speedbar integration likewise lacks a module, and its
       graphical-only nature means its set of users currently excludes
       anyone using ERC from a terminal. (Less expected fallout from the
       proposed churn, IOW.)

    b. Both libraries provide an always-open side window (or, in
       speedbar's case, frame), which imposes a specific layout on the
       user, something that's relatively rare in Emacs outside of
       IDE-style modes. Compare this to something like ibuffer for
       listing buffers or a hypothetical /NAMES buffer, which, if based
       on `tabulated-list-mode', would make for a more familiar means of
       reviewing channel members. The point here is that devoted users
       likely aren't messing with erc-status-sidebar or erc-speedbar in
       droves, preferring more Emacsy alternatives instead.

    c. Newcomers can't be bothered with an overly involved setup if it
       requires carefully exploring options before trying. But they're
       perfectly willing to copy/paste gobs of configuration or even
       mindlessly follow a minutes long Customize itinerary, so long as
       the promise of emerging with something resembling their present
       idea of what makes an IRC client remains within reach. By
       introducing these modules "preconfigured," I'm positing that
       these preconceived notions typically include a reactive window
       list and/or nick list. That said, my hope is that these users
       will eventually gravitate toward the more Emacs-native way of
       doing things, at which point these modules will have served their
       primary purpose (of acting as bait).

[2] My reason for 86'ing the icons outright in the speedbar's new
    "window mode" is consistency. I figure anyone who wants the vanilla
    experience wants it in full and thus also wants a separate frame.
    That said, I suppose we could add a knob for tweaking this (or any
    of the other hard-coded choices mentioned), but IMO doing that
    unprovoked just contributes to "options sprawl."

[3] FWIW, all module names in contention flout our supposed policy of
    preferring those that align with host libraries and the features
    they `provide'.


In GNU Emacs 30.0.50 (build 2, x86_64-pc-linux-gnu, GTK+ Version
 3.24.37, cairo version 1.17.6) of 2023-05-13 built on localhost
Repository revision: 867b104010760c4b7cd700078884cc774a01860a
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12014000
System Description: Fedora Linux 37 (Workstation Edition)

Configured using:
 'configure --enable-check-lisp-object-type --enable-checking=yes,glyphs
 'CFLAGS=-O0 -g3'
 PKG_CONFIG_PATH=:/usr/lib64/pkgconfig:/usr/share/pkgconfig'

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
JSON LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES NOTIFY
INOTIFY PDUMPER PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF
TOOLKIT_SCROLL_BARS WEBP X11 XDBE XIM XINPUT2 XPM GTK3 ZLIB

Important settings:
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: @im=ibus
  locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

Minor modes in effect:
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  line-number-mode: t
  indent-tabs-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message mailcap yank-media puny dired
dired-loaddefs rfc822 mml mml-sec epa derived epg rfc6068 epg-config
gnus-util text-property-search time-date mm-decode mm-bodies mm-encode
mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047
rfc2045 ietf-drums mm-util mail-prsvr mail-utils erc auth-source cl-seq
eieio eieio-core cl-macs password-cache json subr-x map format-spec
cl-loaddefs cl-lib erc-backend erc-networks byte-opt gv bytecomp
byte-compile erc-common erc-compat erc-loaddefs rmc iso-transl tooltip
cconv eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type
elisp-mode mwheel term/x-win x-win term/common-win x-dnd tool-bar dnd
fontset image regexp-opt fringe tabulated-list replace newcomment
text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow
isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax
font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic
indonesian philippine cham georgian utf-8-lang misc-lang vietnamese
tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek
romanian slovak czech european ethiopic indian cyrillic chinese
composite emoji-zwj charscript charprop case-table epa-hook
jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs
theme-loaddefs faces cus-face macroexp files window text-properties
overlay sha1 md5 base64 format env code-pages mule custom widget keymap
hashtable-print-readable backquote threads dbusbind inotify lcms2
dynamic-setting system-font-setting font-render-setting cairo
move-toolbar gtk x-toolkit xinput2 x multi-tty make-network-process
emacs)

Memory information:
((conses 16 64236 9476)
 (symbols 48 8573 0)
 (strings 32 23246 1709)
 (string-bytes 1 674076)
 (vectors 16 15015)
 (vector-slots 8 207266 8159)
 (floats 8 24 33)
 (intervals 56 229 0)
 (buffers 976 10))

Attachment: 0001-5.6-Fix-buffer-mismatch-bug-in-erc-scroll-to-bottom.patch
Description: Text Data

Attachment: 0002-5.6-Allow-ERC-s-module-toggles-access-to-the-prefix-.patch
Description: Text Data

Attachment: 0003-5.6-Add-preset-styles-to-erc-status-sidebar.patch
Description: Text Data

Attachment: 0004-5.6-Add-erc-status-sidebar-integration-to-erc-speedb.patch
Description: Text Data

Attachment: 0005-5.6-Add-new-ERC-modules-bufbar-and-nickbar.patch
Description: Text Data


--- End Message ---
--- Begin Message --- Subject: Re: bug#63595: 30.0.50; ERC 5.6: Add buffer-list and nick-list modules Date: Thu, 13 Jul 2023 19:07:46 -0700 User-agent: Gnus/5.13 (Gnus v5.13)
A more refined version of these changes has been installed [1]. However,
they're more likely than most to be imperfect due to their relative
complexity and the lack of effective tests, not to mention the kludgy
nature of the new speedbar module (whose frame we're hiding in favor of
showing its buffer in a side window). Hopefully, these new features will
lead to increased use, which should help exorcise the worst of their
demons.

Closing (for now).

[1] https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=ded35c2d
    https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=3c70e85d


--- End Message ---

reply via email to

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