sharing programmer-to-programmer. please enjoy. pages are formatted for landscape tablet, laptop, or monitor.

vikeys (universal vi-style user interface)

vikeys is my implementation of a standard, high-efficiency, keyboard-centric, and deeply automatable user-interface.

i display it to others so they can learn from my mistakes and build a better one for themselves ;)

now i need a way to show the results without becoming a trainer. my answer, introductory demos.

these are in no particular order, and not indicating relative importance. just my whim.

visual layout

i have partitioned my window layouts into 25 function-specific “parts”. each is available to all applications, although gyges (technical spreadsheet), for instance, only needs a dozen. this standardization has been a major boon for me — helps focus each on doing one thing and doing it well.

all content and capability are managed in the yVIEW library which is presentation agnostic.

two separate thin presentation layers are shared across my libraries — for curses (yVICURSES) and opengl (yVIOPENGL).

second benefit, makes it easy to port features to other applications quickly.

movement keys

basic movement has become the province of a mouse or touch screen. wow. i have implemented a standard set of keyboard-centric moves, gotos, scrolling, and paging targeted at technical programmers and automation.

all content and capability are managed in the yMAP library which is presentation agnostic.

two separate thin presentation layers are shared across my libraries — for curses (yVICURSES) and opengl (yVIOPENGL).

i am targeting technical, keyboard, and clean automation.

universes

universes are independent and parallel work-areas, often called buffers, tabs, documents, etc. they can inter-relate and link to each other, but are shown separately.

most content and capability are managed in the host application and would be presentation agnostic.

two separate thin presentation layers are shared across my libraries — for curses (yVICURSES) and opengl (yVIOPENGL).

while an incredible feature to allow complexity to be managed, over-used it makes for nightmares.

content

entering content, whether source, for search, or commands, it all handled by the same interface so i can include the same features across the board (learn once)

all content and capability are managed in the ySRC library which is presentation agnostic.

two separate thin presentation layers are shared across my libraries — for curses (yVICURSES) and opengl (yVIOPENGL).

i wanted all the great editing features from my favorite editor, plus some. also, many elements are tuned specifically to aid automation.

all content and capability are managed in the yVIEW library which is presentation agnostic.

two separate thin presentation layers are shared across my libraries — for curses (yVICURSES) and opengl (yVIOPENGL).

although it was not critical to automation, it means only ffmpeg is needed to produce these demos.

visual notes

notes are a “overlay” that sits above the content and allows a trainer, demonstrator, or user-support resource to place boxed messages anywhere on the screen with call-out lines pointing at specific content.

location marks

location marks are temporary one-character labels/pins that are assigned to locations as a short-hand reference. learned once, they are intensely productive and vital to automation.

all content and capability are managed in the yMARK library which is presentation agnostic.

minimal presentation code is then added into the host application given the tight integration with content.

marks are intertwined with nearly any automation.

search, history, and command

i wanted an extensive search capability, so i built my own regex library (yREGEX), added six joining operators (and, or, xor, nand, nor, nxor), and a history function to allow updates and short-cuts. command are only discussed in relationship to thier use of history.

all content and capability are managed in yMARK (search) and yCMD (commands) which are presentation agnostic.

history is in yVIEW and its presentation is built into curses (yVICURSES) and opengl (yVIOPENGL).

i will definitely keep advancing both search and commands in the future.