7

There is a way to visualize multiple terminals at the same time without running a Xorg session ?

I have a really low profile machine that could be great for some basic stuff but has an horrible support for the GPU in terms of drivers and computing power.

user2485710
  • 1,493

5 Answers5

15

Check out tmux and/or screen. A comparison of the two programs which satisfy essentially the same needs can be found on the tmux FAQ.

A very good blog post for getting started with tmux is at Hawk Host: TMUX the terminal multiplexer part 1 and part 2.

If you want to know more about tmux's versatility, there's a nice book/e-book that covers a lot of ground at a leisurely pace: tmux: Productive Mouse-Free Development by Brian P. Hogan.

user79877
  • 164
  • tmux works without X ? – user2485710 Aug 06 '14 at 00:05
  • 2
    Yes, it does. It is a modernized version of screen with a much easier configuration syntax (but it lacks some of screen's capabilites). The first FAQ of tmux compares the two. – user79877 Aug 06 '14 at 00:08
  • 2
    No clue why this doesn't have more upvoats, tmux is the closest thing you can get to a tabbed terminal emulator without an actual gui, not to mention you can share the virtual terms with other users to show what you're doing.

    I used it the other day to walk a new user through an archlinux installation over ssh, I was in USA and they were in Australia, very useful tool.

    – hanetzer Aug 06 '14 at 01:19
  • @ntzrmtthihu777 The first version of this answer was downvoted, probably because it was quite minimalistic. I agree with you, I would also recommend tmux as the best option among the three, but as a BSD user I'm biased... – damien Aug 06 '14 at 01:34
  • 1
    @ntzrmtthihu777 - the closest thing you can get to a tabbed terminal emulator without a gui is a tabbed terminal emulator - like kmscon. your agetty mingetty what have you is doing the terminal emulation on the in-kernel vts. – mikeserv Aug 06 '14 at 02:41
  • given screen, tmux and kmscon I think that the more promising one is tmux, I will start with that one, thanks. – user2485710 Aug 06 '14 at 17:06
6

You can install kmscon which implements kernel mode setting graphics handling in the console. Its developer - David Herrman - is the party in large part responsible for systemd's multiseat session handling, and this functionality is provided in his own kmscon package. He's also largely responsible for wlterm and similar multiseeat session handling in wayland (which, by the way, might be worth looking into if you find X is too heavy)...

With this package you get x-fonts in the virtual-terminals, you get ptys and session-switching in same - and all of this is provided by the same service controlling the virtual terminal, because you launch kmscon instead of a getty, for instance.

Any terminal multiplexers such as screen or tmux are fully compatible of course - they're a couple steps below this in terms of control. kmscon just amounts to a much saner vt config than you'll get otherwise - and it provides as many sessions as you wish.

From the tarball's README:

= KMSCON =

kmscon is a simple terminal emulator based on linux kernel mode setting (KMS). It is an attempt to replace the in-kernel VT implementation with a userspace console. See man 1 kmscon for usage information.

== Requirements ==

Kmscon requires the following software:

  • libtsm: terminal emulator state machine

  • libudev: providing input, video, etc. device hotplug support (>=v172)

  • libxkbcommon: providing internationalized keyboard handling

  • libdrm: graphics access to DRM/KMS subsystem

  • linux-headers: linux kernel headers for ABI definitions

Everything else is optional:

For video output at least one of the following is required:

  • fbdev: For framebuffer video output the kernel headers must be installed and located in the default include path.

  • DRM: For unaccelerated drm output the libdrm library must be installed and accessible via pkg-config.

  • OpenGLES2: For accelerated video output via OpenGLESv2 the following must be installed: libdrm, libgbm, egl, glesv2 (i.e., mesa)

For font handling the following is required:

  • 8x16: The 8x16 font is a static built-in font which does not require external dependencies.

  • unifont: Static font without external dependencies.

  • pango: drawing text with pango

    • Pango requires: glib, pango, fontconfig, freetype2 and more

For multi-seat support you need the following packages:

  • systemd: Actually only the systemd-logind daemon and library is required.
mikeserv
  • 58,310
4

You can run screen from a console. It will provide multiple terminals. You can even split the screen to see more than one terminal at once.

Some of the relevant screen commands are:

   C-a c
   C-a C-c     (screen)      Create a new window with a shell and switch to that window.

   C-a Q       (only)        Delete all regions but the current one.  See also split, remove, focus.

   C-a S       (split)       Split the current region horizontally into two new ones.  See also only, remove, focus.

   C-a w
   C-a C-w     (windows)     Show a list of window.

   C-a X       (remove)      Kill the current region.  See also split, only, focus.

   C-a |       (split -v)    Split the current region vertically into two new ones.

Note that case is significant: control-a S will split the region but control-a s does something else entirely.

To install screen on debian (or similar), run apt-get install screen.

John1024
  • 74,655
1

Does Ctrl+Alt+F2 not switch you to another console?

As I understand it that shouldn't depend on X.

(I'd go with tmux, really, as it works over SSH, supports split-screen, etc, but Ctrl+Alt+F1/Ctrl+Alt+F2/etc has the advantage of no tmux dependency.)

0

Along the tmux and screen worth to mention byobu as well.

Ray
  • 869