Wydaje mi się, że takie rozwiązanie godzi wszystkich:
1. Startuje tekstowy interfejs okienkowy: główne, górne menu rozwijane już w okienka z wyborem. Sterowanie klawiszami kursora lub dżojstika.
2. Po uruchomieniu w jednej z opcji "nakładki" będzie możliwość włączenia obsługi, np. jakiejś myszki lub innego kontrolera + ewentualne parametry takowego (np. numer portu, prędkość kursora). Tę opcję można zapamiętać by po kolejnym starcie był uruchamiany od razu odpowiedni sterownik. W miarę jak powstawały by nowe sterowniki do potrzebnych urządzeń - stawały by się kolejnymi urządzeniami do kontroli kursora w okienkach.
3. Potraktowałbym górną belkę menu jako menu aktualnie uruchomionego podprogramu - znane skądinąd rozwiązanie z wczesnych systemów z nakładkami tekstowymi czy też graficznymi. Jest to przyjemne bo zawsze widać w kontekście czego pracujemy.
4. Idąc tym tropem dalej, pewne rodzaje aplikacji mogą się integrować (kamuflować) z nakładką. Np. uruchomienie odtwarzacza audio zmieni górną belkę na menu odtwarzacza, chociaż jest to już tak naprawdę inny program. Powrót z niego do systemu - ujawni ponownie menu główne "nakładki".
5. Nakładka przy wyjściu do aplikacji, podprogramu zostawia w pliku swoje ustawienia.
Do zalet: każdy uruchomiony program korzysta ze wspólnego sterownika okien, każdy nowy program może załadować swój zestaw fontów, kursora myszy, jeśli będzie uruchomiony, żaden program nie martwi się o powrót do "nakładki": wracaj tryb graficzny zero, fonty główne, kursor myszki, etc.
Nawet gdyby tryb programu był graficzny - żaden problem wygenerować linię menu na podstawie ustawień "nakładki" sprawiając wrażenie integracji.
To taki przykład.
Ale to wszystko już było.