Linux bez graficznego systemu operacyjnego, ale z zasobami graficznymi

23

Moje pierwsze doświadczenie z komputerem dotyczyło Commodore. Chciałbym, aby komputer z systemem Linux działał podobnie do tego. Zastanawiałem się, czy można mieć coś podobnego za pomocą Linuksa.

Chciałbym zobaczyć, kiedy uruchamiam komputer do wiersza poleceń, a nie do GUI, ale mam dostępne zasoby graficzne. Kiedy więc piszę, powiedz: Firefox, program i jego interfejs graficzny powinny być dostępne. Kiedy wychodzę z Firefoksa, wraca do wiersza poleceń. Jeśli muszę przeglądać system plików, powiedz, że wpisałem: XFE lub jakikolwiek inny menedżer jest używany i pojawia się i pozwala mi przeglądać folder, a kiedy wychodzę, to wraca do wiersza poleceń. Możliwość uruchamiania programów, zarządzania nimi i korzystania z nich bez konieczności korzystania z GUI, ale z dostępną grafiką.

Byłoby miło mieć to wszystko nastawione na programowanie. Zatem w wierszu poleceń BASH możesz wywołać IDE środowiska kompilatora i po prostu rozpocząć pisanie programów bez rozpraszania przez środowisko pulpitu.

A jeśli więcej niż jeden program graficzny działa, to mam menedżera okien z kartami. Czy to wykonalne czy marzę?

Linuxuser00
źródło
22
Po prostu szukasz zmaksymalizowanej konsoli / gnome-terminal / xterm?
user253751,
ale to nie ma nic wspólnego z Ubuntu ;-) Lepiej zapytaj o to na U&L unix.stackexchange.com
Rinzwind
11
Chciałbym zaprosić Cię do naciśnięcia klawiszy Ctrl + Alt + F1 odpowiednio do Ctrl + Alt + F7.
Michael Hampton
1
Inną opcją jest użycie xterm jako menedżera okien. Nie mogę teraz tego przetestować, ale powinienem edytować ~ / .Xsession i ustawić ostatni wiersz na / usr / bin / xterm bez znaku &, więc ten proces nie jest zakończeniem utrzymującym X przy życiu. Kiedy ten xterm zakończy działanie, sesja się kończy, a X zakończy pracę. Może wymagać pewnych parametrów geometrii.
Criggie
1
Sam Xterm nie rozwiązuje problemu. Stworzyłem bardzo minimalną instalację. Potem zainstalowałem Firefox. Mówi o błędzie: GDK_BACKEND nie pasuje do dostępnych ekranów. czego mi brakuje?
Linuxuser00

Odpowiedzi:

43

Myślę, że możesz uzyskać to, co chcesz, za pomocą Menedżera okien kafelkowych , takiego jak i3 lub xmonad . Istnieją inne minimalistyczne menedżery okien o podobnej funkcjonalności. Zarówno i3, jak i xmonad znajdują się w repozytoriach Ubuntu, więc można je łatwo zainstalować, a następnie można je wybrać na ekranie logowania.

Eduar
źródło
Jest to schludne i interesujące, ale nie do końca tego szukam. Chciałbym, aby każdy program działał we własnym obszarze roboczym, używając całego ekranu do siebie.
Linuxuser00
12
@ Linuxuser00: Myślę, że to tylko kwestia konfiguracji. Większość użytkowników menedżerów okien kafelkowych lubi używać swoich dużych ekranów do wyświetlania informacji obok siebie, ale wszyscy obsługują przełączanie między kilkoma aplikacjami pełnoekranowymi.
ojdo
Po przeczytaniu tej odpowiedzi wypróbowałem i3. Czuje się nieco bardziej responsywny niż compiz. Ale trzeba się przyzwyczaić. Nadal nie wymyśliłem, jak sprawić, by okna w i3 miały dokładne rozmiary, chcę, żeby miały.
kasperd 27.04.16
@kasperd masz na myśli mod + R, a następnie grać ze strzałkami? to po skończeniu ucieczki?
vimdude
24

Obawiam się, że brakuje ci głównej różnicy między nowoczesnymi środowiskami obliczeniowymi a tymi z ery C-64. Komputery domowe z epoki C-64 były pojedynczymi użytkownikami, systemami jednoprocesowymi i nie dzieliły zasobów komputerów z innymi procesami. Oznacza to po prostu, że kiedy uruchomisz na komputerze C-64 program, który był programem graficznym, zmieni on konfigurację sprzętu komputerowego, aby był w trybie „graficznym”, a następnie uruchomiony program obsłużyłby wszystkie wyjścia graficzne, a użytkownika wejście z myszy i samej klawiatury.

Natomiast współczesne komputery i ich oprogramowanie są wieloużytkownikowe, wieloprocesowe, ale nie tylko to, nowoczesne oprogramowanie zależy od wspólnych bibliotek, na przykład Firefox opiera się na bibliotece okienkowej GTK, a to z kolei opiera się na innych bibliotekach niższego poziomu. Aby Firefox działał, zależy to od całego stosu oprogramowania i konfiguracji.

Ponieważ jest tak wiele podstawowych programów, sprawia to, że bardziej wydajne jest pozostawanie w środowisku graficznym po uruchomieniu, niż ładowanie środowiska graficznego dla Firefoksa, a następnie zamykanie go, a następnie uruchamianie środowiska graficznego dla innego programu, i tak dalej.

Możesz po prostu uruchomić i uruchomić dowolny program GUI Linux z okna terminala (konsoli), więc radzę wybrać sobie proste środowisko graficzne, na przykład Enlightenment lub Openbox , i po prostu uruchomić wszystko z okna terminalu / xterm.

David
źródło
11

Zgadzam się z Eduarem, prawdopodobnie chcesz Menedżera okien / dynamicznych okien (WM). Ale nikt nie jest bezpośrednio adresowany:

Chciałbym zobaczyć, kiedy uruchamiam komputer w linii poleceń

Obecnie powinieneś uruchomić się do Display Managera (DM), gdzie się logujesz. Masz więc dwie opcje: uruchom do powłoki lub konsoli DM.

Jeśli nie masz skonfigurowanych DM, domyślnie zalogujesz się do powłoki, to wyświetli się monit o podanie nazwy użytkownika i hasła, jeśli podasz prawidłowe dane logowania, zalogujesz się do domyślnej powłoki. Korzystam z tego, a poniższe są mniej więcej moim przeciętnym „procesem” uruchamiania:

Arch Linux 4.1.5-1-ARCH (tty1)

localhost login: Joe
Password: 
$ startx

Jeśli chcesz mieć DM, ale konsolowy, musisz go zainstalować i skonfigurować. Wiki Archa mówi obecnie, że istnieją trzy DM konsoli: CDM, Console TDM i nodm .

Ubuntu domyślnie korzysta z LightDM , więc może być konieczne jego usunięcie.
Ale jako ktoś, kto obecnie nie ma DM, poleciłbym pozostać przy obecnym DM i po prostu zmienić WM. To żmudne pisanie startxz pamięci, a automatyczne wykonywanie poprawnie było denerwujące w konfiguracji.

Theresa Lane
źródło
Ubuntu domyślnie używa lightdm, przynajmniej w wariancie Unity.
Léo Lam
Jeśli chodzi o uruchamianie startxautomatyczne, uważam, że każde konto ma skrypt bash, który jest uruchamiany przy logowaniu (lub równoważny dla innych powłok)
Nick Mertin
Proszę wybacz mi, jeśli jest to całkowicie niepoprawne, ale skoro .bash_profilejest to zwykły skrypt bash, czy nie mógłbyś go po prostu umieścić startx?
Nick Mertin
@ MagikM18 Co zrobić, jeśli chcesz uruchomić interaktywną powłokę bash po uruchomieniu X? Bez żadnych kontroli .bash_profilespróbuje uruchomić startxponownie.
joeytwiddle
@joeytwiddle true, nie myślałem o tym
Nick Mertin
10

Zarówno startx, jak i xinit mogą być uruchamiane jako początkowy klient. Następujące polecenie:

startx /usr/bin/firefox

przekręci Xserver na TTY, nad którym aktualnie pracujesz, i uruchomi jedną instancję firefoxa na czymś w rodzaju pełnego ekranu. Możesz przełączyć się na inne tty, aby uniknąć konieczności wyłączania sesji firefox tylko po to, aby wrócić do konsoli lub przyciągnąć tam innych klientów. Może być konieczne określenie wielu opcji, aby wyglądał ładnie na monitorze, ponieważ środowisko pulpitu nie wykona za Ciebie niektórych konfiguracji.

Należy pamiętać, że niektóre xclienty nie działają ładnie poza menedżerami okien lub środowiskiem graficznym. Nie ma DE zapewniającego dekoracje okien, ani WM nasłuchującego kombinacji klawiszy MOD, więc jeśli nie dostarczą graficznego sposobu wyjścia, będziesz musiał zabić proces (lub X) z innego TTY.

Zwykle początkowi klienci korzystający z X to środowisko pulpitu lub menedżer okien, który jest tylko specjalnym rodzajem klienta, który uruchamia i osadza innych klientów oprócz wyświetlania własnego okna.

Steve Cox
źródło
10

Alternatywy

Tryb bufora ramki

Istnieje kilka programów, które mogą działać w trybie bufora ramki. Tryb Framebuffer pozwala aplikacji mieć ekran wyłącznie dla siebie, pozwalając aplikacji rysować na ekranie, co chce na ekranie piksel po pikselu. Nie wszystkie programy go obsługują, ale jest kilka, które to obsługują.

Tryb Framebuffer nie wymaga X Servera (na przykład X.orgw przypadku aktualnych wersji Ubuntu, być może w niedalekiej przyszłości Mirlub w Waylandzależności od tego, który stanie się bardziej popularny), ani żadnego środowiska menedżera okien / pulpitu do uruchomienia. Powinno to zapewnić szybsze przełączanie trybu tekstu na grafikę (i wstecz), zwłaszcza, że ​​w (większości?) Nowoczesnych dystrybucjach Linuxa i sterownikach graficznych Alt-F[1-6]konsole są renderowane w trybie buforowania klatek.

„Tekstowy interfejs użytkownika” (TUI)

Niektóre programy, które zwykle są dostępne tylko w wierszu poleceń, obsługują za pomocą myszy za pośrednictwem gpm. W Ubuntu wystarczy zainstalować pakiet gpmi powinien on działać od razu, bez żadnej konfiguracji, a nawet koniecznego restartu (IIRC). Po gpmzainstalowaniu wskaźnik myszy będzie wyświetlany jako kursor tekstowy w stylu bloku i możesz normalnie używać myszy do klikania elementów interfejsu użytkownika. Możesz także podświetlić tekst i użyć funkcji kopiuj i wklej.

Jeśli chcesz pójść o krok dalej, istnieje nawet „menedżer okien”, który pozwala na uruchamianie wielu aplikacji terminalowych na tym samym „pulpicie” w trybie tekstowym.


Niewyczerpująca lista programów obsługujących tryb buforowania ramki

  • mc (Midnight Commander) - menedżer plików
  • Links / Links 2, Netsurf - przeglądarki internetowe
  • fbi - przeglądarka obrazów
  • fbgs (związany z fbi, część tego samego pakietu), fbpdf - przeglądarka plików PDF
  • mplayer, fbff (oparty na ffmpeg) - odtwarzanie audio / wideo
Pabru
źródło
Brzmi naprawdę fajnie, gdyby tylko nie było tak ograniczone, dziękuję.
Linuxuser00
Cześć @ Linuxuser00. Jest jeszcze kilka programów, po prostu nie miałem czasu, aby wymienić więcej :)
Pabru 27.04.16
Hej @ Linuxuser00, dodałem jeszcze kilka, jeśli nadal jesteś zainteresowany
Pabru
5

Spróbuj użyć menedżera okien, takiego jak FVWM2, zamiast „pulpitu”. Możesz go skonfigurować tak, aby otwierał tylko jeden (lub więcej) xtermów podczas rozruchu, możesz uruchomić dowolną aplikację graficzną, taką jak przeglądarka internetowa z wiersza poleceń, nie przeszkadzają mu takie elementy pulpitu, jak „taca systemowa” lub ikony do wszystkiego, ale można dodać wszelkie fragmenty, które mogą okazać się przydatne. (W moim przypadku jest to okno pagera dla wielu ekranów i monitor obciążenia Conky.)

jamesqf
źródło
Obecnie bawię się tym. Być może nie mam go w tej chwili skonfigurowanej, ale wydaje się być niestabilny i rozbił się na mnie.
Linuxuser00
Humm ... Używam go od czasu - och, pod koniec XX wieku - i nie miałem problemów. Ale używam OpenSuSE zamiast Ubuntu, ponieważ (między innymi) wydaje się łatwiejsze w użyciu menedżerów okien niż domyślny „pulpit”. Jeśli chcesz pójść dalej, FVWM ma forum wsparcia: fvwmforums.org/phpBB3. Sposób na zarejestrowanie się polega na tym, że zadają ci pytanie dotyczące „składu”. Odpowiedzią są członkowie popowej grupy Beatlesów z lat 60. (Musiałem
poprosić
4

To bardzo możliwe.

Najpierw musisz wyłączyć graficzny rozruch. Następnie potrzebujesz „Trybu pojedynczego użytkownika” (ostrzeżenie, że wiąże się z tym dość ekstremalne zagrożenie bezpieczeństwa), wreszcie musisz odpowiedzieć, co zrobić, gdy chcesz uruchomić GUI.

Zobacz Jak uruchomić system GRUB w trybie pojedynczego użytkownika?

Zasadniczo dodajesz opcję singledo konfiguracji rozruchu GRUB. Możesz to zrobić w pliku / etc / default / grub, aby wprowadzić zmiany na stałe.

Zobacz Jak wyłączyć X podczas uruchamiania, aby system uruchomił się w trybie tekstowym?

Zasadniczo dodajesz textdo swoich opcji w/etc/default/grub

To da ci jednego użytkownika, środowisko tylko tekstowe. Następnie używa GUI. Program, który chcesz uruchomić, tostartx

Uciekłbyś

startx /path/to/executable

Problem polega na tym, że prawdopodobnie potrzebujesz jakiegoś menedżera okien. Sugerowałbym twmtwoje potrzeby.

sudo apt-get install twm

Następnie, aby uruchomić polecenia, powiedziałbym, że biegnij, startxa następnie wróć do konsoli (CTRL + ALT + F1) i zrób coś takiego export DISPLAY=:0. Teraz, gdy tylko będziesz mieć aplikację GUI z wiersza poleceń, uruchomi się ona po „stronie graficznej”, do której możesz dostać się za pomocą Ctrl + Alt + F7 (zwykle).

Jeśli podoba Ci się ta konfiguracja, możesz nawet zautomatyzować jej konfigurację za pomocą skryptu.

Że to tak blisko, jak to możliwe, bez dużo pracy.

Coteyr
źródło
Dlaczego potrzebujesz trybu pojedynczego użytkownika?
MSalters
„Chciałbym zobaczyć, kiedy uruchamiam maszynę do wiersza poleceń, ...”. Stare komputery „Commodore” nie były wieloma użytkownikami. W ogóle nie byli „użytkownikami”. Włączyłeś je i masz mrugający kursor do pisania poleceń. Wszystkie polecenia były próbami i nie można było mówić o bezpieczeństwie. Najbliżej tego dnia jest „tryb pojedynczego użytkownika”, który w zasadzie uruchamia użytkownika zalogowanego jako root, z pominięciem większości, jeśli nie wszystkich, zabezpieczeń.
coteyr 28.04.16
Aha, już podejrzewałem, że jesteś zdezorientowany. Nie ma dobrego powodu, dla którego chcesz tutaj mieć tryb pojedynczego użytkownika. W systemie Linux tryb dla jednego użytkownika i tryb dla wielu użytkowników jest niezależny od wyboru GUI lub CLI.
MSalters
Nie, nie jestem zdezorientowany. OP poprosił o środowisko jak najbardziej podobne do Commodore. Oznacza to brak bezpieczeństwa, brak wielu użytkowników i logowanie. Najlepszym sposobem na zbliżenie się do tego jest tryb pojedynczego użytkownika. Te dwa cele nie są ze sobą powiązane, możesz mieć dostęp do konsoli z wieloma użytkownikami, możesz mieć GUI z jednym użytkownikiem. To dwie części większego ogólnego celu.
coteyr 28.04.16
Nie, nie chcę, aby środowisko było tak blisko, jak to możliwe, jak Commodore. Chcę prostoty podobnej do Commodore (bez graficznego systemu operacyjnego). Sam Bash jest świetny, ale chciałbym wejść do środowiska kodowania, jeśli chcę kodować lub wejść do środowiska przeglądarki, jeśli chcę surfować po sieci i tak dalej. Po zakończeniu tych programów zamknij je i wróć do BASH. lub może mieć wiele programów działających we własnym obszarze roboczym. Byłem zajęty i nie byłem w stanie wdrożyć niektórych z omawianych dotąd metod.
Linuxuser00
3

Lubię ratpoison za to, co próbujesz zrobić. Nie opublikuję zrzutu ekranu, ponieważ nie można odróżnić zrzutu ekranu od xterm (lub jakiejkolwiek uruchomionej aplikacji). W standardowej konfiguracji wyświetla jedno okno na pełnym ekranie. Możesz go podzielić, aby wyświetlać wiele okien, ale w przypadku większości moich codziennych zastosowań nie. Jeśli uruchomisz emulator terminala z pliku .ratpoisionrc, zobaczysz monit niemal natychmiast po zalogowaniu. Inspiruje go ekran GNU, a jedyną koncepcją, którą przegapili, było odłączanie i wspólne sesje (ale VNC ładnie wypełnia tę lukę) .

Hildred
źródło
2

Myślę, że możesz dostać to, co chcesz, bez wyrzucania pulpitu. Jak już wspomniano w innych odpowiedziach, prawdopodobnie i tak będziesz działał lepiej z uruchomionym komputerem stacjonarnym, a istnieją Linuksy techniczne, na których uruchomienie Linuksa tak, jakby starszy system operacyjny tak naprawdę nie działał.

Będę używał gnome jako mojego przykładowego przepływu pracy, ponieważ to jest to, co wiem, ale zgaduję, że inne środowiska pulpitu również obsługiwałyby podobną funkcjonalność. W gnome 3 możesz mieć obszar roboczy (lub wiele) z terminalem pełnoekranowym, który ma taki sam wygląd i działanie jak w trybie tylko wiersza poleceń. Fakt, że pulpit gnome działa w tle, nie ma znaczenia.

Następnie, używając menedżera okien (takiego jak ten omówiony w tym pytaniu SO ) do kontrolowania, w którym obszarze roboczym tworzone są nowe okna, możesz wymusić umieszczenie każdego nowego okna w jego własnym obszarze roboczym. Jeśli chcesz samodzielnie przenieść okna podczas ich tworzenia, nie potrzebujesz żadnego oprogramowania poza gnome. Gnome 3 obsługuje automatyczne obszary robocze, więc podczas otwierania / zamykania okien w najniższym obszarze roboczym nowe obszary robocze zostaną dla nich automatycznie utworzone / usunięte. Następnie możesz po prostu użyć, ctrl + alt + arrowaby szybko przechodzić między nimi. Po zamknięciu okna obszar roboczy, w którym był włączony, jest automatycznie usuwany, a dwa obszary robocze z każdej strony poruszają się razem. Wszystko, co widzisz, to otwarte okna i terminal.

Godric Seer
źródło
To brzmi dobrze. Może Openbox i Gnome dadzą mi to, czego chcę?
Linuxuser00
Nie korzystałem z openboksa (ani żadnego innego menedżera okien), więc będziesz musiał je ocenić samodzielnie), ale uruchamiam gnome 3 na moim laptopie i używam przepływu pracy opisanego w tej odpowiedzi (ręczne przenoszenie okien). Jestem z tego całkiem zadowolony, chociaż reorganizacja okien w pożądanej kolejności po ich utworzeniu jest nieco bardziej bolesna niż powinna.
Godric Seer,
2

Zainstaluj Xvfb:

apt-get install xvfb

Biegać:

/usr/bin/Xvfb :1 &
export DISPLAY=:1

następnie uruchom dowolne oprogramowanie graficzne, które lubisz bez głowy.

Ian Ellis
źródło
1

Możesz szybko przejść do interfejsu wiersza poleceń, używając [ctrl] [alt] [F1] (myślę, że działa z [F1] - [F12]). Jeden z nich przełączy się również z powrotem na GUI, gdy będziesz go potrzebować; Myślę, że jest to [ctrl] [alt] [F8] na Mennicy, więc możesz spróbować tego. Ale rzucę się na obóz „użyj menedżera okien”; i3 to naprawdę świetne narzędzie.

Johnathan Andersen
źródło
Tak, ale mam z tym problem, że w tle działa GUI, który korzysta z moich zasobów, więc powinienem po prostu użyć GUI zamiast udawać, że go nie ma.
Linuxuser00
Bardzo prawdziwe! Jednym ze sposobów obejścia tego problemu byłoby ustawienie systemu operacyjnego na zamianę całej sesji, gdy nie jest ona aktywna. Nie zdziwiłbym się, gdyby zrobił to automatycznie, ale prawdopodobnie jest to coś, co musiałoby przejść przez poważne kłopoty, aby ustawić.
Johnathan Andersen