Code grabbing has been slightly refactored to always check for the
existence of the qutebrowser fifo before sending anything.
Translate has been fixed up a little to use lingva for selection
translations, only falling back to google translate for complete page
translations since I do not think any other services support this for
now.
Now possibly a little less clunky (though still using soon-to-be
deprecated modules), and able to correctly surf gemini/non-gemini pages
as a userscript or as a stand-alone script (simply calling it from
command line).
Works as before for tabbed pages (the clunky rename/symlink way).
Can now also be used as the default way to surf to links so I switched
out my qutebrowser f/F link hinting for this script. Will simply open
links if staying on http but open gemini version as local file if moving
on to gemini.
Could probably be rewritten as an actual plugin to interject itself in
link opening to be a little more elegant (similar to the redirect code I
have running to move to open source web frontends).
Both bookmarkers can now either send the current page ("s for sending to
shaarli; "w to send to wallabag) or send any link on the current page
(;s for shaarli, ;w for wallabag).
Both have been adapted to the same format, both can be sent a link as an
argument as well (./wallabag_add.sh 'myawesome.blog/entry').
Moved the qutebrowser userscript to open recently downloaded files
to be accessible as a normal shell script as well
(`recently-downloaded`).
Mapped this to Super+Shift+D in riverwm to be easily able to open
the most recent downloads from anywhere.
Double the default lines shown to 20.
Blocked hosts reside in a single (giant) plaintext file, which we
now remove from the repository.
Especially with the new blocking sources we grew from around 700k
(which was already a lot at ~35000 lines) to around 5MB which is
just stupid to keep in the git repo if we don't have to.
Since qutebrowser automatically re-creates the file for us on
running `:adblock-update` there's no reason to waste space here.
Micro is out, I have actually never used the editor after first install.
Tectonic is in, a wonderful platform to process LaTeX files with.
Beets gets the plugins I am using injected through pipx.
Vale is out, if we need it on a system we install with nvim mason.
Pipewire-roc is in, wonderful way to stream audio in local networks.
Added simple merge conflict highlighting and resolution through
git-conflict.nvim plugin.
Allows moving to the next/prev conflict with ]x or [x respectively,
then resolving the conflict currently hovered by using ours/theirs/
both/or neither of the offered options (with `ho/hO/hm/hM`
respectively).
Enabled bracketed module of mini.nvim plugin, which enables many
(many!) more bracket jumping options. Some examples are moving
through the bufferlist, comments, files, jumplist, etc with [
and ]. Integrated into whichkey through pre-defined 'desc'
options for each mapping.
Default the option to disable on formatting on save, but add new
key mapping to toggle it on (`<leader>sa`) and off. Still
the remaining issue of files always being 'unsaved' state when
using formatting on save, but this allows quicker toggling for
now.
Removed the test-if-it-exists create-if-not cycle of manual xdg
intervention on every shell startup since it created mostly nothing but
problems so far.
It especially gets in the way of creating network filesystem mappings in
the home folder with hangups, freezes, and blocking automounts whenever
a new shell session is opened.
Added simple highlighting plugin for prose headlines (and code
snippets). Will highlight the whole line a little from the
background and provide more space around it so it stands out.
Currently works (afaik) for markdown, rmd, norg filetypes.
Move from simrats symbols outline which worked very well but had
specific issues for displaying markdown outlines as soon as any
lsp would attach itself to the same buffer.
Aerial seems to not suffer from those issues so this is the one
we will go with for now.
If a locally compiled version of viu exists it will use this for
full image preview display (full-color image). If it does not
exist it will instead fall back to the system viu and use
block-wise display for the preview. Location that local viu is
expected is `~/.local/bin/viu`.
The reason behind this is a bug (or at least unwanted
functionality) in viu which makes it not work correctly from
within vifm. You will have to fix this issue and compile a local
version of viu which vifm assumes to be in the local binary
directory and uses to display the pretty images.
When copying the recent buffer into an editor for copying/editing/doing
whatever with, we should copy *logical* lines since that is generally
what we want to be working with instead of arbitrary line-breaks.
Wezterm helpfully provides us this possibility (thanks, Wez!).
If tracking stable (versioned) releases, it can get out of sync
with LSPs and display errors on startup - since the stable
version gets updated very rarely (over half a year ago currently)
but LSPs and their configs change more rapidly. Since the master
branch seems stable enough we will simply track this instead
for now.
With the new lazy loaded plugin structure, Magma would not start correctly.
This commit simply removes the lazy designation for Magma, Quarto and the
Jupyter attachments.
It also uses the python environment detection utility to set the correct
python executable on entering a quarto file (if there exists a virtual
environment for the project).
Simplified the view mapping (`w`) to not 'enter' the view window that is
opened by default.
What happened previously is that pressing the mapping
would open the view pane (or create a vertical/horizontal split and then
open the view pane within it if only one pane is visible) and then move
the cursor into it so that you can scroll within.
The issue was that to close the view pane again, one had to exit it
first (through `Shift+w`) which really hurt the quick-glance into a file
and then move on kind of workflow I mostly use previews for.
This commit simplifies the view mapping to allow exactly that, pressing
`w` still does all the things it did previously, only does not move
focus into the preview window so keeps the workflow simpler.
When writing a markdown or similar document, vale will automatically
be enabled if there is a '.vale.ini' or '_vale.ini' file (and a
corresponding styles folder) in the project root directory.
Otherwise, vale stays disabled.
The plugin was not loading since lazyloading was not given an event
to start it with. Now, anytime any zk command is given, or we enter
a prose-like filetype the plugin is sourced.
The zk lsp on the other hand was started twice whenever the plugin
was loaded, since we also loaded it through the lspconfig manually.
This commit fixes both issues by sourcing and plugin and letting the
plugin load the lsp as well.
Letter creates a letter ready to be sent (in official
German DIN accepted format).
Resume allows creation of a CV by providing a few
quality of life setups.
The utility terminals (lazygit and python repl for now) can now be hidden
even from terminal insert mode (i.e. when interacting with them) with
<C-\>. They can be invoked through their usual chords (<leader>tg and
<leader>tp respectively) again and will pick right up where you left off.
Insert mode in terminals can also be left slightly easier should it
be needed: Instead of the <C-\><C-n> chord you can use j\.
Lastly, the utility terminals can be started in a vertically docked mode
instead of floating. This is done by adding a bang to their commands,
`Lazygit!` and `Pythonterm!`, or using capital versions of their
mappings: <leader>tG and <leader>tP.
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 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.