Compare commits

..

No commits in common. "main" and "0.0.03" have entirely different histories.
main ... 0.0.03

4 changed files with 43 additions and 67 deletions

View file

@ -1,4 +1,4 @@
VERSION = 0.0.05
VERSION = 0.0.03
PN = night-theme-switcher
PREFIX ?= /usr

View file

@ -51,28 +51,6 @@ readonly all_off bold blue green red yellow
### End insert of Arch script
# 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
notify-send \
'Missing dependency' \
@ -150,37 +128,39 @@ check_config() {
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() {
## GTK
## gtk-theme
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 icon-theme "$icon_theme"
## QT
if [[ -x /usr/lib/plasma-changeicons ]]; then
/usr/lib/plasma-changeicons "$icon_theme" >/dev/null 2>&1
## 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
if [[ -w "$HOME/.config/qt5ct/qt5ct.conf" ]]; then
sed -i "s/icon_theme=.*/icon_theme=$icon_theme/g" \
"$HOME/.config/qt5ct/qt5ct.conf"
@ -195,6 +175,10 @@ _set_theme() {
sed -i "s,color_scheme_path=.*,color_scheme_path=$qt_color_scheme_path,g" \
"$HOME/.config/qt6ct/qt6ct.conf"
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() {
@ -202,15 +186,15 @@ switch-dark-light() {
if [[ ! $gtk_color_scheme == ''\''prefer-dark'\''' ]]; then
gtk_color_scheme=prefer-dark
gtk_prefer_dark_theme=1
gtk_prefer_dark_theme=true
gtk_theme=$gtk_theme_dark
icon_theme=$icon_theme_dark
qt_custom_palette=true
qt_color_scheme_path=$kcolorscheme_dark
_set_theme
else
gtk_color_scheme=prefer-light
gtk_prefer_dark_theme=0
gtk_color_scheme=default
gtk_prefer_dark_theme=false
gtk_theme=$gtk_theme_light
icon_theme=$icon_theme_light
qt_custom_palette=true
@ -225,8 +209,8 @@ restore-theme-on-login() {
gtk_color_scheme=$(gsettings get org.gnome.desktop.interface color-scheme)
if [[ ! $gtk_color_scheme == ''\''prefer-dark'\''' ]]; then
gtk_color_scheme=prefer-light
gtk_prefer_dark_theme=0
gtk_color_scheme=default
gtk_prefer_dark_theme=false
gtk_theme=$gtk_theme_light
icon_theme=$icon_theme_light
qt_custom_palette=true
@ -234,7 +218,7 @@ restore-theme-on-login() {
_set_theme
else
gtk_color_scheme=prefer-dark
gtk_prefer_dark_theme=1
gtk_prefer_dark_theme=true
gtk_theme=$gtk_theme_dark
icon_theme=$icon_theme_dark
qt_custom_palette=true
@ -285,9 +269,6 @@ case "$1" in
r)
check_config && restore-theme-on-login
;;
c)
check_config && _reset_settings && preview
;;
p)
check_config && preview
;;
@ -298,7 +279,6 @@ case "$1" in
echo
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} c) create sane default GTK/qt6ct settings files${all_off}"
echo -e "${bold} p) Preview settings${all_off}"
;;
esac

View file

@ -5,13 +5,13 @@ kcolorscheme_light="/usr/share/color-schemes/BreezeLight.colors"
kcolorscheme_dark="/usr/share/color-schemes/BreezeDark.colors"
# Name of the light icon theme
icon_theme_light=breeze
icon_theme_light=Papirus
# Name of the dark icon theme
icon_theme_dark=breeze-dark
icon_theme_dark=Papirus-Dark
# Name of the light gtk theme
gtk_theme_light=Breeze
gtk_theme_light=adw-gtk3
# Name of the dark gtk theme
gtk_theme_dark=Breeze-Dark
gtk_theme_dark=adw-gtk3-dark

View file

@ -1,11 +1,11 @@
.\" Text automatically generated by txt2man
.TH night-theme-switcher 1 "08 December 2025" "" ""
.TH night-theme-switcher 1 "05 December 2025" "" ""
.SH NAME
\fBnight-theme-switcher \fP- Wrapper script to switch between dark and light themes.
.SH SYNOPSIS
.nf
.fam C
\fBnts\fP [\fIcprs\fP]
\fBnts\fP [\fIrsp\fP]
.fam T
.fi
.fam T
@ -16,10 +16,6 @@ while using a barebone WM like hyprland or sway.
.SH OPTIONS
.TP
.B
c
create sane default GTK/qt6ct settings files
.TP
.B
p
Preview settings.
.TP