TinyTinyRSS Plugin macOS CTRL to ⌘ Command

Da es unter macOS Catalina keine CTRL-Taste gibt, ist es nicht möglich mit dem Feedreader TinyTinyRSS via Tastenkürzel CTRL + ↑ bzw CTRL + ↓durch die Artikel zu blättern. Um diesen Fehler zu beheben gibt es ein Plugin auf Github . Es liest den UserAgent des Browsers aus und mappt die Taste CTRL auf die Taste ⌘/Command.

Der folgenden Code von Robert Irelan wird als index.php in dem Ordner $INSTALLATIONSPFADTTRSS/plugins.local/macos_keys/ abgespeichert. Später kann das Plugin in den Einstellungen aktiviert werden.

<?php
class MacOS_Keys extends Plugin {

    private $host;

    function about() {
        return array(1.0,
            "Remap keybindings containing Ctrl to use Cmd instead on MacOS",
            "telotortium");
    }

    function init($host) {
        $this->host = $host;

        $host->add_hook($host::HOOK_HOTKEY_MAP, $this);
    }

    function hook_hotkey_map($hotkeys) {
        // Only overwrite keybindings on macOS (formerly "Mac OS X").
        if (!preg_match(
                '/.*Mozilla\/5\.0 \(.*Mac OS X.*\).*/',
                $_SERVER['HTTP_USER_AGENT'])) {
            return $hotkeys;
        }

        foreach (array_keys($hotkeys) as $key) {
            if ($key[0] !== "^") {
               continue;
            }

            $parts = explode("|", $key);
            $parts[0] = preg_replace('/^\^/', "%", $parts[0]);
            if (count($parts) > 1) {
              $parts[1] = preg_replace('/^Ctrl([+-])/', 'Cmd\1', $parts[1]);
            }
            $newkey = implode("|", $parts);
            $hotkeys[$newkey] = $hotkeys[$key];
            unset($hotkeys[$key]);
        }
        return $hotkeys;
    }

    function api_version() {
        return 2;
    }

}
?>

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert.