How to switch to vibrate mode using only hardware keys I have a Nexus 4, and I would like to be able to switch it to vibrate mode without having to look at the screen or unlock it. My previous phones had this ability (my iPhone had a switch dedicated to this on the side, and on my flip phone before that I just held down the volume down button). I've found this feature pretty useful in many situations where I realize after the fact that I want my phone to be silent, but I don't want to show that I'm silencing my phone (movie theaters, churches, meetings, etc.). I keep my phone in my pants pocket, and the other two phones allowed me to silence them without even removing them from my pocket.

I've tried holding down the volume up, volume down, or power buttons, but that doesn't do anything. I know that there are apps that I can configure to automatically silence based on my location, time of day, and/or calendar items, and while those are useful they still don't give me a universal way to silence the phone with minimal interaction. A home screen or lock screen widget won't work for me because my work requires that my phone lock itself, and doesn't allow me to put widgets on the lock screen.

I'm also not interested in rooting my phone, but a free or paid app (preferably on the Google Play store) is fine. Really, an ideal solution would be an app or setting that allows me to press and hold the volume down button (while the phone is still locked) to put it in vibrate mode.
The following short procedure should work:


press power button (enable the screen)
hold power button for 1 second (new required step on Android 4.2.2, not needed on 4.2.1)
press volume up or down until phone vibrates
optionally press power button again (turn off screen)


The idea is to enable the screen first, because then volume buttons would be enabled to change ringer volume (when screen is off they only work for music volume if it is playing).

Then depending on what volume you had set you need to press volume up or down:


if volume was set to silent, press volume up once, the phone should vibrate, now the phone is in vibrate only mode
if volume was set to regular ringtone, press volume down several times until phone vibrates. Now phone is in vibrate mode. Pressing volume down again would enable silent mode.


So you need to press volume down or up until you feel single vibrate and the you can leave the phone as is and it should turn off screen after short time by default. There shouldn't be much risk leaving screen enabled in a pocket for a while, but if you want you can press power button again to disable screen, but you risk pressing volume keys again which might either put phone in silent mode or enable ringtone.

Full procedure that should always work:


press power button (enable lock screen)
press volume down up to 7 times until phone vibrates then stop the procedure (this assumes there are 9 levels of volume, see below)
if phone not vibrated press volume up (you were probably in silent mode), phone should vibrate
if phone not vibrated repeat the procedure only one more time (maybe screen was enabled and first step turned it off)
optionally if phone vibrated, press power button once to turn off screen


Phone changes between following states when pressing volume up/down keys:


Maximum volume
...
...
Medium volume
...
...
Minimum volume
vibration only
no sound, no vibration - silent mode


The procedure was tested on Galaxy Nexus, but since Nexus 4 is very similar (same button layout/number, OS version, nexus brand) it should also work for it.

Update: Since android 4.2.2 changing volume on lock screen as described above does not work. There is additional step needed: holding power button for at least 1 second when screen is enabled. This will bring the "power off/airplaine mode" dialog and volume buttons will work there.