Pinephone: Autorotation – neuer Device Tree ändert Device ID

Liebe Linuxphones Fans,

im kürzlich erst erschienenen Artikel:

Pinephone: automatische Screenrotation einschalten

wird das Device 2 als der Beschleunigungssensor benutzt. Ein Update des Pinephone dtb ( Device Tree Binary ) in dem die verbauten Sensoren des Pinephones beschrieben sind, änderte letzte Woche durch ein Update die Device ID des Beschleunigungssensors.

Pinephone: Autorotation – neuer Device Tree ändert Device ID

ich Euch da mal eine kleine Autoerkennung gebaut:

#!/bin/bash

COUNT=$(ps auxf | grep -v grep| grep -c autorotate)

if [ $COUNT -gt 2 ]; then 
	killall -9 autorotate
	exit
fi

# Autodetection

DEVID="iio:device2"

DEVICES=$(ls /sys/bus/iio/devices/)
for dev in $DEVICES; do
	if [ -f /sys/bus/iio/devices/$dev/in_accel_x_raw ]; then
		DEVID="$dev"
	fi
done

OLD=""

while :
do
	X=$(cat /sys/bus/iio/devices/$DEVID/in_accel_x_raw)
	Y=$(cat /sys/bus/iio/devices/$DEVID/in_accel_y_raw)
	Z=$(cat /sys/bus/iio/devices/$DEVID/in_accel_z_raw)

	if [ $X -gt 15000 ] && [ "$OLD" != "N" ]; then
		# portray mode
		wlr-randr --output DSI-1 --transform normal
		OLD="N"
	fi
	if [ $Y -gt 15000 ] && [ "$OLD" != "90" ]; then
		#Landscape 90
		wlr-randr --output DSI-1 --transform 90
		OLD="90"
	fi
        if [ $Y -lt -15000 ] && [ "$OLD" != "270" ]; then
                #Landscape 270
		wlr-randr --output DSI-1 --transform 270
		$OLD="270"
        fi
	sleep 0.5
done

Damit geht es jetzt immer.

Pinephone: automatische Screenrotation einschalten

Liebe Linuxphone Fans,

einige Distributionen verteilen die Rohfassung von Phosh. Bei Fedora kann diese keine automatische Screenrotation.

Pinephone: automatische Screenrotation einschalten

Ich habe da mal kurz Abhilfe geschaffen. Ihr braucht zwei Files:

/usr/local/sbin/autorotate:

#!/bin/bash

COUNT=$(ps auxf | grep -v grep| grep -c autorotate)

if [ $COUNT -gt 2 ]; then 
	killall -9 autorotate
	exit
fi

OLD=""

while :
do
	X=$(cat /sys/bus/iio/devices/iio:device2/in_accel_x_raw)
	Y=$(cat /sys/bus/iio/devices/iio:device2/in_accel_y_raw)
	Z=$(cat /sys/bus/iio/devices/iio:device2/in_accel_z_raw)

	if [ $X -gt 15000 ] && [ "$OLD" != "N" ]; then
		# portray mode
		wlr-randr --output DSI-1 --transform normal
		OLD="N"
	fi
	if [ $Y -gt 15000 ] && [ "$OLD" != "90" ]; then
		#Landscape 90
		wlr-randr --output DSI-1 --transform 90
		OLD="90"
	fi
        if [ $Y -lt -15000 ] && [ "$OLD" != "270" ]; then
                #Landscape 270
		wlr-randr --output DSI-1 --transform 270
		$OLD="270"
        fi
	sleep 0.5
done

Dann ausführbar machen : chmod 755 /usr/local/sbin/autorotate

Nun noch ein Desktopfile angelegt : /usr/share/application/screenrotate.desktop

[Desktop Entry]
Name=Screenrotate
Exec=autorotate
Type=Application
StartupNotify=false
Icon=/home/pine/Bilder/screenrotate.png
Name[de_DE]=Bildschirmdrehen

und lesbar machen: chmod 644 /usr/share/application/screenrotate.desktop

Wer das jetzt im Autostart haben will, muß das Desktopfile noch nach ~/.config/autostart/ kopieren.

Ein Icon könnt Ihr Euch dann selbst als „/home/pine/Bilder/screenrotate.png“ ablegen. Selbstverständlich könnt Ihr auch ein andere Icon/Verzeichnis dafür benutzen, da seid Ihr völlig frei.

Das Script terminiert sich beim Aufruf selbst, wenn es schon gestartet wurde. So kann man es ein und ausschalten.Wer das für einen anderen Kernel/Distro als Fedora 5.11.2 benutzen möchte, müßte ggf. die Pfade für /sys/bus/ anpassen.

 

Pinephone: MPV im Landscape starten

Liebe Linuxphone Fans,

heute drehen wir mal am Bildschirm rum und kommen zu einem besseren Videoerlebnis.

Pinephone: MPV im Landscape starten

Es hat mich schon lange genervt, daß die Apps dem Desktop nicht sagen, in welcher Lage er sich befinden soll, also senkrecht oder waagerecht / Portray- oder Landscapemode. Wenn man MPV in Portraymodus gestartet hat, kam der Film, aber als Briefmarke. Heute ändern wir das. Ihr braucht: wlr-randr und libva-request für die Hardwarebeschleunigung, also installieren wir das: „dnf install wlr-randr libva-request -y„.

Jetzt legen wir ein Script mit „touch /usr/local/sbin/rmpv“ an und geben dem als Rechte 755 mit: „chmod 755 /usr/local/sbin/rmpv„. Nun füllen wir dies noch mit Inhalt:

#!/bin/bash

export PATH=/home/pine/.local/bin:/home/pine/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin

wlr-randr –output DSI-1 –transform 270

export LIBVA_DRIVER_NAME=v4l2_request
export LIBVA_V4L2_REQUEST_VIDEO_PATH=/dev/video0
export LIBVA_V4L2_REQUEST_MEDIA_PATH=/dev/media0

mpv –osd-duration=10000 –fs –hwdec=vaapi-copy –vo=gpu,drm –player-operation-mode=pseudo-gui „$1“

wlr-randr –output DSI-1 –transform normal

Natürlich gehe ich davon aus, das Ihr schon MPV drauf habt. Sollte das nicht der Fall sein, dann installiert kurz die RPMFusion Repos und installiert es mit „dnf install mpv -y“ nach.

Im nächsten Schritt müßt Ihr root werden oder sudo benutzen und /usr/share/applications/mpv.desktop so ändern:

Exec=/usr/local/sbin/rmpv %U

Glückwünsche, das war es schon.