SCAD's Design & Develop

SCAD's Design & Develop

Проекты Александра К.Д.

AutoRotate [Linux]

AutoRotate.sh — небольшой скрипт-твик, без которого фактически бесполезны возможности ноутбука-трансформера при работе на большинстве Debian Linux. Немного покопав различную документацию, и посмотрев примеры, мне удалось написать простенький скрипт, который отслеживает положение гироскопа ноутбука через monitor-sensor (из пакета iio-sensor-proxy), и обнаружив изменение его состояния через inotifywait (из пакета inotify-tools), применяет серию команд к графическому серверу xorg (xrandr) и матрице тачскрина (xinput). В результате вы имеете корректно реагирующий на изменение положения ноутбук или планшет под управлением Linux.

Данный скрипт протестирован и используется на Dell Inspiron 13 (5378), под управлением Linux kUbuntu 18.04. Именно с этого устройства взято название тачскрина, передаваемое первым параметром команде xinput в теле скрипта. Если у вас нет тачскрина, то вы можете спокойно удалить эту команду (с параметрами), а так же предваряющий ее оператор «&&»


Дата выпуска: 2018
Совместимость с ОС: Ubuntu Linux 16+
Язык интерфейса: Английский
Язык и среда программирования (IDE): — Bash
— Kate
Особенности программы:
  • Логирование датчиков положения (гироскопа)
  • Автоматическое обнаружение положение экрана
  • Универсальная структура команд, независимая от вашего DM
  • Поддержка поворота не только изображения но и тачскрина
  • Совместимость с запуском средствами Cron
#!/bin/sh
# Auto rotate screen based on device orientation

# Receives input from monitor-sensor (part of iio-sensor-proxy package)
# Screen orientation and launcher location is set based upon accelerometer position
# Launcher will be on the left in a landscape orientation and on the bottom in a portrait orientation
# This script should be added to startup applications for the user

# Clear sensor.log so it doesn't get too long over time
> sensor.log

# Launch monitor-sensor and store the output in a variable that can be parsed by the rest of the script
monitor-sensor >> sensor.log 2>&1 &

# Parse output or monitor sensor to get the new orientation whenever the log file is updated
# Possibles are: normal, bottom-up, right-up, left-up
# Light data will be ignored
while inotifywait -e modify sensor.log; do
# Read the last line that was added to the file and get the orientation
ORIENTATION=$(tail -n 1 sensor.log | grep 'orientation' | grep -oE '[^ ]+$')

# Set the actions to be taken for each possible orientation
case "$ORIENTATION" in
normal)
    xrandr -o normal && xinput set-prop "ELAN Touchscreen" --type=float "Coordinate Transformation Matrix" 0 0 0 0 0 0 0 0 0 ;;
bottom-up)
    xrandr -o inverted && xinput set-prop "ELAN Touchscreen" --type=float "Coordinate Transformation Matrix" -1 0 1 0 -1 1 0 0 1 ;;
right-up)
    xrandr -o right && xinput set-prop "ELAN Touchscreen" --type=float "Coordinate Transformation Matrix" 0 1 0 -1 0 1 0 0 1 ;;
left-up)
    xrandr -o left && xinput set-prop "ELAN Touchscreen" --type=float "Coordinate Transformation Matrix" 0 -1 1 1 0 0 0 0 1 ;;
esac
done

 

Поделиться ссылкой:

  • Нажмите, чтобы открыть на Facebook (Открывается в новом окне) Facebook
  • Нажмите, чтобы поделиться в X (Открывается в новом окне) X
  • Нажмите, чтобы поделиться в Telegram (Открывается в новом окне) Telegram
  • Нажмите, чтобы поделиться на LinkedIn (Открывается в новом окне) LinkedIn
  • Ещё
  • Нажмите для печати (Открывается в новом окне) Печать
  • Нажмите, чтобы поделиться на Reddit (Открывается в новом окне) Reddit
  • Нажмите, чтобы поделиться записями на Pocket (Открывается в новом окне) Pocket
  • Нажмите, чтобы поделиться записями на Tumblr (Открывается в новом окне) Tumblr
  • Нажмите, чтобы поделиться записями на Pinterest (Открывается в новом окне) Pinterest
  • Послать ссылку другу по электронной почте (Открывается в новом окне) E-mail
  • Нажмите, чтобы поделиться в WhatsApp (Открывается в новом окне) WhatsApp
Debian Linux Ubuntu гироскоп Настольное Скрипт Твик
01.07.2018 Alexandr K. D. 18

Навигация по записям

Кроссплатформ — в массы! → ← Team Speak 3 Сервер — Отключен

Мои разработки и творечество

  • Программы и Скрипты
  • Моб. приложения
  • Веб-прилож. и сайты
  • 3D Реконструкции
  • Фотограмметрия
  • Игры и Заставки
  • Рисунки и Рендеры
  • Видеопроекты
  • Справочники

Дочерние проекты

  • Каталог YMDB
  • Галерея ФанАрта
  • КаироВики RUS
  • Знаменный архив
  • Minecraft-серверы
  • Android SOS APKs

Мой блог

  • Minecraft
  • Другие игры
  • Blender Q&A
  • Картография

Последние публикации

  • Подземный храм (Фотограмметрия)
  • Базилика-в-Базилике (Фотограмметрия)
  • Базилика 1935 (Фотограмметрия)
  • Как сменить язык интерфейса в Blender?
  • Как сшить два или более неравномерных объекта в Blender

Вступайте в наше сообщество!

Поддержка сайта

Облако тэгов

3D Моделирование 3D движок Agosft Metashape Blender Debian Flash Linux Ubuntu UCOZ VR-приложение Краткий Кроссплатформенное Мобильное Модель Музыка Оболочка Органайзер Бета-Версия ВебПриложение Видео Игра Иллюстрированный Интерактивное Настольное Паблик Пение Подробный Приложение Сайт Сервер Сервера Сетевое Справочник Схема Таблица Тайловое 3D Твик Телеформат Утилита Фильм (Полнометражка) Фотограмметрия гироскоп Реконструкция Рендер Рисунок

Связь со мной

  • FaceBook: scadl
  • VKontakte: scadl
  • Skype: scad.lunch

  • SkethFab: scadl
  • deviantArt: scadl
  • ArtStation: scadl
  • SoundCloud: scadl
  • GitHub: scadl

  • YouTube: scadl
  • Twitch: scad_lunch

  • scad.luncher@gmail.com
Powered by WordPress | theme Layout Builder
 

Загружаются Комментарии...