Xterm Window Manager
Xterm Window Manager (XtermWM) is a desktop environment / window
manager for the console. Its major features include:
-
Tiled and windowed terminal shells with good Xterm/VT100
support, including mouse. Terminal shells will also resize
correctly due to the
included ptypipe
utility.
- Virtual desktops and desktop pager widget.
- Cascading/overlapping/floating windows with mouse-draggable
move and resizing.
- Tiled/paned windows with mouse selection and
divider-draggable resizing.
- A plugin system for adding custom widgets, windows,
screensavers, and other functions.
-
The ability to run in both Xterm-like environments (Unix
command line shells or over ssh) and as a Swing component for
X11/Windows/Mac, with the same behavior and look-and-feel.
The mouse can also work for the raw Linux console when GPM is
installed and XtermWM is run
inside LCXterm.
-
Image support, for both Swing and Xterm. See
here
for a list of tested terminals and feature support.
-
Detachable sessions and share-able session with read-only
client support. Please see
these
notes about shared sessions, particularly the security
section.
Here is an example: Installing XtermWM on
a headless Linux machine.
XtermWM is expected to be helpful to the following kinds of
people:
- Console users who want to have multiple windowed terminals, but
not a full X11 desktop environment.
- Data center / system administrators who want a more capable
physical console at the rack / head node, but will not (or cannot)
install X11/Wayland.
- People who used the DOS-era "shells" like IBM DOS Shell, DESQview,
WordPerfect Office, and Direct Access, and want similar features
in their terminals without having to learn Emacs Lisp.
License
Xterm Window Manager is Copyrighted (c) 2020 Autumn Lamonte. It
is made available to all under the MIT license.
The core TUI library that XtermWM is built out of
is also available here
under the MIT license.
Downloads
XtermWM can be downloaded here.
Development Status
This code is currently "alpha" quality, as in it "works for me".
I have fixed all the bugs I know about, but there are surely more
bugs and rough spots lurking. If you run across something, feel
free to
open an
issue.
Though I can fix the bugs, I am sadly in no position to drive a
real project forward with the "community" parts of open-source
like forums, announcements, getting it into distros, etc. If you
feel a passion toward becoming the public face of XtermWM,
consider dropping in
on Issue
#1: Find Project Maintainer.
The main structure will not change much from here on out. The
path forward is now making more plugins.
Obligatory: "Ugh, Why Java?!"
Why not? It's cross-platform, much faster and lighter than
Electron, and many of the systems that XtermWM makes sense for
(rackmount servers / cloud instances without X11, Raspberry PIs)
already have Java installed for webby/backend stuff.
But for those who find Java utterly distasteful, check out the
Jexer
porting guide: it has pointers to where the key features of
XtermWM's toolkit are, and a potential roadmap to liberate it into
other languages.
There are also several text-based toolkits listed on
the bottom
of this page in some more hip languages that could be built up
to meet or exceed the features of XtermWM/Jexer. Consider giving
those projects some of your time, so that text user interfaces can
get better for everyone.
Xterm Window Manager Project
Submit A New Bug Report
Latest README
GitLab XtermWM Project Page
SourceForge XtermWM Project Page
See Also
- K.Mandla's blog of
Linux experiences - A blog that explores MANY amazing
command-line / text-based programs.
-
Jexer - The toolkit
underlying XtermWM. Jexer is to XtermWM as Qt is to KDE, or
GTK is to GNOME.
-
LCXterm - A
terminal emulator "helper" that can make GPM mouse on Linux
console work with XtermWM.
-
tmux - The
famous terminal multiplexer that can has support for multiple
"desktops" (windows) and "panels" (panes).
-
zellij - A
tiling terminal multiplexer / terminal workspace written in
Rust, currently "beta" but under very active development.
Includes layouts and a plugin system.
-
dvtm - A small
and fast tiling terminal multiplexer.
-
mtm - A VERY
small and fast tiling terminal multiplexer.
-
Twin - A text
mode window environment that can do cascaded/stacking text
terminal windows.
-
Monotty
Desktopio (a.k.a. VTM) - A text mode window environment
that can do cascaded/stacking text terminal windows with
some really slick game-like aesthetic effects.