At the moment, the UI is very rudimentary:
- the video frames are displayed in the terminal, cropped/centered depending on the the terminal size
- the windows title is used to display the current status
- the Tab key is used to cycle the color modes
- the app is exited by typing
ctrl-c or ctrl-d
This could be improved for a more user friendly interface, that could:
- report the current configuration (color mode, blit mode, video size)
- document the supported hotkeys
- toggle fullscreen mode to show/hide those informations
One such feature is demonstrated by @jquast in #23 with an overlay encouraging the user to resize their terminals.
Some other examples of blessed apps can be found here. In particular:
- plasma has a bottom status bar
- celestial has both a top control bar and a bottom status bar, plus it goes full screen when
ctrl-f is pressed
As a side note, I'm also tempted to bind the control features of the emulator to the F1 to F12 keys. As of now, only color-mode cycling is implemented (using the tab key), but other features might be added in the future:
- blitter cycling
- emulator pause
- emulator speed control
- etc.
Since the game boy controls are bound to physical location on the keyboard, there is a possibility of conflict between game boy inputs and the app interface (which is layout-aware). I can see two approaches to avoid those conflicts:
- use special keys for control, like the
F1 to F12 keys mentioned above
- use a modifier dedicated to the app control, such as
ctrl (in this case we ignore the gameboy events if the ctrl modifier is active)
In both cases, blessed give us the tools to implement this properly
At the moment, the UI is very rudimentary:
ctrl-corctrl-dThis could be improved for a more user friendly interface, that could:
One such feature is demonstrated by @jquast in #23 with an overlay encouraging the user to resize their terminals.
Some other examples of blessed apps can be found here. In particular:
ctrl-fis pressedAs a side note, I'm also tempted to bind the control features of the emulator to the
F1toF12keys. As of now, only color-mode cycling is implemented (using the tab key), but other features might be added in the future:Since the game boy controls are bound to physical location on the keyboard, there is a possibility of conflict between game boy inputs and the app interface (which is layout-aware). I can see two approaches to avoid those conflicts:
F1toF12keys mentioned abovectrl(in this case we ignore the gameboy events if thectrlmodifier is active)In both cases,
blessedgive us the tools to implement this properly