Module ideas Thread last updated on 2003-10-25 18:39:58

Posted by member 71746 on 2003-10-25 13:40:16

Ok so here's my thought:

Litestep is frickin cool compared to windows explorer, but it's par compared to enlightenment. There isn't really anything truly innovative in litestep, it has nothing to offer that can't be found in other shell engines. This will soon change ;) Both my suggestions would seem to be best implemented as an expansion to grdTransparent.

1) Window-class-based transparency settings, defined in a separate .rc file (so you have a list of common programs like IE, Explorer.exe, Notepad, Textpad, Word, Excel, Opera, Trillian, ICQ, etc etc). This way instead of having to use AppTrans and assign a hotkey to toggle the transparency of the currently focussed window (a feature that should be implemented in grdTransparent as well), the windows will automatically be transparent when opened. As far as I know englightenment has support for that so it's not innovative, but it's definitely something that litestep should catch up on and "get with the program" so to speak.

2) "Ghosting" of modules. This would basically involve subclassing a given module in the same way they're subclassed for alpha-blending under grdTransparent, but instead of just alpha-blending the module it would catch mouse-clicks sent to the module, and send them to the window below, making the module act effectively as a ghost, letting mouse-clicks "pass right through it". Practical application: We can have a clock or VWM floating on top of the z-order, and have it avoid getting in the way A) visually, by alpha-blending it at ~132ish so you can clearly see what's below, and B) physically, by ghosting it so it behaves as though it wasn't there.

For the ghosting it'd be nice to be able to define specific ghosting settings for specific modules, the way you can define alpha-blending for specific modules, and also to define default ghosting settings. ie:

grdTransparentDefaultGhostingThreshold
// defines the alpha-blended level where a module will automatically be ghosted.
// 0 = never ghost any modules that don't have specific settings. (default)
// 255 = ghost all modules
// 165 = ghost any module with an alpha-blend of 165 or lower

grdTransparentApplyDefaultThresholdToWindows
// true = apply grdTransparentDefaultGhostingThreshold to application windows as well as modules.


This is something I've never seen in any shell engine and would be the first truly innovative module. It would finally give litestep the ability to boast features no other shell can offer at this time. Here's where it would get kinda tricky though..

I'd like to be able to set specific click-action settings for specific modules. Maybe using a script-based config or something..

grdTransparentGhostingSettings "$ConfigDir$ghosts.rc"
// points to the script-file containing ghosting settings

*grdGhost module "LSXCommand"
*grdGhost threshold 192
// ghost if less visible than 192
*grdGhost click left .none SendBelow
// if user left-clicks with no modifier keys, send click to window below module.
*grdGhost click left SHIFT SendTo
// if user left-clicks with SHIFT key pressed, send click to the ghosted module
*grdGhost click left CTRL+SHIFT SendShiftTo
// if user left-clicks with CTRL and SHIFT pressed, send a shift-click to the ghosted module
*grdGhost drag left .none SendTo
// if the user left-drags with no modifier keys, send the drag to the module
*grdGhost drag right CTRL+ALT SendBelow
// if the user right-drags with CTRL and ALT pressed, send the drag to the window below
*grdGhost ~module


This way the user can define as many variants of modifier keys to be used with as many various ghosted modules as they want :)

So those are my suggestions as to how to make litestep original :) With these expansions on grdTransparent, the Gathering Theme would actually have something brand new, instead of just being "another litestep bar-theme" :D

Posted by member 1316 on 2003-10-25 15:31:07 link

actually, I really like the ghosting idea. that could be REALLY cool. unfortunately, I'm not a programmer, so I can't help. sorry. :(

Posted by member 7223 on 2003-10-25 16:11:32 link

About applying alpha transparency automatically to some window class, and to module's items (for example, only one label and not all), you can use lsdynamic.
I've already made scripts to easily do such things and I've posted some tutorials in litestep-france.net (but these tutorial are written in french)
Maybe should I add them to the code section ?

Posted by member 71746 on 2003-10-25 18:39:58 link

That would be nifty :D Though I can probably figure it out myself now that I know lsDynamic has that ability :) Thanks!

Still lookin for someone who thinks they're up to the challenge of creating a ghosting mechanism ;)