Skip to content

Instantly share code, notes, and snippets.

View hjanuschka's full-sized avatar
🤖
-.-

Helmut Januschka hjanuschka

🤖
-.-
  • Vienna/Austria
View GitHub Profile
@hjanuschka
hjanuschka / 0570-hid-magicmouse-emit-device-timestamp.patch
Created October 19, 2026 17:06
hid-magicmouse: emit the Magic Mouse/Trackpad 18-bit 1kHz device timestamp as MSC_TIMESTAMP (fixes velocity spikes from Bluetooth report bursts in userspace consumers)
From: Helmut Januschka <helmut@januschka.com>
Subject: HID: magicmouse: report the device timestamp as MSC_TIMESTAMP
The Magic Mouse and Magic Trackpad touch reports carry an 18-bit
timestamp from the device's 1 kHz clock, which the driver documented
but discarded. Over Bluetooth, reports arrive in bursts whose wall-
clock spacing says nothing about when the touches were sampled, so
any userspace consumer computing velocity from arrival times sees
spikes. Accumulate the device clock wrap-aware into microseconds and
emit it as MSC_TIMESTAMP, like hid-multitouch does for other devices.
@hjanuschka
hjanuschka / pr_body.md
Last active October 15, 2026 20:47
CSSWG PR draft: [css-text-4] text-justify: kashida + text-kashida-space

Summary

Reintroduces a kashida value to the text-justify property and adds a companion text-kashida-space property to css-text-4.

  • text-justify: kashida — justify by inserting cursive elongation (kashida) at a limited number of positions per word, with inter-word spacing as fallback.
  • text-kashida-space: <percentage> — controls the ratio of elongation to word-separator expansion. Initial 100%.
History (archaeology trace — click to expand)
@hjanuschka
hjanuschka / 9002-platform-x86-amd-pmc-ms-s1-max-lps0-quirk.patch
Last active October 8, 2026 22:27
amd_pmc: skip LPS0 handler on MINISFORUM MS-S1 MAX (firmware only implements Microsoft LPS0 _DSM via SMI; OS_HINT hangs s2idle)
From: Helmut Januschka <helmut@januschka.com>
Subject: [PATCH] platform/x86/amd/pmc: firmware-handled LPS0 quirk for MINISFORUM MS-S1 MAX
The MINISFORUM MS-S1 MAX (SHWSA, Strix Halo) ships firmware whose LPS0
PEP device only implements the Microsoft _DSM UUID; its entry/exit
functions trap into SMM (port 0xB2, 0xEA/0xEB) and perform the platform
sleep handshake there. The AMD _DSM UUID advertises no entry/exit
functions at all (function mask 0x3).
When amd_pmc additionally sends OS_HINT, s2idle never resumes: with both
@hjanuschka
hjanuschka / README.md
Last active July 28, 2026 12:19
Chrome 150 style invalidation regression with :nth-child(... of S):has(...)::after

Chrome 150 regression: stale ::after style for :nth-child(... of S):has(...)

Summary

Chrome 150 fails to update a generated ::after pseudo-element after an ancestor class starts matching a selector containing this combination:

:nth-child(3n + 2 of .ad-count):has(+ .LIFY_block)::after
@hjanuschka
hjanuschka / SKILL.md
Last active June 22, 2026 23:17
Chromium autoreview-style code review skill without ch CLI
name chromium-autoreview-no-ch
description Autoreview-style Chromium code review without the ch CLI. Uses git/local files and public Chromium Gerrit REST only.
compatibility No ch dependency. Requires Python 3 and optional local Chromium checkout. Public Gerrit CLs only unless browser/auth cookies are added manually.

Chromium Autoreview Without ch

You are doing practical issue-finding for Chromium-style code review. This is modeled after public Chromium autoreview comments, but does not require the ch

@hjanuschka
hjanuschka / sddm-gist.md
Created June 15, 2026 19:55
SDDM chromium-test greeter - full wallpaper (no grey overlay)

SDDM greeter screenshot (chromium-test theme, full wallpaper, no overlay)

Decode with: base64 -d sddm.png.b64 > sddm.png

iVBORw0KGgoAAAANSUhEUgAAB4AAAASwCAIAAACVUsChAAEAAElEQVR4nOz96ZokuXEgiprBIzKrqtkrF5HUSmnmSud+333/F7mLzhxpRkcUxRHZe3dVLhEOuz+wOPbdl8hOE1Ud6Q4YDIDBYBvg+NFffwwAiAhDwUGIyAAQgAAIAIgIAAC5XZKMGhwAAEStFOYeqkzg8VqC2nS75VQhIiIKnHIcAJCB+adoFoA0WkYAAIRIgEQEtDQnfi4EICECkRjbKUoHN9sCFPUVYsLxLOEDgmyDIk1R+LGq7lGYoJhoNssX9s4hbIMxyUIhDSY/6yqyO8bU29iIgEdGidRssABFwIjI5F7J5MBzcxiCeAeDLxgBRxDNBwenf9bshTkYuYnEweYM4KiOxJqrxgbAKUxeAjMRmW/12BIRQ0ah/i5y0t1WcvRzLlgRADjRxOEdx0+v7PML++V1ejtzJADghMSIzpxOBEhIiNxDvMbaRzK7K5sIDk4KSRlhqBZuFTNjTDQ3AUW4Rbwsp6ofYhyYaAtbJFkc2wG2ki0Bk7vzKwhIis25CaW/X2uEYaG6JSS07qNBiSjWJUtMBhcYxlpJzJQ2JUZBHFsTkxBKuy8gPaNk83iHSobU6UJi0yGlEleNYZs2iJwAgBDNgbTMQPuVeI4Qt+BSwGDhQ626L9yCLMVmy5+E2jR0kMsySOANoDQlk6OUmKPgE0SciduUBAbbw4OOCZfUQPR0gM+cWcYjRKkjeE0seqzGvvwbFoFEZKqgzpAWqogut6u/TIVHl/QHHKT6J/02RKQwcAAQfxAoDhBcQQhIQuMWLog0hQ1QIYe9/uarJJpDsY5cjhLvTPFoNkcsZQcFnwdWByxsY3KCYx+llAdPsETfGWVEc9J64
@hjanuschka
hjanuschka / README.md
Last active June 8, 2026 17:53
SOCBB metadata RFP pilot candidate: kDRAFT_WasmBranchHinting -> kWasmBranchHinting

kDRAFT_WasmBranchHinting cleanup

This is a small example of the kind of work I think the SOCBB metadata RFP is asking for.

It is not uploaded to Chromium yet. I am keeping it as a concrete sample while checking whether this category of work is in scope.

The mismatch

Chromium still has this WebDXFeature counter:

@hjanuschka
hjanuschka / cross-compiling-chromium-for-macos-on-linux.md
Created June 2, 2026 16:16
Cross-compiling Chromium for macOS (x64+arm64) on Linux with my own RBE

Cross-compiling Chromium for macOS on Linux (with my own RBE)

A while back I wrote about building Chromium for Windows on a Linux box, driven entirely by my own RBE backend — no Google RBE, no Google-hosted toolchain. It worked beautifully and the obvious next question landed in my inbox more than once:

"Cool. Now do macOS."

My gut reaction was: no chance. macOS means Apple's toolchain, xcrun,

@hjanuschka
hjanuschka / gist_ab_proof.md
Created May 13, 2026 13:13
Newsletter form captcha submit – A/B proof (RED/GREEN)

Newsletter Form – Captcha Submit A/B Proof

Short verification of the current integration on https://www.alstertal-einkaufszentrum.de/newsletter-registration/unsubscribe/?subId=… (same code path as Rheinparkcenter and other ECE centers).

TL;DR

The captcha SDK works correctly. The intermittent rejection comes from a custom submit listener that is registered before KROT.interceptForm(form) and calls e.stopImmediatePropagation(). When that branch is taken, the SDK's own submit listener never runs, so no token is computed and no token is sent.

@hjanuschka
hjanuschka / rheinparkcenter-neuss-captcha-fix-README.md
Created May 7, 2026 11:57
Rheinparkcenter Neuss captcha integration fix: missing token in POST due to fragile click handler flow

Rheinparkcenter Newsletter – Captcha Token Missing Fix

Context

On https://www.rheinparkcenter-neuss.de/newsletter-registration/, the current integration sometimes logs a generated captcha solution but the final POST request does not include it.

Root cause is the custom click-based orchestration around KROT.getSolution() plus KROT.interceptForm(form, true).

Existing problem points

Current code:

  • intercepts button click instead of stable form submit semantics