nsf / termbox

Library for writing text-based user interfaces

Home Page:http://code.google.com/p/termbox

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

24 bit colors support (true colors)

XVilka opened this issue · comments

commented

If that's a feature request, someone should implement it. It won't be me, because I'm in maintenance-only mode for this project at the moment (actually for all of my open source projects).

commented

Also reflects my thoughts on the issue: nsf/termbox-go#52.

Shortly: if you want more than 256 colors, you're probably making a game. Please, don't do it in a terminal, I don't want to suffer while playing your game.

I may revisit that opinion in future. My opinion changes over time. Before I was absolutely sure about not adding mouse support and 256-color mode support to the termbox. Now it's there. (Go version of the termbox has mouse support).

@nsf almost 2 years passed, true color gained huge support across the programs (see updated gist). Have you changed your opinion yet?

commented

Nope. During those 2 years I joined the HTML/CSS cult, so I don't feel like popularizing terminals further.

Using termbox to render a terminal emulator (sort of thing tmux does), color support in termbox being so constrained is a bit of a pain. Also makes it difficult to offer better user color customization.

User color customization is done in the terminal configuration. Programs that uses extended colors beyond the basic set just messes it all up and makes the terminal less nice to look at.

That's a matter of opinion. I want to give users the option.

then open a PR, instead of whining. did you even ever use termbox ? it's meant to be used for lightweight terminal apps that don't need the full power of ncurses.

Of course I have used termbox. I'm bringing the issue up for further discussion before I spend the effort on a pull request to make sure it's thought out first.

commented

I won't merge it though. But you can implement it for yourself and use it. It's not like I spam commits every day and you'll have trouble merging them back into your fork. Termbox is pretty much done, sure there are some features I would like to work on, but it's unlikely that I will.

And for god's sake, stop using terminals to make fancy UIs. I mean if you want something basic and quick - great, but for anything serious go with proper GUI libs or HTML. And I would understand if we were talking about Go version of the termbox, because in Go you need high quality bindings and all that. But in C/C++, you have all the libs to choose from.

I won't merge it though. But you can implement it for yourself and use it. It's not like I spam commits every day and you'll have trouble merging them back into your fork. Termbox is pretty much done, sure there are some features I would like to work on, but it's unlikely that I will.

I probably will fork if if necessary, but it would be nice to upstream the changes for the sake of distribution and such. Termbox is a nice lib, it shouldn't be left out to dry imo. But if you insist, a fork it shall be.

As for fancy UIs - maybe someone has a specific TUI that they want colored differently from the rest and use 24 bit colors for that? And even for fancy UIs, some people just prefer the terminal UX. Why did you make this library in the first place if you disagree? I'm working on a mail client, in the terminal because I want it to be keyboard driven and integrate nicely with vim and other command line tools. It's also easier to port if it doesn't depend on i.e. GTK.

@SirCmpwn why not use ncurses then? it already does 24bit colors

Because I prefer termbox's significantly simpler API, implementation, and footprint, of course.

if you want to down the footprint you can also use netbsd curses and for a simpler API, concol on top of it.

Well, it's not my call which curses is distributed in end-user distros, I don't like having complexity anywhere in my stack anyway, and concol is not easily/consistently packagable.

@SirCmpwn did you fork termbox with true colors?

@tomas how do you feel about this feature?

I have no plans to develop it, but I'd be happy to merge it into my fork if you send a pull request. :)