Linux без графической ОС, но с графическими ресурсами


23

Мой первый компьютерный опыт был с коммодором. Я хотел бы, чтобы компьютер Linux работал аналогично этому. Мне было интересно, если бы было возможно иметь что-то подобное, используя Linux.

То, что я хотел бы видеть, - это когда я загружаю свою машину в командной строке, а не в графическом интерфейсе, но имею доступные графические ресурсы. Поэтому, когда я печатаю, говорите: Firefox, программа и ее графический интерфейс должны быть доступны. Когда я выхожу из Firefox, он возвращается в командную строку. Если мне нужно просмотреть файловую систему, скажите, что я набрал: XFE или любой другой используемый менеджер, и он появляется и позволяет мне просматривать папку, а когда я выхожу, он снова возвращается в командную строку. Таким образом, возможность запускать, управлять и использовать программы без использования графического интерфейса, но иметь доступную графику.

Было бы хорошо, если бы все это было направлено на программирование. Таким образом, в командной строке BASH можно вызывать IDE среды компилятора и просто начинать писать программы, не отвлекаясь на среду рабочего стола.

И если запущено более одной графической программы, то, я думаю, есть менеджер окон с вкладками. Это возможно или я сплю?


22
Вы просто ищете развернутую консоль / gnome-терминал / xterm?
user253751

но тогда это не имеет ничего общего с Ubuntu ;-) Лучше спросите об этом на U & L unix.stackexchange.com
Rinzwind,

11
Я хотел бы предложить вам нажать Ctrl + Alt + F1 через Ctrl + Alt + F7 соответственно.
Майкл Хэмптон

1
Другой вариант - использовать xterm в качестве оконного менеджера. Не могу проверить это прямо сейчас, но нужно отредактировать ~ / .Xsession и установить последнюю строку равной / usr / bin / xterm без символа &, поэтому этот процесс не прекращается, сохраняя X живым. Когда этот xterm завершается, сеанс заканчивается и X завершается. Может потребоваться некоторые параметры геометрии.
Кригги

1
Один Xterm не решает проблему. Я создал очень минимальную установку. Затем я установил Firefox. Это говорит об ошибке: GDK_BACKEND не соответствует доступным дисплеям. Чего мне не хватает?
Linuxuser00

Ответы:


43

Я думаю, что вы можете получить то, что вы хотите, используя Tiling Window Manager, например, i3 или xmonad . Существуют и другие минималистичные оконные менеджеры с похожей функциональностью. i3 и xmonad находятся в репозиториях Ubuntu, поэтому их легко установить, а затем вы можете выбрать их на экране входа в систему.


Это аккуратно и интересно, но это не совсем то, что я ищу. Я хотел бы, чтобы каждая программа работала в своем собственном рабочем пространстве, используя весь экран для себя.
Linuxuser00

12
@ Linuxuser00: я думаю, что это только вопрос конфигурации. Большинству пользователей оконных менеджеров мозаики нравится использовать свои большие экраны для отображения информации рядом, но все они поддерживают переключение между несколькими полноэкранными приложениями.
ojdo

Прочитав этот ответ, я попробовал i3. Это чувствует себя немного более отзывчивым, чем compiz. Но для этого нужно привыкнуть. Я до сих пор не понял, как сделать так, чтобы окна в i3 имели точные размеры, я хочу, чтобы они были.
kasperd

@kasperd ты имеешь в виду mod + R и играешь со стрелками? тогда после того, как вы закончите побег?
vimdude

24

Боюсь, что вы упускаете главное различие между современной вычислительной средой и средой C-64. Домашние компьютеры эпохи C-64 были однопользовательскими, однопроцессными системами и не разделяли ресурсы компьютеров с другими процессами. Это довольно просто означает, что когда вы запустите на своем C-64 программу, которая была графической, она перенастроит аппаратное обеспечение вашего компьютера в режим «графика», и тогда ваша запущенная программа будет обрабатывать весь графический вывод, и пользователь ввод от мыши и самой клавиатуры.

Современные компьютеры и их программное обеспечение, напротив, являются многопользовательскими, многопроцессорными, но не только это, современное программное обеспечение зависит от разделяемых библиотек, например, Firefox использует библиотеку окон GTK, а в свою очередь - другие библиотеки более низкого уровня. Таким образом, для запуска Firefox, это зависит от целого стека программного обеспечения и конфигурации.

Поскольку существует так много лежащего в основе программного обеспечения, это делает более эффективным оставаться в графической среде после запуска, а не загружать графическую среду для Firefox, затем выключать ее, а затем запускать графическую среду для другой программы, и так далее.

Вы можете просто запустить и запустить любую программу Linux GUI из окна терминала (консоли), поэтому я бы посоветовал вам выбрать простую графическую среду рабочего стола, возможно, Enlightenment или Openbox , и просто запустить все из окна терминала / xterm.


11

Я согласен с Eduar, вам, вероятно, нужен Tiling / Dynamic Window Manager (WM). Но никто не обращается напрямую:

То, что я хотел бы видеть, это когда я загружаю свою машину в командной строке

В настоящее время вы должны загрузиться в Диспетчере отображения (DM), где вы входите. Таким образом, у вас есть два варианта загрузки в оболочку или консоль DM.

Если у вас нет настроенных DM, то вы по умолчанию войдете в оболочку, это даст вам приглашение на вход в систему с именем пользователя и паролем, если вы введете правильные учетные данные, вы войдете в оболочку по умолчанию. Я использую это, и следующее - примерно мой средний процесс запуска:

Arch Linux 4.1.5-1-ARCH (tty1)

localhost login: Joe
Password: 
$ startx

Если вы хотите иметь DM, но консольный, вам придется установить и настроить его. Вики Arch в настоящее время говорит, что есть три консоли: CDM, Console TDM и nodm .

Ubuntu по умолчанию использует LightDM , поэтому вам, возможно, придется его удалить.
Но как человек, у которого в настоящее время нет DM, я бы порекомендовал сохранить его и просто сменить WM. Утомительно, когда надо набирать текст startxи из памяти, чтобы он автоматически выполнялся правильно, это раздражало.


Ubuntu по умолчанию использует lightdm, по крайней мере, в варианте Unity.
Лео Лам

С точки зрения startxавтоматического запуска , я считаю, что каждая учетная запись имеет сценарий bash, который запускается при входе в систему (или эквивалент для других оболочек)
Ник Мертин,

Пожалуйста, прости меня, если это совершенно неверно, но так .bash_profileкак это обычный скрипт bash, не могли бы вы просто вставить startxего?
Ник Мертин

@ MagikM18 Что если вы хотите запустить интерактивную оболочку bash после запуска X? Без каких-либо проверок, .bash_profileпопытался бы startxснова запустить .
Joeytwiddle

@joeytwiddle правда, я не думал об этом
Ник Мертин

10

startx и xinit могут быть переданы начальному клиенту для начала. Следующая команда:

startx /usr/bin/firefox

раскрутит сервер xser на TTY, над которым вы сейчас работаете, и запустит один экземпляр firefox в полноэкранном режиме. Вы можете переключиться на другие tty, чтобы не вызывать сеанс firefox только для того, чтобы вернуться к консоли или для вызова других клиентов. Возможно, вам придется указать множество опций, чтобы это выглядело хорошо для вашего монитора, так как у вас не будет среды рабочего стола, выполняющей часть этой конфигурации для вас.

Вы должны знать, что некоторые xclients не работают хорошо вне оконных менеджеров или окружений рабочего стола. Нет DE, обеспечивающего декорации окон, и нет прослушивания WM для комбинаций клавиш MOD, поэтому, если они не предоставляют графический способ выхода, вам придется убить процесс (или X) из другого TTY.

Обычно первоначальный клиент, которым пользуются с X, - это окружение рабочего стола или оконный менеджер, который представляет собой особый вид клиента, который запускает и встраивает других клиентов в дополнение к отображению своего собственного окна.


10

альтернативы

Режим фреймбуфера

Есть некоторые программы, которые могут работать в режиме кадрового буфера. Режим кадрового буфера позволяет приложению иметь весь экран, позволяя приложению рисовать на экране все, что ему нужно, попиксельно. Не все программы поддерживают это, но есть некоторые, которые делают.

Для режима Framebuffer не требуется X-сервер (например, X.orgв случае текущих версий Ubuntu или, возможно, в ближайшем будущем Mirили в Waylandзависимости от того, какой из них станет более популярным), или любая оконная программа / среда рабочего стола для запуска. Это должно дать вам более быстрое переключение текстового режима в графический (и обратно), особенно в том случае, если на (большинстве?) Современных дистрибутивах Linux и графических драйверах Alt-F[1-6]консоли отображаются в любом случае с использованием режима кадрового буфера.

«Текстовый пользовательский интерфейс» (TUI)

Некоторые программы, которые обычно работают только в командной строке, поддерживают использование мыши с помощью gpm. В Ubuntu все, что вам нужно сделать, это просто установить пакет, gpmи он должен работать сразу, без какой-либо настройки или даже перезагрузки (IIRC). После gpmустановки указатель мыши будет отображаться как текстовый курсор в стиле блока, и вы можете использовать мышь, как обычно, для щелчка по элементам пользовательского интерфейса. Вы также можете выделить текст и использовать копирование и вставку.

Если вы хотите пойти еще дальше, есть даже «оконный менеджер», который позволяет запускать несколько терминальных приложений в одном текстовом режиме «рабочий стол».


Неисчерпывающий список программ, поддерживающих режим фреймбуфера

  • mc (Midnight Commander) - файловый менеджер
  • Links / Links 2, Netsurf - веб-браузеры
  • fbi - просмотрщик изображений
  • fbgs (относится к fbi, часть того же пакета), fbpdf - программа просмотра PDF
  • mplayer, fbff (на основе ffmpeg) - воспроизведение аудио / видео

Это звучит очень хорошо, если бы это не было так ограничено, спасибо.
Linuxuser00

Привет @ Linuxuser00. Есть еще несколько программ, у меня просто не было времени, чтобы перечислить больше :)
Pabru

Привет @ Linuxuser00, я добавил еще пару, если ты все еще заинтересован
Пабру

5

Посмотрите на использование оконного менеджера, такого как FVWM2, а не «рабочего стола». Вы можете настроить его так, чтобы при загрузке он открывал только один (или более) xterms, может запускать любое графическое приложение, такое как веб-браузер, из командной строки, его не беспокоят такие элементы рабочего стола, как «системный трей» или значки для всего, но можно добавить любые кусочки, которые вы можете найти, чтобы быть полезными. (В моем случае это окно пейджера для нескольких экранов и монитор загрузки Conky.)


Я сейчас играю с этим. Возможно я не настроил это прямо сейчас, но кажется, что он нестабилен и обрушился на меня.
Linuxuser00

Хм ... Я управлял им с тех пор - о, где-то в конце 20-го века - и у меня не было проблем. Но я использую OpenSuSE, а не Ubuntu, потому что (среди прочих причин) кажется проще использовать оконные менеджеры, а не «рабочий стол» по умолчанию. Если вы хотите пойти дальше, у FVWM есть форум поддержки: fvwmforums.org/phpBB3 Хитрость при регистрации заключается в том, что они задают вам вопрос о «составе». Ответ - члены группы "Битлз", популярной группы 60-х. (Мне пришлось
искать

4

Это очень возможно.

Сначала нужно отключить графическую загрузку. Затем вы хотите «однопользовательский режим» (предупреждая, что с этим есть некоторые довольно серьезные угрозы безопасности), и, наконец, вам нужно решить, что делать, когда вы хотите запустить графический интерфейс.

См. Как мне загрузить GRUB в однопользовательском режиме?

По сути, вы добавляете эту опцию singleв конфигурацию загрузки GRUB. Вы можете сделать это в файле / etc / default / grub, чтобы сделать изменения постоянными.

См. Как отключить X во время загрузки, чтобы система загружалась в текстовом режиме?

По сути, вы добавляете textк своим опциям в/etc/default/grub

Это даст вам одного пользователя, только текстовую среду. Следующим шагом является использование графического интерфейса. Программа, которую вы хотите запуститьstartx

Ты бы побежал

startx /path/to/executable

Проблема в том, что вам, вероятно, нужен какой-то оконный менеджер. Я хотел бы предложить twmваши потребности.

sudo apt-get install twm

Затем, чтобы выполнить команды, я бы сказал, запустить, startxзатем вернуться к вашей консоли (CTRL + ALT + F1) и сделать что-то вроде export DISPLAY=:0. Теперь, когда вы используете приложение с графическим интерфейсом из командной строки, оно будет запускаться в «Графической части», к которой вы можете перейти с помощью Ctrl + Alt + F7 (обычно).

Если вам нравится эта настройка, вы можете даже автоматизировать ее настройку с помощью скрипта.

Что это, это так близко, как вы собираетесь получить, без большой работы.


Зачем вам нужен однопользовательский режим?
MSalters

«Я хотел бы видеть, когда я загружаю свою машину в командную строку, ...». Старые компьютеры Commodore не были многопользовательскими. Они не были «пользователями» вообще. Вы включили их и получили мигающий курсор для ввода команд. Все команды были попытки, и не было никакой безопасности, чтобы говорить о. Наиболее близким к этому на сегодняшний день является «однопользовательский режим», который, в основном, запускает вход в систему с правами суперпользователя, обходя большую, если не всю, безопасность.
coteyr

Ага, я уже подозревал, что ты запутался. Там нет веских причин, почему вы хотите однопользовательский режим здесь. В Linux однопользовательский режим и многопользовательский режим не зависят от выбора GUI или CLI.
MSalters

Нет, я не растерялся. ФП попросил создать среду, максимально похожую на коммодора. Это означает отсутствие безопасности, отсутствие многопользовательского режима и входа в систему. Лучший способ приблизиться к этому - однопользовательский режим. Эти две цели не связаны друг с другом, вы можете иметь консольный доступ с несколькими пользователями, вы можете иметь графический интерфейс с одним пользователем. Это две части общей цели.
coteyr

Нет, я не хочу, чтобы окружение было как можно ближе к коммодору. Мне нужна простота, похожая на Commodore (без графической ОС). Один только Bash - это здорово, но я хотел бы войти в среду программирования, если я хочу кодировать, или войти в среду браузера, если я хочу путешествовать по сети и так далее. И когда закончите с этими программами, закройте их и вернитесь в BASH. или может иметь несколько программ, работающих в их собственном рабочем пространстве. Я был занят и не смог реализовать некоторые из этих методов, которые обсуждались до сих пор.
Linuxuser00

3

Мне нравится ratpoison за то, что вы пытаетесь сделать. Я не публикую скриншот, потому что вы не можете отличить его от скриншота xterm (или любого другого приложения, которое вы используете). В стандартной конфигурации он отображает одно окно на весь экран. Вы можете разделить его, чтобы отобразить несколько окон, но большую часть моего ежедневного использования я не делаю. Если вы запускаете эмулятор терминала из вашего файла .ratpoisionrc, вы получаете приглашение почти сразу после входа в систему. Оно вдохновлено экраном GNU, и единственная концепция, которую они пропустили, - это отсоединяемые и общие сеансы (но vnc хорошо заполняет этот пробел) ,


2

Я думаю, что вы можете получить то, что вы хотите, не выбрасывая рабочий стол. Как уже упоминалось в других ответах, вы, вероятно, получите лучшую производительность при работающем настольном компьютере в любом случае, и есть технические причины, по которым Linux работает так, как если бы старая ОС не работала.

Я собираюсь использовать gnome в качестве примера рабочего процесса, потому что это то, что я знаю, но я предполагаю, что другие окружения рабочего стола также будут поддерживать аналогичную функциональность. В gnome 3 у вас может быть рабочее пространство (или несколько) с полноэкранным терминалом, который выглядит так же, как и в режиме только командной строки. Тот факт, что рабочий стол гнома работает в фоновом режиме, не имеет значения.

Затем, используя оконный менеджер (например, тот, который обсуждался в этом вопросе SO ), чтобы контролировать, в каком рабочем пространстве создаются новые окна, вы можете принудительно поместить каждое новое окно в отдельное рабочее пространство. Если вы готовы сами перемещать окна при их создании, вам не нужно никакого программного обеспечения, кроме gnome. Gnome 3 поддерживает автоматические рабочие пространства, поэтому при открытии / закрытии окон в самой нижней рабочей области для них автоматически создаются / удаляются новые рабочие пространства. Тогда вы можете просто использовать ctrl + alt + arrowдля быстрого перемещения между ними. Когда вы закрываете окно, рабочее пространство, в котором оно было, автоматически удаляется, и два рабочих пространства с каждой стороны перемещаются вместе. Все, что вы когда-либо видите, это окна, которые вы открыли, и терминал.


Это звучит примерно так. Может, Openbox и Gnome дадут мне то, что я хочу?
Linuxuser00

Я не использовал openbox (или любой другой оконный менеджер), поэтому вам придется оценивать их самостоятельно), но я запускаю gnome 3 на своем ноутбуке и использую рабочий процесс, описанный в этом ответе (перемещение окон вручную). Я очень доволен этим, хотя реорганизация окон в порядке, который я хочу после их создания, немного более болезненна, чем должна быть.
Годрик Провидец

2

Установите Xvfb:

apt-get install xvfb

Бег:

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

затем запустите любое графическое программное обеспечение, которое вам нравится.


1

Вы можете быстро переключиться на интерфейс командной строки, используя [ctrl] [alt] [F1] (думаю, работает с [F1] - [F12]). Один из них также переключится обратно на ваш графический интерфейс, когда он вам понадобится; Я думаю, что это [ctrl] [alt] [F8] на Mint, так что вы можете попробовать это. Впрочем, я брошу себя в лагерь "используй менеджер окон с плитками"; i3 действительно отличный инструмент.


Да, но проблема, с которой я столкнулся, заключается в том, что в фоновом режиме работает графический интерфейс с использованием моих ресурсов, поэтому я должен просто использовать графический интерфейс вместо того, чтобы притворяться, что его там нет.
Linuxuser00

Очень верно! Один из способов обойти это - настроить ОС на обмен всей этой сессии, когда она не активна. Я не был бы слишком удивлен, если бы он сделал это автоматически, но это, вероятно, что-то, что вам нужно пройти через значительные проблемы, чтобы установить.
Джонатан Андерсен
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.