Fry the bacon in a small frying pan until crisp, and remove to a paper towel to drain. Pour off all but 1 tablespoon of the bacon fat from the pan. Add the butter to the pan, heat to medium and gently fry the onions until soft, about 5 minutes. Add the garlic and cook for 1 minute. Remove all to a plate. Deglaze the pan with a splash of vinegar and reduce until it's almost gone.
Add the tablespoon of oil or fat and get the pan quite hot this time. Saute the potatoes, stirring only occasionally, until they are soft when pierced with a fork and very crisp and golden on the outside, a good 20 minutes. Return the onions, garlic and bacon to the pan.
Gently stir the eggs with a fork, sprinkle with salt and pepper and pour them over the potatoes. Cook until the eggs are set on the bottom, but still a bit slithery on top - or, as the French say, "baveux" (drool-like). Cover the omelette and continue cooking until the top sets, no more than a minute because you still want it a little runny on top - or, I do anyway. Run a spatula around the edge and slip the omelette out onto a large plate.