Как отключить сенсорную панель, когда крышка скручена или закрыта?

OK Я нашел ответ:

sudo service avahi-daemon restart
2
задан 30 November 2017 в 11:51

10 ответов

Чтобы проверить, находится ли устройство в режиме планшета или нет, мы могли бы прочитать значение (0 или 1):

/sys/devices/platform/thinkpad_acpi/hotkey_tablet_mode

Это значение переключается на определенные события. Мы можем уловить эти события и связать с ними скрипты с помощью демона событий acpid - Advanced Configuration and Power Interface.

1. Поймать события. Выполните одну из следующих команд, поверните крышку в режиме планшета, затем верните ее: acpi_listen или netcat -U /var/run/acpid.socket. Вот пример вывода:

$ acpi_listen
video/tabletmode TBLT 0000008A 00000001
video/tabletmode TBLT 0000008A 00000000

Обратите внимание, что когда крышка закрыта, результат отличается:

$ acpi_listen
button/lid LID close
button/lid LID open

1. Настроить acpid, чтобы распознать события, вызванные, когда устройство изменит состояние планшета. (Здесь не указаны сценарии открытия / закрытия крышки.) Выполните следующие строки в терминале как (одиночная) команда:

cat << EOF | sudo tee /etc/acpi/events/thinkpad-tablet-enabled
# /etc/acpi/events/thinkpad-tablet-enabled
# This is called when the lid is placed in tablet position on
# Lenovo ThinkPad X230 Tablet

event=video/tabletmode TBLT 0000008A 00000001
action=/etc/acpi/thinkpad-touchpad-twist-mode.sh 1
EOF
cat << EOF | sudo tee /etc/acpi/events/thinkpad-tablet-disabled
# /etc/acpi/events/thinkpad-tablet-disabled
# This is called when the lid is placed in normal position on
# Lenovo ThinkPad X230 Tablet

event=video/tabletmode TBLT 0000008A 00000000
action=/etc/acpi/thinkpad-touchpad-twist-mode.sh 0
EOF

Вышеупомянутые команды будут создавать файлы :

/etc/acpi/events/thinkpad-tablet-enabled /etc/acpi/events/thinkpad-tablet-disabled

3. Перезагрузите acpid, чтобы он мог перечитывать фильтры событий, включая те, которые вы только что добавили:

sudo systemctl restart acpid.service

3. Создать сценарий /etc/acpi/thinkpad-touchpad-in-twist-mode.sh, который отключит 1 и включит 0 сенсорную панель (&& сделает ее выполнимой):

cat << EOF | sudo tee /etc/acpi/thinkpad-touchpad-twist-mode.sh && sudo chmod +x /etc/acpi/thinkpad-touchpad-twist-mode.sh
#!/bin/sh
LANG=C                                                                                                     # Ensure stable parsing
export DISPLAY="\$(w | awk 'NF > 7 && \$2 ~ /tty[0-9]+/ {print \$3; exit}' 2>/dev/null)"                      # Get and export the current user's \$DISPAY
export XAUTHORITY="/home/\$(w | awk 'NF > 7 && \$2 ~ /tty[0-9]+/ {print \$1; exit}' 2>/dev/null)/.Xauthority" # Get and export the currentuser's \$XAUTHORITY
ID="\$(xinput | grep -ioP 'touchpad.*id=\K[0-9]*')"                                                         # Find the TouchPad device ID

if   [ "\${1}" -eq 0 ]; then xinput enable "\$ID"   # Laptop mode or Lid is open
elif [ "\${1}" -eq 1 ]; then xinput disable "\$ID"  # Tablet mode or Lid is closed
fi
EOF
/etc/acpi/events/thinkpad-tablet-enabled Затем скрипт будет анализировать id= сенсорной панели. И в зависимости от входной переменной $1 будет включена или отключена панель управления.

Ссылки:

Затем сценарий будет анализировать id= сенсорной панели. /etc/acpi/events/thinkpad-tablet-disabled ThinkWiki: установка Ubuntu 12.10 на Thinkpad Twist | Thinkpad-acpi | Wacom Tablet Stilus Ubuntu Форумы: Touchpad ВКЛ / ВЫКЛ | Почему это событие acpi не работает? О просмотре синтаксического анализа: программно найти текущее значение DISPLAY с помощью w и awk и удалить отдельные слова из строк с помощью grep -P '\K'.
0
ответ дан 22 May 2018 в 15:50

Чтобы проверить, находится ли устройство в режиме планшета или нет, мы могли бы прочитать значение (0 или 1):

/sys/devices/platform/thinkpad_acpi/hotkey_tablet_mode

Это значение переключается на определенные события. Мы можем уловить эти события и связать с ними скрипты с помощью демона событий acpid - Advanced Configuration and Power Interface.

1. Поймать события. Выполните одну из следующих команд, поверните крышку в режиме планшета, затем верните ее: acpi_listen или netcat -U /var/run/acpid.socket. Вот пример вывода:

$ acpi_listen video/tabletmode TBLT 0000008A 00000001 video/tabletmode TBLT 0000008A 00000000

Обратите внимание, что когда крышка закрыта, результат отличается:

$ acpi_listen button/lid LID close button/lid LID open

1. Настроить acpid, чтобы распознать события, вызванные, когда устройство изменит состояние планшета. (Здесь не указаны сценарии открытия / закрытия крышки.) Выполните следующие строки в терминале как (одиночная) команда:

cat << EOF | sudo tee /etc/acpi/events/thinkpad-tablet-enabled # /etc/acpi/events/thinkpad-tablet-enabled # This is called when the lid is placed in tablet position on # Lenovo ThinkPad X230 Tablet event=video/tabletmode TBLT 0000008A 00000001 action=/etc/acpi/thinkpad-touchpad-twist-mode.sh 1 EOF cat << EOF | sudo tee /etc/acpi/events/thinkpad-tablet-disabled # /etc/acpi/events/thinkpad-tablet-disabled # This is called when the lid is placed in normal position on # Lenovo ThinkPad X230 Tablet event=video/tabletmode TBLT 0000008A 00000000 action=/etc/acpi/thinkpad-touchpad-twist-mode.sh 0 EOF

Вышеупомянутые команды будут создавать файлы :

/etc/acpi/events/thinkpad-tablet-enabled /etc/acpi/events/thinkpad-tablet-disabled

3. Перезагрузите acpid, чтобы он мог перечитывать фильтры событий, включая те, которые вы только что добавили:

sudo systemctl restart acpid.service

3. Создать сценарий /etc/acpi/thinkpad-touchpad-in-twist-mode.sh, который отключит 1 и включит 0 сенсорную панель (&& сделает ее выполнимой):

cat << EOF | sudo tee /etc/acpi/thinkpad-touchpad-twist-mode.sh && sudo chmod +x /etc/acpi/thinkpad-touchpad-twist-mode.sh #!/bin/sh LANG=C # Ensure stable parsing export DISPLAY="\$(w | awk 'NF > 7 && \$2 ~ /tty[0-9]+/ {print \$3; exit}' 2>/dev/null)" # Get and export the current user's \$DISPAY export XAUTHORITY="/home/\$(w | awk 'NF > 7 && \$2 ~ /tty[0-9]+/ {print \$1; exit}' 2>/dev/null)/.Xauthority" # Get and export the currentuser's \$XAUTHORITY ID="\$(xinput | grep -ioP 'touchpad.*id=\K[0-9]*')" # Find the TouchPad device ID if [ "\${1}" -eq 0 ]; then xinput enable "\$ID" # Laptop mode or Lid is open elif [ "\${1}" -eq 1 ]; then xinput disable "\$ID" # Tablet mode or Lid is closed fi EOF /etc/acpi/events/thinkpad-tablet-enabled Затем скрипт будет анализировать id= сенсорной панели. И в зависимости от входной переменной $1 будет включена или отключена панель управления.

Ссылки:

Затем сценарий будет анализировать id= сенсорной панели. /etc/acpi/events/thinkpad-tablet-disabled ThinkWiki: установка Ubuntu 12.10 на Thinkpad Twist | Thinkpad-acpi | Wacom Tablet Stilus Ubuntu Форумы: Touchpad ВКЛ / ВЫКЛ | Почему это событие acpi не работает? О просмотре синтаксического анализа: программно найти текущее значение DISPLAY с помощью w и awk и удалить отдельные слова из строк с помощью grep -P '\K'.
0
ответ дан 18 July 2018 в 02:26

Чтобы проверить, находится ли устройство в режиме планшета или нет, мы могли бы прочитать значение (0 или 1):

/sys/devices/platform/thinkpad_acpi/hotkey_tablet_mode

Это значение переключается на определенные события. Мы можем уловить эти события и связать с ними скрипты с помощью демона событий acpid - Advanced Configuration and Power Interface.

1. Поймать события. Выполните одну из следующих команд, поверните крышку в режиме планшета, затем верните ее: acpi_listen или netcat -U /var/run/acpid.socket. Вот пример вывода:

$ acpi_listen video/tabletmode TBLT 0000008A 00000001 video/tabletmode TBLT 0000008A 00000000

Обратите внимание, что когда крышка закрыта, результат отличается:

$ acpi_listen button/lid LID close button/lid LID open

1. Настроить acpid, чтобы распознать события, вызванные, когда устройство изменит состояние планшета. (Здесь не указаны сценарии открытия / закрытия крышки.) Выполните следующие строки в терминале как (одиночная) команда:

cat << EOF | sudo tee /etc/acpi/events/thinkpad-tablet-enabled # /etc/acpi/events/thinkpad-tablet-enabled # This is called when the lid is placed in tablet position on # Lenovo ThinkPad X230 Tablet event=video/tabletmode TBLT 0000008A 00000001 action=/etc/acpi/thinkpad-touchpad-twist-mode.sh 1 EOF cat << EOF | sudo tee /etc/acpi/events/thinkpad-tablet-disabled # /etc/acpi/events/thinkpad-tablet-disabled # This is called when the lid is placed in normal position on # Lenovo ThinkPad X230 Tablet event=video/tabletmode TBLT 0000008A 00000000 action=/etc/acpi/thinkpad-touchpad-twist-mode.sh 0 EOF

Вышеупомянутые команды будут создавать файлы :

/etc/acpi/events/thinkpad-tablet-enabled /etc/acpi/events/thinkpad-tablet-disabled

3. Перезагрузите acpid, чтобы он мог перечитывать фильтры событий, включая те, которые вы только что добавили:

sudo systemctl restart acpid.service

3. Создать сценарий /etc/acpi/thinkpad-touchpad-in-twist-mode.sh, который отключит 1 и включит 0 сенсорную панель (&& сделает ее выполнимой):

cat << EOF | sudo tee /etc/acpi/thinkpad-touchpad-twist-mode.sh && sudo chmod +x /etc/acpi/thinkpad-touchpad-twist-mode.sh #!/bin/sh LANG=C # Ensure stable parsing export DISPLAY="\$(w | awk 'NF > 7 && \$2 ~ /tty[0-9]+/ {print \$3; exit}' 2>/dev/null)" # Get and export the current user's \$DISPAY export XAUTHORITY="/home/\$(w | awk 'NF > 7 && \$2 ~ /tty[0-9]+/ {print \$1; exit}' 2>/dev/null)/.Xauthority" # Get and export the currentuser's \$XAUTHORITY ID="\$(xinput | grep -ioP 'touchpad.*id=\K[0-9]*')" # Find the TouchPad device ID if [ "\${1}" -eq 0 ]; then xinput enable "\$ID" # Laptop mode or Lid is open elif [ "\${1}" -eq 1 ]; then xinput disable "\$ID" # Tablet mode or Lid is closed fi EOF /etc/acpi/events/thinkpad-tablet-enabled Затем скрипт будет анализировать id= сенсорной панели. И в зависимости от входной переменной $1 будет включена или отключена панель управления.

Ссылки:

Затем сценарий будет анализировать id= сенсорной панели. /etc/acpi/events/thinkpad-tablet-disabled ThinkWiki: установка Ubuntu 12.10 на Thinkpad Twist | Thinkpad-acpi | Wacom Tablet Stilus Ubuntu Форумы: Touchpad ВКЛ / ВЫКЛ | Почему это событие acpi не работает? О просмотре синтаксического анализа: программно найти текущее значение DISPLAY с помощью w и awk и удалить отдельные слова из строк с помощью grep -P '\K'.
0
ответ дан 24 July 2018 в 17:34

Чтобы проверить, находится ли устройство в режиме планшета или нет, мы могли бы прочитать значение (0 или 1):

/sys/devices/platform/thinkpad_acpi/hotkey_tablet_mode

Это значение переключается на определенные события. Мы можем поймать эти события и связать с ними сценарии, используя демона событий acpid - Advanced Configuration and Power Interface.


1. Поймать события. Выполните одну из следующих команд, поверните крышку в режиме планшета, затем верните ее: acpi_listen или netcat -U /var/run/acpid.socket. Вот пример вывода:

$ acpi_listen
video/tabletmode TBLT 0000008A 00000001
video/tabletmode TBLT 0000008A 00000000

Обратите внимание, что когда крышка закрыта, результат отличается:

$ acpi_listen
button/lid LID close
button/lid LID open

2. Настройте acpid, чтобы распознать события, вызванные, когда устройство изменит состояние планшета. (Здесь не указаны сценарии открытия / закрытия крышки.) Запустите следующие строки в терминале в виде (одной) команды:

cat << EOF | sudo tee /etc/acpi/events/thinkpad-tablet-enabled
# /etc/acpi/events/thinkpad-tablet-enabled
# This is called when the lid is placed in tablet position on
# Lenovo ThinkPad X230 Tablet

event=video/tabletmode TBLT 0000008A 00000001
action=/etc/acpi/thinkpad-touchpad-twist-mode.sh 1
EOF
cat << EOF | sudo tee /etc/acpi/events/thinkpad-tablet-disabled
# /etc/acpi/events/thinkpad-tablet-disabled
# This is called when the lid is placed in normal position on
# Lenovo ThinkPad X230 Tablet

event=video/tabletmode TBLT 0000008A 00000000
action=/etc/acpi/thinkpad-touchpad-twist-mode.sh 0
EOF

Вышеупомянутые команды будут создавать файлы :

  • /etc/acpi/events/thinkpad-tablet-enabled
  • /etc/acpi/events/thinkpad-tablet-disabled

3. Перезапустите acpid, чтобы он мог перечитать фильтры событий, включая те, которые вы только что добавили:

sudo systemctl restart acpid.service

4. Создайте скрипт /etc/acpi/thinkpad-touchpad-in-twist-mode.sh, который отключит 1 и включит 0 сенсорную панель (&& сделает ее выполнимой):

cat << EOF | sudo tee /etc/acpi/thinkpad-touchpad-twist-mode.sh && sudo chmod +x /etc/acpi/thinkpad-touchpad-twist-mode.sh
#!/bin/sh
LANG=C                                                                                                     # Ensure stable parsing
export DISPLAY="\$(w | awk 'NF > 7 && \$2 ~ /tty[0-9]+/ {print \$3; exit}' 2>/dev/null)"                      # Get and export the current user's \$DISPAY
export XAUTHORITY="/home/\$(w | awk 'NF > 7 && \$2 ~ /tty[0-9]+/ {print \$1; exit}' 2>/dev/null)/.Xauthority" # Get and export the currentuser's \$XAUTHORITY
ID="\$(xinput | grep -ioP 'touchpad.*id=\K[0-9]*')"                                                         # Find the TouchPad device ID

if   [ "\${1}" -eq 0 ]; then xinput enable "\$ID"   # Laptop mode or Lid is open
elif [ "\${1}" -eq 1 ]; then xinput disable "\$ID"  # Tablet mode or Lid is closed
fi
EOF
  • Сценарий будет анализировать и экспортировать переменные окружения $DISPAY и $XAUTHORITY сеанса текущего пользователя, чтобы разрешить root (кто запускает процесс acpid) для доступа к X сеансу пользователя, соответственно xinput.
  • Затем скрипт проанализирует id= сенсорной панели.

Ссылки:

0
ответ дан 31 July 2018 в 20:38

Чтобы проверить, находится ли устройство в режиме планшета или нет, мы могли бы прочитать значение (0 или 1):

/sys/devices/platform/thinkpad_acpi/hotkey_tablet_mode

Это значение переключается на определенные события. Мы можем поймать эти события и связать с ними сценарии, используя демона событий acpid - Advanced Configuration and Power Interface.


1. Поймать события. Выполните одну из следующих команд, поверните крышку в режиме планшета, затем верните ее: acpi_listen или netcat -U /var/run/acpid.socket. Вот пример вывода:

$ acpi_listen
video/tabletmode TBLT 0000008A 00000001
video/tabletmode TBLT 0000008A 00000000

Обратите внимание, что когда крышка закрыта, результат отличается:

$ acpi_listen
button/lid LID close
button/lid LID open

2. Настройте acpid, чтобы распознать события, вызванные, когда устройство изменит состояние планшета. (Здесь не указаны сценарии открытия / закрытия крышки.) Запустите следующие строки в терминале в виде (одной) команды:

cat << EOF | sudo tee /etc/acpi/events/thinkpad-tablet-enabled
# /etc/acpi/events/thinkpad-tablet-enabled
# This is called when the lid is placed in tablet position on
# Lenovo ThinkPad X230 Tablet

event=video/tabletmode TBLT 0000008A 00000001
action=/etc/acpi/thinkpad-touchpad-twist-mode.sh 1
EOF
cat << EOF | sudo tee /etc/acpi/events/thinkpad-tablet-disabled
# /etc/acpi/events/thinkpad-tablet-disabled
# This is called when the lid is placed in normal position on
# Lenovo ThinkPad X230 Tablet

event=video/tabletmode TBLT 0000008A 00000000
action=/etc/acpi/thinkpad-touchpad-twist-mode.sh 0
EOF

Вышеупомянутые команды будут создавать файлы :

  • /etc/acpi/events/thinkpad-tablet-enabled
  • /etc/acpi/events/thinkpad-tablet-disabled

3. Перезапустите acpid, чтобы он мог перечитать фильтры событий, включая те, которые вы только что добавили:

sudo systemctl restart acpid.service

4. Создайте скрипт /etc/acpi/thinkpad-touchpad-in-twist-mode.sh, который отключит 1 и включит 0 сенсорную панель (&& сделает ее выполнимой):

cat << EOF | sudo tee /etc/acpi/thinkpad-touchpad-twist-mode.sh && sudo chmod +x /etc/acpi/thinkpad-touchpad-twist-mode.sh
#!/bin/sh
LANG=C                                                                                                     # Ensure stable parsing
export DISPLAY="\$(w | awk 'NF > 7 && \$2 ~ /tty[0-9]+/ {print \$3; exit}' 2>/dev/null)"                      # Get and export the current user's \$DISPAY
export XAUTHORITY="/home/\$(w | awk 'NF > 7 && \$2 ~ /tty[0-9]+/ {print \$1; exit}' 2>/dev/null)/.Xauthority" # Get and export the currentuser's \$XAUTHORITY
ID="\$(xinput | grep -ioP 'touchpad.*id=\K[0-9]*')"                                                         # Find the TouchPad device ID

if   [ "\${1}" -eq 0 ]; then xinput enable "\$ID"   # Laptop mode or Lid is open
elif [ "\${1}" -eq 1 ]; then xinput disable "\$ID"  # Tablet mode or Lid is closed
fi
EOF
  • Сценарий будет анализировать и экспортировать переменные окружения $DISPAY и $XAUTHORITY сеанса текущего пользователя, чтобы разрешить root (кто запускает процесс acpid) для доступа к X сеансу пользователя, соответственно xinput.
  • Затем скрипт проанализирует id= сенсорной панели.

Ссылки:

0
ответ дан 2 August 2018 в 13:42

Чтобы проверить, находится ли устройство в режиме планшета или нет, мы могли бы прочитать значение (0 или 1):

/sys/devices/platform/thinkpad_acpi/hotkey_tablet_mode

Это значение переключается на определенные события. Мы можем поймать эти события и связать с ними сценарии, используя демона событий acpid - Advanced Configuration and Power Interface.


1. Поймать события. Выполните одну из следующих команд, поверните крышку в режиме планшета, затем верните ее: acpi_listen или netcat -U /var/run/acpid.socket. Вот пример вывода:

$ acpi_listen
video/tabletmode TBLT 0000008A 00000001
video/tabletmode TBLT 0000008A 00000000

Обратите внимание, что когда крышка закрыта, результат отличается:

$ acpi_listen
button/lid LID close
button/lid LID open

2. Настройте acpid, чтобы распознать события, вызванные, когда устройство изменит состояние планшета. (Здесь не указаны сценарии открытия / закрытия крышки.) Запустите следующие строки в терминале в виде (одной) команды:

cat << EOF | sudo tee /etc/acpi/events/thinkpad-tablet-enabled
# /etc/acpi/events/thinkpad-tablet-enabled
# This is called when the lid is placed in tablet position on
# Lenovo ThinkPad X230 Tablet

event=video/tabletmode TBLT 0000008A 00000001
action=/etc/acpi/thinkpad-touchpad-twist-mode.sh 1
EOF
cat << EOF | sudo tee /etc/acpi/events/thinkpad-tablet-disabled
# /etc/acpi/events/thinkpad-tablet-disabled
# This is called when the lid is placed in normal position on
# Lenovo ThinkPad X230 Tablet

event=video/tabletmode TBLT 0000008A 00000000
action=/etc/acpi/thinkpad-touchpad-twist-mode.sh 0
EOF

Вышеупомянутые команды будут создавать файлы :

  • /etc/acpi/events/thinkpad-tablet-enabled
  • /etc/acpi/events/thinkpad-tablet-disabled

3. Перезапустите acpid, чтобы он мог перечитать фильтры событий, включая те, которые вы только что добавили:

sudo systemctl restart acpid.service

4. Создайте скрипт /etc/acpi/thinkpad-touchpad-in-twist-mode.sh, который отключит 1 и включит 0 сенсорную панель (&& сделает ее выполнимой):

cat << EOF | sudo tee /etc/acpi/thinkpad-touchpad-twist-mode.sh && sudo chmod +x /etc/acpi/thinkpad-touchpad-twist-mode.sh
#!/bin/sh
LANG=C                                                                                                     # Ensure stable parsing
export DISPLAY="\$(w | awk 'NF > 7 && \$2 ~ /tty[0-9]+/ {print \$3; exit}' 2>/dev/null)"                      # Get and export the current user's \$DISPAY
export XAUTHORITY="/home/\$(w | awk 'NF > 7 && \$2 ~ /tty[0-9]+/ {print \$1; exit}' 2>/dev/null)/.Xauthority" # Get and export the currentuser's \$XAUTHORITY
ID="\$(xinput | grep -ioP 'touchpad.*id=\K[0-9]*')"                                                         # Find the TouchPad device ID

if   [ "\${1}" -eq 0 ]; then xinput enable "\$ID"   # Laptop mode or Lid is open
elif [ "\${1}" -eq 1 ]; then xinput disable "\$ID"  # Tablet mode or Lid is closed
fi
EOF
  • Сценарий будет анализировать и экспортировать переменные окружения $DISPAY и $XAUTHORITY сеанса текущего пользователя, чтобы разрешить root (кто запускает процесс acpid) для доступа к X сеансу пользователя, соответственно xinput.
  • Затем скрипт проанализирует id= сенсорной панели.

Ссылки:

0
ответ дан 3 August 2018 в 17:54

Чтобы проверить, находится ли устройство в режиме планшета или нет, мы могли бы прочитать значение (0 или 1):

/sys/devices/platform/thinkpad_acpi/hotkey_tablet_mode

Это значение переключается на определенные события. Мы можем поймать эти события и связать с ними сценарии, используя демона событий acpid - Advanced Configuration and Power Interface.


1. Поймать события. Выполните одну из следующих команд, поверните крышку в режиме планшета, затем верните ее: acpi_listen или netcat -U /var/run/acpid.socket. Вот пример вывода:

$ acpi_listen
video/tabletmode TBLT 0000008A 00000001
video/tabletmode TBLT 0000008A 00000000

Обратите внимание, что когда крышка закрыта, результат отличается:

$ acpi_listen
button/lid LID close
button/lid LID open

2. Настройте acpid, чтобы распознать события, вызванные, когда устройство изменит состояние планшета. (Здесь не указаны сценарии открытия / закрытия крышки.) Запустите следующие строки в терминале в виде (одной) команды:

cat << EOF | sudo tee /etc/acpi/events/thinkpad-tablet-enabled
# /etc/acpi/events/thinkpad-tablet-enabled
# This is called when the lid is placed in tablet position on
# Lenovo ThinkPad X230 Tablet

event=video/tabletmode TBLT 0000008A 00000001
action=/etc/acpi/thinkpad-touchpad-twist-mode.sh 1
EOF
cat << EOF | sudo tee /etc/acpi/events/thinkpad-tablet-disabled
# /etc/acpi/events/thinkpad-tablet-disabled
# This is called when the lid is placed in normal position on
# Lenovo ThinkPad X230 Tablet

event=video/tabletmode TBLT 0000008A 00000000
action=/etc/acpi/thinkpad-touchpad-twist-mode.sh 0
EOF

Вышеупомянутые команды будут создавать файлы :

  • /etc/acpi/events/thinkpad-tablet-enabled
  • /etc/acpi/events/thinkpad-tablet-disabled

3. Перезапустите acpid, чтобы он мог перечитать фильтры событий, включая те, которые вы только что добавили:

sudo systemctl restart acpid.service

4. Создайте скрипт /etc/acpi/thinkpad-touchpad-in-twist-mode.sh, который отключит 1 и включит 0 сенсорную панель (&& сделает ее выполнимой):

cat << EOF | sudo tee /etc/acpi/thinkpad-touchpad-twist-mode.sh && sudo chmod +x /etc/acpi/thinkpad-touchpad-twist-mode.sh
#!/bin/sh
LANG=C                                                                                                     # Ensure stable parsing
export DISPLAY="\$(w | awk 'NF > 7 && \$2 ~ /tty[0-9]+/ {print \$3; exit}' 2>/dev/null)"                      # Get and export the current user's \$DISPAY
export XAUTHORITY="/home/\$(w | awk 'NF > 7 && \$2 ~ /tty[0-9]+/ {print \$1; exit}' 2>/dev/null)/.Xauthority" # Get and export the currentuser's \$XAUTHORITY
ID="\$(xinput | grep -ioP 'touchpad.*id=\K[0-9]*')"                                                         # Find the TouchPad device ID

if   [ "\${1}" -eq 0 ]; then xinput enable "\$ID"   # Laptop mode or Lid is open
elif [ "\${1}" -eq 1 ]; then xinput disable "\$ID"  # Tablet mode or Lid is closed
fi
EOF
  • Сценарий будет анализировать и экспортировать переменные окружения $DISPAY и $XAUTHORITY сеанса текущего пользователя, чтобы разрешить root (кто запускает процесс acpid) для доступа к X сеансу пользователя, соответственно xinput.
  • Затем скрипт проанализирует id= сенсорной панели.

Ссылки:

0
ответ дан 5 August 2018 в 03:03

Чтобы проверить, находится ли устройство в режиме планшета или нет, мы могли бы прочитать значение (0 или 1):

/sys/devices/platform/thinkpad_acpi/hotkey_tablet_mode

Это значение переключается на определенные события. Мы можем поймать эти события и связать с ними сценарии, используя демона событий acpid - Advanced Configuration and Power Interface.


1. Поймать события. Выполните одну из следующих команд, поверните крышку в режиме планшета, затем верните ее: acpi_listen или netcat -U /var/run/acpid.socket. Вот пример вывода:

$ acpi_listen
video/tabletmode TBLT 0000008A 00000001
video/tabletmode TBLT 0000008A 00000000

Обратите внимание, что когда крышка закрыта, результат отличается:

$ acpi_listen
button/lid LID close
button/lid LID open

2. Настройте acpid, чтобы распознать события, вызванные, когда устройство изменит состояние планшета. (Здесь не указаны сценарии открытия / закрытия крышки.) Запустите следующие строки в терминале в виде (одной) команды:

cat << EOF | sudo tee /etc/acpi/events/thinkpad-tablet-enabled
# /etc/acpi/events/thinkpad-tablet-enabled
# This is called when the lid is placed in tablet position on
# Lenovo ThinkPad X230 Tablet

event=video/tabletmode TBLT 0000008A 00000001
action=/etc/acpi/thinkpad-touchpad-twist-mode.sh 1
EOF
cat << EOF | sudo tee /etc/acpi/events/thinkpad-tablet-disabled
# /etc/acpi/events/thinkpad-tablet-disabled
# This is called when the lid is placed in normal position on
# Lenovo ThinkPad X230 Tablet

event=video/tabletmode TBLT 0000008A 00000000
action=/etc/acpi/thinkpad-touchpad-twist-mode.sh 0
EOF

Вышеупомянутые команды будут создавать файлы :

  • /etc/acpi/events/thinkpad-tablet-enabled
  • /etc/acpi/events/thinkpad-tablet-disabled

3. Перезапустите acpid, чтобы он мог перечитать фильтры событий, включая те, которые вы только что добавили:

sudo systemctl restart acpid.service

4. Создайте скрипт /etc/acpi/thinkpad-touchpad-in-twist-mode.sh, который отключит 1 и включит 0 сенсорную панель (&& сделает ее выполнимой):

cat << EOF | sudo tee /etc/acpi/thinkpad-touchpad-twist-mode.sh && sudo chmod +x /etc/acpi/thinkpad-touchpad-twist-mode.sh
#!/bin/sh
LANG=C                                                                                                     # Ensure stable parsing
export DISPLAY="\$(w | awk 'NF > 7 && \$2 ~ /tty[0-9]+/ {print \$3; exit}' 2>/dev/null)"                      # Get and export the current user's \$DISPAY
export XAUTHORITY="/home/\$(w | awk 'NF > 7 && \$2 ~ /tty[0-9]+/ {print \$1; exit}' 2>/dev/null)/.Xauthority" # Get and export the currentuser's \$XAUTHORITY
ID="\$(xinput | grep -ioP 'touchpad.*id=\K[0-9]*')"                                                         # Find the TouchPad device ID

if   [ "\${1}" -eq 0 ]; then xinput enable "\$ID"   # Laptop mode or Lid is open
elif [ "\${1}" -eq 1 ]; then xinput disable "\$ID"  # Tablet mode or Lid is closed
fi
EOF
  • Сценарий будет анализировать и экспортировать переменные окружения $DISPAY и $XAUTHORITY сеанса текущего пользователя, чтобы разрешить root (кто запускает процесс acpid) для доступа к X сеансу пользователя, соответственно xinput.
  • Затем скрипт проанализирует id= сенсорной панели.

Ссылки:

0
ответ дан 6 August 2018 в 19:54

Чтобы проверить, находится ли устройство в режиме планшета или нет, мы могли бы прочитать значение (0 или 1):

/sys/devices/platform/thinkpad_acpi/hotkey_tablet_mode

Это значение переключается на определенные события. Мы можем поймать эти события и связать с ними сценарии, используя демона событий acpid - Advanced Configuration and Power Interface.


1. Поймать события. Выполните одну из следующих команд, поверните крышку в режиме планшета, затем верните ее: acpi_listen или netcat -U /var/run/acpid.socket. Вот пример вывода:

$ acpi_listen
video/tabletmode TBLT 0000008A 00000001
video/tabletmode TBLT 0000008A 00000000

Обратите внимание, что когда крышка закрыта, результат отличается:

$ acpi_listen
button/lid LID close
button/lid LID open

2. Настройте acpid, чтобы распознать события, вызванные, когда устройство изменит состояние планшета. (Здесь не указаны сценарии открытия / закрытия крышки.) Запустите следующие строки в терминале в виде (одной) команды:

cat << EOF | sudo tee /etc/acpi/events/thinkpad-tablet-enabled
# /etc/acpi/events/thinkpad-tablet-enabled
# This is called when the lid is placed in tablet position on
# Lenovo ThinkPad X230 Tablet

event=video/tabletmode TBLT 0000008A 00000001
action=/etc/acpi/thinkpad-touchpad-twist-mode.sh 1
EOF
cat << EOF | sudo tee /etc/acpi/events/thinkpad-tablet-disabled
# /etc/acpi/events/thinkpad-tablet-disabled
# This is called when the lid is placed in normal position on
# Lenovo ThinkPad X230 Tablet

event=video/tabletmode TBLT 0000008A 00000000
action=/etc/acpi/thinkpad-touchpad-twist-mode.sh 0
EOF

Вышеупомянутые команды будут создавать файлы :

  • /etc/acpi/events/thinkpad-tablet-enabled
  • /etc/acpi/events/thinkpad-tablet-disabled

3. Перезапустите acpid, чтобы он мог перечитать фильтры событий, включая те, которые вы только что добавили:

sudo systemctl restart acpid.service

4. Создайте скрипт /etc/acpi/thinkpad-touchpad-in-twist-mode.sh, который отключит 1 и включит 0 сенсорную панель (&& сделает ее выполнимой):

cat << EOF | sudo tee /etc/acpi/thinkpad-touchpad-twist-mode.sh && sudo chmod +x /etc/acpi/thinkpad-touchpad-twist-mode.sh
#!/bin/sh
LANG=C                                                                                                     # Ensure stable parsing
export DISPLAY="\$(w | awk 'NF > 7 && \$2 ~ /tty[0-9]+/ {print \$3; exit}' 2>/dev/null)"                      # Get and export the current user's \$DISPAY
export XAUTHORITY="/home/\$(w | awk 'NF > 7 && \$2 ~ /tty[0-9]+/ {print \$1; exit}' 2>/dev/null)/.Xauthority" # Get and export the currentuser's \$XAUTHORITY
ID="\$(xinput | grep -ioP 'touchpad.*id=\K[0-9]*')"                                                         # Find the TouchPad device ID

if   [ "\${1}" -eq 0 ]; then xinput enable "\$ID"   # Laptop mode or Lid is open
elif [ "\${1}" -eq 1 ]; then xinput disable "\$ID"  # Tablet mode or Lid is closed
fi
EOF
  • Сценарий будет анализировать и экспортировать переменные окружения $DISPAY и $XAUTHORITY сеанса текущего пользователя, чтобы разрешить root (кто запускает процесс acpid) для доступа к X сеансу пользователя, соответственно xinput.
  • Затем скрипт проанализирует id= сенсорной панели.

Ссылки:

0
ответ дан 9 August 2018 в 00:21

Чтобы проверить, находится ли устройство в режиме планшета или нет, мы могли бы прочитать значение (0 или 1):

/sys/devices/platform/thinkpad_acpi/hotkey_tablet_mode

Это значение переключается на определенные события. Мы можем поймать эти события и связать с ними сценарии, используя демона событий acpid - Advanced Configuration and Power Interface.


1. Поймать события. Выполните одну из следующих команд, поверните крышку в режиме планшета, затем верните ее: acpi_listen или netcat -U /var/run/acpid.socket. Вот пример вывода:

$ acpi_listen
video/tabletmode TBLT 0000008A 00000001
video/tabletmode TBLT 0000008A 00000000

Обратите внимание, что когда крышка закрыта, результат отличается:

$ acpi_listen
button/lid LID close
button/lid LID open

2. Настройте acpid, чтобы распознать события, вызванные, когда устройство изменит состояние планшета. (Здесь не указаны сценарии открытия / закрытия крышки.) Запустите следующие строки в терминале в виде (одной) команды:

cat << EOF | sudo tee /etc/acpi/events/thinkpad-tablet-enabled
# /etc/acpi/events/thinkpad-tablet-enabled
# This is called when the lid is placed in tablet position on
# Lenovo ThinkPad X230 Tablet

event=video/tabletmode TBLT 0000008A 00000001
action=/etc/acpi/thinkpad-touchpad-twist-mode.sh 1
EOF
cat << EOF | sudo tee /etc/acpi/events/thinkpad-tablet-disabled
# /etc/acpi/events/thinkpad-tablet-disabled
# This is called when the lid is placed in normal position on
# Lenovo ThinkPad X230 Tablet

event=video/tabletmode TBLT 0000008A 00000000
action=/etc/acpi/thinkpad-touchpad-twist-mode.sh 0
EOF

Вышеупомянутые команды будут создавать файлы :

  • /etc/acpi/events/thinkpad-tablet-enabled
  • /etc/acpi/events/thinkpad-tablet-disabled

3. Перезапустите acpid, чтобы он мог перечитать фильтры событий, включая те, которые вы только что добавили:

sudo systemctl restart acpid.service

4. Создайте скрипт /etc/acpi/thinkpad-touchpad-in-twist-mode.sh, который отключит 1 и включит 0 сенсорную панель (&& сделает ее выполнимой):

cat << EOF | sudo tee /etc/acpi/thinkpad-touchpad-twist-mode.sh && sudo chmod +x /etc/acpi/thinkpad-touchpad-twist-mode.sh
#!/bin/sh
LANG=C                                                                                                     # Ensure stable parsing
export DISPLAY="\$(w | awk 'NF > 7 && \$2 ~ /tty[0-9]+/ {print \$3; exit}' 2>/dev/null)"                      # Get and export the current user's \$DISPAY
export XAUTHORITY="/home/\$(w | awk 'NF > 7 && \$2 ~ /tty[0-9]+/ {print \$1; exit}' 2>/dev/null)/.Xauthority" # Get and export the currentuser's \$XAUTHORITY
ID="\$(xinput | grep -ioP 'touchpad.*id=\K[0-9]*')"                                                         # Find the TouchPad device ID

if   [ "\${1}" -eq 0 ]; then xinput enable "\$ID"   # Laptop mode or Lid is open
elif [ "\${1}" -eq 1 ]; then xinput disable "\$ID"  # Tablet mode or Lid is closed
fi
EOF
  • Сценарий будет анализировать и экспортировать переменные окружения $DISPAY и $XAUTHORITY сеанса текущего пользователя, чтобы разрешить root (кто запускает процесс acpid) для доступа к X сеансу пользователя, соответственно xinput.
  • Затем скрипт проанализирует id= сенсорной панели.

Ссылки:

0
ответ дан 14 August 2018 в 18:30

Другие вопросы по тегам:

Похожие вопросы: