You can start to delete pachage caches, and see how much you gain... If not done often you can have a pile of old stuff. Check out the paccache arch wiki page for more info!
This realy helped my out. /var/cache/pacman took up over 5GB of space in my root partition. To prevent this from happening again, is there a way to move pacman cache to my home partition where I have over 300GB of space for pacman to consume?
I'm not currently using Arch so I can't test, but from this forum post it looks like you can change the CacheDir variable in /etc/pacman.conf to point anywhere you want.
log files only took up 800MB, but I fixed most of the problems now, by setting up pacman to put the cache in the home partition.
You are right, it was better to leave /home in the same partition, but now it is difficult to chance that. I thought it had advantages when something goes wrong with my root i can swap it out, but it only caused problems for me. Why do so many people split up there /home then? I thought it was common practice.
The main advantage of having a /home partition is that you can easily preserve it during reinstalls or during a distro hop. Reinstalls used to be more common in the past when some distros didn't allow full distro upgrades without reinstalling. See this result which is still ranked #1 on duckduckgo
I personally use a @home btrfs subvolume which has most of the same advantages to me, and additionally allows @home and @root to share the same partition. It also allows me to use luks on everthing without bothering with lvm.
To be clear, I have a home partition with over 300GB of free space left. Is there maybe a way to specify packages to be installed in my home partition instead of my root?
As people have mentioned there are alternate package managers that can provide this if you are concerned about resizing ur root partition and expect it to fill up again soon. Check out Guix, nix, or flatpaks (definitely the easiest to quickly setup )
One quick suggestion is running sudo pacman -Sc. Also switch to flatpak on some apps since these are stored in /home. If these don't work/are not suitable to your situation, give more information like mentioned on the other comments.
In addition to everything else, if you're not using hibernate you could reclaim some of the swap partition, 10 GB is completely wasted.
I would delete and merge the swap space into root if they're neighbors. You can create swap files instead of any size you want, and place them anywhere you want, like /home.
I would recommend starting with 1 GB of swap and see how much is actually being used.
To create and use a swap file:
Use dd if=/dev/zero of=/swapfile bs=1M count=1024 to create a file.
Use mkswap to format the swap file.
Use swapon /swapfile to activate it.
Add /swapfile none swap sw 0 0 in /etc/fstab to activate on every reboot.
Not sure if arch is too different, but Linux is Linux. I suggest you get any live distro you can such as Ubuntu or fedora on a live usb stick and boot into it, once in it run gparted (or first install it if not available) and simply resize your partitions around as in to allocate some space from your home partition to your root partition. Should be a fairly simple operation especially with an easy and intuitive GUI such as gparted.