Compare commits
13 commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 17095c11c8 | |||
| 4d66a77089 | |||
| 8b62fd4ed4 | |||
| 216f3866cb | |||
| 16f3a541dd | |||
| 53e31eee65 | |||
| bc036b47f5 | |||
| 130a32b641 | |||
| 71485f4b1f | |||
| 77037021ee | |||
| c450c07913 | |||
| 7d29b4e766 | |||
| 334fa18594 |
4 changed files with 67 additions and 43 deletions
2
Makefile
2
Makefile
|
|
@ -1,4 +1,4 @@
|
||||||
VERSION = 0.0.03
|
VERSION = 0.0.05
|
||||||
PN = night-theme-switcher
|
PN = night-theme-switcher
|
||||||
|
|
||||||
PREFIX ?= /usr
|
PREFIX ?= /usr
|
||||||
|
|
|
||||||
|
|
@ -51,6 +51,28 @@ readonly all_off bold blue green red yellow
|
||||||
### End insert of Arch script
|
### End insert of Arch script
|
||||||
|
|
||||||
# dependency checks probably not needed but they do not hurt
|
# dependency checks probably not needed but they do not hurt
|
||||||
|
if [ ! "$QT_QPA_PLATFORMTHEME" == "qt6ct" ]; then
|
||||||
|
notify-send \
|
||||||
|
'Wrong environment variable' \
|
||||||
|
'Please set QT_QPA_PLATFORMTHEME=qt6ct.' \
|
||||||
|
-h string:x-canonical-private-synchronous:sys-notify \
|
||||||
|
-u critical \
|
||||||
|
-i dialog-error
|
||||||
|
mesg="environment variable QT_QPA_PLATFORMTHEME=qt6ct is not set."
|
||||||
|
echo -e "${red}==> ERROR:${all_off}${bold} ${mesg}${all_off}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if ! command -v breeze-settings6 >/dev/null 2>&1; then
|
||||||
|
notify-send \
|
||||||
|
'Missing dependency' \
|
||||||
|
'Please install breeze.' \
|
||||||
|
-h string:x-canonical-private-synchronous:sys-notify \
|
||||||
|
-u critical \
|
||||||
|
-i dialog-error
|
||||||
|
mesg="breeze is required to use this script."
|
||||||
|
echo -e "${red}==> ERROR:${all_off}${bold} ${mesg}${all_off}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
if ! command -v qt6ct >/dev/null 2>&1; then
|
if ! command -v qt6ct >/dev/null 2>&1; then
|
||||||
notify-send \
|
notify-send \
|
||||||
'Missing dependency' \
|
'Missing dependency' \
|
||||||
|
|
@ -128,39 +150,37 @@ check_config() {
|
||||||
fi
|
fi
|
||||||
|
|
||||||
}
|
}
|
||||||
|
_reset_settings() {
|
||||||
|
## GTK3
|
||||||
|
gtk3_settings_file="$XDG_CONFIG_HOME/gtk-3.0/settings.ini"
|
||||||
|
gtk4_settings_file="$XDG_CONFIG_HOME/gtk-4.0/settings.ini"
|
||||||
|
qt6ct_settings_file="$XDG_CONFIG_HOME/qt6ct/qt6ct.conf"
|
||||||
|
|
||||||
|
gsettings reset org.gnome.desktop.interface color-scheme
|
||||||
|
gsettings reset org.gnome.desktop.interface gtk-theme
|
||||||
|
gsettings reset org.gnome.desktop.interface icon-theme
|
||||||
|
|
||||||
|
if [[ ! -w "$gtk3_settings_file" ]]; then
|
||||||
|
touch "$gtk3_settings_file"
|
||||||
|
fi
|
||||||
|
if [[ ! -w "$gtk4_settings_file" ]]; then
|
||||||
|
touch "$gtk4_settings_file"
|
||||||
|
fi
|
||||||
|
if [[ ! -w "$qt6ct_settings_file" ]]; then
|
||||||
|
touch "$qt6ct_settings_file"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
_set_theme() {
|
_set_theme() {
|
||||||
## gtk-theme
|
## GTK
|
||||||
gsettings set org.gnome.desktop.interface color-scheme "$gtk_color_scheme"
|
gsettings set org.gnome.desktop.interface color-scheme "$gtk_color_scheme"
|
||||||
gsettings set org.gnome.desktop.interface gtk-theme "$gtk_theme"
|
gsettings set org.gnome.desktop.interface gtk-theme "$gtk_theme"
|
||||||
gsettings set org.gnome.desktop.interface icon-theme "$icon_theme"
|
gsettings set org.gnome.desktop.interface icon-theme "$icon_theme"
|
||||||
|
|
||||||
## GTK2
|
|
||||||
if [[ -w "$HOME/.gtkrc-2.0" ]]; then
|
|
||||||
sed -i "s/gtk-theme-name=.*/gtk-theme-name=$gtk_theme/g" \
|
|
||||||
"$HOME/.gtkrc-2.0"
|
|
||||||
sed -i "s/gtk-icon-theme-name=.*/gtk-icon-theme-name=$icon_theme/g" \
|
|
||||||
"$HOME/.gtkrc-2.0"
|
|
||||||
fi
|
|
||||||
## GTK3
|
|
||||||
if [[ -w "$HOME/.config/gtk-3.0/settings.ini" ]]; then
|
|
||||||
sed -i "s/gtk-application-prefer-dark-theme=.*/gtk-application-prefer-dark-theme=$gtk_prefer_dark_theme/g" \
|
|
||||||
"$HOME/.config/gtk-3.0/settings.ini"
|
|
||||||
sed -i "s/gtk-theme-name=.*/gtk-theme-name=$gtk_theme/g" \
|
|
||||||
"$HOME/.config/gtk-3.0/settings.ini"
|
|
||||||
sed -i "s/gtk-icon-theme-name=.*/gtk-icon-theme-name=$icon_theme/g" \
|
|
||||||
"$HOME/.config/gtk-3.0/settings.ini"
|
|
||||||
fi
|
|
||||||
## GTK4
|
|
||||||
if [[ -w "$HOME/.config/gtk-4.0/settings.ini" ]]; then
|
|
||||||
sed -i "s/gtk-application-prefer-dark-theme=.*/gtk-application-prefer-dark-theme=$gtk_prefer_dark_theme/g" \
|
|
||||||
"$HOME/.config/gtk-4.0/settings.ini"
|
|
||||||
sed -i "s/gtk-icon-theme-name=.*/gtk-icon-theme-name=$icon_theme/g" \
|
|
||||||
"$HOME/.config/gtk-4.0/settings.ini"
|
|
||||||
sed -i "s/gtk-theme-name=.*/gtk-theme-name=$gtk_theme/g" \
|
|
||||||
"$HOME/.config/gtk-4.0/settings.ini"
|
|
||||||
fi
|
|
||||||
## QT
|
## QT
|
||||||
|
if [[ -x /usr/lib/plasma-changeicons ]]; then
|
||||||
|
/usr/lib/plasma-changeicons "$icon_theme" >/dev/null 2>&1
|
||||||
|
fi
|
||||||
if [[ -w "$HOME/.config/qt5ct/qt5ct.conf" ]]; then
|
if [[ -w "$HOME/.config/qt5ct/qt5ct.conf" ]]; then
|
||||||
sed -i "s/icon_theme=.*/icon_theme=$icon_theme/g" \
|
sed -i "s/icon_theme=.*/icon_theme=$icon_theme/g" \
|
||||||
"$HOME/.config/qt5ct/qt5ct.conf"
|
"$HOME/.config/qt5ct/qt5ct.conf"
|
||||||
|
|
@ -175,10 +195,6 @@ _set_theme() {
|
||||||
sed -i "s,color_scheme_path=.*,color_scheme_path=$qt_color_scheme_path,g" \
|
sed -i "s,color_scheme_path=.*,color_scheme_path=$qt_color_scheme_path,g" \
|
||||||
"$HOME/.config/qt6ct/qt6ct.conf"
|
"$HOME/.config/qt6ct/qt6ct.conf"
|
||||||
fi
|
fi
|
||||||
## workaround if plasma-workspace is installed
|
|
||||||
if [ -x "$(command -v /usr/lib/plasma-changeicon)" ]; then
|
|
||||||
/usr/lib/plasma-changeicons "$icon_theme"
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
switch-dark-light() {
|
switch-dark-light() {
|
||||||
|
|
@ -186,15 +202,15 @@ switch-dark-light() {
|
||||||
|
|
||||||
if [[ ! $gtk_color_scheme == ''\''prefer-dark'\''' ]]; then
|
if [[ ! $gtk_color_scheme == ''\''prefer-dark'\''' ]]; then
|
||||||
gtk_color_scheme=prefer-dark
|
gtk_color_scheme=prefer-dark
|
||||||
gtk_prefer_dark_theme=true
|
gtk_prefer_dark_theme=1
|
||||||
gtk_theme=$gtk_theme_dark
|
gtk_theme=$gtk_theme_dark
|
||||||
icon_theme=$icon_theme_dark
|
icon_theme=$icon_theme_dark
|
||||||
qt_custom_palette=true
|
qt_custom_palette=true
|
||||||
qt_color_scheme_path=$kcolorscheme_dark
|
qt_color_scheme_path=$kcolorscheme_dark
|
||||||
_set_theme
|
_set_theme
|
||||||
else
|
else
|
||||||
gtk_color_scheme=default
|
gtk_color_scheme=prefer-light
|
||||||
gtk_prefer_dark_theme=false
|
gtk_prefer_dark_theme=0
|
||||||
gtk_theme=$gtk_theme_light
|
gtk_theme=$gtk_theme_light
|
||||||
icon_theme=$icon_theme_light
|
icon_theme=$icon_theme_light
|
||||||
qt_custom_palette=true
|
qt_custom_palette=true
|
||||||
|
|
@ -209,8 +225,8 @@ restore-theme-on-login() {
|
||||||
gtk_color_scheme=$(gsettings get org.gnome.desktop.interface color-scheme)
|
gtk_color_scheme=$(gsettings get org.gnome.desktop.interface color-scheme)
|
||||||
|
|
||||||
if [[ ! $gtk_color_scheme == ''\''prefer-dark'\''' ]]; then
|
if [[ ! $gtk_color_scheme == ''\''prefer-dark'\''' ]]; then
|
||||||
gtk_color_scheme=default
|
gtk_color_scheme=prefer-light
|
||||||
gtk_prefer_dark_theme=false
|
gtk_prefer_dark_theme=0
|
||||||
gtk_theme=$gtk_theme_light
|
gtk_theme=$gtk_theme_light
|
||||||
icon_theme=$icon_theme_light
|
icon_theme=$icon_theme_light
|
||||||
qt_custom_palette=true
|
qt_custom_palette=true
|
||||||
|
|
@ -218,7 +234,7 @@ restore-theme-on-login() {
|
||||||
_set_theme
|
_set_theme
|
||||||
else
|
else
|
||||||
gtk_color_scheme=prefer-dark
|
gtk_color_scheme=prefer-dark
|
||||||
gtk_prefer_dark_theme=true
|
gtk_prefer_dark_theme=1
|
||||||
gtk_theme=$gtk_theme_dark
|
gtk_theme=$gtk_theme_dark
|
||||||
icon_theme=$icon_theme_dark
|
icon_theme=$icon_theme_dark
|
||||||
qt_custom_palette=true
|
qt_custom_palette=true
|
||||||
|
|
@ -269,6 +285,9 @@ case "$1" in
|
||||||
r)
|
r)
|
||||||
check_config && restore-theme-on-login
|
check_config && restore-theme-on-login
|
||||||
;;
|
;;
|
||||||
|
c)
|
||||||
|
check_config && _reset_settings && preview
|
||||||
|
;;
|
||||||
p)
|
p)
|
||||||
check_config && preview
|
check_config && preview
|
||||||
;;
|
;;
|
||||||
|
|
@ -279,6 +298,7 @@ case "$1" in
|
||||||
echo
|
echo
|
||||||
echo -e "${bold} s) swith between dark and light theme${all_off}"
|
echo -e "${bold} s) swith between dark and light theme${all_off}"
|
||||||
echo -e "${bold} r) restore theme (usefull only once after login)${all_off}"
|
echo -e "${bold} r) restore theme (usefull only once after login)${all_off}"
|
||||||
|
echo -e "${bold} c) create sane default GTK/qt6ct settings files${all_off}"
|
||||||
echo -e "${bold} p) Preview settings${all_off}"
|
echo -e "${bold} p) Preview settings${all_off}"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
|
||||||
|
|
@ -5,13 +5,13 @@ kcolorscheme_light="/usr/share/color-schemes/BreezeLight.colors"
|
||||||
kcolorscheme_dark="/usr/share/color-schemes/BreezeDark.colors"
|
kcolorscheme_dark="/usr/share/color-schemes/BreezeDark.colors"
|
||||||
|
|
||||||
# Name of the light icon theme
|
# Name of the light icon theme
|
||||||
icon_theme_light=Papirus
|
icon_theme_light=breeze
|
||||||
|
|
||||||
# Name of the dark icon theme
|
# Name of the dark icon theme
|
||||||
icon_theme_dark=Papirus-Dark
|
icon_theme_dark=breeze-dark
|
||||||
|
|
||||||
# Name of the light gtk theme
|
# Name of the light gtk theme
|
||||||
gtk_theme_light=adw-gtk3
|
gtk_theme_light=Breeze
|
||||||
|
|
||||||
# Name of the dark gtk theme
|
# Name of the dark gtk theme
|
||||||
gtk_theme_dark=adw-gtk3-dark
|
gtk_theme_dark=Breeze-Dark
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,11 @@
|
||||||
.\" Text automatically generated by txt2man
|
.\" Text automatically generated by txt2man
|
||||||
.TH night-theme-switcher 1 "05 December 2025" "" ""
|
.TH night-theme-switcher 1 "08 December 2025" "" ""
|
||||||
.SH NAME
|
.SH NAME
|
||||||
\fBnight-theme-switcher \fP- Wrapper script to switch between dark and light themes.
|
\fBnight-theme-switcher \fP- Wrapper script to switch between dark and light themes.
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
.nf
|
.nf
|
||||||
.fam C
|
.fam C
|
||||||
\fBnts\fP [\fIrsp\fP]
|
\fBnts\fP [\fIcprs\fP]
|
||||||
.fam T
|
.fam T
|
||||||
.fi
|
.fi
|
||||||
.fam T
|
.fam T
|
||||||
|
|
@ -16,6 +16,10 @@ while using a barebone WM like hyprland or sway.
|
||||||
.SH OPTIONS
|
.SH OPTIONS
|
||||||
.TP
|
.TP
|
||||||
.B
|
.B
|
||||||
|
c
|
||||||
|
create sane default GTK/qt6ct settings files
|
||||||
|
.TP
|
||||||
|
.B
|
||||||
p
|
p
|
||||||
Preview settings.
|
Preview settings.
|
||||||
.TP
|
.TP
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue