Heat oil and butter in a large, deep skillet over medium-high heat until butter melts. Add onions, leeks, shallots, and salt; cook, stirring occasionally, until barely softened and just starting to brown, about 12 minutes. Reduce heat to medium low and continue to cook, stirring occasionally, until onions caramelize, about 35 minutes. Add wine and cook until the liquid has evaporated, about 2 minutes.