Commit Graph

95 Commits

Author SHA1 Message Date
rrrooommmaaa 745f7a111c #116 URXVT extended mouse mode support (#267) 2019-03-23 00:49:00 +02:00
rrrooommmaaa 7ed7015499 correct handling (ignoring) Privacy Message sequence (ESC ^) (#264) 2019-03-23 00:30:34 +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
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
rrrooommmaaa 7ac6c801e2 fix data races (#230) (#235)
* fix data races (#230)

* Update CODEOWNERS
2019-03-07 11:15:48 +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 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 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
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
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
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
rrrooommmaaa d2214b7915 added Tab Stops support (#175) 2019-01-27 11:56:23 +00:00
rrrooommmaaa 4e7b8b40e7 Vttest (#173)
* Correct handling of DeviceAttributes request

* added DECCOLM support

* added DECALN control sequence support

* added NEL support

* bug fix: Erase To Cursor should be inclusive

* added support for 'Origin Mode' (DECOM) -- top/bottom margins only

* vttest test 1 screen 3: margin tests fixes

* added support for intermediate controls inside CSI sequence

* added support for LNM (Line Feed/New Line Mode)

* removed obsolete 'intermediate' parameter

* window resize on programmatic CSI resize

* DECCOLM should clear screen on both set and reset

* bug fix in autowrap mode

* TestCursorMovement runs all test cases; screen template images updated

Signed-off-by: Max Risuhin <risuhin.max@gmail.com>

* bug fix: line mode messing with autowrap

* added ResetVerticalMargins() method

* IsAutoWrap(), IsNewLineMode()

* corrected DECALN

* fixed NEL to work in Line Feed mode

* tyding up: removed map of 1 element

* Terminal state moved out from buffer

* fix
2019-01-25 22:43:56 +00:00
nikitar020 3ea8a70874 Clear selection on "reset mode" sequence (#172) 2019-01-25 18:17:04 +00:00
rrrooommmaaa 9c60167ca8 Vttest (#162)
* Correct handling of DeviceAttributes request

* added DECCOLM support

* added DECALN control sequence support

* added NEL support

* bug fix: Erase To Cursor should be inclusive

* added support for 'Origin Mode' (DECOM) -- top/bottom margins only

* vttest test 1 screen 3: margin tests fixes

* added support for intermediate controls inside CSI sequence

* added support for LNM (Line Feed/New Line Mode)

* removed obsolete 'intermediate' parameter

* window resize on programmatic CSI resize

* DECCOLM should clear screen on both set and reset

* bug fix in autowrap mode

* TestCursorMovement runs all test cases; screen template images updated

Signed-off-by: Max Risuhin <risuhin.max@gmail.com>

* bug fix: line mode messing with autowrap

* added ResetVerticalMargins() method

* IsAutoWrap(), IsNewLineMode()

* corrected DECALN

* fixed NEL to work in Line Feed mode

* tyding up: removed map of 1 element
2019-01-24 13:03:47 +00:00
Max Risuhin 16ea4133cb Run and validate vttest on Travis (#159)
* Run vttest on Travis to validate active buffer data and screenshot.

Signed-off-by: Max Risuhin <risuhin.max@gmail.com>

* Add deps sources to vendor

Signed-off-by: Max Risuhin <risuhin.max@gmail.com>
2019-01-21 18:48:46 +00:00
rrrooommmaaa c674cbd5c7 Correct handling of DeviceAttributes request (#139) 2019-01-10 20:55:17 +00:00
Max Risuhin 3d07409232 Sixel Part 2. Ignore embedded by Windows CSI and OSC sequences. (#132)
* Sixel Part 2. Ignore embedded by Windows CSI and OSC sequences.

* Sixel Step 3. Recover original Sixel sequence from Windows formatting
2019-01-10 14:09:32 +00:00
Max Risuhin a8ed9d472e Windows support and enhancements. (#123)
*  Windows support and enhancements.

 - Added basic platform abstraction layer for Pty and Process creation;
 - Added "platform" package that exposes a few interfaces and provides implementations for different platforms;
 - Windows build and dev env setup instructions;
 - Setup Travis and deploy git tags to GItHub releases;
 - Window scaling awares of monitor's dpi;
 - Resolved memory leaks on window resizing;
 - Default limit for terminal's buffer length.

Co-authored-by: nikitar020 <nikitar020@mail.ru>
Co-authored-by: Max Risuhin <risuhin.max@gmail.com>
Co-authored-by: Roman Shevchenko <rrrooommmaaa@mail.ru>

* ReadMe updated with Windows support; Detecting of currently used monitor.
2019-01-07 12:00:08 +00:00
Liam Galvin 177e928b71 more efficient text rendering and streamlining of output handling 2018-12-01 22:09:20 +00:00
Liam Galvin 414d23ccb1 Add support for CSI ICH (@) 2018-11-24 21:56:48 +00:00
Liam Galvin 1371ace95c Adding missing DL CIS handler 2018-11-15 11:33:35 +00:00
Liam Galvin 11489256ab fix issue with apt loading bars 2018-11-12 10:15:14 +00:00
Liam Galvin 13246ca931 gofmt 2018-11-11 12:58:05 +00:00
Liam Galvin c7ef0874aa debug mode 2018-11-04 20:31:32 +00:00
Liam Galvin 1c96cb83d5 add hinting 2018-10-29 20:35:49 +00:00
Liam Galvin 7052982d32 Fix for zsh 2018-10-28 16:36:26 +00:00
Liam Galvin 78d67302b4 finished sixel support 2018-10-28 15:26:12 +00:00
Liam Galvin 20c3c0cb14 sixel working 2018-10-27 22:06:26 +01:00
Liam Galvin 25802bc97a fix tabs 2018-10-26 09:52:49 +01:00
Liam Galvin 6df9ad1cf3 text selection and copy/paste 2018-10-24 12:15:43 +01:00
Liam Galvin 4a8a2226e7 fix vim bug and dodgy deletes 2018-10-23 17:13:58 +01:00
Liam Galvin 88b26ce91a add bracketed paste mode support 2018-10-23 15:10:58 +01:00
Liam Galvin 2cf4b36910 progress toward vim support 2018-10-23 14:22:27 +01:00
Liam Galvin fd29075bad fix scrollable region in htop 2018-10-23 10:39:23 +01:00
Liam Galvin 8ec2b4f18b Add true colour support 2018-10-22 11:10:34 +01:00
Liam Galvin 33b117c83a Add true colour support 2018-10-22 10:52:08 +01:00
Liam Galvin 561358a6ac Add 256 colour support 2018-10-22 10:36:55 +01:00
Liam Galvin cf2aef96e4 rename 2018-10-21 15:11:10 +01:00
Mikkel Oscar Lyderik Larsen 58d9b4a435
Change import to github.com
Changes the import from `gitlab.com` to `github.com`.

Without this Go gets confused.

```
main.go:13:2: cannot find package "gitlab.com/liamg/raft/config" in any of:
	/home/moscar/projects/go/src/github.com/liamg/raft/vendor/gitlab.com/liamg/raft/config (vendor tree)
	/usr/lib/go/src/gitlab.com/liamg/raft/config (from $GOROOT)
	/home/moscar/projects/go/src/gitlab.com/liamg/raft/config (from $GOPATH)
main.go:14:2: cannot find package "gitlab.com/liamg/raft/gui" in any of:
	/home/moscar/projects/go/src/github.com/liamg/raft/vendor/gitlab.com/liamg/raft/gui (vendor tree)
	/usr/lib/go/src/gitlab.com/liamg/raft/gui (from $GOROOT)
	/home/moscar/projects/go/src/gitlab.com/liamg/raft/gui (from $GOPATH)
main.go:15:2: cannot find package "gitlab.com/liamg/raft/terminal" in any of:
	/home/moscar/projects/go/src/github.com/liamg/raft/vendor/gitlab.com/liamg/raft/terminal (vendor tree)
	/usr/lib/go/src/gitlab.com/liamg/raft/terminal (from $GOROOT)
	/home/moscar/projects/go/src/gitlab.com/liamg/raft/terminal (from $GOPATH)
```

Signed-off-by: Mikkel Oscar Lyderik Larsen <mikkel.larsen@zalando.de>
2018-10-20 18:49:01 +02:00
Liam Galvin 8e5a9fb26d start scrolling 2018-09-02 20:59:35 +01:00
Liam Galvin 450f9f01bc better rendering 2018-09-02 15:13:33 +01:00
Liam Galvin f0a1742c0a Fix VT200 and X10 mouse mode support 2018-09-01 20:24:16 +01:00
Liam Galvin e5e7d09656 relocated font package and tidied up font rendering 2018-09-01 19:55:25 +01:00
Liam Galvin dab508e6e2 started tidying for margin setting 2018-08-31 20:43:28 +01:00
Liam Galvin 88528fc6b0 efficiency, introduced resize bug though :/ 2018-08-24 17:32:08 +01:00