User Tools

Site Tools


sway:dark-mode

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
sway:dark-mode [2020/10/12 22:12] adminsway:dark-mode [2021/01/07 23:54] (current) admin
Line 3: Line 3:
  
 Unlike Desktop Environments like Gnome and KDE, Window Managers like Unlike Desktop Environments like Gnome and KDE, Window Managers like
-sway do not come with all the tools you might need or want. It's up to+**sway** do not come with all the tools you might need or want. It's up to
 the user to perceive a need, do the research and then install, the user to perceive a need, do the research and then install,
 configure and use the appropriate tools for the job. Notwithstanding configure and use the appropriate tools for the job. Notwithstanding
Line 11: Line 11:
 satisfaction of knowing what's going on. satisfaction of knowing what's going on.
  
-In my own history through fvwm, fluxbox, i3wm and now sway I've never+In my own history through **fvwm****fluxbox****i3wm** and now **sway** I've never
 really wanted to bother with themes. I just made terminals and emacs really wanted to bother with themes. I just made terminals and emacs
 have a black background and other programs could do what ever they have a black background and other programs could do what ever they
Line 29: Line 29:
 customising and a script that I use to do the flick. customising and a script that I use to do the flick.
  
-All of this is on Fedora-31.+All of this is on Fedora-31 but should be similar for other Linux distros.
  
 Apologies if this is all obvious and well documented elsewhere. It was a journey for me and non-trivial. Apologies if this is all obvious and well documented elsewhere. It was a journey for me and non-trivial.
Line 161: Line 161:
 KDE/Qt5/Plasma/whatcha-ma-call-it KDE/Qt5/Plasma/whatcha-ma-call-it
  
-Here be dragons. I have NO IDEA how to script this. If you know how to +Thanks to redditor r/progandy for this:
-script a theme change, please let me know!+
  
-===dark-mode=== +''**qt5ct**(1)'' is the key - install it (Fedora) with:
- +
-Here is the result of all this rambling+
  
 <code> <code>
-#!/usr/bin/env bash+sudo dnf install qt5ct 
 +</code>
  
-# dark-mode [on|off] +This needs to be in the session environment:
-# sets dark mode on or off+
  
-# best to run as: +<code> 
-# eval $( dark-mode on )+export QT_QPA_PLATFORMTHEME=qt5ct 
 +</code>
  
-# for emacs, these themes can be chosen from the standard ones (in +After running ''**qt5ct**(1)'' I now have a ''~/.config/qt5ct/qt5ct.conf'' file that contains line:
-# custom-theme-load-pathor they can be installed in +
-# custom-theme-directory (usually ~/.emacs.d) +
-# They must have filename of $THEMENAME-theme.el+
  
-light_emacs_theme="dichromacy-bh" +<code> 
-light_emacs_modeline_theme="smart-mode-line-light" +style=Adwaita 
-#dark_emacs_theme="manoj-dark-bh" +</code>
-dark_emacs_theme="dichromacy-dark-bh" +
-dark_emacs_modeline_theme="smart-mode-line-dark" +
-case "$1" in +
-    off|stop|reset|end|light) +
-        # light mode +
-        new_emacs_theme="$light_emacs_theme" +
-        prev_emacs_theme="$dark_emacs_theme" +
-        new_emacs_modeline_theme="$light_emacs_modeline_theme" +
-        prev_emacs_modeline_theme="$dark_emacs_modeline_theme"+
  
-        new_gtk_theme='Adwaita' +... I can hit that with my script and the qt5 programs automatically change their appearance!
-        new_fg='black' +
-        new_bg='white' +
-        BRIGHTNESS=100 +
-        TERM_BACKGROUND=light +
-        ;; +
-    *) +
-        # dark mode +
-        new_emacs_theme="$dark_emacs_theme" +
-        prev_emacs_theme="$light_emacs_theme" +
-        new_emacs_modeline_theme="$dark_emacs_modeline_theme" +
-        prev_emacs_modeline_theme="$light_emacs_modeline_theme"+
  
-        new_gtk_theme='Adwaita-dark' +Oddly, there's a 4s delay after changing the style in the file before the new style takes effect. But that's OK.
-        new_fg='white' +
-        new_bg='black' +
-        BRIGHTNESS=0 +
-        TERM_BACKGROUND=dark +
-        ;; +
-esac+
  
-+I also built [[https://gitlab.com/zetaPRIME/qt5ct-refresh|qt5ct-refresh]] but it doesn't seem to speed up the 4s delay or do anything AFAICT.
-    # look for an emacs running as this user: +
-    emacs_pid=$(pgrep -u $USER emacs head -n 1) +
-    [[ "$emacs_pid" ]] && +
-        emacsclient --eval " +
-          (progn +
-            (disable-theme '$prev_emacs_theme) +
-            (disable-theme '$prev_emacs_modeline_theme) +
-            (load-theme '$new_emacs_theme) +
-            (load-theme '$new_emacs_modeline_theme))"+
  
-    f=~/.gtkrc-2.0 +===dark-mode===
-    [[ -w $f ]] && +
-        sed -i "s/^gtk-theme-name=.*/gtk-theme-name=\"$new_gtk_theme\"/" $f +
-    gtkreload # gtk2 only!+
  
-    f=~/.config/gtk-3.0/settings.ini +Here is the result of all this rambling: https://gitlab.com/wef/dotfiles/-/blob/master/bin/dark-mode
-    [[ -w $f ]] && +
-        sed -i "s/^gtk-theme-name=.*/gtk-theme-name=$new_gtk_theme/" $f +
-    # /usr/libexec/gsd-xsettings notifies gtk3 clients start it in sway+
  
-    # these two appear to be comletely equivalent: 
-    dconf write /org/gnome/desktop/interface/gtk-theme "'$new_gtk_theme'" 
-    #gsettings set org.gnome.desktop.interface gtk-theme $new_gtk_theme 
- 
-    [[ "$KITTY_WINDOW_ID" ]] && 
-        kitty @ set_colors --all foreground=$new_fg background=$new_bg 
- 
-    brightness $BRIGHTNESS 
-) >/dev/null 
- 
-echo "TERM_BACKGROUND=$TERM_BACKGROUND; setup_prompt" 
-</code> 
sway/dark-mode.1602562330.txt.gz · Last modified: 2020/10/12 22:12 by admin

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki