I can't trash files anymore, but only delete them directly

Solution 1:

Check the ownership and permissions on ~/.Trash.

mress:10039 Z$ ls -ld ~/.Trash 
drwx------  285 allbery  staff  9690 Jun 28 16:53 /Users/allbery/.Trash/

My guess is it somehow ended up being owned by root, but there are other possibilities. If it's the owner, the fix is sudo chown $USER ~/.Trash ~/.Trash/.DS_Store.