Giter Site home page Giter Site logo

liamg / darktile Goto Github PK

View Code? Open in Web Editor NEW
3.0K 52.0 111.0 45.79 MB

:waning_crescent_moon: Darktile is a GPU rendered terminal emulator designed for tiling window managers.

License: MIT License

Go 99.99% Makefile 0.01% Shell 0.01%
terminal vt100 xterm xterm-256color opengl golang terminal-emulator terminal-emulators

darktile's Introduction

Darktile

Darktile is a GPU rendered terminal emulator designed for tiling window managers.

Demo

Features

  • GPU rendering
  • Unicode support
  • Variety of themes available (or build your own!)
  • Compiled-in powerline font
  • Works with your favourite monospaced TTF/OTF fonts
  • Font ligatures (turn it off if you're not a ligature fan)
  • Hints: Context-aware overlays e.g. hex colour viewer, octal permission annotation
  • Take screenshots with a single key-binding
  • Sixels
  • Window transparency (0-100%)
  • Customisable cursor (most popular image formats supported)

Installation

Install dependencies:

  • xorg-dev
  • libgl1-mesa-dev

Grab a binary from the latest release, chmod +x it and place it in your $PATH.

If you're too lazy to do the above and you like to live life on the edge, you can pipe this script to sudo:

curl -s "https://raw.githubusercontent.com/liamg/darktile/main/scripts/install.sh" | sudo bash

Configuration

Configuration files should be created in $XDG_CONFIG_HOME/darktile/ if the variable is defined, otherwise in $HOME/.config/darktile/.

If you wish, you can create an example config file as a starting point using darktile --rewrite-config.

Darktile will use sensible defaults if no config/theme files are available. The same applies when you omit settings from config/theme files, meaning it is perfectly valid to start with empty config/theme files and add to them as required to override the default behaviour.

Config File

Found in the config directory (see above) inside config.yaml.

opacity: 1.0       # Window opacity: 0.0 is fully transparent, 1.0 is fully opaque
font:
  family: ""       # Font family. Find possible values for this by running 'darktile list-fonts'
  size: 16         # Font size
  dpi: 72          # DPI
  ligatures: true  # Enable font ligatures e.g. render '≡' instead of '==='
cursor:
  image: ""        # Path to an image to render as your cursor (defaults to standard rectangular cursor)

Example Theme

Found in the config directory (see above) inside theme.yaml. You can replace this file with a symlink or any theme file from darktile-themes.

black: '#1d1f21'
red: '#cc6666'
green: '#b5bd68'
yellow: '#f0c674'
blue: '#81a2be'
magenta: '#b294bb'
cyan: '#8abeb7'
white: '#c5c8c6'
brightblack: '#666666'
brightred: '#d54e53'
brightgreen: '#b9ca4a'
brightyellow: '#e7c547'
brightblue: '#7aa6da'
brightmagenta: '#c397d8'
brightcyan: '#70c0b1'
brightwhite: '#eaeaea'
background: '#1d1f21'
foreground: '#c5c8c6'
selectionbackground: '#aa8800'
selectionforeground: '#ffffff'
cursorforeground: '#1d1f21'
cursorbackground: '#c5c8c6'

Key Bindings

Action Binding
Copy ctrl + shift + C
Paste ctrl + shift + V
Decrease font size ctrl + -
Increase font size ctrl + =
Take screenshot ctrl + shift + [
Open URL ctrl + click

FAQ

What happened to Aminal?

The name changed as a result of a near-complete rewrite of Aminal. Also, Google's "did you mean animal?" was getting pretty annoying.

Did Darktile drop Windows/OSX support?

While the project likely won't need much work to build on Windows/OSX, the focus is to develop Darktile for tiling window managers under Linux. If you'd like to get Darktile working for other environments, pull requests are always very welcome, especially when preceded by issues/discussion.

darktile's People

Contributors

ernestrc avatar liamg avatar qiu-x avatar sawka avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

darktile's Issues

Nothing is rendered until window is resized (Mac)

Describe the bug
When first running aminal, the window loads, but nothing is rendered until the window is resized

To Reproduce
Steps to reproduce the behavior:

  1. run ./aminal
  2. See that nothing is rendered.
  3. Resize window and see that it renders.

Expected behavior
Should render without having to resize the windown.

Environment (please complete the following information):

  • macOS Mojave 10.14
  • go version go1.11 darwin/amd64

Logs

2018-10-23T16:08:09.087+0100    DEBUG   gui/gui.go:50   Initiating GUI resize to 506x302
2018-10-23T16:08:09.087+0100    DEBUG   gui/gui.go:55   Updating font resolution...
2018-10-23T16:08:09.087+0100    DEBUG   gui/gui.go:60   Setting renderer area...
2018-10-23T16:08:09.087+0100    DEBUG   gui/gui.go:63   Calculating size in cols/rows...
2018-10-23T16:08:09.087+0100    DEBUG   gui/gui.go:66   Resizing internal terminal...
2018-10-23T16:08:09.087+0100    DEBUG   gui/gui.go:71   Setting viewport size...
2018-10-23T16:08:09.087+0100    DEBUG   gui/gui.go:74   Resize complete!

Control characters don't follow keyboard layout

Describe the bug
When trying to close aminal with ^D, and playing around with other control characters, I noted that despite using a Dvorak keyboard, and typing working correctly, control characters came out as if typed on a QWERTY layout.

To Reproduce
Steps to reproduce the behavior:

  1. Switch keyboard layout to Dvorak
  2. Open aminal
  3. Verify keyboard was changed to dvorak by pressing the asdf keys; it should come out as aoeu
  4. Navigate to the middle of the line with the arrow keys
  5. Press ^U (control-U)
  6. Cursor will move forward as if ^F was pressed.

Expected behavior
Line should either be deleted in its entirety or to the start of line (shell dependent).

Environment (please complete the following information):

  • OS + Version: Ubuntu 18.04.1 LTS (Bionic Beaver)
  • Go Version: go version go1.10.4 linux/amd64
  • Shell [e.g. Bash/Zsh]: zsh

Additional context
This happens in other programs when the physical location of the key is used rather than the actual character emitted; the latter takes layout into account.

Logs
Typing "testaoeu" as expected on dvorak, arrow-ing to the middle of the line, pressing what I'd expect to be ^U and what is actually being treated as ^U, then exiting.

http://dpaste.com/00HKKJM or http://sprunge.us/G5vSL0

Prints errors when 'gotop' is run

1.5448387128503134e+09	error	terminal/output.go:89	Error handling escape sequence: Unsupported CSI ?1002l code
github.com/liamg/aminal/terminal.(*Terminal).processInput
	/usr/ports/x11/aminal/work/aminal-v0.7.12_GH0/src/github.com/liamg/aminal/terminal/output.go:89
1.544838712850347e+09	error	terminal/output.go:89	Error handling escape sequence: Unsupported CSI ?1015l code
github.com/liamg/aminal/terminal.(*Terminal).processInput
	/usr/ports/x11/aminal/work/aminal-v0.7.12_GH0/src/github.com/liamg/aminal/terminal/output.go:89
1.5448387128503704e+09	error	terminal/output.go:89	Error handling escape sequence: Unsupported CSI ?1006l code
github.com/liamg/aminal/terminal.(*Terminal).processInput
	/usr/ports/x11/aminal/work/aminal-v0.7.12_GH0/src/github.com/liamg/aminal/terminal/output.go:89
1.5448387153311408e+09	error	terminal/output.go:89	Error handling escape sequence: Unsupported CSI ?1006l code
github.com/liamg/aminal/terminal.(*Terminal).processInput
	/usr/ports/x11/aminal/work/aminal-v0.7.12_GH0/src/github.com/liamg/aminal/terminal/output.go:89
1.544838715331203e+09	error	terminal/output.go:89	Error handling escape sequence: Unsupported CSI ?1015l code
github.com/liamg/aminal/terminal.(*Terminal).processInput
	/usr/ports/x11/aminal/work/aminal-v0.7.12_GH0/src/github.com/liamg/aminal/terminal/output.go:89
1.5448387153312247e+09	error	terminal/output.go:89	Error handling escape sequence: Unsupported CSI ?1002l code
github.com/liamg/aminal/terminal.(*Terminal).processInput
	/usr/ports/x11/aminal/work/aminal-v0.7.12_GH0/src/github.com/liamg/aminal/terminal/output.go:89
1.5448387153312423e+09	info	terminal/modes.go:63	Turning off VT200 mouse mode

https://github.com/cjbassi/gotop

Vim is not usable yet

Vim is not yet usable - there are many unsupported escape sequences and behaviours.

Support iTerm2 Proprietary Escape Codes

Describe the bug
On running aminal, i recieve the following error:

1.540306868124171e+09   error   terminal/output.go:96   Error handling escape sequence: Unknown OSC control sequence: 1;../liamg/aminal
github.com/liamg/aminal/terminal.(*Terminal).processInput

To Reproduce
Steps to reproduce the behavior:

  1. run ./aminal
  2. See error

Expected behavior
There should be no errors on running

Environment (please complete the following information):

  • macOS Mojave 10.14
  • go version go1.11 darwin/amd64

Cannot install with `go get` on OpenBSD

Describe the bug
On OpenBSD 6.4, I get the following when running go get -u github.com/liamg/aminal:
# github.com/liamg/aminal/vendor/github.com/go-gl/glfw/v3.2/glfw
In file included from .go/src/github.com/liamg/aminal/vendor/github.com/go-gl/glfw/v3.2/glfw/c_glfw.go:4:
In file included from ./glfw/src/context.c:28:
./glfw/src/internal.h:175:3: error: "No supported window creation API selected"
#error "No supported window creation API selected"
^
1 error generated.
# github.com/liamg/aminal/vendor/github.com/go-gl/gl/all-core/gl
.go/src/github.com/liamg/aminal/vendor/github.com/go-gl/gl/all-core/gl/procaddr.go:70:9: could not determine kind of name for C.GlowGetProcAddress_glcoreall
.go/src/github.com/liamg/aminal/vendor/github.com/go-gl/gl/all-core/gl/procaddr.go:69:8: could not determine kind of name for C.free

To Reproduce
Steps to reproduce the behavior:

  1. Run go get -u github.com/liamg/aminal on an OpenBSD box
  2. See error

Expected behavior
go get installs aminal

Environment:

  • OS: OpenBSD 6.4
  • Go Version: go1.11 openbsd/amd64
  • Shell: pdksh

Tab completation doesn't work

Describe the bug
Tab completation for comands and paths doesn't work

To Reproduce
Steps to reproduce the behavior:

  1. Type a command and [TAB][TAB]

Expected behavior
Complete commands and paths

  • OS + Version: Manjaro Linux
  • Go Version: go1.11.2 linux/amd64
  • Shell: zsh

Additional context
Test with bash and zsh

Logs

2018-11-29T04:48:18.778-0200    DEBUG   terminal/csi.go:84      CSI 0x6D (ESC[90m) Character Attributes (SGR) - 5,2 -> 5,2
2018-11-29T04:48:18.778-0200    DEBUG   terminal/output.go:90   0x"-"
2018-11-29T04:48:18.778-0200    DEBUG   terminal/output.go:90   0x"a"
2018-11-29T04:48:18.778-0200    DEBUG   terminal/output.go:90   0x"\x1b"
2018-11-29T04:48:18.778-0200    DEBUG   terminal/csi.go:84      CSI 0x6D (ESC[39m) Character Attributes (SGR) - 7,2 -> 7,2
2018-11-29T04:48:18.778-0200    DEBUG   terminal/output.go:90   0x"\b"
2018-11-29T04:48:18.778-0200    DEBUG   terminal/output.go:90   0x"\b"
2018-11-29T04:48:19.375-0200    DEBUG   terminal/output.go:90   0x"\a"
2018-11-29T04:48:19.567-0200    DEBUG   terminal/output.go:90   0x"\a"
2018-11-29T04:48:19.778-0200    DEBUG   terminal/output.go:90   0x"\a"
2018-11-29T04:48:20.001-0200    DEBUG   terminal/output.go:90   0x"\a"
2018-11-29T04:48:20.452-0200    DEBUG   terminal/output.go:90   0x"\a"
2018-11-29T04:48:20.648-0200    DEBUG   terminal/output.go:90   0x"\a"
2018-11-29T04:48:20.836-0200    DEBUG   terminal/output.go:90   0x"\a"
2018-11-29T04:48:21.025-0200    DEBUG   terminal/output.go:90   0x"\a"
2018-11-29T04:48:21.227-0200    DEBUG   terminal/output.go:90   0x"\a"

Sixel support is buggy on mac retina display

Describe the bug
On a 2880×1800 resolution screen (Mac 15") when I cat a .sixel file the image appears a lot smaller than it should. When enter is pressed, the image moves up less than one line... see image...

sixelissue

To Reproduce
Steps to reproduce the behavior:

  1. Run cat example.sixel
  2. See size of image
  3. Press enter a few times
  4. See image move up the page too slowly

Environment (please complete the following information):

  • macOS Mojave 10.14
  • go version go1.11 darwin/amd64
  • Shell - Bash

Artifacts left behind after running top in tmux

Describe the bug
Artifacts left behind in some cases

To Reproduce
Steps to reproduce the behavior:

  1. Open Aminal on Windows, SSH to a Linux box
  2. Start a tmux session (tmux new-session, etc.)
  3. Run "htop" or something similar
  4. Detach tmux (ctrl+B, d)
  5. You will see a load of artifacts left behind on the terminal

Expected behavior
Terminal should clear

Screenshots
image

image

Environment (please complete the following information):

  • OS + Version: Windows 10 1809
  • Go Version [e.g. 1.10.1] - 1.10
  • Shell [e.g. Bash/Zsh] - Bash

Support for FreeBSD binaries

Hello,
first of all, really nice job! Do you think about making binaries for FreeBSD architecture in the future?

Command is not run when Return is pressed (mac)

Describe the bug
After typing a command and pressing enter, nothing happens (nothing in debug either).
Pressing Ctl-C still cancels the command and creates a new line however. So it doesn't freeze.

Could be that it's not recognising the key press as RETURN?

To Reproduce
Steps to reproduce the behavior:

  1. Type command (or leave blank)
  2. Press Enter
  3. See error

Expected behavior
Command should run, or if blank, new line should appear.

Environment (please complete the following information):

  • macOS Mojave 10.14
  • go version go1.11 darwin/amd64

Alignement on Mac is not quite well

Describe the bug
When I have lots of files on mac, and use ls in aminal terminal, it does not give me a good alignement.

To Reproduce
Steps to reproduce the behavior:

  1. Go to aminal terminal
  2. Run mkdir test && cd $_; touch test{1..20}.txt
  3. Run ls
  4. We can see the bad alignement

Expected behavior
It should show a good alignement.

Screenshots

bash-3.2$ ls
test1.txt    test11.txt  test13.txt  test15.txt  test17.txt  test19.txt  test20.txt  test4.txt test6.txt   test8.txt
test10.txt test12.txt    test14.txt  test16.txt  test18.txt  test2.txt test3.txt   test5.txt   test7.txt   test9.txt
bash-3.2$ 

Environment (please complete the following information):

  • OS + Version: mac 10.12.6
  • Go Version: go version go1.11.2 darwin/amd64
  • Shell : /bin/bash

Issue with scrolling up within a scrollable region

Scrolling up within a scrollable region in certain applications simply does not work. The line the cursor is on does update and scrolls content, but all other lines remain stationary and not updated.

To Reproduce
Steps to reproduce the behavior:

  1. Run htop
  2. Hold the down arrow and scroll to the end of the list of processes (you may need to shrink the window to make the list become scrollable)
  3. Hold the up arrow and scroll back up. When the cursor reaches the top line of the scrollable region (list of processes), the list should begin to scroll, but it does not.

Expected behavior
In step 3 above, the list should scroll back toward the top.

Additional context
I think the origin mode being implemented may fix this issue? See https://vt100.net/docs/vt510-rm/DECOM.html

Memory leaks on Window resizing

Describe the bug
Amount if used RAM is slightly get increased if to keep to resize the window constantly.

To Reproduce
Steps to reproduce the behavior:

  1. Run aminal and appropriate process monitor software.
  2. Resize aminal's window constantly
  3. Amount of used memory will constantly grow up

Environment (please complete the following information):

  • OS + Version: Windows 10 1809
  • Shell: cmd.exe

Might be related to context of #129

Is aminal embed-able?

Is your feature request related to a problem? Please describe.
Is aminal intended to be embed-able? (This is being asked in the same sense that 3rd-party browsers can embed the Chrome web renderer.)

Describe the solution you'd like
I would like to be able to write a term emulator application with a particular UI which uses aminal as its embedded emulator to do the heavy lifting. The application would mostly implement a UI with a certain feature set and wrapped around aminal.

Describe alternatives you've considered
It appears https://github.com/napsy/go-vte might be a possibility.

Additional context
I would like to build something equivalent to MobaXterm (avail only on Windows) for Linux. MobaXterm is the best terminal emulator I've ever used. Since switching to Linux it's about the only thing I miss from Windows. But it seems to have no equivalent on Linux (tho Remmina comes close). If I write something, I'd prefer it was in Go. feature-terminal

Slow rendering using Mesa

Describe the bug
Aminal terminal works noticeably slower, than standard gnome terminal. I found a similar issue in another terminal emulator project: alacritty/alacritty#125

To Reproduce
I used the same simple test as in issue above - showed all files from /usr

directory size

$ find /usr | wc -c
21253081

aminal

$ aminal --version
v0.7.6
$ time find /usr
real   0m15,477s
user   0m0,846s
sys    0m1,791s

gnome-terminal

$ gnome-terminal --version
# GNOME Terminal 3.28.1 using VTE 0.52.2 +GNUTLS -PCRE2
$ time find /usr
real	0m2,747s
user	0m0,435s
sys	0m1,145s

Expected behavior
Both terminal emulators render at the same speed.

Environment:

  • OS + Version: Linux Mint 19
  • Go Version: 1.10 linux/amd64
  • Shell: Bash

Additional context
Video Card

$ inxi -G | grep renderer
OpenGL: renderer: Mesa DRI Intel UHD Graphics 620 (Kabylake GT2) version: 4.5 Mesa 18.0.5

Logs
Start log

$ aminal --debug
2018-12-01T19:40:38.247+0300	INFO	aminal/main.go:28	Allocating pty...
2018-12-01T19:40:38.248+0300	INFO	aminal/main.go:56	Creating terminal...
2018-12-01T19:40:38.249+0300	DEBUG	gui/gui.go:109	Locking OS thread...
2018-12-01T19:40:38.249+0300	DEBUG	gui/gui.go:112	Creating window...
2018-12-01T19:40:38.304+0300	WARN	gui/gui.go:354	Failed to create window: Failed to create window using OpenGL v4.6: VersionUnavailable: GLX: Failed to create context: GLXBadFBConfig.. Will attempt older version...
github.com/liamg/aminal/gui.(*GUI).createWindow
	/go/src/github.com/liamg/aminal/gui/gui.go:354
github.com/liamg/aminal/gui.(*GUI).Render
	/go/src/github.com/liamg/aminal/gui/gui.go:114
main.main
	/go/src/github.com/liamg/aminal/main.go:63
runtime.main
	/usr/local/go/src/runtime/proc.go:201
2018-12-01T19:40:38.332+0300	DEBUG	gui/gui.go:120	Initialising OpenGL and creating program...
2018-12-01T19:40:38.334+0300	INFO	gui/gui.go:404	OpenGL version 4.5 (Core Profile) Mesa 18.0.5
2018-12-01T19:40:38.334+0300	DEBUG	gui/gui.go:406	Compiling shaders...
2018-12-01T19:40:38.336+0300	DEBUG	gui/gui.go:129	Loading font...
2018-12-01T19:40:38.355+0300	DEBUG	gui/gui.go:68	Initiating GUI resize to 800x600
2018-12-01T19:40:38.355+0300	DEBUG	gui/gui.go:73	Updating font resolutions...
2018-12-01T19:40:38.367+0300	DEBUG	gui/gui.go:76	Setting renderer area...
2018-12-01T19:40:38.368+0300	DEBUG	gui/gui.go:79	Calculating size in cols/rows...
2018-12-01T19:40:38.368+0300	DEBUG	gui/gui.go:82	Resizing internal terminal...
2018-12-01T19:40:38.368+0300	DEBUG	gui/gui.go:87	Setting viewport size...
2018-12-01T19:40:38.368+0300	DEBUG	gui/gui.go:92	Resize complete!
2018-12-01T19:40:38.368+0300	DEBUG	gui/gui.go:156	Starting pty read handling...
2018-12-01T19:40:38.368+0300	DEBUG	gui/gui.go:166	Starting render...

Prints an error: Failed to create window using OpenGL v4.6: VersionUnavailable: GLX: Failed to create context: BadMatch (invalid parameter attributes).. Will attempt older version...

On FreeBSD 11.2 I am getting this printed:

$ aminal 
1.5448385099173388e+09	info	aminal/main.go:28	Allocating pty...
1.5448385099257e+09	info	aminal/main.go:56	Creating terminal...
1.5448385100415652e+09	warn	gui/gui.go:394	Failed to create window: Failed to create window using OpenGL v4.6: VersionUnavailable: GLX: Failed to create context: BadMatch (invalid parameter attributes).. Will attempt older version...
1.5448385101763048e+09	info	gui/gui.go:444	OpenGL version 4.5.0 NVIDIA 390.77

It works afterwards.

Support for Arm64

Describe the bug
Using ChromeOS with Crostini which is a debian type linux. No binaries available for this architecture so I tried to build from source.

Bottom line after running make install, the last few lines output were:

Architecture aarch64 is not supported by this installation script
Makefile:22: recipe for target 'install-tools' failed
make: *** [install-tools] Error 1

To Reproduce
Steps to reproduce the behavior:

  1. Launch terminal on ChromeOS/Crostini
  2. Run following for dependencies:
sudo apt-get install libgl1-mesa-dev
sudo apt-get install xorg-dev
  1. Then run go get -u github.com/liamg/aminal
  2. Then cd $GOPATH/github.com/liamg/aminal
  3. Then make install
  4. Output is:
go test -v ./...
?   	github.com/liamg/aminal	[no test files]
=== RUN   TestOffsets
--- PASS: TestOffsets (0.00s)
=== RUN   TestBufferCreation
--- PASS: TestBufferCreation (0.00s)
=== RUN   TestBufferWriteIncrementsCursorCorrectly
--- PASS: TestBufferWriteIncrementsCursorCorrectly (0.00s)
=== RUN   TestWritingNewLineAsFirstRuneOnWrappedLine
--- PASS: TestWritingNewLineAsFirstRuneOnWrappedLine (0.00s)
=== RUN   TestWritingNewLineAsSecondRuneOnWrappedLine
--- PASS: TestWritingNewLineAsSecondRuneOnWrappedLine (0.00s)
=== RUN   TestSetPosition
--- PASS: TestSetPosition (0.00s)
=== RUN   TestMovePosition
--- PASS: TestMovePosition (0.00s)
=== RUN   TestVisibleLines
--- PASS: TestVisibleLines (0.00s)
=== RUN   TestClearWithoutFullView
--- PASS: TestClearWithoutFullView (0.00s)
=== RUN   TestClearWithFullView
--- PASS: TestClearWithFullView (0.00s)
=== RUN   TestCarriageReturn
--- PASS: TestCarriageReturn (0.00s)
=== RUN   TestCarriageReturnOnFullLine
--- PASS: TestCarriageReturnOnFullLine (0.00s)
=== RUN   TestCarriageReturnOnFullLastLine
--- PASS: TestCarriageReturnOnFullLastLine (0.00s)
=== RUN   TestCarriageReturnOnWrappedLine
--- PASS: TestCarriageReturnOnWrappedLine (0.00s)
=== RUN   TestCarriageReturnOnLineThatDoesntExist
--- PASS: TestCarriageReturnOnLineThatDoesntExist (0.00s)
=== RUN   TestGetCell
--- PASS: TestGetCell (0.00s)
=== RUN   TestGetCellWithHistory
--- PASS: TestGetCellWithHistory (0.00s)
=== RUN   TestGetCellWithBadCursor
--- PASS: TestGetCellWithBadCursor (0.00s)
=== RUN   TestCursorAttr
--- PASS: TestCursorAttr (0.00s)
=== RUN   TestCursorPositionQuerying
--- PASS: TestCursorPositionQuerying (0.00s)
=== RUN   TestRawPositionQuerying
--- PASS: TestRawPositionQuerying (0.00s)
=== RUN   TestEraseLine
--- PASS: TestEraseLine (0.00s)
=== RUN   TestEraseLineToCursor
--- PASS: TestEraseLineToCursor (0.00s)
=== RUN   TestEraseLineAfterCursor
--- PASS: TestEraseLineAfterCursor (0.00s)
=== RUN   TestEraseDisplay
--- PASS: TestEraseDisplay (0.00s)
=== RUN   TestEraseDisplayToCursor
--- PASS: TestEraseDisplayToCursor (0.00s)
=== RUN   TestEraseDisplayFromCursor
--- PASS: TestEraseDisplayFromCursor (0.00s)
=== RUN   TestBackspace
--- PASS: TestBackspace (0.00s)
=== RUN   TestHorizontalResizeView
--- PASS: TestHorizontalResizeView (0.00s)
=== RUN   TestLine
--- PASS: TestLine (0.00s)
PASS
ok  	github.com/liamg/aminal/buffer	(cached)
=== RUN   TestColourTomlEncoding
--- PASS: TestColourTomlEncoding (0.00s)
=== RUN   TestColourTomlUnmarshalling
--- PASS: TestColourTomlUnmarshalling (0.00s)
=== RUN   TestKeyCombinations
--- PASS: TestKeyCombinations (0.00s)
PASS
ok  	github.com/liamg/aminal/config	(cached)
?   	github.com/liamg/aminal/glfont	[no test files]
?   	github.com/liamg/aminal/gui	[no test files]
?   	github.com/liamg/aminal/hints	[no test files]
=== RUN   TestParsing
--- PASS: TestParsing (0.00s)
PASS
ok  	github.com/liamg/aminal/sixel	(cached)
?   	github.com/liamg/aminal/terminal	[no test files]
?   	github.com/liamg/aminal/version	[no test files]
go vet -v
internal/race
internal/cpu
errors
math/bits
runtime/internal/sys
unicode/utf8
encoding
unicode
sync/atomic
image/color
internal/testlog
unicode/utf16
runtime/internal/atomic
container/list
crypto/internal/subtle
crypto/subtle
internal/bytealg
vendor/golang_org/x/crypto/cryptobyte/asn1
vendor/golang_org/x/net/dns/dnsmessage
internal/nettrace
math
strconv
crypto/rc4
runtime/cgo
runtime
sync
io
internal/singleflight
reflect
hash
bytes
math/rand
syscall
hash/crc32
sort
strings
bufio
encoding/binary
internal/syscall/unix
crypto/cipher
time
image
path
encoding/base64
regexp/syntax
github.com/liamg/aminal/vendor/github.com/gobuffalo/syncx
crypto/aes
internal/poll
image/internal/imageutil
image/draw
crypto
crypto/des
crypto/internal/randutil
crypto/sha512
crypto/hmac
crypto/md5
crypto/sha1
crypto/sha256
encoding/pem
vendor/golang_org/x/crypto/poly1305
regexp
vendor/golang_org/x/crypto/internal/chacha20
vendor/golang_org/x/crypto/curve25519
vendor/golang_org/x/text/transform
github.com/liamg/aminal/vendor/go.uber.org/zap/buffer
github.com/liamg/aminal/vendor/go.uber.org/atomic
os
vendor/golang_org/x/crypto/chacha20poly1305
github.com/liamg/aminal/vendor/go.uber.org/zap/internal/bufferpool
fmt
github.com/liamg/aminal/vendor/github.com/mcuadros/go-version
path/filepath
flag
context
encoding/hex
log
github.com/liamg/aminal/vendor/go.uber.org/zap/internal/exit
os/exec
encoding/json
compress/flate
io/ioutil
compress/gzip
github.com/liamg/aminal/vendor/github.com/kr/pty
github.com/liamg/aminal/vendor/github.com/joho/godotenv
github.com/liamg/aminal/vendor/github.com/BurntSushi/toml
github.com/liamg/aminal/vendor/github.com/go-gl/gl/all-core/gl
github.com/liamg/aminal/vendor/github.com/pkg/errors
github.com/liamg/aminal/vendor/github.com/go-gl/glfw/v3.2/glfw
github.com/liamg/aminal/vendor/github.com/gobuffalo/envy
net/url
math/big
vendor/golang_org/x/text/unicode/bidi
crypto/rand
encoding/asn1
net
crypto/rsa
crypto/elliptic
crypto/dsa
crypto/x509/pkix
crypto/ecdsa
vendor/golang_org/x/crypto/cryptobyte
vendor/golang_org/x/text/secure/bidirule
vendor/golang_org/x/text/unicode/norm
net/textproto
vendor/golang_org/x/net/http2/hpack
crypto/x509
vendor/golang_org/x/net/idna
mime
vendor/golang_org/x/net/http/httpguts
mime/quotedprintable
vendor/golang_org/x/net/http/httpproxy
net/http/internal
github.com/liamg/aminal/vendor/github.com/markbates/oncer
crypto/tls
mime/multipart
github.com/liamg/aminal/hints
net/http/httptrace
github.com/liamg/aminal/config
github.com/liamg/aminal/vendor/golang.org/x/image/math/fixed
github.com/liamg/aminal/sixel
github.com/liamg/aminal/vendor/go.uber.org/multierr
github.com/liamg/aminal/vendor/golang.org/x/image/font
github.com/liamg/aminal/vendor/github.com/golang/freetype/raster
github.com/liamg/aminal/vendor/go.uber.org/zap/internal/color
github.com/liamg/aminal/buffer
os/user
github.com/liamg/aminal/vendor/go.uber.org/zap/zapcore
net/http
github.com/liamg/aminal/vendor/github.com/golang/freetype/truetype
github.com/liamg/aminal/vendor/github.com/gobuffalo/packd
github.com/liamg/aminal/version
github.com/liamg/aminal/vendor/go.uber.org/zap
github.com/liamg/aminal/vendor/github.com/golang/freetype
github.com/liamg/aminal/vendor/github.com/gobuffalo/packr
github.com/liamg/aminal/glfont
github.com/liamg/aminal/vendor/github.com/riywo/loginshell
github.com/liamg/aminal/terminal
github.com/liamg/aminal/gui
github.com/liamg/aminal
# github.com/liamg/aminal
Checking file ./config.go
Checking file ./logger.go
Checking file ./main.go
which dep || curl -L https://raw.githubusercontent.com/golang/dep/master/install.sh | sh
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100  5110  100  5110    0     0  22892      0 --:--:-- --:--:-- --:--:-- 22914
Architecture aarch64 is not supported by this installation script
Makefile:22: recipe for target 'install-tools' failed
make: *** [install-tools] Error 1

Expected behavior
Clean install for aminal!

Environment (please complete the following information):

$ cat /etc/*release
PRETTY_NAME="Debian GNU/Linux 9 (stretch)"
NAME="Debian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

OpenGL memory leak when minimizing/restoring window

Describe the bug
It looks like OpenGL memory is leaking when the Aminal' window is restoring from minimized state.

To Reproduce
Steps to reproduce the behavior:

  1. Run Aminal
  2. Run Task Manager and note current Aminal memory usage
  3. Try to minimize and restore the window several times
  4. On each restoration of the window, the memory consumption increases by 4 to 6 MB.

Expected behavior
There should be no increase in memory usage when minimizing/restoring the Aminal's window.

Environment (please complete the following information):

  • OS + Version: Windows

glfw errors when building on Mac

Describe the bug
When trying to build on Mac I receive this output:

# github.com/liamg/aminal/vendor/github.com/go-gl/glfw/v3.3/glfw
ld: framework not found MoltenVK
clang: error: linker command failed with exit code 1 (use -v to see invocation)
# github.com/liamg/aminal/vendor/github.com/go-gl/glfw/v3.3/glfw
native_darwin.c:7:17: warning: implicit declaration of function 'glfwGetCocoaWindow' is invalid in C99 [-Wimplicit-function-declaration]
native_darwin.c:7:9: warning: cast to 'void *' from smaller integer type 'int' [-Wint-to-void-pointer-cast]
native_darwin.c:11:17: warning: implicit declaration of function 'glfwGetNSGLContext' is invalid in C99 [-Wimplicit-function-declaration]
native_darwin.c:11:9: warning: cast to 'void *' from smaller integer type 'int' [-Wint-to-void-pointer-cast]

To Reproduce
Steps to reproduce the behavior:

  1. go build on macOS Mojave (10.14)
  2. See error

Expected behavior
Should build successfully with no errors.

Environment (please complete the following information):

  • macOS Mojave 10.14
  • go version go1.11 darwin/amd64

Integrate Mosh support to get effortless user experience

The issue to track investigation progress of getting mosh natively to Windows and use it from Aminal.exe

[update:15.02.19:MaxRis] As suggested by Alex, Aminal user should get mosh experience as simple as launching aminal by typing: animal -shell mosh.

Determine why Sixel VT escape sequences are not being processed on Windows

Describe the bug
The windows build is either not receiving Sixel VT escape sequences properly or is not able to properly interpret them. (this may apply to other escape sequences as well)

To Reproduce
Steps to reproduce the behavior:

  1. Start aminal.exe on windows (currently requires the shell to be specified by cli parameter aminal --shell cmd.exe)
  2. Output the contents of example.sixel to the tty type example.sixel

Expected behavior
The test image should display in the terminal window.

Observed behavior
A large quantity of text is displayed in the terminal window.

Screenshots
image
image

Environment:

  • Windows 10 v.1809

Additional context
Add any other context about the problem here.

Logs
I'm not currently able to capture a debug log on windows due to what seems to be a misbehavior in the operating system when combining output pipes and ConPTY API hosts (I get the output from the guest processes but not the host).

Shell program keeps running after closing Aminal

Describe the bug
On Windows, if Aminal closed by clicking on the X in the upper-right corner, the shell keeps running in background.

To Reproduce
Steps to reproduce the behavior:

  1. Run Aminal
  2. Run Task Manager and note that the Aminal itself and three child processes are shown on the Processes tab
  3. Close Aminal by clicking on the X in the upper-right corner
  4. See that the two of the three child processes (Console Window Host and Windows Command Processor) remain running.

Expected behavior
Those child processes should be ended upon exiting Aminal.

NOTE that, if Aminal is closed by typing exit in the Aminal's window, the shell program terminates correctly.

Screenshots
default

Environment (please complete the following information):

  • OS: Windows
  • Go: go1.11.2 windows/amd64
  • Shell: cmd.exe

config file is not read

Describe the bug
I created a .aminal.toml file but aminal prebuild releases 0.7.9 does not read it

To Reproduce
Steps to reproduce the behavior:
use precompiled aminal
create $(cd)/.aminal.toml file
run aminal

Expected behavior
aminal should honour changes in the $(cd)/.aminal.toml config file
Screenshots
If applicable, add screenshots to help explain your problem.

Environment (please complete the following information):
Fedora release 29 (Twenty Nine)
NAME=Fedora
VERSION="29 (Workstation Edition)"
ID=fedora
VERSION_ID=29
PLATFORM_ID="platform:f29"
PRETTY_NAME="Fedora 29 (Workstation Edition)"
ANSI_COLOR="0;34"
CPE_NAME="cpe:/o:fedoraproject:fedora:29"
HOME_URL="https://fedoraproject.org/"
DOCUMENTATION_URL="https://docs.fedoraproject.org/en-US/fedora/f29/system-administrators-guide/"
SUPPORT_URL="https://fedoraproject.org/wiki/Communicating_and_getting_help"
BUG_REPORT_URL="https://bugzilla.redhat.com/"
REDHAT_BUGZILLA_PRODUCT="Fedora"
REDHAT_BUGZILLA_PRODUCT_VERSION=29
REDHAT_SUPPORT_PRODUCT="Fedora"
REDHAT_SUPPORT_PRODUCT_VERSION=29
PRIVACY_POLICY_URL="https://fedoraproject.org/wiki/Legal:PrivacyPolicy"
VARIANT="Workstation Edition"
VARIANT_ID=workstation
Fedora release 29 (Twenty Nine)
Fedora release 29 (Twenty Nine)

shell zsh

Additional context
Add any other context about the problem here.

Logs
Run aminal with the --debug flag, then paste the relevant debug logs here.
2018-12-05T09:35:29.303+0100 INFO aminal/main.go:28 Allocating pty...
2018-12-05T09:35:29.308+0100 INFO aminal/main.go:56 Creating terminal...
2018-12-05T09:35:29.308+0100 DEBUG gui/gui.go:117 Locking OS thread...
2018-12-05T09:35:29.308+0100 DEBUG gui/gui.go:120 Creating window...
2018-12-05T09:35:29.517+0100 WARN gui/gui.go:403 Failed to create window: Failed to create window using OpenGL v4.6: VersionUnavailable: GLX: Failed to create context: GLXBadFBConfig.. Will attempt older version...
github.com/liamg/aminal/gui.(*GUI).createWindow
/home/alberto/go/src/github.com/liamg/aminal/gui/gui.go:403
github.com/liamg/aminal/gui.(*GUI).Render
/home/alberto/go/src/github.com/liamg/aminal/gui/gui.go:122
main.main
/home/alberto/go/src/github.com/liamg/aminal/main.go:63
runtime.main
/usr/lib/golang/src/runtime/proc.go:201
2018-12-05T09:35:29.623+0100 DEBUG gui/gui.go:128 Initialising OpenGL and creating program...
2018-12-05T09:35:29.629+0100 INFO gui/gui.go:453 OpenGL version 4.5 (Core Profile) Mesa 18.2.4
2018-12-05T09:35:29.629+0100 DEBUG gui/gui.go:455 Compiling shaders...
2018-12-05T09:35:29.629+0100 DEBUG gui/gui.go:137 Loading font...
2018-12-05T09:35:29.660+0100 DEBUG gui/gui.go:74 Initiating GUI resize to 800x600
2018-12-05T09:35:29.660+0100 DEBUG gui/gui.go:79 Updating font resolutions...
2018-12-05T09:35:29.685+0100 DEBUG gui/gui.go:82 Setting renderer area...
2018-12-05T09:35:29.686+0100 DEBUG gui/gui.go:85 Calculating size in cols/rows...
2018-12-05T09:35:29.686+0100 DEBUG gui/gui.go:88 Resizing internal terminal...
2018-12-05T09:35:29.687+0100 DEBUG gui/gui.go:93 Setting viewport size...
2018-12-05T09:35:29.687+0100 DEBUG gui/gui.go:98 Resize complete!
2018-12-05T09:35:29.700+0100 DEBUG gui/gui.go:164 Starting pty read handling...
2018-12-05T09:35:29.700+0100 DEBUG gui/gui.go:174 Starting render...
2018-12-05T09:35:29.700+0100 DEBUG terminal/csi.go:84 CSI 0x6D (ESC[1m) Character Attributes (SGR) - 0,0 -> 0,0
2018-12-05T09:35:29.700+0100 DEBUG terminal/csi.go:84 CSI 0x6D (ESC[7m) Character Attributes (SGR) - 0,0 -> 0,0
2018-12-05T09:35:29.701+0100 DEBUG terminal/csi.go:84 CSI 0x6D (ESC[27m) Character Attributes (SGR) - 1,0 -> 1,0
2018-12-05T09:35:29.701+0100 DEBUG terminal/csi.go:84 CSI 0x6D (ESC[1m) Character Attributes (SGR) - 1,0 -> 1,0
2018-12-05T09:35:29.701+0100 DEBUG terminal/csi.go:84 CSI 0x6D (ESC[0m) Character Attributes (SGR) - 1,0 -> 1,0
2018-12-05T09:35:29.701+0100 ERROR terminal/output.go:89 Error handling escape sequence: Unknown OSC control sequence: 7;file://Host-001/home/alberto
ithub.com/liamg/aminal/terminal.(*Terminal).processInput
/home/alberto/go/src/github.com/liamg/aminal/terminal/output.go:89
2018-12-05T09:35:29.701+0100 ERROR terminal/output.go:89 Error handling escape sequence: Unknown OSC control sequence: 1;~
github.com/liamg/aminal/terminal.(*Terminal).processInput
/home/alberto/go/src/github.com/liamg/aminal/terminal/output.go:89
2018-12-05T09:35:29.824+0100 DEBUG terminal/csi.go:84 CSI 0x6D (ESC[0m) Character Attributes (SGR) - 0,0 -> 0,0
2018-12-05T09:35:29.824+0100 DEBUG terminal/csi.go:84 CSI 0x6D (ESC[27m) Character Attributes (SGR) - 0,0 -> 0,0
2018-12-05T09:35:29.824+0100 DEBUG terminal/csi.go:84 CSI 0x6D (ESC[24m) Character Attributes (SGR) - 0,0 -> 0,0
2018-12-05T09:35:29.824+0100 DEBUG terminal/csi.go:84 CSI 0x4A (ESC[J) Erase in Display (ED), VT100 - 0,0 -> 0,0
2018-12-05T09:35:29.825+0100 DEBUG terminal/csi.go:84 CSI 0x6D (ESC[39m) Character Attributes (SGR) - 0,0 -> 0,0
2018-12-05T09:35:29.825+0100 DEBUG terminal/csi.go:84 CSI 0x6D (ESC[0m) Character Attributes (SGR) - 0,0 -> 0,0
2018-12-05T09:35:29.825+0100 DEBUG terminal/csi.go:84 CSI 0x6D (ESC[49m) Character Attributes (SGR) - 0,0 -> 0,0
2018-12-05T09:35:29.825+0100 DEBUG terminal/csi.go:84 CSI 0x6D (ESC[40m) Character Attributes (SGR) - 0,0 -> 0,0
2018-12-05T09:35:29.825+0100 DEBUG terminal/csi.go:84 CSI 0x6D (ESC[39m) Character Attributes (SGR) - 0,0 -> 0,0
2018-12-05T09:35:29.825+0100 DEBUG terminal/csi.go:84 CSI 0x6D (ESC[44m) Character Attributes (SGR) - 18,0 -> 18,0
2018-12-05T09:35:29.825+0100 DEBUG terminal/csi.go:84 CSI 0x6D (ESC[30m) Character Attributes (SGR) - 18,0 -> 18,0
2018-12-05T09:35:29.825+0100 DEBUG terminal/csi.go:84 CSI 0x6D (ESC[30m) Character Attributes (SGR) - 19,0 -> 19,0
2018-12-05T09:35:29.825+0100 DEBUG terminal/csi.go:84 CSI 0x6D (ESC[49m) Character Attributes (SGR) - 22,0 -> 22,0
2018-12-05T09:35:29.825+0100 DEBUG terminal/csi.go:84 CSI 0x6D (ESC[34m) Character Attributes (SGR) - 22,0 -> 22,0
2018-12-05T09:35:29.825+0100 DEBUG terminal/csi.go:84 CSI 0x6D (ESC[39m) Character Attributes (SGR) - 23,0 -> 23,0
2018-12-05T09:35:29.825+0100 DEBUG terminal/csi.go:84 CSI 0x4B (ESC[K) Erase in Line (EL), VT100 - 24,0 -> 24,0
2018-12-05T09:35:29.825+0100 DEBUG terminal/csi.go:84 CSI 0x68 (ESC[?1h) Set Mode (SM) - 24,0 -> 24,0
2018-12-05T09:35:29.825+0100 DEBUG terminal/csi.go:84 CSI 0x68 (ESC[?2004h) Set Mode (SM) - 24,0 -> 24,0
2018-12-05T09:35:33.277+0100 DEBUG gui/gui.go:284 Stopping render...

URL detection/interaction

  • Detect URLs in the view buffer and underline them.
  • Clicking a URL should launch the URL in the user's default browser

Project needs renaming

To prevent confusion with there being hashicorp/raft also in the golang sphere, this is going to need renaming.

If anyone has any suggestions, I'm more than happy to consider them. RAFT stands for "Really? Another F**king Terminal?", so pretty much anything would be a cleverer/nicer name.

Having a terminal without "term" in the name would also be good.

Scrollbar

When an application produces a lot of output, it is helpful to be able to quickly scroll back. In many cases, even page up/page down are too slow. An optional scrollbar is one way to solve this problem.

XDG Base Directory Specification

Is your feature request related to a problem? Please describe.
Forcefully storing the configuration in $HOME/.aminal.toml "breaks" freedesktop.org specifications.

Describe the solution you'd like
Have fallbacks and better defaults, in this order:

  1. $XDG_CONFIG_HOME/aminal/config.toml
  2. $HOME/.config/aminal/config.toml
    • $HOME/.config is just the default for $XDG_CONFIG_HOME, in case it's not set
  3. $HOME/.aminal.toml

I see that the code is already prepared for this: https://github.com/liamg/aminal/blob/cac8f3db6cf5af5c9fd05b29f21c2c124c788fe7/config.go#L51-L58

If you feel like it, you could even split up the configuration into multiple files, and it's more future-proof in case you'd like to do something like that in the future, and it also keep the home directory clean.

Nice project by the way, looking forward to seeing it mature.

Panic: "Index out of range" when resizing the window very small.

Describe the bug
Panic when the window is resized to very small dimensions.

To Reproduce
Steps to reproduce the behavior:

  1. go get github.com/liamg/aminal
  2. Run aminal
  3. Resize window as small as possible

Expected behavior
Avoid panic, eg by setting a minimum window size.

Screenshots
screen shot 2018-11-28 at 8 27 47 pm
screen shot 2018-11-28 at 8 28 04 pm
screen shot 2018-11-28 at 8 28 13 pm

Environment (please complete the following information):

  • MacOS Mojave 10.14.2
  • go version go1.11.2 darwin/amd64
  • Zsh

Logs

panic: runtime error: index out of range

goroutine 35 [running]:
github.com/liamg/aminal/buffer.(*Buffer).Index(0xc00014e0b0)
   /Users/jack/go/src/github.com/liamg/aminal/buffer/buffer.go:567 +0x316
github.com/liamg/aminal/buffer.(*Buffer).NewLine(0xc00014e0b0)
   /Users/jack/go/src/github.com/liamg/aminal/buffer/buffer.go:745 +0x57
github.com/liamg/aminal/terminal.newLineSequenceHandler(0xc0014a4000, 0xc00014e2c0, 
0xa, 0xc000120038)
   /Users/jack/go/src/github.com/liamg/aminal/terminal/output.go:29 +0x40
github.com/liamg/aminal/terminal.(*Terminal).processInput(0xc00014e2c0, 0x48df2e0, 0
xc00009c140, 0xc0014a4000)
   /Users/jack/go/src/github.com/liamg/aminal/terminal/output.go:96 +0x35c
created by github.com/liamg/aminal/terminal.(*Terminal).Read
   /Users/jack/go/src/github.com/liamg/aminal/terminal/terminal.go:261 +0x1f9

`go get` fails on Ubuntu 18.10 with glfw error

Describe the bug
Tried go get and failed with the following output below. I made sure I had required libs, thought I'd share what happened here.

To Reproduce
Steps to reproduce the behavior:

  1. Get Ubuntu 18.10 machine
  2. Install golang 1.11.2
  3. sudo apt install libgl1-mesa-dev xorg-dev
  4. go get -u github.com/liamg/aminal
  5. See error

Expected behavior
I was expecting the repo to download and compile without errors. I'm a casual drive-by tire kicker, apologies if this is a known/routine issue!

Screenshots

○ → go get -u github.com/liamg/aminal
# github.com/liamg/aminal/vendor/github.com/go-gl/glfw/v3.2/glfw
In file included from ../go/src/github.com/liamg/aminal/vendor/github.com/go-gl/glfw/v3.2/glfw/c_glfw_linbsd.go:24:
../go/src/github.com/liamg/aminal/vendor/github.com/go-gl/glfw/v3.2/glfw/glfw/src/linux_joystick.c: In function ‘_glfwInitJoysticksLinux’:
../go/src/github.com/liamg/aminal/vendor/github.com/go-gl/glfw/v3.2/glfw/glfw/src/linux_joystick.c:224:42: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size 9 [-Wformat-truncation=]
             snprintf(path, sizeof(path), "%s/%s", dirname, entry->d_name);
                                          ^~~~~~~
In file included from /usr/include/stdio.h:873,
                 from /usr/include/X11/Xcursor/Xcursor.h:26,
                 from ../go/src/github.com/liamg/aminal/vendor/github.com/go-gl/glfw/v3.2/glfw/glfw/src/x11_platform.h:39,
                 from ../go/src/github.com/liamg/aminal/vendor/github.com/go-gl/glfw/v3.2/glfw/glfw/src/internal.h:169,
                 from ../go/src/github.com/liamg/aminal/vendor/github.com/go-gl/glfw/v3.2/glfw/glfw/src/x11_init.c:28,
                 from ../go/src/github.com/liamg/aminal/vendor/github.com/go-gl/glfw/v3.2/glfw/c_glfw_linbsd.go:19:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:67:10: note: ‘__builtin___snprintf_chk’ output between 12 and 267 bytes into a destination of size 20
   return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        __bos (__s), __fmt, __va_arg_pack ());
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Environment (please complete the following information):

  • OS + Version: Ubuntu 18.10
  • Go Version: 1.11.2
  • Shell: Bash

Additional context
Just curious and trying to run go get and this is the result.
Logs

NOTE: You spelled 'debug' as 'deug' in the template, might want to fix that:

"Run aminal with the --debug flag, then paste the relevant deug logs here."

Render error: Failed to create window: Failed to create window: VersionUnavailable: GLX: Failed to create context: GLXBadFBConfig

Just tried to run aminal-linux-amd64 from releases, and got:

1.543406135031648e+09 info aminal/main.go:28 Allocating pty... 1.5434061350458617e+09 info aminal/main.go:56 Creating terminal... 1.5434061356787918e+09 fatal aminal/main.go:64 Render error: Failed to create window: Failed to create window: VersionUnavailable: GLX: Failed to create context: GLXBadFBConfig main.main /go/src/github.com/liamg/aminal/main.go:64 runtime.main /usr/local/go/src/runtime/proc.go:201

On Fedora 29, xorg+radeon. Is something wrong with my system?

Thank you.

Mac OS: black window after start

Describe the bug
On my Mac OS after start aminal black window is appeared, nothing happens during key press, mouse hover etc... The workaround to get content at window to perform resize of the window, after it working as expected.... it seems appeared issue with init or init render at OpenGL stuck

To Reproduce
Steps to reproduce the behavior:

  1. Run aminal at macOs
  2. Look at the window

Expected behavior
Window with terminal appeared

Environment (please complete the following information):

  • OS + Version: macOS 10.1.4.1
  • Go Version: go1.11.2
  • Shell: fish

Make vttest test 2 pass

Test 2 of the vttest tool needs to pass.

This is usually installed by default on most systems.

See #88 for more information

Problem with Zap library

$ go build -v
src/go/aminal
# src/go/aminal
./main.go:120:26: cannot use logger (type *"go.uber.org/zap".SugaredLogger) as type *"github.com/liamg/aminal/vendor/go.uber.org/zap".SugaredLogger in argument to terminal.New
./main.go:122:14: cannot use logger (type *"go.uber.org/zap".SugaredLogger) as type *"github.com/liamg/aminal/vendor/go.uber.org/zap".SugaredLogger in argument to gui.New

Cannot install with go on OpenBSD

Describe the bug
On OpenBSD 6.4, I get the following when running go get -u github.com/liamg/aminal:

# github.com/liamg/aminal/vendor/github.com/go-gl/glfw/v3.2/glfw
In file included from .go/src/github.com/liamg/aminal/vendor/github.com/go-gl/glfw/v3.2/glfw/c_glfw.go:4:
In file included from ./glfw/src/context.c:28:
./glfw/src/internal.h:175:3: error: "No supported window creation API selected"
 #error "No supported window creation API selected"
  ^
1 error generated.
# github.com/liamg/aminal/vendor/github.com/go-gl/gl/all-core/gl
.go/src/github.com/liamg/aminal/vendor/github.com/go-gl/gl/all-core/gl/procaddr.go:70:9: could not     determine kind of name for C.GlowGetProcAddress_glcoreall
.go/src/github.com/liamg/aminal/vendor/github.com/go-gl/gl/all-core/gl/procaddr.go:69:8: could not determine kind of name for C.free

To Reproduce
Steps to reproduce the behavior:

  1. Run go get -u github.com/liamg/aminal on an OpenBSD box
  2. See error

Expected behavior
go get installs aminal

Environment:

  • OS: OpenBSD 6.4
  • Go Version: go1.11 openbsd/amd64
  • Shell: pdksh

Make vttest test 1 pass

Test 1 of the vttest tool needs to pass.

This is usually installed by default on most systems.

See #88 for more information

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.