Controlar cualquier aplicación desde un icono con menú y submenus en el systray
Project description
StwEx
StwEx es un programa que crea un icono en el área de tareas con un menú y submenús.
Installation
Use the package manager pip to install foobar.
pip install stwex
Usage
python -m stwex.stwex -f fichero.xml
ó
stwex -f fichero.xml
XML
TAG stwex
<stwex [title=Title][icon=file][killallonexit=true|false]>
...
</stwex>
title - Mensaje que aparece al poner el ratón sobre el icono de la aplicación.
icon - Icono de la aplicación
killallonexit - Termina todos los procesos que se hayan iniciado por la aplicación.
TAG variables
<stwex>
<variables>
<variable key="variable1" value="Opción 1"/>
<variable key="variable2" value="Opción 2"/>
<variable key="variable3" value="probando_variables"/>
<variable key="variable4" value="True"/>
<variable key="accion1" value="1"/>
<variable key="bool1" value="1"/>
</variables>
...
</stwex>
Variables que se utilizan posteriormente en la definición del menú.
TAG actions
<stwex>
...
<actions>
<action id="-1" cmd="./scriptprueba.sh" killonexit="1" filecomm="/tmp/prueba"/>
<action id="1" cmd="xterm" filecomm="/tmp/prueba2"/>
<action id="2" cmd="xeyes"/>
<action id="3" cmd="sudo tail -f /var/log/syslog" terminal="1"/>
</actions>
...
</stwex>
id - Identificador de la acción. Si es -1, se ejecuta de manera automática al iniciar la aplicación.
cmd - Comando que se va a ejecutar.
killonexit - Se termina la acción si se ha ejecutado y killallonexit es True.
filecomm - Fichero de comunicación con la aplicación. Sólo funciona si existe una acción con id -1. Si se quiere tener un fichero de comunicación pero no tenemos una aplicación que deba de ejecutarse al inicio, se puede poner como cmd "@default".
terminal - Se indica si el comando se tiene que ejecutar en una terminal. Es necesario tener instalado xterm para que funcione.
TAG menu
<stwex>
...
<actions>
<action id="-1" cmd="./scriptprueba.sh" killonexit="1" filecomm="/tmp/prueba"/>
<action id="1" cmd="xterm" filecomm="/tmp/prueba2"/>
<action id="2" cmd="xeyes"/>
<action id="3" cmd="sudo tail -f /var/log/syslog" terminal="1"/>
</actions>
<menu>
<item icon="images2/info-15.bmp"
title="Opción 1"
action="1"/>
<item icon="images2/link-abierto-15.bmp"
title="Opción 2"
action="2"
enable="True"
hidden="False">
<item>
<separator/>
</item>
<item icon="images2/quit-15.png"
title="Salir"
action="@exit"/>
</menu>
</stwex>
enable - False si el elemento no está activado.
hidden - True si está oculto el elemento
TAG submenu
<item icon="images2/link-abierto-15.bmp"
title="Prueba 2"
action="2">
<submenu>
<menu>
<item title="@variable2"
action="3"
enable="True"
hidden="True"/>
<item title="Submenu 02"
action="2"
enable="False">
<submenu>
<menu>
<item title="Subsubmenu"
action="2"/>
</menu>
</submenu>
</item>
</menu>
</submenu>
</item>
Fichero de comunicación
Cuando se crea un fichero de comunicación al ejecutar una acción con id -1, se puede realizar una comunicación con la aplicación.
Para comunicarse, se escriben 'comandos' en el fichero con el siguiente formato: [stwex:comando]Parámetros
[stwex:icon]
[stwex:icon]fichero
Cambia el icono de la aplicación por el fichero que se le indique.
[stwex:show_message]
Muestra un mensaje en un cuadro de notificación.
[stwex:show_message]mensaje Muestra el mensaje.
[stwex:show_message]titulo##mensaje Muestra el mensaje en una ventana de notificación con el título indicado.
[stwex:show_message]titulo##mensaje##tipo_o_fichero Muestra el mensaje en una ventana de notificación con el titulo. Si tipo_o_fichero es:
error: El tipo de notificación es de error.
warning: El tipo de notificación es de warning.
fichero: Se muestra en la ventana de notificación el fichero de imagen indicado.
[stwex:var]
Modifica o inicializa el valor de una variable.
[stwex:var]variable##valor
variable: Nombre de la variable
valor: Valor de la variable
Examples of XML files
Minimal example
<stwex>
<menu>
<item title="Exit" action="@exit"/>
</menu>
</stwex>
Basic example
<!-- Example with submenus -->
<stwex killallonexit="True">
<actions>
<action id="1" cmd="xterm"/>
<action id="2" cmd="libreoffice --writer"/>
<action id="3" cmd="xeyes"/>
</actions>
<menu>
<item title="Terminal" icon="icons/bola-terminal.png" action="1"/>
<item title="Writer" icon="icons/bola-01.png" action="2"/>
<item title="XEyes" icon="icons/bola-02.png" action="3"/>
<item>
<separator/>
</item>
<item icon="icons/salida-15.png" title="Salir" action="@exit"/>
</menu>
</stwex>
Complete example
<?xml version="1.0" encoding="utf-8"?>
<stwex icon="images/logoStwex23.png"
title="Mensaje de prueba"
killallonexit="1">
<variables>
<variable key="variable1" value="Opción 1"/>
<variable key="variable2" value="Opción 2"/>
<variable key="variable3" value="probando_variables"/>
<variable key="variable4" value="True"/>
<variable key="accion1" value="1"/>
<variable key="bool1" value="1"/>
<variable key="variable5"/>
</variables>
<actions>
<action id="-1" cmd="@default" killonexit="1" filecomm="/tmp/prueba"/>
<action id="1" cmd="xterm" filecomm="/tmp/prueba2"/>
<action id="2" cmd="xeyes"/>
<action id="3" cmd="sudo tail -f /var/log/syslog" terminal="1"/>
</actions>
<menu>
<item icon="images2/info-15.bmp"
title="@variable1"
action="@accion1"/>
<item icon="images2/link-abierto-15.bmp"
title="Prueba 2"
action="2">
<submenu>
<menu>
<item title="@variable2"
action="3"
enable="@variable4"
hidden="@bool1"/>
<item title="Submenu 02"
action="2"
enable="@variable4">
<submenu>
<menu>
<item title="Subsubmenu"
action="2"/>
</menu>
</submenu>
</item>
</menu>
</submenu>
</item>
<item>
<separator/>
</item>
<item icon="images2/quit-15.png"
title="Salir"
action="@exit"/>
</menu>
</stwex>
Ejemplo de comunicación
Inicializamos el fichero de comunicación:
echo > /tmp/prueba
Modificamos el valor de variable4 consiguiendo que 'Submenu 02' no esté activo (Enable=False):
echo [stwex:var]variable4##False
Modificamos el título de la opción 1:
echo [stwex:var]accion1##Opción de prueba
Mostramos un mensaje:
echo [stwex:show_message]AVISO##Esto es un mensaje de pruebas
License
GNU General Public License v3 (GPLv3). Licenses
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file StwEx-0.1.tar.gz.
File metadata
- Download URL: StwEx-0.1.tar.gz
- Upload date:
- Size: 47.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.4.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.6.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9e912fd3ff1646fb327f6c5bb074f622cbdfea05d2763364d63fefc8b3d90f25
|
|
| MD5 |
e9da87c513b329cd55f6f8911d3d7d92
|
|
| BLAKE2b-256 |
165c98d9f0e5539a8e76f45213c9024bb618cd4c16c21bc8162f1f3430243912
|
File details
Details for the file StwEx-0.1-py3-none-any.whl.
File metadata
- Download URL: StwEx-0.1-py3-none-any.whl
- Upload date:
- Size: 34.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.4.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.6.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
38f36a936a26cc38f01520e8e9258a3394d2e54290cdbca90d9b8db875c3d0f5
|
|
| MD5 |
d47f2a879d79a4152752c42428013d01
|
|
| BLAKE2b-256 |
6404af9fbd2ff0da135b622617b3a331e298043722bc348f724f54a5d1ac99ba
|