# This is the 1st commit message:
nvim: Restructure lua dir
Moved plugins into individual component module files which are
automatically required by lazy.nvim. Should make everything a tiny bit
more modular, or at least prepare the way for true modularity if I ever
have the time on my hands to ensure everything works with missing
modules.
Moved core settings into their own directory (`core`), and created a
`personal` folder which contains functions/plugins I wrote that do not
necessarily have to be their own imported plugin yet.
Finally, extended the utility functions a little, so we can detect if a
plugin exists and change e.g. key maps based on that (once again,
extending modularity a little more). Some simple attempts have been made
at that in the `mappings.lua` file, though it is nowhere near extensive
yet - most keymaps are still set regardless of plugin availability.
However, with this slimmer base to work off of, I feel more confident in
changing future things about this setup a little more ad-hoc without
having as many ripple repercussions as before.
# This is the commit message #2:
Update settings file with 0.9 options
# This is the commit message #3:
Move lazy.nvim setup into core module
# This is the commit message #4:
Rename maps.lua to mappings.lua
Formatting and linting should from now be done with null_ls instead
of formatter.nvim (and nothing for linting so far).
This will still take a little to fully transition, for now we use
null_ls for eslint linting and prettier formatting for a variety
of javascript/typescript and astro files.
null_ls uses Mason installations under the hood and any tool it
uses also gets installed by Mason.
Packages managed through pipx (and pipx itself) are now also
installed in the initial process. They are marked as coming
from 'P' source in the package TSV. There is a special field
for these packages which declares any injections made by pipx
which will also automatically get injected into the pipx
environment on installation.
Switched the calls for the term variable mappings (opening
term, floating term, calculator, and so on) to make use of
the pretty much standard 'terminal -e' invocation to start
the terminal and execute something within it.
This newly works for wezterm since any release after
2022-12-26, which are now also on the Arch repositories
and will make the river init a tiny bit more portable
whenever wanting to switch to a different terminal.
Quick fix to show difference in committed and installed
packages in the commit editor window again.
Due to Arch moving the base-devel package from a group
to a meta-package we can not just remove all packages
that are in the group anymore - it will simply error
out instead. This removes the check and thus provides
a quick and dirty fix for the time being.
Removed long overdue unclutter package which is used on
X11 but we switched to wayland around two years ago
now. For this setup, the river window manager takes
care of hiding and showing the mouse pointer.
Automatic completion from full-text search was draining battery and generally not too helpful.
Disabled (commented) for now, can be re-enabled more specifically.
Scribe links are often not redirected correctly if belonging to medium's
'global-identity' redirections. This is a first attempt at fixing those
by removing the superfluous string from the scribe URL.
Generalized enough to work as a 'post-processing' function for the
redirection plugin, which can be set up by pointing the 'postprocess'
key of a page entry to a callable object (most likely a function).
Updated key mappings to use `,` as the 'local-prefix' (or 'macro-prefix') which
allows easier setup for an additional functionality layer.
Also make `dd` the standard way to delete a whole sub-thread instead of
single mail by single mail of a conversation. That functionality can now
be achieved with `dD` instead, while `dd` removes a whole thread (not
just sub-thread).
Added a window entry on the bar for the currently displayed window. If
it annoys me I will delete it again but it helps distinguish the active
and the inactive output.
Also added the current river *mode* which is a lovely feature to have,
though I would like to hide it if no mode (other than normal) is
currently active.
Notations will be concealed automatically on entering a textual buffer
and `$...$` style notations are contained.
Concealing can be turned off with <localleader>sV, which will toggle
concealing on or off for all notations in the file.
Additionally, the notation under curser can be viewed in a popup with
<localleader>sv.
In addition to my standard file manager, vifm, being integrated into
neovim, I have now also added a side-pane file tree (akin to nerdtree)
that is easily reachable to get a quick overview of a file layout.
For now, I do not intend to do much more with the plugin, only keep it
for those rare cases I want to have a view on my file layout at the same
time as working in a buffer. For all other things (file operations
especially) I still have vifm.
My (un-branded) usb mouse prevented the system from going into
suspend/hibernation by sending intermittent wakeup signals.
This system configuration option simply disables the device from sending
those wakeup signals. Used with superuser stow installation method.
Set up wezterm to continue to use Iosevka for everything *except*
italics (in all weights) which will instead be displayed by the Victor
font.
This ultimately results in cursive fonts for italics and Iosevka for
everything else, very pretty.
Added fidget plugin which shows the current loading status of LSPs. Only
works for a few LSP (so far), including lua and python. Should
automatically pick up new implementations on update. Will display a
small loading notification in the lower right corner, useful to display
status for those situations where LSP loading takes a long time (e.g.
rust compilation requirements or a large python environment).
FIXME Does not work for each python environment startup yet, and I am
not sure why - sometimes just does not display its loading startup.
When completing in command line I want the completion canditates to be
displayed, but *not* selected on confirmation. By doing so, it makes it
almost impossible to quickly quit with ':q' or write with ':w' for
example, as those always try to expand themselves automatically into
completion items.
This commit changes the default behavior for command mode to show
completions but not auto accept any on confirmation, instead simply
invoking whatever is currently on the command line (as if we had no
completion plugin running).
Whereas previously we had lsp-related mappings both on <localleader>l...
and g... mappings, they are now all unified under the <localleader>l
prefix group. Some mnemonics unfortunately had to give way to a weaker
version of themselves (definition becomes de[f]inition, implementation
becomes i[m]plementation) but overall I believe this to be much more
cohesive for my future lsp usage. With which-key enabled and everything
under the +l group we should be able to easily adapt to the new
mappings.
Additionally, some mappings will invoke the telescope version of their
lsp command if telescope is indeed installed, otherwise fall back to the
native neovim lsp implementation.