DioGen
I kinda like XFCE approach - you can open individual preference applets separately or as a part of the main “Preferences” window.
I kinda like XFCE approach - you can open individual preference applets separately or as a part of the main “Preferences” window.
To be honest, I’m not sure I like all the ideas put forth. I don’t see a reason for a preview (and expect it to be quite difficult to accomplish) and even less for a search within the preferences.
We try to limit the configurations available and the panels that do exist should be obvious wrt what they contain.
It sounds OK to group certain panels for quicker access, like “Input”. But I think you’ll find that you’re either end up with many categories with few panels or few categories that have many panels that only tenuously fit in there.
I’d like to point that by clicking in the Deskbar on “Preferences”, all the panels are already listed in a window. It would be nice to show them also as big icons instead only in a list. But in a list, you have the possibility to use “type-ahead-filtering” to filter keywords. By adding a keywords attribute, we could make it easy to filter out e.g. “Input”, “Audio” or “Hardware”.
I imagined this GSoC task to be rather about how the existing panels could be combined and improved. E.g. Touchpad & Mouse, Keyboard & Keymap & Shortcuts, Screen & Backgrounds, Media & Sounds, Deskbar & Tracker, etc.
This panel condensation shouldn’t go overboard either. Some things are complex enough on their own. Instead it could be tried to make the GUI more consistent, more intuitive or just prettier.
I don’t want to sound too negative, however.
GSoC is just starting and together with your mentors you can still steer your project in any direction.
A question: This is fine for the standard Haiku Preferences. But third-party applications can also have separate Prefs applets.ATM we can place those in the Preferences deskbar folder and they show up there along with all the others. What will happen to them now? Will they all get bundled into a Miscellaneous category?
I see a way to implement DioGen’s suggestion, and possibly alleviate humdinger’s and michel’s concerns, but it would involve updating the existing preference apps.
Each preference app would need to have attributes that contained a category indicator, a preview pane (probably as an archived and flattened BView) and a set of keywords, and any other information the combined panel might need. Any preference app that did not have the proper attributes would use default values.
The combined panel iterates over the preference apps and pulls the information from the attributes. (And the icon via BAppFileInfo.)
The combined panel presents the information more or less as pictured above.
If the preview pane needs to be interactive (i.e., to be able to actually set some common features), this would probably have to be implemented via a BView subclass in the preference app, and the app would need to be loaded via load_add_on(). (But I think archive instantiation will in fact autoload the addon, if the proper data is present in the archive.) I believe Haiku will allow you to load an executable as an add-on.
This allows both the individual app and combined panel approaches to be used, depending on an individual user’s personal preference, and allows 3rd-party apps to also be supported in the combined panel.
This would be rather a large undertaking, though, and if Anirudh uses this approach, I would suggest starting with a small group of preference apps to provide attributes for. (The input preference apps have already been suggested as an initial target for this project.) Other preference apps could be updated with the necessary attributes after GSOC.
The reason the initial project was about input preferences is two-fold:
I should be able to set different preferences for each. For example, my laptops have a French AZERTY keyboard, but I also use an external keyboard when I’m at home, and this one is spanish QWERTY. For the mouse/trackball vs trackpoint/touchpad, I would much appreciate being able to set different acceleration settings for each of them.
If you start thinking about this, I think you will probably end up with something similar to the Media preferences or Network preferences: a list of devices, which allows you to reach specific settings for each. And you can see the same applies to Printer preferences, for example.
So the next idea is: how can we avoid having these list of devices in each preference panel? Can we instead design a central place where you see a list of all devices and can easily reach the appropriate preference window for each of them? I think that is what the preferences application should be.
2 replies