Updating README

This commit is contained in:
Joseph Ferano 2023-11-16 17:36:15 +07:00
parent bfb4e2a994
commit cbf4ab6b2f
2 changed files with 48 additions and 8 deletions

View File

@ -1,5 +1,43 @@
* Basic Term #+OPTIONS: toc:nil
Simple X11 VT100 terminal emulator, written in C. Using the following resources; * Basicterm
- [[https://www.uninformativ.de/blog/postings/2018-02-24/0/POSTING-en.html][The very basics of a terminal emulator]]
- [[http://mech.math.msu.su/~nap/2/GWindow/xintro.html][A Brief intro to X11 Programming]] Linux terminal emulator, written in C. Keyboard input handling and text
rendering are done with ~SDL2~ and ~SDL2_ttf~. I got the idea of working on the
project by reading through [[https://www.uninformativ.de/blog/postings/2018-02-24/0/POSTING-en.html][this]] tutorial.
** Another terminal?
This is part of my attempt to gain a deeper understanding of the tools I use on
a daily basis.
** Status
This is very much a work-in-progress. Work was started last year and initially
used Raylib for the rendering, however, an [[https://github.com/raysan5/raylib/issues/2041][issue]] with handling keyboard input at
the time of implementation meant it wasn't ideal. The project was shelved with a
~TODO: Switch to SDL2~ and I finally got around to making the switch.
Project is now using SDL2 and it renders a bash shell and running commands work
for the most part. It's handling backspace but not much else. It has some color
escape code parsing in place but the text rendering currently only renders line
by line so it's on the TODO list to get that working.
Eventually, I'll revisit this project when I want to learn more about this
topic.
** Shell support
Currently, Fish and ZSH do not work. Only bash and dash.
** Building
You need to install ~SDL2~ and ~SDL2_ttf~, ideally from your distro's package
manager. I probably should setup the includes and whatnot properly according to
[[https://nullprogram.com/blog/2023/01/08/][this blog post]] but I'll leave that for another day.
You can then run ~make build~ or ~make run~
** LICENSE
Basicterm is licensed under the terms of the MIT license. For more information,
see the included LICENSE file.

10
bt.todo
View File

@ -12,11 +12,13 @@
* DONE Render scrollback by rows * DONE Render scrollback by rows
* DONE Handle color escape sequences * DONE Handle color escape sequences
* DONE Switch to SDL2 * DONE Switch to SDL2
* TODO Clean up the rendering of the scrollback buffer * DONE Clean up the rendering of the scrollback buffer
* TODO Get Backspace and Return to repeat properly [[https://github.com/raysan5/raylib/issues/2041][Why we switched to SDL]] * DONE Get Backspace and Return to repeat properly [[https://github.com/raysan5/raylib/issues/2041][Why we switched to SDL]]
* TODO Render the scrollback line by line * DONE Render the scrollback line by line
* TODO Render lines by colored subsection
* TODO Handle raw mode
* TODO Only draw scrollback that is visible * TODO Only draw scrollback that is visible
* TODO Handle non-canonical mode
* TODO Handle unicode characters * TODO Handle unicode characters
* TODO Handle canonical and raw commands
* TODO Mouse copy/paste * TODO Mouse copy/paste
* TODO Create basic vertical splits? * TODO Create basic vertical splits?