| Summary: | make everything a bit smaller - title bars, symbol bars, menu bars, window frames | ||
|---|---|---|---|
| Product: | [Unmaintained] kdesktop | Reporter: | andreas braendle <abraendle> |
| Component: | general | Assignee: | David Faure <faure> |
| Status: | RESOLVED UNMAINTAINED | ||
| Severity: | wishlist | CC: | 4wy78uwh, abraendle, chaofeng111, os79410 |
| Priority: | NOR | ||
| Version First Reported In: | unspecified | ||
| Target Milestone: | --- | ||
| Platform: | openSUSE | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
|
Description
andreas braendle
2004-02-11 16:51:13 UTC
It's just a style, window decoration, font size, icon size etc. question. it seems also to be a general problem of qt (kde?), that this is not sufficiently configurable adjusting Font sizes does not suffice: i have set them to the minimum, now the surrounding space is too large everywhere. If somebody has a solution (theme or whatever, screenshot), that shows that this doable & wasted pixels can be eliminated, i'd like to know. Otherwise it has to stay on the todo-list, until somebody has a solution for it. See also Bug 66742 ******************* Example: http://www.kdevelop.org/graphics/screenshots/3.1/documentation.png 640 x 483 Pixels The original is probably 1280x1024 even scaled to 1024x768 this looks too large scaled to 800x600 (perhaps 900x...) it's almost ok (except the large title bar) What i found out until now: (1) i have made a patch for quartz window-decorations (has to be compiled into a library) which makes titelbars smaller. (2) the menubars, with drawing them, there is also qt involved, so to steal some pixels there, most likely it will not suffice to change the kde-sources. maybe in a future version of qt something will change there?!????? (3) with other visual gadgets (tabs, lists etc), i don't know how much is qt/kde, and how much code can or had to be changed. smaller window decorations: "Quartz extra slim" *** downloading the source kdebase-3.3.0.tar.bz2 download+extract cd kdebase-3.3.0 ./configure *** apply the diff below *** Compiling cd kwin/lib (this step must be performed, otherwise some libs are missing) make cd kwin/client/quarz/ // interessantes verzeichnis make make install (this installes just kwin3_quartz.la) *** Test (re-)start kde control-center>window decorations>quartz Remark: I use it together with Adobe Helvetica 10 as font, and found it looks very good (not too small) with the parameters in the patch. **** ************************************************************************************************* Perhaps somebody can integrate this patch into the main kde line. This would provide smaller titlebars, something that is IMHO needed in some form (See KDE bug ...., etc). For integration, I suggest adding a checkbox in the control center-module, like this: [ ] quartz extra slim (without a check you would get the normal quartz) ****************************************************************************** 3 changes: 4 -> 2 18 -> 14 0 -> -1 ****************************************************************************** --- orig/quartz.cpp 2004-08-05 20:57:20.000000000 +0200 +++ quartz.cpp 2004-09-14 22:19:45.000000000 +0200 @@ -205,12 +205,16 @@ case BorderTiny: case BorderNormal: default: - borderWidth = 4; + borderWidth = 2; // instead of 4 } - +/* normalTitleHeight = QFontMetrics(options()->font(true)).height(); if (normalTitleHeight < 18) normalTitleHeight = 18; if (normalTitleHeight < borderWidth) normalTitleHeight = borderWidth; +*/ + normalTitleHeight = QFontMetrics(options()->font(true)).height()-1; + if (normalTitleHeight < 14) normalTitleHeight = 14; + if (normalTitleHeight < borderWidth) normalTitleHeight = borderWidth; toolTitleHeight = QFontMetrics(options()->font(true, true)).height(); if (toolTitleHeight < 12) toolTitleHeight = 12; ****************************************************************************** CVS commit by giessl: (corrected) patch by abraendle@gmx.de: "Quartz extra slim" option CCBUG: 74967 M +6 -2 quartz.cpp 1.43 M +8 -0 config/config.cpp 1.13 M +1 -0 config/config.h 1.5 --- kdebase/kwin/clients/quartz/quartz.cpp #1.42:1.43 @@ -113,4 +113,5 @@ static const unsigned char shade_off_bit bool onAllDesktopsButtonOnLeft = true; bool coloredFrame = true; +bool extraSlim = false; KPixmap* titleBlocks = NULL; @@ -203,4 +204,5 @@ void QuartzHandler::readConfig() conf.setGroup("General"); coloredFrame = conf.readBoolEntry( "UseTitleBarBorderColors", true ); + extraSlim = conf.readBoolEntry( "UseQuartzExtraSlim", false ); // A small hack to make the on all desktops button look nicer @@ -227,9 +229,11 @@ void QuartzHandler::readConfig() case BorderNormal: default: - borderWidth = 4; + borderWidth = extraSlim?2:4; } normalTitleHeight = QFontMetrics(options()->font(true)).height(); - if (normalTitleHeight < 18) normalTitleHeight = 18; + int nTH_limit=extraSlim?14:18; + normalTitleHeight = QFontMetrics(options()->font(true)).height()-(extraSlim?1:0); + if (normalTitleHeight < nTH_limit) normalTitleHeight = nTH_limit; if (normalTitleHeight < borderWidth) normalTitleHeight = borderWidth; --- kdebase/kwin/clients/quartz/config/config.cpp #1.12:1.13 @@ -43,4 +43,7 @@ QuartzConfig::QuartzConfig( KConfig* con "are drawn using the titlebar colors; otherwise, they are " "drawn using normal border colors instead.") ); + cbExtraSmall = new QCheckBox( i18n("Quartz &extra slim"), gb ); + QWhatsThis::add( cbExtraSmall, + i18n("Quartz window decorations with extra small title bar.") ); // Load configuration options load( conf ); @@ -48,4 +51,5 @@ QuartzConfig::QuartzConfig( KConfig* con // Ensure we track user changes properly connect( cbColorBorder, SIGNAL(clicked()), this, SLOT(slotSelectionChanged()) ); + connect( cbExtraSmall, SIGNAL(clicked()), this, SLOT(slotSelectionChanged()) ); // Make the widgets visible in kwindecoration @@ -74,4 +78,6 @@ void QuartzConfig::load( KConfig* /*conf bool override = quartzConfig->readBoolEntry( "UseTitleBarBorderColors", true ); cbColorBorder->setChecked( override ); + override = quartzConfig->readBoolEntry( "UseQuartzExtraSlim", false ); + cbExtraSmall->setChecked( override ); } @@ -82,4 +88,5 @@ void QuartzConfig::save( KConfig* /*conf quartzConfig->setGroup("General"); quartzConfig->writeEntry( "UseTitleBarBorderColors", cbColorBorder->isChecked() ); + quartzConfig->writeEntry( "UseQuartzExtraSlim", cbExtraSmall->isChecked() ); // Ensure others trying to read this config get updated quartzConfig->sync(); @@ -91,4 +98,5 @@ void QuartzConfig::defaults() { cbColorBorder->setChecked( true ); + cbExtraSmall->setChecked( false ); } --- kdebase/kwin/clients/quartz/config/config.h #1.4:1.5 @@ -38,4 +38,5 @@ class QuartzConfig: public QObject KConfig* quartzConfig; QCheckBox* cbColorBorder; + QCheckBox* cbExtraSmall; QVBox* gb; }; Anti-vote from me. I would opt for configurable spacing, size, layout etc. but making just things smaller "because" is no go for me -- people use various resolutions, various screens (i.e. 4:3 vs WS), somebody can have problems with eyes, etc etc etc. (In reply to Maciej Pilichowski from comment #7) > Anti-vote from me. > > I would opt for configurable spacing, size, layout etc. but making just > things smaller "because" is no go for me -- people use various resolutions, > various screens (i.e. 4:3 vs WS), somebody can have problems with eyes, etc > etc etc. I agree. Configurable size is utterly necessary for at least accessibility. |