Not sure if you heard of it, but
Pressy was a Kickstarter project I backed. It's a little programmable button that goes in your phone's headphone jack. I have mine programmed to open the camera with one short press.
If you use Bluetooth instead of a wired set of headphones, you might consider it
Another way is to use a 3rd Party launcher like Apex or Nova. You can program each of the buttons to do various things. In Apex, look under System Settings --> Behavior Settings.
Hope this helps!