Linux without graphical OS but with graphical resources

My first computer experience was with a Commodore. I would like to have Linux computer work similar to that. I was wondering if it was possible to have something similar using Linux.

What I would like to see is when I boot my machine into the command-line, and not into a GUI but have graphical resources available. So when I type say: Firefox, the program, and its graphical interface be made available. When I exit Firefox it returns to the command-line. If I need to browse the file system say I typed: XFE or whatever manager is being used and it come up and allow me to browse the folder, and when I exit then it return to the command-line again. So the ability to run, manage and use programs without having to use a GUI but have graphics available.

It would be nice to have all this geared toward programming. So at the BASH command-line, have the ability to call up a compiler environment IDE and just start writing programs without being distracted by a desktop environment.

And if more than one graphical program is running then have a tabbed window manager I guess. Is this feasible or am I dreaming?


I think you can get what you want using a Tiling Window Manager, like i3 or xmonad. There are other minimalistic window managers with similar functionality. i3 and xmonad are both in Ubuntu repositories, so they are easy to install, and then you can select them in your login screen.


I am afraid that you missing the main difference between modern computing environments and those of the C-64 era. Home computers of the C-64 era were single user, single process systems, and did not share the computers resources with other processes. This quite simply means that when you would run a program on your C-64 that was a graphical program, it would reconfigure your computers hardware to be in 'graphics' mode and then your running program would handle all of the graphical output, and user input from the mouse and keyboard itself.

Modern computers and its software, by contrast, are multi user, multi process, but not only this, modern software depends on shared libraries, for example Firefox relies on the GTK windowing library, and that in turn relies on other lower level libraries. So in order for Firefox to run, it depends on a whole stack of software and configuration.

Because there is so much underlying software, this makes it more efficient to stay within a graphical environment once it starts up, rather than to load up the graphical environment for Firefox, then shut it down, then start up the graphical environment for another program, so forth and so on.

You can quite simply start and run any Linux GUI program from a terminal (console) window, so I would advise you to pick yourself a simple graphical desktop environment, perhaps Enlightenment or Openbox, and just run everything from a terminal / xterm window.


I agree with Eduar, you probably want a Tiling/Dynamic Window Manager (WM). But no-one's directly addressed:

What I would like to see is when I boot my machine into the command-line

Currently you should boot into a Display Manager (DM) where you login. So you have two options, boot into a shell or a console DM.

If you have no DMs set up then you will by default log into a shell, this will give you a login prompt of username then password, if you enter the correct credentials then you'll log into your default shell. I use this and the following is roughly my average startup 'process':

Arch Linux 4.1.5-1-ARCH (tty1)

localhost login: Joe
Password: 
$ startx

If you want to have a DM, but a console one then you'll have to install and configure it. Arch's wiki currently says there are three console DMs being: CDM, Console TDM and nodm.

Ubuntu uses LightDM by default, so you may have to remove it.
But as someone who currently doesn't have a DM I would recommend keeping with your current DM, and just change your WM. It's tedious having to type startx and from memory making it automatically execute correctly was annoying to setup.


Alternatives

Framebuffer mode

There are some programs which are capable of running in framebuffer mode. Framebuffer mode allows an application have the screen all to itself, allowing the application to draw whatever it wants on the screen pixel-by-pixel. Not all programs support it, but there are a few which do.

Framebuffer mode doesn't require an X Server (such as X.org in case of current Ubuntu versions, or in the near future perhaps Mir or Wayland depending on which one becomes more popular), or any window manager/desktop environment to be started. This should give you a faster text to graphics mode switching (and back), especially as on (most?) modern Linux distros and graphics drivers the Alt-F[1-6] consoles are rendered using framebuffer mode anyway.

"Text User Interface" (TUI)

Some programs which are normally command line-only support using a mouse via gpm. On Ubuntu, all you need to do is just install the package gpm and it should work straight away without any configuration or even reboot necessary (IIRC). Once gpm is installed, your mouse pointer will be shown as a block-style text cursor and you may use the mouse as normal to click at the elements of the UI. You may also highlight text and use copy and paste.

If you want to go a step further, there is even a "window manager" which allows you to run multiple terminal applications on the same text mode "desktop".


Non-exhaustive list of programs supporting framebuffer mode

  • mc (Midnight Commander) - file manager
  • Links/Links 2, Netsurf - web browsers
  • fbi - image viewer
  • fbgs (related to fbi, part of the same suite), fbpdf - PDF viewer
  • mplayer, fbff (ffmpeg based) - audio/video playback

startx and xinit can both be handed an initial client to start with. The following command:

startx /usr/bin/firefox

will spin up an xserver on the TTY you are currently working on, and start a single instance of firefox in something like full screen. You can switch to other tty's to avoid having to bring down the firefox session just to get back to the console, or to bring up other clients there. You might have to specify a lot of options to make this look nice for your monitor since you won't have the desktop environment doing some of that configuration for you.

You should be aware that some xclients don't work nicely outside of window managers or desktop environments. There's no DE providing window decorations, and no WM listening for MOD key combos, so if they don't provide a graphical way to quit you will have to kill the process (or X) from another TTY.

Normally the initial client people use with X is a desktop environment or window manager which is just a special kind of client that launches and embeds other clients in addition to displaying its own window.