diff --git a/Readme.md b/Readme.md index 5ad4e23..ff2ca4f 100644 --- a/Readme.md +++ b/Readme.md @@ -300,6 +300,9 @@ Basically, this patch helps you installing many useful programs on Wine which wo - custompatch_photoshop_tooltip_win.c.patch = Patch for hovering Photoshop tooltip pop-ups. +Includes *install-wine-theme-to-polprefixes* subfolder which includes a script that changes theme for all existing PlayOnLinux wine prefixes automatically. +You can customize the script to suit your needs. The purpose of this script is to improve & automate management of multiple prefix themes. + FORMAT: Arch Linux PKGBUILD script + patch files + PlayOnLinux script & files. **wine-launcher-creator** diff --git a/wine/install-wine-theme-to-polprefixes/VistaPerfection.msstyles b/wine/install-wine-theme-to-polprefixes/VistaPerfection.msstyles new file mode 100644 index 0000000..170efe1 Binary files /dev/null and b/wine/install-wine-theme-to-polprefixes/VistaPerfection.msstyles differ diff --git a/wine/install-wine-theme-to-polprefixes/install-theme-to-polprefixes.sh b/wine/install-wine-theme-to-polprefixes/install-theme-to-polprefixes.sh new file mode 100644 index 0000000..57a8367 --- /dev/null +++ b/wine/install-wine-theme-to-polprefixes/install-theme-to-polprefixes.sh @@ -0,0 +1,200 @@ +#!/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