Commit graph

1806 commits

Author SHA1 Message Date
df48e29fb7
task: Fix git-backup output to be stable
By default sort the exported output by creation date and modify date.
Also use the jq expanded (prettified) output. Will take a little more
space, but ultimately makes it easier to see task changes since each
value is on a single line.
2025-03-15 20:08:44 +01:00
faaaa81f91
nvim: Switch to external luarocks dependency
Using external luarocks instead of a luarocks plugin for now. The amount
of dependencies to install is not smaller the other way now (having to
install libreadline-devel) so this should be fine.

I have captured more info in daily log 2025-03-11 on my reasoning.
Suffice it to say: both lazy.nvim 'hererocks' installation, this
external luarocks dep and the luarocks.nvim plugin are brittle in their
own ways. 

For now, I have settled on the external dependency as it remains the
simplest way to achieve what I want (image.nvim) pictures. Though it
requires quite a few dependencies overall:

`xbps-install lua51 lua51-devel luarocks-lua51 ImageMagick libmagick-devel`
2025-03-15 20:08:43 +01:00
fe79287559
nvim: Update plugins 2025-03-15 20:08:40 +01:00
c6de9b0686
task: Add new git backup hook for version 3
First exports tasks to plaintext before backing them up with git.
2025-03-10 20:22:04 +01:00
41754c5d24
qutebrowser: Fallback to wezterm terminal by default
Since the starting parameters are fairly hardwired for wezterm anyway I
don't see this making much sense with e.g. xterm. However, long-term, we
should rather change the hard-dependency instead of doing it this way.
2025-03-10 20:22:04 +01:00
15cf9b192b
nvim: Fix zk commands always being created
They were under a conditional which would only have them be created if
which-key plugin was found beforehand.
2025-03-10 20:22:03 +01:00
2eebe047f6
nvim: Remove fzf select one option
Removed the default option select one, it did not do anything. Now
trying with a 'default' opt for the actual plugin.
2025-03-10 20:22:03 +01:00
0ce49d758a
zk: Add new inbox note function
Add simple alias function which allows quickly creating a note destined
for the inbox by typing `nni`.
2025-03-10 20:22:02 +01:00
a01431609f
zk: Set working dir to wiki for aliases
Instead of finding the notebook at the wikiroot, we directly change the
current working dir to the notebook for the runtime of the zk command.

This has a couple advantages: Any other commands executed will also pick
up the correct directory, and creating notes in a specific directory
also just _works_ by giving a directory in the notes dir even if we are
somewhere else.
2025-03-10 20:22:02 +01:00
ea066eebb5
waybar: Fix event module spacing
Added a new state which should fix the icon spacing issues:

When we have no upcoming events or upcoming events but none today, we
only display the icon and so we do not add any additional spacing.
(This is alt state `event` or `no-event`)

Only if we have an upcoming event today (alt state `event-today`) are we
printing it directly on the status bar and only then should be have
additional spacing. So we have an icon (the same as for event) with the
correct spacing so that whether there is text on the statusbar or not,
we space correctly.
2025-03-10 20:22:01 +01:00
47a96a2d42
scripts: Fix powermenu log out without elogind
On my current voidlinux system I have no access to elogind and riverwm
will just be restarted when I exit it (since it is watched over by a
user service).

My session is started by the display manager 'greetd' (which in turn
runs tuigreet but that is not important here). So, to log out of the
session - we do a search for the 'greetd' process and if we find it we
search its _child_ processes which are the ones that we can kill without
being a super user.

If we kill the right process here, the session will close (since the
'watched' process exits and greetd just takes over again). This would be
a little easier if we started riverwm through greetd directly but I like
this indirection for stability (automatic service restarts), flexibility
(I can stop the riverwm service independent of my session), and adaption
(we can use Turnstile environment variables between my session
services).

So we just close all the processes that are children of greetd --
perhaps we accidentally catch a process which is _not_ the root session
process run by greetd but we'll kill it nevertheless since all child
processes might stop greetd from taking over (and they would be closed
anyway when ending the session afaik).

I have no linger enabled on my system so far (user processes staying
enabled after log-out) and I do not know how that would interact with
this method.
2025-03-10 20:22:00 +01:00
554e13cd36
river: Fix pass-pick invocation
Running pass-pick (or other gpg requiring software) through river was
not correctly accessing the gpg agent since being managed by runit user
service did not point them to the correct gpg agent socket.

This commit fixes it using keychain as auxiliary software to manage a
session-long gpg agent process which is also exported into the turnstile
environment so other runit services can make use of it.
2025-03-10 20:22:00 +01:00
07a619060a
nvim: Disable history when editing jrnl files 2025-03-10 20:21:59 +01:00
e36ed17a97
wezterm: Re-enable wayland mode
While there are errors that pop up when inserting text (_each time_), it
is still much preferable to the unbearable slowdowns that happen after a
while when running it in XWayland mode.
2025-03-06 21:22:01 +01:00
710fc41b23
mpv: Require shift Q to quit application
Accidentally hitting q was just a little too common for me so now at
least I will have to accidentally hit two keys at once.

Regular q is completely ignored.
2025-03-06 21:22:01 +01:00
270a6f1e0d
waybar: Remove event module spacing
Removed spacing left over when an event was occuring on the current day.
2025-03-06 21:22:00 +01:00
343c1f0a35
river: Use built-in option to set compose key
So far, we used the external `setxkbmap` tool to map the compose key to
the 'menu' button (AltGr on my keyboard). With this I am able to type
äöü€ß.

Now using the built-in option in riverctl which I just discovered, so we
rely on fewer external programs.

Also setting the keyboard itself to 'us(altgr-intl)' which I _think_ I
had enabled before. If it turns out not, well, can always change back to
us layout with a single line.
2025-03-06 21:22:00 +01:00
4082d92ed9
jj: Change log finding alias to case insensitive
Since 612b92d1 we are matching private commits case insensitively, we
should also match default commit search insensitively by default.

This changes the alias to search without caring for the case. We do not
have an equivalent alias for case sensitive search, and I will only add
one if I need the specificity often enough to warrant an extra alias.
2025-03-06 21:21:59 +01:00
749cedb162
jj: Change oneline and summary log template
Summary logs are changed to a little nicer presentation (from --summary
to 'builtin_log_compact_full_description' template).

Oneline logs have a changed order. Keep the revID as first thing, but
then show bookmarks/tags/head and descriptions. Only afterwards
show email, timesatmp, commitID since I am less interested in them
generally when viewing oneline commits (to get an overview of the last
changes and my current position).
2025-03-06 21:21:59 +01:00
2627055e7c
swaybg: Fix single screen wallpaper display 2025-03-06 21:21:58 +01:00
96757895dc
wlsunset: Fix pass through time variables to service
Passing them through as individual arguments on the commandline.
Previously quoting would pass them through as a single argument, making
it not work correctly.

Could switch to using bash arrays for this (to make it more robust
against word-splitting) but a) I prefer the portability of sh for such a
simple script and b) there _should_ never be a time when we pass through
anything that has weird word-splitting issues. Either the location is
passed through or the times.
2025-03-06 21:21:58 +01:00
19577a7c83
zsh: Show help when hitting K from vi mode
We load the 'run-help' function to quickly show us documentation for the
command under cursor when we enter vi mode and then hit 'K'.
This mimics the actual vim setup where K will generally show
documentation/hover info/help as well.

The command invocation requires an 'even amount of arguments' which I
don't fully understand but have no time to read into and fix currently,
so it just gets another superfluous 'run-help' tacked on at the end.
2025-03-06 21:21:57 +01:00
e604e34329
sh: Fix touch error on startup
The xdg-compliance function would check on shell startup if we have a
file mentioned by 'PYTHONSTARTUP' and create it if not.

However, if there is no env var in the shell calling for this at all it
would still try to create a file at an 'empty' path, so this obviously
won't work.

Added a check that we even have the variable to do work.
2025-03-06 21:21:56 +01:00
f252c628ec
powermenu: Remove hybrid-suspend
Hybrid suspending is not working for my system currently (definitely
TODO). For the time being, we simply suspend only instead.
2025-03-06 21:21:56 +01:00
c00cbdbade
services: Add swayidle processing as service
swayidle is now also presented as a user service managed by runit on
voidlinux. It comes with the same defaults as before (300 seconds to
lockscreen, 600 seconds to screen dimming and 900 seconds before
suspending).

Additionally the lockscreen script has been updated to correctly tell a
wayland from a non-wayland session without logind being available on the
system, though it still defaults to using loginctl if it finds it.

The service runs as swayidle in the user services directory and can be
confirured using a 'conf' file which would be placed in the 'swayidle'
service directory. Timeouts can be set with `time_to_lockscreen`,
`time_to_screendim` and `time_to_suspend`.
2025-02-25 23:25:30 +01:00
b0ab5c59dd
powermenu: Adapt for both archlinux and voidlinux
Keeps using the known systemctl commands for voidlinux environments (or
other environments that have access to the `systemctl` command).

For voidlinux it instead uses the commands `poweroff`, `reboot`, `zzz`
and `ZZZ` (which are the same script). Works fairly naively for now and
does no checking if the commands exist or work. Runs required commands
as sudo so ideally the user or group has access to a passwordless
implementation of the commands.
2025-02-25 23:25:29 +01:00
0cbd8d548f
jj: Add alias to insert change before or after current
Internally `jnb` runs `jj new -B@` so that it simply always insert a change
directly before the current working copy.

Likewise with `jna` for inserting after current. (Which is still
somewhat helpful since by default `jj new` will create a branch in the
tree if the new change is not the leaf node)
2025-02-25 23:25:29 +01:00
e792fc53af
services: Add usv user service manager alias
If `vsv` void service manager program is on the system, we also point it
to our own user service directory and make it accessible as `usv` user
service manager.
2025-02-25 23:25:28 +01:00
8c28d8f7d5
jj: Fix jlf alias function quoting
Fixed quoting so that we can now also search for things which would have
a meaning in jj, e.g. `jlf 'WIP:'` (jj would pick up the ':' and
complain before).
2025-02-25 23:25:28 +01:00
a3f30cf228
services: Add desktop environment programs as user services
Added a runit-managed kanshi, swaybg, waybar, wl-paste and wlsunset
service.
2025-02-25 23:25:27 +01:00
e08f88db9c
services: Move pipewire into user service
Will be managed by runit service manager under voidlinux.
2025-02-25 23:25:27 +01:00
4f18b548f4
services: Add example service to base new services off of 2025-02-25 23:25:26 +01:00
7c0bd5738f
river: Change to runit-managed user service
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.
2025-02-25 23:25:26 +01:00
ea1bd6c573
services: Prepare repo for runit user services 2025-02-25 23:25:25 +01:00
9270ec64bd
HACK: wezterm: Disable wayland temporarily
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.
2025-02-25 23:25:24 +01:00
aca7b60855
services: Disable systemd service linking
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.
2025-02-25 23:25:24 +01:00
1568ca0534
mpv: Update uosc
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
2025-02-25 23:25:23 +01:00
df78905778
mpv: Refactor into more simple config
Using some of the advice from here: <https://kenhv.com/blog/setting-up-mpv>,
we can simplify the configuration a little.
2025-02-25 23:25:23 +01:00
9a53fd5775 nvim: Update plugins
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.
2025-02-25 23:25:23 +01:00
295a598f50
git: Move git-bug completion sourcing to correct shell 2025-02-25 23:25:22 +01:00
8b4e9f31ba
zsh: Fix loading aliases from .zsh extensions
We should load alias files from .zsh extension files in the alias dir,
not .sh files.
2025-02-25 23:25:22 +01:00
e523aa74b2
git: Add git-bug status toggle alias gbo
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.
2025-02-25 23:25:21 +01:00
133910be08
git: Show bug description if bug id passed to gb
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
```
2025-02-25 23:25:21 +01:00
5986206e51
git: Add git-bug select alias gbs 2025-02-25 23:25:20 +01:00
53a1c049e0
git: Add git-bug edit function gbe
Can edit either the description of a bug (`gbe <bug-id>`) or a specific
comment (`gbe <comment-id>`).
2025-02-25 23:25:08 +01:00
1d2dbc0df2 git: Update basic git-bug aliases
Update for newer git-bug versions (compiled from main trunk not tags).
2025-02-24 14:22:36 +01:00
6af3ba52dc qutebrowser: Add shellcheck search engine
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'.
2025-02-24 14:22:36 +01:00
cbea1efbc0 vcs: Update user commit signing email
Changed to my more up-to-date main method of contact.
2025-02-24 14:22:36 +01:00
528a4e7fce sh: Add bat to cat alias
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.
2025-02-24 14:22:36 +01:00
f04340acbd zsh: Use zr plugin manager if it exists
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.
2025-02-24 14:22:36 +01:00