* Add Windows launcher
The launcher looks at directory "Versions" next to its executable.
It finds the latest version and runs the executable in that directory
with the same name as itself. For instance:
Aminal.exe <- the launcher
Versions/
1.0.0/
Aminal.exe
1.0.1/
Aminal.exe
In this example, running the top-level Aminal.exe (the launcher) starts
Versions/1.0.1/Aminal.exe.
Having a launcher allows Aminal to be updated while it is running. For
example, version 1.0.1 could be downloaded without disturbing running
instances of Aminal 1.0.0.
* Implement a command-line installer for Windows
It can be generated with the Make target installer-windows.
It requires that you ran Make target launcher-windows before.
* Implement Uninstaller for Windows
* Codesign Windows auto-update executables
* Don't require Admin privileges for Win uninstaller
* Remove references to fman
* Explain automatic updates in windows.md
* Limit installer go packages compilation only to Windows platform
* Fix Windows launcher
* gofmt for launcher.go
* Make DefaultConfig safer
Instead of having a global mutable DefaultConfig which might be
changed by anything during run/test time turn DefaultConfig into a
function which returns a fresh DefaultConfig. This is safer and more
convenient.
* Decouple vttest tests from user's config
The screen capture tests were failing on my machine because the screen
capture based vttest tests were using my personal config in
~/.config/aminal/config.toml. This had different colours and a fixed
DPI scaling factor which mean the screen captures didn't match.
The sixel tests were also failing because my login shell is a highly
customised zsh.
A static test config is now passed by the vttest tests and the shell
is set to "/bin/sh" on Linux, OSX etc to help avoid problems due to
differences between shells and shell configs.
* Fix merge issues in develop
* Add -timeout to go test
The tests are timing out on TravisCI for some reason so a timeout has
been added so that `go test` will dump out the goroutine stack traces
when the tests are stuck.
* gui.Close now wakes up main loop
Without this, otherwise successful tests in main_test.go hang.
* Use a longer timeout in case CI infrastructure is slow
* Fix various gofmt issues
Not sure how some of these crept in.
Instead of waking up regularly WaitEventsTimeout, WaitEvents and
PostEmptyEvent are used to make the main loop purely event driven. The
rate of redraws due to terminal activity can be tweaked via the new
wakePeriod const.
This leads to some significant performance improvements: Aminal now consumes:
- no CPU when idle (previously ~2.7% on my laptop)
- ~8.5% CPU on my machine when running htop full screen on a large
monitor (previously ~18.5% on my laptop)
- scrolling large amounts of output is an order of magnitude faster
This change also incidentally fixes data races around the terminal
dirty flag (which is now gone).
* Add Windows launcher
The launcher looks at directory "Versions" next to its executable.
It finds the latest version and runs the executable in that directory
with the same name as itself. For instance:
Aminal.exe <- the launcher
Versions/
1.0.0/
Aminal.exe
1.0.1/
Aminal.exe
In this example, running the top-level Aminal.exe (the launcher) starts
Versions/1.0.1/Aminal.exe.
Having a launcher allows Aminal to be updated while it is running. For
example, version 1.0.1 could be downloaded without disturbing running
instances of Aminal 1.0.0.
* Implement a command-line installer for Windows
It can be generated with the Make target installer-windows.
It requires that you ran Make target launcher-windows before.
* Implement Uninstaller for Windows
* Codesign Windows auto-update executables
* Don't require Admin privileges for Win uninstaller
* Remove references to fman
* Explain automatic updates in windows.md
* Limit installer go packages compilation only to Windows platform
* #225 ESC press doesn't work as expected under vi
* fix: BEL OSC terminator for Windows
* bug fix: correcte DA2 handling
* bug fix: #223 Wrong cursor rendering position on fast new line input
* Patch to resolve monitor change event is not get fired issue
* Fix monitors init on non Windows
* GLFW patch: create monitor dpi dependent cursor icons
* Update go-gl/glfw dep to point fork
* Added Make targets for gofmt
- `make check-gofmt` will check for files that aren't gofmt compliant
- `make gofmt` will fix any gofmt error's in Aminal's source
Vendored files are ignored.
* Add gofmt check to TravisCI checks
* Fix gofmt errors
If dpi-scale is set in aminal.toml then this overrides aminal's own
DPI calculation. This is useful for working around unusual monitor
setups or users just who prefer a different DPI scale.