sway:dark-mode
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
sway [2020/10/12 19:15] – created admin | sway:dark-mode [2021/01/07 23:54] (current) – admin | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | === On themes, sway, emacs and kitty - the dark-mode script ====== | + | ==== On themes, sway, emacs and kitty - the dark-mode script ==== |
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 10: | 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 |
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 | ||
liked. Such a heathen! | liked. Such a heathen! | ||
- | Recently I perceived | + | Recently I felt that need and did some research into the |
topic. It was rather more complex and harder to discover than I had | topic. It was rather more complex and harder to discover than I had | ||
thought. | thought. | ||
- | My own need was to have a simple switch I could flick, perhaps a | + | I wanted |
script, that would turn night into day. Let's have black text on a | script, that would turn night into day. Let's have black text on a | ||
bright, white background in the daytime and reverse it in the evening. | bright, white background in the daytime and reverse it in the evening. | ||
Line 28: | 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 |
+ | |||
+ | Apologies if this is all obvious and well documented elsewhere. It was a journey for me and non-trivial. | ||
===GTK2 programs=== | ===GTK2 programs=== | ||
Line 42: | Line 45: | ||
The hard part was understanding how to get running programs to notice | The hard part was understanding how to get running programs to notice | ||
- | the change. lxappearance is a program from the LXDE desktop | + | the change. |
- | environment that does both jobs. Unfortunatley, it lacks a CLI | + | environment that does both jobs. Unfortunately, it lacks a CLI |
interface so it can only be used in the pointy-clicky mode and not in | interface so it can only be used in the pointy-clicky mode and not in | ||
a script. | a script. | ||
- | By using strace on the different components, I was able to track this | + | By using '' |
- | down to a new (for me) system call **eventfd**(1) which GTK2 uses as a | + | down to a new (for me) system call '' |
signalling mechanism. With a bit more research I found this script | signalling mechanism. With a bit more research I found this script | ||
fragment at [[https:// | fragment at [[https:// | ||
Line 83: | Line 86: | ||
I just wonder if this could be replaced by a simple script like the | I just wonder if this could be replaced by a simple script like the | ||
- | GK2 one? | + | GTK2 one? |
But that appears to be not the entire story. | But that appears to be not the entire story. | ||
- | 3. Some programs do not respond to gsd-xsettings and dconf is needed: | + | ===dconf=== |
+ | |||
+ | Some programs do not respond to gsd-xsettings and dconf is needed: | ||
< | < | ||
Line 98: | Line 103: | ||
'' | '' | ||
- | 4. More comedy arises from yet another path to the same outcome. This | + | ===gsettings=== |
+ | |||
+ | More comedy arises from yet another path to the same outcome. This | ||
invocation appears to be completely equivalent with it's own | invocation appears to be completely equivalent with it's own | ||
permutation on the quotation merry-go-around: | permutation on the quotation merry-go-around: | ||
Line 106: | Line 113: | ||
</ | </ | ||
- | 5. emacs. Hmmm. I've grown up with that program and am unlikely to | + | ===emacs=== |
+ | |||
+ | '' | ||
wean myself off it. There are ' | wean myself off it. There are ' | ||
experiments but they are yet to hit the Fedora repositories outside | experiments but they are yet to hit the Fedora repositories outside | ||
Line 112: | Line 121: | ||
GTK signals. | GTK signals. | ||
- | In any case, for emacs I need to also modify the internal text areas | + | In any case, for '' |
- | and emacs has its own themes spelled out in elisp. I decided on a | + | and '' |
couple of good themes and added some code to my script to flip from | couple of good themes and added some code to my script to flip from | ||
one theme to another. The script should be self explanatory. The | one theme to another. The script should be self explanatory. The | ||
Line 120: | Line 129: | ||
using a script at [[https:// | using a script at [[https:// | ||
- | 6. Now for my favorite wayland terminal emulator, | + | ===kitty=== |
+ | |||
+ | Now for my favorite wayland terminal emulator, | ||
own unique configuration language and can have its colour changed on | own unique configuration language and can have its colour changed on | ||
the fly like this: | the fly like this: | ||
Line 128: | Line 139: | ||
</ | </ | ||
- | 7. My bash prompt contains colours and I have a separate script | + | ===bash=== |
+ | |||
+ | My '' | ||
(actually a function in '' | (actually a function in '' | ||
setting of '' | setting of '' | ||
Line 138: | Line 151: | ||
- | ... ' | + | ... ' |
that's what gets eval' | that's what gets eval' | ||
- | These final 2 steps are the reason I don't put dark-mode into a cron | + | These final 2 steps are the reason I don't put '' |
- | job - it needs to run in my stack of kitty terminal tabs. | + | job - it needs to run in my stack of '' |
+ | |||
+ | ===KDE=== | ||
+ | |||
+ | KDE/ | ||
+ | |||
+ | Thanks to redditor r/progandy for this: | ||
+ | |||
+ | '' | ||
+ | |||
+ | < | ||
+ | sudo dnf install qt5ct | ||
+ | </ | ||
+ | |||
+ | This needs to be in the session environment: | ||
+ | |||
+ | < | ||
+ | export QT_QPA_PLATFORMTHEME=qt5ct | ||
+ | </ | ||
+ | |||
+ | After running '' | ||
+ | |||
+ | < | ||
+ | style=Adwaita | ||
+ | </ | ||
+ | |||
+ | ... I can hit that with my script and the qt5 programs automatically change their appearance! | ||
+ | |||
+ | Oddly, there' | ||
- | 8. KDE/Qt5/Plasma/whatcha-ma-call-it | + | I also built [[https://gitlab.com/zetaPRIME/ |
- | Here be dragons. I have NO IDEA how to script this. If you know how to | + | ===dark-mode=== |
- | script a theme change, please let me know! | + | |
+ | Here is the result of all this rambling: https:// | ||
sway/dark-mode.1602551737.txt.gz · Last modified: 2020/10/12 19:15 by admin