I usually use LaTeX, because it works on all the major OS and frees me from learning different software
macOS has great PDF support. Preview.app understands ToCs and full-screen presentation mode. It's been awhile since I've used any Linux GUI apps, but IIRC the typical Linux PDF viewers had all the right features, too.
Your whole presentation is basically an HTML file - a <section> for each slide. CSS and JS can be used as like on a normal webpage to provide styling and effects.
It can be edited and run on any computer and operating system - just needs a text editor and browser.
It's responsive - no need to worry about aspect ratio.
It has speaker notes too!
I can manipulate and place objects in Keynote with a precision that nothing else affords me not because they're incapable of it, but rather because their workflows for doing so are, to me, hugely inefficient. The way Keynote handles layout, snapping, movement, Magic Move transitions and many other features just can't be replicated.
Except it can, on the web. Have you given iCloud.com's version of Keynote a try? Much less featureful, but if you go back to any given Mac and make yourself some nice templates and store them in your iCloud Drive, you can always use those to create presentations in _basically_ the same workflow as you're used to, just in a browser.
Fair warning, though: anecdotally, I've always found it's a bit heavier on the resource usage than Google Slides or Office 365.
Guess this approach depends on whether you want to "code" your slides or not. As someone who's never gotten along with Powerpoint et al, this approach agrees with me very well.
I kinda like this solution over a "presentation" program as you can use whatever you want and produce slides way nicer then being limited by Pages, Impress, PowerPoint, or whatever.
but I think the willingness to move to linux pre-supposes you have also accepted the slide content is what matters, not what it looks like.
I think there is a very strong Tufte moment here: make slides in whatever you can, even as plain ASCII.
Disclaimer: I work there.