I may have misinterpreted what you are asking here but you don’t need to do this using pre_get_posts().
Instead you could either add this to your functions file:
function output_page_type() {
global $post;
$pagename = $post->post_name;
return $pagename;
}
and then on the relevant page
echo output_page_type();
to get the page title.
Or you could use switch and the appropriate conditional tags i.e. is_page() is_home() is_tax() is_archive() etc. You can then output the correct page type that way. I like to do this in the header so its only needed once. For example:
switch (n)
{
case is_home() :
echo "Home";
break;
case is_page() :
echo "Page";
break;
case is_category() : // Category
echo "Category";
break;
case is_tag() : // Tags
echo "Tag";
break;
case is_single() : // Single
echo "Single";
break;
case $wp->query_vars['post_type'] : // Custom Post Type
echo $wp->query_vars['post_type'];
break;
case is_tax() : // Custom Taxonomies
echo "Tax";
break;
case is_archive() : // Standard Archive
echo "Archive";
break;
default:
echo "Some other randomness";
break;
}