Lanterna
alacritty
Our great sponsors
Lanterna | alacritty | |
---|---|---|
19 | 352 | |
2,172 | 52,104 | |
- | 2.4% | |
7.2 | 9.3 | |
18 days ago | 7 days ago | |
Java | Rust | |
GNU Lesser General Public License v3.0 only | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Lanterna
-
Textual Web: TUIs for the Web
I wrote a TUI before for work, entirely of my own volition and for my own near-exclusive consumption (it was theoretically for anyone, but I'm the only person who would've had a reason to look at it - we were a fairly silo'd dev shop).
This is what made me pick TUI over a web UI:
* no web stack, period. no client/server. no js or html. this simplified the problem dramatically. also, no additional services to babysit.
* no browser - no certificates, security, auth, etc. It's just unix permissions and ssh.
* there's something comforting about the constraints of just ASCII/ANSI and curses. No bikeshedding over border widths or radii when it's just you picking among a few characters for the shape. just having less decisions to make speeds things up and helps you focus on what you actually want the UI to be able to do.
Obviously if your app is just calling APIs anyway, that might be negate some of these bullets about no additional services to babysit etc. In this case, it was running an internal infra app that directly connected to a pg db.
And what made me pick it over just having a CLI:
* discoverability - it was a complicated app and while it was all technically exposed via cli flags, having a GUI made it a lot easier to figure out what the right incantation is.
* richer communication medium that's back-and-forth instead of unidirectional. The TUI is able to fetch a list of e.g. valid IDs and let you pick them with a check-list, instead of you having to go query the db yourself and type them in.
I consider it one of my greatest victories that my boss was able to use the TUI to recover from an incident without needing to page me while I was on holiday, and he said he barely had to read the docs and felt confident he was getting it right the first time. "I did it while sipping my coffee."
I used https://github.com/mabe02/lanterna - would recommend. They even have a Swing-based emulation mode for easy development iteration running it from intelliJ.
-
Textual: Rapid Application Development Framework for Python
This looks really cool.
In the past I used lanterna (https://github.com/mabe02/lanterna/tree/master) to develop a text UI for a critical process at the trading firm I worked at. It was essentially a process that would take updated market data and handle things that changed between the last trading session and today - like symbol renames (PCLN to BKNG), changes to market cap that make it change what "category" it fell into (they were based on market cap and volatility measures etc). Things of that nature, that the realtime system didn't handle but happened too often or were too hairy for us to just handle manually.
The system had a desktop UI component that was oriented towards use by our trading staff. We didn't really have notion of a "server UI" and the server was headless.
Nobody at our firm was a frontend developer, just backend, systems and data programmers who occasionally dabbled in frontend. So web UIs were very simplistic or highly specific to their use-case, we had no shared tooling.
In 2023 with things like create-react-app and whatever next.js does, I probably would've opted for one of those. I could've made another desktop app but I wanted to be able to easily get to this from a shitty ssh connection over tethered 4g when I was on-call. So X11 forwarding and RDP were out. So i looked around for a TUI-builder in the project's language, Java.
What i really liked about Lanterna was that it had a Swing-based implementation which meant I could easily run it from IntelliJ, and that would let me iterate rapidly, and then in production I could run it in a terminal via SSH directly on the machine the server was on (which had certain advantages).
I'll keep an eye on this to see if I can think of anything neat to build on it. I still generally don't like web apps because they feel like they take a lot of effort to get something compared to a functionally-equivalent product built in something non-browser-based like a TUI or desktop GUI.
-
What options are there for making GUIs and other visual programs using java?
Just to differ what others already mentioned: Lanterna. Pretty retro GUIs just for fun.
-
Library like Python Rich
Lanterna https://github.com/mabe02/lanterna Has examples for most of the things you're looking for (see links in https://github.com/mabe02/lanterna/blob/master/docs/contents.md)
- Nimwave – build TUIs for the terminal, web, and desktop
-
Aquifer: GUI generator for command line apps
There is lanterna for that.
-
Textual in Clojure?
You can use https://github.com/mabe02/lanterna
- Charm – tools to make the command line glamorous
-
Lanterna VS FINAL CUT - a user suggested alternative
2 projects | 1 Jan 2022
-
newt alternatives - S-Lang, termbox, and Lanterna
4 projects | 30 Dec 2021
alacritty
-
Level Up Your Dev Workflow: Conquer Web Development with a Blazing Fast Neovim Setup (Part 1)
alacritty (Linux, Macos & Windows)
-
Neovide – a simple, no-nonsense, cross-platform GUI for Neovim
> Ligatures: ok, nice, possible in terms too (hopefully Alacritty one day)
I wouldn't hold my breath. Seems like its getting the iPad calculator treatment[0]. Which is to say rather than ship something working that can be improved, they're leaving a UX void.
-
I Just Wanted Emacs to Look Nice – Using 24-Bit Color in Terminals
IME, this is like the golden age of terminal apps in general and macOS-compatible ones in particular. There are several really good terminals for macOS:
[iTerm2 app](https://iterm2.com/)
[Kitty terminal](https://sw.kovidgoyal.net/kitty/)
[WezTerm terminal](https://wezfurlong.org/wezterm/index.html)
[Alacritty](https://github.com/alacritty/alacritty)
My daily driver is WezTerm…
- Runs on Linux, macOS, Windows 10 and FreeBSD
- [Multiplex terminal panes, tabs and windows on local and remote hosts, with native mouse and scrollback](https://wezfurlong.org/wezterm/multiplexing.html)
- [Ligatures](https://github.com/tonsky/FiraCode#fira-code-monospaced-font...), Color Emoji and font fallback, with true color and [dynamic color schemes](https://wezfurlong.org/wezterm/config/appearance.html#colors).
- [Hyperlinks](https://wezfurlong.org/wezterm/hyperlinks.html)
- [Searchable Scrollback](https://wezfurlong.org/wezterm/scrollback.html) (use mouse wheel and `Shift-PageUp` and `Shift PageDown` to navigate, Ctrl-Shift-F to activate search mode)
- xterm style selection of text with mouse; paste selection via `Shift-Insert` (bracketed paste is supported!)
- SGR style mouse reporting (works in vim and tmux)
- Render underline, double-underline, italic, bold, strikethrough (most other terminal emulators do not support as many render attributes)
- Configuration via a [configuration file](https://wezfurlong.org/wezterm/config/files.html) with hot reloading
- Multiple Windows (Hotkey: `Super-N`)
- Splits/Panes (Split horizontally/vertically: `Ctrl-Shift-Alt-%` and `Ctrl-Shift-Alt-"`, move between panes: `Ctrl-Shift-ArrowKey`)
- Tabs (Hotkey: `Super-T`, next/prev: `Super-Shift-[` and `Super-Shift-]`, go-to: `Super-[1-9]`)
- [SSH client with native tabs](https://wezfurlong.org/wezterm/ssh.html)
- [Connect to serial ports for embedded/Arduino work](https://wezfurlong.org/wezterm/serial.html)
- Connect to a local multiplexer server over unix domain sockets
- Connect to a remote multiplexer using SSH or TLS over TCP/IP
- iTerm2 compatible image protocol support, and built-in [imgcat command](https://wezfurlong.org/wezterm/imgcat.html)
- Kitty graphics support
- Sixel graphics support (experimental: starting in `20200620-160318-e00b076c`)
-
alacritty-themes not working any more!!!
# We use Alacritty's default Linux config directory as our storage location here. mkdir -p ~/.config/alacritty/themes git clone https://github.com/alacritty/alacritty-theme ~/.config/alacritty/themes
-
Pimp your CLI
A decent terminal application (i.e: iterm2, alacritty, etc.)
-
what terminal emulator do you use and why?
For this reason, and because I think the Zellij project is interesting, I currently use a combination of Alacritty and Zellij, as I consider the risk of OSC52 in my use case to be relatively low.
-
How to install Alacritty on X11 without building from source?
It's not. You can see that the PPA is published by Antoine Latter, whose name is not in the Alacritty contributors list.
So I want to install a terminal emulator called Alacritty on Ubuntu 20.04 LTS. Their github release page is mostly showing wayland based versions.
-
Lightweight dev tools.
I did find that XFCE’s terminal emulator was pretty slow, so I installed Alacritty - a lightweight terminal written in Rust.
-
Which terminal do you use? I don't like Warp
I personally love using Alacritty. Super fast, and no bloat. Takes a little bit of setup such as setting up a Font if you want icons to appear. Kitty is supposed to be really good, but i've never used it before.
What are some alternatives?
kitty - Cross-platform, fast, feature-rich, GPU based terminal
wezterm - A GPU-accelerated cross-platform terminal emulator and multiplexer written by @wez and implemented in Rust
Warp - Warp is a modern, Rust-based terminal with AI built in so you and your team can build great software, faster.
starship - ☄🌌️ The minimal, blazing-fast, and infinitely customizable prompt for any shell!
FiraCode - Free monospaced font with programming ligatures
neofetch - 🖼️ A command-line system information tool written in bash 3.2+
st - build of the suckless simple terminal with patches for alpha, font2, copyurl, openclipboard, invert, appsync, xresources, scrollback, w3m, keyboard select, boxdraw
ohmyzsh - 🙃 A delightful community-driven (with 2,200+ contributors) framework for managing your zsh configuration. Includes 300+ optional plugins (rails, git, macOS, hub, docker, homebrew, node, php, python, etc), 140+ themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.
foot - Unofficial Mirror: A fast, lightweight and minimalistic Wayland terminal emulator
neovide - No Nonsense Neovim Client in Rust
zsh-autocomplete - 🤖 Real-time type-ahead completion for Zsh. Asynchronous find-as-you-type autocompletion.
iTerm2-Color-Schemes - Over 250 terminal color schemes/themes for iTerm/iTerm2. Includes ports to Terminal, Konsole, PuTTY, Xresources, XRDB, Remmina, Termite, XFCE, Tilda, FreeBSD VT, Terminator, Kitty, MobaXterm, LXTerminal, Microsoft's Windows Terminal, Visual Studio, Alacritty