Mostra la finestra di dialogo dalla riga di comando (come xmessage fa)

4

Sfondo

Mi piacerebbe poter visualizzare una finestra di notifica in OS X da uno script. Lo script verrà eseguito in background, quindi la notifica non dovrebbe andare al terminale, ma dovrebbe essere visualizzata in una finestra di dialogo.

Ciò che ho trovato finora

xmessage

Su Linux probabilmente userò xmessage o una delle sue varianti per questo. Ma su OS X, avviare l'ingombrante X server solo per questa attività sembra eccessivo e troppo lento per i miei gusti.

Finestra di dialogo del Finder

Ho trovato una domanda simile in questo thread del forum , dove la risposta "accettata" suggeriva questo comando:

osascript -e 'tell app "Finder" to display dialog "Hey!"'

Ma sulla mia OS , la finestra di dialogo risultante non è visualizzato immediatamente. Invece, l'icona del Finder inizia a rimbalzare e la finestra di dialogo diventa visibile solo dopo aver fatto clic sull'icona. Troppi clic del mouse, troppo dirompenti.

Notifier

C'è una risposta su Super User che suggerisce uno strumento chiamato terminale-notifier . Purtroppo, sembra che funzioni solo per OS X , quindi non aiuto nel mio caso.

Domanda

Quindi c'è qualche strumento, incluso in OS X o disponibile gratuitamente, che consente all'utente di visualizzare un piccolo dialogo senza troppi sovraccarichi?

    
posta MvG 30.11.2012 - 11:57
fonte

2 risposte

5

Un'opzione consiste nel comunicare a un processo in background come SystemUIServer di visualizzare la finestra di dialogo:

osascript -e 'tell application "SystemUIServer"
display dialog "message"
end
activate application (path to frontmost application as text)'

Puoi anche dire all'applicazione in primo piano di visualizzare una finestra di dialogo, ma non viene mostrata immediatamente se l'applicazione non risponde. Se MPlayer OS X è in primo piano, le finestre di dialogo di testo non accettano alcun input da tastiera.

osascript -e 'tell application (path to frontmost application as text)
display dialog "message"
end'
    
risposta data 30.11.2012 - 13:03
fonte
3

Prova

tell application "System Events" to display dialog "Plug the Digispark into the USB port." buttons {"OK"} with icon caution

Testato su OS X 10.8.2

    
risposta data 24.02.2013 - 19:01
fonte

Leggi altre domande sui tag