Как вызвать программу командной строки из расширения оболочки 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 - это домашний каталог пользователя.

Просто подумал, что упомяну эти вещи, потому что мне понадобилось время, чтобы понять их.

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