Button Mapper makes it easy to map custom actions to your volume buttons, Bixby button or other hardware buttons on your phone. Remap buttons to launch any app, shortcut or custom action

Assign actions to single press, double press and long press of your phone's buttons. Root is not required

Button Mapper can remap physical or capacitive keys and buttons, such as volume buttons, the Bixby button on Samsung Galaxy devices, and the capacitive home, back and recent apps keys found on many devices by Samsung, ASUS, HTC, OnePlus, Xiaomi and other manufacturers

Button Mapper does not work when the screen is off unless your device is rooted

A few examples of keymapping you can do with Button Mapper:
-long press volume down to toggle your flashlight
-double tap your home button to launch your favorite app or shortcut
-long press your home button to turn off the screen
-double click the back button to open your notifications
-swap your back and recent apps keys
-use your volume buttons to adjust screen brightness
-long press home to toggle "do not disturb" mode
-press and hold the home button to quickly check your lockscreen messages, release to turn off the screen instantly
-and much more, the possibilities are endless

Additional features unlocked in the pro version:
-support for back button, recent apps button and camera button
-Swap volume keys on orientation change
-Default to media volume
-Pocket detection
-Themes
-Customization of haptic feedback (vibration) on button press and long press

Actions that can be mapped to buttons or keys:
-Launch any app or shortcut
-Disable the button
-Home, back or recent apps
-Tasker intents (execute any task in Tasker)
-Turn screen off
-Toggle flashlight
-Quick settings
-Show notifications
-Power dialog
-Take screenshot
-Music: previous/next track and play/pause
-Adjust volume
-Mute
-Last app switch
-Toggle do not disturb
-Adjust brightness
-Now on tap (root)
-Menu button (root)
-Choose custom keycode (root and Pro version)
-Root command (root and Pro version)
-Toggle WiFi
-Toggle Bluetooth
-Toggle orientation mode
-Clear notifications
-Split screen
-Scroll up/down (root)
-And many more...

Buttons supported:
-Home
-Back (PRO version only)
-Recent apps or Menu (PRO version only)
-Volume up
-Volume down
-Active edge on Pixel 2/Pixel 2 XL
-Bixby button on Samsung S8/S8+/S9/S9+/Note 8
-Camera button (PRO version only)
-Headsethook button
-Custom buttons: add other buttons (active, mute, etc) on your phone, headphones, gamepads, and other peripheral devices

Additional options:
-change the long press or double tap duration
-delay initial button press for better double tap operation
-disable Button Mapper while using specific apps

Troubleshooting:
-For Bixby on unrooted devices, make sure you don't disable Bixby Voice
-Make sure Button Mapper is exempt from any kind of battery optimization, task killers or other things that may interfere
-Button Mapper does not work with onscreen buttons (such as soft keys or the navigation bar) or the power button.
-The options shown in the app depend on the buttons available on your phone. Not all phones have home, back and recents buttons!

This app uses Accessibility services. Accessibility is used to detect when the physical or capacitive buttons are pressed on your device so they can be remapped to custom actions to accommodate your needs. It is not used to see what you type. Button Mapper does not collect or share any of your personal information with third parties

This app uses the Device Administrator permission. (BIND_DEVICE_ADMIN)
This permission is used to lock the screen if the "Turn screen off" action is chosen. If you want to remove this permission, open Button Mapper, click on the menu (three dots in the upper right corner) and select "Uninstall"

Support:
Go to the Button Mapper Google+ community:
plus.google.com/communities/103219324831995743794
From version Button Mapper: Remap your keys 0.84:
New in versions 0.82, 0.83, 0.84:
-remap Active Edge for Pixel 3 and Pixel 3 XL
-optional button press sound (PRO)
-haptic feedback for silent/vibrate mode
-allow sending package name and extras for broadcast intents
-update translations
-bug fixes and optimizations
All versions