You are not logged in.

#1 2010-03-09 17:22:23

simongmzlj
Member
From: Canada
Registered: 2008-11-06
Posts: 135

Carbon - yet another terminal emulator

What is carbon?
Carbon is yet another terminal emulator aiming at minimalism, speed, functionality, and aesthetics. As an added bonus, the code is very modular.

Carbon is built on xcb instead of Xlib. There has yet, to my knowledge, a terminal emulator built like this. This should prove to provide a faster and more responsive terminal.

Features
  * Support for managing different colour themes.
  * Ability to install custom escape sequence handlers.
  * Daemon mode much like urxvt, possibly with some degree of detaching/reattaching support.

While I haven't figured out how I'm going to handle configuration, I will utilize custom escape sequences to control certain settings. For example, unless I find it unsatisfactory, carbon will provide a shell script for theme changing/previewing, relying on escape sequences to tell the terminal what color theme to use.

The code it somewhat suckless inspired, it will utilize a config.h file by the time its done. However, I have a somewhat bigger aim on making carbon modular than most suckless projects. The terminal emulator back-end should be easily reusable other projects.

Current status:
  * I can create a tty and read and write from it.
  * I can parse CSI escape sequences (but I ignore them for now)
  * I can read keypresses from a windows and send the appropriate character to to the tty (at time of posting, this is not committed to repo).

Not really worth running as it doesn't draw to the screen yet, but its getting there.

Thanks to:
   * st, madtty: This project was largely written looking at how they did things; my code ranges from very similar to blatant rip-off.
   * Awesome: I gutted their keycode->keysym->string code to get input working. Kudos for adopting xcb.

Heres a link to the project on github: github.com/simongmzlj/carbon
Thanks for your time. Any comments, ideas, or criticisms would be appreciated.

Offline

#2 2010-03-09 18:31:13

pogeymanz
Member
Registered: 2008-03-11
Posts: 1,020

Re: Carbon - yet another terminal emulator

Will this terminal emulator support tabs (or a plugin for tabs)?

What other benefits for the end user is there besides speed? I'm not trying to sound like a jerk, just curious. This seems like an interesting project and I will be toying with it as soon as you claim that it's useable.

Offline

#3 2010-03-09 23:42:42

simongmzlj
Member
From: Canada
Registered: 2008-11-06
Posts: 135

Re: Carbon - yet another terminal emulator

I'm not sure how I'll implement tabs, but they are on the roadmap. I don't use them personally, I like seeing all my terminals at once, but any ideas on how to do them useful would be appreciated. Building support for them into the terminal could prove for some interesting applications if tab control is exposed through escape sequences. Scripts that could spawn a task on a new tab could be interesting.

Offline

#4 2010-03-10 00:49:34

anonymous_user
Member
Registered: 2009-08-28
Posts: 3,059

Re: Carbon - yet another terminal emulator

Will I be able to scroll with the mouse wheel in Carbon? I can scroll in sakura, terminator, terminal, etc.

Offline

#5 2010-03-10 00:54:55

simongmzlj
Member
From: Canada
Registered: 2008-11-06
Posts: 135

Re: Carbon - yet another terminal emulator

anonymous_user wrote:

Will I be able to scroll with the mouse wheel in Carbon? I can scroll in sakura, terminator, terminal, etc.

Definitely

Offline

#6 2010-03-10 04:36:45

gogi-goji
Member
From: Canada
Registered: 2009-10-20
Posts: 73
Website

Re: Carbon - yet another terminal emulator

Would you be able to make it an option to turn scolling on or off?  I only ask because I personally prefer it if terminals don't scroll (I don't really know why), but most people seem to like the ability to scroll.  Just my two cents.  This sounds like it could shape up to be a really neat project.


My (sporadically updated) blog
My miscellaneous dotfiles

Offline

#7 2010-03-10 16:06:28

simongmzlj
Member
From: Canada
Registered: 2008-11-06
Posts: 135

Re: Carbon - yet another terminal emulator

gogi-goji wrote:

Would you be able to make it an option to turn scolling on or off?  I only ask because I personally prefer it if terminals don't scroll (I don't really know why), but most people seem to like the ability to scroll.  Just my two cents.  This sounds like it could shape up to be a really neat project.

I'm not sure what do you mean? Turn off the ability to scroll through history? Don't have the terminal scroll on new output?

Offline

#8 2010-03-11 00:12:32

gogi-goji
Member
From: Canada
Registered: 2009-10-20
Posts: 73
Website

Re: Carbon - yet another terminal emulator

Sorry, I really wasn't very clear, and I'm not positive how to say it.  I'm perfectly happy with being able to scroll through history.  That's a useful feature.  But consider this situation: You're checking out the git man files.  This gives you a page far longer than your terminal is, and you work your way down to the command you wanted to check out.  Then, when you quit, I prefer if the info stays on your screen instead of removing the git man page and going back to what you had before calling man.  Hopefully that makes sense.  If not, think the default behaviour of screen (prefered) vs. xterm.


My (sporadically updated) blog
My miscellaneous dotfiles

Offline

#9 2010-03-11 00:19:28

simongmzlj
Member
From: Canada
Registered: 2008-11-06
Posts: 135

Re: Carbon - yet another terminal emulator

I see. Thats achieved by changing the handling of certain escape sequences. Screen can do that as it can do some level of "reprogramming" of escape sequences. It will be doable if you're willing to to the configuring.

Offline

#10 2010-03-11 05:49:51

JohannesSM64
Member
From: Norway
Registered: 2009-10-11
Posts: 623
Website

Re: Carbon - yet another terminal emulator

There are 4 features I value in a terminal emulator: urgentOnBell, good utf8 lookup, xft fonts and custom colors. I don't need tabs, I have tmux for that.

Offline

#11 2010-03-11 05:53:10

simongmzlj
Member
From: Canada
Registered: 2008-11-06
Posts: 135

Re: Carbon - yet another terminal emulator

JohannesSM64 wrote:

There are 4 features I value in a terminal emulator: urgentOnBell, good utf8 lookup, xft fonts and custom colors. I don't need tabs, I have tmux for that.

The plan right now is to include support for all that. Custom colors are going to be implemented as loadable themes.

Offline

#12 2010-03-11 06:02:53

JohannesSM64
Member
From: Norway
Registered: 2009-10-11
Posts: 623
Website

Re: Carbon - yet another terminal emulator

Nice. edit: on a second thought, the loadable theme idea is cool.
I find detaching/reattaching to be redundant, tmux can already do that, and works between terminals, including outside X and over ssh.

Last edited by JohannesSM64 (2010-03-11 07:16:04)

Offline

Board footer

Powered by FluxBB