Commit graph

1527 commits

Author SHA1 Message Date
fae2d85cca
nvim: Fix crash on no python venv available 2024-06-16 22:30:11 +02:00
fa1db974f0
nvim: Update plugins 2024-06-16 21:38:05 +02:00
ebee0042d8
nvim: Fix correct workspace propagation for python env 2024-06-16 21:36:58 +02:00
b2c64a0925
nvim: Allow pasting images into markup files
With the new `img-clip.nvim` extension we can copy any image anywhere
and simply paste it into a markdown/quarto/latex/typst/... document with
the right markup already.

Those can be from the web/locally. Also allows drag and drop from e.g.
web pages.

Mapped to `<leader>pp` currently, though we will have to find a better
mapping. Or invoked with `:ImagePaste`.
2024-06-16 21:36:57 +02:00
3b1a874883
nvim: Open ipynb files as quarto files
We can now open any ipynb file as if it were a quarto document by
leveraging the `jupytext.nvim` extension which works in the background
to convert everything. Will only work if `jupytext` program is actually
installed on the machine.

Allows normal editing of the file and will write any changes back to the
original notebook on save and exit!
2024-06-16 21:36:57 +02:00
4d8cc4d2af
nvim: Add FeMaco codecell edit mapping
Added mapping to quickly edit any code cell in FeMaco, an extra buffer
which brings lsp functionality and similar with it. Can be used as a
fallback if otter.nvim is not working for the buffer, or when working on
a buffer which otter.nvim does not understand.
2024-06-16 21:36:56 +02:00
0ec49583bd
nvim: Set up image.nvim image display
Finally got image.nvim fully working on wezterm with the kitty backend
and auto-installed rock dependencies.
2024-06-16 21:36:55 +02:00
e25aedd94b
nvim: Set up molten for interactive python repl
Set it up with extended options and keymaps. Will use an image provider
if it has been set externally (usually set by the 'image.nvim' setup
routine) or fall back to use the `wezterm.nvim` plugin to display it in
a wezterm pane. This display can be a little buggy so we should prefer
others.
2024-06-16 21:36:54 +02:00
63dc6fb888
nvim: Set up quarto for interactive python work 2024-06-16 21:36:53 +02:00
849489afd6
nvim: Move mini.bracketed comment to k suffix
Moved the mini bracketed comment following to use the ]k [k suffix. I am
not sure if this is completely taking since every now and again it seems
to still be overriding my own configured mapping.
2024-06-16 17:42:48 +02:00
9dcd2f3d48
nvim: Add direct python env set utility function
Added a simple 'set python environment' function to directly set the
correct python binary and update the PATH for python.
2024-06-16 17:41:18 +02:00
0bac43eb91
nvim: Split python venv fetching into multiple
Now we can either fetch the python venv basefolder
(`require('core.util').get_python_venv_basefolder()`) or specifically
the python binary contained within (`.get_python_bin()`).

Additionally, the venv result should be cached for the duration of using
nvim so that we only have to fetch it once, regardless of how many
modules require it.
2024-06-16 17:37:54 +02:00
4f5445cc0e
nvim: Add function to cleanly unmap keys
Removes them from being active in vim as well as removing them from
being displayed in which-key.

Unfortunately the which-key implementation still seems broken, sometimes
removing them sometimes leaving them as-is.
2024-06-16 16:40:10 +02:00
3e13941eae
nvim: Add mappings for inspecting treesitter
Simply invokes the `:Inspect` and `:InspectTree` commands, to have
quicker access, especially while tinkering with TS for the foreseeable
future.
2024-06-15 19:26:42 +02:00
a746e35d26
nvim: Fix vn note index opening sh alias
Since we do not make use of my own zettelkasten plugin anymore, this
commit is a quick fix to reinstate the functionality of the `vn` alias
in the shell opening the note index.
An issue is that there is now no dedicated function to show or open the
index, so we have to make do with a hardcoded path. Perhaps at some
point I will get around to fixing that issue but until then I am fine
with it just working again.
2024-06-14 22:48:53 +02:00
f05e2e11e1
nvim: Fix zk note creation mappings
Mappings to create a note with its content or title from the current
selection now work correctly.
2024-06-14 22:08:55 +02:00
dc465bb39a
nvim: Add mapping to show notification history
Added the `<leader>sh` (show history) mapping to display the recent
history of messages sent to notify. Uses fidget.nvim to accomplish this.
2024-06-14 22:08:12 +02:00
7761018507
task: Change taskrc includes to absolute paths
In preparation for integrating bugwarrior into these dotfiles I am
changing the taskwarrior include options to absolute paths (though still
retaining the `~` home shortcut).

This seems necessary as bugwarrior, both in its current 1.8.0 and its
git HEAD version, just absolutely refuses to run when the includes are
relative to the taskrc file. A little sad but not too bad overall since
the taskrc in these dotfiles will always live in the XDG_CONFIG_HOME
directory anyway.
2024-06-14 22:07:17 +02:00
8f679d0b1a
nvim: Disable flash.nvim in search mode
Hopefully definitively disabled the search mode for the flash.nvim
plugin. Previously only disabled the key mapping but it would still run
every now and again.
2024-06-14 22:02:47 +02:00
670057d543
river: Fix variable quoting 2024-06-14 22:01:56 +02:00
38c85d6de0
papis: Small variable fix to papis-reload script 2024-06-14 21:54:48 +02:00
a7b4e16f66
task: Add bugwarrior gitbug uda settings
Added settings for bugwarrior to import gitbug repository issues as
tasks into taskwarrior. This is still very experimental and I have to
continue hacking on it to arrive somewhere that is useful for me.
2024-06-13 16:57:34 +02:00
107a07693e
flavours: Fix zathura colorscheme file naming
In preparation for at some point leaving flavours in favour of tinty
(since flavours is not maintained anymore), started preparing a rough
translation of the config file for the new program. One of the things I
changed (to make more semantic sense) is the zathura colorscheme file
name.
2024-06-13 16:57:34 +02:00
d2499664cd
khard: Update to new vcard dir layout
After cleaning my personal contacts, I changed the layout of my vdir
synchronization. This updates it to the new format.
2024-06-13 16:34:50 +02:00
a665648b1e
nvim: Update plugins and lazy loading events 2024-06-13 16:33:33 +02:00
d1ef6584f1
river: Refactor layout engine definition
Since we can dynamically define and spawn layout engines this commit
changes the riverwm config file setup in a way that makes it possible to
change the layout engine with a single variable instead of all
throughout the file (variable extraction).
2024-06-13 16:32:15 +02:00
5cb4231fe9
dotter: Add vimiv to templated files 2024-06-13 10:26:26 +02:00
6e9056d5ca
vimiv: Add basic configuration 2024-06-13 10:21:38 +02:00
d0a2853bf2
flavours: Add fzf styling
Added styling for fzf using the base16 schemes. Currently applies only
on newly opened shell environments but that's good enough for me.
2024-06-13 10:20:40 +02:00
6d82162f16
nvim: Switch basic file editor to mini.files
While we can still reach vifm through the `<leader>E` mapping, the basic
`<leader>e` file editor mapping has been switched over to the mini.files
browser.
It works somewhat like oil.nvim, in that you simply get a buffer to work
with that you can delete/move/copy/rename lines in and after doing a
synchronization (with `=`) all changes are actually applied to the
files.
Since I mostly need the quick file opening to do some quick renaming
operation or want to open an adjacent file this seems like the quickest
and most painless option to do so. For larger operations I still have
access to the full vifm experience.
2024-06-07 11:08:56 +02:00
4f67a6d3ca
nvim: Fix which-key conditional usage if not loaded
The only left-over which-key invocation which did not check for its
existence beforehand.
2024-06-07 09:56:55 +02:00
57f2fbd5fe
nvim: Replace vim-easy-align with mini module
Mini.nvim now also comes with an align module which perfectly mimics
the behavior of my beloved junegunn vim-easy-align plugin. It is almost
sad to see such an old friend go, but ultimately it removes a redundant
plugin and switches the setup ever so slightly more towards being lua
based.
The mini module also allows more advanced lua-based modifier pattern
shenanigans but so far I don't need any of the advanced stuff: I just
need a quick way to align markdown tables and similar, and this one does
exactly the same as before, only with a couple nice additional options
and previews. It still uses the same key chord `ga<where>` but also
offers `gA<where>` which apparently comes with a nicer preview. My
fingers will probably stick to the former for the time being.

One thing that changes is that, by default, it will align *all*
separators not just the first instance on each line. To mimic the old
behavior you can, in alignment mode, hit `f` to enter a filter and enter
`n==2` to get the same result as default vim-easy-align (the first pair
of delimiters are aligned).
Also it comes with some nice extra functionality like trimming
whitespace by just hitting `t` when in alignment mode
2024-06-07 09:50:26 +02:00
5c4afcb0b3
nvim: Update plugins 2024-06-06 22:36:16 +02:00
94c2d83c86
nvim: Fix trouble for major version update
Fixed for new invocation usage and removed deprecated commands.
Added telescope functionality (to push results into trouble) though I am
not quite happy with the close coupling yet. Have not found an easy way
to only have this mapping be created if trouble exists.
2024-06-06 22:32:27 +02:00
1771a61334
nvim: Use peek for markdown preview where possible
On machines that have deno installed, we use peek instead of
markdown-preview for html-based previews of md files. The preview is
more responsive and in a neater package, as well as just not relying on
any vim plugin stuff to the same degree.
We still fall back to the old markdown-preview if no deno executable is
available.

We also change the key maps slightly to prepare for future 'prose' or
'preview' based mappings: All mappings are registered under the
`<leader>p` layer, with md preview being `<leader>pp` and various
mindmap operations moved to `<leader>pm`.
2024-06-06 20:50:37 +02:00
b69548fa38
nvim: Load nvim-surround as VeryLazy
This fixes the somewhat confusing issue of trying to use any of the
surround operations before entering insert mode at least once in a file
(so, probably as the first operation). Before, the plugin would just
silently fail.
Now it simply loads very lazily, which does not affect load times
strongly.
2024-06-06 20:45:53 +02:00
f8dfe7d856
neomutt: Fix index and attach display
Some macros ceased to work. I am not sure if it was because they
were deprecated and stopped working with a new version or they
never fully worked in the first place. Either way, now it is
running again.
2024-06-06 17:40:25 +02:00
663bcd8436
khal: Add weeknumbers to interactive display 2024-06-06 17:39:33 +02:00
4ad9590830
repo: Update packages 2024-06-06 17:39:05 +02:00
8748b66344
nvim: Switch python lsp to basedpyright
Switched pyright to basedpyright as it adds a couple noteworthy
rules and some functions that are otherwise exlusive to pylance.

Especially useful for me are semantic highlighting as well as
inlay hints (now that nvim supports it from 0.10 onwards).
2024-06-06 16:23:44 +02:00
4697e09472
nvim: Ensure pythonPath setting always finds entry
LSP attachment would complain if it did not find an existing dict to
access in the `settings.python` section of the python lsp dictionaries.
This fixes that by creating an empty dict if nothing exists yet,
essentially functioning as null-check.
2024-06-06 16:23:43 +02:00
b37650ac03
nvim: Re-enable femaco plugin
Since it in fact works wonderfully now, we re-enable FeMaco, allowing to
edit codeblocks in markdown-like environments (but really anywhere) by
simply invoking `<localleader>ce` ('codeblock-edit').

The mapping is only active in markdown and quarto files for the time
being, though more can probably be added.
The command itself works anywhere (`:FeMaco`), so can be used in racket
or norg or whereever.
2024-06-06 16:23:42 +02:00
989081abfc
nvim: Only register markdown which-keys if available
Check for availability of which-key plugin before setting up layer
key descriptions.
2024-06-06 16:23:41 +02:00
405af0f020
nvim: Move util to core.util module
Moved all utility functions from their own directory into
the core functionality direcotyr as a single file.
2024-06-06 16:23:41 +02:00
e939305df3
nvim: Update plugins 2024-06-06 10:25:08 +02:00
7fd32f873a
nvim: Change cmp results order and icons
Made lsp and LaTeX icons a little less obnoxious,
and fixed order to better load more pertinent results.
2024-06-06 10:12:24 +02:00
434974284a
nvim: Fix flash for search and operator pending
flash.nvim was activating on searches which, while perhaps useful
for some people, was not for me. It stops the (incremental) search
as soon as no valid target exists which drops you back into normal
mode while still typing out the search and thus doing
who-knows-what.

The operator pending mode for the original jump mapping has been
removed to allow the 'surround' mappings from mini plugin to
always work correctly (`ysiw`, `csaw`, ...).
2024-06-06 09:58:25 +02:00
cb21789f3a
nvim: Add mapping for inlay hints
`<localleader>li` will show inlay hints if they are available
for the active LSP server.
2024-06-06 09:45:34 +02:00
c03b88c6cc
nvim: Formatting 2024-06-06 09:43:20 +02:00
7eeeb9e85d
sh: Add clear and rerun function
Added simple function to clear the screen but additionally re-run the
last executed command.

Mirroring my clear screen alias `cl`, this one is executed with `cll`
(clear-and-last) currently.

It comes in useful for me every now and again because I sometimes just
need a quick way to get rid of 'clutter' on my terminal (e.g. running
multiple rg invocations after each other, or diffs, or anything that
spews a bunch of stuff on screen and I want to find specific things
afterwards).
I am very used to running `cl` and then the second to last history item.
This makes those additional keystrokes unnecessary.
2024-06-05 12:10:26 +02:00