Smex has not been updated since late 2015. Amx was originally a fork of
smex, but as since evolved much further into it's own thing.
Among other things is supports other completing backends, and ivy with
it's fuzzy matching feels rather nice. I'm keeping ido-mode for
everything else, but specifically for M-x I'll give ivy a try.
Recent Emacs 27 builds use the native macOS fullscreen for the first
10-20 seconds after startup when `ns-use-native-fullscreen` is set to
nil during startup.
So instead of forcing emacs into fullscreen, just force maximize the
window on startup instead.
With my shell setup cleaned up so all environment variables are set in
`~/.zshenv`, and all the slower interactive shell setup in `~/.zshrc`,
we can no remove the `-i` flag from exec-path-from-shell's setup,
leading to a much faster setup time.
Also load additional environment variables, and also set
`temporary-file-directory` to match the `TMPDIR` environment variable.
Due to the value being set not ending with a slash, auto-save files were
being stores in `~/.emacs.d/cache` instead of
`~/.emacs.d/cache/autosave`.
The fix was to add a slash at the end, and also to ensure the directory
exists.
And get rid of:
- dash, doesn't need to be, packages which depend on it, should have it
listed as a dependency
- smart-mode-line, don't need it anymore as I use the doom-modeline
package to stylize the modeline.
I've been using doom-themes' doom-vibrant for long enough now that I'm
certain I won't be moving away from it anytime soon. So let's simplify
and strip away all other theme setup stuff.
It seems to cause very long freezes within magit itself, especially when
trying to commit. It seems to that the git diff command that's run in
the background hangs and/or takes a very long time to complete for some
reason.
Manually killing those git processes let's magit wake up instantly
again, in htop they're listed as:
git --no-pager diff --no-color -U0 <Git SHA of HEAD>
As I don't see myself using tabs all the time, but potentially wanting
access to them every now and then, I need to manually trigger one of the
tab / tab-group switching keybindings, or M-x centaur-tabs-mode to load
and enable it.
Ever since I started using persp-mode, launching Emacs in a terminal has
made it restore the same set of open files as in my main GUI instance of
Emacs. This hasn't been a big deal, but still somewhat annoying.
I've finally gotten around to disabling persp-mode's auto save/load
feature when running Emacs in a terminal.
And for good measure, I also set the theme to be doom-vibrant in the
terminal too. My old tomorrow-night-paradise is way out of date, and
nowhere near as good as doom-vibrant.
The undo history feature of undo-tree has been very unreliable lately,
to the point it fails to load undo history for nearly every file.
It seems the undohist package is a lot more reliable.
This module wraps around the fill-column-indicator and it's
fci-mode. This will enable easy switch-over to Emacs 27's native
display-fill-column-indicator feature.
Also create a new siren-display-line-numbers module and function that's
responsible for turning on the display of line numbers. Future changes
to how line numbers are displayed can now be done in a single place.
There are a few major modes which are not based on prog-mode, that I
want to behave like prog-mode. Previously each did nearly all the same
setup that's done via the prog-mode hooks. Now instead let's actually
run runs the hooks for prog-mode.
- Switch from highlight-indentation package to highlight-indent-guides.
- Activate visual indentation in a prog-mode hook, rather than doing
within each individual major mode. It was already done within all
major modes based on prog-mode anyway.
- Add new siren-display-indetation module and function as a central way
to enable visual indetation guides. This makes switching the
underlying package at some point in the future much easier.
The core setup files for Emacs Siren which lives in the core directory
followed a `siren-*.el` naming convention, which is the same as the
naming convention for modules.
This means that the `modules/core/siren-packages.el` module for adding
packages for Emacs package development, was not being loaded due to it's
name conflicting with `core/siren-packages.el` which sets up and
configures the packaging system.
So all files under the root `core` directory now follow a
`siren-core-*.el` naming scheme, meaning modules should no longer
conflict with core files.
Changed up package-archive setup again, this time we just hard-code all
the archive sources, rather than do fancy detection of if we can use
HTTPS or not.
Also we're throwing MELPA Stable into the mix, and giving it higher
priority than regular MELPA. The idea is to try to typically install
stable packages, but fall-back onto the regular MELPA source if there is
no stable version of it.
First impressions with a clean re-install of all packages is
promising. Time will tell if I have any issues.