Я могу переключить размещение Средства запуска Единицы на нескольких экранах?

Я выполняю асинхронную двойную установку montior. Мой основной монитор 16:9 2560x1440, и мое вторичное устройство является 10:16 1200x1920 установка. Я использую основное устройство для кодирования/игр/видео и вторичное устройство для просмотра и ссылочные материалы. Я также предпочитаю сохранять средство запуска на дополнительном мониторе, как это имеет на правой стороне мое основное устройство.

Проблема состоит в том, что некоторые мои игры, кажется, думают, что монитор, который работает средство запуска, считают основным монитором. Некоторые игры дают мне опции запуска, где я могу вызвать его к моему предпочтительному монитору, но некоторые я должен переключить размещение средства запуска в настройки дисплея.

Я хотел бы написать сценарий решения, которое позволяет мне быстро переключать настройки вместо того, чтобы должным быть войти в отображение на экране ui каждый раз. Я нашел ~/.config/monitors.xml и попытались подкачать основной монитор и затем уничтожить unity-settings-daemon и перезапуская его, но это кажется, что это не без побочных эффектов. Кто-либо знает лучший путь?

2
задан 20 December 2015 в 23:47

1 ответ

Положения средства запуска

Положения средства запуска могут быть определены двумя параметрами:

1. Средство запуска на всех экранах, или только на одном

установлен командами:

dconf write /org/compiz/profiles/unity/plugins/unityshell/num-launchers 0

показать на всех экранах, или

dconf write /org/compiz/profiles/unity/plugins/unityshell/num-launchers 1

показать на одном экране

2. Экран, где Средство запуска видимо

В последнем случае (средство запуска только на одном экране), средство запуска только видимо на основном экране. Другими словами, мы должны установить (переключается) основной экран. Это может быть сделано с командой:

xrandr --output <screen_name> --primary

То, в чем мы нуждаемся, является сценарием для поиска в настоящее время набор основной экран (от вывода xrandr команда), и выбирают "the other one", и также - сценарий ниже.

enter image description here enter image description here

Сценарий:

#!/usr/bin/env python3
import subprocess

# Look up the currently set primary screen, set it to the other one
scr_data = subprocess.check_output(["xrandr"]).decode("utf-8").splitlines()
scrs = [[l.split()[0], "primary" in l] for l in scr_data if " connected" in l]
for screen in scrs:
    if not screen[1] == True:
        subprocess.Popen(["xrandr", "--output", screen[0], "--primary"])

Если также необходимо удостовериться, что средство запуска установлено показать на одном экране, использовать:

#!/usr/bin/env python3
import subprocess

# just to make sure the launcher is set to only show on one screen:
subprocess.Popen(["/bin/bash", "-c", "dconf write /org/compiz/profiles/unity/plugins/unityshell/num-launchers 1"])

# Look up the currently set primary screen, set it to the other one
scr_data = subprocess.check_output(["xrandr"]).decode("utf-8").splitlines()
scrs = [[l.split()[0], "primary" in l] for l in scr_data if " connected" in l]
for screen in scrs:
    if not screen[1] == True:
        subprocess.Popen(["xrandr", "--output", screen[0], "--primary"])

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

  1. Скопируйте сценарий в пустой файл, сохраните его как toggle_launcher.py
  2. Тестовый прогон это командой:

    python3 /path/to/toggle_launcher.py
    
  3. Если все хорошо работает, добавьте его к сочетанию клавиш: выберите: Параметры настройки системы> "Клавиатура"> "Ярлыки"> "Пользовательские Ярлыки". Нажмите "+" и добавьте команду:

    python3 /path/to/toggle_launcher.py
    

    к комбинации сочетания клавиш по Вашему выбору.

3
ответ дан 2 December 2019 в 02:54

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

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