A Matrix client for GNU Emacs
GPL-3.0 License
Bot releases are hidden (Show)
Additions
Configurable emoji picker for sending reactions. (#199, #201. Thanks to Omar Antolín Camarena.): - Option ement-room-reaction-picker
sets the default picker. Within that, the user may press C-g
to choose a different one with a key bound in ement-room-reaction-map
.
A variety of enhancements for using compose buffers. (#140. Thanks to Phil Sainty.): Chiefly, messages can now be composed in small windows below room windows, rather than in the minibuffer or a full-sized window. A variety of options and commands are available related to these features. See compose buffer enhancements.
Global minor mode ement-room-self-insert-mode
enables "just typing" to start a message. (Thanks to Phil Sainty.): See ement-room-self-insert-mode.
Options affecting how images are displayed in room buffers.: See image display.
Changes
dabbrev
will prioritise firstly the associated room, and secondly all other rooms, before looking to other buffers for completions. (Thanks to Phil Sainty.)ement-room-message-history
rather than the kill-ring. (Thanks to Phil Sainty.)ement-room-mode-map
now have named labels in which-key
and similar. (Thanks to Phil Sainty.)ement-room-use-variable-pitch
(previously named ement-room-shr-use-fonts
) enables variable-pitch fonts for all message types. (This option previously supported formatted messages, but now works for plain text messages as well.) Note: users who have customized the ement-room-message-text
face to be variable-pitch should revert that change, as it causes problems for formatted messages, and is no longer necessary. (#174. Thanks to Phil Sainty.)Fixes
ement-room-message-format-spec
are considered when calculating the wrap-prefix. (Thanks to Phil Sainty.)ement-room-list-direct
(now correctly bold in room list heading).ement-room-compose-buffer-display-action
declares how and where a new compose buffer window should be displayed. (By default, in a new window below the associated room buffer.)ement-room-compose-buffer-window-dedicated
determines whether compose buffers will have dedicated windows.ement-room-compose-buffer-window-auto-height
causes dynamic scaling of the compose buffer window height so that the full message is visible at all times.ement-room-compose-buffer-window-auto-height-min
specifies the minimum window height when ement-room-compose-buffer-window-auto-height
is enabled.ement-room-compose-buffer-window-auto-height-max
specifies the maximum window height when ement-room-compose-buffer-window-auto-height
is enabled.ement-room-compose-method
chooses between minibuffer-centric or compose-buffer-centric behaviour.ement-room-dispatch-new-message
starts writing a new message using your chosen ement-room-compose-method
. (Bound to RET
in room buffers.)ement-room-dispatch-new-message-alt
starts writing a new message using the alternative method. (Bound to M-RET
in room buffers.)ement-room-dispatch-edit-message
edits a message using your chosen ement-room-compose-method
. (Bound to <insert>
in room buffers.)ement-room-dispatch-reply-to-message
replies to a message using your chosen ement-room-compose-method
. (Bound to S-<return>
in room buffers.)ement-room-compose-edit
edits a message using a compose buffer.ement-room-compose-reply
replies to a message using a compose buffer.ement-room-compose-send-direct
sends a message directly from a compose buffer (without the minibuffer). (Bound to C-x C-s
in compose buffers.)ement-room-compose-abort
kills the compose buffer and delete its window. (Bound to C-c C-k
in compose buffers.)ement-room-compose-abort-no-history
does the same without adding to ement-room-message-history
. (Equivalent to C-u C-c C-k
.)ement-room-compose-history-prev-message
cycles backwards through ement-room-message-history
. (Bound to M-p
in compose buffers.)ement-room-compose-history-next-message
cycles forwards through ement-room-message-history
. (Bound to M-n
in compose buffers.)ement-room-compose-history-isearch-backward
initiates an isearch through ement-room-message-history
. (Bound to M-r
in compose buffers; continue searching with C-r
or C-s
.)ement-room-compose-history-isearch-backward-regexp
initiates a regexp isearch through ement-room-message-history
. (Bound to C-M-r
in compose buffers; continue searching with C-r
or C-s
.)ement-room-self-insert-mode
ement-room-self-insert-commands
determines which commands will start a new message when ement-room-self-insert-mode
is enabled (defaulting to self-insert-command
and yank
).ement-room-self-insert-chars
determines which typed characters will start a new message when ement-room-self-insert-mode
is enabled (regardless of whether they are bound to self-insert-command
).ement-room-mode-map-prefix-key
defines a prefix key for accessing the full ement-room-mode-map
when ement-room-self-insert-mode
is enabled. (By default this key is DEL
.)ement-room-image-margin
is the number of pixels of margin around image thumbnails.ement-room-image-relief
is the number of pixels of shadow rectangle around image thumbnails.ement-room-image-thumbnail-height
is the window body height multiple to use when toggling full-sized images to thumbnails (by default, 0.2).ement-room-image-thumbnail-height-min
is the minimum pixel height for thumbnail images (by default, 30 pixels).Additions
ement-room-list
.ement-room-list-space-prefix
is applied to space names in the room list (e.g. set to empty string for cleaner appearance).ement-room-reaction-names-limit
sets how many senders of a reaction are shown in the buffer (more than that many are shown in the tooltip).Changes
TAB
/ BACKTAB
to move between links in room and like buffers. (#113. Thanks to Eric S. Fraga for suggesting.)Fixes
ement-room-send-reaction
checks for an event at point. (Thanks to Phil Sainty.)Additions
end-of-buffer
is bound to N
in room buffers.Changes
ement-room-image-show
use frame parameters to maximize the frame, making it easier for users to override. (#223. Thanks to Nicholas Vollmer.)Fixes
ement-room-flush-colors
maintains point position.Additions
ement-notifications
shows recent notifications, similar to the pane in the Element client. (This new command fetches recent notifications from the server and allows scrolling up to retrieve older ones. Newly received notifications, as configured in the ement-notify
options, are displayed in the same buffer. This functionality will be consolidated in the future.)ement-room-quote
, applied to quoted parts of replies.Changes
ement-room-goto-next
and ement-room-goto-prev
work more usefully at the end of a room buffer. (Now pressing n
on the last event moves point to the end of the buffer so it will scroll automatically for new messages, and then pressing p
skips over any read marker to the last event.)ement-room-goto-next
and ement-room-goto-prev
are bound to n
and p
, respectively.ement-room-goto-fully-read-marker
is bound to M-g M-p
(the mnemonic being "go to previously read").ement-room
buffers and ement-connect
user ID prompts use separate history list variables.Fixes
savehist-mode
's serializing of the command-history
variable's arguments. (For ement-
commands, that may include large data structures, like ement-session
structs, which should never be serialized or reused, and savehist
's doing so could cause noticeable delays for users who enabled it). (See #216. Thanks to Phil Sainty and other users who helped to discover this problem.)Additions
ement-room-image-show
and ement-room-image-scale
(bound to RET
and M-RET
when point is at an image) view and scale images. (Thanks to Steven Allen for these and other image-related improvements.)ement-room-image-show-mouse
is used to show an image with the mouse.Changes
image-mode
when showing images in a new buffer. (Thanks to Steven Allen.)ement-room-image-show
is not used for mouse events.Fixes
ement-room-list-next-unread
could enter an infinite loop. (Thanks to Visuwesh and @mrtnmrtn:matrix.org
.)Internal
ement-read-receipt-idle-timer
could be duplicated when using multiple sessions. (#196. Thanks to Phil Sainty.)Published by alphapapa over 1 year ago
Security Fixes
.gpg
), if the recipient's private key or the symmetric encryption key were cached by Emacs (or a configured agent, like gpg-agent
), Emacs would automatically decrypt the file while reading its contents and then upload the decrypted contents. (This happened because the function insert-file-contents
was used, which does many things automatically, some of which are not even mentioned in its docstring; refer to its entry in the Elisp Info manual for details. The fix is to use insert-file-contents-literally
instead.) Thanks to @welkinsl:matrix.org
for reporting.Additions
m
in room buffers to ement-room-mark-read
(which moves read markers to point).Changes
ement-view-space
(which shows a directory of rooms in the space) instead of ement-view-room
(which shows events in the space, which is generally not useful).ement-view-room
, when used for a space, shows a footer explaining that the buffer is showing a space rather than a normal room, with a button to call ement-view-space
for it (which lists rooms in the space).ement-describe-room
shows whether a room is a space or a normal room.ement-view-space
shows the space's name and alias.ement-room-scroll-up-mark-read
moves the fully read marker to the top of the window (when the marker's position is within the range of known events), rather than only moving it when at the end of the buffer. (This eases the process of gradually reading a long backlog of messages.)Fixes
ement-room-list-mode
when room list buffer is refreshed. (#146. Thanks to Ted Reed for reporting.)@welkinsl:matrix.org
for reporting.Published by alphapapa over 1 year ago
Additions
ement-room-timestamp-header-align
controls how timestamp headers are aligned in room buffers.ement-room-view-hook
runs functions when ement-room-view
is called. (By default, it refreshes the room list buffer.)Changes
ement-room-timestamp-header-align
, timestamp headers default to right-aligned. (With default settings, this keeps them near message timestamps and makes for a cleaner appearance.)Fixes
ement-room-list
when no rooms are joined. (Fixes https://github.com/alphapapa/ement.el/issues/123. Thanks to @Kabouik and Omar Antolín Camarena for reporting.)Additions
ement-create-space
creates a new space.ement-room-toggle-space
toggles a room's membership in a space (a way to group rooms in Matrix).ement-room-list-kill-buffer
kills a room's buffer from the room list.device_id
and initial_device_display_name
upon login (e.g. Ement.el: username@hostname
). (#134. Thanks to Arto Jantunen for reporting.)Changes
ement-room-list
reuses an existing window showing the room list when possible. (#131. Thanks to Jeff Bowman for suggesting.)ement-tag-room
toggles tags (rather than adding by default and removing when called with a prefix).Fixes
ement-leave-room
and ement-forget-room
.