From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Vince Salvino Newsgroups: gmane.emacs.devel Subject: RE: Dark mode on Windows Date: Mon, 25 Oct 2021 04:14:23 +0000 Message-ID: References: <87mtmx3nsx.fsf@yahoo.com> <87ee893nl4.fsf@yahoo.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="39058"; mail-complaints-to="usenet@ciao.gmane.io" Cc: "emacs-devel@gnu.org" To: Po Lu Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Mon Oct 25 06:15:43 2021 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1merOg-0009vu-RL for ged-emacs-devel@m.gmane-mx.org; Mon, 25 Oct 2021 06:15:43 +0200 Original-Received: from localhost ([::1]:48856 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1merOe-0001ev-Qr for ged-emacs-devel@m.gmane-mx.org; Mon, 25 Oct 2021 00:15:40 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:43864) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1merNV-0000s2-2Q for emacs-devel@gnu.org; Mon, 25 Oct 2021 00:14:29 -0400 Original-Received: from mail-dm6nam10on2083.outbound.protection.outlook.com ([40.107.93.83]:30081 helo=NAM10-DM6-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1merNS-0001tf-MZ for emacs-devel@gnu.org; Mon, 25 Oct 2021 00:14:28 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jO2njQpQcugekireQmdMLqRvlsh91XvONyM6DOgfSvPT9UH7FTOUVp7Uxm7LiBNk7WZPmKlQF1gumw4BI8QxG4PtH0hTLIo6Ky2aRLJZDJPR+xby4J/bbSkldWjNt/b9vL9OTkeSW/08TU2Re+iSJ5JKE2Bps/Y4us/DwghKr7blIbOMV6aLT9Aqz3JTYb0EO3+Nv4vQ9xJrvb46i/XBTFm5wl8Bw/pyhr1MTXvlPDnj37/k5z5dLyv+QnuIZAIVktEVlPTG9mBkULNZ7oUBWln6Kry1VK8aKgo2GgzRn/ZpHwz3fqe4xOVkVK5PZ3DS6QHA6Cg0moaikKPcDOOpqA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=hpdA8oyB3jrhKeeA1KhrHAJaia+DULz0x2N8ebCHbWA=; b=JfIJzy6VLn0IRqhiuNZto9Jygb2S/ObrKHh7c+ucMKNw5a0orDKP4pEj5/7HgQmsUDxQJLEGAuT5+wTXDHH6AH+7kp3Q6T7KGqEcB5f1Z7W8c9GJ+RCNOmN9h6ahINhXKs6ltKQgfK9wROwYqPE905Lfhv3Qq4GgFCMS9Au15Cyf3Md0+4uOgZEogPyi2LLQ5JQ4QzGHLMsMm3Om6lbAUIsW1IM3wQoCeV6qMBHDkD4VWPeeIJgyRFnqLo2fseg498jbVCMsa0UHty2Rx4zr2Fv0NgtSUBBDHVmrrbSY4ISNskxNWOSDJJg1tHGG2rwgU+nahDzjxJX9CpmVHm0HvQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=coderedcorp.com; dmarc=pass action=none header.from=coderedcorp.com; dkim=pass header.d=coderedcorp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=coderedcorp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=hpdA8oyB3jrhKeeA1KhrHAJaia+DULz0x2N8ebCHbWA=; b=NBYrwkQ10bCZ8mZcISmaIrWQ4b868aPUvpd3HkkF/4Od+z2YKQ+mYuRRzrpA5H4ctpksS2xR+qKiPZ2c0NILhE+7UePBhN/bhhUqCPzWlglc5lHLExNY3AWE0xufO+3vWZp8vFmxbN8Z4gh4KFNV+Yxc7D7Vzo2HWQ33KUE8s3I= Original-Received: from CH2PR12MB4231.namprd12.prod.outlook.com (2603:10b6:610:7d::24) by CH2PR12MB4311.namprd12.prod.outlook.com (2603:10b6:610:a8::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4628.18; Mon, 25 Oct 2021 04:14:24 +0000 Original-Received: from CH2PR12MB4231.namprd12.prod.outlook.com ([fe80::55e4:7d22:a6df:970b]) by CH2PR12MB4231.namprd12.prod.outlook.com ([fe80::55e4:7d22:a6df:970b%6]) with mapi id 15.20.4628.020; Mon, 25 Oct 2021 04:14:23 +0000 Thread-Topic: Dark mode on Windows Thread-Index: AdfJJLnhgOTSduS6R4GjAFarFtqzBwAGW4YCAAAqVrEABYK38A== In-Reply-To: <87ee893nl4.fsf@yahoo.com> Accept-Language: en-US Content-Language: en-US authentication-results: yahoo.com; dkim=none (message not signed) header.d=none;yahoo.com; dmarc=none action=none header.from=coderedcorp.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 79faeb04-4e19-46b1-4c39-08d9976ded42 x-ms-traffictypediagnostic: CH2PR12MB4311: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8882; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: tIItlLEmqOdo2vSJPLob5JZifi26CkcYqJe9jdWq0LCqTmN5iJ0n8Kj5Q+4bCml9+mz1HXrXAJKUygl0suDGtWas73Ghd/AZQ4lldUo+SqedUBZIocYNNt3NPv59hf5eCF2TC7LIRt31w0g62gRgwmryUvOsCrvwWQvMyY3RbZZf2NcyB65nTF9zA0u8h1EWvpmYLekijxOYli1tDPQovQB+1M/DZA9Q3e3TSQQGnsCa1E8Bbwn0x1R3bdgD92uuiMBHXp94ZdrkS+vREW4LQiSF26RrddzEhNH5r8vJ51+f1WW2VkS1roXuktZTJ4xK1RnIr/LyfD6+UNZvU1LwMoJ88uI+YCNfS5pr8Dm6tJWlclV8CfzQjuGJad8unp/7DzoDZqz3Swa4uwia5jhjR4BoQnnuqmj91eXjDaXqDot9CwOSLdajt9KVRqw0gNjrE6r3x2MlrDiuPbAL6BXDgrCs11+v47GjbVp03ymLBnMa6DYlEOPOZVqJdbtEQvOOGuf/0iamHOxa+/uGoA5OCbkHxBQaLTtsTkEDjEJIeogrJa0sdG9wLM8hJ/zbyA9EMfbEIP6XBH5hp1wGDzKulM1nXdwXgH83nZ+I060jRqGS57FCqdtYQ9PCSdAEV8g7S1eV8/+LaY3FOUfv0ekmNpwVy2Qpmgau6CDEJSRVir05qRS3JFYuljykYqh4k4uIqr9r9dhN/YXGGtgDB/Ex5Q== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CH2PR12MB4231.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(346002)(376002)(366004)(136003)(39830400003)(396003)(66556008)(66476007)(66946007)(66446008)(64756008)(8676002)(71200400001)(26005)(6506007)(53546011)(38070700005)(52536014)(3480700007)(6916009)(33656002)(2906002)(9686003)(186003)(76116006)(4326008)(7696005)(86362001)(5660300002)(38100700002)(8936002)(55016002)(122000001)(508600001)(83380400001)(316002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?q3vxzOwAL0V+mFfn4wRpcLlbHWGgRmNrpbrrvn+GB6JcwX47k2GxoxtjVwen?= =?us-ascii?Q?g8oNyiMMi09hMUTjrmXDfTQk+pCOlEvJh3mvK7CaIs1J+/7cFoytvdmkc8az?= =?us-ascii?Q?BM6FO29zYaEhJ0J+vqMAfrabBq7QfonKskZh7sWBbemPSnHi0AfSFoLMr9/J?= =?us-ascii?Q?rxY/sVIVvOMT5/rndLtyhlqe0qxR+uriSkF61Ye7MkagNxBZN3MU989kXsvm?= =?us-ascii?Q?JPuWfFj3AGXZvXkwbdZkRLmqO30jsM3c9emS/o34XKhi9kxKUD9soQNdeXJ/?= =?us-ascii?Q?HeJJh/pna4oPK7yWUSX8kKjrlpuPERXJyj3GAfxBmu156ukPkQ8Jv9VDrIK+?= =?us-ascii?Q?/qz9Nt6IRWQCSsVL4V2GaDFg2p63wyI3aEC8E9GBSfw1srBE4H79B91yrzxP?= =?us-ascii?Q?QM9FagikaNp2dEyduJX2fKliJYpZXr/8gIdf6rv17yGoduCFhbtTMCI9KNt4?= =?us-ascii?Q?O8TdwOKbdMphK9hnAt4+Gw6KqD4q9FS4I5BHvD0v19MJ1AMbwOMaMAWo5MNK?= =?us-ascii?Q?n32+jfYt60w4uBQ4b4jfB/ufiu0wXcTHPU64e7qPWmHxwwv03+m/gF1gHh0w?= =?us-ascii?Q?fD+zy04V2SPHA8cI2q9MyVRdMN/hetICqwZBNmKy1ODr7hcbhx5zXqI8ftme?= =?us-ascii?Q?aJ X-OriginatorOrg: coderedcorp.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CH2PR12MB4231.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 79faeb04-4e19-46b1-4c39-08d9976ded42 X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Oct 2021 04:14:23.5956 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 9c94adb1-2ce8-484f-be82-c9b5127d4cb1 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 3yM8WbqADAYuT6Dq6i0vfvvgI/vlFWxP0CTbZy8Z4Rb/rlk91mbFwj6jVQyztA6edAuiSDdQysH/WNjiTViooQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB4311 Received-SPF: pass client-ip=40.107.93.83; envelope-from=salvino@coderedcorp.com; helo=NAM10-DM6-obe.outbound.protection.outlook.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:277703 Archived-At: Answering your questions, Po: > Is this feature available on free operating systems? This is not a feature of emacs, rather it is a specific feature of Windows = which is being supported (e.g. the window manager "chrome" around GUI emacs= ). Other operating systems have their own window managers, which actually a= re user-controllable, and would not require such a kludge in emacs :) > This will not work on Windows NT prior to NT 6.0, or any version of Windo= ws 9x. I have outlined ideas for this in the README.md in my fork. It would probab= ly be possible to create a separate build profile, similar to NT vs Cygwin,= etc. That is a bit beyond my skills, and I have no way of testing those sy= stems. > What is the purpose of this define? Is `DWMWA_USE_IMMERSIVE_DARK_MODE' a= n undocumented feature? The value set by that define, and its use in DwmSetWindowAttribute, is undo= cumented (but heavily used and known among developers). See the inspiration= links in my README.md. > This needs to be controllable by the user, and will similarly not work on= slightly old versions of Windows. I have recently addressed the version compatibility issue. There is also a = TODO for the controllable aspect. Vince Salvino -----Original Message----- From: Po Lu =20 Sent: Sunday, October 24, 2021 9:23 PM To: Vince Salvino Cc: emacs-devel@gnu.org Subject: Re: Dark mode on Windows Po Lu writes: > Is this feature available on free operating systems? > > The X11+GTK port, which runs on free operating systems, needs this=20 > feature. > > P.S. this is also a problem with the NS port. The ability to use a=20 > dark stylesheet for window decorations is only available on macOS, and=20 > not GNUstep. Some other comments: + # darkmode + W32_LIBS=3D"$W32_LIBS -ldwmapi" + # darkmode This will not work on Windows NT prior to NT 6.0, or any version of Windows= 9x. + /* darkmode */ + #include + #ifndef DWMWA_USE_IMMERSIVE_DARK_MODE + #define DWMWA_USE_IMMERSIVE_DARK_MODE 20 #endif + /* darkmode */ What is the purpose of this define? Is `DWMWA_USE_IMMERSIVE_DARK_MODE' an undocumented feature? + /* Enable darkmode */ + BOOL isDarkMode =3D TRUE; + DwmSetWindowAttribute(hwnd, + DWMWA_USE_IMMERSIVE_DARK_MODE, + &isDarkMode, + sizeof(isDarkMode)); This needs to be controllable by the user, and will similarly not work on s= lightly old versions of Windows.