Páginas

domingo, 29 de septiembre de 2013

Xbindkeys: FrontEnd hecho con Gambas3



Xbindkeys: 
FrontEnd hecho con Gambas3
Preparando un ejemplo de FrontEnd hecho con gambas3 para el curso de gambas que estoy terminando de escribir (http://cursogambas.blogspot.com.es/), pues he hecho esta pequeña utilidad, para facilitar el uso de XbindKeys.

Simplemente sirve para asignar una combinación de teclas al programa que le indiquemos haciendonos las correspondinetes preguntas, y el solo modifica y actualiza el fichero de configuración, activando la combinación de teclas.


  1. ' Gambas class file
  2. Public Sub _new()
  3. End
  4. Public Sub Form_Open()
  5. 'comprobar que exista el fichero .xbindkeysrc
  6. If Exist(User.Home & "/.xbindkeysrc") Then
  7. 'no hago nada
  8. Else
  9. 'copio el archivo de conifguracion inicial
  10. Copy "xbindkeysrc" To User.Home & "/.xbindkeysrc" 'este archivo es oculto
  11. Endif
  12. Me.center
  13. End
  14. Public Sub ToolButtonCrear_Click()
  15. Dim contenido As String
  16. Dim comando As String
  17. Dim salida As String
  18. Dim lineas As New String[]
  19. Message.Info("Cuando cierre esta ventana,pulse la combinación de teclas", "cerrar")
  20. Shell "xbindkeys -k" To salida
  21. 'de la salida extraigo las dos ultimas lineas que son las que me interesan
  22. lineas = Split(salida, gb.CrLf)
  23. Print salida
  24. Print "lineas que me interesan:"
  25. Print lineas[lineas.max - 2]
  26. Print lineas[lineas.max - 1]
  27. comando = InputBox("Introduce el nombre del programa al que llamara esa combinación de teclas:")
  28. contenido = File.Load(User.Home & "/.xbindkeysrc")
  29. contenido &= gb.CrLf
  30. contenido &= "\"" & comando & "\"" & gb.CrLf
  31. contenido &= lineas[lineas.max - 2] & gb.CrLf
  32. contenido &= lineas[lineas.max - 1] & gb.CrLf
  33. File.Save(User.Home & "/.xbindkeysrc", contenido)
  34. Shell "xbindkeys"
  35. Message.Info("Se acaba de añadir la combinacion de teclas...!!!")
  36. End
  37. Public Sub ToolButtonConfigurar_Click()
  38. Shell "xbindkeys-config"
  39. End

Pulsando el boton de "Crear nuevo atajo", lo que hacemos sacar un mensaje para indicar al usuario que tiene que pulsar la combinación de teclas cuando cierre el mensaje:

Message.Info("Cuando cierre esta ventana,pulse la combinación de teclas", "cerrar")


a continuación ejecutamos el programa xbindkeys, (y pulsaremos la combinación de teclas), capturamos la salida que produce el comando xbindkeys,


Shell "xbindkeys -k" To salida

y preguntamos que aplicación se va a ejecutar con la combinación de teclas dada anteriormente.
  • comando = InputBox("Introduce el nombre del programa al que llamara esa combinación de teclas:")


  • Con la información recopilada,


  • lineas = Split(salida, gb.CrLf)

  • contenido &= gb.CrLf
  • contenido &= "\"" & comando & "\"" & gb.CrLf
  • contenido &= lineas[lineas.max - 2] & gb.CrLf
  • contenido &= lineas[lineas.max - 1] & gb.CrLf
  • File.Save(User.Home & "/.xbindkeysrc", contenido)


  • la vamos a añadir al fichero oculto
    .xbindkeysrc

    Finalmente, ejecutamos
  • Shell "xbindkeys"
  • Para que los cambios se añadan.


    Enlaces de descarga:
    • Archivo de instalación .deb: enlace