It seems like you've got the right idea. I'm going to assume that this is a home PC with a small number of users...
It can be a good idea to start completely fresh user profiles, in which case, you may want to create new user accounts, each with the same names and UIDs. It'd be easiest just to mount your previous
/home partition, in
If you create new user profiles on the SSD, then all the user-specific configuration files will be on the SSD, so logging in will be SSD-quick. The whereabouts of your home folder shouldn't affect boot-time, but would have a slight impact on the time taken to log in.
As you quite rightly said, you'll want to keep the media directories (Downloads, Videos, Pictures, etc.) on your other partition(s). I've found a pretty reliable way of doing this is to just create sym-links from the old media directories to your new home folder. If you had to do this for lots of users, this would quickly get tedious, unless you wrote a wrapper script around
useradd which creates the sym-links automatically.
In terms of what sized disk to purchase, how much space are you using on your root partition now?
df -h will show how much space is taken up by each partition. See this answer on askubuntu to get an idea of the space occupied by all installed packages.
If you'll be using
dd, to duplicate your old root partition to the SSD, you'll need a new drive at least as big as the old partition. If you have hundreds of gigabytes of free space on your current root partition, you can shrink the partition using a tool like
gparted, and that will allow you to copy the whole partition across, before expanding it to fill the drive.
SSD drives are ideally suited for swap space, but I've already got an old swap partition, so I just use that. I see swap space as only strictly necessary in memory-limited emergencies, which I suffer very little from. YMMV.
Easiest solution? I'd just move the
/ partition, and keep the rest as is. I find SSDs mainly flourish in terms of boot time and application startup time. With that in mind, you only really need
/var on the SSD; everything else can be elsewhere, with minimal effect on system performance.
Another optimisation worth making on SSD drives is with the mount flags specified in
/etc/fstab. From the Arch Wiki and forum, on an ext4 partition, you might add:
UUID=xxx-xxx-xxx / ext4 rw,discard,data=ordered,noatime 0 1
discard flag turns on TRIM support in the firmware;
data=ordered optimises journaling on supported file systems on SSDs;
noatime turns off recording files' last access time.