Skip to content

TLogiviere/vala-panel

 
 

Repository files navigation

Vala Panel

This is Vala rewrite of SimplePanel, GTK3 LXPanel fork.

TODO

  • Rewrite core panel in Vala (0.2)
  • Rewrite builtin plugins in Vala using libpeas. (0.2)
  • Write Vala Panel Plugin wrapper for LXTray from simple-panel (it is less buggy) (0.2) (done in XEmbed plugin)
  • Make global menus from Unity Appindicator (rewrite it on Vala but without Ubuntu deps) (0.3) (see https://github.com/rilian-la-te/vala-panel-appmenu)
  • Write a window buttons applet (0.3)
  • Going to C again (0.4.X)
  • Write Notification Center Applet (0.6)
  • Wayland support, make compositor and complete Wayland support(1.0)
  • Taskbar DBus library for compositor (1.0)
  • Redo ValaPanelIconGrid using GtkFlowBox and such wonders. (not needed since I am already using FlowBox everywhere)

TODO for 0.4.0

  • Rewrite plugins API and core into C
  • Split Toplevel into 3 objects: positioner, layout and window
    • Create Platform (abstraction that will handle all positioning)
    • Allow Platform to be changed and independent form toplevel code
    • Create X11 platform (with current positioning code)
    • Introduce gravity-based positioning
    • Create Layout and made pack-type useful
    • Rewrite toplevel into C
    • Rewrite applet into C
  • Made PanelManager (done as Platform)

TODO for 0.5.0

  • Drop libpeas in favor to applets-new.
  • Be prepared for GTK4
  • Replace XEmbed to proxy and move it to extras

Some notes about realization

Plugin-based panel. Users/developers can provide their own custom applets, which are fully integrated. They can be moved, added, removed again, and even broken.

Dependencies:

Core:

  • GLib (>= 2.50.0)
  • GTK3 (>= 3.22.0)
  • libpeas-1.0 (>= 1.14.0)
  • valac

Plugins:

  • libwnck (>= 3.4.7)
  • libX11

Lastly, always set -DCMAKE_INSTALL_PREXIX=/usr when using cmake. Otherwise you won't be able to start the panel on most distros.

Author

Special thanks

  • Ikey Doherty for icontasklist.
  • XFCE Team for XFCE Tasklist.
  • LXPanel team for creating a base for my fork. Vala Panel uses LXPanel's tray code and other inspirations (including generic-config-dialog.vala and most positioning code in toplevel.vala).

Inspirations

About

Vala rewrite of SimplePanel

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 64.1%
  • Vala 31.3%
  • CMake 4.1%
  • Other 0.5%