edex-ui
A cross-platform, customizable science fiction terminal emulator with advanced monitoring & touchscreen support.
Top Related Projects
🖼️ A command-line system information tool written in bash 3.2+
The personal information dashboard for your terminal
A terminal based graphical activity monitor inspired by gtop and vtop
A monitor of resources
Glances an Eye on your system. A top/htop alternative for GNU/Linux, BSD, Mac OS and Windows operating systems.
Display and control your Android device
Quick Overview
eDEX-UI is a futuristic, sci-fi inspired terminal emulator and system monitor. It's designed to look and feel like a Hollywood hacker interface, providing a visually stunning and functional desktop environment. The project is built with web technologies and runs on Electron, making it cross-platform compatible.
Pros
- Visually stunning and immersive user interface
- Customizable themes and layouts
- Includes system monitoring features alongside terminal functionality
- Cross-platform compatibility (Windows, macOS, Linux)
Cons
- Higher resource usage compared to traditional terminal emulators
- May be overwhelming for users who prefer minimalist interfaces
- Limited practical advantages over standard terminal emulators for everyday use
- Potential learning curve for users unfamiliar with its unique interface
Getting Started
To get started with eDEX-UI:
- Visit the releases page on GitHub.
- Download the appropriate version for your operating system.
- Install the application:
- On Windows: Run the
.exe
installer - On macOS: Open the
.dmg
file and drag the app to Applications - On Linux: Use the
.AppImage
file or install via your package manager if available
- On Windows: Run the
- Launch eDEX-UI and enjoy your futuristic terminal experience!
Note: eDEX-UI is not a code library, so there are no code examples to provide. The application is used as a standalone terminal emulator and system monitor.
Competitor Comparisons
🖼️ A command-line system information tool written in bash 3.2+
Pros of neofetch
- Lightweight and fast, requiring minimal system resources
- Highly customizable with extensive configuration options
- Supports a wide range of operating systems and distributions
Cons of neofetch
- Limited visual appeal compared to edex-ui's graphical interface
- Lacks real-time system monitoring capabilities
- Primarily focused on system information display rather than interactive features
Code Comparison
neofetch:
#!/usr/bin/env bash
# Neofetch config file
print_info() {
info title
info underline
}
edex-ui:
const pty = require("node-pty");
const os = require("os");
let shell = process.env.SHELL || "bash";
let term = pty.spawn(shell, [], {
name: "xterm-color",
cols: 80,
rows: 30,
cwd: process.env.HOME,
env: process.env
});
While neofetch is a simple bash script for displaying system information, edex-ui uses Node.js to create a more complex, interactive terminal environment with advanced features like a virtual keyboard and system monitoring tools. neofetch is ideal for quick system information retrieval, while edex-ui provides a comprehensive, visually appealing interface for system interaction and monitoring.
The personal information dashboard for your terminal
Pros of WTF
- More lightweight and focused on terminal-based dashboards
- Highly customizable with a wide range of built-in modules
- Easier to set up and configure for specific use cases
Cons of WTF
- Less visually appealing compared to eDEX-UI's sci-fi interface
- Limited to terminal environments, lacking the full GUI experience
- May require more manual configuration for complex setups
Code Comparison
WTF configuration example:
wtf:
colors:
border:
focusable: darkslateblue
focused: orange
normal: gray
grid:
columns: [40, 40]
rows: [13, 13, 4]
refreshInterval: 1
eDEX-UI keyboard configuration:
{
"keyboard": {
"layout": "en-US",
"keyboardMode": "electron",
"customKeyboardMode": false
}
}
Summary
WTF is a terminal-based dashboard utility focused on customization and modularity, while eDEX-UI is a more visually striking, sci-fi-inspired system monitor and terminal emulator. WTF offers greater flexibility for specific use cases, but eDEX-UI provides a more immersive and graphically rich experience. The choice between the two depends on whether you prioritize customization and lightweight functionality or a more visually engaging interface.
A terminal based graphical activity monitor inspired by gtop and vtop
Pros of gotop
- Lightweight and resource-efficient
- Simple and focused on system monitoring
- Easy to install and use
Cons of gotop
- Limited visual appeal compared to edex-ui's sci-fi interface
- Fewer features and customization options
- Less immersive user experience
Code Comparison
edex-ui (JavaScript):
const si = require("systeminformation");
const os = require("os");
si.cpu().then(data => {
console.log(data);
});
gotop (Go):
package main
import (
"github.com/shirou/gopsutil/cpu"
"fmt"
)
func main() {
cpuInfo, _ := cpu.Info()
fmt.Println(cpuInfo)
}
Summary
edex-ui is a feature-rich, visually stunning system monitor with a sci-fi-inspired interface. It offers an immersive experience but may be resource-intensive. gotop, on the other hand, is a lightweight, terminal-based system monitor focused on simplicity and efficiency. It provides essential system information without the bells and whistles of edex-ui.
While edex-ui is built with JavaScript and offers extensive customization, gotop is written in Go and prioritizes performance. edex-ui is ideal for users who want a visually appealing and feature-packed monitoring experience, while gotop is better suited for those who prefer a minimalist, resource-efficient approach to system monitoring.
A monitor of resources
Pros of btop
- Lightweight and resource-efficient, suitable for systems with limited resources
- Customizable interface with various color schemes and layout options
- Supports a wide range of operating systems, including Linux, macOS, and FreeBSD
Cons of btop
- Less visually striking compared to edex-ui's futuristic interface
- Lacks some advanced features like network monitoring and file system exploration
- Command-line interface may be less intuitive for some users
Code Comparison
edex-ui (JavaScript):
const pty = require("node-pty");
const os = require("os");
var shell = os.platform() === "win32" ? "powershell.exe" : "bash";
var ptyProcess = pty.spawn(shell, [], {
name: "xterm-color",
cols: 80,
rows: 30,
cwd: process.env.HOME,
env: process.env
});
btop (C++):
void Input::init() {
in_file = fopen("/dev/tty", "r");
if (in_file == NULL) {
throw std::runtime_error("Failed to open /dev/tty for input");
}
tcgetattr(fileno(in_file), &oldt);
newt = oldt;
newt.c_lflag &= ~(ICANON | ECHO);
tcsetattr(fileno(in_file), TCSANOW, &newt);
}
The code snippets demonstrate the different approaches and languages used in each project. edex-ui uses JavaScript with Node.js modules for terminal emulation, while btop employs C++ for low-level system interactions and input handling.
Glances an Eye on your system. A top/htop alternative for GNU/Linux, BSD, Mac OS and Windows operating systems.
Pros of Glances
- Lightweight and efficient, consuming fewer system resources
- Provides a comprehensive overview of system metrics in a compact display
- Cross-platform compatibility with support for various operating systems
Cons of Glances
- Less visually appealing interface compared to edex-ui's futuristic design
- Limited customization options for the user interface
- Lacks the immersive sci-fi experience offered by edex-ui
Code Comparison
Glances (Python):
def get_stats():
stats = {}
stats['cpu'] = psutil.cpu_percent(interval=1)
stats['memory'] = psutil.virtual_memory().percent
stats['disk'] = psutil.disk_usage('/').percent
return stats
edex-ui (JavaScript):
const si = require("systeminformation");
async function getStats() {
const cpu = await si.currentLoad();
const mem = await si.mem();
const disk = await si.fsSize();
return { cpu: cpu.currentLoad, memory: mem.used / mem.total * 100, disk: disk[0].use };
}
Both projects aim to provide system monitoring capabilities, but they differ in their approach and target audience. Glances focuses on efficiency and comprehensive data display, while edex-ui prioritizes visual aesthetics and an immersive user experience. The code snippets demonstrate the different languages and libraries used by each project to gather system information.
Display and control your Android device
Pros of scrcpy
- Lightweight and focused on Android screen mirroring and control
- Cross-platform support (Windows, macOS, Linux)
- Low latency and high performance
Cons of scrcpy
- Limited to Android devices only
- Lacks the comprehensive system monitoring features of edex-ui
- Command-line interface may be less user-friendly for some users
Code Comparison
scrcpy (C):
static void screen_render(struct screen *screen)
{
SDL_RenderClear(screen->renderer);
if (screen->texture) {
SDL_RenderCopy(screen->renderer, screen->texture, NULL, &screen->rect);
}
SDL_RenderPresent(screen->renderer);
}
edex-ui (JavaScript):
renderFrame() {
this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);
this.ctx.drawImage(this.imageData, 0, 0, this.canvas.width, this.canvas.height);
window.requestAnimationFrame(() => {
this.renderFrame();
});
}
Both projects use rendering techniques, but scrcpy focuses on efficient Android screen mirroring, while edex-ui creates a more complex, customizable interface. scrcpy is written in C for performance, whereas edex-ui uses JavaScript for cross-platform compatibility and easier customization.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
(Project archived oct. 18th 2021)
eDEX-UI is a fullscreen, cross-platform terminal emulator and system monitor that looks and feels like a sci-fi computer interface.
Heavily inspired from the TRON Legacy movie effects (especially the Board Room sequence), the eDEX-UI project was originally meant to be "DEX-UI with less « art » and more « distributable software »".
While keeping a futuristic look and feel, it strives to maintain a certain level of functionality and to be usable in real-life scenarios, with the larger goal of bringing science-fiction UXs to the mainstream.
It might or might not be a joke taken too seriously.
Jump to:
Features â Screenshots â Questions & Answers â Download â Featured In â Contributor Instructions â Credits
Sponsor
Want to help support my open-source experiments and learn some cool JavaScript tricks at the same time?
Click the banner below and sign up to Bytes, the only newsletter cool enough to be recommended by eDEX-UI.
Features
- Fully featured terminal emulator with tabs, colors, mouse events, and support for
curses
andcurses
-like applications. - Real-time system (CPU, RAM, swap, processes) and network (GeoIP, active connections, transfer rates) monitoring.
- Full support for touch-enabled displays, including an on-screen keyboard.
- Directory viewer that follows the CWD (current working directory) of the terminal.
- Advanced customization using themes, on-screen keyboard layouts, CSS injections. See the wiki for more info.
- Optional sound effects made by a talented sound designer for maximum hollywood hacking vibe.
Screenshots
neofetch on eDEX-UI 2.2 with the default "tron" theme & QWERTY keyboard
Checking out available themes in eDEX's config dir with ranger
on eDEX-UI 2.2 with the "blade" theme
cmatrix on eDEX-UI 2.2 with the experimental "tron-disrupted" theme, and the user-contributed DVORAK keyboard
Editing eDEX-UI source code with nvim
on eDEX-UI 2.2 with the custom horizon-full
theme
Q&A
How do I get it?
Click on the little badges under the eDEX logo at the top of this page, or go to the Releases tab, or download it through one of the available repositories (Homebrew, AUR...).
Public release binaries are unsigned (why). On Linux, you will need to chmod +x
the AppImage file in order to run it.
I have a problem!
Search through the Issues to see if yours has already been reported. If you're confident it hasn't been reported yet, feel free to open up a new one. If you see your issue and it's been closed, it probably means that the fix for it will ship in the next version, and you'll have to wait a bit.
Can you disable the keyboard/the filesystem display?
You can't disable them (yet) but you can hide them. See the tron-notype
theme.
Why is the file browser saying that "Tracking Failed"? (Windows only)
On Linux and macOS, eDEX tracks where you're going in your terminal tab to display the content of the current folder on-screen. Sadly, this is technically impossible to do on Windows right now, so the file browser reverts back to a "detached" mode. You can still use it to browse files & directories and click on files to input their path in the terminal.
Can this run on a Raspberry Pi / ARM device?
We provide prebuilt arm64 builds. For other platforms, see this issue comment, and the thread on issue #818.
Is this repo actively maintained?
No, after a 3 years run, this project has been archived. See the announcement.
How did you make this?
Glad you're interested! See #272.
This is so cool.
Thanks! If you feel like it, you can follow me on Twitter to hear about new stuff I'm making.
Featured in...
- Linux Uprising Blog
- My post on r/unixporn
- Korben article (in french)
- Hacker News
- This tweet that made me smile
- BoingBoing article - Apparently i'm a "French hacker"
- OReilly 4 short links
- Hackaday
- Developpez.com (another french link)
- GitHub Blog's Release Radar November 2018
- opensource.com Productive Tools for 2019
- O'Reilly 4 short links (again)
- LinuxLinks
- Linux For Everyone (Youtube)
- BestOfJS Rising Stars 2020
- The Geek Freaks (Youtube/German)
- JSNation Open Source Awards 2021 (Nominee - Fun Side Project of the Year)
Useful commands for the nerds
IMPORTANT NOTE: the following instructions are meant for running eDEX from the latest unoptimized, unreleased, development version. If you'd like to get stable software instead, refer to these instructions.
Starting from source:
on *nix systems (You'll need the Xcode command line tools on macOS):
- clone the repository
npm run install-linux
npm run start
on Windows:
- start cmd or powershell as administrator
- clone the repository
npm run install-windows
npm run start
Building
Note: Due to native modules, you can only build targets for the host OS you are using.
npm install
(NOTinstall-linux
orinstall-windows
)npm run build-linux
orbuild-windows
orbuild-darwin
The script will minify the source code, recompile native dependencies and create distributable assets in the dist
folder.
Getting the bleeding edge
If you're interested in running the latest in-development version but don't want to compile source code yourself, you can can get pre-built nightly binaries on GitHub Actions: click the latest commits, and download the artifacts bundle for your OS.
Credits
eDEX-UI's source code was primarily written by me, Squared. If you want to get in touch with me or find other projects I'm involved in, check out my website.
PixelyIon helped me get started with Windows compatibility and offered some precious advice when I started to work on this project seriously.
IceWolf composed the sound effects on v2.1.x and above. He makes really cool stuff, check out his music!
Thanks
Of course, eDEX would never have existed if I hadn't stumbled upon the amazing work of Seena on r/unixporn.
This project uses a bunch of open-source libraries, frameworks and tools, see the full dependency graph.
I want to namely thank the developers behind xterm.js, systeminformation and SmoothieCharts.
Huge thanks to Rob "Arscan" Scanlon for making the fantastic ENCOM Globe, also inspired by the TRON: Legacy movie, and distributing it freely. His work really puts the icing on the cake.
Licensing
Licensed under the GPLv3.0.
Top Related Projects
🖼️ A command-line system information tool written in bash 3.2+
The personal information dashboard for your terminal
A terminal based graphical activity monitor inspired by gtop and vtop
A monitor of resources
Glances an Eye on your system. A top/htop alternative for GNU/Linux, BSD, Mac OS and Windows operating systems.
Display and control your Android device
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot