Aminal

用 Go 语言编写的、现代的、跨平台的终端模拟器。(A modern cross-platform terminal emulator in Go.)

Github星跟踪图

Aminal —— 现代终端仿真器

Aminal 是一个用于 Mac/Linux/Windows 的现代终端仿真器,用 Golang 语言编程并使用 OpenGL 实现。

该项目目前正在试验中,因此您可能不希望Aminal作为您的主要终端一段时间。
确保在使用前安装了最新的图形卡驱动程序。

特性

  • Unicode支持
  • OpenGL渲染
  • 自定义选项
  • 真正的色彩支持
  • 支持常见的ANSI转义序列
  • 回滚缓冲区
  • 剪贴板访问
  • 可点击的网址
  • 多平台支持(Windows,Linux,OSX)
  • 像素支持
  • 提示/覆盖
  • 用于 powerline 的内置修补字体
  • Retina显示支持

安装

MacOS

brew tap liamg/aminal
brew install aminal

Windows

您可以使用 releases 页面中的二进制文件运行 Aminal。

这里提供了开发环境设置说明。

预先构建的二进制文件

发布页面上提供了预构建的、可用于Linux、OSX 和 Windows 的二进制文件。

下载二进制文件并 sudo cp aminal-* /usr/local/bin/aminal && chmod +x /usr/local/bin/aminal.

用 Go 安装

go get -u github.com/liamg/aminal


主要指标

概览
名称与所有者liamg/darktile
主编程语言Go
编程语言Go (语言数: 3)
平台
许可证MIT License
所有者活动
创建于2018-10-17 09:33:34
推送于2023-03-19 20:26:56
最后一次提交
发布数11
最新版本名称v0.0.11 (发布于 )
第一版名称v0.0.1 (发布于 )
用户参与
星数3.1k
关注者数51
派生数114
提交数24
已启用问题?
问题数157
打开的问题数31
拉请求数172
打开的拉请求数3
关闭的拉请求数11
项目设置
已启用Wiki?
已存档?
是复刻?
已锁定?
是镜像?
是私有?

Aminal - A Modern Terminal Emulator

Travis Build Status
GoReportCard
Github Release
Slack
License

Aminal is a modern terminal emulator for Mac/Linux/Windows implemented in Golang and utilising OpenGL.

Demo GIF

The project is experimental at the moment, so you probably won't want to rely on Aminal as your main terminal for a while.

Ensure you have your latest graphics card drivers installed before use.

Features

  • Unicode support
  • OpenGL rendering
  • Customisation options
  • True colour support
  • Support for common ANSI escape sequences a la xterm
  • Scrollback buffer
  • Clipboard access
  • Clickable URLs
  • Multi platform support (Windows, Linux, OSX)
  • Sixel support
  • Hints/overlays
  • Built-in patched fonts for powerline
  • Retina display support

Installation

MacOS

brew tap liamg/aminal
brew install aminal

Windows

You can run Aminal with a binary from the releases page.

Dev environment setup instructions are available here.

Prebuilt Binaries

Prebuilt binaries are available for Linux, OSX and Windows on the releases page.

Download the binary and sudo cp aminal-* /usr/local/bin/aminal && chmod +x /usr/local/bin/aminal.

Install with Go

go get -u github.com/liamg/aminal

Build

Dependencies

  • On macOS, you need Xcode or Command Line Tools for Xcode (xcode-select --install) for required headers and libraries.
  • On Ubuntu/Debian-like Linux distributions, you need libgl1-mesa-dev xorg-dev.
  • On CentOS/Fedora-like Linux distributions, you need libX11-devel libXcursor-devel libXrandr-devel libXinerama-devel mesa-libGL-devel libXi-devel.

Building Locally

There are various make targets available, the most obvious being:

make test
make build
make install

As long as you have your GOBIN environment variable set up properly (and in PATH), you should be able to run aminal.

Keyboard/Mouse Shortcuts, Operation, Key(s), --------------------, --------------------, Select text, click + drag, Select word, double click, Select line, triple click, Copy, ctrl + shift + c (Mac: super + c), Paste, ctrl + shift + v (Mac: super + v), Search online for selected text, ctrl + shift + g (Mac: super + g), Toggle debug display, ctrl + shift + d (Mac: super + d), Toggle slomo, ctrl + shift + ; (Mac: super + ;), Report bug in aminal, ctrl + shift + r (Mac: super + r), ## Configuration

Aminal looks for a config file in the following places, and stops when it finds one:

  • $XDG_CONFIG_HOME/aminal/config.toml
  • $HOME/.config/aminal/config.toml
  • $HOME/.aminal.toml

Note that on Windows Aminal uses %USERPROFILE% environment variable instead of $HOME.

It will write a config file to whichever of those directories exists (preferring the top of the list) the first time it runs, if one doesn't already exist.

You can ignore the config and use defaults by specifying --ignore-config as a CLI flag.

Config File

debug = false               # Enable debug logging to stdout. Defaults to false.
slomo = false               # Enable slow motion output mode, useful for debugging shells/terminal GUI apps etc. Defaults to false.
shell = "/bin/bash"         # The shell to run for the terminal session. Defaults to the users shell.
search_url = "https://www.google.com/search?q=$QUERY" # The search engine to use for the "search selected text" action. Defaults to google. Set this to your own search url using $QUERY as the keywords to replace when searching.
max_lines = 1000            # Maximum number of lines in the terminal buffer.
copy_and_paste_with_mouse = true # Text selected with the mouse is copied to the clipboard on end selection, and is pasted on right mouse button click.
dpi-scale = 0.0             # Override DPI scale. Defaults to 0.0 (let Aminal determine the DPI scale itself).

[colours]
  cursor        = "#e8dfd6" 
  foreground    = "#e8dfd6" 
  background    = "#021b21" 
  black         = "#032c36" 
  red           = "#c2454e" 
  green         = "#7cbf9e"
  yellow        = "#8a7a63"
  blue          = "#065f73"
  magenta       = "#ff5879"
  cyan          = "#44b5b1"
  light_grey    = "#f2f1b9"
  dark_grey     = "#3e4360"
  light_red     = "#ef5847"
  light_green   = "#a2db91"
  light_yellow  = "#beb090"
  light_blue    = "#61778d"
  light_magenta = "#ff99a1"
  light_cyan    = "#9ed9d8"
  white         = "#f6f6c9"
  selection     = "#333366" # Mouse selection background colour

[keys]
  copy      = "ctrl + shift + c"    # Copy highlighted text to system clipboard
  paste     = "ctrl + shift + v"    # Paste text from system clipboard
  debug     = "ctrl + shift + d"    # Toggle debug panel overlay
  google    = "ctrl + shift + g"    # Google selected text
  report    = "ctrl + shift + r"    # Send bug report
  slomo     = "ctrl + shift + ;"    # Toggle slow motion output mode (useful for debugging)

CLI Flags, Flag, Description, -----------------, -----------------------------------------------------------------------------------------------------------------------------, --debug, Enable debug mode, with debug logging and debug info terminal overlay., --slomo, Enable slomo mode, delay the handling of each incoming byte (or escape sequence) from the pty by 100ms. Useful for debugging., --shell [shell], Use the specified shell program instead of the user's usual one., --version, Show the version of aminal and exit.

Contributors