Commit Graph

26 Commits

Author SHA1 Message Date
Benjamin Summers
09b30bf169 Collect terminal size. 2019-09-17 23:58:42 -07:00
Benjamin Summers
cd07b10946 Impement basic support for multiple terminals pretending to be one terminal. 2019-09-17 23:17:54 -07:00
Benjamin Summers
ebf3d3e5c6 Move terminal client API into it's own module. 2019-09-17 22:22:19 -07:00
Benjamin Summers
4fdfab66df Minor 2019-09-17 22:06:40 -07:00
Benjamin Summers
99dd161b86 Simplify term interface. 2019-09-17 22:01:44 -07:00
Benjamin Summers
c4be3e4a19 Terminal loop cleanup. 2019-09-17 21:41:31 -07:00
Elliot Glaysher
c7945689d2 Terminal spinner implementation in King Haskell.
This gets a terminal spinner to spin after a short delay like in
vere. This also fixes a bug in termRefreshLine which was screwing
up redisplay of the terminal spinner; it hadn't been translated
from C properly.
2019-09-16 16:51:17 -07:00
Elliot Glaysher
229870e0cc Fix atom putfiles + do unicode accumulation correctly. 2019-09-13 11:46:03 -07:00
Elliot Glaysher
189f03e285 Stylish + 80 col 2019-09-13 11:02:41 -07:00
Elliot Glaysher
3927e4d50a Clay syncing.
This performs all normal filesystem operations. We can take
filesystem hash snapshots on startup, write the contents of an
%ergo to disk, send changes to Urbit with an %into, and finally
delete mount points when they are %ogre.

This doesn't deal with updating an initial filesystem on first
run with -A, or with acquiring a lockfile, which should happen
elsewhere.

Can take filesystem hash snapshots on startup, and can write the
contents of an %ergo to disk.
2019-09-11 16:20:05 -07:00
Elliot Glaysher
5e9822d268 Make the compute thread take a request instead of an event.
The compute thread should take an event or a save request or a
shutdown request. We now take snapshots every 120 seconds like
vere does, and take a snapshot before clean shutdown.

(Also changes the terminal driver so that it doesn't unboundedly
block shutdown.)
2019-09-06 12:59:56 -07:00
Elliot Glaysher
75e44f95ee Remove warning override. 2019-09-04 13:02:51 -07:00
Elliot Glaysher
c635abd58e Hook up ~& to the terminal driver. 2019-09-03 15:17:20 -07:00
Elliot Glaysher
8af0d7bef9 Move all of Term.hs into RIO. 2019-09-03 11:02:54 -07:00
Elliot Glaysher
22647bb91e Rough draft of putfiles. 2019-08-30 13:26:51 -07:00
Elliot Glaysher
80e71b2532 Actually send ^D to the Urbit; handle %logo in response to shutdown. 2019-08-30 11:01:37 -07:00
Elliot Glaysher
206230cec6 Get ^D to end your Urbit session.
This also does a bunch of style cleanup and rearranging so that we
can have the reader thread end.
2019-08-29 16:35:52 -07:00
Elliot Glaysher
8ac461477a Log "interrupt" on C-c properly. 2019-08-29 15:05:01 -07:00
Elliot Glaysher
e2d304d43c At least detect when we have ^C or ^D. 2019-08-29 14:54:34 -07:00
Elliot Glaysher
6f6811def5 Very basic input works. Edge cases unhandled. 2019-08-29 13:19:06 -07:00
Elliot Glaysher
70ef39210f Get basic text working. 2019-08-29 11:12:50 -07:00
Elliot Glaysher
cdcdc6a59e Merge remote-tracking branch 'origin/bs/king-logging' into eg/uterm 2019-08-29 10:30:53 -07:00
Elliot Glaysher
d1a9eaeaa0 A closer copy of the term.c output.
After looking at vty for a bit, I decided to just do a straight port
of term.c's raw output code. This gets the "~zod:dojo" in the right
position, though the other logging output screws things up a bit.
2019-08-28 17:08:47 -07:00
Elliot Glaysher
555b9e7dcf Moved terminal initialization up to Pier.
Joe told me to look at the Jaque terminal and I just did. That uses
the Lanterna Java library to handle terminal output. Joe then suggested
that I move the entire system here to curses or another similar library.
2019-08-28 13:17:01 -07:00
Elliot Glaysher
994c5948e1 Construct the %blew and %hail initalEvents correctly. 2019-08-27 16:22:01 -07:00
Elliot Glaysher
5e3e1e7c1a Skeleton terminal implementation.
This sends the right events on startup, and there's a minimal key
reading logic, but not much else works yet.
2019-08-27 15:29:11 -07:00