TCH (statz) | #1, Főfasz (10466) |
3448 | #564f | ^ | Idézet | Fri, 04 Nov 2022 12:18:39 +01 |
94.21.*.* | *.pool.digikabel.hu |
A clipnotify egy kis CLI tool, ami képes az X11 vágólap változásait detektálni. Egész pontosan addig fut, amíg változás történik, így shell-ben tökéletesen lehet használni a vágólap figyelésére. Egy "hibája" van csak, hogy a változás alatt ő a szimpla kijelöléseket is érti, nem csak az "eseményeket". Namármost:A clipnotify.c 23. sora úgy néz ki, hogy XFixesSelectSelectionInput(disp, root, XA_PRIMARY, XFixesSetSelectionOwnerNotifyMask);Tehát itt iratkozik fel a PRIMARY eseményekre, a XA_PRIMARY segítségével. Namármost, XA_CLIPBOARD nincs, viszont XA_SECONDARY az van és ez takarja a CLIPBOARD-ot. Tehát a fenti sor így módosul: XFixesSelectSelectionInput(disp, root, XA_SECONDARY, XFixesSetSelectionOwnerNotifyMask);És máris csak az eseményekre fog reagálni, a kijelölésekre nem. Volt feature request erre a dologra, de eddig nem érkezett rá meg a jó válasz. Bedobtam nekik, had örüljenek. Sz*rk: Csináltam rá patchet is, hogy lehessen választani: -ce argumentum átadása esetén, csak a clipboard eventek fognak működni, amúgy default a primary event. Update: A jelek szerint benéztem valamit. A kód működik, de nem azért, mert az XA_SECONDARY a CLIPBOARD, ugyanis ha kitörlöm a XA_PRIMARY-s sort, akkor is működik a dolog. Az XInternAtom(disp, "CLIPBOARD", False) az, ami a clipboard eseményekre reagál, a másik kettőt beállítván azt csinálja, hogy azokra is reagál. De tök mindegy, mert egyrészt a kommentem következtében már lett 2.0-ás clipnotify, másrészt meg valaki csinált alternatívát, mert ez a request idáig el volt sikkadva. Szóval azért megérte megcsinálni. Update #2: A 2.0 bugos, azonnal kilép, mert a csávó a XNextEvent() meghívását a loop belsejébe rakta... Küldtem be erre is patchet... :P |