Various compilation scripts & patches for Linux programs.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

200 lines
8.6 KiB

#!/bin/bash
# This script installs a user selected theme file for all existing
# PlayOnLinux wine prefixes.
# The purpose of this script is to automate theme selection process
# in a case user has many wineprefixes which would otherwise
# require manual tweaking, individually.
#
# USAGE: Change your theme preferences here and then run the script.
#
# NOTE: If you change VistaPerfection theme to another one, please
# make sure you change corresponding registry values below!
#########################################################################
REGFILE=user.reg
MAINFOLDER=$HOME/.PlayOnLinux/wineprefix/
THEMEFILE=VistaPerfection.msstyles
THEMEFOLDER=drive_c/windows/Resources/Themes/VistaPerfection/
#########################################################################
# Add VistaPerfection theme to each existing PlayOnLinux Wine prefix
# folder.
for i in $MAINFOLDER/* ; do
if [[ -d $i ]]; then # Filter directories only and exclude all files
#########################################################################
# Copy theme file into correct folder.
mkdir -p $i/$THEMEFOLDER
cp -rf ./$THEMEFILE $i/$THEMEFOLDER
#########################################################################
# If pattern [Control Panel\\Colors] exists in user.reg (basically, it always does)
if [[ $(cat $i/$REGFILE | grep -c "\[Control Panel\\\\\\\\Colors\]") -eq 1 ]]; then
# If no theme is applied, ThemeManager registry key shouldn't exist. We check this, and if the check returns 0, then
if [[ $(cat $i/$REGFILE | grep -c "\[Software\\\\\\\\Microsoft\\\\\\\\Windows\\\\\\\\CurrentVersion\\\\\\\\ThemeManager\]") -eq 0 ]]; then
# Delete lines between [Control Panel\\Colors] and #time
sed -i '/\[Control Panel\\\\Colors\]/,/#time/ { // { x; s/$/./; x; }; x; /.../! { x; d; }; x; }' $i/$REGFILE
else
# Else, we expect that some theme is already applied and range of lines [Control Panel\\Colors] - "WindowText" exists.
# Delete all between lines [Control Panel\\Colors] to the next "WindowText" line (including these lines themselves, too).
# First match only.
sed -i '/\[Control Panel\\\\Colors\]/,/.*WindowText/ { // { x; s/$/./; x; }; x; /.../! { x; d; }; x; }' $i/$REGFILE
fi
fi
#########################################################################
# If pattern [Software\\Microsoft\\Windows\\CurrentVersion\\ThemeManager]
# exists in user.reg.
if [[ $(cat $i/$REGFILE | grep -c "\[Software\\\\\\\\Microsoft\\\\\\\\Windows\\\\\\\\CurrentVersion\\\\\\\\ThemeManager\]") -eq 1 ]]; then
# Then delete all between lines [Software\\Microsoft\\Windows\\CurrentVersion\\ThemeManager]
# to the next "ThemeActive" line (including these lines themselves, too).
# First match only.
sed -i '/\[Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\ThemeManager\]/,/.*ThemeActive/ { // { x; s/$/./; x; }; x; /.../! { x; d; }; x; }' $i/$REGFILE
fi
#########################################################################
# If pattern [Software\\Microsoft\\Windows\\CurrentVersion\\ThemeManager\\Control Panel\\Colors]
# exists in user reg.
if [[ $(cat $i/$REGFILE | grep -c "\[Software\\\\\\\\Microsoft\\\\\\\\Windows\\\\\\\\CurrentVersion\\\\\\\\ThemeManager\\\\\\\\Control Panel\\\\\\\\Colors]") -eq 1 ]]; then
# Then delete all between lines [Software\\Microsoft\\Windows\\CurrentVersion\\ThemeManager\\Control Panel\\Colors]
# to the next "WindowText" line (including these lines themselves, too).
# First match only.
sed -i '/\[Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\ThemeManager\\\\Control Panel\\\\Colors\]/,/.*WindowText/ { // { x; s/$/./; x; }; x; /.../! { x; d; }; x; }' $i/$REGFILE
fi
#########################################################################
# Insert the following lines before [Control Panel\\Desktop] entry.
# To modify theme colors universally for all PlayOnLinux wineprefixes, modify these values and re-run this bash script.
#
# If you use another theme file than VistaPefection, you must change these values!
sed -i '/\[Control Panel\\\\Desktop\]/i \
[Control Panel\\\\Colors] 1412354567 0 \
#time=1cfdf290fdf9d80 \
"ActiveBorder"="212 208 200" \
"ActiveTitle"="185 209 234" \
"AppWorkSpace"="128 128 128" \
"Background"="0 0 0" \
"ButtonAlternateFace"="181 181 181" \
"ButtonDkShadow"="160 160 160" \
"ButtonFace"="240 240 240" \
"ButtonHilight"="255 255 255" \
"ButtonLight"="227 227 227" \
"ButtonShadow"="213 213 213" \
"ButtonText"="0 0 0" \
"GradientActiveTitle"="185 209 234" \
"GradientInactiveTitle"="215 228 242" \
"GrayText"="128 128 128" \
"Hilight"="51 153 255" \
"HilightText"="255 255 255" \
"HotTrackingColor"="0 102 204" \
"InactiveBorder"="212 208 200" \
"InactiveTitle"="191 205 219" \
"InactiveTitleText"="67 78 84" \
"InfoText"="0 0 0" \
"InfoWindow"="255 255 255" \
"Menu"="240 240 240" \
"MenuBar"="240 240 240" \
"MenuHilight"="51 153 255" \
"MenuText"="0 0 0" \
"Scrollbar"="212 208 200" \
"TitleText"="0 0 0" \
"Window"="255 255 255" \
"WindowFrame"="0 0 0" \
"WindowText"="0 0 0" \
\
[Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\ThemeManager] 1424057405 0 \
#time=1d04998dae45c80 \
"ColorName"="NormalColor" \
"DllName"="C:\\\\windows\\\\Resources\\\\Themes\\\\VistaPerfection\\\\VistaPerfection.msstyles" \
"FlatMenu"=dword:00000000 \
"GradientCaption"=dword:00000001 \
"IconTitleFont"=hex:f5,ff,ff,ff,00,00,00,00,00,00,00,00,00,00,00,00,90,01,00,\\ \
00,00,00,00,00,00,00,00,22,4d,00,53,00,20,00,53,00,68,00,65,00,6c,00,6c,00,\\ \
20,00,44,00,6c,00,67,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\\ \
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 \
"NonClientMetrics"=hex:f8,01,00,00,01,00,00,00,10,00,00,00,10,00,00,00,12,00,\\ \
00,00,12,00,00,00,f5,ff,ff,ff,00,00,00,00,00,00,00,00,00,00,00,00,bc,02,00,\\ \
00,00,00,00,00,00,00,00,22,4d,00,53,00,20,00,53,00,68,00,65,00,6c,00,6c,00,\\ \
20,00,44,00,6c,00,67,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\\ \
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,0f,00,\\ \
00,00,0f,00,00,00,f5,ff,ff,ff,00,00,00,00,00,00,00,00,00,00,00,00,90,01,00,\\ \
00,00,00,00,00,00,00,00,22,4d,00,53,00,20,00,53,00,68,00,65,00,6c,00,6c,00,\\ \
20,00,44,00,6c,00,67,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\\ \
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,12,00,\\ \
00,00,12,00,00,00,f5,ff,ff,ff,00,00,00,00,00,00,00,00,00,00,00,00,90,01,00,\\ \
00,00,00,00,00,00,00,00,22,4d,00,53,00,20,00,53,00,68,00,65,00,6c,00,6c,00,\\ \
20,00,44,00,6c,00,67,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\\ \
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,f5,ff,\\ \
ff,ff,00,00,00,00,00,00,00,00,00,00,00,00,90,01,00,00,00,00,00,00,00,00,00,\\ \
22,4d,00,53,00,20,00,53,00,68,00,65,00,6c,00,6c,00,20,00,44,00,6c,00,67,00,\\ \
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\\ \
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,f5,ff,ff,ff,00,00,00,00,00,00,\\ \
00,00,00,00,00,00,90,01,00,00,00,00,00,00,00,00,00,22,4d,00,53,00,20,00,53,\\ \
00,68,00,65,00,6c,00,6c,00,20,00,44,00,6c,00,67,00,00,00,00,00,00,00,00,00,\\ \
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\\ \
00,00,00,00,00,00,00,00,00,00,00 \
"SizeName"="NormalSize" \
"ThemeActive"="1" \
\
[Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\ThemeManager\\\\Control Panel\\\\Colors] 1424057405 0 \
#time=1d04998dae45c80 \
"ActiveBorder"="212 208 200" \
"ActiveTitle"="10 36 106" \
"AppWorkSpace"="128 128 128" \
"Background"="58 110 165" \
"ButtonAlternateFace"="181 181 181" \
"ButtonDkShadow"="64 64 64" \
"ButtonFace"="212 208 200" \
"ButtonHilight"="255 255 255" \
"ButtonLight"="212 208 200" \
"ButtonShadow"="128 128 128" \
"ButtonText"="0 0 0" \
"GradientActiveTitle"="166 202 240" \
"GradientInactiveTitle"="192 192 192" \
"GrayText"="128 128 128" \
"Hilight"="10 36 106" \
"HilightText"="255 255 255" \
"HotTrackingColor"="0 0 200" \
"InactiveBorder"="212 208 200" \
"InactiveTitle"="128 128 128" \
"InactiveTitleText"="212 208 200" \
"InfoText"="0 0 0" \
"InfoWindow"="255 255 225" \
"Menu"="212 208 200" \
"MenuBar"="212 208 200" \
"MenuHilight"="10 36 106" \
"MenuText"="0 0 0" \
"Scrollbar"="212 208 200" \
"TitleText"="255 255 255" \
"Window"="255 255 255" \
"WindowFrame"="0 0 0" \
"WindowText"="0 0 0" \
' $i/$REGFILE
####################################################
# Replace double blank lines with one blank line.
sed -i '/^$/N;/^\n$/D' $i/$REGFILE
####################################################
fi
done