On Jul 19, 8:29 pm, Dean <
canada...@gmail.com> wrote:
> These are all very good suggestions. I certainly have my work cut out
> for me. Speaking of which, what's your (and everyone else's) feeling
> of priority on these items? Should some take precedence over a
> connection organizer?
Allright, so here's the list again, reorganised and a little expanded.
I tried to group the tasks logically per similarity or dependencies.
Tasks are not in order of priority per se, but in what I perceive to
be order of impact. By that I mean that first I'm grouping things that
should improve usability and be of immediate benefit to everyone, and
from them on the features that I believe would require more involved
programming.
That said, tackle these any way you like, Dean. The list is here more
to help with documenting the suggestions and fleshing out the
dependencies rather than to provide some guidance of order or demand
that something gets done. Remember that you have the power to veto any
of them, and I'm (well, we all are, I assume) interested in knowing
which of those you liked for real and which you'd rather not take on
for the time being. Then, concentrate on the features and improvements
that resonate with your needs and tastes to build motivation to deal
with the boring tasks :)
P.s.: Well, seems that I just took the role of features janitor :D If
you'd like to contact me directly for anything, for example if you'd
like me to maintain a Wiki page with this list or have me collect and
organise other suggestions and feedback you received on your email or
international App Stores, feel free to.
Cheers,
A.
---------------------------------
== INTERFACE ==
-- 0) Help --
0.1) A walkthrough when the application is first started to explain
all those wonderful functions and how to access them ;) Special care
to mention how to access the connections menu first of all.
-- 1) Mouse --
1.1) "Touchpad" mode for mouse control, in addition to the current
"touchscreen" mode.
1.2) Support for 3rd mouse button.
-- 2) Pie menu --
2.1) Pie menu on top of everything. Allow it to have portions outside
of the visible screen (rationale: with carefully positioned shortcuts
this might be exactly what the user wants for quick and unobtrusive
shortcut access).
2.2) Ability to invoke the pie menu via simple touch instead of hold.
Make the hold gesture enter selection mode.
2.3) Ability to make either the whole pie menu sticky, or on a per-
slot basis (I'm liking the latter better now). Make direction keys
(cursor, pagination, home/end) sticky by default. Don't unstick on
tapping keyboard/mouse keys, only some other "free" portion of the
screen.
2.4) Secondary "home" panel for the pie menu accessible via 2-finger
touch/hold.
2.5) Move the toolbar funcionality to the pie menu; have it contain
all the modifiers (esc, ctrl, alt/option, winkey/command, Fn), forward
delete (del), AltGr (and "context menu" as an option). Consolidate the
connection manager keys ("X" on console, "<" on GUI) into a single
entry and put it on the remaining slot of the secondary pie home.
Works best in tandem with (2.4)
2.6) Pie menu on the GUI mode inside a floating window (like the
current "extra keys" window). Dismissable via the stickyness settings
of (2.3). Depends on and partially supersedes (2.3).
2.7) Consider putting the pie menu inside a floating window for
console mode as well. Doesn't depend on, but uses the same code as
(2.6).
2.8) The middle of the pie menu is a VERY accessible area (zero effort
in Fitts' law) and I believe it's a colossal waste to use it only for
scrolling the pie menu panels. Paginate the pie menu using the same
scheme as the floating window seen on the GUI mode. Depends on (2.6,
2.7).
2.9) Kill the topmost toolbar to reclaim screen estate. Depends on
(2.5, 2.6), and loosely on (2.7)
-- 3) Screen --
3.1) Deeper zoom levels.
3.2) Configurable bell, audible and visual, not mutually exclusive.
Screen flash and shake as visual bell options. Have some tone choices
for audible bell, as well as a mute option.
3.3) Notification system, possibly on a message tray/billboard that
scrolls down from the top of the screen.
3.4) Terminal activity alert. Depends on (3.3).
-- 4) Selection --
4.1) Allow partial selections, currently it always selects whole
words.
== INPUT ==
-- 5) Swipe gestures --
5.1) Introduce swipe gestures as a method of shortcut invocation. This
would require disabling the multi-terminal switching by swiping; but
see (2.5, 9.1).
5.2) Verify whether it's possible to detect two-finger swipe. Depends
on and complements (5.1).
5.3) Visual feedback on the swipe gestures; just draw a line on the
screen that indicates the finger movement and show a notification of
what shortcut/modifier was activated. Depends on (3.3, 5.1).
-- 6) Keyboard --
6.1) Ability to hide the keyboard on vertical mode as well. Depends
loosely on (2.4, 2.5, 2.6, 2.9, 5.1, 5.2)
6.2) Translucent keyboard mode for vertical orientation. Depends on
(5.1).
-- 7) Modifiers and special keys --
7.1) Feedback on the key combination that is sent to the server.
Depends on (3.3)
7.2) Make Fn accept functions over 1-10. Stick Fn plus numerical keys,
unstick on return. Depends on (2.5, 2.7).
7.3) Ability to send modifiers raw; currently they must always be
combined to a non-modifier key. Depends on (2.5, 2.6, 2.7).
7.4) ^H instead of raw backspace; configurable (done?)
7.5) Generalise (7.4) into a more configurable keymap, full with ctrl,
meta, esc and other escapes. Actually, see (c.1) for a more
comprehensive solution.
-- 8) Macros --
8.1) Make it easier to input escape codes when building macros. I like
the way MobileTerminal uses the bullet as a symbol for ctrl, but it
doesn't scale to other symbols like meta and esc, so some other
solution must be found. Borrows from (7.4).
8.2) Configurable cursor position for macros, like what MobileTerminal
does. Depends on (8.1).
== CONNECTIVITY ==
-- 9) Connection manager --
9.1) Revamped connection manager.
9.2) Move the "email log" function to a submenu in the connection
manager. Depends on (9.1).
9.3) Terminal session manager, possibly a front-end to "screen".
Should connect and verify the list of open "screen" sockets and offer
to resume one. Depends on (9.1).
== X11 AND CONSOLE ==
-- 10) Font handling --
10.1) Verify the possibility of reusing the system fonts on the iPhone
OS instead of bundling lots of fonts with iSSH. As soon as Unicode
enters the game, bundling fonts becomes very uncomfortable. Ideally
only fonts that bring real advantages over the system fonts should be
bundled (like ANSI BBS). Seems doable, as MobileTerminal uses system
fonts.
10.2) Emulate missing X11 fonts by using a scaled outline font. Works
best in tandem with (10.1).
+++ WHOLE NEW FEATURES +++
== a) TUNNELING ==
a.1) Embedded Webkit view, so one doesn't need to leave iSSH to grab
something from the web.
a.2) Embedded Mail view, so one doesn't have to leave iSSH to email
logs.
a.3) SOCKS-over-SSH tunelling for the Web view, and if possible also
for the Mail view. I believe the latter is only possible if an email
account is configured to use localhost as the server, which would in
reality only work when iSSH is active to create the a tunnel. Depends
on (a.1, a.2)
== b) DOCUMENT HANDLING ==
b.1) SFTP support, transfer files to/from the sandbox
b.2) A way to fetch and upload files from/to the phone/iPod, perhaps
via a simple Web server; depends on (b.1)
b.3) A document viewer, perhaps with a plaintext editor. Depends
loosely on (a.1), and strongly on on (b.2) and Apple-provided viewers.
b.4) Ability to download and save arbitrary stuff from the web view.
Works best in tandem with (b.2). Depends on (a.1).
== c) KEYBOARD ==
c.1) Do away with the iPhoneOS widget and roll out a custom, fully
configurable one with Unicode support and what have you. iKeyEx 5-Row
Keyboard with cursor keys and numeric keypad for inspiration.
Supersedes (7.4, 7.5).
== d) CONNECTIVITY ==
d.1) RDP
d.2) NX
d.3) Audio tunneling for RDP, and maybe VNC too via ESD. Depends on (d.
1).
d.3) Multiple simultaneous X11/VNC/what-else connections. This one
will be a little tricky, as it will require freezing the current
display server state and buffer any additional messages for the
background sessions. Care to discard older update messages when new
ones draw over the same screen region. Checking what the null X server
does might help, as well as how the NX server maintains state. Not
trivial.
-x-x-x-x-x-