First version of The Console was prototyped to achieve better personal productivity:
- script your routines once - process text or files thanks to custom scripting
- get your information faster - search wikipedia, open google maps for a query, quickly change currencies, find buses or even make a coffee
So, the core feature was enhancement ability. I'm going to keep it that way. Or maybe I'll enhance the enhance ability :-)
Previously I used libgdx to achieve background animation - similiar to the console in Quake 3 Arena. I was thinking about scripting background animations, particles and other effects but:
- this doesn't add value besides eye-catching "uselessability"
- I already made some hacks around it which disables possibility to port the project to Linux (or whatever else supports Java 8)
Around some other UI libraries I decided to try JavaFX 2.0. It still makes possible to add some animations and is richer and more up to date API than Java Swing or SWT. I don't have any experience of JavaFX but I do with Java Swing (for example this Entity Tracker app for games and few other) and I'd like to change. Simply: Layouts in Swing sux.
I used Windows API (through com.sun.jna.platform.win32 package) for following reasons:
- to show and keep application on top of another applications
- remove frame of window which was internally initialized by libgdx
- position to (0, 0) - top left corner of the screen
- resize it to the size of the biggest found screen
The code for it is very ugly, full of hacks and a result of more trial-and-error than logical thinking - mostly around keeping app on top of other apps.
Also used JNativeHook to register global hotkey CTRL+TILDE. This one is probably going to be still there.
Why changing libs?
Among the "hacks" around libgdx there are also reasons such as:
- performance because of OpenGL under libgdx while some AAA games are running in the background
- difficulties to support drag&drop files
- and text non-buggy text copying/pasting
This retake was started due to occassion of new competition www.dajsiepoznac.pl One of rules is to keep project open sourced which suits the project very well since I'd be happy if there were some users in the future :)
Repository for The Console can be found here -> TheConsole at GitHub.