Implements a periodically updated telephone-line segment that displays
the current unread count for the two most important inboxes in the
mode-line, if there are unread mails.
Telephone line has a slightly easier to configure segment system. This
commit also uses the commit introduced in the previous function to
conditionally display miscellaneous modeline information in the last
window of a frame.
More configuration for this will come over time.
Adds a function that can be used to check whether the current buffer
is displayed in the "last" window of the active frame.
The intention is to use this predicate to modify the modeline display
to only show miscellaneous information (time, battery percentage etc.)
on the last window instead of duplicating it.
Ivy's regex-based fuzzy matching can occasionally be slow, which was
getting on my nerves.
This switches the completion engine to prescient[1] which promises to
be faster. Experimental testing in large files like the
`configuration.nix` man page looks promissing.
[1]: https://github.com/raxod502/prescient.el
These packages are not in nixpkgs yet (will most likely be added after
the next MELPA import), so they're added here manually.
As both originate from the same source they're added to the same
derivation here by using a custom recipe.
This moves my email configuration into NixOS, including the following
features:
1. Replaced the NixOS-builtin offlineimap user service with a custom
one that runs notmuch-indexing as part of the systemd unit instead
of a postsynchook, which is significantly more reliable.
2. Adds configuration for notmuch and its tagging.
3. Adds configuration for OfflineIMAP & MSMTP.
Relevant emacs configuration has also been added to my emacs.d
repository.
This is required in order to let password lookups work correctly when
shelling out to password-store from MSMTP, as it won't be calling
pinentry correctly otherwise.
The default `ivy-pass` function shells out to `pass` in such a way
that using pinentry with emacs doesn't work, causing EXWM to freeze
until `C-g` is hit, after which the password entry buffer pops up.
That was very inconvenient - however, the new auth-source integration
with pass works correctly and this commit introduces a new function
and bindings for using the same functionality as before but doing the
actual password-reading via auth-source.
LSP-mode in combination with the Rust language server does not really
work as RLS is extremely unstable.
This switches over to eglot, which automatically restarts RLS after
every crash. From initial testing it seems to be slightly less
annoying than the previous setup.
Last attempt to at least work around
https://github.com/ch11ng/exwm/issues/425 on one of my machines before
reverting to an old EXWM version.
If the randr module is responsible for this issue it will probably
still occur on the laptop and I'll eventually downgrade, but it may be
a clue for debugging it at some point in the future.