Updating README
This commit is contained in:
parent
bfb4e2a994
commit
392564dfad
59
README.org
59
README.org
@ -1,5 +1,56 @@
|
|||||||
* 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]]
|
A minimalist Linux terminal emulator written in C, utilizing SDL2 for keyboard input handling and text rendering. This project demonstrates low-level systems programming and graphics programming concepts.
|
||||||
|
|
||||||
|
** Project Overview
|
||||||
|
|
||||||
|
Basicterm is a custom terminal emulator developed to provide hands-on experience with terminal implementation details and to deepen understanding of fundamental system tools. The project showcases C programming, SDL2 graphics programming, and POSIX terminal semantics.
|
||||||
|
|
||||||
|
** Technical Implementation
|
||||||
|
|
||||||
|
The terminal emulator is built using:
|
||||||
|
- *SDL2* for window management and input handling
|
||||||
|
- *SDL2_ttf* for text rendering
|
||||||
|
- Custom escape sequence parsing for color support
|
||||||
|
- Direct shell process communication via pseudoterminals
|
||||||
|
|
||||||
|
** Current Features
|
||||||
|
|
||||||
|
- Basic shell command execution
|
||||||
|
- Keyboard input processing with backspace support
|
||||||
|
- Partial ANSI color escape sequence parsing
|
||||||
|
- Support for bash and dash shells
|
||||||
|
- Cross-platform Linux compatibility
|
||||||
|
|
||||||
|
** Development Status
|
||||||
|
|
||||||
|
This project is actively under development. Recent improvements include:
|
||||||
|
- Migration from Raylib to SDL2 for better keyboard input handling
|
||||||
|
- Implementation of basic text rendering pipeline
|
||||||
|
- Foundation for ANSI escape sequence processing
|
||||||
|
|
||||||
|
** Planned Enhancements
|
||||||
|
|
||||||
|
- Complete ANSI escape sequence support
|
||||||
|
- Multi-line text rendering optimization
|
||||||
|
- Extended shell compatibility (Fish, ZSH)
|
||||||
|
- Improved terminal state management
|
||||||
|
|
||||||
|
** Build Instructions
|
||||||
|
|
||||||
|
*Prerequisites:*
|
||||||
|
- SDL2 development libraries
|
||||||
|
- SDL2_ttf development libraries
|
||||||
|
|
||||||
|
Install dependencies using your distribution's package manager, then build:
|
||||||
|
|
||||||
|
#+BEGIN_SRC bash
|
||||||
|
make build # Build the project
|
||||||
|
make run # Build and run
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
** License
|
||||||
|
|
||||||
|
This project is licensed under the MIT License. See the LICENSE file for details.
|
||||||
|
10
bt.todo
10
bt.todo
@ -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?
|
||||||
|
Loading…
x
Reference in New Issue
Block a user