The width of the display used in the screenshot appears to be less than 150 characters. Why would you add the clutter and distraction of transparent windows with frame decorations in such a limited environment? 30% of the real estate is consumed by elements that don't present any information to the user. On a modern display, this could far more productively be replaced with (1) any number of tiling WMs with console t…
The demo video ( https://www.youtube.com/watch?v=fLumnSctakY&feature=youtu.be ) reveals that this is not just a traditional window manager for a static screen, it's got a much larger virtual canvas that the display can scroll around in. So there's a LOT more space to make an aesthetic decision for big, character-wide window frames. Seriously go watch the video, this thing feels like it's got a foot in the realm of UI…
VTM: A Text-Based Desktop Environment
101–110 of 145 posts
Re: VTM: A Text-Based Desktop Environment
#102Earlier quoted context omitted.
Windows 1.0 didn't actually use box-drawing characters for any of this, of course. For example, the System menu in the top left corner of each window was three horizontal lines, just like a hamburger menu of today. Scrollbar buttons did not look like any box-drawing character. The Maximize button in the top right did look like a box-drawing character, but that's really about the only resemblance I see. (I developed a…
Right, I'm not saying that the GUI was rendered using the DOS box-drawing characters, i.e. the monitor's built-in codepage 437 text mode; nor were they using a monospace bitmap font of codepage 437. What I'm saying, is that I'm pretty sure that a lot of the Windows 1.0 GUI was drawn by emulating the "technique" TUIs use to draw box-drawing characters, but on a framebuffer and with a custom (monospace) bitmap font: 1.…
Perhaps parts of the Windows 1.0 GUI could have been implemented like that, but the truth is much simpler and more mundane.
The bundled apps (including MS-DOS Executive) and the window decorations generally used the same GDI (Graphics Device Interface) calls as third party apps:
Text was drawn with TextOut() or DrawText().
Bitmaps were copied to the framebuffer with BitBlt() or StretchBlt().
Lines were drawn with MoveTo() and LineTo().
Rectangles were drawn with Rectangle() or RoundRect().
This is not an exhaustive list but should give you the general idea.
All of these functions operated on a "device context" (DC) that you obtained with functions like GetDC() or CreateCompatibleDC(). Some, like BitBlt(), used two DCs for the source and destination.
The MS-DOS Executive drive icons were bitmaps drawn with BitBlt() with TextOut() for the drive letter. The selected drive letter and icon were inverted with InvertRect(), or possibly drawn with the DSTINVERT raster operation code.
These are the same functions that any Windows application could use. The MS-DOS Executive was just another app.
The non-client area of a window (titlebar and such) was drawn with the same GDI calls as the client area. Your app would get a WM_PAINT message to draw the client area and a WM_NCPAINT for the non-client area. Most apps passed WM_NCPAINT through to the default handler DefWindowProc().
I was programming Windows apps starting with the first release of Windows 1.0. I spent a fair amount of time reverse engineering other Windows apps and Windows itself, along with people like Matt Pietrek and Andrew Schulman.
Andrew in particular would have devoted an entire chapter of his book Undocumented Windows to the text-based system you describe. It would be a field day for him!
Also consider memory limitations and programmer time. Remember that Windows 1.0 ran (slowly) on a machine with 256KB memory and two floppy drives.
Since they had to build GDI anyway, it would take more memory to also include this text-based system. It also would have taken more developer time, and provided less testing of the public APIs.
But again I do appreciate your interesting speculation!
Re: VTM: A Text-Based Desktop Environment
#103The width of the display used in the screenshot appears to be less than 150 characters. Why would you add the clutter and distraction of transparent windows with frame decorations in such a limited environment? 30% of the real estate is consumed by elements that don't present any information to the user. On a modern display, this could far more productively be replaced with (1) any number of tiling WMs with console t…
80x24 is the default terminal height. I mostly use this size on all of my projects. It has many favors: compatibility everywhere, tiny bandwidth, etc.
More seriously, I think the 80 column width is just too constraining with more modern languages that aren't remotely as terse as C–not to mention a limit that aggressively militates against in-line commenting. We also have monitors and fonts with resolutions that permit easily reading much denser use of the visual display. I mostly go with 120 chars now (in practice, that means that lines still won't wrap when I print source code files) and however many lines fit into the display pane.
Re: VTM: A Text-Based Desktop Environment
#104Re: VTM: A Text-Based Desktop Environment
#105Earlier quoted context omitted.
The demo video ( https://www.youtube.com/watch?v=fLumnSctakY&feature=youtu.be ) reveals that this is not just a traditional window manager for a static screen, it's got a much larger virtual canvas that the display can scroll around in. So there's a LOT more space to make an aesthetic decision for big, character-wide window frames. Seriously go watch the video, this thing feels like it's got a foot in the realm of UI…
Yeah, I see it. I just don't get it. There's an awful lot of UX work being done to preserve an illusion that you have a bunch of fixed-size consoles that are arbitrarily arranged in a 2d space. Which, I guess, is the defining metaphor of GUI interfaces, but if that's what is desired, why create a console-only (if only in appearance) GUI? Text buffers in emacs or panes in screen or tmux can be made to have arbitrary s…
Re: VTM: A Text-Based Desktop Environment
#106Earlier quoted context omitted.
There's also a window claiming to be Windows' CMD. As I can't figure out how to enter text in any of these windows (I'm assuming it's disabled, otherwise CHAOS) I can't tell if it's just a vestigial window of if it's a true output. The topics on the Github repo list both Linux and Windows. The Readme calls itself "aka Monotty Desktop". That makes me think they may have written the code for the Mono runtime, so I'm ex…
Powershell. But Microsoft ported Powershell to run on UNIX/Linux, so ...
Re: VTM: A Text-Based Desktop Environment
#107This reminds me of the DOS menuing system we used to install on clients' computers several decades ago. Cannot remember the name, may have to dig out my old 5 1/4" floppy collection binder I used to always carry with me if not remembering starts to drive me crazy... That system remapped the function keys to launch batch files or call up sub-menus... Easiest way (at the time) to "customize" peoples' computers for them…
Re: VTM: A Text-Based Desktop Environment
#108Re: VTM: A Text-Based Desktop Environment
#109Earlier quoted context omitted.
1985. https://en.wikipedia.org/wiki/IBM_TopView I had just started working at Gupta Technologies at the time, and for a short while we seriously considered developing for TopView instead of Windows.
Ashton-Tate did it with Framework in 1984. Though my memory is that it goes back a few years earlier to Valdocs on CP/M machines, but I can’t find any pictures on the intarwebs.
The thing that stuck in my mind when Robert Carr took us on a tour of their office was the printer lab.
It was a full size conference room with floor-to-ceiling shelves on every wall stacked with printers.
Because back in those days, if you wanted to sell a DOS application that could print anything more than plain text, you had to write your own drivers for every printer you wanted to support. Ouch!
I've sometimes thought that the real innovation in Windows 1.0 was having systemwide printer drivers so every app didn't have to provide their own.
Re: VTM: A Text-Based Desktop Environment
#110I just ssh-ed in, there are multiple users, its crazy!
same, but I will come back later to actually try it. Right now it's displaying a bunch of colors and strobing really hard. Not sure what's happening.