Bug 74967 - make everything a bit smaller - title bars, symbol bars, menu bars, window frames
Summary: make everything a bit smaller - title bars, symbol bars, menu bars, window fr...
Status: RESOLVED UNMAINTAINED
Alias: None
Product: kdesktop
Classification: Unmaintained
Component: general (show other bugs)
Version: unspecified
Platform: openSUSE Linux
: NOR wishlist
Target Milestone: ---
Assignee: David Faure
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-02-11 16:51 UTC by andreas braendle
Modified: 2022-07-04 12:11 UTC (History)
4 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description andreas braendle 2004-02-11 16:51:13 UTC
Version:            (using KDE KDE 3.1.3)
Installed from:    SuSE RPMs

make everything a bit smaller - title bars, symbol bars, menu bars, window frames

why must everything be so large on the desktop? even for the optimal solution i found, i still would need a 15-25% larger screen for kde than for windows (1024x768) to have the same information on the screen. 

the problem is that some things just can't be made smaller/small enough for me. 
somebody really should optimize a bit in this direction.

especially:

title bars - they take a lot of space, few information, just to move the window around - a "few" pixels less would still suffice

symbol bars - they are often very large

menu bars - could be _a bit_ smaller, too (not just smaller font)

(taskbar - ok - already quite good configurable)


safe space on the desktop!! 

i don't know whether this is (just) a theme question, if a good theme exists i'd like to know about it, of course.

of course i agree that the standard configuration of kde can still be a bit larger than the minimum.
Comment 1 Stephan Binner 2004-02-11 20:09:06 UTC
It's just a style, window decoration, font size, icon size etc. question.
Comment 2 andreas braendle 2004-09-14 18:02:16 UTC
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)
Comment 3 andreas braendle 2004-09-14 18:07:05 UTC
See also

Bug 66743
Bug 24374
Comment 4 andreas braendle 2004-12-19 04:09:54 UTC
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.
Comment 5 andreas braendle 2004-12-27 22:19:30 UTC
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;
******************************************************************************
Comment 6 Sandro Giessl 2005-01-14 18:56:11 UTC
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;
 };


Comment 7 Maciej Pilichowski 2007-08-29 16:51:00 UTC
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.
Comment 8 Roke Julian Lockhart Beedell 2022-07-04 12:11:40 UTC
(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.