Feature ideas for samurai-x

clients

  • clients may not always have a frame
  • perhaps clients should have a list of decoration windows?
  • style shouldnt be in the client, should be in the decoration itself
  • essentially client should be the bare minimum

decorations

  • need some sort of minimal widget code for handling buttons etc

Features for version 0.1

  • simple moving and resizing of windows with mouse and from the window titlebar/borders
  • virtual desktops
  • simple key based shortcuts for execution of applications
  • basic config file ( perhaps use the same method as SX1? )
  • window maximizing and restoring ( no minimize until we've written some sort of status bar - unless something like pypanel can handle it, then maybe make it an optional feature )

Features for version 0.2

  • sloppy focus
  • more complete support for ICCCM
  • a non-python configuration loader (maybe json?)
  • simple plugin system
  • ...

Extra application ideas

  • set root background tool
  • tool to pipe/echo to the cut buffer
  • xscreensaver clone / python screensavers ( use pyglet maybe? )

Widget Ideas

Slots Idea

Windows/Systray? have "slots" that controls can be inserted into. eg:

window.slots["left"].append(widgets.Button(img="close.png", on_click=window.close))
window.slots["right"].append(widgets.Button(img="maximise.png", on_click=window.maximise))
window.slots["right"].append(widgets.Button(img="minimise.png", on_click=window.minimise))
window.slots["centre"].append(widgets.Label(caption=window.caption))

systray.slots["right"].append(widgets.Button(img="term.png", on_click=spawn("xterm"))

Its then up to the theme/renderer to place the controls in slots wherever they want.

Perhaps we dont even need slots? Maybe just have a list of controls and the theme/renderer gets to decide what to do with them