Ho scritto un semplice script di shell per eseguire un'attività comune e voglio essere in grado di eseguirlo ogni volta che si fa clic su un pulsante. Ho già utilizzato gnome-shell-extension-tool per creare già l'esempio Hello World, ma ora ho bisogno di sapere come farlo semplicemente eseguire un comando arbitrario quando si fa clic. Non ci sono input o output a cui interessare; deve solo funzionare.Come si chiama un programma da riga di comando da un'estensione shell di gnome?
5
A
risposta
8
Dopo un po 'googling più creativo, ho trovato la soluzione:
const Util = imports.misc.util;
Util.spawn(['/path/to/program', 'arg1', 'arg2'])
1
const GLib = imports.gi.GLib;
let stuff = GLib.spawn_command_line_sync("cat hello.txt")[1].toString();
Per coloro che desiderano leggere l'output del comando, utilizzare questo. La directory di lavoro predefinita per le estensioni della shell Gnome è la directory home dell'utente.
Ho solo pensato di menzionare queste cose, perché mi ci è voluto un po 'per capirle.
Grazie, quello che funziona in prefs.js (Util non può essere importato, non so perché, è davvero un tale dolore senza un buon manuale di riferimento). –