Switching to runit (and turnstiled, which in turn activates user-local
runit service supervision) we can now have river run supervised by our
service manager quite easily.
We make use of this, but have to take care to export the
river-established wayland variables (DISPLAY, WAYLAND_DISPLAY) back into
the user environment for other processes since river will not be the
one responsible for spawning them anymore.
On finishing the service (i.e. exiting the process), we ensure
that the variables get removed from the environment again so it is not
polluted in the future.
Additionally, we load the (default for void runit) 'turnstile-ready'
service which can define core user services that need to exist before
others on login, and the session-local dbus service which river and
other programs will make use of. It is marked as essential with
turnstile-ready.
Since wezterm on wayland is an older release (does not track nightlies,
so currently last release is 2024023, a year old) it does not work as
well with wayland as I would hope.
There are two major issues:
- Cursor errors whenever a mouse pointer is above the window (can be
partly fixed with the xcursor_theme option, though still erroring when
hovering over links).
- Constant errors that inactive text input is sending updates in river
logs.
Until those are fixed, or I jump to a nightly version, we keep it
xwayland.
I have not used (most) of these services in a long time. This makes the
unlinking more official. Also paves the way for setting up simple
runit-managed user services.
This repo is not including the binary 'ziggy' files. They are used for
clipboard management and subtitle downloading, which I personally do not
need.
We are including the uosc repo as a sparsely checked-out submodule
repository now, symlinking it into place.
It might be a little buggy and I am not sure how jj deals with it but
time will tell.
A concise explanation of the idea can be found here:
<https://gist.github.com/ZhuoyunZhong/2c08c8549616e03b7f508fea64130558>
WIP: Add UOSC as submodule
Updated plugins. Forced blink.cmp to stay on version 0.11.x since 0.12.x
versions have a new `exact` match comparator which breaks my config.
See <https://github.com/Saghen/blink.cmp/releases/tag/v0.12.0>.
This is perhaps a bug in the interaction with the nvim-cmp compatibility
layer, but for now we can just pin back the version until it is fixed.
Requires bug-id to be passed and toggles the corresponding bug open or
closed (`gbo <bug-id>`). Otherwise just passes through any arguments to
the `git-bug bug status` command.
The alias `gb` will list all bugs (or allows to query for them) by
default. But if only a single argument is provided, and that argument is
a bug id then it shows the bug.
This allows a nice workflow like:
```sh
$ gb
# -> returns list of bugs, pick one from it
$ gb <bug-id>
# -> returns detailed description of bug
```
Just run `sc <diagnosis number>` and you will instantly be beamed to the
correcsponding shellcheck wiki error page.
E.g. `sc 3001` will transport you to 'In POSIX sh, process substitution
is undefined'.
Always call `bat` when we invoke `cat`. There is not ever a time when I
want to use the bog standard `cat` in preference to `bat`.
However, on the very slight off-chance there is, we still have a
fallback alias on `rcat` which invokes 'raw' cat instead.
By default we use the 'zr' plugin manager for zsh. It is quick and
painless and takes managing the plugins across two environments not our
problem anymore.
This is a temporary adjustment to start pipewire as a user process when
river starts up, targeting my new voidlinux installation. Ideally, we
want to have runit user services up and running and being responsible
for maintaining a running pipewire instance but until that is set up we
can simply start it with river.
Prefer regular 'Iosevka' font in most cases, not the highly specific
'Iosevka Nerd Font'. This may break some things back in Archlinux-land
but it is required for iosevka to be correctly displayed in Voidlinux,
and, to be honest, also feels more clean than using such a highly
specialized font for everything.
Additionally, we generally make use of both where possible, defaulting
to the more specific 'Nerd Font' family variant but falling back to
regular old Iosevka.
One exception is 'wezterm' which, though it nicely includes a font
fallback option (and a very configurable one at that), _always_ produces
a warning when the first font in a fallback list is not found -- even
when the specific 'warn_about_missing_glyphs' option is ticked. No clue
why but for now this works well enough for me.
`jed` allows editing the 'latest' (i.e. most recent, timewise) change we
can reach following the descendants of the current working copy.
In essence, this allows us to quickly jump to the head of whatever
branch we are on.
Similarly, `jet` goes to the newest descendant of the 'trunk' branch
(i.e. generally 'master' or 'main').
And `jel` just goes to the newest commit in general out of all commits
in the repo.
These have a lot of overlap and I might end up removing the latter two
if I am not using them much, which may be the case.
We use a custom zk indirection which ensures that any short alias for
interacting with the zk wiki will actually act on the globally assigned
wiki (by ensuring notebooks dir is "$WIKIROOT").
Local wiki requires the '$WIKIROOT' env var to be set, pointing to the
root of the (zk) wiki. So we only create associated aliases if the wiki
actually exists on a machine.
Changed into a function which takes the revision to set the bookmark to
as an argument. This should work without interfering much since the
bookmark name that the `bookmark set` function _usually_ takes as
argument is already given by the alias (always 'main') and thus we do
not have to manually provide other arguments.
It default to the current working copy just like the command and
otherwise can point to any change.
I have gotten more used to using `jw` to 'show' the current changes in
the working copy, and having `js` be _both_ status and show has become
more confusing than helpful. For now, we just revert it to be a simple
alias for the status command.
I have begun abandoning more commits recently, so this seems a good time
to introduce an alias for it. It is not _so_ common as to require a 1 or
2-letter alias so we can go with the mnemonic `jab` for jj abandon.
Adds a very simple 'githead' revset alias. This is not much simpler than
directly invoking `git_head()` but it will remind me in the future of
its existence.
The new log aliases follow one logic: small letters are default and
capital letters show 'all' changes. Thus, `j` defaults to showing the
simple log and `J` the same log but for all changes.
`jl` shows oneline logs, `JL` oneline logs for all changes.
`jlo` shows log summaries, `JLO` for all changes.
And finally `jloo` and `JLOO` show the details patches for each change.
This new alias setup provides four quick traversal options:
Moving ahead one commit (`jen` for edit next), backwards (`jep` for edit
previous), as well as doing the same but creating new 'working copies'
instead of going directly to a commit (`jenn` and `jepp`).
Currently `ji` (for jj insert) does a 'manual' `jj split` by creating an
empty commit underneath, squasing interactively and then moving back to
the original. All of that is done by the existing `jj split` command.
So we simply use it. I am keeping the `ji` alias for now, could still be
'jj insert' or 'jj spl(I)t' I suppose.
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.