I am studying for my bachelor of computer science (now called “bachelor of informatics”) at H-BRS.

Currently I focus on Zig, Rust, and the NixOS ecosystem.

Find me on:


Prior Work Worth Mentioning

Nix / NixOS

Rust

Zig

  • embed-dir: A small Zig library for embedding directory trees with @embedFile

Java

  • libGDX tutorials on YouTube
  • libgdx-utils and libgdx-utils-box2d, a support library for libGDX-powered games and applications
    I have not worked on this library in years so I am happy to see it live on in Tommy Ettinger’s fork.

Lua

Involvement in Free and Open Source Projects

Home Manager

Authored

  • PR #1185 “kakoune: add missing hook name” (merged)
  • PR #1163 “picom: add windowType option” (open)
  • PR #1162 “kakoune: implement whitespace highlighter” (closed)
  • PR #932 “parcellite: fix GTK theme” (closed)
  • PR #296 “compton: fix syntax error” (merged)
  • PR #56 “zsh: add plugins submodule” (closed)
  • PR #20 “home-environment: interactively inspect non-managed files” (closed)
  • PR #19 “fix home.activation.checkLinkTargets” (closed)
  • PR #16 “browserpass: add module” (merged)
  • PR #3 “home-environment: fix evaluation error on undefined lang.base” (closed)
  • PR #2 “fix evaluation error if programs.git.extraConfig is null” (closed)
  • issue #122 “dunst process is not picked up => two dunst processes” (closed)
  • issue #84 “blueman-applet: exception on startup” (closed)
  • issue #55 “zsh: plugins” (closed)
  • issue #4home.file.<name>.source cannot begin with a dot” (closed)

Reviewed or Merged

  • PR #1106 “zsh: support extra settings in oh-my-zsh plugins” (merged)

NixOS-shell

  • PR #5 “remove extraPath option and passthrough user $PATH” (merged)
  • PR #4 “configure using NixOS module” (merged)
  • PR #1 “add command line switch for custom mounts” (merged)
  • issue #3 “9p cache / VM options” (closed)

NixOS

  • PR #74781 “buku: fix bukuserver (missing module)” (merged)
  • PR #74552 “GoTTY: 0.0.13 -> 2.0.0-alpha.3” (merged)
  • PR #54197 “nixos/mysql: fix option ensureDatabases” (merged)
  • PR #29113 “nixos/mfi: remove dangling reference” (closed)
  • PR #26552 “exa: 2017–04–02 -> 0.6.0” (merged)
  • PR #26541 “browserpass: 2017–04–11 -> 1.0.5” (merged)
  • PR #26215 “mcrcon: init at 0.0.5” (merged)
  • PR #25802 “znapzend service: fix autostart” (merged)
  • PR #25009 “znapzend service: fix reload” (merged)
  • PR #21538 “rename sound.enableMediaKeys to sound.mediaKeys.enable and add sound.mediaKeys.volumeStep” (merged)
  • PR #20020 “add sound.volumeStep config option” (closed)
  • issue #17068sound.enableMediaKeys values in percent instead of hardware value” (closed)
  • issue #20448 “broken package: Ren’Py” (closed)
  • issue #20449 “broken package: Pitivi” (closed)
  • issue #21540 “broken package: Tiled” (closed)
  • issue #22737 “buildRustPackage fails for projects with no dependencies in Cargo.toml” (open)
  • issue #23282 “buildRustPackage is broken” (closed)
  • issue #24438 “znapzend service: reload is broken” (closed)
  • issue #29026 “theme-vertex is broken” (closed)
  • issue #29037 “diffoscope is broken” (closed)
  • issue #29055 “xflux-gui is broken” (closed)

indoc

  • PR #33 “support tab-based indentation” (merged)

id-tree

  • PR #89 “add map method” (open)
  • PR #87 “add serialization support for Trees” (merged)

Yew

  • PR #480 “StorageService::restore() takes immutable receiver” (merged)

yew_svg

  • PR #1 “fetch yew from crates.io” (merged)

ructe

  • issue #33 “escaped curly brace emitted twice” (closed)
  • issue #4 “parse error with <style> tag” (closed)

Cursive

  • PR #254 “transparent StackView layers” (merged)
  • PR #107 “return length and width from utils::prefix(_length)” (merged)
  • PR #106 “Text Style” (closed)
  • PR #105 “add shell.nix file for Nix users” (merged)

micro

  • issue #841 “selection is off by one when selecting char by char starting from multi-cursors with one-char selection” (open)
  • issue #808 “special characters confuse SpawnMultiCursor” (closed)
  • issue #807 “selection jumps with multiple cursors” (closed)
  • issue #804 “PageUp / PageDown sometimes get stuck” (closed)
  • issue #803 “VCS plugin fails to install” (closed)
  • issue #799 “characters lost after multi-cursor undo” (closed)
  • issue #798 “index out of range after failed undo with multiple cursors” (closed)

Zig

  • issue #4797 “std.os.setsockopt broken with libc” (closed)

libGDX

  • PR #3151 “added Polyline#setVertices(float[])” (merged)
  • PR #2976 “fix #2974 GeometryUtils#polygonArea(float[], int, int)” (merged)
  • PR #2945 “libgdx-utils as 3rd party extension” (closed)
  • PR #2572 “added missing setMaxLength(..) to GWT RopeJoint” (merged)
  • PR #2571 “added missing methods to GWT WeldJoint” (merged)
  • PR #2328 “fixed PolygonRegionLoader GWT compatibility and error report” (merged)
  • PR #2316 “set empty Gdx.* fields and made getComponent methods work in headless backend” (merged)
  • PR #1692 “added FileHandle#listFiles(FilenameFilter)” (closed)
  • PR #1665 “merged old and new PolygonRegionLoader” (merged)
  • PR #1602 “added PolygonRegionLoader for the AssetManager” (merged)
  • PR #861 “rewrote InterpolationTest” (merged)
  • issue #3057 “com.badlogic.gdx.reflect.Method is missing annotation methods” (closed)
  • issue #2974 “GeometryUtils#polygonArea(..) is broken” (closed)
  • issue #2947 “ProgressBar#setAnimateDuration(float) is broken” (closed)
  • issue #2943 “missing ClassReflection#isArray(Class)” (closed)
  • issue #2777 “ScrollPane offsets widget by bar size” (closed)
  • issue #2710 “Box2DDebugRenderer draws incorrectly positioned AABBs for CircleShapes” (closed)
  • issue #2345 “FileHandle#exists() doesn’t close resource on iOS” (closed)
  • issue #1951 “ProgressBar requires knobBefore” (closed)

swaylock-fancy

  • PR #4 “fix image links” (merged)
  • PR #3 “fix multi-monitor if some are disabled” (merged)

Flowblade

  • PR #131 “fixed links to DEPENDENCIES.md” (merged)

jadpole.github.io

  • PR #7 “fixed ArcadeRS 1.6 code” (merged)