Christian Burger
3be5336ca0
Laying out the windows in the window manager frame, is a very similar process regardless of doing it horizontally or vertically. So the template design pattern was applied and the general functionality was pulled up; only specific functionalities were put into the corresponding classes. kNCursesDemoApp: Separated the screen into three windows vertically. The top and bottom window contain another two windows each, lay out horizontally. The top left window is fixed to width 1 and the top right takes the rest of the space. Bottom two windows take 50 % of the space each. Remarks: There are still some rendering bugs, when hiding and showing windows. E. g. when hiding the top or middle window with `<F1>` or `<F2>` respectively, the bottom window has some errors. Maybe some timing issue. |
||
---|---|---|
.vscode | ||
cmake | ||
include/kNCurses | ||
.gitignore | ||
CMakeLists.txt | ||
Debug.cpp | ||
Debug.hpp | ||
DemoApp.cpp | ||
DemoApp.hpp | ||
HorizontalTilingWindowManager.cpp | ||
LICENSE | ||
main.cpp | ||
PtyWindow.cpp | ||
README.md | ||
SingleUserInput.cpp | ||
TilingWindowManager.cpp | ||
VerticalTilingWindowManager.cpp | ||
Window.cpp |
Description
WARNING: This is a prototype. Things will probably break; in spectacular ways.
NCursesPtyWindow
provides a pseudo terminal in a ncurses window.
Building
Requires:
- GCC 9.3 (C++17)
- ncurses 6.2
- libvterm (0.1.2-2; r740 at https://bazaar.launchpad.net/~libvterm/libvterm/trunk/revision/740)
- libmsgsl-dev 2.1.0-1 (Microsoft C++ Guidelines Support Library)
Running
Though this is a library, there is a demo application. It starts the currently
running shell (or /bin/bash
if SHELL
environment variable is not set) and
runs it in a ncurses window.