The note dir is in fact our `$WIKIROOT` so we set it to that by default.
Also took the chance and added a small 'cd' command into the note dir,
using `ncd`
For some reason (glow 2.0.0 release?) markdown preview with glow does
_not_ work anymore within my vifm. It regresses to showing errors all
over the place instead.
Make more extensive using of dataclasses for typing and simpler future
refactors.
The redirects 'plugin' is now a simple class which can be imported into
the configuration and is automatically active when instantiated. For
that to work it needs access to the qutebrowser python library but that
should hopefully be a given if wanting to have a qutebrowser plugin.
To make the default redirects active, simply import the class and
instantiate it:
```python
from fossredirect import Redirects
_ = Redirects()
```
This loads the defaults and activates them in qutebrowser. Try to go to
e.g. 'reddit.com' and it will automatically open in a libreddit
frontend.
To customize the redirects, provide a custom list of Services:
```python
from fossredirect import Redirects
_ = Redirects(services=[Service(source=["fromhere.com"], target=["tohere"])])
```
It works a little more flexibly now:
Redirects contains a list of Services.
Each service is a simple data container with the following:
```python
Service(
source=["list.of", "hosts.to", "redirect.com"],
target=["farside-redirect"]
)
```
The above redirects any of the source hosts to the far-side provided
target (in this case it would be
`farside.link/farside-redirect/<original-path>`).
However we can also specify 'custom' targets if farside does not have a
service that we want to redirect.
```python
Service(
source=["list.of", "hosts.to", "redirect.com"],
target=["my-redirected-host.org"],
custom_targets=True
)
```
This directly rewrites the host to
`https://my-redirected-host.org/<original-path>`.
Lastly, we can have custom preprocess/postprocess functions which fix
some more involved redirect:
```python
Service(
source=["list.of", "hosts.to", "redirect.com"],
target=["my-redirected-host.org"],
postprocess=lambda item: item
)
```
Be aware that the functions take 'QUrl' objects so you have to access
e.g. the actual host with `item.host()` before rewriting. Look at the
breezewiki rewrite function for an easy example.
By default, the log invocation now shows at least 5 ancestors of the
current working copy branch. This makes it much easier to get situated
to the current location for me - otherwise, if I just pushed my main
branch and thus there is the main bookmark just below my commit none of
the last couple changes are shown in the log. If there are fewer than 5
ancestors it will just show however many there were.
By passing the 'no-restart' argument as the first parameter of the river init
file, we can prevent program restarting which we do not want to have restarted
every time (e.g. kanshi, wlsunset, waybar, swayidle, etc)
By default these programs will still always be restarted. However, passing the
parameter means that if the program is already running, we do not restart it.
If the program is not yet running it will still be started like normally.
The functionality makes use of the `pidof` program, so on Arch it requires the
'procps-ng' package. This is by default installed as a requirement for the
'base' package group.
Reverted changes from earlier wallpaper switch.
Multi-output wallpaper setting was never particularly stable using swww.
Using swaybg we can directly call on the 'description' of the outputs
like we do in kanshi. This makes the interface way more stable than
hoping that 'DP-3' and or 'DP-5' are discovered first. Thus, we default
to use swaybg and my screens, but if the program is not found on the
system we can still fall back to swww.
Instead of aliasing the revset I am always using currently, we simply
set it to be the default for any log command. If we want a different
revset we can still supply it. Other aliases keep different revsets
(e.g. `jL` variants for `all()` revsets).
Git commits, on push, will be signed by default (just like my git
configuration itself) but *not* every change is signed since that is a
hassle with the working copy technically also being an ever changing
git commit.
Additionally, added a private-commit option which will refuse to push
commits beginning with 'wip: ' to any remote, which is not super useful
for my current use cases but also a nice feature and fun to experiment
with for the future.
The default log invoked when hitting `j` is now composed of the working copy history as well as all
ancestors, recent commits to visible heads and the trunk.
`jl` shows the same view, only as oneline commits.
Gets a pull request for the repo by directly fetching from the pull
folder of the repository. Works perfectly with github (should also work
with gitlab, and gitea/forgejo).
Searches for a remote called github or uses the default origin one.
By default we only render the image at the cursor. Should we want to
render all images instead we can now toggle this for image.nvim with
<localleader>pi.
To enable this we move the 'paste image' shortcut for prose formats onto
<localleader>pp instead.
Added euporia term to split it from other python variations. Fixed
python command selection. Improved mapping and which key display.
Removed indentline settings since that is responsibility of indentline.
Removed the plugin since all its functionality can be replicated with an
equal amount of lines without it nowadays. Should be even simpler in the
future when we can just have individual lsp server config files in the
config dir.
Creates a hidden kernel file with the current filename and
'.kernel.json' suffix by default (in the file directory).
But 'JupyterStart' command can also be given an argument to use as the
filename / file path for the kernel file. That way we can also attach to
already running kernels for longer running projects.