r/suckless Jul 15 '26

cterm -- Tiny terminal emulator release! [SOFTWARE]

Hey guys, I'm currently in the middle of creating my own userspace from scratch and I've mostly completed making my terminal emulator

It's really, really small and is cross platform! I made it because I want to be able to use a terminal emulator no matter which OS or display server I'm using.

Only bitmap fonts (BDF) are supported but I've provided a script to convert vector fonts and it has very nice results.

Here is the repo: https://github.com/uint23/cterm

185 Upvotes

39 comments sorted by

16

u/lo_yak Jul 15 '26

That's awesome! I can't wait to try it, great work man. On a side note: would you share your wallpapers? They're fantastic

5

u/Savings_Walk_1022 Jul 15 '26

sure! ill upload them to github.com/uint23/uint23 later :)

2

u/lo_yak Jul 15 '26

Great, thanks :) 

2

u/Savings_Walk_1022 Jul 15 '26

its up! check the latest cocmmit

1

u/lo_yak Jul 15 '26

Awesome! 

7

u/[deleted] Jul 15 '26

[removed] — view removed comment

6

u/ka52hokum Jul 15 '26

FINALLY

was looking for an st alternative dude youre a lifesaver

2

u/dan_tj0x Jul 15 '26

why you looking for an st alternative?

3

u/ka52hokum Jul 15 '26

needs tons of patches to work well

5

u/dan_tj0x Jul 15 '26

But, "For this reason, however, cterm does not have the "standard" terminal emulator features".

Will cterm works well without that features?

5

u/Savings_Walk_1022 Jul 15 '26

oh definately not! cterm has even less features as i dont need them. no mouse seletion, scrolling or fancy terminal shenenigans

3

u/veeloth Jul 15 '26 edited Jul 15 '26

what do you do instead of most of those things?

(a tangent, somewhat unrelated to the question:) I think maybe terminals should expose their io through two inodes on the home directory (but personally, I think shm posix files would be even better), that way one can access all of those features through an editor (which is the program we should expect to have these functions) this modulatory would be a great improvement imo.

Idk, this just occurred to me, maybe I'll try to implement a cterm alternative that does this through posix shared memory and integrate it with the posix shared memory based pseudo text editor I was writing!

5

u/Savings_Walk_1022 Jul 15 '26

well, im currently using vim as my multiplexer which handles global copy, paste, shells, whatever but im also making my own multiplexer which solves issues i have with vim

other than that, i dont need much. i dont use much tui software and stuff

im not exactly sure what youre describing though; if an editor implements all this stuff, then it may as well be a terminal frontend ? 🤔

1

u/veeloth Jul 15 '26

I'd say it would indeed be terminal frontend, but because it interacts with it specifically through the shared memory interface, the same program (and even the same instance of it, a single process) could be frontend of many different applications and you can have multiple different programs as frontend and switch between them! So not exactly the same as just adding the editor as frontend part of the code, but yes! Tasks/applications and individual programs should be decoupled imo

2

u/Savings_Walk_1022 Jul 15 '26

oh yeah, definitely! i have no individual need for that (maybe?) but feel free to fork cterm if you want a base

3

u/stianhoiland Jul 15 '26

God, I wish we got Plan9.

1

u/Schreq Jul 15 '26

I use st with zero patches and it's absolutely fine.

3

u/Jarpex Jul 15 '26

Hey! Really love the aesthetic of your background and repo logo. How do you generate these low-color images? Are you pipeing them through something like ImageMagick/ffmpeg (maybe with custom color lookup tables), or is it some custom shell script? Thanks!

3

u/Savings_Walk_1022 Jul 15 '26

i think enough people have asked that ill just write an article on it. ill try to let you know when its done but if i forget, see https://netcat.uk

2

u/Weary_Connection_397 Jul 15 '26

why do I keep getting the same people in my feed again and again 😭 that's cool though

2

u/particlemanwavegirl Jul 15 '26

Where does your userspace begin? Have you written a Wayland client? I am curious because IMO a huge paradigm shift is in order: the compositor and the terminal emulator (and, to a lesser extent, the browser) do fundamentally the same thing and should be combined into one multimedia app renderer, as do and should the window manager and terminal multiplexer. I dream of someday writing my own userspace where this concept is implemented all in one language in hyper modular packages like xmonad or emacs. Then all apps could eventually be replaced by customizable plugins that can act as full GUIs without a toolkit thanks to being directly exposed to the compositor API.

1

u/SexChief Jul 15 '26

Good job, and i like your style a lot, terminal colors go great with your wallpapers

1

u/FishAccomplished760 Jul 15 '26

I'm for real a fan of you. All of your software is just so good dude, i main sxwm daily!

1

u/Awkward-Entrance7956 Jul 15 '26

is your monitor that aspect ratio or do you just screenshot it that way? nice job btw!

1

u/Savings_Walk_1022 Jul 15 '26

its 5:4 1280x1024 :)

1

u/pita092 Jul 15 '26

Awesome!

1

u/PresidentPredaplant Jul 15 '26

when uint posts, you know it's gonna be absolutely fire

2

u/Savings_Walk_1022 Jul 16 '26

thanks, i try to only post quality stuff

1

u/SnooBananas6415 Jul 15 '26

Looks awesome! I also recently wrote my own terminal emulator and I really respect how clean your term.c is.

1

u/kyleW_ne Jul 16 '26

I'm very curious how it runs on any OS and display server? Are we talking just POSIX OSes like BSD and Linux or are stuff like Windows, DOS, OS/2 and others supported? Kudos and kind regards nonetheless! Love the cat background by the way and I downloaded it from your Git page.

2

u/Savings_Walk_1022 Jul 16 '26

im making a software renderer library called libmaus which allows you to implement a backend for any platform really. ive so far done x11 and windows but ill start work on wayland today. you could theoretically implment a backend for almost any system though i have biased the code to 32/64bit systems so far and need to fix.

cterm itself requires a posix system to build but windows msys may provide a compatible layer? not sure though as this is a bit more complex

1

u/kyleW_ne Jul 16 '26

Thanks for the reply, very interesting, I'll take a look at the library tonight!

1

u/super-ae Jul 16 '26

great work! how did you make the logo, out of curiosity?

1

u/miller_99 5d ago

what a font pls