Commit graph

1944 commits

Author SHA1 Message Date
6b40d1eadf
nvim: Create terraform language setup 2025-08-18 13:23:41 +02:00
7da85801b4
nvim: Add more groq llm models to codecompanion 2025-08-17 12:35:13 +02:00
c381a0ffb6
task: Remove duplicate next report
While taskwarrior itself can handle the duplication, it errors other
programs like my taskopen python script.
2025-08-17 12:35:12 +02:00
4222648ab0
qutebrowser: Add personal read-it-later as search engine
Uses wallabag search which functions _extraordinarily_ badly, or I am
not sure how the search syntax is yet. Best to only search for single
words.
2025-08-17 12:35:12 +02:00
782798488e
nvim: Correctly concatenate prose filetypes
Correctly append md_like and org_like into prose filetypes.
And correctly load render_markdown for all md_like filetypes.

NOTE: _Still_ does not work to render for djot on my end. Is it because
of different TS queries? I am not sure.
2025-08-17 12:35:11 +02:00
083973e7c1
nvim: Improve markdown checkbox toggling
Also given new mapping. Hit `<c-t>` instead of `<c-x>`. `<c-x>` (in
insert mode) instead now brings up the path completion which was
previously on the other mapping.

On any line in a markdown-like file (i.e. markdown, quarto, djot, etc.),
we can hit `<c-t>` in normal mode or insert mode to toggle the current
line having a checkbox or not. It takes care to leave the current item a
list item like it was if it already was filled with content.

It does _not_ remove the list item even if it is empty, this may be an
improvement for the future (i.e., empty line -> we hit <c-t> -> line
turns into `- [ ] ` -> we hit <c-t> -> line stays `- `).
But care should be taken to not remove a list item if we don't intend
to, e.g. we could have toggled part of a list beforehand and don't want
to remove the list on each toggle. That's why it is more conservative
for now and I think it should work well enough (the case is likely to be
rare in my mind).

Also, while it does pick up the extended checkbox symbols ([o], [~], [-]),
those are currently hardcoded into the query.
In my mind it should pick those up dynamically from another plugin
instead of hardcoding here, e.g. render-markdown which also defines the
symbols?

Lastly, we could extend it to use treesitter queries instead / on top if
TS is found which would make it more robust than regex matching. But for
an hour of hacking it works quite well.
2025-08-17 12:35:08 +02:00
168475a988
nvim: Stay centered in zen mode
By default we always stay centered in zen mode, like using a typewriter.
The old zen mode can still be reached with `[sZ` (capital Z).
2025-07-16 20:18:34 +02:00
368a6fcb37
nvim: Add mini.ai textobjects from lazyvim
Shamelessly stolen from http://www.lazyvim.org/plugins/coding#miniai,
allows us to select in/around:

[c]lass, [f]unction, [d]igits, MultiCas[e] words, [g]lobal buffer,
[u]sage of functions (function calls) or the last part of a function
[Usage] and the current code bl[o]ck (loop, conditional or block).

Super useful!
2025-07-16 20:18:34 +02:00
be9b5b9297
nvim: Use markdown ftplugin for djot as well
Simply import the markdown settings. We have to make use of the vim cmd
runtime (suggested here:
https://reddit.com/r/neovim/comments/ykpnob/require_one_ftpluginftlua_into_another/)
since lua requires cannot (afaik) exit the lua folder in the config
directory.
2025-07-16 17:53:59 +02:00
c26ef032d2
nvim: Add mapping to insert todo item into markdown
Use <C-x> when in insert mode and it will prepend the line with an empty
todo item.
2025-07-16 17:53:59 +02:00
27ef79391c
docs: Remove senseless line from README 2025-07-16 17:53:58 +02:00
02ae47781a
nvim: Add rendermarkdown todo completion source
Could be optionally set for 'blink' but since blink.cmp also displays
lsp results this is more general (and, currently, the recommended way).

Suggests task states if doing a single '-' dash at an appropriate place.
2025-07-16 17:53:57 +02:00
fb94651f4c
nvim: Add markdown todo augend toggle
Use <c-s> and <c-x> to cycle through all todo list item states. Only
works if the cursor is directly on the todo list item.
2025-07-16 17:53:57 +02:00
aade4456e3
nvim: Add todo snippets to markdown
Taken from djot snippets to allow adding a single task and multiple
tasks.
2025-07-16 17:53:56 +02:00
6ceedae571
nvim: Add djot snippets
Mostly copied from markdown, extended with single task and task list
snippets.
2025-07-16 17:53:56 +02:00
7f1064370b
task: Only show annotation count in list view
In 'next' view (my default) we list all annotations as normal with their
full text.

However, in 'list' view, we only show how many annotations are on a task
(if any) and do not display their contents. This turns it into actually
more of a list if there are many annotated tasks.
2025-07-16 17:53:55 +02:00
5679887739
nvim: Remap diagnostic toggling 2025-07-16 17:53:52 +02:00
20741b3ca0
Add idea aliases for running topen in the repository
Notes can be opened/written by either executing `idea note <id>` or
`idean <id>`.
2025-06-22 22:21:51 +02:00
a4bbb0ed3a
task: Add new repository for idea collection
Following this blogpost:
https://eshapard.github.io/code/a-separate-taskwarrior-configuration-for-ideas.html

I think it is a really good idea to try this out.
At first I was collecting ideas in my regular taskwarrior repository --
this was no good as every task list was flooded by somedays and maybes
which would never leave. But I still wanted to have a nice repository to
collect all my ideas in.

So, the second strategy was to have one big (markdown) file which would
simply collect all my ideas. But now I was doubling and tripling them up
because the list was so long, and it was more of a chore to find where
to put everything than just a quick 'idea add'.

This may be the best of both worlds: making use of the nice interface to
a task database using the full strength of taskwarrior querying, without
cluttering up my main task repository.

The workflow is exactly as with regular taskwarrior, only the executable
is not called `task` (or `t` in my case) but `idea`. So you e.g. add an
idea with `idea add`, or query all diy ideas with `idea +diy`.
Just like regular taskwarrior.
2025-06-22 22:21:50 +02:00
d42593edfe
task: Remove configuration files for taskopen
Since I am exclusively using `topen`
(https://git.martyoeh.me/Marty/topen) for my task notes currently, this
commit gets rid of any left-over config files setting up `taskopen`.
Starts to simplify the taskwarrior setup a tiny bit.
2025-06-22 22:21:49 +02:00
21844e3a30
task: Ensure compdef options only get set in zsh 2025-06-22 22:21:48 +02:00
ededd904b4
jj: Switch to email for signing key identification 2025-06-22 22:21:48 +02:00
2c1ca97ab3
jj: Adopt new default revset aliases
This commit changes the way I display my jj logs a little. We
distinguish between 3 styles now

- the 'stack()': short and to the point, only ancestor commits from the
  last non-mutable one onwards
- the 'recent()': the previously default view over ancestor commits or
  any other head nodes (i.e. any branches) that are from me,
  with a few commits leading up to them visible.
- the 'all()': the traditional 'show everything' summation for finding
  very specific commits or getting a macro-scale overview of the history

Basically, only the 'stack()' view was added - but it is now the new
default for the default command and the previous 'default' has been
renamed to 'recent()'.

This is mirrored in the shell aliases: all the `jl`, `jlo`, `jloo`
aliases use the 'recents()' view. The capital versions (`JL` and the
like) are not affected as as they keep showing the 'all()' view.
Importantly, the `j` base command uses the 'stack()' view, however.

Lastly, we extract the aliases to find `WIP:` commits and `PRIVATE:`
commits into actual jj revset aliases and call them from our shell
aliases. The functionality does not change, though we now have an
additional alias for finding specifically the latter commits with `jlfp`
('jj log find private').
2025-06-22 00:03:56 +02:00
4bc0ef9ed7
nvim: Enable automatic installation of DAPs with mason 2025-06-21 16:44:41 +02:00
51595b8b81
nvim: Extract debug plugins into debug module 2025-06-21 16:44:40 +02:00
020ec86481
nvim: Split up mini plugins for lazier loading
Split off base16 (instant load for themes) and starter (only load on
empty start) from rest.
2025-06-21 16:44:40 +02:00
091274fd82
nvim: Add custom lazy loading events
Using lazy-events.nvim we can create custom events (such as the LazyVim
equivalent LazyFile event) based on other events (i.e. a grouping), on
globbing files in the current dir, or on arbitrary custom logic.

For now, any plugins which require files to be present to work are
loaded with the 'LazyFile' event.

Any plugins which need to be loaded when opening a directory with vim
are loaded with the 'StartWithDir' event (essentially only neo-tree for
now). Similarly mini.starter is loaded on the `StartScreen` event.

Any plugin which only makes sense to run in a `.git` dir (gitsigns etc)
will only run on the `LazyProject:git` event.
2025-06-21 16:44:39 +02:00
71ddce4119
nvim: Fix nvim-dap lazy loading
Switch its key maps to anonymous functions to not instantly run
'require' when creating the plugin load spec.
2025-06-21 16:44:39 +02:00
0d8208d722
nvim: Add highlights to nvim-dap repl 2025-06-21 16:44:38 +02:00
3454c60c44
nvim: Add nvim-dap configuration
Automatically opens dap-view when in debugging session (and closes when
done), sets some breakpoint jump logic and makes the gutter symbols
nicer.

Adds keybinds for most of the dap operations with
`<localleader>d<something>` where something is the operation (i.e. `c`
for continue, `b` for breakpoint and so on).
2025-06-21 16:44:38 +02:00
bbab0f1674
nvim: Add file bracketed movement
For now there is no strict reason to have it disabled, even if I don't
use it much. At the same time I can always re-disable it if I need the
bracketed movement for something more important later down the line.
2025-06-21 13:58:33 +02:00
f558a68976
nvim: Change diagnostic movement to ][e
In preparation for adding debugging we change the bracket movement
between diagnostics from `[d`/`]d` to `[e`/`]e` instead.

This will be a big switch in muscle memory for me and I hope I can adapt
to it pretty quickly, but at least mnemonically it still makes sense
since we jump between [E]rrors (or warnings but good enough).
2025-06-21 13:58:33 +02:00
8f9954bd8a
nvim: Fix bracketed configuration
mini.bracketed never received its configuration which is the reason I
had some issues in the past. It was simply wrapped in one too many
layers of tables. Now works as intended.
2025-06-21 13:58:32 +02:00
22e8f9761f
nvim: Version-pin treesitter again
Treesitter had to run as a non-versioned (trunk-tracking) plugin for a
while since there was no updated version released.
Now that it is we can return to a nicely versioned tag.
2025-06-21 13:58:32 +02:00
bb11a12f25
nvim: Remove criticmarkup
Sad but I'll have to face it - I've never successfully used
criticmarkup in, by now, 6 years of professional academic writing.

The plugin also does not work as well as it should (anymore?) with my
current neovim setup. The `:Critic` command works neither with accept
nor reject and the different highlights are presumably overwritten by
treesitter queries.

Now, all of those _could_ be fixed but as I say above, I have never
successfully used the markup. Perhaps one day it could be implemented in
a slick nvim lua plugin with hiding and extmarks which mimicks a truly
nice review editing experience. But not today.
2025-06-21 13:58:31 +02:00
b9c60ffde6
nvim: Update plugins 2025-06-21 13:58:31 +02:00
9f415f8ccc
nvim: Fix render-markdown naming scheme
Old versions of render-markdown.nvim suggested renaming it to another
plugin name, but this seems to not be the case anymore. I removed both
for the time being and it fixed a long-standing issue I had with the
plugin.
2025-06-21 13:58:30 +02:00
35d1f8b03d
nvim: Improve mini.pairs triple mappings
Whenever there is a left-over quote (') or double quote ("), if we want
to 'close' it, mini.pairs will by default add a new pair (e.g. """)
instead. This simply changes it to close the pair. Makes some
'double-quote' pairings harder (e.g. we have a python dict: {"name"})
and want to add another {"name""value"} into it, but this happens
relatively rarely in my use cases. The first on the other hand happens
frequently enough to be an annoyance.

Additionally, did the same for back-ticks so we can more easily create
triple backticks ``` which are essential in many literate programming
markup languages (markdown, quarto, rmd and so on).
2025-06-21 13:58:30 +02:00
b5198c385c
nvim: Switch zenmode to new toggle map
Like other 'switch' toggles, turn on/off zen-mode with `]sz`/`[sz`
respectively.
2025-06-21 13:58:29 +02:00
a3b1efeb05
nvim: Set default tabwidth in md, quarto to 2
Makes it easier to read lists, and also easier to work with
markdownlint even if it has not been configured for a given repository
(since its list indentations default to 2 spaces).
2025-06-21 13:58:26 +02:00
c2bdda9acf
nvim: Fix build of markdown-preview
For some versions apparently markdown preview could not be built anymore
with the suggested installation in the readme. Instead it requires the
build function to be called through a string from lazy.

See:
https://github.com/iamcco/markdown-preview.nvim/issues/690
2025-06-19 22:35:50 +02:00
688a001e01
nvim: Remove fzf-lua version adherence
Fzf-lua is unfortunately not released in versioned updates, which means
following the main branch instead of any versioned tags.
2025-06-19 22:35:49 +02:00
8f15fb404a
nvim: Fix path completing on insert mode return
When hitting return in insert mode we would enter a path completion.
With this change the completion is moved from <c-m> (i.e. return) to
<c-t>.
2025-06-19 22:35:48 +02:00
90f3add4db
nvim: Update plugins 2025-06-19 22:35:48 +02:00
bcbe527ac6
nvim: Add mcphub for mcp llm agent installation 2025-06-19 22:35:47 +02:00
cdf48a537e
qutebrowser: Remove kb search engine 2025-06-19 15:57:39 +02:00
89e1c20358
waybar: Fix keepawake module
Was displaying the wrong way round (no coffee on staying awake and coffe
on automatically going to sleep), and removed some useless variable
setting.
2025-06-19 15:57:39 +02:00
75fcc025f9
waybar: Improve keepawake module
Improved display - can be always-on, with toggling idle management
on-and-off on a click.
2025-06-13 12:24:57 +02:00
8e7aaef291
jrnl: Update config version 2025-06-12 22:01:20 +02:00
53b8bd0175
jj: Update delta diff settings
Remove deprecated 'ui.diff.format' setting and replace with
'ui.diff-formatter'.

Use the time to also ONLY set up delta as the diff and show command
pager using scopes (since I was perusing the jj discussions anyway).

This has the advantage that normal jj paging is done with `-FRX` as far
as I understand -- which means after we close out of the pager the
content remains on screen (-X). This is not the case with delta. So now,
the contents of e.g. the last log command should always stay on screen.
2025-06-12 22:01:19 +02:00