In general, since the AMD "Zen 2" CPUs came out with great performance and decent prices, I would recommend any laptop with a Ryzen™ Mobile 4000 Series Processor and 16GB of RAM. Since these are new models that came out this year, peripherals are mostly up to date and not to worry about.
Let me explain based on every requirment you posted.
- Must have decent amount of processing power, over graphics power.
The Ryzen™ Mobile 4000 Series Processors come at a much better price/performance ratio then the Intel counterparts when not for gaming, and they score greatly in various multi-core benchmarks. They are quite suitable for programming as they speed up multi-threaded compiling and program running.
- Must have 8GB of RAM or more
16GB is highly recommended now since you do programming and therefore probably need at least both an IDE and a browser to stay open, added with memory taken by the OS 8GB is quite tight.
- Decent ish keyboard would be nice, as long as it's not actually bad then it's fine probably.
Most laptops have decent keyboards. You should consider buying seperate mechanical keyboards if you are really picky about it. However, ThinkPad keyboards are admittedly better than others for working since they inherited all the ergonomics patents from IBM.
- Must have decent screen, preferably 1080p, high refresh rate not required.
Almost all laptops in that price range have 1080P or superior screens so that's not to worry about.
- A dedicated GPU would be nice but I don't want something that will cause the battery life to be very little, GTX 1050 or equivalent would be more than enough. AMD integrated graphics is pretty good nowadays so a recent AMD APU would also probably be fine.
- A battery life of 5+ hours would be nice but I can live with 2 hours minimum.
- The thinner and lighter the better but it's not the most important feature.
Since you mentioned light gaming like Minecraft, integrated graphics should be enough for you. Then you can go for one with the 4700U or 4800U processor, in which "U" stands for low power so that should give you 5+ hours of battery life and a light body. On the other hand, if you want slightly more CPU performance and a lot more GPU performance, you can go for one with the 4800H or 4900HS processor and the NVIDIA GeForce GTX 1650 graphics card or better, but in this case, 5+ hours of battery life can't be guaranteed and it can be slightly heavier but won't be a big problem for you to carry around.
- I intend to replace the HDD/SSD with one I already have so I don't need any fancy storage.
The "U" models usually only come with one M.2 NVMe SSD and the "H" models usually come with both an M.2 NVMe SSD and a SATA HDD. So keep in mind what kind of drive you want to replace.
I intend to run linux on the laptop but it's probably fine on most laptops, if there's an option with no operating system then that would be a bonus but it's not exactly common.
You can install Linux on any of them. However, Ubuntu seems to have better driver support for ThinkPads because most software engineers working on Ubuntu use ThinkPads given by their companies.
So based on the explanations above, I'd recommend these 4 options:
- Lenovo ThinkPad E14/E15 with AMD Ryzen™ 7 4700U
This one perfectly suits your needs. it has the ergonomic keyboard and the TrackPoint which are perfect for programmers, and there is good driver support for ThinkPads on Ubuntu.
- Lenovo Yoga/IdeaPad Slim 7 with AMD Ryzen™ 7 4800U
If you want 8C16T of even greater CPU performance on a light book you can checkout these 2. However, you might also lose the ThinkPad benefits.
- ASUS TUF Gaming A15/A17 with AMD Ryzen™ 7 4800H
If you want slightly more CPU performance and a lot more GPU performance, at the sacrifice of less battery life and more weight, you can go for this one. This is a well sold ASUS model at a quite decent price. And another advantage of this model is that there is one extra empty SATA drive slot so you can just add your drive instead of replacing it (I have opened one so I know).
- ROG Zephyrus G14
If you want extreme performance are are willing to spend more money, go for the ROG. It starts at about $1100 and the 4900HS model starts at about $1600 so it's still within your price limit.
And check out multi-core scores on Processor Benchmarks - Geekbench Browser if you want to see how much these CPUs differ in performance.