All Projects → JLChnToZ → uniterm

JLChnToZ / uniterm

Licence: MIT license
🚧Universal Terminal Emulator, might be a great toy terminal front-end for geeks.

Programming Languages

typescript
32286 projects
javascript
184084 projects - #8 most used programming language
CSS
56736 projects
HTML
75241 projects

Projects that are alternatives of or similar to uniterm

Lxrunoffline
A full-featured utility for managing Windows Subsystem for Linux (WSL)
Stars: ✭ 3,005 (+13559.09%)
Mutual labels:  wsl, windows-subsystem-linux, bash-on-windows
Xterm.js
A terminal for the web
Stars: ✭ 12,019 (+54531.82%)
Mutual labels:  tty, pty, terminal-emulators
Extraterm
The swiss army chainsaw of terminal emulators
Stars: ✭ 1,922 (+8636.36%)
Mutual labels:  terminal-emulators, wsl, windows-subsystem-linux
Upterm
A terminal emulator for the 21st century.
Stars: ✭ 19,441 (+88268.18%)
Mutual labels:  tty, pty, terminal-emulators
Archwsl
ArchLinux based WSL Distribution. Supports multiple install.
Stars: ✭ 3,667 (+16568.18%)
Mutual labels:  wsl, windows-subsystem-linux
Wsl Dotfiles
My dotfiles for running an i3-based environment within the Windows Subsystem for Linux (WSL).
Stars: ✭ 211 (+859.09%)
Mutual labels:  wsl, windows-subsystem-linux
local-echo
A local-echo controller for xterm.js
Stars: ✭ 96 (+336.36%)
Mutual labels:  terminal-emulators, xterm-js
Wslu
A collection of utilities for Windows 10 Linux Subsystems
Stars: ✭ 2,020 (+9081.82%)
Mutual labels:  wsl, windows-subsystem-linux
Ttyd
Share your terminal over the web
Stars: ✭ 4,030 (+18218.18%)
Mutual labels:  tty, terminal-emulators
Awesome Terminals
Terminal Emulators
Stars: ✭ 80 (+263.64%)
Mutual labels:  tty, terminal-emulators
networker
🔧 A simple CLI tool for various networking operations
Stars: ✭ 20 (-9.09%)
Mutual labels:  tty, pty
Terminalizer
🦄 Record your terminal and generate animated gif images or share a web player
Stars: ✭ 12,165 (+55195.45%)
Mutual labels:  tty, pty
penelope
Penelope Shell Handler
Stars: ✭ 291 (+1222.73%)
Mutual labels:  tty, pty
Alpinewsl
Alpine Linux based WSL distribution. Supports multi-install. Lightest WSL distribution.
Stars: ✭ 203 (+822.73%)
Mutual labels:  wsl, windows-subsystem-linux
Wslinstall
Install any GNU/Linux userspace in WSL
Stars: ✭ 178 (+709.09%)
Mutual labels:  wsl, windows-subsystem-linux
x-terminal
An xterm based Atom plugin for providing terminals inside your Atom workspace.
Stars: ✭ 34 (+54.55%)
Mutual labels:  tty, pty
Wslreverse
Experiments with hidden COM interface and LxBus IPC mechanism in WSL
Stars: ✭ 47 (+113.64%)
Mutual labels:  wsl, windows-subsystem-linux
Wsl Guideline
WSL(Windows Subsystem for Linux) Guideline / WSL 使用指南
Stars: ✭ 122 (+454.55%)
Mutual labels:  wsl, windows-subsystem-linux
Galacritty
WIP GTK terminal emulator based on Alacritty
Stars: ✭ 136 (+518.18%)
Mutual labels:  tty, terminal-emulators
sexpect
Expect for Shells
Stars: ✭ 99 (+350%)
Mutual labels:  tty, pty

Uniterm2

An evolution of Uniterm pseudo terminal emulator.

Preview

Difference between Uniterm2 and old Uniterm:

  • Uniterm2 is based on xterm.js and the old one is Google's hterm.
  • Uniterm2 has removed built-in MinSH component which exists in the old one.
  • Uniterm2 is written with TypeScript and the old one is plain JavaScript.
  • Uniterm2 supports dropping files that the old one does not.
  • Uniterm2 built-in supports powerline decorations (via all-in-one patched Mononoki font with Nerd Fonts).
  • Uniterm2 has a simple modding mechanism that does not exists in the old one. (see modding section below for details)
  • Uniterm2 can launch a shell with privileged permission (administrator) if the user account you logging in permits you to do so. (Added after v0.12)

The features that exists in both Uniterm in Uniterm2:

  • Cross platform pseudo terminal emulator
  • Full Windows Subsystem for Linux intergration
  • Tabs!
  • Open source!

Building

  1. Clone this repository and get into it.
$ git clone https://github.com/JLChnToZ/uniterm.git
$ cd uniterm
  1. Install dependencies. (Assume you have installed Node.js, Yarn and other requirements for building Electron/Node.js native modules)
$ yarn
  1. Build and package it.
$ yarn package
  1. You will find your fresh build inside dist/ folder.

Or if you are lazy to do it/does not meet the requirements to build it, but you want to use/try it, you may go to releases and download the prebuilt binaries. (Currently Windows is available only, sorry for other platforms)

Using

Mainly, when you double-clicked the entry file (uniterm.exe for Windows, uniterm.app for OSX and uniterm for Linux), it launches the default shell of your system (cmd, bash, etc.), but if you want more control on how it launches (for example you want to launch a different shell, start from a specified directory, pass more environment variables, etc.), you can pass arguments to it (via any external shell or even the shell opened inside Uniterm).

Here is the command-line usage, that is, what you will get when you pass --help:

Usage: uniterm [options] [--] [shellargs..]

Options:
  --cwd, -c         Working directory to start shell.                   [string]
  --env, -e         Add/modify environment variable passed into the shell.
                                                                         [array]
  --new-window, -n  Open the shell in a new window                     [boolean]
  --pause, -p       Pauses after shell/program exits                   [boolean]
  --config          Opens the config file                              [boolean]
  --reset-config    Resets the config file                             [boolean]
  --version         Show version number                                [boolean]
  --help            Show help                                          [boolean]

Also, if you pass --show-hidden together with --help, you will find out more options (which are not very necessary for normal use).

Additionally, you can have full WSL integration if you launch WSL with Uniterm by pass wsl as the shell exactly like uniterm [options] [--] wsl [command] [args..], and the optional command and args in here is for putting what command should run inside automatically once the WSL bash has been launched. Your system's firewall may complain if you first time to launch the WSL with Uniterm, as Uniterm needs to seek a free TCP port and open it to localhost for communicate between Windows side and Linux side. When it asks for such permission, just allow it or it will not work.

You may also want to launch a shell in administrator mode. Even in Windows platform, you may use sudo prefix to do so (like uniterm [options] [--] sudo [shell] [args..]).

Since version 0.18, you can right-click on the + button to customize newly opened tab such as changing environment variable, working directory before launch anything new.

Modding

It is quite tricky but not very hard to try it yourself. The mod files themselves works like userscripts but without header and reloads everytime the config file has been updated. Also Uniterm is already make the necessary stuffs (including class declarations and some events) exposed to window namespace. To start modding, you may have a look to renderer.tsx and its imports to figure out what is it doing.

Once you created your mod or grabbed one from someone who made it, click on the gear icon at the top-right corner or type uniterm --config inside the Uniterm terminal, you should opened up a YAML config file with your favourite text editor, scroll to bottom and you will see the hints: save/put the mod script file into the folder it wrotes and add the filename under the mods field.

When you saved the config file, the terminal should immediately load/reloads all mod files.

Here has an example working mod, which displays terminal size at the corner: https://gist.github.com/JLChnToZ/7514cac109d5c3131acbac0b0523d9af

License

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].