GNU/Linux@Dell Latitude 7490: Scrollen mit mittlerer TrackStick-Taste

Im Gegensatz zu den TrackPoints bei Lenovo Notebooks kann der TrackStick des Dell Latitude 7490 nicht ohne Anpassungen in Kombination mit der mittleren TrackStick-Taste zum Scrollen benutzt werden. Es gibt aber sowohl für X11 als auch Wayland eine Möglichkeit, dem Latitutde middle-button-scroll beizubringen. Bei mir funktioniert beides unter Fedora 29.

Unter X11

Wer noch X11 nutzt, hat es am Einfachsten. Hier muss nur eine Konfiguration für libinput erstellt werden. Also einfach den folgenden Inhalt kopieren und als Datei unter „/etc/X11/xorg.conf.d/40-libinput-trackpoint.conf“ oder „/usr/share/X11/xorg.conf.d/40-libinput-trackpoint.conf“ speichern.

Datei „40-libinput-trackpoint.conf“

Section "InputClass"
        Identifier "Trackpoint Scroll"          
        MatchIsPointer "on"                    
        MatchDevicePath "/dev/input/event*"  
        Option "ScrollMethod" "button"
        Option "ScrollButton" "2"
        Driver "libinput"                          
EndSection

Wer statt libinput lieber evdev nutzen möchte, findet bei Francesco Provino eine alternative Konfiguration.

Credit/Quelle: askubuntu.com


Unter Wayland

Unter Wayland ist eine einfache Anassung per libinput Konfiguration nicht möglich. PeterCyx hat aber eine (vielleicht nicht unbedingt schönen, aber funktionierenden) Workaround gefunden. Dafür den folgenden Inhalt als Datei unter „/usr/lib/hook/hook.c“ speichern.

Datei „hook.c“

#define _GNU_SOURCE
#include <dlfcn.h>
#include <libinput.h>

typedef const char* (*orig_get_name_t)(struct libinput_device *device);

const char* libinput_device_get_name(struct libinput_device *device) {
  set_scroll_emulation(device); // Inject the code to set scrolling emulation
  orig_get_name_t orig_get_name;
  orig_get_name = (orig_get_name_t) dlsym(RTLD_NEXT, "libinput_device_get_name");
  return orig_get_name(device);
}

void set_scroll_emulation(struct libinput_device *device) {
  libinput_device_config_middle_emulation_set_enabled(device, LIBINPUT_CONFIG_MIDDLE_EMULATION_ENABLED);
  libinput_device_config_scroll_set_method(device, LIBINPUT_CONFIG_SCROLL_ON_BUTTON_DOWN);
  libinput_device_config_scroll_set_button(device, 2);
}

Als nächstes müssen die zum Kompilieren noch fehlenden Dateien nachinstallierte werden. Anschließend den Kompilierbefehl ausführen.

sudo dnf install libinput-devel libudev-devel
sudo gcc -shared -ldl -linput -fPIC hook.c -o hook.so

Jetzt noch den folgenden Inhalt zum Einbinden der Library in der Datei „/etc/profile.d/libinput.sh“ speichern.

Datei „libinput.sh“

export LD_PRELOAD="$LD_PRELOAD /usr/lib/hook/hook.so"

Nach einem Neustart sollte jetzt das Scrollen mittels mittlerem TrackStick-Button problemlos funktionieren.

Credit/Quelle: PeterCyx

--
Beitrag interessant? Ich freue mich über einen Kauf bei Amazon*.

Simplify my tech life I: Fenstermanagement@macOS

Es gibt kaum etwas nervigeres, als Programmfenster mit der Maus von Hand nebeneinander anzuordnen. Im Gegensatz zu Windows 10 (z.B. Windows-Taste + Pfeiltaste) bringt macOS jedoch keine Shortcuts zum simplen Managen der Fensteranordnung auf dem Bildschirm mit. Um diese Funktion unter macOS nachzurüsten, habe ich bislang auf das BetterTouchTool gesetzt (das die eigentlich zuständige Komponente BetterSnapTool beinhaltet). Dem überbordenden Funktionsumfang von BTT habe ich letztlich dann aber doch nicht (mehr) genutzt (wie die Individualisierung der Touch Bar oder von Touchpad-Gesten).

Jetzt bin ich auf Magnet umgestiegen, das alle Funktionen mitbringt, die ich für mein Fenstermanagement brauche, aber auch nicht viel mehr. Leider nehme ich an, dass der Umstieg nicht viel an einem immer mal wieder auftretenden Problem ändern wird: ab und an funktionieren die Shortcuts nicht mehr, weil irgendein Safari-Tab oder anderes Programm vergessen hat, den macOS Secure Input Modus zum Schutz von Passworteingaben (der andere Programme vom Lesen der Tastatureingaben abhält) wieder zu beenden.

--
Beitrag interessant? Ich freue mich über einen Kauf bei Amazon*.

Netflix & Amazon Prime Video mit Firefox 59/60@Fedora 28

Bei dem Versuch, Netflix und Amazon Prime Video unter Fedora 28 mit Firefox 59 oder Firefox 60 zum Laufen zu bekommen, kann es an der einen oder anderen Stelle haken. Daher im Folgenden die fünf möglichen Stellschrauben, an denen zu drehen seien könnte, wenn es mal wieder nur „Whoops, something went wrong… “ beim Aufruf eines Netflix-Videos heißt.

  1. DRM in den Firefox-Einstellung angestellt?
    Unter Einstellungen->Allgemein im Firefox muss „Inhalte mit DRM-Kopierschutz wiedergeben“ angeklickt sein.
  2. Widevine Plugin in Firefox-Add-ons tatsächlich schon installiert?
    Das Widevine-Plugin muss im Firefox unter Add-ons->Plugins installiert sein und auf aktiv stehen, damit geschütze Videos abgespielt werden können.
  3. ffmpeg/ ffmpeg-libs installiert?
    Die neuen Firefox-Versionen benutzen unter GNU/Linux nicht mehr die gstreamer Libraries, stattdessen wird ffmpeg benutzt. Zur Installation wird das rpmfusion-free Repository benötigt:

    wget http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-28.noarch.rpm
    dnf install rpmfusion-free*
    dnf update
    dnf install ffmpeg ffmpeg-libs
    

    Danach sollten sich H.264 kodierte Videos abspielen lassen, was sich auf folgender Info-Seite von YouTube zum HTML5-Videoplayback überprüfen lässt:

    https://www.youtube.com/html5?gl=DE&hl=de

  4. compat-ffmpeg28 installiert?
    Neben ffmpeg-libs wird compat-ffmpeg28, ebenfalls im rpmfusion-free Repository zu finden, benötigt:

    dnf install compat-ffmpeg28
    
  5. Den Neustart von Firefox nicht vergessen!
    Notfalls kann auch noch Mal der Webseitencache zu leeren sein. Im Firefox unter Einstellungen->Datenschutz & Sicherheit->Cookies und Websitedaten: Daten entfernen

Nach diesen fünf Schritten sollten sich hoffentlich die DRM-geschützten, H.264 kodierten Videos sowohl von Netflix als auch von Amazon Prime Video problemlos in Firefox 59 oder Firefox 60 abpsielen lassen.

--
Beitrag interessant? Ich freue mich über einen Kauf bei Amazon*.