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
