Git Product home page Git Product logo

crterm's Introduction

Build status Download zip

Gautam's CRTerm Windows 11 C++ OpenGL

A CRT style terminal for Windows. Watch it in action.

Note: This is a WIP, it is not ready for production!

Amber with WSL Green with cmd.exe White with Powershell XTerm 256 Color Support
UTF-8 Support Vim Matrix Mapscii

Motivation

This project is inspired from SwordFish90's Cool-Retro-Term. Unfortunately, this program while being cool, was only available for Linux / MacOS, so I decided to write one for Windows.

Note that while it is inspired from Cool-Retro-Term, it is not Cool-Retro-Term! Cool-Retro-Term has undergone ~10 years of development and this does not use any code from that. This has gone about ~10 days in development in comparison, so once again it is in active development and will see many changes. :P

Description

The terminal supports a subset of VT220, and uses SDL-GPU for rendering. For the UI part, it employs Dear ImGui. It uses Nlohmann's JSON library and Sam Hocevar's portable file dialogs as well. It has a 16 color palette. The mouse is used for selection, copying and pasting. It also implements a scrollback buffer which can be used to view the terminal's history.

The terminal reads the "default" file in its directory which should just contain the path to a JSON file. An example is given in default and config/ located in src/resources.

The current version is 0.5.0, it is still in active development and may not replace your terminal application.

Features

  • Subset of VT220 is supported
  • Mouse selection (copy, and paste)
  • 16-color palette
  • Scrollback history
  • TrueType support
  • 256 Color (in upcoming release)
  • UTF-8 Support (Work in progress)
  • Drag and drop files (plays MP3 in the terminal itself!)

Hey, it looks nice, if you wanted functionality, go for Windows Terminal.

Upcoming

For the road to 1.0.0, we have the following,

  • Support for certain iTerm sequences to allow graphics rendering in the terminal
  • Support for terminal resizing
  • Support for coloured glyphs
  • Full TrueType (including bold and italics)

Building

Visual Studio 2017/2022 is required, it uses C++17. Windows 10 SDK (June 2018)+ is needed as it uses CreatePseudoConsole() and ConPTY.

All dependencies are present in the repo, they are:

  • ImGui
  • SDL2
  • SDL_mixer
  • SDL2-GPU
  • FreeType

The header only dependencies are:

  • Nlohmann/JSON
  • Hocevar/PDF

Don't forget to add the DLLs to the Debug/ folder whilst running!

Have fun!

crterm's People

Contributors

relativisticmechanic avatar

Stargazers

Timo Sarkar avatar  avatar Mustafa Aladdin avatar Gidgee avatar  avatar Nguyễn Việt Tùng avatar Dillon Beckerich avatar Bocke avatar idchlife avatar  avatar Aditya Subramanian avatar Nikhil B avatar  avatar sarvel avatar Ajāy  avatar Rich Ahrens avatar  avatar Sandor avatar Pedro Falcato avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

xsmolasses

crterm's Issues

No prompt or text

Cool project, I'm looking forward to trying it out, but when I run the app it just gives me blank screen with no text or anything. I can right click and get the menu to come up and I've tried the various configs, but have had no luck. I tried building it under VS 2022 to see if I could debug what was going on, but I wasn't having much luck getting my build environment right and just didn't have any time to mess with it today. I'd be happy to test anything out if you need, just let me know.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.