[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-usability
Subject:    Summoning KControl development - Will it work? Mesa wonders
From:       Frans Englich <frans.englich () telia ! com>
Date:       2004-01-08 0:23:03
Message-ID: 200401080123.03211.frans.englich () telia ! com
[Download RAW message or body]

I responded to William's "KControl brainstorming" with a proposal to 
KControl's problems and the content below as well as the attached files is a 
refined and extended description of it.

We all know KControl has severe usability issues. This proposal does not focus 
on the actual usability problems but tries to tackle the problem from another 
side by explaining the cause to the usability problems being a lack of 
organization.
KControl and all its modules needs coherency and consistency which is provided 
by a continuous and centralized development. Currently, that is not the case. 
Every KCM(which usually is a very small piece of code) is basically 
maintained by its own maintainer. In other words, there is almost as many 
people as there is KCM's maintaining and applying their own views on such a 
critical part as KDE's KControl. Furthermore, it is very difficult to 
maintain KControl and all its children because the KCM's is spread out all 
over repository - and when you try to pull a change you will each time have 
to face a discussion with the maintainer of that KCM.
So, in order to build a ground which usability /then/ can be built is the 
following:

To a beginning all KCMs of respective package is placed in the subdir "KCMs" 
of each package. Each package(eg. kdemultimedia) has it's own KCMs 
maintainer.
In kdebase/KCMs, resides a KCM_CONVENTIONS(except its own modules) which 
documents conventions and design guidelines for KCMs which must be followed.

This structuring have some clear advantages:
1) Makes it more failsafe to maintainer dropouts since others are familiar 
with the job.
2) Lowers the entry bar by making it easier to navigate the source(by 
documentation and file reorganization).
3) Makes it easier to reach decisions in usability and provide consistency 
because of documentation.
4) Centralizes development since a small group(with good communication skills) 
are in charge. For example, it won't be possible to sneak in a KCM(!) without 
it being agreed and made sure it fits in as a whole.
5) Better maintenance, by the maintainer can focus and concentrate on a 
special part of code. You don't have to fly all over the kde source - you can 
specialize and get familiar with kdenetwork ie.
6) Maintaining /one/ kcm is boring for several reasons. But when you're 
responsible for all KCM's in kdegraphics for example, it has become a 
challenge as well as it is rewarding - improving modules and incorporating 
consistency is done on something you /own/, instead of each time patching 
around on different people's work. Being a "kdemultimedia KCM maintainer"(for 
example") is an identity representing work which is appreciated.


The lowered entry bar and the increased appreciation of those who hack on 
KCMs, blows new life into KCM/KControl development/maintenance and lays a 
ground for solving the usability issues. It also goes well in hand with the 
Quality Team proposal.
Wild suggestion: This group of maintainers should perhaps have their own 
mailinglist, kde-kcm-devel with focus on usability issues concerning KControl 
and KCMs. Reducing noise on the main mailinglists as well as letting the 
group work uninterrupted..

Attached is two files which after my idea should be placed in 
kdebase/KCMs/(this is all post 3.2 ofcourse). KCM_CONVENTIONS mentions a lot 
of practical issues and hopefully clears any question marks regarding this 
proposal. It is of course a Draft and can use as much input as possible and 
will evolve with usability development as well as the refinement of this 
idea. Again, it is a draft and is ment to be corrected - some of the 
statements is from my gut feelings.

Quoting Aaron:
"I haven't taken part in that conversation because they are going over the 
same ground that has been well travelled in the past. it's really frustrating 
to engage the same discussion with the same dead ends repeatedly."

No doubt and fully reasonable. But now is the time to shoot down this idea if 
this is yet another dead end. Someone will have to explain why this idea is 
not worth backing up, or otherwise I will continue bashing forward..
We need to know if this proposal is somewhere near to be in the right 
direction and what corrections needs to be done. Also what is missing and 
could be complemented. A technical issue springs to my mind: Is there any 
trouble in moving the KCM's to one place(as the file describes)? 

Thank you for your time!


			Frans





["KCM_CONVENTIONS" (text/plain)]

Copyright (c)  2004  Frans Englich <frans.englich@telia.com>.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.2
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
Texts.  A copy of the license is included in the section entitled "GNU
Free Documentation License".


This file describes the organisational layout and file structure for KDE's 
KCMs(KControl Modules) as well as design recommendations and conventions 
used.
Writing KCMs is covered in KCM_HOWTO.
Issues specific to kdebase's KCMs as well as the current maintainer
information can be obtained from README.


This file exists in order to make decision regarding KControl and its
KCMs centralised as well as bringing some coherency to development.
If you have valid reason for not following these guidelines please 
speak up on the mailinglist kde-usability so your suggestion can be 
peer reviewed and this file eventually changed to reflect the new 
conventions. Naturally, do not change the content of this file(except 
obvious typos) without having reached consensus with other developers. 
Furthermore, any agreement regarding KControl's design and conventions 
must be documented in this file. It is essential this file reflects the 
practices in use, otherwise it will loose it influence.

General discussion about usability issues should be done on the 
mailinglist kde-usability. In order to get in contact with the maintainer
of the various modules please consult PACKAGE/KCMs/README where PACKAGE is 
the relevant kde package, such as kdegraphics.

--- Directory Layout and Filename Conventions ---
In each KDE package which contains KCMs(for example kdenetwork) 
a top directory named "KCMs" exists which contains everything related to 
the KCM's for that package, regardless of what application or 
functionality the KCM represents.
Each "KCMs" contains a README file where the maintainer is listed 
as well as other information specific information for that package's 
KCMs(kdebase is one exception which also contains this file).
For KCM's and their associated files a set of filename conventions 
exists with must be followed:

* All the KCM's files resides in a sub directory of "KCMs". The 
name of that directory is the same X-KDE-Library for that module.
Ie, if a KCM's desktop file contains "X-KDE-Library=kmix" all its 
files resides in "KCMs/kmix/".

* The name of the desktop file is the KCM's library name prefixed 
with "kcm_". For example "kcm_kmix.desktop".

* If the KCM has an icon specific for the KCM its basename should be 
the same as the library name.

* The main source file and its header should be named main.cpp and 
main.h, respectively.



--- A Valid KCM ---
In order for an KCM to be good and valid it must conform to:

1) KDE Licensing Policy. Basically, a OSI approved license 
as well as correct license and copyright headers. For details see:
http://developer.kde.org/policies/licensepolicy.html

2) KDE User Interface Guidelines. Please see:
http://developer.kde.org/documentation/standards/kde/style/basics/index.html

3) the conventions and recommendations in this file.

If the KCM does not conform, it is considered a broken KCM.

These guidelines exist in order to make the KCMs look consistent, 
be pleasent for the user and blend with the rest of KDE as well as 
ensuring KDE stay out of legal trouble. It also makes life easier 
for use developers.



--- Name Recommendations ---
When picking or changing a name(that is the Name directive in
the .desktop file) for a KCM it is good idea keeping the 
following issues in mind in order to promote usability and 
consistency between the modules:

* Try to keep the phrase short. Shorter phrases is easier and
fast to interpret and give better options for designing the layout. 
From a esthetically perspective it also looks cleaner and simpler.

* Avoid complex phrases involving backslashes("/)" and paranteses
for the same reasons as above. 

* Avoid including words like "Management" and "Configuration" etc. 
since it is abundant - KControl is all about that which the user 
already is aware of. Furthermore, such terms does not inform the 
user about what Your module contains, except that it is for 
configuration or management(and that is already clear since it is 
in KControl).

* KControl as the rest of KDE targets a wide audience where a 
significant part of the users does not have technical expertise. 
In order to have a compelling interface it is important to avoid 
technical and "scary" terms. Words used should an average user be 
able to understand.

The above name recommendations is guidelines and must not be 
strictly followed. If the name demands to be longer than average
in order to be informative that is of course ok. Similarly, don't
simplify words in case it then does not reflect the content. The 
recommendations exist to make the names informative, representative
for the content and easy to read - not the opposite.
The recommendations can also be applied on phrases used elsewhere in 
the KCM.



--- Technical Recommendations ---
When building a new KCM or improving an old a set of
KDE technologies is preferred in front of others:

* Use .ui files instead of handcrafted
Graphical user interfaces designed with QT Designer is preferred
instead of handwritten ones because 1) It allows people without 
C++ experience to modify GUIs; 2) It is safer since it is not 
manually written code; 3) It allows more obtrusive changes to be 
done in code freezes; and 4) Usually more efficient and faster 
code.

* KConfigXT framework instead of handcrafted configuration code
The rationalis is similar to the above with notable addition: 
it saves disc space on installed clients.

These recommendations exists in order to make development faster 
and easier resulting in better and bugfree code but neither these 
recommendations should be followed blindly. For example, if a 
handcrafted GUI for some rational reason(which is different from 
"preferred by developer") that should be chosen. 


["README" (text/plain)]

The current maintainer of kdebase's KCMs is:
NAME <EMAIL>


Please see kdebase/kcontrol/KCM_CONVENTIONS before 
modifying any KCMs. Thank you.


The Content of this Directory:
README		- This file
crypto		- SSL stuff
[etc]

Contributors:
...



_______________________________________________
kde-usability mailing list
kde-usability@mail.kde.org
https://mail.kde.org/mailman/listinfo/kde-usability


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic