Support custom template directory via settings