В частности, я хочу включать / выключать горячие углы каждый раз, когда начинаю паровую игру. Но я не знаю никаких сценариев. Любые ресурсы для изучения такого рода вещей были бы великолепны.
Пожалуйста, скажите мне, если этот вопрос не в том месте, я удалю его.
Необходимо будет изучить, по крайней мере, соответствующее программирование (/пишущий сценарий) язык, но затем:
Введение; dconf и gsettings
Большинство (если не все) настроек, измененных Инструментом Тонкой настройки Единицы, редактирует dconf базу данных, в которой хранятся много настроек. Редактирование dconf базы данных лучше всего сделано через gsettings, которые являются на самом деле a cli
- фронтэнд к dconf базе данных.
В Вашем примере, устанавливая/переключая hotcorners может, к сожалению, только быть сделан путем редактирования dconf
база данных непосредственно, потому что существует нет SCHEMA
доступный в gsettings
для него.
Получение текущего значения
hotcorners - плагин установлен в:
/org/compiz/profiles/unity/plugins/core/show-desktop-edge
Можно считать текущее состояние командой:
dconf read /org/compiz/profiles/unity/plugins/core/show-desktop-edge
Это будет иметь вывод в Вашем случае как (из Вашего комментария):
'|BottomRight'
Устанавливание нового значения
Для отключения hotcorners необходимо выполнить команду:
dconf write /org/compiz/profiles/unity/plugins/core/show-desktop-edge "''"
к (пере-) включают hotcorners, с Вашим ранее набор hotcorner:
dconf write /org/compiz/profiles/unity/plugins/core/show-desktop-edge "'|BottomRight'"
Что (в целом) должен сделать сценарий:
В сценарии шаги выше описаны в комментариях:
#!/usr/bin/env python3
import subprocess
key = "/org/compiz/profiles/unity/plugins/core/show-desktop-edge"
val_on = "'|BottomRight'"
def test():
# read the current setting
return subprocess.check_output(["dconf", "read", key]).decode("utf-8").strip() == val_on
currstate = test()
if currstate == True:
# if currently hotcorners are "on", set it to "''"
newval = "''"
else:
# if currently hotcorners are "off", set it to val_on
newval = val_on
subprocess.Popen(["dconf", "write", key, str(newval)])
toggle_hotcorners.py
Тестовый прогон это от терминала:
python3 /path/to/toggle_hotcorners.py
Если все хорошо работает, добавьте его к сочетанию клавиш. Выберите: Параметры настройки системы> "Клавиатура"> "Ярлыки"> "Пользовательские Ярлыки". Нажмите "+" и добавьте команду:
python3 /path/to/toggle_hotcorners.py
Не только для Инструмента Тонкой настройки Единицы, но также и видеть, что Параметры настройки системы редактируют, во многих случаях следующее дает Вам полезную информацию:
dconf watch /
в терминалеВывод в терминальных изменениях:
Вы видите то, что происходит, если я отключаю/разрешаю hotcorners в Инструменте Тонкой настройки Единицы.
Сценарий настроенного @Jacob немного. Во-первых, с помощью dconf watch /
и переключаясь hotcorners вкл\выкл в инструмент тонкой настройки единицы для обнаружения, какие переменные (?) изменяются
/org/compiz/profiles/unity/plugins/expo/expo-edge
/org/compiz/profiles/unity/plugins/scale/initiate-edge
Спасибо Google и 2-дневный семинар кода:
#!/usr/bin/env python3
import subprocess
key = "/org/compiz/profiles/unity/plugins/expo/expo-edge" #<-- this is for "show workspaces"
val_on = "'BottomRight'"
def test():
# read the current setting
# if one corner is on, other is also on and vice versa, no need to check both
return subprocess.check_output(["dconf", "read", key]).decode("utf-8").strip() == val_on
currstate = test()
if currstate == True:
# if currently hotcorners are "on", set it to "''"
newval = "''"
othercorner = "''"
else:
# if currently hotcorners are "off", set it to val_on
newval = val_on
othercorner = "'BottomLeft'"
subprocess.Popen(["dconf", "write", key, str(newval)])
# this is for "windows spread"
subprocess.Popen(["dconf", "write", "/org/compiz/profiles/unity/plugins/scale/initiate-edge", str(othercorner)])
Volia, работавший как очарование.
Действительно большое спасибо @Jacob для предоставления мне информация и основной сценарий, потому что я понятия не имею, что делает dconf или как использовать Python. Все еще не делайте. Где Вы изучали это так или иначе.
Серьезно, где я изучаю этот материал.