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:

make build    # Build the project
make run      # Build and run

License

This project is licensed under the MIT License. See the LICENSE file for details.

Description
No description provided
Readme 743 KiB
Languages
C 98.1%
Makefile 1.9%