Я выполняю асинхронную двойную установку montior. Мой основной монитор 16:9 2560x1440, и мое вторичное устройство является 10:16 1200x1920 установка. Я использую основное устройство для кодирования/игр/видео и вторичное устройство для просмотра и ссылочные материалы. Я также предпочитаю сохранять средство запуска на дополнительном мониторе, как это имеет на правой стороне мое основное устройство.
Проблема состоит в том, что некоторые мои игры, кажется, думают, что монитор, который работает средство запуска, считают основным монитором. Некоторые игры дают мне опции запуска, где я могу вызвать его к моему предпочтительному монитору, но некоторые я должен переключить размещение средства запуска в настройки дисплея.
Я хотел бы написать сценарий решения, которое позволяет мне быстро переключать настройки вместо того, чтобы должным быть войти в отображение на экране ui каждый раз. Я нашел ~/.config/monitors.xml
и попытались подкачать основной монитор и затем уничтожить unity-settings-daemon
и перезапуская его, но это кажется, что это не без побочных эффектов. Кто-либо знает лучший путь?
Положения средства запуска могут быть определены двумя параметрами:
установлен командами:
dconf write /org/compiz/profiles/unity/plugins/unityshell/num-launchers 0
показать на всех экранах, или
dconf write /org/compiz/profiles/unity/plugins/unityshell/num-launchers 1
показать на одном экране
В последнем случае (средство запуска только на одном экране), средство запуска только видимо на основном экране. Другими словами, мы должны установить (переключается) основной экран. Это может быть сделано с командой:
xrandr --output <screen_name> --primary
То, в чем мы нуждаемся, является сценарием для поиска в настоящее время набор основной экран (от вывода xrandr
команда), и выбирают "the other one", и также - сценарий ниже.
#!/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"])
toggle_launcher.py
Тестовый прогон это командой:
python3 /path/to/toggle_launcher.py
Если все хорошо работает, добавьте его к сочетанию клавиш: выберите: Параметры настройки системы> "Клавиатура"> "Ярлыки"> "Пользовательские Ярлыки". Нажмите "+" и добавьте команду:
python3 /path/to/toggle_launcher.py
к комбинации сочетания клавиш по Вашему выбору.