0 votos

Iniciar un comando de terminal con un acceso directo (cmd + [LETRA])

¿Es posible lanzar un comando de terminal con un acceso directo del tipo cmd + [LETRA]?

Mi objetivo es utilizar el contenido actual del portapapeles (cmd + C) y utilizar una letra disponible (por ejemplo cmd + W) para lanzar algún script de Python (sólo me falta saber cómo lanzar un comando de terminal, ya que desde ahí se puede lanzar un script de Python y, supongo, también se puede hacer la recuperación del contenido del portapapeles).

Así que básicamente estoy buscando un keybinding global para ejecutar

python3 my_script CONTENT_OF_CLIPBOARD

0voto

Joel Puntos 112

Aún no tengo muy claro lo que intentas conseguir, pero quizá esto te ayude:

1. No has puesto un script de Python, así que me he inventado uno: mypyapp.py .

Disculpas, ¡no soy un PyGuy! Lo guardé como ~/scripts/mypyapp.py . Todo lo que hace es agarrar el contenido de la mesa de trabajo, e imprimirlo en stdio . Puedes aumentarlo, o poner el código pertinente en tu script:

#!/opt/local/bin/python3
import sys, subprocess

def get_clipboard_data():
    p = subprocess.Popen(["pbpaste"], stdout=subprocess.PIPE)
    retcode = p.wait()
    data = p.stdout.read()
    return data

new_data = get_clipboard_data()

print('clipboard data: ',new_data)

2. Haz ejecutable el script:

chmod 755 ~/scripts/mypyapp.py

Nota: Puede ejecutar este script desde la línea de comandos para probarlo antes de continuar ; Asegúrese de que copie una línea de texto con commandc antes de ejecutar el script - ¡de lo contrario la mesa de trabajo puede estar vacía!:

~/path/to/mypyapp.py

3. Introduzca esta línea en su archivo de configuración zsh - ~/.zshrc :

bindkey -s '\eg' '~/scripts/mypyapp.py^M' 

4. source su ~/.zshrc como se muestra a continuación para cargar el archivo de configuración revisado en su shell:

. ~/.zshrc

# alternatively, use the command 'source ~/.zshrc'

5. Ejecute bindkey para comprobar que se ha añadido:

bindkey | grep mypyapp

# which should yield one line:

"^[g" "~/scripts/mypyapp.py^M"

*Nota que el atajo de teclado no es lo que hemos introducido en el paso 3. '\eg' se esperaba que significara optiong . Pero parece que MacOS ha anulado esa opción, sustituyéndola por ^[g cuya traducción es la siguiente:

control[ + g

La secuencia es un poco complicado debe pulsar ambas teclas control[ , luego suelta ambos, y finalmente g .

Ya está.

No lo he probado a fondo, así que asegúrate de hacerlo antes de dedicarlo a una aplicación seria. También debes saber que si añades zle (editor de líneas zsh) le ofrece muchas más opciones, pero éste puede ser un punto de partida razonable. Háganos saber si usted golpea cualquier inconveniente, o tiene más preguntas.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X