spmenu-wiki/Goals.md

1.3 KiB

Goals

These are the goals that spmenu should achieve.

  • Read from file and standard input
    • spmenu should read list items from standard input, or really any file you can imagine.
  • dmenu compatible
    • spmenu should be compatible with all existing dmenu scripts. Maybe not rofi, even if it does have some features in common.
  • Customizable
    • spmenu should be customizable, when considered feasible through a libconfig configuration file read on startup.
  • Sort of minimal
    • While spmenu is significantly more bloated than dmenu, it should still be a simple program. It currently sits at ~8000 SLOC. To keep it simple a toolkit like GTK or QT should not be used. Cairo and Pango are used to draw fonts and shapes for both X and Wayland.
  • Good run launcher
    • spmenu should provide a useful $PATH run launcher, along with a .desktop entry run launcher. It should do this in the form of an external shell script, because "do one thing and do it well"
  • X and Wayland support
    • spmenu should support both X11 and Wayland natively. It should support wlroots-based compositors, but not necessarily GNOME or non-wlroots compositors.
  • No arbitrary SLOC limitation
    • suckless philosophy works well in many cases, but spmenu does not attempt to follow the suckless philosophy.