Commit Graph

438 Commits

Author SHA1 Message Date
Roman Shevchenko 21ae93aa96 #116 URXVT extended mouse mode support 2019-03-17 12:41:41 +03:00
nikitar020 4f308bdbd8 Add running gofmt to the PR template (#259)
* Update CODEOWNERS

* Add running gofmt to the PR template
2019-03-14 11:24:39 +02:00
Menno Finlay-Smits 4710948cd1 Decouple vttest tests from user's config (#258)
* 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.
2019-03-13 15:57:08 +02:00
nikitar020 05c45c0892 Implement window manipulation CSI sequences (#256)
* Implement window manipulation CSI sequences

* Fix travis config to make gofmt only for go1.11 builds

* remove commented out functions
2019-03-13 14:16:32 +02:00
Menno Finlay-Smits 44233f384e Fix merge issues in develop (#257)
* 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.
2019-03-12 09:46:59 +03:00
Menno Finlay-Smits 8f183ba440 Avoid polling in main GUI loop (#245)
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).
2019-03-11 22:57:41 +02:00
Menno Finlay-Smits a355d10656 Add option for generating CPU profile (#248) 2019-03-07 15:02:33 +02:00
Michael Herrmann ed8656930a Automatic updates on Windows (#247)
* 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
2019-03-07 14:50:02 +02:00
rrrooommmaaa f207ec0930 #195 Real buffer clearing (#246)
* #195 Real buffer clearing. Step 1

* #195 buffer clear. Clearing Windows buffer
2019-03-07 12:22:57 +02:00
nikitar020 733e056376 Fix GL error GL_INVALID_OPERATION message (issue #153) (#240) 2019-03-07 11:25:40 +02:00
rrrooommmaaa 7ac6c801e2 fix data races (#230) (#235)
* fix data races (#230)

* Update CODEOWNERS
2019-03-07 11:15:48 +02:00
Max Risuhin ae7c84b322
Add screenshot to validate 11th subtest of vttest "Screen feature" test suite (#232) 2019-03-06 00:02:49 +02:00
nikitar020 a68b693bfd Add correct handling of attaching to child console errors (#239) 2019-03-05 10:00:34 +03:00
rrrooommmaaa 4ec83c54a4
#217 rectangular select and copy (#241)
* #217 rectangular select and copy
2019-03-05 09:55:29 +03:00
Max Risuhin 84cc84f103
[travis] Insert new line after each git log commit message to be correctly parsed by bash read command (#244) 2019-03-04 19:08:38 +02:00
Max Risuhin 87d36072a3
Include source branch title in nightly build tag (#243) 2019-03-04 16:56:55 +02:00
Liam Galvin a2f23c73e5
Fix 8-bit colours (#238) 2019-02-26 13:45:49 +00:00
rrrooommmaaa 86627135dd #180/#234: CSI SM/RM multiple modes, Mouse button-tracking (#233)
* #180: added support for several modes specification in CSI SM/RM

* added Button Mouse Mode and SGR encoding
2019-02-26 13:14:51 +00:00
rrrooommmaaa 8c4c842ff1
Alt+letter sends Escape code (#179) (#226) 2019-02-20 17:12:57 +03:00
rrrooommmaaa 1909c4c032
fixed Wrong cursor rendering position on fast new line input (#228)
* #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
2019-02-20 17:03:12 +03:00
Liam Galvin 597c2dcf5a
fix backspace (#231) 2019-02-20 06:46:18 +00:00
rrrooommmaaa d91a17c74b ESC key for vi (#227)
* #225 ESC press doesn't work as expected under vi

* fix: BEL OSC terminator for Windows

* bug fix: correcte DA2 handling
2019-02-19 19:42:32 +00:00
Max Risuhin 0ac44844ad Resolve formatting issues (#222) 2019-02-16 09:15:40 +00:00
Max Risuhin 82ab02da9b Resolves sixel rendering regression issue and adds gui unit test to validate rendered image (#221)
* Reset line feed mode on sixel handling

* Sixel test
2019-02-14 16:58:14 +00:00
Max Risuhin a5e51dbbdd Travis nightly builds from cron job (#218)
Signed-off-by: Max Risuhin <risuhin.max@gmail.com>
2019-02-14 16:57:03 +00:00
Max Risuhin ab91b8079f Bug/glfw monitors update 210 (#214)
* 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
2019-02-14 16:46:23 +00:00
Menno Finlay-Smits 35193b7981 Gofmt (#216)
* 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
2019-02-14 16:45:53 +00:00
Max Risuhin 6ded551de9 Automate ci running of vttest Test of screen features (#209)
Signed-off-by: Max Risuhin <risuhin.max@gmail.com>
2019-02-12 08:10:51 +00:00
Max Risuhin fcd5625a34 xdg-open launch target support for bsd systems (#211) 2019-02-11 20:32:40 +00:00
Max Risuhin 7caa46e443 Recalculate monitor based DPI scale if Window moved; Set DPI awareness of UI on Windows. (#206) 2019-02-11 20:27:42 +00:00
rrrooommmaaa 77348c2188 implemented 'area scrolling' (#202)
* implemented 'area scrolling'

* bug fix: area scroll down boundary check

* bug fix: ReverseIndex activates scroll down correctly
2019-02-11 20:27:08 +00:00
rrrooommmaaa bc1b3f0dfd Buffer fix (#201)
* bug fix: Save/Restore Cursor mess + some refactoring

* typo fix
2019-02-11 20:26:44 +00:00
Max Risuhin 1ca1b7c246 Introduce TestMain to run gui tests in goroutine locked to main app thread; Call LockOSThread only once. (#199) 2019-02-06 08:58:31 +00:00
Max Risuhin a7ed53c45a Update Windows icon to 128x128 px (#200) 2019-02-06 08:53:39 +00:00
Menno Finlay-Smits 150b0493de Add dpi-scale config option (#198)
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.
2019-02-05 13:18:24 +00:00
Menno Finlay-Smits c2b1b95343 Use primary monitor for DPI calc if monitor could be determined (#197)
This avoids a panic on startup in some specific situations (e.g. when
xrandr's --scale option is in use).
2019-02-05 13:17:07 +00:00
rrrooommmaaa 1f05951012 bug fix: character under cursor rendering (#194) 2019-02-05 13:16:38 +00:00
rrrooommmaaa 07952f7505 Underline support (#193)
* added Tab Stops support

* added support for Screen Mode (DECSCNM) -- reverse colors

* bug fix: cursor rendition in Origin Mode

* bug fix: SGR parameters handling

* Save/Restore Cursor updates. Partial charset implementation.

* added Underline support

* fixed underline position

* underline position measured in MinY
2019-02-05 13:16:16 +00:00
nikitar020 22a5e8063a Implement three selection modes: char, word, and line. Make selection work in the same way as in Putty. (#191) 2019-02-04 13:24:49 +00:00
Max Risuhin f7b162e83e Avoid double mutex lock on programmatic resize (#192) 2019-02-04 08:26:34 +00:00
rrrooommmaaa 0c7499bf7e Vttest 2 (#190)
* added Tab Stops support

* added support for Screen Mode (DECSCNM) -- reverse colors

* bug fix: cursor rendition in Origin Mode

* bug fix: SGR parameters handling

* Save/Restore Cursor updates. Partial charset implementation.
2019-02-01 17:03:41 +00:00
nikitar020 aad680440d Fix the bug when carriage returns doubled on input (#188)
fix tests
2019-01-31 18:48:55 +00:00
nikitar020 6ccfba976f Make launching URLs on Windows work (#185) 2019-01-30 15:43:15 +00:00
nikitar020 9190afef8a Fix issue: sometimes it cuts selected text when copying to clipboard (#186) 2019-01-30 15:43:08 +00:00
rrrooommmaaa 23797d50f3 Vttest 2 (#187)
* added Tab Stops support

* added support for Screen Mode (DECSCNM) -- reverse colors

* bug fix: cursor rendition in Origin Mode
2019-01-30 15:42:55 +00:00
nikitar020 97fe7362ce
Add "select with mouse to copy" / "right click to paste" functionality (#181) 2019-01-29 14:56:03 +00:00
Max Risuhin 23cf1e8b7d Update loginshell to version with Windows support (#184) 2019-01-29 14:06:58 +00:00
Liam Galvin 8cdbe2517d
Tidy up opengl logging to prevent false bug reports (#176)
* add missing deps

* tidying
2019-01-27 14:12:52 +00:00
Liam Galvin a07ac1b469
Add missing dependencies (#177) 2019-01-27 14:12:31 +00:00
rrrooommmaaa d2214b7915 added Tab Stops support (#175) 2019-01-27 11:56:23 +00:00