Here are the things that make the job less exhausting and more fun for me:
1. Knowing why I'm doing something.
2. Knowing what I'm going to do before doing it.
3. Having a plan before I start working on something.
4. Make sure the project you're working on has some structure and if you're working in a team, make sure everyone is on the same page.
Thinking about how your career should progress in the future also should make you enjoy work more, this is so it doesn't feel like what you're doing today is going to be what you're going to do forever, personally, not having that vision makes me depressed.
I personally believe most of the mental drain of knowledge work comes from the ambiguity and the fatigue that comes from not having good plans which in turn cause more mistakes, longer work hours and more stress.
Some people also talk about injecting new things into your work which is good, but I also think "mastery" is very fun and rewarding, mastering your test suite framework, your editor, your chosen programming language.