Kook de eieren hard, laat ze schrikken onder koud water en pel ze.
Pel de uien en snijd ze in dunne plakken.
Verhit de boter en olie in een koekenpan en bak de uien rustig goudgeel.
Voeg een klein scheutje water toe en laat de uien verder stoven tot het vocht grotendeels is verdampt.
Breng de uien op smaak met zout en zwarte peper en roer de room erdoor.
Smelt voor de bechamelsaus de boter in een steelpan en roer de bloem erdoor.
Laat de bloem ongeveer 1 minuut rustig garen zonder te kleuren.
Voeg de melk beetje bij beetje toe en blijf met een garde roeren tot een gladde saus ontstaat.
Breng de saus aan de kook en laat ongeveer 5 minuten zachtjes koken en indikken.
Breng de bechamelsaus op smaak met zout, zwarte peper en nootmuskaat.
Haal de pan van het vuur en roer de geraspte Gruyère door de saus.
Verwarm de oven voor op 200 °C.
Verdeel de uien over de bodem van een ingevette gratineerschaal.
Snijd de hardgekookte eieren in de lengte doormidden en leg ze met de snijkant naar boven op de uien.
Verdeel de bechamelsaus gelijkmatig over de eieren.
Zet de schaal ongeveer 6 minuten in de oven, tot het gerecht goed warm is en de bovenkant licht gegratineerd.
Serveer direct.