I've successfully override productList block to show my custom filtered product collection like this:
di.xml
<preference for="\Magento\Catalog\Block\Product\ListProduct" type="\Vendor\Module\Block\Product\ListProduct"/>
Vendor\Module\Block\Product\ListProduct
protected function _getProductCollection()
{
$productCollection = parent::_getProductCollection();
if(isset($_GET['custom_input'])){
if(!empty($_GET['custom_input']){
$customInput = $_GET['custom_input'];
$productCollection = $this->myModuleHelper->filterProduct(customInput, productCollection);
}
}
$this->_productCollection = $productCollection;
$this->_productCollection->getSize();
return $proCollection;
}
but the layered navigation options not showing the right option and product count like the image below: