MyEmacsNixDarkMode
This might not be anything specific to Emacs, but running it from Home-Manager on the DE being part of my NixOS configuration, I found it not react to Cosmic DE switching light/dark theme.
It turned out I have to toggle its dark mode separately from within Emacs with
(shell-command-to-string "gsettings set org.gnome.desktop.interface color-scheme prefer-dark 2>&1")
I thus ended up with a Tools menu item
(require 'easymenu)
(defun my-toggle-gtk-dark-mode ()
"Toggle the desktop preference used by Emacs's GTK widgets."
(interactive)
(let* ((current
(car (process-lines
"gsettings" "get"
"org.gnome.desktop.interface" "color-scheme")))
(next (if (equal current "'prefer-dark'")
"prefer-light"
"prefer-dark")))
(process-lines "gsettings" "set"
"org.gnome.desktop.interface" "color-scheme" next)
(message "GTK preference: %s" next)))
(easy-menu-add-item
global-map '("menu-bar" "Tools")
["Toggle GTK dark/light" my-toggle-gtk-dark-mode t])
October, 2026.