Commit Graph

106 Commits

Author SHA1 Message Date
Kevin Lange
799d36a983 Fix GPF in VGA terminal on VirtualBox 2016-09-04 19:05:12 +09:00
Kevin Lange
54d418cd8b First pass at modifier+arrows in terminal.
This is kinda rough and needs a finishing touch.

- Adds ncurses-specific terminfo entries for modifiers.
- Supports modifiers in the terminal itself.
- Updates the vim config to understand ctrl-arrows.
- Adds limited support for some modifiers in lib/kbd
  (as used by rline)
- Adds limited support for Ctrl+Arrows to rline
  (needs major improvements, only jumps to spaces)
2015-11-09 17:24:51 -08:00
Kevin Lange
02fbd0ef4b Fix weird VGA cursor positioning by moving it offscreen 2015-09-04 13:48:47 -07:00
Kevin Lange
0553a0802f Support DEL, HOME, END, INS, shift+TAB
Adds support for these keys in lib/kbd, adds mappings to terminfo,
supports them in the terminal, and adds support for HOME, END and DEL
to the shell.

Closes #71.
2015-08-20 10:48:53 -07:00
Kevin Lange
4cf6843441 Prune garbage from keyboard from before terminal started 2015-07-12 19:23:59 +09:00
Kevin Lange
06b57c14f8 Use pure-software cursor for VGA terminal, works better 2015-07-12 19:15:29 +09:00
Kevin Lange
7f608107dc Add half-filled character to VGA terminal mappings 2015-07-12 19:08:30 +09:00
Kevin Lange
20c9535d29 Clean up termemu and add a new kernel vga logging mechanism 2015-06-01 00:20:02 -07:00
Kevin Lange
a6f071f9c8 New scroll rows should set background colors. 2015-05-01 00:36:50 -07:00
Kevin Lange
dd74cdcec2 Map Vim config'd tab/space characters in VGA terminal 2015-04-29 16:29:36 -07:00
Kevin Lange
4fd1ae9aa3 Support scrollwheel mice 2015-04-26 18:05:14 -07:00
Kevin Lange
a3f9ab465b Basic xterm (?1000 and ?1002) mouse support 2015-04-26 17:14:14 -07:00
Kevin Lange
1147d45cdb Don't blink the cursor in unfocused terminals 2015-04-05 15:50:52 -07:00
Kevin Lange
fe95e33422 Fall back to variable-width font in terminal 2014-09-08 21:17:46 -07:00
Kevin Lange
aaeb7d10f4 Port a bunch of other stuff to use getpwuid, etc. 2014-08-26 22:12:33 -07:00
Kevin Lange
a0a6ece24d Run $SHELL on terminal startup instead of hard-coded /bin/sh 2014-08-26 21:37:45 -07:00
Kevin Lange
ae570f8f48 Toggle decorations in terminal with F12 2014-08-04 21:54:18 -07:00
Kevin Lange
49752793b7 Close button support in decorations library 2014-08-01 21:17:41 -07:00
Kevin Lange
b59871ca67 More random terminal cleanup while we're here 2014-06-08 19:47:24 -07:00
Kevin Lange
546ec13ec2 Use diamond as Unicode replacement character in vga text-mode 2014-06-08 00:32:00 -07:00
Kevin Lange
827bd1fe04 Fix horizontal lines in vga text mode 2014-06-08 00:29:56 -07:00
Kevin Lange
ef7d72c1e1 License headers and a tool to generate them 2014-06-07 23:13:29 -07:00
Kevin Lange
e4732df6e1 And support dynamic (24-bit, 32-bit) colors as well 2014-06-07 22:20:27 -07:00
Kevin Lange
eccbd5d41e Map 256-color palette to VGA colors 2014-06-07 22:14:03 -07:00
Kevin Lange
b114700751 Fix scrolling/overhang in vga terminal 2014-06-07 22:13:51 -07:00
Kevin Lange
7e67bf0727 Break out of that particular escape on linefeed 2014-05-30 21:29:29 -07:00
Kevin Lange
e157147550 Fix buffer overflow in termemu 2014-05-30 21:20:13 -07:00
Kevin Lange
ab2a9f056f Quick and dirty display server nesting - lots of mouse event changes 2014-05-26 12:43:22 -07:00
Kevin Lange
ce0dacb912 Use spinlock.h instead of continually definign this as static in a bunch of apps 2014-05-18 19:34:49 -07:00
Kevin Lange
0cdfcf766e Support frameless non-fullscreen terminals 2014-05-18 19:23:05 -07:00
Kevin Lange
71946d8a97 Invert resize rounding behavior for terminal 2014-05-18 18:10:18 -07:00
Kevin Lange
068f933a71 Kill some excessive debug output in the terminal 2014-05-18 12:24:17 -07:00
Kevin Lange
2675532013 Add a terminal option to disable rounding resizes to cell widths 2014-05-18 12:18:34 -07:00
Kevin Lange
3cb7b18c60 Client-initiated window drag 2014-05-18 11:54:20 -07:00
Kevin Lange
c231d1c090 Cleanup some direct system calls in userspace 2014-05-11 17:40:16 -07:00
Kevin Lange
bcb86108ce Fix terminal damage rects 2014-05-10 14:02:49 -07:00
Kevin Lange
601768c4bf Panel icon support 2014-05-03 13:20:16 -07:00
Kevin Lange
74d710fe5f Supplementary plane support (emojis) 2014-04-29 00:29:19 -07:00
Kevin Lange
29841b03fc Fix waitpid calls to account for EINTR 2014-04-29 00:28:41 -07:00
Kevin Lange
4d8335ad75 Implement proper wait/waitpid.
This is a pretty big commit, so let's run through it in parts:

- All of the userspace changes are to switch away from syscall_wait
  Mostly, this is to waitpid; some things were tweaked to do things
  "properly" instead of waiting for particular processes. Init has
  been fixed to do a proper spin wait.
- syscall_wait is gone - as are its uses. newlib bindings have been
  using just waitpid for a while now.
- waitpid now performs like a Unix waitpid
- process reaping is no longer a "do this on next change thing":
  it happens when a process is waited on, like it should
  (That means we can have real zombies: terminated processes that
  have not yet been waited on)
- Reparenting of children to init has been implemented, so you
  can fork-daemonize!

Overall, this is pretty big... So I hope it doesn't break everything.
2014-04-27 01:37:33 -07:00
Kevin Lange
1487ad17e5 Fix focus default in terminal 2014-04-24 22:36:20 -07:00
Kevin Lange
d967fae3a5 Track down the root of that malloc problem 2014-04-20 13:19:52 -07:00
Kevin Lange
140f5a71e0 Reenable scrollback (bit glitchy) 2014-04-19 19:51:11 -07:00
Kevin Lange
05e3276858 Workaround a weird glitch in newlib's malloc 2014-04-19 19:10:44 -07:00
Kevin Lange
9e152263c7 fix terminal rendering on scroll 2014-04-19 15:00:26 -07:00
Kevin Lange
68892b9023 Terminal should only resize to nice sizes if it can. 2014-04-18 20:07:46 -07:00
Kevin Lange
fb67eca4ff support resize in terminal 2014-04-18 19:46:05 -07:00
Kevin Lange
9264a203dd Quick and dirty session ending support with a broadcast event 2014-04-18 19:23:45 -07:00
Kevin Lange
700e711606 Start on panel functionality: Window title advertisement 2014-04-18 00:18:19 -07:00
Kevin Lange
939749edf9 unbork terminal 2014-04-16 11:18:40 -07:00