feat: refactor
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
"hidden_state": "show",
|
||||
"modules-left": ["custom/clock", "custom/waybar-mpris"],
|
||||
"modules-center": ["sway/workspaces", "sway/mode"],
|
||||
"modules-right": ["pulseaudio", "network", "custom/cpu_speed", "memory", "battery"],
|
||||
"modules-right": ["custom/theme","pulseaudio", "network", "battery"],
|
||||
"sway/workspaces": {
|
||||
"disable-scroll": true,
|
||||
"all-outputs": false,
|
||||
@@ -27,6 +27,11 @@
|
||||
"unlocked": ""
|
||||
}
|
||||
},
|
||||
"custom/theme":{
|
||||
"exec": "~/.config/waybar/theme.sh",
|
||||
"on-click": "~/.config/waybar/theme.sh --toggle",
|
||||
"restart-interval": 1,
|
||||
},
|
||||
"custom/spotify": {
|
||||
"exec": "/usr/bin/python3 /home/jim/.config/waybar/mediaplayer.py --player spotify",
|
||||
"format": "{} ",
|
||||
|
215
configs/waybar/dark-mode.sh
Executable file
215
configs/waybar/dark-mode.sh
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:
|
@@ -13,8 +13,8 @@ window#waybar {
|
||||
window > box {
|
||||
margin: 6px;
|
||||
margin-bottom: 0px;
|
||||
background: #2b303b;
|
||||
background: black;
|
||||
background: #2b303b;
|
||||
background: @theme_bg_color;
|
||||
padding: 5px 8px;
|
||||
border-radius: 4px;
|
||||
/*border-bottom: 3px solid rgba(100, 114, 125, 0.5);*/
|
||||
@@ -23,7 +23,7 @@ window > box {
|
||||
#workspaces button {
|
||||
padding: 0px 7px;
|
||||
padding-left: 4px;
|
||||
color: white;
|
||||
color: @theme_fg_color;
|
||||
background: transparent;
|
||||
border-radius: 2px;
|
||||
}
|
||||
@@ -33,8 +33,8 @@ window > box {
|
||||
}
|
||||
|
||||
#workspaces button.focused {
|
||||
background-color: white;
|
||||
color: #2b303b;
|
||||
background-color: @theme_fg_color;
|
||||
color: @theme_bg_color;
|
||||
}
|
||||
|
||||
#battery, #network, #pulseaudio, #clock, #custom-power, #custom-qbitstats {
|
||||
|
24
configs/waybar/theme.sh
Executable file
24
configs/waybar/theme.sh
Executable file
@@ -0,0 +1,24 @@
|
||||
#!/bin/bash
|
||||
|
||||
DARK_MODE_STATUS_FILE=~/.cache/dark-mode
|
||||
CURRENT_DARK_MODE=$( cat $DARK_MODE_STATUS_FILE )
|
||||
|
||||
LIGHT="☀️"
|
||||
DARK="🌙"
|
||||
|
||||
echo "\$1 $1"
|
||||
echo "MODE: $CURRENT_DARK_MODE"
|
||||
|
||||
if [ "$1" == "--toggle" ]; then
|
||||
if [ $CURRENT_DARK_MODE == "light" ]; then
|
||||
~/.config/waybar/dark-mode.sh dark
|
||||
else
|
||||
~/.config/waybar/dark-mode.sh light
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ $CURRENT_DARK_MODE != "light" ]; then
|
||||
echo $DARK
|
||||
else
|
||||
echo $LIGHT
|
||||
fi
|
Reference in New Issue
Block a user