[Nexus 4 General] rekrapg:
Using Ubuntu 13.04 (I know alpha, but already far better than 12.10 for me and my graphics).

For MTP, i'm doing this: http://www.webupd8.org/2012/12/how-to-mount-android-40-ubuntu-go-mtpfs.html

Follow the steps:

sudo add-apt-repository ppa:webupd8team/unstable
sudo apt-get update
sudo apt-get install go-mtpfs go-mtpfs-unity

Then go into Dash Home, type in Mount Android Device. Click and drag the icon to your launcher. It's not auto-mount, but works well on any Android device i've tried so far. When you plug in your Android device (tested on Galaxy Nexus, Nexus 4, and Nexus 7), unlock it, then, right click on the Android icon, and select Mount Android Device (not the bold text, normal text). Instantly there in Nautilus. When done, make sure unlocked, then right click / unmount. Easy.

Haven't had any issues at all with adb setup either, very easy. Only things I had to do were:

Install Java;

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer

Then Install SDK (I extracted to /home/%user%/Android) and add in platform tools.

Then edit bashrc;

sudo gedit ~/.bashrc

Add to end of file:

# Android tools
export PATH=${PATH}:~/Android/tools
export PATH=${PATH}:~/Android/platform-tools

Save/close.

Then log out/in or just reboot;

sudo reboot

adb devices = works straight away, no udev rules required.

Haven't had to test fastboot yet, but will check that out sometime soon.

Automount MTP (source: http://www.tuxtrix.com/2012/12/how-to-automount-nexus-4-and-nexus-7-in.html):

Config fuse

sudo chmod a+r /etc/fuse.conf
sudo gedit /etc/fuse.conf

remove the hash from infront of:

#user_allow_other

to be

user_allow_other

save and close. now download/install go-mtpfs:

sudo add-apt-repository ppa:webupd8team/unstable
sudo apt-get update
sudo apt-get install go-mtpfs

Now setup mount directories:

sudo mkdir /media/nexus4
sudo chmod 777 /media/Nexus4
sudo mkdir /media/nexus7
sudo chmod 777 /media/Nexus7

Add udev rules:

sudo gedit /etc/udev/rules.d/99-android.rules

Add in the following (change "yourloginid" to your Ubuntu username):

# Google Nexus 7 MTP mode : automatic mount when plugged (all android versions)
ENV{ID_MODEL}=="Nexus", ENV{ID_MODEL_ID}=="4e41", ACTION=="add", RUN+="/usr/bin/sudo -u yourloginid /usr/local/sbin/go-mtpfs -allow-other=true /media/nexus7"
ENV{ID_MODEL}=="Nexus", ENV{ID_MODEL_ID}=="4e42", ACTION=="add", RUN+="/usr/bin/sudo -u yourloginid /usr/local/sbin/go-mtpfs -allow-other=true /media/nexus7"
ENV{ID_MODEL}=="Nexus_7", ENV{ID_MODEL_ID}=="4e41", ACTION=="add", RUN+="/usr/bin/sudo -u yourloginid /usr/local/sbin/go-mtpfs -allow-other=true /media/nexus7"
ENV{ID_MODEL}=="Nexus_7", ENV{ID_MODEL_ID}=="4e42", ACTION=="add", RUN+="/usr/bin/sudo -u yourloginid /usr/local/sbin/go-mtpfs -allow-other=true /media/nexus7"

# Google Nexus 7 MTP mode : automatic unmount when unplugged (all android versions)
ENV{ID_MODEL}=="Nexus", ENV{ID_MODEL_ID}=="4e41", ACTION=="remove", RUN+="/bin/umount /media/nexus7"
ENV{ID_MODEL}=="Nexus", ENV{ID_MODEL_ID}=="4ee2", ACTION=="remove", RUN+="/bin/umount /media/nexus7"
ENV{ID_MODEL}=="Nexus_7", ENV{ID_MODEL_ID}=="4e41", ACTION=="remove", RUN+="/bin/umount /media/nexus7"
ENV{ID_MODEL}=="Nexus_7", ENV{ID_MODEL_ID}=="4e42", ACTION=="remove", RUN+="/bin/umount /media/nexus7"

# Google Nexus 4 MTP mode : automatic mount when plugged (all android versions)
ENV{ID_MODEL}=="Nexus", ENV{ID_MODEL_ID}=="4ee1", ACTION=="add", RUN+="/usr/bin/sudo -u yourloginid /usr/local/sbin/go-mtpfs -allow-other=true /media/Nexus4"
ENV{ID_MODEL}=="Nexus", ENV{ID_MODEL_ID}=="4ee2", ACTION=="add", RUN+="/usr/bin/sudo -u yourloginid /usr/local/sbin/go-mtpfs -allow-other=true /media/Nexus4"
ENV{ID_MODEL}=="Nexus_4", ENV{ID_MODEL_ID}=="4ee1", ACTION=="add", RUN+="/usr/bin/sudo -u yourloginid /usr/local/sbin/go-mtpfs -allow-other=true /media/Nexus4"
ENV{ID_MODEL}=="Nexus_4", ENV{ID_MODEL_ID}=="4ee2", ACTION=="add", RUN+="/usr/bin/sudo -u yourloginid /usr/local/sbin/go-mtpfs -allow-other=true /media/Nexus4"

# Google Nexus 4 MTP mode : automatic unmount when unplugged (all android versions)
ENV{ID_MODEL}=="Nexus", ENV{ID_MODEL_ID}=="4ee1", ACTION=="remove", RUN+="/bin/umount /media/Nexus4"
ENV{ID_MODEL}=="Nexus", ENV{ID_MODEL_ID}=="4ee2", ACTION=="remove", RUN+="/bin/umount /media/Nexus4"
ENV{ID_MODEL}=="Nexus_4", ENV{ID_MODEL_ID}=="4ee1", ACTION=="remove", RUN+="/bin/umount /media/Nexus4"
ENV{ID_MODEL}=="Nexus_4", ENV{ID_MODEL_ID}=="4ee2", ACTION=="remove", RUN+="/bin/umount /media/Nexus4"

Restart udev:

sudo service udev restart

Add rules to fstab to allow easy mount/unmount without root:

sudo gedit /etc/fstab

Add in this to the end of the file:

DeviceFs(Nexus\0407) /media/nexus7 fuse.DeviceFs(Nexus\0407) allow_other,rw,user,noauto 0 0
DeviceFs(Nexus\0404) /media/Nexus4 fuse.DeviceFs(Nexus\0404) allow_other,rw,user,noauto 0 0

Remount all drives:

sudo mount -a

Done.

But I prefer the other method (manual mount/unmount) with the icon up top of this post, so not using this method anymore.