Skip to content

Panel improvements #419

@klange

Description

@klange

I'm just going to describe some assorted thoughts on ways to improve the panel, so I have them written down somewhere.

  1. Add user configuration for widgets. We currently hardcode the list (and its ordering) of widgets to load, but a user config could allow for more customization, disabling things, swapping them out.
  2. With the above, put a panel on the login screen with things like the volume and network widgets, maybe a slightly different version of the logout menu button with shutdown/restart options.
  3. Add configuration for the widgets themselves. Different clock formats, different settings for the window list, etc.
  4. Maybe rethink the API so that multiple instances of a widget can be created. Multiple menus? Multiple different clocks, maybe with different timezones?
  5. Fix up the application menu widget so it can clean up and refresh its menu. We used to support this in the ancient Python version.
  6. Move the Alt-F2 and Alt-Tab functionality to plugins. Could be 0-width widgets loaded by the same interface. Means these things can be turned off, or replaced with alternative implementations with different designs. Also cleans up the core panel and makes it more minimal. Current Alt-F2 is also really mediocre; separating it into its own module might make it easier to improve.
  7. Fix up places where the panel is assumed to be on the top of the screen so we can put it... on the bottom? Or the sides?
  8. Increase the limit on "top" windows from 1 to infinity, so we can have multiple panels?
  9. Mouse interactions on the Alt-Tab switcher? I think Gnome has this, and I know macOS does. Might have to do something to have interactions with alt held passed along as normal mouse events...
  10. Clean up the API in general. We export symbols like launch_application_menu and redraw, but all of these should be prefixed.
  11. Panel widgets in Kuroko somehow?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions