A completely-from-scratch hobby operating system: bootloader, kernel, drivers, C library, and userspace including a composited graphical UI, dynamic linker, syntax-highlighting text editor, network stack, etc.
In ToaruOS 1.2.x, the panel was a Python application and offered a lot of extensibility - it was even used with a different set of widgets on the login screen.
During the NIH project, the Python panel was obviously dropped. It was replaced with a rebuilt version of the original C panel. Eventually it got most of the same functionality of the Python version, but without the modular design that went into the Python implementation.
There are two approaches that could be taken here:
Write a new panel in Kuroko (eg. by porting the Python one, or starting from scratch).
Keep the C panel but move widgets out to shared library plugins.
As alt-tab switching lives in the panel, I think it's best to maintain the performance the C version has offered.
The current set of widgets is:
Applications menu
Left-aligned, fixed width, should own the application menu.
Application menu probably needs to be rewritten to support reloading better?
Window list
Spans the available space in the middle.
Dynamic menus.
Needs access to window data, which still needs to live in the core panel for the alt-tab switcher?
Volume control
Simple icon on panel.
Menu with a custom widget (... that probably should be broken out / supported directly in the menu lib)
Network status
Simple icon on panel.
Simple menu.
Weather
Icon with text on panel.
Complicated by standard menu.
Date
Text on panel.
Custom menu widget.
Time
Text on panel.
Custom menu widget that needs to update often.
Log out menu
Simple icon.
Simple menu.
Other considerations:
Widgets should be individually configurable.
Date format, time format
Weather configuration (units, location)
Widget order (and existence) should be controllable
In ToaruOS 1.2.x, the panel was a Python application and offered a lot of extensibility - it was even used with a different set of widgets on the login screen.
During the NIH project, the Python panel was obviously dropped. It was replaced with a rebuilt version of the original C panel. Eventually it got most of the same functionality of the Python version, but without the modular design that went into the Python implementation.
There are two approaches that could be taken here:
As alt-tab switching lives in the panel, I think it's best to maintain the performance the C version has offered.
The current set of widgets is:
Other considerations: