Pela y corta las cebollas en finas tiras.
En una olla de fondo grueso, derrite a fuego medio 2 cucharadas de mantequilla y 2 cucharadas de aceite de oliva. Agrega las cebollas y revuelve para cubrir bien, seguidamente añade sal y pimienta. Cocina las cebollas removiendo con frecuencia hasta que se ablanden, aproximadamente 25 minutos. Vigila que no se quemen, la idea es que se tornen ligeramente doradas.
Añade la harina y remueve bien, deja cocinar un par de minutos.
Agrega el vino blanco y raspa el fondo y los lados de la olla, para recuperar los jugos. Añade el caldo, lleva a un hervor, tapa y cocina a fuego bajo durante unos 30 minutos. Remueve para asegurarte que no se peguen las piezas enharinadas, chequea la sazón, si es necesario agrega más sal y pimienta negra.
Aprovecha el tiempo de cocción de la sopa para cortar la baguette en rodajas, cuidando que no queden demasiado finas. Una vez cortado el pan, unta las rebanadas con la mantequilla restante y frota con el diente de ajo ligeramente machacado.
Precalienta el horno para asar a 220º C.
Una vez pasado el tiempo de cocción del caldo, distribuye en tazones individuales aptos para horno. Coloca en cada tazón la sopa, cubre con rebanadas de pan y espolvorea con buena cantidad de queso gruyere. Mete en el horno y hornea durante 5 minutos o hasta que el queso burbujee y esté ligeramente dorado. Retira del horno y sirve inmediatamente.