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;
|
||||
- [[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]]
|
||||
* Basicterm
|
||||
|
||||
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 Handle color escape sequences
|
||||
* DONE Switch to SDL2
|
||||
* TODO 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]]
|
||||
* TODO Render the scrollback line by line
|
||||
* DONE Clean up the rendering of the scrollback buffer
|
||||
* DONE Get Backspace and Return to repeat properly [[https://github.com/raysan5/raylib/issues/2041][Why we switched to SDL]]
|
||||
* 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 Handle non-canonical mode
|
||||
* TODO Handle unicode characters
|
||||
* TODO Handle canonical and raw commands
|
||||
* TODO Mouse copy/paste
|
||||
* TODO Create basic vertical splits?
|
||||
|
Loading…
x
Reference in New Issue
Block a user