tuzig / terminal7 Goto Github PK
View Code? Open in Web Editor NEWA Next Generation Terminal running over WebRTC
Home Page: https://terminal7.dev
License: GNU General Public License v3.0
A Next Generation Terminal running over WebRTC
Home Page: https://terminal7.dev
License: GNU General Public License v3.0
Add two indicators one for the network connectivity and one for host communications.
Just pass it on and we can control tmux.
weird shit happens and you go back to home instead on going back to the first tab.
Make them smaller, same size as the buttons on the nav bar.
To recreate, connect to a remote host, change the wifi and try to reconnect.
When the user unchecks the "remember host" checkbox the host shouldn't appear on the home pages and shouldn't be stored to the db
Today we split the screen 50/50. It's smarter to read the finger's position and split accordingly.
Write a test that splits a few times and than close the panes in random. Assert the last pane takes the entire screen and that document
is clean.
Windows layout should be saved to local storage and read when re-connecting to the server. The layout is removed from storage only when the user asks to close the host.
There should be two ways of closing a window:
This issue is waiting for tuzig/webexec#29
webexec's API will add get_clipboard and
set_clipboard commands. This should allow the user
off a properly configured nvim to yank a line vim
and get it in the iPad's clipboard.
In the navbar and tabbar we should try and fill the entire bar where each button takes has the same width
We're missing a button - a +
- displayed at the right of the #tabbar
. Clicking on the button will create a new window with a single, focused pane. For now, use numbers for the window name. Renaming windows is another issue.
Today the place where the pane splits seems a bit random.
To recreate start with a |-
layout and choose the bottom left pane. zoom in, zoom out. Swipe on one of the other panes and you get... nothing. I suspect zooming in confuses hammerjs and we need to either find a better way to zoom or reset hammerjs on all the other panes after zoom out.
To keep things transparent and to make sure our resize works (which probably doesn't...) we need to add an indication of size change. When we get an Ack on a resize request we will display, roughly at the center of the pane the new dimensions as in "24x80" for a second and fade it away.
and make it work.
For easier debugging and tmux compatibility we need text serialization. Here's what it looks like in tmux:
0c36,173x44,0,0{80x44,0,0,4,92x44,81,0[92x21,81,0,5,92x22,81,22,29]}]
The first number is a checksum, followed by size of offsets of every cell with {}
to donate a vertical split groups of cells and []
for horizontal one.
When the user pans a border between two panes he wants to resizes the cells on both side of the border.
Changing the <a>
element to a <input>
Here' the message:
To start a connection run this command on your server and enter its IP addres:
$ webexec <offer>
dev host address: __________
The is the same offer we use in the body of a post to /connect
. When the user enters the address, t7 will try to connect to the server.
When I flip my tablet, the layout stay the same but the size in rows and cols changes. When this happens we need to call fit()
on all panes and send the new sizes. This requires API changes - adding support for an array as the value of resize_pty
.
probably using cordova
A 15 year old playing with the prototype tried dragging the tab name to the trash.
The UI should allow him to do it.
Today the tests runs with an empty index.html as a result all the code that adds elements to the screen is enclosed in an if (elem != null)
. It's not only an eye sore, but it also means that there's quite a bit of code that is not covered by the tests.
The ! creates a new window and moves the active pane there.
Pinch will let the user change a pane's font size. When the gesture ends, fit()
should be called on all the cells so that terminals will grow to fill their containing element.
Add a css bit:
.xterm { margin: 10px; }
Adds a bit of margin to the terminal text but confused the xtermjs's fit plugin which resulted in the having the last line hidden.
We need to support both iPad screen sizes in portrait & landscape orientation. In the future we'll have more screen sizes so it's better to make it responsive.
To recommended process is:
src/css/terminal7.css
Let the user move between panes by using CTRL hjkl like I'm used from tmux-vim-navigator
In general, the current page/function is coloured in magenta.
When clicking the trash the current pane should be closed
Today, all the commands are just CTRL key combination. For example CTRL-z is used to zoom in. The problem with that is that CTRL-z is important for the shell and we should be smarter and imitate tmux that have a leader key
used as prefix to all command keys. The default leader is CTRL-b but most people change it to CTRL-a which should be out default leader.
Clicking the looking glass should turn the nav bar into an input field and let me key for a search string. After each letter I key, matched strings are scrolled to and highlighted in the active pane.
Clicking enter looks for the previous match in the terminal buffer.
Completely remove the Terminal7.paneMargin
and use css margin
to set it.
Using a single finger to scroll makes terminal7 split vertically occasionally. By switching to two fingers scrolling we avoid the confusion and making sure scrolling won't split the pane.
to recreate: zoom in on a pane, disconnect the wifi. wait 5 seconds and press and zoom out. The disconnect dialog is there, it's probably with a lower z-index than the zoomed pane.
Zoom-in-zoom-out works only once.
press should pop up a modal allowing us to:
Today, when you hold a key down you get the key you pressed only once.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.