branch: elpa/mastodon
commit 163ba2b0b89a292b99bff0f574f5584ec888469a
Author: marty hiatt <martianhia...@disroot.org>
Commit: marty hiatt <martianhia...@disroot.org>

    build info
---
 mastodon.info | 279 +++++++++++++++++++++++---------------
 mastodon.texi | 419 +++++++++++++++++++++++++++++++++++++---------------------
 2 files changed, 436 insertions(+), 262 deletions(-)

diff --git a/mastodon.info b/mastodon.info
index 6d44f1d5bc..993ce50865 100644
--- a/mastodon.info
+++ b/mastodon.info
@@ -9,6 +9,9 @@ END-INFO-DIR-ENTRY
 
 File: mastodon.info,  Node: Top,  Next: README,  Up: (dir)
 
+A Mastodon client
+*****************
+
 * Menu:
 
 * README::
@@ -24,7 +27,7 @@ README
 * Contributing::
 * Supporting ‘mastodon.el’: Supporting mastodonel.
 * Contributors::
-* screenshots::
+* Screenshots::
 
 Installation
 
@@ -40,10 +43,10 @@ Usage
 * Timelines::
 * Composing toots::
 * Other commands and account settings::
+* Notifications::
 * Customization::
 * Commands and variables index::
-* Alternative timeline layout::
-* mastodon hydra::
+* Packages related to ‘mastodon.el’: Packages related to mastodonel.
 * Live-updating timelines mastodon-async-mode::
 * Translating toots::
 * Bookmarks and ‘mastodon.el’: Bookmarks and mastodonel.
@@ -61,7 +64,7 @@ File: mastodon.info,  Node: README,  Prev: Top,  Up: Top
 1 README
 ********
 
-‘mastodon.el’ is an Emacs client for the AcitivityPub social networks
+‘mastodon.el’ is an Emacs client for the ActivityPub social networks
 that implement the Mastodon API.  For info see joinmastodon.org
 (https://joinmastodon.org/).
 
@@ -78,7 +81,7 @@ have it installed you should be able to browse this readme 
inside emacs.
 * Contributing::
 * Supporting ‘mastodon.el’: Supporting mastodonel.
 * Contributors::
-* screenshots::
+* Screenshots::
 
 
 File: mastodon.info,  Node: Installation,  Next: Usage,  Up: README
@@ -196,10 +199,10 @@ File: mastodon.info,  Node: Usage,  Next: Dependencies,  
Prev: Installation,  Up
 * Timelines::
 * Composing toots::
 * Other commands and account settings::
+* Notifications::
 * Customization::
 * Commands and variables index::
-* Alternative timeline layout::
-* mastodon hydra::
+* Packages related to ‘mastodon.el’: Packages related to mastodonel.
 * Live-updating timelines mastodon-async-mode::
 * Translating toots::
 * Bookmarks and ‘mastodon.el’: Bookmarks and mastodonel.
@@ -228,9 +231,38 @@ accounts you can activate one at a time by changing those 
two variables
 and restarting Emacs.
 
    If you were using mastodon.el before 2FA was implemented and the
-above steps do not work, delete the old file specified by
-‘mastodon-client--token-file’ and restart Emacs and follow the steps
-again.
+above steps do not work, call ‘(mastodon-forget-all-logins)’, restart
+Emacs and follow the steps again.
+
+  1. encrypted access tokens (from 2.0.0)
+
+     By default, user access tokens are now stored in the user’s auth
+     source file (typically ‘~/.authinfo.gpg’, check the value of
+     ‘auth-sources’).  When you first update to 2.0.0, or if you
+     encounter issues due to old credentials, call
+     ‘(mastodon-forget-all-logins)’ to remove the old mastodon.el
+     plstore, and then authenticate again.  If you don’t want to use the
+     auth source file, set ‘mastodon-auth-use-auth-source’ to nil.
+     Entries will instead be stored encrypted in
+     ‘mastodon-client--token-file’, a plstore.
+
+     If for some reason you reauthenticate, you’ll need to either remove
+     the entry in your auth sources file, or manually update the token
+     in it after doing so, as mastodon.el is unable to reliably update
+     (or even remove) entires.
+
+     The format for a mastodon.el auth source entry is as follows:
+
+     ‘machine INSTANCE login USERNAME password AUTHTOKEN’
+
+     with the token being what you copy from the browser when
+     authenticating.  If you have ‘auth-source-save-behavior’ set to
+     nil, you’ll also need to add such an entry manually.
+
+     Finally, if you find you’re asked for your key passphrase too often
+     while authenticating, consider setting ‘epa-file-encrypt-to’ (for
+     auth-source encryption) and ‘plstore-encrypt-to’ (for plstore
+     encryption) to your preferred key ID.
 
 
 File: mastodon.info,  Node: Timelines,  Next: Composing toots,  Prev: Logging 
in to your instance,  Up: Usage
@@ -258,8 +290,8 @@ your ‘mastodon-token-file’ does not contain ‘:client_id’ and
                               *Timeline actions*
      ‘n’                      Go to next item (toot, notification, user)
      ‘p’                      Go to previous item (toot, notification, user)
-     ‘M-n=/=<tab>’            Go to the next interesting thing that has an 
action
-     ‘M-p=/=<S-tab>’          Go to the previous interesting thing that has an 
action
+     ‘M-n/<tab>’              Go to the next interesting thing that has an 
action
+     ‘M-p/<S-tab>’            Go to the previous interesting thing that has an 
action
      ‘F’                      Open federated timeline (1 prefix arg: 
hide-replies, 2 prefix args: media only)
      ‘H’                      Open home timeline (1 prefix arg: hide-replies)
      ‘L’                      Open local timeline (1 prefix arg: hide-replies, 
2 prefix args: media only)
@@ -289,6 +321,7 @@ your ‘mastodon-token-file’ does not contain ‘:client_id’ and
      ‘K’                      view bookmarked toots
      ‘X’                      view/edit/create/delete lists
      ‘S’                      view your scheduled toots
+     ‘S-:’                    view profile/account settings transient menu
                               *Toot actions*
      ‘t’                      Compose a new toot
      ‘c’                      Toggle content warning content
@@ -308,10 +341,11 @@ your ‘mastodon-token-file’ does not contain ‘:client_id’ 
and
      (‘S-C-’) ‘W’, ‘M’, ‘B’   (un)follow, (un)mute, (un)block author of toot 
at point
                               *Profile view*
      ‘C-c C-c’                cycle between statuses, statuses without boosts, 
followers, and following
-                              ‘mastodon-profile--account-account-to-list’ (see 
lists view)
+                              ‘mastodon-profile--add-account-to-list’ (see 
lists view)
                               *Notifications view*
      ‘a’, ‘j’                 accept/reject follow request
      ‘C-k’                    clear notification at point
+     ‘C-c C-c’                cycle between notification types
                               see ‘mastodon-notifications--get-*’ functions 
for filtered views
                               *Quitting*
      ‘q’                      Quit mastodon buffer, leave window open
@@ -327,7 +361,7 @@ your ‘mastodon-token-file’ does not contain ‘:client_id’ and
      ‘(⭐)’ (or          I favourited this toot
      ‘(F)’)
      ‘(🔖)’ (or          I bookmarked this toot
-     (‘K’))
+     ‘(K)’)
 
 
 File: mastodon.info,  Node: Composing toots,  Next: Other commands and account 
settings,  Prev: Timelines,  Up: Usage
@@ -368,19 +402,20 @@ is as follows:
 
   1. Keybindings
 
-     Key          Action
-     ---------------------------------------------
-     ‘C-c C-c’    Send toot
-     ‘C-c C-k’    Cancel toot
-     ‘C-c C-w’    Add content warning
-     ‘C-c C-v’    Change toot visibility
-     ‘C-c C-n’    Add sensitive media/nsfw flag
-     ‘C-c C-a’    Upload attachment(s)
-     ‘C-c !’      Remove all attachments
-     ‘C-c C-e’    Insert emoji
-     ‘C-c C-p’    Create a poll
-     ‘C-c C-l’    Set toot language
-     ‘-C-c C-s’   Schedule toot
+     Key         Action
+     --------------------------------------------
+     ‘C-c C-c’   Send toot
+     ‘C-c C-k’   Cancel toot
+     ‘C-c C-w’   Add content warning
+     ‘C-c C-v’   Change toot visibility
+     ‘C-c C-n’   Add sensitive media/nsfw flag
+     ‘C-c C-a’   Upload attachment(s)
+     ‘C-c !’     Remove all attachments
+     ‘C-c C-e’   Insert emoji
+     ‘C-c C-p’   Create a poll
+     ‘C-c C-o’   Cancel poll
+     ‘C-c C-l’   Set toot language
+     ‘C-c C-s’   Schedule toot
 
   2. Autocompletion of mentions, tags and emoji
 
@@ -412,7 +447,7 @@ is as follows:
         • ‘mastodon-toot--delete-all-drafts’: Delete all your drafts.
 
 
-File: mastodon.info,  Node: Other commands and account settings,  Next: 
Customization,  Prev: Composing toots,  Up: Usage
+File: mastodon.info,  Node: Other commands and account settings,  Next: 
Notifications,  Prev: Composing toots,  Up: Usage
 
 1.2.4 Other commands and account settings:
 ------------------------------------------
@@ -432,6 +467,9 @@ and should work without first loading a ‘mastodon.el’ 
buffer:
      on your instance.
    • ‘mastodon-search--trending-statuses’: View a list of trending
      statuses on your instance.
+   • ‘mastodon-search--trending-links’: View a list of trending links on
+     your instance (+ click through to a timeline of posts featuring a
+     given link)
 
    • ‘mastodon-tl--add-toot-account-at-point-to-list’: Add the account
      of the toot at point to a list.
@@ -465,28 +503,25 @@ and should work without first loading a ‘mastodon.el’ 
buffer:
    • ‘mastodon-tl--remote-tag-timeline’: View a tag timeline on a remote
      instance.
 
-   • ‘mastodon-profile--update-display-name’: Update the display name
-     for your account.
-   • ‘mastodon-profile--update-user-profile-note’: Update your bio note.
-   • ‘mastodon-profile--update-meta-fields’: Update your metadata
-     fields.
-   • ‘mastodon-profile--set-default-toot-visibility’: Set the default
-     visibility for your toots.
-   • ‘mastodon-profile--account-locked-toggle’: Toggle the locked status
-     of your account.  Locked accounts have to manually approve follow
-     requests.
-   • ‘mastodon-profile--account-discoverable-toggle’: Toggle the
-     discoverable status of your account.  Non-discoverable accounts are
-     not listed in the profile directory.
-   • ‘mastodon-profile--account-bot-toggle’: Toggle whether your account
-     is flagged as a bot.
-   • ‘mastodon-profile--account-sensitive-toggle’: Toggle whether your
-     posts are marked as sensitive (nsfw) by default.
-
-
-File: mastodon.info,  Node: Customization,  Next: Commands and variables 
index,  Prev: Other commands and account settings,  Up: Usage
-
-1.2.5 Customization
+   • ‘mastodon-user-settings’: Launch a transient menu to update various
+     account settings.
+
+
+File: mastodon.info,  Node: Notifications,  Next: Customization,  Prev: Other 
commands and account settings,  Up: Usage
+
+1.2.5 Notifications
+-------------------
+
+Mastodon from 4.3 supports grouped notifications.  These are implemented
+by ‘mastodon.el’ but disabled by default out of consideration to users
+on instances that don’t support them.  If you are on an instance that
+implements grouped notifications, set ‘mastodon-group-notifications’ to
+‘t’ to enable them.
+
+
+File: mastodon.info,  Node: Customization,  Next: Commands and variables 
index,  Prev: Notifications,  Up: Usage
+
+1.2.6 Customization
 -------------------
 
 See ‘M-x customize-group RET mastodon’ to view all customize options.
@@ -510,11 +545,12 @@ See ‘M-x customize-group RET mastodon’ to view all 
customize options.
 
    • Nofitication options:
         • Display user’s profile note in follow requests
+        • Group notifications
 
 
-File: mastodon.info,  Node: Commands and variables index,  Next: Alternative 
timeline layout,  Prev: Customization,  Up: Usage
+File: mastodon.info,  Node: Commands and variables index,  Next: Packages 
related to mastodonel,  Prev: Customization,  Up: Usage
 
-1.2.6 Commands and variables index
+1.2.7 Commands and variables index
 ----------------------------------
 
 An index of all user-facing commands and custom variables is available
@@ -525,28 +561,45 @@ bindings, or run ‘M-X’ (upper-case ‘X’) to view all 
commands in the
 buffer with completion, and call one.
 
 
-File: mastodon.info,  Node: Alternative timeline layout,  Next: mastodon 
hydra,  Prev: Commands and variables index,  Up: Usage
+File: mastodon.info,  Node: Packages related to mastodonel,  Next: 
Live-updating timelines mastodon-async-mode,  Prev: Commands and variables 
index,  Up: Usage
 
-1.2.7 Alternative timeline layout
----------------------------------
+1.2.8 Packages related to ‘mastodon.el’
+---------------------------------------
 
-The incomparable Nicholas Rougier has written an alternative timeline
-layout for ‘mastodon.el’.
+  1. Alternative timeline layout
 
-   The repo is at mastodon-alt
-(https://github.com/rougier/mastodon-alt).
+     The incomparable Nicholas Rougier has written an alternative
+     timeline layout for ‘mastodon.el’.
 
-
-File: mastodon.info,  Node: mastodon hydra,  Next: Live-updating timelines 
mastodon-async-mode,  Prev: Alternative timeline layout,  Up: Usage
+     The repo is at mastodon-alt
+     (https://github.com/rougier/mastodon-alt).
+
+  2. Org links, archive search
+
+     toot-suite (https://codeberg.org/chrmoe/toot-suite) implements an
+     org link type for fediverse posts, and also provides a way to
+     browse an offline archive of your account.
+
+  3. Mastodon hydra
+
+     A user made a hydra for handling basic ‘mastodon.el’ commands.
+     It’s available at
+     <https://holgerschurig.github.io/en/emacs-mastodon-hydra/>.
+
+  4. Narrow to timeline item
+
+     A simple code snippet to enable narrowing to current item in
+     timelines:
+     
<http://takeonrules.com/2024/10/31/hacking-on-mastodon-emacs-package-to-narrow-viewing/>
 
-1.2.8 mastodon hydra
---------------------
+  5. Sachac’s config goodies
 
-A user made a hydra for handling basic mastodon.el commands.  It’s
-available at <https://holgerschurig.github.io/en/emacs-mastodon-hydra/>.
+     The incomparable sachac has a bunch of ‘mastodon.el’ extensions and
+     goodies in their literate config, available here:
+     <https://sachachua.com/dotemacs/index.html#mastodon>.
 
 
-File: mastodon.info,  Node: Live-updating timelines mastodon-async-mode,  
Next: Translating toots,  Prev: mastodon hydra,  Up: Usage
+File: mastodon.info,  Node: Live-updating timelines mastodon-async-mode,  
Next: Translating toots,  Prev: Packages related to mastodonel,  Up: Usage
 
 1.2.9 Live-updating timelines: ‘mastodon-async-mode’
 ----------------------------------------------------
@@ -582,7 +635,7 @@ translator of choice (‘libretrans.el’ , ‘google-translate’, 
‘babel’,
 its text argument.  Here’s what ‘mastodon-toot--translate-toot-text’
 looks like:
 
-     (defun mastodon-toot--translate-toot-text ()
+     (defun mastodon-toot-translate-toot-text ()
        "Translate text of toot at point.
        Uses `lingva.el'."
          (interactive)
@@ -611,9 +664,12 @@ File: mastodon.info,  Node: Dependencies,  Next: Network 
compatibility,  Prev: U
 ================
 
 Hard dependencies (should all install with ‘mastodon.el’):
-   • ‘request’ (for uploading attachments), emacs-request
-     (https://github.com/tkf/emacs-request)
-   • ‘persist’ for storing some settings across sessions
+   • ‘request’ (for uploading attachments, emacs-request
+     (https://github.com/tkf/emacs-request))
+   • ‘persist’ (for storing some settings across sessions, persist
+     (https://elpa.gnu.org/packages/persist.html))
+   • ‘tp.el’ (for transient menus, tp.el
+     (https://codeberg.org/martianh/tp.el))
 
    Optional dependencies (install yourself, ‘mastodon.el’ can use them):
    • ‘emojify’ to use custom emoji (else we use builtin ‘emoji.el’)
@@ -633,6 +689,7 @@ Mastodon API.
    • Pleroma (pleroma.social (https://pleroma.social/))
    • Akkoma (akkoma.social (https://akkoma.social/))
    • Gotosocial (gotosocial.org (https://gotosocial.org/))
+   • Sharkey (joinsharkey.org (https://joinsharkey.org))
 
    It does not support the non-Mastodon API servers Misskey (misskey.io
 (https://misskey.io/)), Firefish (joinfirefish.org
@@ -718,14 +775,14 @@ File: mastodon.info,  Node: Supporting mastodonel,  Next: 
Contributors,  Prev: C
 If you’d like to support continued development of ‘mastodon.el’, I
 accept donations via paypal: paypal.me/martianh
 (https://paypal.me/martianh).  If you would prefer a different payment
-method, please write to me at <mouse...@disroot.org> and I can provide
-IBAN or other bank account details.
+method, please write to me at <mousebot {at} disroot.org> and I can
+provide IBAN or other bank account details.
 
    I don’t have a tech worker’s income, so even a small tip would help
 out.
 
 
-File: mastodon.info,  Node: Contributors,  Next: screenshots,  Prev: 
Supporting mastodonel,  Up: README
+File: mastodon.info,  Node: Contributors,  Next: Screenshots,  Prev: 
Supporting mastodonel,  Up: README
 
 1.7 Contributors
 ================
@@ -741,9 +798,9 @@ File: mastodon.info,  Node: Contributors,  Next: 
screenshots,  Prev: Supporting
    • <https://codeberg.org/Red_Starfish>
 
 
-File: mastodon.info,  Node: screenshots,  Prev: Contributors,  Up: README
+File: mastodon.info,  Node: Screenshots,  Prev: Contributors,  Up: README
 
-1.8 screenshots
+1.8 Screenshots
 ===============
 
 Here’s a (federated) timeline:
@@ -772,39 +829,45 @@ server values commented):
 
 Tag Table:
 Node: Top219
-Node: README1006
-Node: Installation1656
-Node: ELPA1945
-Node: MELPA2173
-Node: Repo2553
-Node: Emoji3046
-Node: Discover3640
-Node: Usage4192
-Node: Logging in to your instance4654
-Node: Timelines5651
-Ref: Keybindings6126
-Ref: Toot byline legend10966
-Node: Composing toots11275
-Ref: Keybindings (1)12827
-Ref: Autocompletion of mentions tags and emoji13362
-Ref: Draft toots14287
-Node: Other commands and account settings14758
-Node: Customization18122
-Node: Commands and variables index19000
-Node: Alternative timeline layout19516
-Node: mastodon hydra19892
-Node: Live-updating timelines mastodon-async-mode20224
-Node: Translating toots21063
-Node: Bookmarks and mastodonel22247
-Node: Dependencies22789
-Node: Network compatibility23423
-Node: Contributing24305
-Node: Bug reports24801
-Node: Fixes and features25712
-Node: Coding style26213
-Node: Supporting mastodonel26837
-Node: Contributors27389
-Node: screenshots27824
+Node: README1083
+Node: Installation1732
+Node: ELPA2021
+Node: MELPA2249
+Node: Repo2629
+Node: Emoji3122
+Node: Discover3716
+Node: Usage4268
+Node: Logging in to your instance4770
+Ref: encrypted access tokens (from 200)5742
+Node: Timelines7200
+Ref: Keybindings7675
+Ref: Toot byline legend12657
+Node: Composing toots12966
+Ref: Keybindings (1)14518
+Ref: Autocompletion of mentions tags and emoji15073
+Ref: Draft toots15998
+Node: Other commands and account settings16469
+Node: Notifications19144
+Node: Customization19629
+Node: Commands and variables index20517
+Node: Packages related to mastodonel21036
+Ref: Alternative timeline layout21289
+Ref: Org links archive search21516
+Ref: Mastodon hydra21735
+Ref: Narrow to timeline item21919
+Ref: Sachac's config goodies22126
+Node: Live-updating timelines mastodon-async-mode22345
+Node: Translating toots23200
+Node: Bookmarks and mastodonel24383
+Node: Dependencies24925
+Node: Network compatibility25711
+Node: Contributing26652
+Node: Bug reports27148
+Node: Fixes and features28059
+Node: Coding style28560
+Node: Supporting mastodonel29184
+Node: Contributors29741
+Node: Screenshots30176
 
 End Tag Table
 
diff --git a/mastodon.texi b/mastodon.texi
index f5e235e808..f5b2689f90 100644
--- a/mastodon.texi
+++ b/mastodon.texi
@@ -1,7 +1,7 @@
 \input texinfo    @c -*- texinfo -*-
 @c %**start of header
 @setfilename mastodon.info
-@settitle 
+@settitle A Mastodon client
 @documentencoding UTF-8
 @documentlanguage en
 @c %**end of header
@@ -13,14 +13,14 @@
 
 @finalout
 @titlepage
-@title 
+@title A Mastodon client
 @end titlepage
 
 @contents
 
 @ifnottex
 @node Top
-@top 
+@top A Mastodon client
 @end ifnottex
 
 @menu
@@ -38,7 +38,7 @@ README
 * Contributing::
 * Supporting @samp{mastodon.el}: Supporting @samp{mastodonel}. 
 * Contributors::
-* screenshots::
+* Screenshots::
 
 Installation
 
@@ -54,10 +54,10 @@ Usage
 * Timelines::
 * Composing toots::
 * Other commands and account settings::
+* Notifications::
 * Customization::
 * Commands and variables index::
-* Alternative timeline layout::
-* mastodon hydra::
+* Packages related to @samp{mastodon.el}: Packages related to 
@samp{mastodonel}. 
 * Live-updating timelines @samp{mastodon-async-mode}::
 * Translating toots::
 * Bookmarks and @samp{mastodon.el}: Bookmarks and @samp{mastodonel}. 
@@ -74,10 +74,12 @@ Contributing
 @node README
 @chapter README
 
-@samp{mastodon.el} is an Emacs client for the AcitivityPub social networks that
+@samp{mastodon.el} is an Emacs client for the ActivityPub social networks that
 implement the Mastodon API@. For info see @uref{https://joinmastodon.org/, 
joinmastodon.org}.
 
-NB: @samp{mastodon.el} now ships this readme as an .info file, so if you have 
it installed you should be able to browse this readme inside emacs. @samp{C-h 
i} for info, then @samp{m masto RET} should load it for you.
+NB: @samp{mastodon.el} now ships this readme as an .info file, so if you have 
it
+installed you should be able to browse this readme inside emacs. @samp{C-h i} 
for
+info, then @samp{m masto RET} should load it for you.
 
 @menu
 * Installation::
@@ -87,13 +89,14 @@ NB: @samp{mastodon.el} now ships this readme as an .info 
file, so if you have it
 * Contributing::
 * Supporting @samp{mastodon.el}: Supporting @samp{mastodonel}. 
 * Contributors::
-* screenshots::
+* Screenshots::
 @end menu
 
 @node Installation
 @section Installation
 
-You can install @samp{mastodon.el} from ELPA, MELPA, or directly from this 
repo. It is also available as a GUIX package.
+You can install @samp{mastodon.el} from ELPA, MELPA, or directly from this 
repo.
+It is also available as a GUIX package.
 
 @menu
 * ELPA::
@@ -132,8 +135,8 @@ Update and install:
 @node Repo
 @subsection Repo
 
-Clone this repository and add the lisp directory to your load path.
-Then, require it and go.
+Clone this repository and add the lisp directory to your load path. Then,
+require it and go.
 
 @lisp
 (add-to-list 'load-path "/path/to/mastodon.el/lisp")
@@ -147,19 +150,24 @@ Or, with @samp{use-package}:
   :ensure t)
 @end lisp
 
-The minimum Emacs version is now 28.1. But if you are running an older version
-it shouldn't be very hard to get it working.
+The minimum Emacs version is now 28.1. But if you are running an older
+version it shouldn't be very hard to get it working.
 
 @node Emoji
 @subsection Emoji
 
-Since Emacs 28, it has builtin emoji support with @samp{emoji.el}. If you 
prefer to use @uref{https://github.com/iqbalansari/emacs-emojify, Emojify}, 
@samp{require} it and set @samp{mastodon-use-emojify} to non-nil to display 
emoji in timelines and to use it when composing toots. @samp{Emoji.el} is the 
better option, but for now only @samp{emojify} supports downloading and using 
custom emoji from your instance. From personal experience, @samp{emojify} also 
tends to result in less TOFU@.
+Since Emacs 28, it has builtin emoji support with @samp{emoji.el}. If you 
prefer
+to use @uref{https://github.com/iqbalansari/emacs-emojify, Emojify}, 
@samp{require} it and set @samp{mastodon-use-emojify} to non-nil to
+display emoji in timelines and to use it when composing toots. @samp{Emoji.el} 
is
+the better option, but for now only @samp{emojify} supports downloading and 
using
+custom emoji from your instance. From personal experience, @samp{emojify} also
+tends to result in less TOFU@.
 
 @node Discover
 @subsection Discover
 
-@samp{mastodon-mode} can provide a context menu for its keybindings if 
@uref{https://github.com/mickeynp/discover.el, Discover} is
-installed. It is not required.
+@samp{mastodon-mode} can provide a context menu for its keybindings if 
@uref{https://github.com/mickeynp/discover.el, Discover}
+is installed. It is not required.
 
 if you have Discover, add the following to your Emacs init configuration:
 
@@ -185,10 +193,10 @@ Or, with @samp{use-package}:
 * Timelines::
 * Composing toots::
 * Other commands and account settings::
+* Notifications::
 * Customization::
 * Commands and variables index::
-* Alternative timeline layout::
-* mastodon hydra::
+* Packages related to @samp{mastodon.el}: Packages related to 
@samp{mastodonel}. 
 * Live-updating timelines @samp{mastodon-async-mode}::
 * Translating toots::
 * Bookmarks and @samp{mastodon.el}: Bookmarks and @samp{mastodonel}. 
@@ -206,33 +214,64 @@ You need to set 2 variables in your init file to get 
started:
 @samp{mastodon-active-user}
 @end enumerate
 
-(see their doc strings for details). For example If you want to post
-toots as "example@math{_user}@@social.instance.org", then put this in your init
-file:
+(see their doc strings for details). For example If you want to post toots
+as "example@math{_user}@@social.instance.org", then put this in your init file:
 
 @lisp
 (setq mastodon-instance-url "https://social.instance.org";
       mastodon-active-user "example_user")
 @end lisp
 
-Then @strong{restart} Emacs and run @samp{M-x mastodon}. Make sure you are 
connected
-to internet before you do this. If you have multiple mastodon accounts
-you can activate one at a time by changing those two variables and
-restarting Emacs.
+Then @strong{restart} Emacs and run @samp{M-x mastodon}. Make sure you are 
connected to
+internet before you do this. If you have multiple mastodon accounts you
+can activate one at a time by changing those two variables and restarting
+Emacs.
 
-If you were using mastodon.el before 2FA was implemented and the above steps
-do not work, delete the old file specified by 
@samp{mastodon-client--token-file} and
-restart Emacs and follow the steps again.
+If you were using mastodon.el before 2FA was implemented and the above
+steps do not work, call @samp{(mastodon-forget-all-logins)}, restart Emacs and
+follow the steps again.
+
+@enumerate
+@item
+@anchor{encrypted access tokens (from 200)}encrypted access tokens (from 2.0.0)
+
+
+By default, user access tokens are now stored in the user's auth source
+file (typically @samp{~/.authinfo.gpg}, check the value of 
@samp{auth-sources}). When
+you first update to 2.0.0, or if you encounter issues due to old
+credentials, call @samp{(mastodon-forget-all-logins)} to remove the old
+mastodon.el plstore, and then authenticate again. If you don't want to use
+the auth source file, set @samp{mastodon-auth-use-auth-source} to nil. Entries
+will instead be stored encrypted in @samp{mastodon-client--token-file}, a 
plstore.
+
+If for some reason you reauthenticate, you'll need to either remove the
+entry in your auth sources file, or manually update the token in it after
+doing so, as mastodon.el is unable to reliably update (or even remove)
+entires.
+
+The format for a mastodon.el auth source entry is as follows:
+
+@samp{machine INSTANCE login USERNAME password AUTHTOKEN}
+
+with the token being what you copy from the browser when authenticating.
+If you have @samp{auth-source-save-behavior} set to nil, you'll also need to 
add
+such an entry manually.
+
+Finally, if you find you're asked for your key passphrase too often while
+authenticating, consider setting @samp{epa-file-encrypt-to} (for auth-source
+encryption) and @samp{plstore-encrypt-to} (for plstore encryption) to your
+preferred key ID@.
+@end enumerate
 
 @node Timelines
 @subsection Timelines
 
 @samp{M-x mastodon}
 
-Opens a @samp{*mastodon-home*} buffer in the major mode and displays toots. If 
your
-credentials are not yet saved, you will be prompted for email and password.
-The app registration process will take place if your 
@samp{mastodon-token-file} does
-not contain @samp{:client_id} and @samp{:client_secret}.
+Opens a @samp{*mastodon-home*} buffer in the major mode and displays toots. If
+your credentials are not yet saved, you will be prompted for email and
+password. The app registration process will take place if your
+@samp{mastodon-token-file} does not contain @samp{:client_id} and 
@samp{:client_secret}.
 
 @enumerate
 @item
@@ -254,9 +293,9 @@ For a full list of commands and variables, see 
@uref{mastodon-index.org, mastodo
 @tab Go to next item (toot, notification, user)
 @item @samp{p}
 @tab Go to previous item (toot, notification, user)
-@item @samp{M-n=/=<tab>}
+@item @samp{M-n/<tab>}
 @tab Go to the next interesting thing that has an action
-@item @samp{M-p=/=<S-tab>}
+@item @samp{M-p/<S-tab>}
 @tab Go to the previous interesting thing that has an action
 @item @samp{F}
 @tab Open federated timeline (1 prefix arg: hide-replies, 2 prefix args: media 
only)
@@ -316,6 +355,8 @@ For a full list of commands and variables, see 
@uref{mastodon-index.org, mastodo
 @tab view/edit/create/delete lists
 @item @samp{S}
 @tab view your scheduled toots
+@item @samp{S-:}
+@tab view profile/account settings transient menu
 @item 
 @tab @strong{Toot actions}
 @item @samp{t}
@@ -355,13 +396,15 @@ For a full list of commands and variables, see 
@uref{mastodon-index.org, mastodo
 @item @samp{C-c C-c}
 @tab cycle between statuses, statuses without boosts, followers, and following
 @item 
-@tab @samp{mastodon-profile--account-account-to-list} (see lists view)
+@tab @samp{mastodon-profile--add-account-to-list} (see lists view)
 @item 
 @tab @strong{Notifications view}
 @item @samp{a}, @samp{j}
 @tab accept/reject follow request
 @item @samp{C-k}
 @tab clear notification at point
+@item @samp{C-c C-c}
+@tab cycle between notification types
 @item 
 @tab see @samp{mastodon-notifications--get-*} functions for filtered views
 @item 
@@ -385,7 +428,7 @@ For a full list of commands and variables, see 
@uref{mastodon-index.org, mastodo
 @tab I boosted this toot
 @item @samp{(⭐)} (or @samp{(F)})
 @tab I favourited this toot
-@item @samp{(🔖)} (or (@samp{K}))
+@item @samp{(🔖)} (or @samp{(K)})
 @tab I bookmarked this toot
 @end multitable
 @end enumerate
@@ -393,24 +436,31 @@ For a full list of commands and variables, see 
@uref{mastodon-index.org, mastodo
 @node Composing toots
 @subsection Composing toots
 
-@samp{M-x mastodon-toot} (or @samp{t} from a mastodon.el buffer) opens a new 
buffer/window
-in @samp{text-mode} and @samp{mastodon-toot} minor mode. Enter the contents of 
your toot
-here. @samp{C-c C-c} sends the toot. @samp{C-c C-k} cancels. Both actions kill 
the buffer
-and window. Further keybindings are displayed in the buffer, and in the 
following subsection.
+@samp{M-x mastodon-toot} (or @samp{t} from a mastodon.el buffer) opens a new
+buffer/window in @samp{text-mode} and @samp{mastodon-toot} minor mode. Enter 
the
+contents of your toot here. @samp{C-c C-c} sends the toot. @samp{C-c C-k} 
cancels. Both
+actions kill the buffer and window. Further keybindings are displayed in
+the buffer, and in the following subsection.
 
-Replies preserve visibility status/content warnings, and include boosters by 
default. If the region is active when you start a reply, it will be yanked into 
the compose buffer prefixed with @samp{>} to form a rough reply quote.
+Replies preserve visibility status/content warnings, and include boosters
+by default. If the region is active when you start a reply, it will be
+yanked into the compose buffer prefixed with @samp{>} to form a rough reply
+quote.
 
-Server's max toot length, with running char count, and attachment previews, 
are shown.
+Server's max toot length, with running char count, and attachment
+previews, are shown.
 
 You can download and use your instance's custom emoji
-(@samp{mastodon-toot-download-custom-emoji}, 
@samp{mastodon-toot-enable-custom-emoji}).
+(@samp{mastodon-toot--download-custom-emoji},
+@samp{mastodon-toot--enable-custom-emoji}).
 
-If you want to view some of the toot being replied to in the compose buffer, 
set @samp{mastodon-toot-display-orig-in-reply-buffer} to non-nil.
+If you want to view some of the toot being replied to in the compose
+buffer, set @samp{mastodon-toot-display-orig-in-reply-buffer} to non-nil.
 
-The compose buffer uses @samp{text-mode} so any configuration you have for 
that mode
-will be enabled. If any of your existing config conflicts with 
@samp{mastodon-toot},
-you can disable it in the @samp{mastodon-toot-mode-hook}. For example, the 
default
-value of that hook is as follows:
+The compose buffer uses @samp{text-mode} so any configuration you have for that
+mode will be enabled. If any of your existing config conflicts with
+@samp{mastodon-toot}, you can disable it in the 
@samp{mastodon-toot-mode-hook}. For
+example, the default value of that hook is as follows:
 
 @lisp
 (add-hook 'mastodon-toot-mode-hook
@@ -423,7 +473,7 @@ value of that hook is as follows:
 @anchor{Keybindings (1)}Keybindings
 
 
-@multitable {aaaaaaaaaa} {aaaaaaaaaaaaaaaaaaaaaaaaaaaaa}
+@multitable {aaaaaaaaa} {aaaaaaaaaaaaaaaaaaaaaaaaaaaaa}
 @headitem Key
 @tab Action
 @item @samp{C-c C-c}
@@ -444,9 +494,11 @@ value of that hook is as follows:
 @tab Insert emoji
 @item @samp{C-c C-p}
 @tab Create a poll
+@item @samp{C-c C-o}
+@tab Cancel poll
 @item @samp{C-c C-l}
 @tab Set toot language
-@item @samp{-C-c C-s}
+@item @samp{C-c C-s}
 @tab Schedule toot
 @end multitable
 
@@ -459,15 +511,17 @@ Autocompletion of mentions, tags, and emojis is provided 
by
 @samp{mastodon-toot--enable-completion} is enabled by default.
 
 To trigger completion, type a prefix followed by a few letters, @samp{@@} for
-mentions, @samp{#} for tags, and @samp{:} for emoji (for now this only works 
when using @samp{emojify.el}).
+mentions, @samp{#} for tags, and @samp{:} for emoji (for now this only works 
when using
+@samp{emojify.el}).
 
 If you want to enable @samp{company-mode} in the toot compose buffer, set
-@samp{mastodon-toot--use-company-for-completion} to @samp{t}. 
(@samp{mastodon.el} used to run its
-own native company backends, but these have been removed in favour of capfs.)
+@samp{mastodon-toot--use-company-for-completion} to @samp{t}. 
(@samp{mastodon.el} used to run
+its own native company backends, but these have been removed in favour of
+capfs.)
 
-If you don’t run @samp{company} and want immediate, keyless completion, you’ll 
need
-to have another completion engine running that handles capfs. A common
-combination is @samp{consult} and @samp{corfu}.
+If you don’t run @samp{company} and want immediate, keyless completion, you’ll
+need to have another completion engine running that handles capfs. A
+common combination is @samp{consult} and @samp{corfu}.
 
 @item
 @anchor{Draft toots}Draft toots
@@ -475,23 +529,25 @@ combination is @samp{consult} and @samp{corfu}.
 
 @itemize
 @item
-Compose buffer text is saved as you type, kept in 
@samp{mastodon-toot-current-toot-text}.
+Compose buffer text is saved as you type, kept in
+@samp{mastodon-toot-current-toot-text}.
 @item
-@samp{mastodon-toot-save-draft}: save the current toot as a draft.
+@samp{mastodon-toot--save-draft}: save the current toot as a draft.
 @item
-@samp{mastodon-toot-open-draft-toot}: Open a compose buffer and insert one of 
your draft toots.
+@samp{mastodon-toot--open-draft-toot}: Open a compose buffer and insert one of
+your draft toots.
 @item
-@samp{mastodon-toot-delete-draft-toot}: Delete a draft toot.
+@samp{mastodon-toot--delete-draft-toot}: Delete a draft toot.
 @item
-@samp{mastodon-toot-delete-all-drafts}: Delete all your drafts.
+@samp{mastodon-toot--delete-all-drafts}: Delete all your drafts.
 @end itemize
 @end enumerate
 
 @node Other commands and account settings
 @subsection Other commands and account settings:
 
-In addition to @samp{mastodon}, the following three functions are autoloaded 
and should
-work without first loading a @samp{mastodon.el} buffer:
+In addition to @samp{mastodon}, the following three functions are autoloaded 
and
+should work without first loading a @samp{mastodon.el} buffer:
 @itemize
 @item
 @samp{mastodon-toot}: Compose new toot
@@ -505,55 +561,65 @@ point or provided in the minibuffer.
 
 @itemize
 @item
-@samp{mastodon-tl--view-instance-description}: View information about the 
instance
-that the author of the toot at point is on.
+@samp{mastodon-tl--view-instance-description}: View information about the
+instance that the author of the toot at point is on.
 @item
-@samp{mastodon-tl--view-own-instance}: View information about your own 
instance.
+@samp{mastodon-tl--view-own-instance}: View information about your own
+instance.
 @item
-@samp{mastodon-search-trending-tags}: View a list of trending hashtags on your
+@samp{mastodon-search--trending-tags}: View a list of trending hashtags on your
 instance.
 @item
-@samp{mastodon-search-trending-statuses}: View a list of trending statuses on 
your instance.
-@end itemize
-
+@samp{mastodon-search--trending-statuses}: View a list of trending statuses on
+your instance.
+@item
+@samp{mastodon-search--trending-links}: View a list of trending links on your
+instance (+ click through to a timeline of posts featuring a given link)
 
-@itemize
 @item
-@samp{mastodon-tl--add-toot-account-at-point-to-list}: Add the account of the 
toot at point to a list.
+@samp{mastodon-tl--add-toot-account-at-point-to-list}: Add the account of the
+toot at point to a list.
 @end itemize
 
 
 @itemize
 @item
-@samp{mastodon-tl-dm-user}: Send a direct message to one of the users at point.
+@samp{mastodon-tl--dm-user}: Send a direct message to one of the users at
+point.
 @end itemize
 
 
 @itemize
 @item
-@samp{mastodon-profile-add-private-note-to-account}: Add a private note to 
another user’s account.
+@samp{mastodon-profile--add-private-note-to-account}: Add a private note to
+another user’s account.
 @item
-@samp{mastodon-profile-view-account-private-note}: View a private note on a 
user’s account.
+@samp{mastodon-profile--view-account-private-note}: View a private note on a
+user’s account.
 @end itemize
 
 
 @itemize
 @item
-@samp{mastodon-profile-show-familiar-followers}: Show a list of “familiar 
followers” for a given account. Familiar followers are accounts that you 
follow, and that follow the account.
+@samp{mastodon-profile--show-familiar-followers}: Show a list of “familiar
+followers” for a given account. Familiar followers are accounts that you
+follow, and that follow the account.
 @end itemize
 
 
 @itemize
 @item
-@samp{mastodon-tl-follow-tag}: Follow a tag (works like following a user)
+@samp{mastodon-tl--follow-tag}: Follow a tag (works like following a user)
 @item
-@samp{mastodon-tl-unfollow-tag}: Unfollow a tag
+@samp{mastodon-tl--unfollow-tag}: Unfollow a tag
 @item
-@samp{mastodon-tl-list-followed-tags}: View a list of tags you're following.
+@samp{mastodon-tl--list-followed-tags}: View a list of tags you're following.
 @item
-@samp{mastodon-tl-followed-tags-timeline}: View a timeline of all your 
followed tags.
+@samp{mastodon-tl--followed-tags-timeline}: View a timeline of all your
+followed tags.
 @item
-@samp{mastodon-tl--some-followed-tags-timleine}: View a timeline of multiple 
tags, from your followed tags or any other.
+@samp{mastodon-tl--some-followed-tags-timleine}: View a timeline of multiple
+tags, from your followed tags or any other.
 @end itemize
 
 
@@ -565,38 +631,29 @@ instance.
 
 @itemize
 @item
-@samp{mastodon-tl-get-remote-local-timeline}: View a local timeline of a 
remote instance.
+@samp{mastodon-tl--get-remote-local-timeline}: View a local timeline of a
+remote instance.
 @item
-@samp{mastodon-tl-remote-tag-timeline}: View a tag timeline on a remote 
instance.
+@samp{mastodon-tl--remote-tag-timeline}: View a tag timeline on a remote
+instance.
 @end itemize
 
 
 @itemize
 @item
-@samp{mastodon-profile-update-display-name}: Update the display name for your
-account.
-@item
-@samp{mastodon-profile-update-user-profile-note}: Update your bio note.
-@item
-@samp{mastodon-profile-update-meta-fields}: Update your metadata fields.
-@item
-@samp{mastodon-profile--set-default-toot-visibility}: Set the default 
visibility
-for your toots.
-@item
-@samp{mastodon-profile-account-locked-toggle}: Toggle the locked status of your
-account. Locked accounts have to manually approve follow requests.
-@item
-@samp{mastodon-profile-account-discoverable-toggle}: Toggle the discoverable
-status of your account. Non-discoverable accounts are not listed in the
-profile directory.
-@item
-@samp{mastodon-profile-account-bot-toggle}: Toggle whether your account is 
flagged
-as a bot.
-@item
-@samp{mastodon-profile-account-sensitive-toggle}: Toggle whether your posts are
-marked as sensitive (nsfw) by default.
+@samp{mastodon-user-settings}: Launch a transient menu to update various
+account settings.
 @end itemize
 
+@node Notifications
+@subsection Notifications
+
+Mastodon from 4.3 supports grouped notifications. These are implemented by
+@samp{mastodon.el} but disabled by default out of consideration to users on
+instances that don't support them. If you are on an instance that
+implements grouped notifications, set @samp{mastodon-group-notifications} to 
@samp{t} to
+enable them.
+
 @node Customization
 @subsection Customization
 
@@ -644,39 +701,71 @@ Nofitication options:
 @itemize
 @item
 Display user's profile note in follow requests
+@item
+Group notifications
 @end itemize
 @end itemize
 
 @node Commands and variables index
 @subsection Commands and variables index
 
-An index of all user-facing commands and custom variables is available here: 
@uref{mastodon-index.org, mastodon-index.org}.
+An index of all user-facing commands and custom variables is available
+here: @uref{mastodon-index.org, mastodon-index.org}.
 
-You can also hit @samp{?} in any @samp{mastodon.el} buffer to see the 
available bindings, or run @samp{M-X} (upper-case @samp{X}) to view all 
commands in the buffer with completion, and call one.
+You can also hit @samp{?} in any @samp{mastodon.el} buffer to see the available
+bindings, or run @samp{M-X} (upper-case @samp{X}) to view all commands in the 
buffer
+with completion, and call one.
+
+@node Packages related to @samp{mastodonel}
+@subsection Packages related to @samp{mastodon.el}
+
+@enumerate
+@item
+@anchor{Alternative timeline layout}Alternative timeline layout
 
-@node Alternative timeline layout
-@subsection Alternative timeline layout
 
-The incomparable Nicholas Rougier has written an alternative timeline layout
-for @samp{mastodon.el}.
+The incomparable Nicholas Rougier has written an alternative timeline
+layout for @samp{mastodon.el}.
 
 The repo is at @uref{https://github.com/rougier/mastodon-alt, mastodon-alt}.
 
-@node mastodon hydra
-@subsection mastodon hydra
+@item
+@anchor{Org links archive search}Org links, archive search
+
+
+@uref{https://codeberg.org/chrmoe/toot-suite, toot-suite} implements an org 
link type for fediverse posts, and also provides a way to browse an offline 
archive of your account.
+
+@item
+@anchor{Mastodon hydra}Mastodon hydra
+
+
+A user made a hydra for handling basic @samp{mastodon.el} commands. It's
+available at @uref{https://holgerschurig.github.io/en/emacs-mastodon-hydra/}.
+
+@item
+@anchor{Narrow to timeline item}Narrow to timeline item
+
+
+A simple code snippet to enable narrowing to current item in timelines:
+@uref{http://takeonrules.com/2024/10/31/hacking-on-mastodon-emacs-package-to-narrow-viewing/}
 
-A user made a hydra for handling basic mastodon.el commands. It's available at
-@uref{https://holgerschurig.github.io/en/emacs-mastodon-hydra/}.
+@item
+@anchor{Sachac's config goodies}Sachac's config goodies
+
+
+The incomparable sachac has a bunch of @samp{mastodon.el} extensions and 
goodies in their literate config, available here: 
@uref{https://sachachua.com/dotemacs/index.html#mastodon}.
+@end enumerate
 
 @node Live-updating timelines @samp{mastodon-async-mode}
 @subsection Live-updating timelines: @samp{mastodon-async-mode}
 
 (code taken from @uref{https://github.com/alexjgriffith/mastodon-future.el, 
mastodon-future}.)
 
-Works for federated, local, and home timelines and for notifications. It's a
-little touchy, one thing to avoid is trying to load a timeline more than once
-at a time. It can go off the rails a bit, but it's still pretty cool. The
-current maintainer of @samp{mastodon.el} is unable to debug or improve this 
feature.
+Works for federated, local, and home timelines and for notifications. It's
+a little touchy, one thing to avoid is trying to load a timeline more than
+once at a time. It can go off the rails a bit, but it's still pretty cool.
+The current maintainer of @samp{mastodon.el} is unable to debug or improve this
+feature.
 
 To enable, it, add @samp{(require 'mastodon-async)} to your @samp{init.el}. 
Then you can
 view a timeline with one of the commands that begin with
@@ -685,15 +774,15 @@ view a timeline with one of the commands that begin with
 @node Translating toots
 @subsection Translating toots
 
-You can translate toots with @samp{mastodon-toot-translate-toot-text} 
(@samp{a} in a
-timeline). At the moment this requires 
@uref{https://codeberg.org/martianh/lingva.el, lingva.el}, a little interface I 
wrote
-to @uref{https://lingva.ml, lingva.ml}, to be installed to work.
+You can translate toots with @samp{mastodon-toot--translate-toot-text} 
(@samp{a} in a
+timeline). At the moment this requires 
@uref{https://codeberg.org/martianh/lingva.el, lingva.el}, a little interface I
+wrote to @uref{https://lingva.ml, lingva.ml}, to be installed to work.
 
-You could easily modify the simple function to use your Emacs translator of
-choice (@samp{libretrans.el} , @samp{google-translate}, @samp{babel}, 
@samp{go-translate}, etc.), you just
-need to fetch the toot's content with @samp{(mastodon-tl--content toot)} and 
pass it
-to your translator function as its text argument. Here's what
-@samp{mastodon-toot-translate-toot-text} looks like:
+You could easily modify the simple function to use your Emacs translator
+of choice (@samp{libretrans.el} , @samp{google-translate}, @samp{babel}, 
@samp{go-translate}, etc.),
+you just need to fetch the toot's content with @samp{(mastodon-tl--content 
toot)}
+and pass it to your translator function as its text argument. Here's what
+@samp{mastodon-toot--translate-toot-text} looks like:
 
 @lisp
 (defun mastodon-toot-translate-toot-text ()
@@ -709,7 +798,11 @@ to your translator function as its text argument. Here's 
what
 @node Bookmarks and @samp{mastodonel}
 @subsection Bookmarks and @samp{mastodon.el}
 
-@samp{mastodon.el} implements a basic bookmark record and handler. Currently, 
this means that you can bookmark a post item and later load it in thread view. 
This could be expanded to any item with an id, but probably not to things like 
timeline views. If you want to be able to bookmark something, open an issue and 
ask, as it's trivial to expand the bookmarking code.
+@samp{mastodon.el} implements a basic bookmark record and handler. Currently,
+this means that you can bookmark a post item and later load it in thread
+view. This could be expanded to any item with an id, but probably not to
+things like timeline views. If you want to be able to bookmark something,
+open an issue and ask, as it's trivial to expand the bookmarking code.
 
 @node Dependencies
 @section Dependencies
@@ -717,9 +810,11 @@ to your translator function as its text argument. Here's 
what
 Hard dependencies (should all install with @samp{mastodon.el}):
 @itemize
 @item
-@samp{request} (for uploading attachments), 
@uref{https://github.com/tkf/emacs-request, emacs-request}
+@samp{request} (for uploading attachments, 
@uref{https://github.com/tkf/emacs-request, emacs-request})
+@item
+@samp{persist} (for storing some settings across sessions, 
@uref{https://elpa.gnu.org/packages/persist.html, persist})
 @item
-@samp{persist} for storing some settings across sessions
+@samp{tp.el} (for transient menus, @uref{https://codeberg.org/martianh/tp.el, 
tp.el})
 @end itemize
 
 Optional dependencies (install yourself, @samp{mastodon.el} can use them):
@@ -735,7 +830,8 @@ Optional dependencies (install yourself, @samp{mastodon.el} 
can use them):
 @node Network compatibility
 @section Network compatibility
 
-@samp{mastodon.el} should work with ActivityPub servers that implement the 
Mastodon API@.
+@samp{mastodon.el} should work with ActivityPub servers that implement the
+Mastodon API@.
 
 Apart from Mastodon itself, it is currently known to work with:
 @itemize
@@ -745,19 +841,26 @@ Pleroma (@uref{https://pleroma.social/, pleroma.social})
 Akkoma (@uref{https://akkoma.social/, akkoma.social})
 @item
 Gotosocial (@uref{https://gotosocial.org/, gotosocial.org})
+@item
+Sharkey (@uref{https://joinsharkey.org, joinsharkey.org})
 @end itemize
 
-It does not support the non-Mastodon API servers Misskey 
(@uref{https://misskey.io/, misskey.io}), Firefish 
(@uref{https://joinfirefish.org/, joinfirefish.org}, formerly Calkey) and 
Friendica, but it should fully support displaying and interacting with posts 
and users on those platforms.
+It does not support the non-Mastodon API servers Misskey 
(@uref{https://misskey.io/, misskey.io}),
+Firefish (@uref{https://joinfirefish.org/, joinfirefish.org}, formerly Calkey) 
and Friendica, but it should
+fully support displaying and interacting with posts and users on those
+platforms.
 
-If you attempt to use @samp{mastodon.el} with a server and run into problems, 
feel
-free to open an issue.
+If you attempt to use @samp{mastodon.el} with a server and run into problems,
+feel free to open an issue.
 
 @node Contributing
 @section Contributing
 
 PRs, issues, feature requests, and general feedback are very welcome!
 
-If you prefer emailing patches to the process described below, feel free to 
send them on. Ideally they'd be patches that can be applied with @samp{git am}, 
if you want to actually contribute a commit.
+If you prefer emailing patches to the process described below, feel free
+to send them on. Ideally they'd be patches that can be applied with @samp{git
+am}, if you want to actually contribute a commit.
 
 @menu
 * Bug reports::
@@ -772,17 +875,19 @@ If you prefer emailing patches to the process described 
below, feel free to send
 @item
 @samp{mastodon.el} has bugs, as well as lots of room for improvement.
 @item
-I receive very little feedback, so if I don't run into the bug it often 
doesn't get fixed.
+I receive very little feedback, so if I don't run into the bug it often
+doesn't get fixed.
 @item
-If you run into something that seems broken, first try running 
@samp{mastodon.el}
-in emacs with no init file (i.e. @samp{emacs -q} (instructions and code for 
doing
-this are @uref{https://codeberg.org/martianh/mastodon.el/issues/300, here}) to 
see if it also happens independently of your own config
-(it probably does).
+If you run into something that seems broken, first try running
+@samp{mastodon.el} in emacs with no init file (i.e. @samp{emacs -q} 
(instructions and
+code for doing this are 
@uref{https://codeberg.org/martianh/mastodon.el/issues/300, here}) to see if it 
also happens independently
+of your own config (it probably does).
 @item
-Else enable debug on error (@samp{toggle-debug-on-error}), make the bug happen 
again,
-and copy the backtrace that appears.
+Else enable debug on error (@samp{toggle-debug-on-error}), make the bug happen
+again, and copy the backtrace that appears.
 @item
-Open an issue here and explain what is going on. Provide your emacs version 
and what kind of server your account is on.
+Open an issue here and explain what is going on. Provide your emacs
+version and what kind of server your account is on.
 @end enumerate
 
 @node Fixes and features
@@ -796,7 +901,8 @@ Fork the repository and create a branch off of 
@samp{develop}.
 @item
 Run the tests and ensure that your code doesn't break any of them.
 @item
-Create a pull request (to develop) referencing the issue created in step 1.
+Create a pull request (to develop) referencing the issue created in
+step 1.
 @end enumerate
 
 @node Coding style
@@ -804,13 +910,16 @@ Create a pull request (to develop) referencing the issue 
created in step 1.
 
 @itemize
 @item
-This library uses an unconvential double dash (@samp{--}) between file 
namespaces and function names, which contradicts normal Elisp style. This needs 
to be respected until the whole library is changed.
+This library uses an unconvential double dash (@samp{--}) between file
+namespaces and function names, which contradicts normal Elisp style.
+This needs to be respected until the whole library is changed.
 @item
 Use @samp{aggressive-indent-mode} or similar to keep your code indented.
 @item
 Single spaces end sentences in docstrings.
 @item
-There's no need for a blank line after the first docstring line (one is added 
automatically when documentation is displayed).
+There's no need for a blank line after the first docstring line (one is
+added automatically when documentation is displayed).
 @end itemize
 
 @node Supporting @samp{mastodonel}
@@ -818,8 +927,8 @@ There's no need for a blank line after the first docstring 
line (one is added au
 
 If you'd like to support continued development of @samp{mastodon.el}, I accept
 donations via paypal: @uref{https://paypal.me/martianh, paypal.me/martianh}. 
If you would prefer a different
-payment method, please write to me at <mousebot@@disroot.org> and I can
-provide IBAN or other bank account details.
+payment method, please write to me at <mousebot @{at@} disroot.org> and I
+can provide IBAN or other bank account details.
 
 I don't have a tech worker's income, so even a small tip would help out.
 
@@ -843,8 +952,8 @@ Some significant contributors are:
 @uref{https://codeberg.org/Red_Starfish}
 @end itemize
 
-@node screenshots
-@section screenshots
+@node Screenshots
+@section Screenshots
 
 Here's a (federated) timeline:
 
@@ -854,12 +963,14 @@ Here's a notifcations view plus a compose buffer:
 
 @image{screenshot-notifs+compose,,,,png}
 
-Here's a user settings transient (active values green, current server values 
commented and, if a boolean, underlined):
+Here's a user settings transient (active values green, current server
+values commented and, if a boolean, underlined):
 
 @image{screenshot-transient-1,,,,jpg}
 
-Here's a user profile fields transient (changed fields green, current server 
values commented):
+Here's a user profile fields transient (changed fields green, current
+server values commented):
 
 @image{screenshot-transient-2,,,,jpg}
 
-@bye
\ No newline at end of file
+@bye

Reply via email to