the linters & prettier config should apply to my whole subdir.
This is somewhat nasty, you have to `npm` in the toplevel dir before
it starts working, otoh dev tooling is dev time and I’m working on
these alone.
Change-Id: I96721f549b24a40b7ffbb2d310f37a40d2590b2b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12573
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
Add a tapping command that does not quantize the timestamps.
For the silence warning, we make it BPM-dependent (defaulting to
120BPM as everywhere else), meaning for slower songs we give a higher
possible time difference before we display a warning.
Change-Id: Idefc44166639b23c2105a1a810ac22ed84457225
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12563
Reviewed-by: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
That was the original intention, but I didn’t understand that lua
would fail with "r+" if the file does not exist (and "w+" truncates
the file, so you have to try "r+" and then fall back to "w+" which
will create the file as well.)
Change-Id: Ib238f0b73ab403ceeaf035d053a14eba718d1b48
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12562
Reviewed-by: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
This adds support for uploading the lyrics part of an .lrc file to
lrclib, see https://lrclib.net/docs
I pretty much only used ChatGPT to translate the rust “proof of work”
challenge to nodejs and it worked first try lol.
Before uploading the lyrics, I construct a webview with a preview of
what is going to be uploaded, and then only upload when that is
accepted. Pretty sweet.
Also adds two commands for increasing/decreasing the current timestamp
by 100ms and starting playback from 2 seconds before that, very handy
for fine-tuning lines.
Change-Id: Ia6adfe26d0c21c62554c8f8c55e97e2caec95d1e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12561
Reviewed-by: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
If the bpm header already exists, overwrite it with the new value.
Also use an existing header as suggestion.
Change-Id: If6431e8056504db437c31313d885b5ba0d0e55d5
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12553
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
Insert the length and stuff into the .lrc file headers.
Change-Id: Id2565c95c516208f1e46b79d5b8da50f3d6bee62
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12552
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
It’s a bit crappy and really depends on the input field opening
quickly again (which it often doesn’t really do…), but it was the
easiest way I figured how to do it haha.
Aligning to eigth notes is pretty much the easiest way to sync
everything up after tapping in the timestamps (for most songs).
Change-Id: Ibbb072f62b6ee17d983e81b6c1554bc3516fa636
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12551
Reviewed-by: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
* tap-bpm: simple CLI program that accepts key inputs and averages a
BPM value
* lyric-timing-mpv-script: If you press Ctrl+l, mpv attaches the
current timestamp to a .lrc file named after the song.
This is for manually timing missing songs for uploading them to
https://lrclib.net/
* extension: vscode extension for `.lrc` files, currently with the
following features:
1. A “jump to LRC position” command which reads an .lrc timestamp
from the current line and expects mpv to listen on
`~/tmp/mpv-socket` (via `--input-ipc-server`), and will seek to
the exact timestamp (down to the ms) in the currently playing
song.
2. Some initial linting warnings
- A lint that warns if the difference to the next timestamp is
more than 10s (which usually means there’s an instrumental and
the previous line is stuck)
- A lint that checks that timestamps are monotonically
increasing
Change-Id: I32a4ac0e2c5bbe3d94e45ffcf647f81bc7c08aa0
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12537
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
Leaving out any symbol characters improves the search accuracy.
Change-Id: I00c993d4099bb8e9701783b53afc9423f1b2f674
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12480
Reviewed-by: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
It prevent some shortcuts from being used the "natural way", like
only being able to type Ctrl-Alt-T with the left hand.
Luckily, RALT isn't needed that frequently, so we can expose it right
next to GACS (on the G and M keys).
Change-Id: Iccba3b1f6a5e2b01195f87471fd9972967b4e175
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12572
Reviewed-by: flokli <flokli@flokli.de>
Tested-by: BuildkiteCI
Previously the script ignored workspaces that were further up, but in practice I
don't care about their order, I just want them to be gone.
To keep IDs stable, this implements a fix where the current workspace is first
moved to the first position (invisible), and windows are then reaped afterwards.
I've tried this in various combinations and it seems to work fine.
Change-Id: Ifc3eb272af761670ec83305665ec2103eb4f269e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12564
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: tazjin <tazjin@tvl.su>
turns out emacs over ssh forwarding works well if you use ssh -Y
Change-Id: I9c1134d880265b765b0dc52d587ee331fda29f7f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12546
Autosubmit: aspen <root@gws.fyi>
Reviewed-by: aspen <root@gws.fyi>
Tested-by: BuildkiteCI
Instead of installing and configuring fuzzel and wl-clipboard locally, put them
into Nix, too.
Change-Id: I4b909ac1d0577f8bd176bbaae71583c59aaf5362
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12544
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
I think that's the last module I was missing for this to be "feature-complete".
I think ideally the things displayed by the taskbar would have the same order as
the current Niri layout, but I can tackle this later. This might require a patch
in Niri.
Change-Id: I67cc2366b6c510830021954372e29ce0be7d8363
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12543
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
Brings this a LOT closer to the Windows95 style theming that I'm trying to
achieve with the whole thing.
Change-Id: Ifb457a682cb83a78e4a8e2ba2bb4a5b96f3eaf1f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12525
Tested-by: BuildkiteCI
Autosubmit: tazjin <tazjin@tvl.su>
Reviewed-by: tazjin <tazjin@tvl.su>
This is now stable enough that I can put it under home-manager management.
Change-Id: Ifd92ca8951e0adfddf962a4cd845c3e4fe80cc21
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12516
Autosubmit: tazjin <tazjin@tvl.su>
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
The previous config was copy&pasted from somewhere, this config makes it look
like an actual thing instead. Much nicer!
Change-Id: I8eb68149964376d6dbe4cef53e86030b5357d17d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12514
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
This should make it possible to use Quassel over Yggdrasil.
Change-Id: Iad81af7c85771928fd50860393d58a14d7878a40
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12502
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
ddclient is back in nixpkgs and nixos[0], so let's just use that, and
remove the backported package from third_party.
[0] 8a8ec36615
Change-Id: Ib14ab68158a6799c78d71e3bea63869ec9fc1a48
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12500
Tested-by: BuildkiteCI
Reviewed-by: aspen <root@gws.fyi>
Autosubmit: aspen <root@gws.fyi>
* users/aspen: disable readyset overlay
sysbench + postgresql is broken, which breaks the overlay, but I suspect the
overlay is no longer needed
Change-Id: I1845370c88f5fab35fd700535e6fb0972a4ca556
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12494
Tested-by: BuildkiteCI
Autosubmit: tazjin <tazjin@tvl.su>
Reviewed-by: flokli <flokli@flokli.de>
Reviewed-by: aspen <root@gws.fyi>
This is a stable release that has the IPC features this crate depends on.
Change-Id: I4aaba076a53d7a95a00dd2d59a02c69af6c4d63a
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12495
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
Autosubmit: tazjin <tazjin@tvl.su>
This requires overriding build-time configuration, so I've added a little fixed
point that takes care of that.
Change-Id: Ie990e362c6e00aa6e3be66b04af4b62034b03515
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12489
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: tazjin <tazjin@tvl.su>
First test of running an Yggdrasil service, lets see how that goes!
Change-Id: Iac10b72f7314a45df13ea539c5c1cef6c994154f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12484
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
This was in //ops for legacy reasons, but this is really not necessary.
Change-Id: I758b257838993ef0f7d55809c137118826e2ba85
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12483
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
I'm looking to replace tailscale with this for some use-cases.
Change-Id: I00f765a403879ef048e635a6fedcfdde3f685159
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12482
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
Issue a wildcard certificate using the Yandex Cloud DNS plugin (which is where
DNS for tazj.in is hosted).
Change-Id: I44fa48add660f4f4324ec4b056a81d78c45ff4f4
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12481
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
if there are not synced lyrics.
Change-Id: I3e8d452fc63847505886ea0bb01d29dd5dcb56d1
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12477
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
This never went anywhere.
We had problems with `git2` breaking, so let’s remove everything that
this pulled in.
Change-Id: Ia29d827cd6fc7b97aedca36a37f8418384579c38
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12474
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
Instead of serving a stale table when a torrent gets deleted, fetch
the whole view again. This is a little wasteful, but torrents
shouldn’t get deleted very often, so it’s fine.
Change-Id: If33d517270421881852158f27dbc3e7d24880d3b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12333
Reviewed-by: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
If transmission does not know about a torrent file anymore, we should
not only delete our local transmission torrent hash, but also the
torrent file.
Before, it would always display the old weighted torrent, even after
removing it from transmission. Now, it will automatically clear and
switch to the new top-weighted mp3 version.
Small bug: since we only clean the torrents after already fetching the
table data, we get a stale result right after clean-up. Maybe we
should re-do the fetch instead.
Also logs what gets deleted and only ever deletes if there is
something to delete, leading to more obvious traces.
Change-Id: I0f6c1dc3669d0f549efaba2c46c34b77c1eb7e33
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12332
Reviewed-by: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
I changed the seeding weight, so now it would not show already
downloaded torrents, prompting me to fetch stuff that I already have
in new qualities. Obviously, that’s not the best idea.
Kinda surprised it’s this easy to fix heh.
Change-Id: I6bbf325672a91d794d144c006ccf3d702a581bce
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12330
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
AppException would be a console-pretty-printed version for http
errors, which would print all the escape codes in the jaeger traces of
the exception, making it more-or-less unreadable.
So instead, let’s make AppException two cases, an ErrorTree case which
is printed as-is (no color), and a “Pretty” case which is printed
using the pretty module (colors on console, no colors in otel).
Somewhat involved, I guess this is temporary until I figure out what
is really needed.
Change-Id: Iff4a8651c5f5368a5b798541efc19cc7ab9de34b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12232
Reviewed-by: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
* Prefer MP3 versions to save on ratio
* Definitely never download 24bit flacs, they are not worth it at all
One needs to remove the `seeding_weight` column and restart
for it to have any effect (no real migrations yet, but eh)
bump
Change-Id: I30cc3ea05c4352316e3929f93d90fc27ce833682
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12222
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
I don't use workspaces and don't have them bound to anything in my Niri
configuration. However, when an external screen is unplugged, its workspace
(and windows) move to one of the remaining outputs.
This adds a tool that makes the windows available again by "reaping" them from
the other workspaces and moving them to the current one.
For starters I'll bind this to a key and see how it works in practice.
Change-Id: I18b2d60e93c8397dd637cdc426b4e46af5725558
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12451
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
Makes it possible to just keep switching focus or moving a column in the
direction of the target screen. This is MUCH easier to think about.
Change-Id: I0488b8d338261b83327dc476e0173b222de9221a
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12467
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
Finally no more setting this up manually!
Change-Id: I75d7a53623cc05a0a88f70e20e881a944b6ed818
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12446
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
The bundled tool is sort of convenient, I first tried it when debugging
an issue (that doesn't affect this module) and it seems a bit nicer.
Change-Id: Ief948f8e46e51f05b04fe7628ab9298284f780e9
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12444
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
Autosubmit: sterni <sternenseemann@systemli.org>
This configuration is not automatically placed anywhere yet, because I'm also
still actively iterating on it.
Change-Id: I0a13fcbc2b9a5587480f6a69a73ab99b36d209e6
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12435
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: tazjin <tazjin@tvl.su>
Adds the current (fairly simple) Niri configuration, which is annealed from
a few days of being poked constantly.
This isn't yet deployed through home-manager or anything as I'm still doing
stuff with it manually.
Change-Id: I3dfcafb55d98d9655585d3128e1088fc13e60cc7
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12434
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
Autosubmit: tazjin <tazjin@tvl.su>
These don't actually really work the way I want, but I have no idea how font
configuration works.
Change-Id: I228ab234f37d8ae0847cbdc6a3431fc29a2585e6
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12433
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: tazjin <tazjin@tvl.su>
Apparently something called a "desktop portal" needs to provide a magic
"service" and blabla; the TL;DR is that adding all this Gnome stuff makes screen
sharing work.
Tested using the Mozilla WebRTC test page:
https://mozilla.github.io/webrtc-landing/gum_test.html
Seems like our Chromium/Firefox are new enough not to require magic settings for
Wayland.
Change-Id: I250d857a0e941ef63fffca17a9c9feed14ec1bd9
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12432
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
According to discussions in the Niri issue tracker, pipewire must be started
before niri in order for screen sharing to work. Why? No idea.
Change-Id: Id4ff890dd2536b3cc98b14992cd799d257eec9be
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12431
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
logind doesn't like reliably suspending, and apparently it has a bunch of bugs
around dock detection (I don't even use docks), but maybe this helps
Change-Id: Ia822799cde838d8d41a67f9d39d59d1fa0306116
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12429
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
wezterm has very strange rendering bugs which I have no interest in debugging
Change-Id: I59a068df9b4474830ba4706bf8e626b45cd015f0
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12424
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
This commit is experimental for now.
The backstory is this: There are use-cases where tiling windows (as in EXWM,
which I normally use) annoy me. There are also use-cases where stacking
windows (as in e.g. XFCE, which I tried for a bit) are annoying.
Scrolling WMs are a new thing which is sort of similar to tiling, but as it adds
more screen real estate doesn't require shuffling around or resizing of existing
windows basically ever.
I'm going to trial this (assuming I can get everything that's relevant for me
set up) and see how it goes.
Change-Id: I603c87b8ebd7fbde763d9d4708e098e9079889c5
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12402
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: tazjin <tazjin@tvl.su>
Got into weird states more than once while the private configuration wasn't
available ...
Change-Id: I75b1a242d9cf10f5e4ac27ad7fce3e40a79898cc
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12401
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
I'm doing a wayland experiment, this is necessary for now. This disables some
parts of the configuration which are not going to work with wayland.
Change-Id: I61d0042fd52f2c7cade2794c0d5b5849ecaf5229
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12399
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>