Both the nexus 4 and the nexus 7 (2013) support slimport, which is very useful for mirroring the device to a big screen. However, neither device uses the standard 16:9 (1080p) aspect ratio. As a result, you end up with some cropping on a 1080p TV. For the nexus 4 it is even worse, since it outputs 768p upscaled to the TV's resolution.
However, the flexibility of android allows us to manually change the native resolution. In a console, we can type the command:
wm size 1080x1920
and the resolution will change. In the device screen the new resolution will look odd, however you now have true 1080p on the TV. To get back to the default resolution you type:
wm size reset
This solution works, but it is not very convenient. So I made two profiles for tasker, that automatically change the device resolution upon the connection of an HDMI cable and reset it when the cable is disconnected, thus automating the whole process.
I 'm attaching a screenshot of the two profiles, as well as a zip file so you can extract and import them in tasker.
In summary,
- you need root
- you need a ppi setting lower than 288 otherwise the navbar disappears
the HDMI plugged profile
- reduces the device brightness to minimize battery consumption
- increases volume
- sets resolution to 1080p
- enables WiFi
- sets display timeout to 10 hours
- activates display rotation
the HDMI un-plugged profile
- sets auto brightness back on
- resets screen resolution
- sets display timeout to 1min
These are optional settings that I found useful to automate, but they are all optional, and you can tweak them once you imported the profile to tasker.
I hope you find this useful!!! :good:
UPDATE: Your device must be set to a ppi lower than 288. I am using 286 myself. To change your ppi:
Open the build.prop file from /system/build.prop
using a text editor/buildprop editor app, change the value of ro.sf.lcd_density=286
save the file, reboot
However, the flexibility of android allows us to manually change the native resolution. In a console, we can type the command:
wm size 1080x1920
and the resolution will change. In the device screen the new resolution will look odd, however you now have true 1080p on the TV. To get back to the default resolution you type:
wm size reset
This solution works, but it is not very convenient. So I made two profiles for tasker, that automatically change the device resolution upon the connection of an HDMI cable and reset it when the cable is disconnected, thus automating the whole process.
I 'm attaching a screenshot of the two profiles, as well as a zip file so you can extract and import them in tasker.
In summary,
- you need root
- you need a ppi setting lower than 288 otherwise the navbar disappears
the HDMI plugged profile
- reduces the device brightness to minimize battery consumption
- increases volume
- sets resolution to 1080p
- enables WiFi
- sets display timeout to 10 hours
- activates display rotation
the HDMI un-plugged profile
- sets auto brightness back on
- resets screen resolution
- sets display timeout to 1min
These are optional settings that I found useful to automate, but they are all optional, and you can tweak them once you imported the profile to tasker.
I hope you find this useful!!! :good:
UPDATE: Your device must be set to a ppi lower than 288. I am using 286 myself. To change your ppi:
Open the build.prop file from /system/build.prop
using a text editor/buildprop editor app, change the value of ro.sf.lcd_density=286
save the file, reboot
Attachments
Last edited: