mirror of
https://github.com/danbulant/dotfiles
synced 2026-05-19 04:18:55 +00:00
173 lines
5.4 KiB
Bash
Executable file
173 lines
5.4 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com>
|
|
##
|
|
## Script To Apply Themes
|
|
|
|
## Theme ------------------------------------
|
|
THEME="hack"
|
|
|
|
source "$HOME"/.config/themes/"$THEME"/theme.bash
|
|
altbackground="`pastel color $background | pastel lighten $light_value | pastel format hex`"
|
|
altforeground="`pastel color $foreground | pastel darken $dark_value | pastel format hex`"
|
|
|
|
## Directories ------------------------------
|
|
PATH_CONF="$HOME/.config"
|
|
PATH_TERM="$PATH_CONF/alacritty"
|
|
PATH_DUNST="$PATH_CONF/dunst"
|
|
PATH_GEANY="$PATH_CONF/geany"
|
|
PATH_WBR="$PATH_CONF/themes/$THEME/waybar"
|
|
PATH_XFCE="$PATH_CONF/xfce4/terminal"
|
|
PATH_ROF="$PATH_CONF/rofi"
|
|
PATH_GTK="$HOME/.local/share/nwg-look"
|
|
|
|
## Waybar -----------------------------------
|
|
apply_waybar() {
|
|
# launch polybar
|
|
pkill waybar
|
|
waybar -c ${PATH_WBR}/up -s ${PATH_WBR}/style.css &
|
|
waybar -c ${PATH_WBR}/bottom -s ${PATH_WBR}/style.css &
|
|
}
|
|
|
|
# Terminal ----------------------------------
|
|
apply_terminal() {
|
|
# alacritty : fonts
|
|
sed -i ${PATH_TERM}/fonts.yml \
|
|
-e "s/family: .*/family: \"$terminal_font_name\"/g" \
|
|
-e "s/size: .*/size: $terminal_font_size/g"
|
|
|
|
# alacritty : colors
|
|
sed -i ${PATH_TERM}/alacritty.yml -e "s/opacity: .*/opacity: ${terminal_opacity}/g"
|
|
cat > ${PATH_TERM}/colors.yml <<- _EOF_
|
|
## Colors configuration
|
|
colors:
|
|
# Default colors
|
|
primary:
|
|
background: '${background}'
|
|
foreground: '${foreground}'
|
|
|
|
# Normal colors
|
|
normal:
|
|
black: '${color0}'
|
|
red: '${color1}'
|
|
green: '${color2}'
|
|
yellow: '${color3}'
|
|
blue: '${color4}'
|
|
magenta: '${color5}'
|
|
cyan: '${color6}'
|
|
white: '${color7}'
|
|
|
|
# Bright colors
|
|
bright:
|
|
black: '${color8}'
|
|
red: '${color9}'
|
|
green: '${color10}'
|
|
yellow: '${color11}'
|
|
blue: '${color12}'
|
|
magenta: '${color13}'
|
|
cyan: '${color14}'
|
|
white: '${color15}'
|
|
_EOF_
|
|
|
|
# xfce terminal : fonts & colors
|
|
sed -i ${PATH_XFCE}/terminalrc \
|
|
-e "s/FontName=.*/FontName=$terminal_font_name $terminal_font_size/g" \
|
|
-e "s/ColorBackground=.*/ColorBackground=${background}/g" \
|
|
-e "s/ColorForeground=.*/ColorForeground=${foreground}/g" \
|
|
-e "s/ColorCursor=.*/ColorCursor=${foreground}/g" \
|
|
-e "s/ColorPalette=.*/ColorPalette=${color0};${color1};${color2};${color3};${color4};${color5};${color6};${color7};${color8};${color9};${color10};${color11};${color12};${color13};${color14};${color15}/g"
|
|
}
|
|
|
|
# Geany -------------------------------------
|
|
apply_geany() {
|
|
sed -i ${PATH_GEANY}/geany.conf \
|
|
-e "s/color_scheme=.*/color_scheme=$geany_colors/g" \
|
|
-e "s/editor_font=.*/editor_font=$geany_font/g"
|
|
}
|
|
|
|
# Appearance --------------------------------
|
|
apply_appearance() {
|
|
# apply gtk theme, icons, cursor & fonts
|
|
sed -i ${PATH_GTK}/gsettings \
|
|
-e "s/gtk-theme=.*/gtk-theme=$gtk_theme/g" \
|
|
-e "s/icon-theme=.*/icon-theme=$icon_theme/g" \
|
|
-e "s/font-name=.*/font-name=$gtk_font/g" \
|
|
-e "s/cursor-theme=.*/cursor-theme=$cursor_theme/g"
|
|
nwg-look -a
|
|
|
|
# inherit cursor theme
|
|
if [[ -f "$HOME"/.icons/default/index.theme ]]; then
|
|
sed -i -e "s/Inherits=.*/Inherits=$cursor_theme/g" "$HOME"/.icons/default/index.theme
|
|
fi
|
|
}
|
|
# Dunst -------------------------------------
|
|
apply_dunst() {
|
|
# modify dunst config
|
|
sed -i ${PATH_DUNST}/dunstrc \
|
|
-e "s/width = .*/width = $dunst_width/g" \
|
|
-e "s/height = .*/height = $dunst_height/g" \
|
|
-e "s/offset = .*/offset = $dunst_offset/g" \
|
|
-e "s/origin = .*/origin = $dunst_origin/g" \
|
|
-e "s/font = .*/font = $dunst_font/g" \
|
|
-e "s/frame_width = .*/frame_width = $dunst_border/g" \
|
|
-e "s/separator_height = .*/separator_height = $dunst_separator/g" \
|
|
-e "s/line_height = .*/line_height = $dunst_separator/g"
|
|
|
|
# modify colors
|
|
sed -i '/urgency_low/Q' ${PATH_DUNST}/dunstrc
|
|
cat >> ${PATH_DUNST}/dunstrc <<- _EOF_
|
|
[urgency_low]
|
|
timeout = 2
|
|
background = "${background}"
|
|
foreground = "${foreground}"
|
|
frame_color = "${accent}"
|
|
|
|
[urgency_normal]
|
|
timeout = 5
|
|
background = "${background}"
|
|
foreground = "${foreground}"
|
|
frame_color = "${accent}"
|
|
|
|
[urgency_critical]
|
|
timeout = 0
|
|
background = "${background}"
|
|
foreground = "${color_red}"
|
|
frame_color = "${color_red}"
|
|
_EOF_
|
|
|
|
# restart dunst
|
|
pkill dunst && dunst &
|
|
}
|
|
|
|
apply_rofi() {
|
|
# modify icon theme
|
|
if [[ -f "$PATH_ROF"/config.rasi ]]; then
|
|
sed -i -e "s/icon-theme:.*/icon-theme: \"$rofi_icon\";/g" ${PATH_CONF}/rofi/config.rasi
|
|
fi
|
|
# modify rofi scripts
|
|
sed -i ${PATH_ROF}/bin/themes -e "s/STYLE=.*/STYLE=\"$THEME\"/g"
|
|
sed -i ${PATH_ROF}/bin/launcher -e "s/STYLE=.*/STYLE=\"$THEME\"/g"
|
|
sed -i ${PATH_ROF}/bin/music -e "s/STYLE=.*/STYLE=\"$THEME\"/g"
|
|
sed -i ${PATH_ROF}/bin/powermenu -e "s/STYLE=.*/STYLE=\"$THEME\"/g"
|
|
sed -i ${PATH_ROF}/bin/screenshot -e "s/STYLE=.*/STYLE=\"$THEME\"/g"
|
|
sed -i ${PATH_ROF}/bin/screenrecord -e "s/STYLE=.*/STYLE=\"$THEME\"/g"
|
|
sed -i ${PATH_ROF}/bin/asroot -e "s/STYLE=.*/STYLE=\"$THEME\"/g"
|
|
sed -i ${PATH_ROF}/bin/askpass -e "s/STYLE=.*/STYLE=\"$THEME\"/g"
|
|
sed -i ${PATH_ROF}/bin/network_menu \
|
|
-e "s/CONF.read.*/CONF.read\(expanduser\(\"\~\/\.config\/themes\/$THEME\/rofi\/networkmenu_config.ini\"\)\)/g"
|
|
|
|
}
|
|
|
|
# Notify User -------------------------------
|
|
notify_user() {
|
|
dunstify -u normal -h string:x-dunst-stack-tag:applytheme -i /usr/share/icons/dunst/themes.png "Applying Style : $THEME"
|
|
}
|
|
|
|
## Execute Script ---------------------------
|
|
apply_waybar
|
|
apply_terminal
|
|
apply_geany
|
|
apply_appearance
|
|
apply_dunst
|
|
apply_rofi
|
|
notify_user
|