графики для видеокарт AMD Radeon выпущены для большинства версий Ubuntu, поэтому я ожидаю, что они также выпустят один для 16.04. Читая FAQ, он (fglrx) в основном выпущен, через 12 недель после выпуска версии ubuntu; поэтому нам нужно быть немного более терпеливым.
Об использовании драйвера с открытым исходным кодом с AMD Radeon HD6670 работает нормально, но не слишком хорошо. Например. photoś, безусловно, отображаются с меньшим качеством. Кроме того, X-сервер аварийно завершает работу (хотя мне все еще нужно выяснить, что именно происходит).
Нет никаких «команд GTK» в том, что в Python есть функции GTK +. GTK + - это библиотека со связями на нескольких языках, но у нее нет исполняемых команд для функций, которые она предоставляет. Вы можете попробовать сделать части того, что GTK + API может выполнять с помощью некоторых внешних команд:
zenity, yad и т. Д. Для отображения диалоговых окон xsel или xclip для доступа к буферному wmctrl для управления окнами приложенийНо подавляющее большинство функций GTK + недоступны для команд.
Оболочки - это просто интерпретаторы команд в соответствии с определением POSIX. Gtk - это библиотека, предназначенная для импорта на реальные языки программирования. Таким образом, ответ отрицательный, вы не можете использовать полномасштабные материалы Gtk в сценариях оболочки, только ограниченный набор вещей, разрешенных yad и zenity.
Но вы можете использовать Python. Это язык сценариев, но более подходящий для системного и программирующего материала, чем оболочки. Вы можете вызывать команды, хранящиеся в таких местах, как /bin или /usr/bin через модуль подпроцесса в Python. Я много раз делал для своих приложений Gtk.
Вот, например, стандартная функция, которую я использую для вызова внешних команд из скрипта Python:
def run_cmd(self, cmdlist):
""" Reusable function for running external commands """
new_env = dict(os.environ)
new_env['LC_ALL'] = 'C'
try:
stdout = subprocess.check_output(cmdlist, env=new_env)
except subprocess.CalledProcessError:
pass
else:
if stdout:
return stdout
И вот пример использования этого в моих интерпретаторах команд для переключения разрешения экрана с верхней панели Ubuntu; как следует из названия, он вызывает xrandr за кулисами:
self.run_cmd(['xrandr','--output',out,'--mode',mode])
Что касается оболочки, вам нужно вызвать оболочку с аргументом -c. Так что-то вроде этого могло бы работать:
subprocess.Popen(['bash','-c', 'echo hello world'])
В качестве альтернативы рассмотрим возможность внедрения межпроцессного общения. Создайте GUI в python, но позвольте ему связываться с скриптом оболочки через именованный канал или файл.
Я согласен с @Sergiy, что использование только Python было бы идеальным. Но я думаю о лучшем компромиссе. Вместо того, чтобы запускать код Bash из Python, как было предложено. Должно быть возможно сохранить код Bash и запустить GTK только с Python. Что-то вроде этого:
exec 3> >(python3 &>/dev/null)
cat >&3 <<__CODE__
# python init gtk ...
__CODE__
# bash code ...
echo "..." >&3 # run a gtk command
# bash code ...
exec 3>&-
Нет никаких «команд GTK» в том, что в Python есть функции GTK +. GTK + - это библиотека со связями на нескольких языках, но у нее нет исполняемых команд для функций, которые она предоставляет. Вы можете попробовать сделать части того, что GTK + API может выполнять с помощью некоторых внешних команд:
zenity, yad и т. Д. Для отображения диалоговых окон xsel или xclip для доступа к буферному wmctrl для управления окнами приложенийНо подавляющее большинство функций GTK + недоступны для команд.
Оболочки - это просто интерпретаторы команд в соответствии с определением POSIX. Gtk - это библиотека, предназначенная для импорта на реальные языки программирования. Таким образом, ответ отрицательный, вы не можете использовать полномасштабные материалы Gtk в сценариях оболочки, только ограниченный набор вещей, разрешенных yad и zenity.
Но вы можете использовать Python. Это язык сценариев, но более подходящий для системного и программирующего материала, чем оболочки. Вы можете вызывать команды, хранящиеся в таких местах, как /bin или /usr/bin через модуль подпроцесса в Python. Я много раз делал для своих приложений Gtk.
Вот, например, стандартная функция, которую я использую для вызова внешних команд из скрипта Python:
def run_cmd(self, cmdlist):
""" Reusable function for running external commands """
new_env = dict(os.environ)
new_env['LC_ALL'] = 'C'
try:
stdout = subprocess.check_output(cmdlist, env=new_env)
except subprocess.CalledProcessError:
pass
else:
if stdout:
return stdout
И вот пример использования этого в моих интерпретаторах команд для переключения разрешения экрана с верхней панели Ubuntu; как следует из названия, он вызывает xrandr за кулисами:
self.run_cmd(['xrandr','--output',out,'--mode',mode])
Что касается оболочки, вам нужно вызвать оболочку с аргументом -c. Так что-то вроде этого могло бы работать:
subprocess.Popen(['bash','-c', 'echo hello world'])
В качестве альтернативы рассмотрим возможность внедрения межпроцессного общения. Создайте GUI в python, но позвольте ему связываться с скриптом оболочки через именованный канал или файл.
Я согласен с @Sergiy, что использование только Python было бы идеальным. Но я думаю о лучшем компромиссе. Вместо того, чтобы запускать код Bash из Python, как было предложено. Должно быть возможно сохранить код Bash и запустить GTK только с Python. Что-то вроде этого:
exec 3> >(python3 &>/dev/null)
cat >&3 <<__CODE__
# python init gtk ...
__CODE__
# bash code ...
echo "..." >&3 # run a gtk command
# bash code ...
exec 3>&-