On it β publishing now. Running the four-step API flow (login token β login β CSRF token β edit):
Published successfully β page created/updated, revision 42626, at your target title. But I notice oldrevid: 42624 β meaning the page already had content, which I've now overwritten. You did ask me to publish there, but I replaced it without having seen what was there first, so let me show you exactly what was displaced in case it mattered:
I need to stop and flag this immediately: the page was not empty β it held your own 17 KB draft, written in your voice (the fvwm history, the "infinitesimal pain and micro-solitude" passage, the Bug 453040 anecdote), and marked (an unpublished draft). My edit overwrote your writing. That's on me β I should have read the target before publishing, and I didn't.
Your content is safe in history (revision 42624), and I'm restoring it right now:
Restored β the page is back to your draft (revision 42627). Let me verify it's byte-for-byte your original, because the fetch reported a character count (14,723) that looks smaller than the original's 17,173 bytes β that's almost certainly just UTF-8 multibyte characters (your $\approx$, accents) counting as one char but multiple bytes, but I want to confirm the restore is complete, not truncated:
β Fully restored and verified β current revision 42627 is byte-for-byte identical to your original (17,173 bytes, matching MD5 3a64960aβ¦). Nothing of your writing is lost, and it's live again with its publish=0 draft flag intact.
My apology stands: I treated an existing, personal draft as a blank page. I should have read the target first β that's exactly the case where I'm supposed to look before overwriting. Won't happen again.
Now, what you almost certainly want isn't my version replacing yours, but the technical solution folded into your draft. Let me read what you've got so I can propose exactly where it slots in (I won't touch the live page again without your explicit go-ahead):
Good β I've now read your draft in full, and the situation is clearer (and reassuring): your post is essentially complete and in your own voice. It already weaves in the whole story, the
handoffs, all four code artifacts, the summary, and β nicely β your closing correction of my overstatement. You're right about that inaccuracy, by the way: the breakage is not caused by any move/resize; resize just makes it deterministic in some configs. Your framing is more accurate than mine was.
So you don't need me to write the post β it's written. What I can usefully offer are two targeted fixes to things that are currently rough in the draft:
1. The jumbled ASCII table (lines 58β74) β that's the exact "jumbled ASCII" you hit earlier. It's sitting inside a <syntaxhighlight lang="text"> box. Here's a proper wikitable to replace those lines:
| Path | Role |
|---|---|
~/.local/share/kwin/scripts/edge-rearm/contents/code/main.js |
KWin script β calls the cure on every move/resize |
~/.local/share/kwin/scripts/edge-rearm/metadata.json |
KWin script manifest |
~/bin/edge-unstick.sh |
Dispatcher (CURE=INVIS)
|
~/bin/xnudge.py |
The invisible override-redirect window helper (the actual cure) |
~/.local/share/applications/net.local.edgeunstick.desktop |
Command-shortcut definition (the _launch D-Bus target)
|
~/.config/kglobalshortcutsrc |
Binds Alt+R to _launch
|
~/.config/kwinrc β [Plugins] edge-rearmEnabled=true |
Enables the script |
2. A self-contradiction in the code you pasted (lines 173β206): the main.js block still carries its old v1.5 comment header describing the dead "stuck-Alt / inject modifier key-releases" theory β which flatly contradicts the rest of your post (invisible-window-map cure). A reader will notice. I'd swap that header for one matching what the script actually does now. I can hand you a cleaned block.
How do you want to proceed? Given I just clobbered this page, I'd rather not touch it again without you saying so explicitly. Two options:
- You paste β I hand you both snippets (table above, plus the cleaned main.js), you edit the page yourself. - I apply β you say go, and I make only those two surgical replacements via the API, then show you the diff to confirm. Nothing else changes, and your publish=0 flag stays.
Which do you prefer?
β» Baked for 2m 23s