Как создать иконку на панели запуска, чтобы отключить клавиатуру + повернуть экран?

У меня 2 в 1 ПК с Ubuntu. Мне было интересно, есть ли способ написать команду, которая включает и выключает внутреннюю клавиатуру, поворачивает экран на 90 градусов влево (или вправо) и помещает его в модуль запуска слева. Есть ли способ сделать это?

Было бы хорошо, если бы я мог просто нажать на нее, чтобы отключить клавиатуру (+ тачпад) и повернуть экран на 90 градусов, и еще раз нажать, чтобы вернуться к правильной ориентации с функционирующей клавиатурой (+ тачпад).

1 ответ

Решение

Script + лаунчер для поворота экрана и переключения клавиатуры за один шаг

Сценарий ниже будет

  • вращать (переключать) экран (влево или вправо)
  • отключить (переключить) клавиатуру, которую вы определили как отключенную

Сценарий

#!/usr/bin/env python3
import subprocess

# --- set the name of the screen, and the rotate direction and the id of your keyboard below
screen = "DVI-I-1"
rotate = "left"
disable = ["9", "14"]
# ---

matchline = [
    l.split() for l in subprocess.check_output(["xrandr"]).decode("utf-8").splitlines()\
    if l.startswith(screen)
    ][0]
s = matchline[
    matchline.index([s for s in matchline if s.count("+") == 2][0])+1
    ]

newset = ["normal", "1"] if s == rotate else [rotate, "0"]
subprocess.call(["xrandr", "--output", screen, "--rotate", newset[0]])
for item in disable:
    subprocess.call(["xinput", "set-prop", item, "Device Enabled", newset[1]])

Как пользоваться

  1. Скопируйте скрипт в пустой файл, сохраните его как rotate.py
  2. Скопируйте приведенную ниже панель запуска в пустой файл и сохраните его как rotate.desktop

    [Desktop Entry]
    Exec=python3 /path/to/rotate.py
    Icon=preferences-desktop-keyboard
    Name=Rotate & Disable Keyboard
    Type=Application
    

    В соответствии Exec=, заменить /path/to/rotate.py реальным путем к rotate.py скрипт. Сделать .desktop исполняемый файл Это покажет значок как:

  3. Теперь вам нужно выяснить две вещи:

    а. название вашего экрана (тот, который вы хотите повернуть): запустить в терминале:

    xrandr
    

    Ищите строку с "подключен" в нем. Первая строка - это отображаемое имя, похожее на пример в сценарии. (также может быть VGA-1 или что-то типа того)

    б. id вашей клавиатуры, тот, который будет отключен. Запустите в терминале команду:

    xinput -list
    

    как описано в этом ответе.

  4. Введите найденные элементы в заголовок скрипта:

    # --- set the name of the screen, and the rotate direction and the id of your keyboard below
    screen = "DVI-I-1"
    rotate = "left"
    disable = ["9"]
    # ---
    

Теперь вы сделали, либо используйте .desktop файл прямо с рабочего стола или переместите его в ~/.local/share/applications и перетащите его на панель запуска из Dash.

Если вы сделаете последнее, обратите внимание, что после поворота экрана значок не будет отвечать на запросы. 7 секунд

Повеселись!

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