Как вызвать программу командной строки из расширения оболочки gnome?
Я написал простой сценарий оболочки для выполнения общей задачи, и я хочу иметь возможность запускать его при каждом нажатии кнопки. Я уже использовал gnome-shell-extension-tool для создания примера Hello World, но теперь мне нужно знать, как просто заставить его выполнить произвольную команду при нажатии. Нет входных или выходных данных; это просто нужно бежать.
2 ответа
Решение
После еще нескольких творческих поисков я нашел решение:
const Util = imports.misc.util;
Util.spawn(['/path/to/program', 'arg1', 'arg2'])
const GLib = imports.gi.GLib;
let stuff = GLib.spawn_command_line_sync("cat hello.txt")[1].toString();
Для тех, кто хочет прочитать вывод команды, используйте это. Рабочий каталог по умолчанию для расширений оболочки Gnome - это домашний каталог пользователя.
Просто подумал, что упомяну эти вещи, потому что мне понадобилось время, чтобы понять их.