pre_get_posts dont firing… Anybody knows whats the wrong with my code?

There are a couple of problems with your condition:

A single query cannot match all of your conditions – it can’t be a tag as well as search, for example. You need to use || (or) and possibly nest – so for example,

if(!is_admin() && ($query->is_home() || $query->is_search())) {

This says, “if we’re not in the admin area AND either it’s a home query or a search query, then do this.”

Also, some of the is_ conditions you’re trying to meet aren’t the way you test the query. is_front_page() cannot be called because the query isn’t set up yet – but is_home() can. Read up in the documentation to learn more about which conditionals are valid, and then you can try a simplified query first – such as if(!is_admin()) to make sure it’s running – then add additional conditions one at a time so you can tell which one specifically is causing you problems.