I know that users usually request features, but I have a feature idea...
I could incorporate ImageMagick library (an excellent image manipulation library - check it out on http://www.imagemagick.org\)
It would allow not only support for a large number of image formats for backgrounds, but also a nice set of image manipulations. Example: fake transparency (i.e, using your wallpaper as background), decrease number of colors to 2 and add some contrast :-) Or, just blur your background image and add some noise...
What do you think? Should I bother?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Maybe. In my opinion, it would be best used if you could provide some hooks to change parameters in-fly. So that you can noise the picture out if the Console gets out of focus, possibly even monitor the topmost program executing and make it possible to ie. darken and blur the image if the ssh is running etc. MAYBE even provide a sort of hook for external processes, used at least by another little proggie of your design, to change the params in scripts etc. Like cmd.exe's color, on big, bad steroids.
Sounds feasible?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Support for monitoring stuff that happens in Win console is really bad... There's not much I can do here.
If I add this, it will probably include simple effects (Console window comes to foreground, goes to background, etc) The problem is that I'd have to keep 'pre-rendered' images for each effect in order to keep performance up...
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I think it sounds like a good idea (to use ImageMagick library). Supporting more image formats would reduce the storage requirements (though that's not *that* big a deal with modern hard drives). The changing of effects for foreground/background status sounds great.
(What other events could be monitored?
- Drag-and-drop? Paste? You could specify a sound file to play ("plop" sound effect?) or some visual signal to indicate drop/paste successful/unsuccessful (add red filter to window to indicate data type on clipboard cannot be pasted, e.g.).
- Move operations could use a motion-blurred version of the background image.
- Resize operations could dim or brighten the window while resizing.
- Different background for maximized windows.
- Define your own window message for "select background <n>" and programs that can be scripted to send user-defined window messages could be used as the user wants to change background in response to events of their choosing. (Keystrokes, being on a particular virtual desktop, etc.)
You could also provide a "random background" feature that uses a random background from a given directory (or directories) when starting up or at intervals, or in response to user-define WM_ message.
OK, enough wild brainstorming... :)
I'd say look at putting ImageMagick lib in - the support for multiple formats and other effects is worth it.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
All your suggestions are nice ideas, but here's the problem: image manipulation is expensive operation (i.e. time consuming) There are two options:
1. pre-render images for each effect. This would cause huge memory usage. All images are held in memory as bitmaps. Calculate how much memory a 1280x1024 true-color (that's 3 bytes per pixel) bitmap needs. Then multiply by number of effects you'd like to have :)
2. apply effects on-the-fly. This is *slow*. We'll need much faster machines before using this solution :)
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Sure they're expensive - that's why I said "wild brainstorming" :) I didn't seriously expect you to implement them, at least until you get that 300GHz machine with 100GB RAM! ;)
But seriously now, do you think you'll use the ImageMagick library? That sounded like a good idea, to provide support for more image formats at least.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I won't be using ImageMagic... It's a bit too big. Instead, I've decided to use FreeImage library. It's very nice, rather small, and I can patch in any image-manipulation routine I'd like.
The new version of Console that uses FreeImage is already in the works. For now, it will be used only to support more image formats. I will not be adding any special effects at the moment... I'll try to fix multimonitor bug first.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
That sounds good too - it doesn't matter to me which, the benefits are still there. More image format support and ideally more potential for future features and more robust image handling.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I know that users usually request features, but I have a feature idea...
I could incorporate ImageMagick library (an excellent image manipulation library - check it out on http://www.imagemagick.org\)
It would allow not only support for a large number of image formats for backgrounds, but also a nice set of image manipulations. Example: fake transparency (i.e, using your wallpaper as background), decrease number of colors to 2 and add some contrast :-) Or, just blur your background image and add some noise...
What do you think? Should I bother?
Maybe. In my opinion, it would be best used if you could provide some hooks to change parameters in-fly. So that you can noise the picture out if the Console gets out of focus, possibly even monitor the topmost program executing and make it possible to ie. darken and blur the image if the ssh is running etc. MAYBE even provide a sort of hook for external processes, used at least by another little proggie of your design, to change the params in scripts etc. Like cmd.exe's color, on big, bad steroids.
Sounds feasible?
It would be difficult at best :)
Support for monitoring stuff that happens in Win console is really bad... There's not much I can do here.
If I add this, it will probably include simple effects (Console window comes to foreground, goes to background, etc) The problem is that I'd have to keep 'pre-rendered' images for each effect in order to keep performance up...
I think it sounds like a good idea (to use ImageMagick library). Supporting more image formats would reduce the storage requirements (though that's not *that* big a deal with modern hard drives). The changing of effects for foreground/background status sounds great.
(What other events could be monitored?
- Drag-and-drop? Paste? You could specify a sound file to play ("plop" sound effect?) or some visual signal to indicate drop/paste successful/unsuccessful (add red filter to window to indicate data type on clipboard cannot be pasted, e.g.).
- Move operations could use a motion-blurred version of the background image.
- Resize operations could dim or brighten the window while resizing.
- Different background for maximized windows.
- Define your own window message for "select background <n>" and programs that can be scripted to send user-defined window messages could be used as the user wants to change background in response to events of their choosing. (Keystrokes, being on a particular virtual desktop, etc.)
You could also provide a "random background" feature that uses a random background from a given directory (or directories) when starting up or at intervals, or in response to user-define WM_ message.
OK, enough wild brainstorming... :)
I'd say look at putting ImageMagick lib in - the support for multiple formats and other effects is worth it.
All your suggestions are nice ideas, but here's the problem: image manipulation is expensive operation (i.e. time consuming) There are two options:
1. pre-render images for each effect. This would cause huge memory usage. All images are held in memory as bitmaps. Calculate how much memory a 1280x1024 true-color (that's 3 bytes per pixel) bitmap needs. Then multiply by number of effects you'd like to have :)
2. apply effects on-the-fly. This is *slow*. We'll need much faster machines before using this solution :)
Sure they're expensive - that's why I said "wild brainstorming" :) I didn't seriously expect you to implement them, at least until you get that 300GHz machine with 100GB RAM! ;)
But seriously now, do you think you'll use the ImageMagick library? That sounded like a good idea, to provide support for more image formats at least.
I won't be using ImageMagic... It's a bit too big. Instead, I've decided to use FreeImage library. It's very nice, rather small, and I can patch in any image-manipulation routine I'd like.
The new version of Console that uses FreeImage is already in the works. For now, it will be used only to support more image formats. I will not be adding any special effects at the moment... I'll try to fix multimonitor bug first.
That sounds good too - it doesn't matter to me which, the benefits are still there. More image format support and ideally more potential for future features and more robust image handling.