Show HN: A cross-platform terminal emulator written in Java
20 comments
·July 1, 2025mdaniel
I've heard of this %PATH% thing which allows the user to control where they place executables https://github.com/sebkur/forceterm/blob/release-1.1.0/src/m...
sebkur
hmm, I agree, this is pretty hard-coded. It should work for a default installation of git-bash, but of course, the user could have chosen a different location at install time.
I'm not even sure how popular git bash is on Windows, I vaguely remember cygwin might be something many user that care to use a terminal might have installed?
alganet
Trivia:
Windows also has %PATHEXT%. It's a set of executable extensions like bat, exe, com, cmd.
It is what allows calling `program` and reaching `program.exe`.
RonanSoleste
Also not very platform independent
sebkur
Well, it does check if we are on Windows just one line before: https://github.com/sebkur/forceterm/blob/release-1.1.0/src/m...
TheTrueScotsman
[dead]
0x445442
What does this buy over all the other terminal emulators? I see why the component is in IDEs so the developer doesn't need to switch apps to get to the terminal. Now a full fledged JVM shell that supports most of the commands we come to expect in a shell and also has the JVM and it's whole ecosystem at its fingertips, that might be something.
sebkur
I'm breeding over the same thing. What can we do with this now that would't be so easy within other ecosystems that terminal emulators are typically written in (usually C I guess)?
jarym
Nice work! Code looks pretty clean but what motivated you to write it?
sebkur
I found the jediterm library and noticed people asking for releases but the team didn't seem interested (see https://github.com/JetBrains/jediterm/issues/299 and https://github.com/JetBrains/jediterm/issues/303). I noticed there are even working examples in the source tree though for a standalone terminal application (https://github.com/JetBrains/jediterm/tree/master/JediTerm/s...) so I thought "let's just package that up into binaries, maybe add tabs to make it convenient to use".
sebkur
One thing I guess this app can do is help track down or surface more still existing bugs in the jediterm library when people start using a jediterm based terminal in their everyday life instead of just while using IntelliJ or Android Studio.
roscas
My main reason to use or not use a terminal is to scroll with mouse wheel and change the font size. No fancy gpu acceleration or nice profiles to open servers. A good host with category tree view is a plus, like MobaXterm has. But Terminator does what I need. My pick.
sebkur
Mouse wheel is working on my Linux box. Is it not on yours? what kind of system?
I guess for now there's not much reason to prefer this terminal over any other. I guess we'd need to add something unique, though I'm not sure yet what that might be.
sebkur
The performance of jediterm seemed quite impressive though when I made a quick smoke test with a command such as `time tree ~` in comparison to my regular xfce terminal at lest.
zerr
Why Swing instead of JavaFX?
mdaniel
I believe OP's project is just doing some lightweight "make it executable" bits but the actual JediTerm that it is using for the "terminal" part is, itself, on Swing/AWT https://github.com/JetBrains/jediterm/blob/4cef2840aed5ec1d6...
Although, interestingly, while digging up that link I noticed the JediTermMain that for sure makes it plausibly executable so I dunno if OP's project is actually just "for funzies" or if there's otherwise something added https://github.com/JetBrains/jediterm/blob/4cef2840aed5ec1d6...
sebkur
yeah, the jediterm library provides a Swing component (JediTermWidget extends JPanel) so it seemed natural to create an app around it that is also Swing based. I guess it's possible to integrate Swing components into JavaFX apps as well, so that should work too.
You're right, I'm not doing much except adding some build logic for creating executables really. I also added tabbing and light / dark mode. I guess we could also at least add more options that are readily available for the jediterm widget (https://github.com/JetBrains/jediterm/blob/4cef2840aed5ec1d6...)
wetpaws
[dead]
It's based on the jediterm library developed for IDEs, but it can also be put to work as a standalone terminal emulator with tabs. The library has been around for more than 10 years, but I don't think anyone made a terminal emulator app from it?