First, thanks a lot for creating a project! I was looking for something to replace VoiceAttack which I've used on windows and this tool really helped me out.
On windows I was using HCS voicepacks and I was really missing the audio feedback from these, so I've implemented playing audio files into your tool.
While having quite some coding experience, this is actually the first time I do write something in python, so some things might not be super optimal or best practice.
I've encountered some issues with your tool, like not being able to change profiles, I fixed that along the way. For a full list of changes, issues and thoughts, please see the changes.md file.
One thing to note about the xdotool integration: I have quite some issues running your script with sudo, so I've looked into an alternative for sending key commands. xdotool comes in handy here, although it really has its issues, where the target window for unknown reasons does not receive the commands. Sometimes it works, sometimes not, it's still puzzling me.
Please have a look if you like the changes and would like to merge it with your branch. :-)
So here's the commit log, taken from changes.md:
hacked profileexcutor to reload command list when changing it. it did not do that,
so changing the profile had no effect at all.
hacked profileexecutor to somewhat make use of "Enable listening".
It was an option without functionality at all until now.
created new directory 'voicepacks', copy HCS voicepacks here
new command to play a sound
new gui to select sounds from voicepacks
created playsound class that reads voicepack files and plays audio files with ffplay
added alternate keypress handling using xdotool, which won't require root privileges.
might not work for any key existing in profiles, as some need to be remapped. added some remappings to profileexecutor.py pressKey()
added basic command line argument reading to set some configs. right now there:
-noroot - will enable xdotool usage for keypresses
-xdowindowid - will send keypresses to this window only, makes it more relyable when window is not focused for any reason
added auto-detection of Elite Dangerous client window id if -noroot is used and no -xdowindowid is supplied. for this to work, start this script AFTER the client is already running.
monkey-wrenched a volume slider to the main window
added confirmation dialog for removing a profile (!)
copy existing profile. added a copy button to the main menu
First, thanks a lot for creating a project! I was looking for something to replace VoiceAttack which I've used on windows and this tool really helped me out.
On windows I was using HCS voicepacks and I was really missing the audio feedback from these, so I've implemented playing audio files into your tool.
While having quite some coding experience, this is actually the first time I do write something in python, so some things might not be super optimal or best practice.
I've encountered some issues with your tool, like not being able to change profiles, I fixed that along the way. For a full list of changes, issues and thoughts, please see the changes.md file.
One thing to note about the xdotool integration: I have quite some issues running your script with sudo, so I've looked into an alternative for sending key commands. xdotool comes in handy here, although it really has its issues, where the target window for unknown reasons does not receive the commands. Sometimes it works, sometimes not, it's still puzzling me.
Please have a look if you like the changes and would like to merge it with your branch. :-)
So here's the commit log, taken from changes.md: