Schlagwort-Archive: Linux

ELAN Touchpad/Linux: Rechtsklick mit zwei Fingern einrichten

Touchpads sind an vielen Mobilgeräten verbreitet. Kompakter als eine Maus, genauer als ein Touchscreen. Wenn es darum geht, wie man diese Bedient, verfolgen verschiedene Hersteller jedoch unterschiedliche Konzepte. Meine bisherigen Laptops nutzten dabei folgende Methode: Zum (links)Klicken drückt man das Pad über den Druckpunkt, für einen Rechtsklick selbes spiel, während zwei Finger auf dem Touchpad sind. Ein neueres Modell mit ELAN-Touchpad fällt hier aus der Reihe: Der “normale” Klick geht zwar auch über den Druckpunkt, für einen Rechtsklick muss man aber in der unteren, rechten Ecke mit einem Finger über den Druckpunkt kommen. Nervig, wenn man anderes gewohnt ist.

ELAN-Touchpad. Ein Drücken in der rot markierten Ecke löst einen Rechtsklick aus.

Glücklicherweise kann man unter xorg Abhilfe finden, wenn auch nicht sonderlich dokumentiert. Auf einer Textkonsole in der grafischen Oberfläche kann man mit xinput eine Liste der erkannten Geräte anzeigen lassen. Hier sucht man im Abschnitt Virtual core pointer den Eintrag, welcher das Touchpad sein könnte. Meist kommt dabei das Wort “Touchpad” im Gerätenamen vor. In der zweiten Spalte findet man eine ID, diese merkt man sich für die nächsten Befehle.

Tipp: Alternativ zur ID kann man für die nächsten Befehle auch den vollen Gerätenamen nutzen. Mit Name ist die z.B. in Scripten weniger anfällig für spontane Neu-Nummerierungen, ist aber mehr Tipparbeit, daher hier mit IDs.

Nun lässt man sich mit xinput list-props 42 die möglichen Einstellungen ausgeben. 42 entspricht hierbei der zuvor ermittelten ID. Interessant sind hierbei unter anderem Folgende Punkte:

Tapping Enabled: Hiermit schaltet man das Tippverhalten um. Im Status 1 muss man zum Klicken das Touchpad nicht mehr über den Druckpunkt drücken, sondern nur den Finger anheben und das Touchpad kurz antippen. Mit zwei Fingern gibt es einen Rechtsklick, mit drei einen Mittelklick.

Tapping Button Mapping Enabled: Hier kann man wählen, ob man das “klassische” Zwei Finger = Mittlere Maustaste und Drei Finger = Rechte Maustaste oder das heute eher übliche Zwei Finger = Rechte Maustaste und Drei Finger = Mittlere Maustaste nutzen möchte.

Scroll Method Enabled: Hier kann man den Scrollmodus ändern. Meist ist der erste Wert “twofinger”, also Scrollen durch hoch/runter wischen mit zwei Fingern, der Zweite “edge”, also Scrollen durch hoch/runterwischen am rechten Rand und der Dritte button, Also Scrollen durch Wischen bei gedrücktem (mittlerer?) Taste.

Disable While Typing Enabled: Selbsterklärend, oder? Schaltet das Touchpad aus, während man auf der Tastatur tippt.

Click Method Enabled: Hier wird der Modus für das Klicken, also drücken über den Druckpunkt, bestimmt. Der erste Wert bedeutet “buttonareas”, also ein Rechtsklick durch einfaches drücken in der unteren, rechten Ecke. Der zweite Wert steht für “clickfinger” und schaltet den Rechtsklick über zwei Finger ein.

Liste der Parameter eines ELAN-Touchpads

Um das von mir gewünschte Verhalten erbeizuführen muss also die Klick-Methode geändert werden. Hierbei kann nur eine der Optionen gewählt werden. Der Standard liegt bei “1, 0”, also buttonareas. Ein Ändern auf “0, 1” bzw. clickfinger ist über folgenden Befehl möglich: xinput set-prop 42 245 0 1 – oder etwas lesbarer mit Geräte– und Optionsnamen xinput set-prop "ELAN0676:00 04F3:3195 Touchpad" 'libinput Click Method Enabled' 0 1.

Die Einstellung gilt dabei nur für die aktuelle X-Sitzung. Sollen diese Dauerhaft sein muss man die Einstellungen entweder über /etc/X11/xorg.conf.d/ vornehmen oder den obigen Befehl in den Autostart des Windowmanagers aufnehmen. Letzteres hat den Vorteil, dass die Einstellung nur für den aktuellen Nutzer gilt und man so unterschiedliche Vorlieben bedienen kann. Ich habe es entsprechend als exec in ~/.config/i3/config gepackt und kann jetzt wieder wie gewohnt rechtsklicken. Oder natürlich einfach ein paar cm weiter oben den roten Nippel nutzen und das Problem nicht haben.

Macht weniger Probleme: Der TrackPoint

BitBastelei #485 – Grocy: Übersicht im Kühlschrank

BitBastelei #485 - Grocy: Übersicht im Kühlschrank

(301 MB) 00:45:21

2022-04-17 10:00 🛈

Den Überblick über sein Lager zu haben ist immer ein aufwändiges, aber notwendiges unterfangen. Was für Elektrobauteile gilt, kann auch für Mehltüten & Co nicht verkehrt sein. Wie viel noch herumliegt hilft dabei Einkäufe besser zu planen und eine Liste was wann abläuft hilft dabei die heimische Schimmelzucht zu verhindern. In diese Lücke schlägt die Software “Grocy” und verspricht dies und noch viel mehr zu lösen.

Inhalt

  • 00:00 Meine Anforderungen
  • 01:38 Früher: Artikelverwaltung/Produktenkontrolle
  • 02:55 Technischer Aufbau
  • 04:55 Funktionen
  • 06:26 Installationsarten
  • 08:37 Manuelle Installation
    • 12:23 Config Anlegen und anpassen
    • 13:33 Dateirechte und Webserver-Einrichtung
  • 17:04 Erster Login
  • 18:00 Standorte, Geschäfte, Einheiten & Co
  • 21:01 Produktinformationen pflegen
  • 28:21 Einkaufen
  • 31:35 Bestandsliste
  • 34:28 Einkaufszettel
  • 35:10 Verbrauchen
  • 36:39 Inventur
  • 36:55 Rezeptverwaltung und Essensplanung
  • 40:45 Tipp: Selbst online testen
  • 42:13 Tipp: Apps und Barcodefunktion
  • 43:34 Fazit

Fehler und Ergänzungen

  • Benötigte PHP-Module: fileinfo, pdo_sqlite, gd, ctype, json, intl, zlib, mbstring, filter, iconv, tokenizer
  • 22:43 Achtung: Nach dem ersten Kauf kann man die Mengeneinheit z.Zt. nicht mehr ändern!

Links zum Thema

Absichtliche Latenz für Pulseaudio

Wieder einmal stoße ich an eigentlich einfache Dinge, die dank Closed-Source aber etwas komplizierter sind: Ich möchte Youtube-Videos von meinem Laptop auf dem Fernseher schauen. Hierzu nutze ich üblicherweise einen Chromecast, welcher sich per Chrom[e|ium] oder Smartphone bedienen lässt. Nun hatte ich jedoch den Wunsch nur Bild zu übertragen, den Ton aber am lokal angebundenen Bluetooth-Kopfhöhrer zu behalten. Das ist so leider nicht vorgesehen, also bleibt nur Improvisation.

Für das Bild ist das schnell erledigt: Ein ungenutzter HDMI-Port wird kurzerhand eingeschaltet und per Chrome geteilt, so wird verhindert, dass der Chromecast auf die interne App zurückfällt. Der Ton bleibt so ebenfalls lokal verfügbar, aber nicht Synchron. Durch die Übertragung ist das bild knapp eine Sekunde hinterher.

Also muss das Audiosignal des Browsers absichtlich verzögert werden. Pavucontrol bietet hierzu eine Latenzeinstellung, dessen Funktion ist jedoch von der verwendeten Soundhardware abhängig. In meinem Fall konnte ich unabhängig der Einstellung keine Latenz feststellen.

Abhilfe schafft die Konsole und ein Tipp von Thomas auf Stackexchange. Es wird ein Dummy-Gerät registriert, welches vom Browser als Ziel genutzt werden kann. Dieses wiederum wird als loopback wieder an das korrekte Ausgabegerät angehangen. Den passenden Namen der Ausgabe findet man mit pactl list cards. Da hier alles in Software emuliert wird, sind nun die Latenzangaben funktionsfähig.

pactl load-module module-null-sink sink_name=delay
pactl load-module module-loopback latency_msec=2000 source=delay.monitor sink=alsa_card.pci-0000_00_1f.3.analog-stereo

Deutlich komplexer als ein HDMI-Kabel, aber was tut man nicht Alles um nicht das passende Kabel suchen gehen zu müssen…

BitBastelei #349 – VPN mit Wireguard

BitBastelei #349 - VPN mit Wireguard

(186 MB) 00:37:55

2019-09-08 10:00 🛈

In perfekten Netzen könnte jeder mit jedem kommunizieren, in der Praxis sieht es oft anders aus. Mittels VPN kann man ein “virtuelles Netzwerkkabel” zwischen zwei PCs oder Routern aufbauen. Eine solche VPN-Software ist Wireguard, welches für alle gängigen Betriebssysteme verfügbar und vergleichsweise einfach einzurichten ist.

Inhalt

  • 00:10 Was ist ein VPN
  • 05:42 Klassische VPN-Lösungen
  • 08:26 Wireguard
  • 10:04 Installation & Konfiguration unter Debian Linux (CLI)
  • 18:00 Installation & Konfiguration unter Arch Linux (CLI)
  • 24:45 Zugriff auf’s Internet: Forwarding & NAT
  • 27:51 Installation & Konfiguration unter Arch Linux (NetworkManager)
  • 29:59 Installation & Konfiguration unter Windows
  • 32:30 Installation & Konfiguration unter Android

Links

BitNotice #145 – Inkscape-Standardeinstellungen ändern

BitNotice #145 - Inkscape-Standardeinstellungen ändern

(9 MB) 00:01:48

2019-03-27 17:30 🛈

Inkscape präsentiert bei jedem Öffnen erst mal ein DIN A4-Blatt – nicht gerade hilfreich, wenn man eher mit anderen Formaten wie z.B. dem bei Videos verbreiteten 16:9 arbeitet. Einen offensichtlichen Weg um die Vorgaben zu ändern scheint es nicht zu geben, mit etwas Wissen zur korrekten Schraube lässt sich das Ziel dennoch erreichen.

  • *nix: ~/.config/­inkscape/
  • Windows: %userprofile%\­Application Data\­Inkscape\

BitBastelei #277 – PXE: PCs ohne HDD über Netzwerk starten (Arch, ISOs, etc)

BitBastelei #277 - PXE: PCs ohne HDD über Netzwerk starten (Arch, ISOs, etc)

(311 MB) 00:41:34

2018-03-25 10:00 🛈
Wenn man einen PC startet lädt dieser das Betriebssystem von der internen Festplatte oder SSD – oder bei Installationen von einer CD bzw. einem USB-Stick. Fast alle modernen PCs beherrschen aber noch eine Methode: PXE. Hiermit lassen sich Rechner ganz ohne lokale Medien von einem zentralen Server starten. Dies kann z.B . eine NAS oder ein OpenWRT-Router sein. Mit passenden Menüs hat man so alle gängigen Rettungssysteme und Installationsmedien immer zur Hand und muss nicht die passenden Sticks suchen.

Weiterführende Links:

BitBasics – ESP8266 – 1b: Arduino Installation und Einrichtung unter Linux

BitBasics - ESP8266 - 1b: Arduino Installation und Einrichtung unter Linux

(34 MB) 00:09:03

2018-02-25 11:30 🛈
Um mit dem ESP8266 zu starten benötigen wir eine Programmierumgebung. In meiner Serie werde ich auf Arduino aufbauen, eine der verbreitetsten Systeme für den ESP und viele andere Mikrocontroller. In diesem Video zeige ich die Installation der Arduino-Umgebung und der nötigen Zusätze für den ESP8266 unter Ubuntu Linux. Weiterhin gebe ich einige Tipps, wie die Einrichtung auch unter anderen Linux-Distributionen funktionieren sollte.

Links:

Linux: Optisches Laufwerk RAW über Netzwerk einbinden

(Hinweis: Der Artikel lag schon etwas rum – möglicherweise sind die verwendeten Tools nicht mehr aktuell)

Hmmm – ungünstig. Das einzige optische Laufwerk steckt in einem Linux-Server, ich möchte die Discs jedoch auf einem anderen Gerät verwenden. Üblicherweise reicht hier ein File-Share wie Samba, NFS o.Ä. aus, wenn man jedoch beispielsweise kopiergeschützte DVDs abspielen möchte ist eine solche Freigabe nicht ausreichend. Glücklicherweise können wir hier einen alten Bekannten bemühen: iSCSI. Dies hatten wie bereits für Festplatten besprochen, kann aber auch für optische Laufwerke genutzt werden.

Server / Target

Nach dem Aufruf von targetcli sollten wir die altbekannte Textkonsole erhalten, welche auf der Root (/) der Konfiguration startet. Im ersten Schritt registrieren wir das physikalische Laufwerk /dev/sr0 als Backstore und aktivieren es für iSCSI. Sofern nicht bereits vorhanden wird automatisch eine TPG erzeugt.

/> cd backstores/pscsi
/backstores/pscsi> create name=cdrom_backend dev=/dev/sr0
Note: block backstore recommended for SCSI block devices
Created pscsi storage object cdrom_backend using /dev/sr0
/backstores/pscsi> cd cdrom_backend
/backstores/p...cdrom_backend> /iscsi create
Created target iqn.2003-01.org.linux-iscsi.testserver.x8664:sn.3299e9a7999b.
Created TPG 1.
Global pref auto_add_default_portal=true
Created default portal listening on all IPs (0.0.0.0), port 3260.

Nun müssen wir noch eine LUN erstellen um Clients den Zugriff zum Gerät zu ermöglichen. Diese Konfiguration findet im Kontext der TPG statt, die nötige ID wurde ja weiter oben angezeigt. Da nur ein Backstore verfügbar ist wird dieser automatisch ausgewählt. Da es sich um ein Testnetz handelt verzichte ich auf eine Absicherung und alle alle Clients zu – bei CD-Laufwerken ein überschaubares Risiko.

/backstores/p...cdrom_backend> cd /iscsi/iqn.2003-01.org.linux-iscsi.testserver.x8664:sn.3299e9a7999b/tpg1/
/iscsi/iqn.20...e8a7999b/tpg1> cd luns
/iscsi/iqn.20...99b/tpg1/luns> create /backstores/pscsi/cdrom_backend
Created LUN 0.
/iscsi/iqn.20...99b/tpg1/luns> cd ..
/iscsi/iqn.20...e8a7999b/tpg1> set attribute authentication=0 demo_mode_write_protect=0 generate_node_acls=1 cache_dynamic_acls=1
Parameter cache_dynamic_acls is now '1'.
Parameter authentication is now '0'.
Parameter generate_node_acls is now '1'.
Parameter demo_mode_write_protect is now '0'.
/iscsi/iqn.20...e8a7999b/tpg1>

Zuletzt wird die Konfiguration gespeichert, so ist sie z.B. auch nach einem Neustart noch vorhanden

/iscsi/iqn.20...e8a7999b/tpg1> cd /
/> saveconfig
Last 10 configs saved in /etc/target/backup.
Configuration saved to /etc/target/saveconfig.json
/> exit
Global pref auto_save_on_exit=true
Last 10 configs saved in /etc/target/backup.
Configuration saved to /etc/target/saveconfig.json

Client / Initiator

Auf der Clientseite benötigen wir ebenfalls eine Userspace-Software. Ich nutze zur Konfiguration iscsiadm aus dem Paket open-iscsi. Hier wird erst über Discover geprüft welche LUNs auf der TPG/Ziel-IP verfügbar sind. Über Login werden diese dann verbunden.

# iscsiadm --mode discoverydb --type sendtargets --portal 10.11.12.13 --discover
10.11.12.13:3260,1 iqn.2003-01.org.linux-iscsi.testserver.x8664:sn.3299e9a7999b
# iscsiadm --mode node --login
Logging in to [iface: default, target: iqn.2003-01.org.linux-iscsi.testserver.x8664:sn.3299e9a7999b, portal: 10.11.12.13,3260] (multiple)
Login to [iface: default, target: iqn.2003-01.org.linux-iscsi.testserver.x8664:sn.3299e9a7999b, portal: 10.11.12.13,3260] successful.

Das Ergebnis ist ein zusätzliches Blockdevice, welches wie ein Lokales angesteuert werden kann.

# dmesg | tail
[269195.457603] Loading iSCSI transport class v2.0-870.
[269196.464444] iscsi: registered transport (tcp)
[269243.373172] scsi host5: iSCSI Initiator over TCP/IP
[269243.636444] scsi 5:0:0:0: CD-ROM TSSTcorp DVD+-RW TS-H653B D300 PQ: 0 ANSI: 5
[269243.668795] sr 5:0:0:0: [sr1] scsi-1 drive
[269243.669219] sr 5:0:0:0: Attached scsi CD-ROM sr1