Guake indicator provides the ability to add some logic when building a command using the "scripting" feature.
To enable the "scripting" mode, the "Enable guake-indicator scripting" checkbox must be checked.
When the script mode is activated, Guake indicator treats the character sequences '<#' and '<! ... !>' in this way:
<# : Guake indicator sends a system call (invoking a /bin/sh subshell) of the inline command, for example:
causes Guake indicator call /bin/sh/sleep 2 on localhost thus pausing the execution for 2 seconds. Keep in mind that Guake indicator will stop sending commands to Guake until the system call is done.
<!..!> : Guake indicator searchs for a gsettings key string value under '/apps/guake-indicator/' and pastes it to the command, for example:
causes Guake to send the command echo and the content of the key testkey as an argument. You can take advantage of the gconf-editor to inspect the gconf keys.
Scripting can be useful when working on remote shells and you want your localhost to interact with them.
For example let's say you want to test if a particular tcp port is open from a remote shell and you want to input the target ip and port from keyboard with your local zenity (https://help.gnome.org/users/zenity/stable/), you could try something like this:
<#gsettings set org.guake-indicator.data param1 $(zenity --entry --title="Enter dest ip" --text="Enter dest ip")
<#gsettings set org.guake-indicator.data param2 $(zenity --entry --title="Enter dest port" --text="Enter dest port")
ssh user@whatever nc -vn <!param1!> <!param2!>
In the above example Guake indicator calls Zenity to display an interactive form in your local machine.The stdout of Zenity is then passed as an argumento to gconftool-2.
Gconftool-2 stores the content as a value for /apps/guake-indicator/varip and /apps/guake-indicator/varport keys.
Finally Guake indicator send data through the dbus system replacing the !varip! and !varport! substrings with the values of the /apps/guake-indicator/varip and /apps/guake-indicator/varport keys.
In this way you can send dynamic,inaccessible local content to Guake.
In the following screenshot I ssh into 10.0.0.4 then using Guake indicator+Zenity+gconftool-2 I scan 10.0.0.4:22 from 10.0.0.7:
Last Revision 25 February, 2019 - Dedicated to my daughters Mariavittoria and
Ludovica Special Thanks to all Contributors