Small (but incredibly useful!) scripts and utilities that don't need their own repo.
utils scripts zig atproto
README.md

MatrixFurry's Scripts #

Small (but incredibly useful!) scripts and utilities that don't need their own repo.

See --help for detailed usage info & examples!

Featured #

rawrsync #

Easily sync or deploy projects using rsync. Intended to somewhat replicate CLion's Deployment feature for use with other IDEs.

Configure with .rawrsync.toml in your project root. For example:

[org-server-23]
user = "username"
address = "org-server-23.tailnet-name.ts.net"
path = "/home/username/deployment/project/" # Destination path on the server

[vr-desktop]
user = "username"
address = "vr-desktop.tailnet-name.ts.net"
path = "/home/username/vr/project"

rawreplace #

Replace content between <a data-tag> elements in a markdown file

Allows you to directly edit the static parts of your markdown files without using templates, while also being able to update the content that is auto-generated by your CI scripts.

This is useful, for example, to keep package lists and descriptions up to date, and is used in this repo (see meta/update-readme.nu)!

atproto-app-passwords #

Create an app password for your ATProto account.

TODO: Add subcommands to list and delete

update-gitignore #

Quickly and easily create or update gitignore files from predefined templates.

tangled-quick-setup #

Easily and quickly set up Git and Jujutsu for Tangled. Sets up the following:

  • SSH Key
  • Commit signing
  • Change ID headers

ln-bin #

Quickly symlink executable files to ~/.local/bin/

auto-benchmark #

Set up and run a Blender benchmark on the specified device, then automatically compare your results to the results on Blender Open Data.

yt-rss #

Get an RSS feed for the specified YouTube channel.

far #

Find and replace text from all files in a directory, using the str replace syntax

Other Scripts #

abs-nu-exec #

Useful for executing nushell scripts in GNOME keyboard shortcuts without adding Homebrew PATH to your shell environment

adb-auto-connect #

Automatically find and connect to an Android device with Wireless Debugging over the local network.

You'll need to create a file at ~/.config/adb-auto-connect.nuon with the MAC Addresses you want to search for. For example:

[
  "ff:ff:ff:ff:ff:ff",
  "aa:aa:aa:aa:aa:aa"
]

clean-bin #

Remove broken symlinks from ~/.local/bin

detect-gpu-issues #

Detect issues with the GPU.

This was created for my own use on a Framework Laptop 16 with an external dock. Sometimes, the external GPU will have issues caused by my hacky m.2 to oculink adapter.

I can't guarantee this will work for you, but it does reliably detect when there is an issue on my system.

extract-m4a #

Extract audio from a m4a file to the codec's native container

homepod-mini-workaround #

see https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3279

lh-pairall #

Reset all Watchman (lighthouse_console) dongles and put them into pairing mode.

lyricfetch #

Note

I reccomend using a lrclib client such as lrcget or Chronograph instead!

Fetches lyrics from Genius using a Dumb instance, and adds them to your music library's metadata.

Currently only supports FLAC files.

pods-remote #

Create a podman socket connection over SSH This will not work with Tailscale SSH, see https://github.com/tailscale/tailscale/issues/5295

Update symlink targets from an old target directory to a new one

reset-envision-prefix #

Resets an Envision prefix and the downloaded repos. Useful to work around #65

start-service-if-needed #

Starts a systemd service if it is not already started, otherwise do nothing. Useful if you only want to ask for the password when the service actually needs to be started.

steam-disable-update #

Completely disable steam updates for a game or app.

Caveats to this approach:

  • Your "last played" time will never update
  • I haven't used it in a long time, so I can't guarantee it will work
  • It might cause other bugs, I haven't tested it extensively

toggle-extension #

Provides an easy way to toggle a GNOME extension. Useful for setting up keyboard shortcuts.

Deprecated #

podman-remote-tcp #

Create a Podman remote TCP connection to a machine over SSH. This is insecure, be careful.