Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Non-canvas based terminal for jor1k #17

Open
neelabhg opened this issue Aug 29, 2014 · 6 comments
Open

Non-canvas based terminal for jor1k #17

neelabhg opened this issue Aug 29, 2014 · 6 comments

Comments

@neelabhg
Copy link
Member

Currently the jor1k GUI uses the canvas element to display the terminal. View jor1k's terminal.js to see how characters are being drawn.

The current terminal makes it impossible to resize properly, copy terminal output and paste into the terminal. The canvas is also only supported in modern browsers, increasing dependency of the UI on modern browsers.

I do not see a reason why a canvas would be required. How about having a text view? A text-view-based terminal is easy to resize, users can copy-paste from/into it, among other things. The task is to rewrite the terminal "driver" to use a different "display device" - instead of a canvas, use a text box or something else.

There are also existing projects for creating a terminal in the browser and maybe worthwhile to investigate. Some examples are jQuery terminal emulator plugin and term.js. showterm is also interesting to look at for an implementation. Most of them support sending commands to a backend server, but our backend is the jor1k system.

If you think this new driver belongs in jor1k, make a contribution there and reference this issue.

@neelabhg neelabhg self-assigned this Aug 29, 2014
@neelabhg neelabhg removed their assignment Oct 22, 2014
@neelabhg neelabhg changed the title Investigate non-canvas based terminal Non-canvas based terminal for jor1k Nov 20, 2014
@neelabhg neelabhg added this to the UIUC senior project fall 2014 milestone Nov 22, 2014
@scowalt
Copy link
Contributor

scowalt commented Dec 8, 2014

There has been some progress and discussion on this issue here. However, I'm not sure we'll be able to complete this issue fully as a part of the Fall 2014 milestone. There are some subtle things about this problem that I don't think we considered.

When we meet we should discuss how/if we should re-prioritize this issue for the coming semester.

@jdtran23 can comment on whether or not he agrees with my analysis of the issue.

@neelabhg neelabhg modified the milestones: UIUC senior project Spring 2015, UIUC senior project Fall 2014 Dec 11, 2014
@ysangkok
Copy link

ysangkok commented Jan 9, 2015

@neelabhg
Copy link
Member Author

@ysangkok This is great! Thank you very much. We will incorporate this as soon as we update our fork of jor1k (issue #51).

@neelabhg
Copy link
Member Author

@ysangkok I opened the issue s-macke/jor1k#58, which is preventing us from incorporating your changes into our project.

FYI, Two terminals were implemented by @wchill in this project, and he might be able to comment further on this.

@wchill
Copy link
Contributor

wchill commented Jan 29, 2015

I don't know what else I can really comment on, but in any case most of the changes made were (if I recall correctly) simply ensuring that all tty0 references were replaced with variables to enable selection of which terminal device to use, as well as updating the terminal interface to enable switching between the two terminals. I believe the current upstream version of jor1k simply leaves tty1 unconnected, and actually using it is a simple matter of changing the Linux disk image so that it will listen on that terminal device.

@ysangkok
Copy link

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants