My primary device is Nexus 4 and soft touch buttons or the menu keys at the bottom of Nexus 4 stopped working. Initially I thought that it is due to some app installation or due to some bugs from the custom ROM or the custom kernel on my device. So I restored the device back to stock ROM i.e Android 4.4.3 kitkat wiping everything or in other words, performed a factory reset and installed the stock android from the Google factory image for the device. But the problem of Soft touch buttons / keys not working remained. I also noticed that the Soft touch buttons / keys were not even working in the recovery mode (with TWRP recovery).
Then I realized that it’s a hardware issue and perhaps digitiser of Nexus 4 need to be replaced. It costs too much to do that as my device is out of warranty so I started looking out for workarounds and fortunately I found it. Check out the details below on how to fix the soft touch buttons / keys not working without replacing the digitiser or your LCD screen.
Fix: Soft touch buttons / Menu keys not working (Root Needed)
This is the best bet and after using this method, you don’t need to replace Nexus 4 screen or digitiser at service center.
- If you have already Rooted your nexus 4 then well and good. Otherwise you need to root it. The easiest way to root is to use the Nexus Root Toolkit by wugfresh. Make sure to create a backup of your device data just in case. The other simple tool to root is towelroot by Geohot ( I havn’t tested it on my Nexus 4 but it may work).
- After rooting, you need to download and install the Xposed Framework. You can download the APK from here.
- Make sure you open the Xposed framework and click on install and update. It needs a reboot after the install to start working.
- After reboot, you need to download and install Gravity Xposed Module. It is available for download right inside the xposed framework or you can also download it from here (the link is for kitkat version).
- After installing gravity module and activate it from inside the xposed framework. or just open the Gravity Module just like an app.
- Now with everything set, you need to go to “Navigation Bar Tweaks” >> Then Enable the Master switch. Settings won’t take effect untill reboot.
- After that select “enable Navigation Bar”. After enabling navigation bar, the other options below will become available to you. Now scroll down at the end and there you will find the option to change the navigation bar height and width.
- You need to increase the navigation bar height to more than 100%. For me it work till I increased it to 115%. For you it may vary. You got the option to increase the height up to 150% but hopefully it will work much before that.
- After changing the navigation bar height, you need a reboot. Just reboot your Nexus 4 and now Nexus 4 Soft touch buttons / keys will start working again. (Checkout screenshots below for clear instructions).
Note: The fix may stop working if you change some of the other settings of the phone, especially if you are on a custom ROM. Just go to gravity module again and save it again. It will start working again. Best way is to avoid changing settings of the phone.
Even though the method mentioned above must work for everyone, yet if you are not yet ready to root your device or the method doesn’t work, then you can use one of the two apps below to shift the navigation buttons to sides or top and use your phone till you decide to go for a repair or replacement. The two apps are :
- Pie Control
- Button Saviour (for Root, non-root)
Hopefully, you don’t need to spend $100 or more now to repair your Nexus 4. :)
It should though work even on other phones like Nexus 5 or even other branded phones, but make sure you download the gravity module compatible to that device only.
Update:
Even though the solution above worked perfectly for me and the menu buttons worked fine, but the device started behaving erratic (ghost touches) at random leaving phone useless. Even the reboots didn’t stop those ghost touches on the device.
Finally I decided to get it fixed by getting it repaired at LG service center. They replaced the entire digitizer and the LCD screen which cost me Rs. 4700 (~$80) as it was out of warranty.
Even though I insisted to replace only the digitizer and not the LCD screen, they only have the spare as LCD screen and digitizer as one single piece.
The phone is now working fine for almost a week without any issues.