没有图形操作系统但具有图形资源的Linux


23

我的第一个计算机经验是在Commodore。我想让Linux计算机的工作与此类似。我想知道使用Linux是否可能有类似的东西。

我想看到的是当我将计算机引导至命令行而不是GUI时,但具有可用的图形资源。因此,当我输入时说:Firefox,该程序及其图形界面可用。当我退出Firefox时,它将返回到命令行。如果需要浏览文件系统,请输入:XFE或正在使用的任何管理器,它会出现并允许我浏览该文件夹,退出后,它将再次返回命令行。因此,无需使用GUI即可运行,管理和使用程序的功能,但可以使用图形。

所有这些都适合编程。因此,在BASH命令行中,可以调用编译器环境IDE并开始编写程序,而不会受到桌面环境的干扰。

而且,如果正在运行多个图形程序,那么我猜应该有一个选项卡式窗口管理器。这可行还是我在做梦?


22
您是否正在寻找最大化的konsole / gnome-terminal / xterm?
user253751 '16

但这与Ubuntu无关;-)最好在U&L unix.stackexchange.com上提问
Rinzwind

11
我想邀请您分别按Ctrl + Alt + F1到Ctrl + Alt + F7。
迈克尔·汉普顿

1
另一种选择是使用xterm作为窗口管理器。现在无法测试,但应将其编辑〜/ .Xsession并将最后一行设置为/ usr / bin / xterm且不带&,因此此过程是使X保持活动状态的无终止命令。当该xterm退出时,会话结束并且X将退出。可能需要一些几何参数。
Criggie '16

1
仅Xterm不能解决问题。我创建了一个非常小的安装。然后我安装了Firefox。它显示错误:GDK_BACKEND与可用的显示不匹配。我想念什么?
Linuxuser00 '16

Answers:


43

我认为您可以使用平铺窗口管理器(如i3xmonad)获得所需的内容。还有其他具有类似功能的简约窗口管理器。i3和xmonad都在Ubuntu存储库中,因此它们易于安装,然后可以在登录屏幕中选择它们。


这既整洁又有趣,但这并不是我想要的。我希望看到每个程序都使用整个屏幕运行在自己的工作区中。
Linuxuser00 '16

12
@ Linuxuser00:我认为这只是配置问题。平铺窗口管理器的大多数用户都喜欢使用大屏幕并排显示信息,但是他们都支持在多个全屏应用程序之间切换。
ojdo '16

阅读此答案后,我一直在尝试i3。感觉比compiz响应更快。但是这需要一些习惯。我仍然没有弄清楚如何使i3中的窗口具有确切的尺寸,我希望它们具有该尺寸。
kasperd '16

@kasperd,您的意思是mod + R然后玩箭?那你逃跑了之后
vimdude

24

恐怕您会错过现代计算环境与C-64时代的主要区别。C-64时代的家用计算机是单用户,单进程系统,并且不与其他进程共享计算机资源。这非常简单,这意味着当您在C-64上运行的程序是图形程序时,它将重新配置计算机硬件使其处于“图形”模式,然后您运行的程序将处理所有图形输出,并且用户鼠标和键盘本身的输入。

相比之下,现代计算机及其软件是多用户,多进程的,但不仅如此,现代软件还取决于共享库,例如Firefox依赖于GTK窗口库,而后者又依赖于其他较低级别的库。因此,要使Firefox运行,它取决于整个软件和配置堆栈。

由于底层软件太多,因此启动后留在图形环境中的效率更高,而不是为Firefox加载图形环境,然后关闭它,然后为另一个程序启动图形环境,这样效率更高。依此类推。

您可以非常简单地从终端(控制台)窗口启动并运行任何Linux GUI程序,因此我建议您选择一个简单的图形化桌面环境(也许是EnlightenmentOpenbox),然后从终端/ xterm窗口运行所有程序。


11

我同意Eduar,您可能需要平铺/动态窗口管理器(WM)。但是没有人直接解决:

我想看到的是当我将计算机引导到命令行时

当前,您应该启动到登录的显示管理器(DM)。因此,您有两个选择,启动进入Shell或控制台DM。

如果没有设置DM,则默认情况下将登录到Shell,这将为您提供登录名,依次为用户名和密码,如果输入正确的凭据,则将登录到默认Shell。我用它,以下大致是我的平均启动“进程”:

Arch Linux 4.1.5-1-ARCH (tty1)

localhost login: Joe
Password: 
$ startx

如果要拥有一个DM,但要拥有一个控制台,则必须安装和配置它。 Arch的Wiki当前表示存在三种控制台DM:CDM,控制台TDM和nodm

Ubuntu默认使用LightDM,因此您可能必须将其删除。
但是作为当前没有DM的人,我建议您保留当前的DM,而只需更改WM。必须键入,startx并且要从内存中自动使其正确执行,这很烦人,这很烦人。


Ubuntu默认情况下至少在Unity变体上使用lightdm。
莱奥林

startx自动运行方面,我相信每个帐户都有一个登录时运行的bash脚本(或等效于其他shell)
Nick Mertin

如果这是完全错误的,请原谅我,但是既然.bash_profile是普通的bash脚本,您能不能简单地startx输入它?
尼克·默丁

@ MagikM18如果要在X启动后运行交互式bash shell,该怎么办?如果没有任何检查,.bash_profile将尝试startx再次运行。
joeytwiddle

@joeytwiddle是的,我没想到
Nick Mertin

10

startx和xinit都可以交给一个初始客户端。以下命令:

startx /usr/bin/firefox

会在您当前正在使用的TTY上启动xserver,并以全屏方式启动单个Firefox实例。您可以切换到其他tty,以避免为了回到控制台或启动其他客户端而不得不关闭firefox会话。您可能需要指定许多选项,以使其对您的显示器看起来不错,因为您将没有桌面环境为您进行某些配置。

您应该意识到,某些xclient在窗口管理器或桌面环境之外不能很好地工作。没有提供窗口装饰的DE,也没有WM监听MOD键组合,因此,如果它们不提供图形化的退出方式,则必须从另一个TTY中终止该进程(或X)。

通常,最初使用X的客户是桌面环境或窗口管理器,它是一种特殊的客户端,除了显示自己的窗口外,它还启动和嵌入其他客户端。


10

备择方案

帧缓冲模式

有些程序可以在帧缓冲模式下运行。帧缓冲模式允许应用程序完全拥有屏幕,从而允许应用程序在屏幕上逐像素绘制任何内容。并非所有程序都支持它,但是有几个程序可以支持它。

帧缓冲模式不需要X Server(例如,X.org在当前的Ubuntu版本中,或者在不久的将来,Mir或者Wayland取决于哪个版本变得更流行),也不需要任何Windows管理器/桌面环境。这应该使您可以更快地从文本切换到图形模式(和返回),尤其是在(大多数?)现代Linux发行版和图形驱动程序上,Alt-F[1-6]控制台始终使用帧缓冲模式进行渲染。

“文本用户界面”(TUI)

某些通常仅命令行支持的程序使用鼠标通过来支持gpm。在Ubuntu上,您需要做的只是安装软件包gpm,它无需任何配置,甚至无需重新启动(IIRC),即可立即运行。一旦gpm被安装,你的鼠标指针会显示为一个块风格的文本光标,你可以使用鼠标正常点击在用户界面的元素。您也可以突出显示文本并使用复制和粘贴。

如果您想更进一步,甚至还有一个“窗口管理器”,它使您可以在同一文本模式“桌面”上运行多个终端应用程序。


支持帧缓冲模式的程序的非详尽列表

  • mc(Midnight Commander)-文件管理器
  • 链接/链接2,Netsurf-Web浏览器
  • fbi-图像查看器
  • fbgs(与fbi相关,属于同一套件),fbpdf-PDF查看器
  • mplayer,fbff(基于ffmpeg)-音频/视频播放

这听起来真的很好,只要不是那么有限,谢谢。
Linuxuser00 '16

嗨@ Linuxuser00。还有更多的程序,我只是没有时间列出更多:)
Pabru '16

嘿@ Linuxuser00,如果您仍然有兴趣,我还添加了一些
Pabru

5

考虑使用像FVWM2这样的窗口管理器,而不是“桌面”。您可以将其配置为在启动时仅打开一个(或多个)xterm,可以从命令行运行任何图形应用程序(例如Web浏览器),而不会被诸如“系统任务栏”之类的桌面内容或图标所困扰,但可以添加您可能会发现实际上有用的任何一点。(就我而言,这是一个用于多个屏幕的寻呼机窗口,以及一个Conky负载监视器。)


我目前正在玩这个游戏。也许我目前没有正确配置它,但似乎不稳定并且崩溃了。
Linuxuser00 '16

嗯...从那以后我一直在运行它-哦,在20世纪后期的某个时候-并没有遇到任何问题。但是我使用OpenSuSE而不是Ubuntu,因为(除其他原因外)使用窗口管理器而不是默认的“桌面”似乎更简单。如果您想走得更远,FVWM确实有一个支持论坛:fvwmforums.org/phpBB3进行注册 的窍门是,他们向您询问有关“阵容”的问题。答案是甲壳虫乐队(60年代的流行乐队)的成员。(即使我在60年代左右,我也必须向Google寻求答案。)
jamesqf

4

这是很有可能的。

首先,您需要禁用图形启动。然后,您需要“单用户模式”(警告此操作存在一些相当大的安全风险),最后,您需要解决要运行GUI时的处理方法。

请参阅如何从GRUB引导到单用户模式?

本质上,您将选项添加single到GRUB引导配置中。您可以在/ etc / default / grub文件中执行此操作,以使更改永久生效。

请参阅如何在引导时禁用X,以便系统以文本模式引导?

本质上,您将添加text/etc/default/grub

这将为您提供一个单一用户的纯文本环境。接下来是使用GUI。您要运行的程序是startx

你会跑

startx /path/to/executable

问题是您可能需要某种窗口管理器。我会建议twm您的需求。

sudo apt-get install twm

然后要运行命令,我会说先运行startx然后回到您的控制台(CTRL + ALT + F1)并执行类似的操作export DISPLAY=:0。现在,无论何时从命令行使用GUI应用程序,它都将在“ Graphics Side”中启动,您通常可以使用Ctrl + Alt + F7进入。

如果您喜欢该设置,甚至可以使用脚本来自动进行设置。

就这样,这与您将要完成的工作几乎一样。


为什么需要单用户模式?
MSalters

“我想看到的是当我将计算机引导到命令行中时,...”。旧的“ Commodore”计算机不是多用户的。他们根本不是“用户”。您打开了它们,并看到一个眨眼的光标来键入命令。所有命令都是尝试,没有安全可言。到目前为止,最接近的是“单用户模式”,它基本上开始以root用户身份登录,绕过大多数(如果不是全部)安全性。
coteyr

啊哈,我已经怀疑你感到困惑了。没有充分的理由说明为什么要在此处使用“单用户模式”。在Linux中,单用户模式与多用户模式独立于GUI或CLI选择。
MSalters

不,我不感到困惑。OP要求的环境尽可能像Commodore。这意味着没有安全性,没有多用户,也没有登录名。接近此的最佳方法是单用户模式。这两个目标彼此无关,您可以使用多用户访问控制台,也可以使用单用户访问GUI。这是更大的总体目标的两个部分。
coteyr

不,我不希望有与准将军尽可能近的环境。我想要类似于Commodore(没有图形操作系统)的简单性。单独使用Bash很棒,但是如果我想编写代码,则想进入一个编码环境,或者如果我想上网冲浪,则想进入一个浏览器环境。完成这些程序后,将其关闭并返回BASH。或在自己的工作空间中运行多个程序。我很忙,到目前为止还无法实现其中一些方法。
Linuxuser00 '16

3

我喜欢您想做的事。我不会发布屏幕截图,因为您无法分辨与xterm(或您正在运行的任何应用程序)屏幕截图的区别。在其标准配置下,它将全屏显示一个窗口。您可以将其拆分为显示多个窗口,但是对于我的大部分日常使用却不这样做。如果从.ratpoisionrc文件启动终端仿真器,则几乎在登录时就会得到提示。这是受gnu屏幕启发的,他们错过的唯一概念是可分离和共享的会话(但vnc很好地弥补了这一空白) 。


2

我认为您可以在不丢弃桌面的情况下获得所需的东西。正如其他答案所涵盖的那样,无论如何,无论桌面运行如何,您都可能会获得更好的性能,并且由于技术原因,像较旧的OS一样无法运行Linux。

我将使用gnome作为示例工作流程,因为这是我所知道的,但是我猜想其他桌面环境也将支持类似的功能。在gnome 3中,您可以拥有一个(或多个)带全屏终端的工作区,其外观和感觉与仅在命令行模式下运行相同。gnome桌面在后台运行这一事实无关紧要。

然后,使用窗口管理器(例如在本SO问题中讨论的窗口管理器)来控制在哪个工作空间上创建新窗口,您可以强制将每个新窗口放置在其自己的工作空间上。如果您愿意在创建窗口时自行移动它们,那么除了gnome之外,您不需要任何其他软件。Gnome 3支持自动工作区,因此当您打开/关闭最底部工作区上的窗口时,将自动为其创建/删除新工作区。然后,您可以使用ctrl + alt + arrow它们在它们之间快速移动。关闭窗口时,位于其上的工作空间将自动删除,并且两侧的两个工作空间会一起移动。您所看到的只是打开的窗口和终端。


这听起来不错。也许Openbox和Gnome会给我我想要的东西?
Linuxuser00 '16

我没有使用过openbox(或任何其他窗口管理器),因此您必须自己评估它们。但是,我在笔记本电脑上运行了gnome 3,并使用了此答案中描述的工作流程(手动移动窗口)。我对它感到很满意,尽管在创建窗口后将窗口重新组织成我想要的顺序,这比原本要痛苦的多。
Godric Seer


1

您可以使用[ctrl] [alt] [F1]快速切换到命令行界面(我认为适用于[F1]-[F12])。其中之一还将在需要时切换回GUI。我认为它是[薄荷]上的[ctrl] [alt] [F8],因此您可能想尝试一下。不过,我将自己投入“使用平铺窗口管理器”阵营;i3确实是一个很棒的工具。


是的,但是我的问题是有一个使用我的资源在后台运行的GUI,所以我应该只使用该GUI,而不是假装它在那里。
Linuxuser00 '16

非常真实!解决此问题的一种方法是将操作系统设置为在不活动时交换整个会话。如果它能自动执行此操作,我不会感到惊讶,但是这可能是您需要花费大量时间进行设置的事情。
Johnathan Andersen
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.