chore: cleanup
This commit is contained in:
215
configs/waybar/scripts/set-theme
Executable file
215
configs/waybar/scripts/set-theme
Executable file
@ -0,0 +1,215 @@
|
||||
#!/usr/bin/env bash
|
||||
# https://gitlab.com/wef/dotfiles/-/blob/master/bin/dark-mode
|
||||
|
||||
TIME_STAMP="20220227.144601"
|
||||
|
||||
# dark-mode [light|dark|refresh]
|
||||
# sets dark mode on or off
|
||||
|
||||
# Copyright (C) 2021 Bob Hepple < bob dot hepple at gmail dot com>
|
||||
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or (at
|
||||
# your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# I like to have this called by my
|
||||
# ~/.config/i3blocks/i3blocks/weather script which runs every 10m and
|
||||
# knows about sunset and sunrise times.
|
||||
|
||||
|
||||
PROG=$( basename $0 )
|
||||
|
||||
KITTY_ONLY=""
|
||||
[[ "$1" == "--kitty-only" ]] && {
|
||||
KITTY_ONLY="true"
|
||||
shift
|
||||
}
|
||||
|
||||
CMD="$1"
|
||||
|
||||
DARK_MODE_STATUS_FILE=~/.cache/dark-mode
|
||||
CURRENT_DARK_MODE=$( cat $DARK_MODE_STATUS_FILE )
|
||||
|
||||
case $CMD in
|
||||
-h|--help)
|
||||
echo "Usage: $PROG <[on|start|dark]|refresh|[off|stop|light]>"
|
||||
echo
|
||||
echo "toggles or refreshes dark-mode for emacs, kitty, gtk and qt"
|
||||
exit 0
|
||||
;;
|
||||
on|start|dark)
|
||||
CMD="dark"
|
||||
;;
|
||||
re*)
|
||||
CMD="refresh"
|
||||
;;
|
||||
*) # off|stop|light
|
||||
CMD="light"
|
||||
;;
|
||||
esac
|
||||
|
||||
if [[ "$CMD" == "refresh" ]]; then
|
||||
CMD="$CURRENT_DARK_MODE"
|
||||
else
|
||||
[[ "$CURRENT_DARK_MODE" == "$CMD" ]] && exit 0
|
||||
fi
|
||||
|
||||
# for emacs, these themes can be chosen from the standard ones (in
|
||||
# custom-theme-load-path) or they can be installed in
|
||||
# custom-theme-directory (usually ~/.emacs.d)
|
||||
# They must have a filename of $THEMENAME-theme.el
|
||||
|
||||
case "$CMD" in
|
||||
light)
|
||||
# light mode
|
||||
# new_emacs_theme="dichromacy-bh"
|
||||
# new_emacs_theme="modus-operandi"
|
||||
#new_emacs_theme="Adwaita" # text background is #ededed !!!
|
||||
#new_emacs_theme="solarized-light"
|
||||
# new_emacs_modeline_theme="smart-mode-line-light"
|
||||
|
||||
# new_gtk_theme='WhiteSur'
|
||||
new_gtk_theme='Pop'
|
||||
#new_gtk_theme='Solarized-Light'
|
||||
#new_gtk_theme='Crux'
|
||||
|
||||
new_icon_theme='WhiteSur'
|
||||
new_cursor_theme='WhiteSur-cursors'
|
||||
|
||||
# new_kitty_theme="$HOME/.config/kitty/Adwaita.conf"
|
||||
|
||||
# new_nvim_theme="dayfox"
|
||||
|
||||
new_kitty_theme="Atom One Light"
|
||||
# new_fg='black'
|
||||
# new_fg='00/00/00'
|
||||
# new_bg='white'
|
||||
# new_bg='ff/ff/ff'
|
||||
BRIGHTNESS=100
|
||||
TERM_BACKGROUND=light
|
||||
;;
|
||||
*)
|
||||
# dark mode
|
||||
# new_emacs_theme="dichromacy-dark-bh"
|
||||
# new_emacs_theme="modus-vivendi"
|
||||
# new_emacs_theme="manoj-dark-bh"
|
||||
# new_emacs_theme="solarized-dark"
|
||||
# new_emacs_modeline_theme="smart-mode-line-dark"
|
||||
|
||||
new_gtk_theme='Pop-dark'
|
||||
#new_gtk_theme='Solarized-Dark'
|
||||
#new_gtk_theme='Crux-dark'
|
||||
|
||||
# 'Breeze' icons are too dark for Adwaita-dark:
|
||||
new_icon_theme='WhiteSur-dark'
|
||||
new_cursor_theme='WhiteSur-cursors'
|
||||
|
||||
#new_kitty_theme="$HOME/.config/kitty/Adwaita-dark.conf"
|
||||
new_kitty_theme="Argonaut"
|
||||
|
||||
# new_nvim_theme="nightfox"
|
||||
# new_fg='white'
|
||||
# new_fg='ff/ff/ff'
|
||||
# new_bg='#232729'
|
||||
# new_bg='black'
|
||||
# new_bg='00/00/00'
|
||||
BRIGHTNESS=20
|
||||
TERM_BACKGROUND=dark
|
||||
;;
|
||||
esac
|
||||
|
||||
(
|
||||
[[ -z "$KITTY_ONLY" ]] && {
|
||||
# brightnessctl set $BRIGHTNESS
|
||||
|
||||
## look for an emacs running as this user:
|
||||
#emacs_pid=$(pgrep -u $USER emacs | head -n 1)
|
||||
#[[ "$emacs_pid" ]] && emacsclient --eval "
|
||||
# (progn
|
||||
# (mapcar 'disable-theme custom-enabled-themes)
|
||||
# (load-theme '$new_emacs_theme t))"
|
||||
##(load-theme '$new_emacs_modeline_theme))"
|
||||
|
||||
f=~/.gtkrc-2.0
|
||||
[[ -w $f ]] && {
|
||||
sed -i "s/^gtk-theme-name=.*/gtk-theme-name=\"$new_gtk_theme\"/" $f
|
||||
sed -i "s/^gtk-icon-theme-name=.*/gtk-icon-theme-name=\"$new_icon_theme\"/" $f
|
||||
sed -i "s/^gtk-cursor-theme-name=.*/gtk-cursor-theme-name=\"$new_cursor_theme\"/" $f
|
||||
}
|
||||
|
||||
# gtkreload # gtk2 only!
|
||||
|
||||
# if ! command -v nvr &> /dev/null
|
||||
# then
|
||||
# echo "nvr not installed"
|
||||
# elif [ "$(pgrep nvim)" != "" ]; then
|
||||
# echo "new theme $new_nvim_theme"
|
||||
# nvr --nostart --remote-send ":colorscheme $new_nvim_theme<CR>"
|
||||
# exit
|
||||
# fi
|
||||
|
||||
|
||||
f=~/.config/gtk-3.0/settings.ini
|
||||
[[ -w $f ]] && {
|
||||
sed -i "s/^gtk-theme-name=.*/gtk-theme-name=$new_gtk_theme/" $f
|
||||
sed -i "s/^gtk-icon-theme-name=.*/gtk-icon-theme-name=$new_icon_theme/" $f
|
||||
sed -i "s/^gtk-cursor-theme-name=.*/gtk-cursor-theme-name=$new_cursor_theme/" $f
|
||||
}
|
||||
|
||||
# /usr/libexec/gsd-xsettings notifies gtk3 clients - start it in sway
|
||||
|
||||
# these two appear to be completely equivalent:
|
||||
dconf write /org/gnome/desktop/interface/gtk-theme "'$new_gtk_theme'"
|
||||
#gsettings set org.gnome.desktop.interface gtk-theme $new_gtk_theme
|
||||
|
||||
dconf write /org/gnome/desktop/interface/icon-theme "'$new_icon_theme'"
|
||||
dconf write /org/gnome/desktop/interface/cursor-theme "'$new_cursor_theme'"
|
||||
|
||||
f=~/.config/qt5ct/qt5ct.conf
|
||||
[[ -w $f ]] && {
|
||||
sed -i "s/^style=.*/style=$new_gtk_theme/" $f
|
||||
sed -i "s/^icon-theme=.*/style=$new_icon_theme/" $f
|
||||
# cursor?
|
||||
}
|
||||
}
|
||||
|
||||
# requires this in ~/.config/kitty/kitty.conf:
|
||||
# allow_remote_control yes
|
||||
# listen_on unix:/tmp/kitty-socket
|
||||
kitty +kitten themes --reload-in=all $new_kitty_theme
|
||||
# for SOCK in /tmp/kitty-socket-*; do
|
||||
# if [[ -r $new_kitty_theme ]]; then
|
||||
# else
|
||||
# # this should work for all terms:
|
||||
# for TERM in /dev/pts/[0-9]*; do
|
||||
# if [[ -O $TERM ]]; then
|
||||
# {
|
||||
# printf "\\033]10;rgb:$new_fg\\033\\\\"
|
||||
# printf "\\033]11;rgb:$new_bg\\033\\\\"
|
||||
# } >$TERM
|
||||
# fi
|
||||
# done
|
||||
# # kitty @ --to=unix:$SOCK set_colors --all foreground=$new_fg background=$new_bg
|
||||
# fi
|
||||
# done
|
||||
|
||||
# for 'low-power' script:
|
||||
echo $TERM_BACKGROUND > $DARK_MODE_STATUS_FILE
|
||||
) >/dev/null
|
||||
|
||||
# echo "TERM_BACKGROUND=$TERM_BACKGROUND; setup_prompt"
|
||||
|
||||
# Local Variables:
|
||||
# mode: shell-script
|
||||
# time-stamp-pattern: "4/TIME_STAMP=\"%:y%02m%02d.%02H%02M%02S\""
|
||||
# eval: (add-hook 'before-save-hook 'time-stamp)
|
||||
# End:
|
Reference in New Issue
Block a user