Ideas

Note: This page is extremely unorganized like most of my todo-lists I do at home. Feel free to add your ideas here. We hopefuly organize that a bit better one day...


 * eComStation is very nice in my opinion (ktk speaking here :-) but updating it is still a major pain in the ass. We need a easy and stupid proof way updating it. And *please* in a non-GUI version too!

UnixOS2
There is a ports-like system for UnixOS2 in the works at the moment but I'm not really happy with that one and I doubt that we will be enough people for maintaining all that stuff ourself (dependencies and so on...).

When I use Linux I often work on Gentoo, which has really the best source-based ports system I've ever seen (and I know BSD too so it's not the only ports-system I know ;).

At the moment the ports system is quite Linux oriented but at the moment there is a complete rewrite of the portage-system in progress. They call it portage-ng. One of the targets is cross-platform support for stuff like BSD or MacOS so I really vote for OS/2 support as well :). It's too early at the moment to really have a look at it but we should definitely do that as soon as possible.

The discussion about portage-ng is here

Update September 04: I talked to the guys who work on portage-ng. It looks like portage-ng is not really dead but at least progressing very slowly. Meanwhile, a group of MacOS X users created a portage for MacOS X so it looks like it does work on BSD-like systems too. So that changes the todo list a bit:

TODO:
 * set up a basic package with latest GCC and Innotek LIBC. The basic package contains all tools and libraries needed to compile Python with Innotek LIBC.
 * as soon as Python compiles we need to wrap together emerge on OS/2. This might get a bit tricky because it also heavily relies on shell scripts. So whatever shell we gonna use, it must be as close as possible to bash (if not bash anyway, it looks like the stuff is not that portable to other shells).
 * once we get portage to work properly we need to create ebuilds for the basic libraries. At the first stage there is no rsync server needed to do this but it will definitely get handy sooner or later (shouldn't be a problem but needs to be set up).
 * implement more and more ebuilds for all kind of packages
 * and in a later stage create a bootstrap-package that also compiles GCC and all other tools (that won't be an easy task :)

PM
We need to port some toolkits or finish the current ports:
 * qt - more soon, looks good
 * GTK2: Samm proposed to work on it, will give an estimate of time soon
 * wxWindows: Port quite up to date but the PM parts in it are definitely not yet done or very buggy -> fix (probably dmik)
 * SWT: will be done when Eclipse is done -> dmik

Also, it would be nice to have updated public PM controls. This should be done with one DLL subclassing these public controls, and extending and/or fixing their behaviour. Things to fix/implement should be:
 * Remove 64K limits in most of the controls (e.g. MLE)
 * Create extended MLE control (understanding HTML tags maybe?)
 * Automatically drop-down list of combobox, when clicked (like DragText does)

WPS
Note: This is already possible and a lot of software to make things like slideshows out of it exists also. - lp
 * replace background image dialog, it should be possible to point that to another directory than \os2\bitmap

Note: Don't think we must replace Icon rendering. But adding MMPM IO procs for PNG and SVG is good idea.
 * replace the file dialog, Gnome 2.6 does that very nicely (screenshot will follow).
 * replace the Icon rendering, should be able to handle stuff like PNG as well and in best case also SVG

Note: File dialog is not a WPS issue. But it can be implemented via WPS class. I consider it is good idea to move to object world. - prokushev. Can you describe that a bit with more details prokushev? - ktk

Yes. File dialog placed in PMCTLS.DLL. We can do such trick:


 * 1) move PMCTLS.DLL to PMOLDCTL.DLL
 * 2) write new PMCTLS.DLL with forwarders to PMOLDCTL.DLL
 * 3) In WinFileDlg (new PMCTLS.DLL) we must check, is WPS exist? If exist, then just create WPS object (with name like WPOpenFileFolder or something like this) and monitor it (wait result from it). As result our open file object can be replaced and/or extended by standard SOM features. If no WPS exists then call or old WinFileDlg or our own implementation of open file dialog (for systems without WPS)

WPOpenFileFolder is subclass of WPFolder with changed reaction on open objects in it. If object is folder then go deep. If object then close WPOpenFileFolder and notify our new WinFileDlg.

Something like this.

And yes, it can be part of XWP.

BTW, how about move Doodle Screen Saver to XWP? ;)

BTW 2 : Why dont add also LSwitcher to XWP ?

I oppose the idea to add every single utility in the world to XWP. Maintaining the XWP code is difficult enough right now because of complexitiy. Adding Utilities to XWP means they are not available for people not using XWP (for whatever reason).

ODIN and Win32
It would be nice if there is a tutorial on how to use odin to port open source win32 apps to OS/2.

Drivers
A skeleton driver that can be used for writing drivers. More importantly, a hands on/hand holding tutorial for writing drivers. Writing drivers is a daunting project, but is necessary for OS/2 to survive in the long run.

USB
to USB2.0 with PCMCIA cards.
 * PCMCIA driver for USB2.0 cards for laptops. Right now, laptops with USB1.0 built in cannot be upgraded


 * USB driver for enabling RSJ to talk to external CDRW drives.

External list

 * The Warp Wishlist maintained by Kris Lake.

Open Source OS/2 Strategy and Follow up of Open Components
An strategy with the final goal to have OS/2 open sourced. More than a development project it had to be an integration project of open source software for OS/2, like an information site to follow up all the open source replacement for OS/2 closed components. On this site we will list the open source project available for OS/2 and the closed component that is replacement. Ex:
 * Newview.exe -> replaces View.exe -> License GNU GPL
 * XWorplace
 * HandyFTP
 * Doodles Screen Saver
 * lSwitcher
 * etc, etc

Plan to make replacement for:
 * command line programs like "xcopy.exe, attrib.exe, etc" (some tools already exists as part oof osFree project)
 * Enhanced and replacements of CMD commands (some tools already exists as part oof osFree project)
 * Replace of some closed DLLs (some DLLs already exists as part oof osFree project)

OPEN SOURCE OS/2 DISTRIBUTION
Build a OS/2 distribution with open source replacements on it. Of course that many people says it is too hard, but we need to start with something. It can start creating an OS/2 distribution that is focused in Open Source components, and bundle on it, dssaver,xworplace,lswitcher, xfree, emx, warpin, usbres, etc. (bitmaps, icons and drivers too)

To don't start it as a too complex project it can be something similar to the UpdCD project, that requires license of Warp 4.52 or eCS to build an updated image. We can ask help from UpdCD project to create an install image (that will require the OS/2 CD) that contains open source software on it replacing the closed components. And keep evolving this project and replacing components until in some years it can work without licensing OS/2 from IBM.

osFree project
I want to remember to all about existing of osFree project (site at ). At the present time it is collection of open-source replacement of closed OS/2 components. It includes:


 * Customized 4OS2 as cmd.exe replacement (mostly integration to common build system and moving 'not must have' commands to stand-alone executibles)
 * ReginaREXX as REXX replacemend (still missed 16-bit wrappers). Subject to change to Open Object REXX.
 * Replacement of many command-line tools (like attrib, ansi, chkdsk, etc.). Mostly without error handling.
 * THE as TEDIT replacement
 * Some forwarder DLL's (like VIOCALLS, MOUCALLS, etc.)
 * FreePM sources (because FREPM seems to be discontinued)
 * other things.

CVS controlled by ktk, so anyone free to contact with him to have access. osFree site can be used for above things. To do it just contact me (prokushev here). But another general thing is it's time to make one general open-source components repository with common build environment with general goal to create open-source OS/2. And, again, osFree can be good place for it. osFree not limit in languages (except common build environment). C, C++, Fortran & Pascal currently in use. Perl is coming (REXX compatible API for Perl, if possible, is planned).

Really, main goal of osFree subsection is to point above project already exists.

Insted of talking HOW OS/2 must be open-sourced (from the kernel to WPS or from WPS to the kernel) I propose (prokushev here) just start collect already existent things. Thing happen if try to do them.

WarpModem
The general idea will be to make a commun interphase (like Windows 95) for analog modems on your OS/2 system called "Warp Modem". Programs that uses the modem will had comunicate to "Warp Modem" to get the configuration of the modem and it status. This will be useful for OS/2 user, because he will not configure the modem on each OS/2 application that uses the modem. What will be good is to have a "Modems" icons inside the OS/2 System Setup folder.

http://www.os2world.com/pictures/articles/SystemSetup.jpg

This program will show us the modems that are configured on our system. If the systems has two ore more modems it will shows us all modems that we had configure.

To make this configuration we can start using the Doug Bissett's modem configuration list (http://www.os2warp.be/modems/modem.lst)

On this menu we can see the "Add...", "Properties...", "Delete..." and "Test..."

http://www.os2world.com/pictures/articles/Warp%20Modem%20GUI.jpg

Add button will show us the instruccions to add a new modem

http://www.os2world.com/pictures/articles/Modem%20Config.jpg

(picture taken from ATT Dialer)

The "Test..." button will be a tool to test it is working. A good idea is the one from ATT dialer too. http://www.os2world.com/pictures/articles/Modem%20Tester.jpg

(picture taken also from Att Dialer)

"Properties..." will show us something similar to the "Add" window to change the modem configuration.

I think "ADD" should support "Installing" the modem using the windows "drivers" i.e. the inf-files which contain the AT seq. used for certain operations which an application can then query or call via an published API.

"Remove..." will ask us for confimartion to delete that modem

And the app should seperate the physical modem from multiple configurations one could have. i.E. a Modem has a max speed of 36.000 baud but I should be able to create a fax configuration with would setup the modem to lets say 14.400 etc.

Other tools

So, what kind of software will be good to integrate with Warp modem ?

All programs that used a analog modem can take advante of this. Developers of Phone dialers, Fax, Internet Dialers, Voice Phone, RAS, BBS software..etc..etc..

http://www.os2world.com/pictures/articles/Modem%20Selector.jpg

Documentation

This project will need a good documentation so developers that wants to uses the OS/2 Warp Modem configuration can access it easily for their phone/fax/modem applications.

Wish list


 * 1) Open Source Project / free license GNU GPL.
 * 2) C++ or Java development.

This is just a development idea, there is nothing coded on this direction. The pictures in some cases are just fake to explain the posibilities of this project.

OS Skinning/Themeing
While I think that the look is not very imporant in an OS design, we have to recognize that the desire/need to change the interface to match the user's taste have had a major role in the design of recent GUIs.

Recent eComstation releases (1.1 and 1.2) are getting better at handling this, with the possibility to change the standard icons, change some of the GUI controls (system box, max/min/hide/close buttons), change the titlebar, change the pushbuttons, check-boxes and radio-buttons.

All in all, it is a pretty comprehensive list of possible interface changes, but we're still far from the competition. Adding some third-party tools, we can get rid of the standard gray color, add some transparency, change window borders, etc.

So, where's the problem?
 * We need FAR TOO MANY different pieces of software to change the interface
 * Every piece of software does its own thing, and many times there are conflicts
 * Different pieces of sotware choose to do the same things in different ways
 * You have to reboot to activate most of the changes
 * We have no means of using non-square windows

Let's see how many pieces of software one may need in order to change the interface in a way that at least resembles the capabilities of other platforms:


 * The standard scheme palette. This is pretty limited. It can't change all the colors, and you can't add more schemes to the palete.
 * SysColors (http://os2.ru/articles/dev/prog/syscolors/index.phtml.ru) This can change more system colors, but has no support for saving schemes. BTW, the source is available.
 * eStyler or Styler/2. While Styler/2 should support a superset of eStyler functions, there are things that eStyler does (such as replacing buttons) but Styler/2 don't. But Styler/2 supports on-the-fly changing of title-bar controls, while eStyler doesn't. So one can't trade eStyler for Styler/2 (or the other way around) without losing some functionality.
 * ColourManager/2. This one supports changing of all (but the most hidden ones) colors in the interface, and (once again) changing title-bar controls and other buttons. This one requires a reboot, too. And uses a different format for the resources from eStyler. Fortunately, CoulourManager/2 is now available in source-code to eCS developers.
 * CandyBarz (Netlabs). This is the most advanced skinning application for OS/2, but it is less stable than his counterparts, it is somewhat buggy and it's not developed anymore. It is opensource though, so anyone can in theory restart development. I'm under the impression that eStyler's (or ColourManager/2) way of changing controls is more stable and less error-prone, but it may only be that CandyBarZ is quite old now. Can do most of the things that the other pieces of sotware do and more, and it does it on-the-fly.
 * Icon themes. Changes all of the standard icons of the OS. It is evolving in the direction of being a full replacement for Stardock's Icon Schemes, which was more powerful but it is closed-source and development has stopped.
 * Window Themes. Changes title-bar controls (like eStyler) after a reboot. Changes radio-buttons and check-boxes, but NOT pushbuttons (you need eStyler or CandyBarZ for this).
 * CandyFolders (Netlabs) to add some transparency to folder backrounds.
 * NPSWPS to add drop shadows to windows, and animation effects.

See? If one wants to change everything that could be changeable he needs 9 pieces of software, with many overlapped functionalities. And in the end, some pieces of customization are still missing.

Given this situation it is impossible to develop/distribute comprehensive themes/skins for our OS, and give the user a hassle-free, auto-installing package.

What we need is ONE program capable of changing ALL of the resources, or at least the sum of those that are presently changeable with all the diverse software pieces. If it can't be done without rebooting, this software should at least have a very good previewing function.

To sum it up:


 * Change ALL the colors (like ColourManager/2, SysColors)
 * Change title-bar controls (eStyler and CandyBarZ)
 * Change pushbuttons (eStyler and CandyBarZ)
 * Change check-boxes and radio-buttons (Window Themes, ColourManager/2, CandyBarZ)
 * Change (indipendently, or remove some of the) window borders (CandyBarz)
 * Change icons (Icon themes)
 * Change titlebars (eStyler, Styler/2, ColourManager/2)
 * Globally change desktop/folder backgrounds (ColourManager/2)
 * Transparency (CandyBarZ + CandyFolders)
 * Animation and drop-shadows (NPSWPS)
 * WISH: different title-bar controls for active/inactive windows
 * WISH: non-rectangular windows. There are at least two different libraries for this:
 * ShapeWindow (LGPL - http://www.sra.co.jp/people/akira/os2/arch/shpwn200.zip)
 * TileWindow (LGPL - http://hp.vector.co.jp/authors/VA001398/os2/softwares/libraries/twtk1_1_4bld14.zip)
 * WISH: Ability to save everything as one theme, easily distributable

Any taker? ;-)

Kernel Free (OS/2 Kernel with License GPL
To release to the kernel of the system on the part of IBM and other companies.