From 51aef88456db37bc7f358278e8beb3e03a952ba0 Mon Sep 17 00:00:00 2001 From: Daniel Langbein Date: Mon, 23 May 2022 13:54:26 +0200 Subject: [PATCH] rm de-p1st-rotate --- build-pkg/pkglist-de-p1st.txt | 2 +- pkg/de-p1st-rotate/PKGBUILD | 23 ------- pkg/de-p1st-rotate/README.md | 56 ------------------ .../etc/de-p1st-rotate/config.cfg | 18 ------ ...nchers-with-left-and-right-arrow-icons.png | Bin 26316 -> 0 bytes .../usr/bin/de-p1st-rotate-screen | 44 -------------- .../usr/lib/de-p1st-rotate/get-orientation | 35 ----------- 7 files changed, 1 insertion(+), 177 deletions(-) delete mode 100644 pkg/de-p1st-rotate/PKGBUILD delete mode 100644 pkg/de-p1st-rotate/README.md delete mode 100644 pkg/de-p1st-rotate/etc/de-p1st-rotate/config.cfg delete mode 100644 pkg/de-p1st-rotate/launchers-with-left-and-right-arrow-icons.png delete mode 100644 pkg/de-p1st-rotate/usr/bin/de-p1st-rotate-screen delete mode 100644 pkg/de-p1st-rotate/usr/lib/de-p1st-rotate/get-orientation diff --git a/build-pkg/pkglist-de-p1st.txt b/build-pkg/pkglist-de-p1st.txt index 8fd446b..55345b0 100644 --- a/build-pkg/pkglist-de-p1st.txt +++ b/build-pkg/pkglist-de-p1st.txt @@ -1,4 +1,4 @@ -de-p1st-pam de-p1st-moz-touch de-p1st-cronie de-p1st-pacman-repo-chromium de-p1st-pacman-repo-surface de-p1st-image-width-limit de-p1st-signal-desktop de-p1st-docker de-p1st-zoom de-p1st-rotate de-p1st-locale de-p1st-systemd de-p1st-sudo de-p1st-screen de-p1st-htop de-p1st-pacman-mirrorlist de-p1st-networkmanager de-p1st-ucode-placeholder de-p1st-ucode-intel de-p1st-ucode-amd de-p1st-nano de-p1st-mkinitcpio de-p1st-makepkg de-p1st-grub de-p1st-font de-p1st-keyboard-de de-p1st-keyboard-x11-de de-p1st-gnupg de-p1st-redshift de-p1st-theme de-p1st-sddm-autologin-placeholder de-p1st-sddm-autologin-yoda de-p1st-sddm-theme-default de-p1st-sddm-theme-nordic de-p1st-gpu-generic de-p1st-gpu-amdgpu de-p1st-installer de-p1st-repo de-p1st-ssh-key-placeholder de-p1st-ssh-key-yoda +de-p1st-pam de-p1st-moz-touch de-p1st-cronie de-p1st-pacman-repo-chromium de-p1st-pacman-repo-surface de-p1st-image-width-limit de-p1st-signal-desktop de-p1st-docker de-p1st-zoom de-p1st-locale de-p1st-systemd de-p1st-sudo de-p1st-screen de-p1st-htop de-p1st-pacman-mirrorlist de-p1st-networkmanager de-p1st-ucode-placeholder de-p1st-ucode-intel de-p1st-ucode-amd de-p1st-nano de-p1st-mkinitcpio de-p1st-makepkg de-p1st-grub de-p1st-font de-p1st-keyboard-de de-p1st-keyboard-x11-de de-p1st-gnupg de-p1st-redshift de-p1st-theme de-p1st-sddm-autologin-placeholder de-p1st-sddm-autologin-yoda de-p1st-sddm-theme-default de-p1st-sddm-theme-nordic de-p1st-gpu-generic de-p1st-gpu-amdgpu de-p1st-installer de-p1st-repo de-p1st-ssh-key-placeholder de-p1st-ssh-key-yoda de-p1st-pacman de-p1st-smartcard de-p1st-kernel-default de-p1st-kernel-lts de-p1st-dns de-p1st-ssh de-p1st-base de-p1st-base-gui diff --git a/pkg/de-p1st-rotate/PKGBUILD b/pkg/de-p1st-rotate/PKGBUILD deleted file mode 100644 index 9554c59..0000000 --- a/pkg/de-p1st-rotate/PKGBUILD +++ /dev/null @@ -1,23 +0,0 @@ -# Maintainer: Daniel Langbein -_pkgname=rotate -_reponame=arch -pkgname="de-p1st-$_pkgname" -pkgver=0.1.1 -pkgrel=1 -pkgdesc="Scripts to automate screen rotation" -arch=('any') -url="https://codeberg.org/privacy1st/${_reponame}" -license=('MIT') -optdepends=('iio-sensor-proxy-git') # iio-sensor-proxy did not work on my Surface Go 2 but the git version dos -makedepends=('git') # to fetch source(s) via git -source=("git+${url}.git") -sha256sums=('SKIP') # 'SKIP' for git sources; Otherwise: autofill using updpkgsums, see https://man.archlinux.org/man/updpkgsums.8.en - -package() { - cd "${_reponame}/pkg/${pkgname}" - - install -Dm0555 usr/bin/de-p1st-rotate-screen "$pkgdir"/usr/bin/de-p1st-rotate-screen - install -Dm0555 usr/lib/de-p1st-rotate/get-orientation "$pkgdir"/usr/lib/de-p1st-rotate/get-orientation - - install -Dm0644 -o0 etc/de-p1st-rotate/config.cfg "$pkgdir"/etc/de-p1st-rotate/config.cfg -} diff --git a/pkg/de-p1st-rotate/README.md b/pkg/de-p1st-rotate/README.md deleted file mode 100644 index b1184ca..0000000 --- a/pkg/de-p1st-rotate/README.md +++ /dev/null @@ -1,56 +0,0 @@ -# Screen rotation scripts - -* https://kevinbecker.org/blog/2019/11/21/dell-venue-10-pro-5055-screen-rotation-in-gnome - -## Usage - XFCE4 - -Install the optional dependency `iio-sensor-proxy` or `iio-sensor-proxy-git`. - -Create a launcher with an icon symbolising "screen rotation" and use the following command: - -```shell -de-p1st-rotate-screen -``` - -Every time you click on the launcher, the screen gets rotated to the current device orientation. - -## Usage without acceleration sensor - XFCE4 - -Create two launchers, one with icon "arrow left" the other one with "arrow right" -and use the following commands: - -```shell -de-p1st-rotate-screen "left" -``` - -```shell -de-p1st-rotate-screen "normal" -``` - -With these two launchers rotating the screen left into portrait mode or back to landscape mode -is just one quick click away. - -![screenshot of the two launcher icons](launchers-with-left-and-right-arrow-icons.png) - - - - - -## inotifywait - -**TODO**: Use `ionotifywait` to periodically call the rotation script. - -See: https://linuxappfinder.com/blog/auto_screen_rotation_in_ubuntu - -## Surface Go 2 - -```shell -monitor-sensor --accell -``` - -just returns `orientation: undefined`. - -After I switched to `iio-sensor-proxy-git` it was **working** until I rebooted. -Since then it does not work as well ... - -**TODO**: Open an issue here: https://gitlab.freedesktop.org/hadess/iio-sensor-proxy diff --git a/pkg/de-p1st-rotate/etc/de-p1st-rotate/config.cfg b/pkg/de-p1st-rotate/etc/de-p1st-rotate/config.cfg deleted file mode 100644 index 954eb68..0000000 --- a/pkg/de-p1st-rotate/etc/de-p1st-rotate/config.cfg +++ /dev/null @@ -1,18 +0,0 @@ -# The screen to rotate. -# One can list all screens with "xrandr --listmonitors". -SCREEN=eDP-1 # other values could be "eDP1" or "HDMI1" - -# xinput devices to rotate together with the screen. -# One can list all xinput devices with "xinput --list". -DEVICES=() -#DEVICES+=( 'pointer:Wacom Pen and multitouch sensor Finger touch' ) # LenovoYoga460 -#DEVICES+=( 'pointer:Wacom Pen and multitouch sensor Pen stylus' ) # LenovoYoga460 -#DEVICES+=( 'pointer:Wacom Pen and multitouch sensor Pen eraser' ) # LenovoYoga460 -# -DEVICES+=( 'pointer:ELAN9038:00 04F3:2A1C' ) # SurfaceGo2 (default) -DEVICES+=( 'pointer:ELAN9038:00 04F3:2A1C Stylus Pen (0)' ) # SurfaceGo2 (default) -DEVICES+=( 'pointer:ELAN9038:00 04F3:2A1C Stylus Eraser (0)' ) # SurfaceGo2 (default) -# -#DEVICES+=( 'pointer:ELAN9038:00 04F3:2A1C touch' ) # SurfaceGo2 -#DEVICES+=( 'pointer:ELAN9038:00 04F3:2A1C stylus' ) # SurfaceGo2 -#DEVICES+=( 'pointer:ELAN9038:00 04F3:2A1C eraser' ) # SurfaceGo2 \ No newline at end of file diff --git a/pkg/de-p1st-rotate/launchers-with-left-and-right-arrow-icons.png b/pkg/de-p1st-rotate/launchers-with-left-and-right-arrow-icons.png deleted file mode 100644 index 00cf685a61103851cd1b71e3260f8b4079f4305d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26316 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 - exit 1; -fi - -if [ -z "${1}" ]; then - ORIENTATION="$(/usr/lib/de-p1st-rotate/get-orientation)" || exit $?; -else - ORIENTATION="$1" -fi - -# "xrandr ... || exit 1" does not work to check if $SCREEN exists, -# e.g. if the given output "$SCREEN" does not exist. -# Thus we check if $SCREEN is valid with grep: -xrandr --listmonitors | grep --quiet "\s${SCREEN}\$" || { - echo "The given screen ${SCREEN} does not exist." >&2; - exit 1; -} - -xrandr --output "${SCREEN}" --rotate "${ORIENTATION}" || { - echo "Could not rotate ${SCREEN}!" >&2; - exit 1; -} - -for i in "${DEVICES[@]}"; do - xinput --map-to-output "${i}" "${SCREEN}" || { - echo "Could not map device ${i} to screen ${SCREEN}! Please check output of 'xinput'." >&2; - FAILURE=true - } -done - -if [ "${FAILURE}" = "true" ]; then - # At least one error occurred. - exit 1; -fi diff --git a/pkg/de-p1st-rotate/usr/lib/de-p1st-rotate/get-orientation b/pkg/de-p1st-rotate/usr/lib/de-p1st-rotate/get-orientation deleted file mode 100644 index 947a17d..0000000 --- a/pkg/de-p1st-rotate/usr/lib/de-p1st-rotate/get-orientation +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/bash -# -# Inspired by https://linuxappfinder.com/blog/auto_screen_rotation_in_ubuntu - - -# Output of "monitor-sensor --accel | grep 'orientation'": -# === Has accelerometer (orientation: normal) -# Accelerometer orientation changed: right-up - -# Feed output of 'monitor-sensor' and stop after first match of 'orientation' -ORIENTATION_STR="$(grep -m 1 'orientation' <( monitor-sensor ))" || exit $? - -case "${ORIENTATION_STR}" in - *": normal"*) - ORIENTATION="normal"; - ;; - *": bottom-up"*) - ORIENTATION="inverted"; - ;; - *": right-up"*) - ORIENTATION="right"; - ;; - *": left-up"*) - ORIENTATION="left"; - ;; - *": undefined"*) - echo "Reported orientation is 'undefined'. Please rotate the device a bit and try again." >&2; - exit 1; - ;; - *) - echo "Could not parse ORIENTATION_STR: ${ORIENTATION_STR}" >&2; - exit 1; -esac - -echo "${ORIENTATION}"