Commit Graph

1471 Commits

Author SHA1 Message Date
Marty Oehme 5caf254c44
nvim: Add D language server to auto config
Automatically install D lsp with mason.
2023-08-07 12:17:20 +02:00
Marty Oehme 0a3ca9f2b1
nvim: Add git conflict resolution mappings
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).
2023-08-07 11:30:09 +02:00
Marty Oehme 596962c4d1
nvim: Add more bracket movement options
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.
2023-08-07 11:27:52 +02:00
Marty Oehme 9934c2e8f0
nvim: Disable automatic formatting on save
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.
2023-08-07 11:26:17 +02:00
Marty Oehme 112d6d8fa9
sh: Remove auto-creation of xdg directories
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.
2023-08-07 10:48:52 +02:00
Marty Oehme 17dbb6a5ab
nvim: Disable prettier for markdown files 2023-07-25 12:04:46 +02:00
Marty Oehme 55518886f8
nvim: Add prose headline highlighting
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.
2023-07-25 12:04:46 +02:00
Marty Oehme 4410a3fa49
nvim: Switch to aerial.nvim for outlines
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.
2023-07-25 12:04:45 +02:00
Marty Oehme 9811d801b8
wezterm: Add ability to close current pane
Using <C-A>x you can close the currently highlighted
pane. Will not ask confirmation so be careful.
2023-07-23 19:29:12 +02:00
Marty Oehme 5712a5bf64
vifm: Improve image preview with fallback
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.
2023-07-23 19:28:15 +02:00
Marty Oehme 9669b061a3
sh: Add alias for vim notes
Added alias that directly opens my vim notes index.
Will only work with my own zettelkasten plugin,
however.
2023-07-23 19:25:43 +02:00
Marty Oehme a97646c88a
nvim: Update plugins 2023-07-23 19:24:52 +02:00
Marty Oehme c8eb9fdb4c
sh: Fix quoting 2023-07-23 19:24:42 +02:00
Marty Oehme 6e5ad35862
jrnl: Update version 2023-07-21 20:17:05 +02:00
Marty Oehme 1efe13cb94
office: Update displayed symbols 2023-07-21 20:16:17 +02:00
Marty Oehme 9a23217d23
nvim: Fix telescope nerd font codepoint
Fix the codepoint the telescope icons point to for the new nerd font
codepoints.
2023-06-22 12:50:54 +02:00
Marty Oehme 315e38cb24
wezterm: Copy logical lines from scrollback buffer
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!).
2023-06-22 12:38:23 +02:00
Marty Oehme 06e0cca640
nvim: Change lspconfig to track master
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.
2023-06-22 12:38:22 +02:00
Marty Oehme a5c5480105
nvim: Fix diagnostic symbol display
Fixed the codepoints for diagnostic display for the new
nerd font codepoints.
2023-06-22 12:38:21 +02:00
Marty Oehme 676c5b2094
nvim: Update plugins 2023-06-22 12:38:21 +02:00
Marty Oehme dc86bf3989
nvim: HACK Fix quarto running magma session
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).
2023-06-22 12:38:20 +02:00
Marty Oehme dc3b2cf12e
qutebrowser: Update redirects 2023-06-22 12:38:19 +02:00
Marty Oehme c8a2236a1c
vifm: Fix view mapping always entering view window
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.
2023-06-22 12:38:07 +02:00
Marty Oehme 1665dd6cf6
nvim: Refactor automatic py venv call 2023-06-20 16:16:01 +02:00
Marty Oehme 1c8c5ca6d9
nvim: Add conditional vale diagnostics
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.
2023-06-20 14:09:56 +02:00
Marty Oehme a689d7cc3d
nvim: Fix prettier formatting timeout
Add a longer timeout to give prettier time to read and format
each file, especially useful for longer files.
2023-06-20 14:08:36 +02:00
Marty Oehme eb9fa8a156
nvim: Fix zk plugin and lsp loading correctly
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.
2023-06-20 13:30:24 +02:00
Marty Oehme 20c8edbe19
writing: Add pandoc templates letter and resume
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.
2023-06-20 13:01:27 +02:00
Marty Oehme 06ccfe03b9
zsh: Source zsh alias file if it exists 2023-06-20 13:00:16 +02:00
Marty Oehme 2227e464a6
office: Fix comment issues 2023-06-20 13:00:01 +02:00
Marty Oehme d0966f7244
bootstrap: Fix pipx beancount plugin install
The beancount plugin 'beancount-categorizer' does not exist on pypi so
we install it from the git source instead.
2023-06-20 12:56:24 +02:00
Marty Oehme ca3d4ef97b
nvim: Make utility terminals dockable and hidable
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.
2023-06-17 22:02:38 +02:00
Marty Oehme b9de8b3914
nvim: Add undotree plugin
Lua implementation of the undo tree plugin, mapped to be
reachable with <leader>su (for show undo).
2023-06-17 22:02:37 +02:00
Marty Oehme f33b4c9c37
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.
2023-06-17 21:54:22 +02:00
Marty Oehme f343b1a76d
# This is a combination of 4 commits.
# 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
2023-06-17 21:51:46 +02:00
Marty Oehme 5f93ecba7c
lua: Format with stylua 2023-06-15 10:12:30 +02:00
Marty Oehme e434c191c9
nvim: Switch away from depredcated nvim_exec function
Use nvim_exec2 instead, which is weirdly named.
2023-06-15 10:00:20 +02:00
Marty Oehme 2dbd94dda4
nvim: Remove copyright abbreviation
I never used it once.
2023-06-15 09:59:45 +02:00
Marty Oehme 6fdf1cc2e4
writing: Update jrnl version 2023-06-15 09:47:56 +02:00
Marty Oehme 41968e1361
nvim: Integrate null_ls for formatting and linting
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.
2023-06-15 09:47:32 +02:00
Marty Oehme 3a709bb450
nvim: Replace live grep key chord with fw
Moved the old, a little more cumbersome, mapping <leader>fF to be
<leader>fw instead to start live grepping with telescope.
2023-06-15 09:43:10 +02:00
Marty Oehme 29cb20efcb
bootstrap: Add pipx managed package installation
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.
2023-06-08 13:05:01 +02:00
Marty Oehme bfe7e7790c
bootstrap: Change yay to paru for pkg installation 2023-06-08 13:03:27 +02:00
Marty Oehme 79910b8bf1
bootstrap: Fix package installer file path 2023-06-08 13:02:45 +02:00
Marty Oehme a43e2cc4bd
river: Switch call to terminal to be more general
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.
2023-06-07 10:32:26 +02:00
Marty Oehme 60b89b6d30
githook: Fix showing pkgs in commit message
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.
2023-06-07 10:29:25 +02:00
Marty Oehme bce5675795
bootstrap: Remove unclutter package
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.
2023-06-07 10:27:17 +02:00
Marty Oehme bd555608b1
waybar: Update event icons 2023-06-07 10:08:35 +02:00
Marty Oehme 681c48d4f7
nvim: Format plugins file 2023-06-07 10:06:32 +02:00
Marty Oehme e35dec9f9f
nvim: Update spellfile 2023-06-07 10:06:20 +02:00