From owner-freebsd-x11@freebsd.org Mon Jan 28 20:50:37 2019 Return-Path: Delivered-To: freebsd-x11@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AEC4F14BEFCD for ; Mon, 28 Jan 2019 20:50:37 +0000 (UTC) (envelope-from ken@ixsystems.com) Received: from mail-yb1-xb32.google.com (mail-yb1-xb32.google.com [IPv6:2607:f8b0:4864:20::b32]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 627CC77498 for ; Mon, 28 Jan 2019 20:50:36 +0000 (UTC) (envelope-from ken@ixsystems.com) Received: by mail-yb1-xb32.google.com with SMTP id k9so6770993ybg.1 for ; Mon, 28 Jan 2019 12:50:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ixsystems-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:mime-version:message-id:in-reply-to :references:organization:user-agent:content-transfer-encoding; bh=uVpItYYhMkKTt4QUkSz97cCkVQujqFeUG8plZXumJX4=; b=fGPEPGINAuK69YBDDgeJw+9krLcdsnlOPOJqblJNN61cTZk1FQrdMENVGA90L1oZ/8 4MsGrcFD9qne5Zi3q4Uq6PGmDwQsFzw9OOeK9OO4tOQzipizBYv6K26EX/FmsgjwNrr0 sWWnCCeCWc+0tMP2Ccr7I7vTcjBJl+KQyxsHThCqfCmaumreQUt/KsFY4JOqJDmkRBOz xAwfmbG313nueRIvvme13KuiGTzJ6DiAyJipBEWqUxZhwLQvlFMn6ssUIDb7ZEXo3NNj hfNhsz/eFnE23jW8b5+mM2BEgd7I8Zj0krlXPFSHhU06BlyiU91s2qBC3SYBIkRS0Xfg vsNg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:mime-version:message-id :in-reply-to:references:organization:user-agent :content-transfer-encoding; bh=uVpItYYhMkKTt4QUkSz97cCkVQujqFeUG8plZXumJX4=; b=NJgX+eoXZESjpVljZpVve+A4CUfGcaAj7CSb93B4GU0kNabALgBkrtGgpLgFF5eNfX zh/y1Gix8bfcX+KQsSFL/RCJQUQQ0D5Pq9v31jbXBx3WvHiWZwdK42FYMFkXEslyj0dj SNhJlYaFDVaZAlA1AL9K2LXHz0YOkYuYtC4xZ2URE6rqH1tMLuXBFpKIqNcWGu+zVPJd GBIcLNsKruJG0UGRCdb7vXQ08U5FTOyuxwjVXcsxHZxfFSsEb2FDApcyAb4XFE9K1hxl nY6oKnaXAW4JPO1d7uSA6o2VxQ11i9ubaeVzT7IMvYS0BiN03VZrt9slaEjz1LF90LWS ZF2g== X-Gm-Message-State: AJcUukd8Vd8iwbAtNqPb6mSdwP4TT5D0+kfe91q7va9LH1uDyChOxay2 5AI+Xsa49RXvqumFHN50NZKyDpdbWJtUhA== X-Google-Smtp-Source: ALg8bN6K9GzG1cgL4CBditESFU5PfFhMrR30aB4Ck/fqWKyVEy1Usyg8Qdx+XnOpxIefXDIqtaxUxw== X-Received: by 2002:a25:6ec5:: with SMTP id j188mr21887846ybc.129.1548708635549; Mon, 28 Jan 2019 12:50:35 -0800 (PST) Received: from localhost (c-73-121-104-129.hsd1.tn.comcast.net. [73.121.104.129]) by smtp.gmail.com with ESMTPSA id a15sm10083582ywh.64.2019.01.28.12.50.34 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 28 Jan 2019 12:50:34 -0800 (PST) From: Ken Moore To: Grzegorz Junka Cc: Subject: Re: Lumina and env variables Date: Mon, 28 Jan 2019 15:50:33 -0500 MIME-Version: 1.0 Message-ID: <99cd58ec-ba66-4076-883f-9f8a0d1101d7@ixsystems.com> In-Reply-To: <138c2530-22bd-85ec-da4d-0d033fba926c@gjunka.com> References: <4c339ec6-b03b-dfe4-f694-af403dc5d89a@gjunka.com> <54013c32-3b8e-4911-bc53-faca7d255c7a@ixsystems.com> <138c2530-22bd-85ec-da4d-0d033fba926c@gjunka.com> Organization: TrueOS/iXsystems User-Agent: Trojita/0.7; Qt/5.12.0; xcb; AnyBSD4.4FreeBSD; Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 627CC77498 X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org; dkim=pass header.d=ixsystems-com.20150623.gappssmtp.com header.s=20150623 header.b=fGPEPGIN; dmarc=pass (policy=none) header.from=ixsystems.com; spf=pass (mx1.freebsd.org: domain of ken@ixsystems.com designates 2607:f8b0:4864:20::b32 as permitted sender) smtp.mailfrom=ken@ixsystems.com X-Spamd-Result: default: False [-6.82 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; R_DKIM_ALLOW(-0.20)[ixsystems-com.20150623.gappssmtp.com:s=20150623]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip6:2607:f8b0:4000::/36]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[text/plain]; PREVIOUSLY_DELIVERED(0.00)[freebsd-x11@freebsd.org]; HAS_ORG_HEADER(0.00)[]; RCVD_COUNT_THREE(0.00)[3]; TO_MATCH_ENVRCPT_SOME(0.00)[]; DKIM_TRACE(0.00)[ixsystems-com.20150623.gappssmtp.com:+]; MX_GOOD(-0.01)[cached: ALT3.ASPMX.L.GOOGLE.com]; RCPT_COUNT_TWO(0.00)[2]; RCVD_IN_DNSWL_NONE(0.00)[2.3.b.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.b.8.f.7.0.6.2.list.dnswl.org : 127.0.5.0]; DMARC_POLICY_ALLOW(-0.50)[ixsystems.com,none]; IP_SCORE(-2.83)[ip: (-9.65), ipnet: 2607:f8b0::/32(-2.47), asn: 15169(-1.93), country: US(-0.08)]; NEURAL_HAM_SHORT(-0.98)[-0.981,0]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; RCVD_TLS_LAST(0.00)[]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; MID_RHS_MATCH_FROM(0.00)[] X-BeenThere: freebsd-x11@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: X11 on FreeBSD -- maintaining and support List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Jan 2019 20:50:37 -0000 On Saturday, January 26, 2019 1:37:34 PM EST, Grzegorz Junka wrote: > On 21/01/2019 15:41, Ken Moore wrote: >> On Saturday, January 19, 2019 9:33:41 AM EST, Grzegorz Junka wrote: ... > Thank you Ken, that's a great tip. Does it mean that all Lumina=20 > apps are qt5-based? > > I am a bit lost with all those customization applications. I=20 > have QT 4 Configuration, which is using Desktop Settings, and I=20 > have Customise Look and Feel, which seems to be changing GTK=20 > settings. Then I have Desktop Configuration, which seems to be=20 > running a yet different version of the Lumina Theme Engine, i.e.=20 > Theme Engine run from the menu currently shows a window with a=20 > dark theme and proper icons on buttons, but when running from=20 > Desktop Configuration shows a light theme with no icons on=20 > buttons, even though all settings seems to be the same. The same=20 > lack of icons on buttons is visible in other QT-based=20 > applications, i.e. Kate but not KWrite. Also the Desktop=20 > Configuration seems to have a different set of icons then=20 > selected in the Theme Engine (material design instead of=20 > Oxygen). > > It's really weird. Imagine Lumina Theme Engine run from the=20 > menu (LTH1) and from Desktop Configuration (LTH2). Changing=20 > Style and Color scheme in LHT1 is visible in its preview window,=20 > and when applied also changes LTH1 window (and KWrite). But LHT2=20 > (and Kate) remain unaffected. Changing Style and Color scheme in=20 > LHT2 is visible in its preview window, but when applied again=20 > changes only LHT1 window (and KWrite) - LHT2 window (and Kate)=20 > remain with the same (probably generic) theme and no icons on=20 > buttons. > > I have been using Lumina from an early version and possibly=20 > some configuration files have been screwed up throughout the=20 > iterations. I also tried to overwrite QT_QPA_PLATFORM_THEME in=20 > various places, including=20 > .config/lumina-desktop/envsettings.conf, and deleting some=20 > configuration files in .config and .kde/4 folders. Would you=20 > know which configuration folders should I delete to restore=20 > default settings? I understand I should not try to set=20 > QT_QPA_PLATFORM_THEME/QP_QPA_PLATFORM_THEME anywhere? > > GrzegorzJ > Welcome to the chaotic world of application theming... ;-) Let me give you the big picture first, and then focus on the Lumina side of=20= things: 1. Every single toolkit has their own theme implementation. This means that GTK2, GTK3, Qt4, Qt5, EFL, and any other graphical toolkits=20= all expect their own theme specification/settings. There have been attempts=20= to unify them a bit (GTK2 <--> Qt4, GTK3 <--> Qt5), but overall those=20 unification systems tend to fizzle out and die pretty quickly because the=20 standards for each change so rapidly (I blame GTK for that, but that is a=20 topic for another time completely). I think the QtCurve theme engine is=20 probably the closes one to achieving multi-toolkit support, but it also has=20= a frustrating lack of customizability - so if you don't like the QtCurve=20 theme, then you are stuck doing it yourself. This also means that every=20 theme engine for every toolkit could have it's own utility for customizing=20= the theme (if supported), which is probably where you are getting so many=20 "theme configuration" utilities from that each look very different. 2. The "standard" for icon themes is a non-standard. The [XDG=20 standards](https://standards.freedesktop.org/icon-theme-spec/icon-theme-spec-= latest.html)=20 for icon themes are pretty well followed by all the toolkits with regards=20 to detecting/using a particular icon theme, but the standard only lists=20 ~20-30 icons in the standard and is nowhere close to being usable by=20 itself. A "full" icon theme has closer to 500+ icons at the present time,=20 but each one uses it's own naming specification (because the XDG spec is=20 non-specific), resulting in widely varying support for an application to be=20= able to switch between icon themes without "losing" icon support for=20 particular things. There is some continuity between icons themes if they=20 come from the same source (all the GNOME themes tend to use the same naming=20= scheme, the KDE/Plasma icon themes use the same naming scheme, etc), but=20 those different naming schemes are not compatible with each other in=20 general. This results in people trying to develop "full" icon themes having=20= to track down and implement tons of symlinks for icons just to try and=20 catch all the variations of an icon name that are used across different=20 applications and desktops (this is a huge task and most icon theme=20 developers just give up after a short time).=20 For an example, the icon theme we are using for Project Trident technically=20= has 6865 different icons (all of them SVGs - prevent duplication of the=20 same icon across different size ranges like the specs use). Of those icons,=20= I would estimate that we have close to a 10:1 ratio of symlinks to real=20 files just in order to account for variations in icon naming across the=20 various apps/desktops, and we are *still* having issues with some apps not=20= being able to find icons occasionally. 3. Xorg mouse cursor themes Don't ask. This is yet another "standard" that most toolkits load by=20 default but completely ignore at the first chance they get because the=20 "standard" is insufficient for tons of things. Now for the lumina side of things. 1. Lumina is completely Qt5-based, so the Lumina theme engine is *only*=20 used for theming Qt5-base applications. This means that KDE4 applications=20 will not use it (Qt4), Firefox/Chromium will not use it (GTK2/3), but the=20 Falkon browser *will* use it (Qt5), and many of the KDE/Plasma5=20 applications will also use it (Qt5). 2. Instead of going for the one-size-fits-all approach to themes that most=20= engines use, the Lumina theme engine is a fork/update of qt5ct which is=20 designed around the concept of a single theme engine being itself=20 configurable. For example, I mentioned the QtCurve engine previously and it=20= follows the "engine=3Dlook" model where if you don't like it you have to find= =20 another engine. qt5ct and lthemeengine take the approach that we stick to a=20= single toolkit, but expose all of the configuration options via the engine=20= itself - so a single engine can have an infinite number of appearance=20 outputs. The only thing the engine needs to stay in-sync with is the=20 toolkit it is allowing access to modify. Example: As part of lthemeengine, you have full access to set your own color palette=20= and have it apply to all Qt5 applications the exact same way without any=20 difficult "styling" challenges. By and large, this is the main thing that=20 people want when looking to change the appearance of apps anyway, so they=20 can change some "highlight" color from red to blue or any color of the=20 spectrum that they want. Lthemeengine also provides access to selecting the=20= icon theme and mouse cursor theme (which *will* apply to all toolkits if=20 they follow the XDG/Xorg specifications - which not all do). In addition to=20= this lthemeengine gives access to a special type of thing called "Qt=20 Stylesheets" which is basically a way of using a CSS-like language[1] to=20 dynamically change the appearance of Qt5 widgets and items (which the=20 Lumina desktop uses for styling the panels, desktop plugins, and more). I=20 think GTK3 has a similar CSS-like system but uses a completely different=20 rules-set for it compared to Qt5. [1] http://doc.qt.io/qt-5/stylesheet-reference.html I am sorry for this "book" of information, but I hope this helps to clarify=20= a bit of the whole theme mess for you and why everywhere you look you will=20= find different answers to the same themeing problems (and I did not even=20 get started on how the different desktop environments overwrite the engine=20= settings and provide their own ways of changing the appearance....) --=20 ~~ Ken Moore ~~ TrueOS/iXsystems