summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorRob McCathie2016-04-09 20:50:10 +1000
committerRob McCathie2016-04-09 20:50:10 +1000
commit156bbb0a53714482c0d25ff786c31df48bda6c1f (patch)
treef4bd6ef4b78cc6e955e63b14501437b90cdab79b
parent80dc35979acec14e86bb3308d488a7b994526fce (diff)
downloadaur-156bbb0a53714482c0d25ff786c31df48bda6c1f.tar.gz
Improvements and fixes for Xfce autostart and uninstallation, and improved MATE support
-rw-r--r--.SRCINFO32
-rw-r--r--PKGBUILD47
-rw-r--r--cmake3.patch31
-rwxr-xr-xcompiz-manjaro-decoratortheme11
-rwxr-xr-xcompiz-manjaro-mate-decoratortheme7
-rw-r--r--compiz-manjaro-mate-decoratortheme.desktop11
-rwxr-xr-xcompiz-manjaro-xfce-decoratortheme14
-rw-r--r--compiz-manjaro-xfce-decoratortheme.desktop (renamed from compiz-manjaro-decoratortheme.desktop)2
-rw-r--r--compiz-manjaro.install81
-rwxr-xr-xcompiz-xfce-autostart18
-rw-r--r--compiz-xfce-uninstall-helper14
-rw-r--r--compiz-xfce-uninstall-helper.desktop2
-rw-r--r--compiz.install35
-rw-r--r--cube-texture.patch26
-rw-r--r--marco-in-mate.patch1209
15 files changed, 1379 insertions, 161 deletions
diff --git a/.SRCINFO b/.SRCINFO
index dd2a02fd30ee..3a362efa4667 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,11 +1,11 @@
-# Generated by makepkg 4.2.1
-# Mon Oct 19 08:32:47 UTC 2015
+# Generated by makepkg 5.0.1
+# Sat Apr 9 10:36:49 UTC 2016
pkgbase = compiz-manjaro
pkgdesc = OpenGL compositing window manager. Includes friendly defaults, GWD theme selector and autostart for Xfce & MATE.
pkgver = 0.9.12.2
- pkgrel = 2
+ pkgrel = 4
url = https://launchpad.net/compiz
- install = compiz-manjaro.install
+ install = compiz.install
arch = i686
arch = x86_64
license = GPL
@@ -61,6 +61,9 @@ pkgbase = compiz-manjaro
source = xfce4-notifyd-nofade.patch
source = c++11.patch
source = switcher-background.patch
+ source = cmake3.patch
+ source = cube-texture.patch
+ source = marco-in-mate.patch
source = compiz-manjaro-defaults.patch
source = compiz-manjaro.gschema.override
source = compiz-gtk-decorator-theme-selector
@@ -69,10 +72,8 @@ pkgbase = compiz-manjaro
source = compiz-xfce-autostart.desktop
source = compiz-xfce-uninstall-helper
source = compiz-xfce-uninstall-helper.desktop
- source = compiz-manjaro-decoratortheme
- source = compiz-manjaro-decoratortheme.desktop
- source = compiz-manjaro-mate-decoratortheme
- source = compiz-manjaro-mate-decoratortheme.desktop
+ source = compiz-manjaro-xfce-decoratortheme
+ source = compiz-manjaro-xfce-decoratortheme.desktop
source = greybird-1.6.2.tar.gz::https://github.com/shimmerproject/Greybird/archive/v1.6.2.tar.gz
sha256sums = 8917ac9e6dfdacc740780e1995e932ed865d293ae87821e7a280da5325daec80
sha256sums = f4897590b0f677ba34767a29822f8f922a750daf66e8adf47be89f7c2550cf4b
@@ -80,18 +81,19 @@ pkgbase = compiz-manjaro
sha256sums = 273aa79cb0887922e3a73fbbe97596495cee19ca6f4bd716c6c7057f323d8198
sha256sums = eb8b432050d1eed9cb1d5f33d2645f81e2bdce2bf55d5cc779986bb751373a45
sha256sums = e3125ed3a7e87a7d4bdaa23f1b6f654a02d0b050ad7a694ce9165fff2c6ff310
+ sha256sums = e5016fd62f9c9659d887eeafd556c18350615cd6d185c8ffa08825465890c5e0
+ sha256sums = 81780f8c56f5b27b09394ae9ed59d10ae50c58f9ade445e9f85d7c2a00445f7e
+ sha256sums = 0d7474aee60c1a482cf26d5d0be6ec2e1b1067fa1d601fdf4aa19a71b07e41d3
sha256sums = cdc9eeaa213dbde3bceb2d0a73171ed319929b6a5146ff55fcd4f17df7b25d13
sha256sums = 443f85eae424e8aa993f786f3f90dcf92a5454f728f574a5311bb4747ac54288
sha256sums = 0679b0f336b765171c1ee0317065dfe33f6beb93f74d8e3282bd4a3e61e4a819
sha256sums = 0faaf9e9df28d2857108ccd0910d50ba631c34c2b1659b8860da8c2b552fc889
- sha256sums = d8205f6a9e69f904d17bce276941c10ad3d4a767be31d875a951ed7ddc26fd62
+ sha256sums = 85940c9c84443fd6229630f4dca9859d8db5146ea21ab76d55d99b2d763cf740
sha256sums = 8938f927c0f0ee5a9e83489dd66939588ebe4ad65bb59b483a54991421836a53
- sha256sums = 1000b69dbbdfbf67d309e14f040e2b74ec6e1e25cd2316406ae15ae839e01f37
- sha256sums = 2c225942951642b0afa6ee0ddc2f3bb312bf3c20e135736851f5772378823b11
- sha256sums = 4dff6abcf5455c9f91866d031d3c41ed8ae4bd2ca0f4561f3afb8e2605f2176a
- sha256sums = dc7d2f58e1bfab312d056f02008faecc0bcd572f41065f1e09c077c62c3f65ca
- sha256sums = 71d8a014695b23807e3c758e96045b2180c4d8d9ef501f1dded54f9232e1e1eb
- sha256sums = a992819fd34c4a9c256519c081e53047ef6527662ae989f4cb0e575fd1592115
+ sha256sums = cd179e08cef8e34f5aeb9629d5050ff263ccdb20f7df4a4e0fa195867b6bd1b9
+ sha256sums = 6f982de454f190235fd6577c1b3719a570569b9b024ebafe9fec1f1e2004326b
+ sha256sums = de94d4f1239ba263c2fdc7d4b168ee30d585f5aedccd2ad45fa63cb913e44cbc
+ sha256sums = 185b5db74729997c63c0a873eb08961414dade7755efaea95e4fe7e1b2821e18
sha256sums = 473a38b379381311b68dcc579005c0d5bbfbabefe1de7107d897c68b81e6b460
pkgname = compiz-manjaro
diff --git a/PKGBUILD b/PKGBUILD
index 991818a6e9f0..2445b80f9904 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -6,7 +6,7 @@ _name=compiz
pkgname=compiz-manjaro
_series=0.9.12
pkgver=${_series}.2
-pkgrel=2
+pkgrel=4
_greybirdver=1.6.2
pkgdesc="OpenGL compositing window manager. Includes friendly defaults, GWD theme selector and autostart for Xfce & MATE."
arch=('i686' 'x86_64')
@@ -28,6 +28,9 @@ source=("${url}/${_series}/${pkgver}/+download/${_name}-${pkgver}.tar.bz2"
"xfce4-notifyd-nofade.patch"
"c++11.patch"
"switcher-background.patch"
+ "cmake3.patch"
+ "cube-texture.patch"
+ "marco-in-mate.patch"
"${pkgname}-defaults.patch"
"${pkgname}.gschema.override"
"compiz-gtk-decorator-theme-selector"
@@ -36,10 +39,8 @@ source=("${url}/${_series}/${pkgver}/+download/${_name}-${pkgver}.tar.bz2"
"compiz-xfce-autostart.desktop"
"compiz-xfce-uninstall-helper"
"compiz-xfce-uninstall-helper.desktop"
- "${pkgname}-decoratortheme"
- "${pkgname}-decoratortheme.desktop"
- "${pkgname}-mate-decoratortheme"
- "${pkgname}-mate-decoratortheme.desktop"
+ "${pkgname}-xfce-decoratortheme"
+ "${pkgname}-xfce-decoratortheme.desktop"
"greybird-${_greybirdver}.tar.gz::https://github.com/shimmerproject/Greybird/archive/v${_greybirdver}.tar.gz")
sha256sums=('8917ac9e6dfdacc740780e1995e932ed865d293ae87821e7a280da5325daec80'
'f4897590b0f677ba34767a29822f8f922a750daf66e8adf47be89f7c2550cf4b'
@@ -47,20 +48,21 @@ sha256sums=('8917ac9e6dfdacc740780e1995e932ed865d293ae87821e7a280da5325daec80'
'273aa79cb0887922e3a73fbbe97596495cee19ca6f4bd716c6c7057f323d8198'
'eb8b432050d1eed9cb1d5f33d2645f81e2bdce2bf55d5cc779986bb751373a45'
'e3125ed3a7e87a7d4bdaa23f1b6f654a02d0b050ad7a694ce9165fff2c6ff310'
+ 'e5016fd62f9c9659d887eeafd556c18350615cd6d185c8ffa08825465890c5e0'
+ '81780f8c56f5b27b09394ae9ed59d10ae50c58f9ade445e9f85d7c2a00445f7e'
+ '0d7474aee60c1a482cf26d5d0be6ec2e1b1067fa1d601fdf4aa19a71b07e41d3'
'cdc9eeaa213dbde3bceb2d0a73171ed319929b6a5146ff55fcd4f17df7b25d13'
'443f85eae424e8aa993f786f3f90dcf92a5454f728f574a5311bb4747ac54288'
'0679b0f336b765171c1ee0317065dfe33f6beb93f74d8e3282bd4a3e61e4a819'
'0faaf9e9df28d2857108ccd0910d50ba631c34c2b1659b8860da8c2b552fc889'
- 'd8205f6a9e69f904d17bce276941c10ad3d4a767be31d875a951ed7ddc26fd62'
+ '85940c9c84443fd6229630f4dca9859d8db5146ea21ab76d55d99b2d763cf740'
'8938f927c0f0ee5a9e83489dd66939588ebe4ad65bb59b483a54991421836a53'
- '1000b69dbbdfbf67d309e14f040e2b74ec6e1e25cd2316406ae15ae839e01f37'
- '2c225942951642b0afa6ee0ddc2f3bb312bf3c20e135736851f5772378823b11'
- '4dff6abcf5455c9f91866d031d3c41ed8ae4bd2ca0f4561f3afb8e2605f2176a'
- 'dc7d2f58e1bfab312d056f02008faecc0bcd572f41065f1e09c077c62c3f65ca'
- '71d8a014695b23807e3c758e96045b2180c4d8d9ef501f1dded54f9232e1e1eb'
- 'a992819fd34c4a9c256519c081e53047ef6527662ae989f4cb0e575fd1592115'
+ 'cd179e08cef8e34f5aeb9629d5050ff263ccdb20f7df4a4e0fa195867b6bd1b9'
+ '6f982de454f190235fd6577c1b3719a570569b9b024ebafe9fec1f1e2004326b'
+ 'de94d4f1239ba263c2fdc7d4b168ee30d585f5aedccd2ad45fa63cb913e44cbc'
+ '185b5db74729997c63c0a873eb08961414dade7755efaea95e4fe7e1b2821e18'
'473a38b379381311b68dcc579005c0d5bbfbabefe1de7107d897c68b81e6b460')
-install="${pkgname}.install"
+install="${_name}.install"
prepare() {
cd "${_name}-${pkgver}"
@@ -89,6 +91,15 @@ prepare() {
# Allow user to change switcher background colour (fixes blank background for Emerald)
patch -p1 -i "${srcdir}/switcher-background.patch"
+
+ # Get rid of the cmake policy warning messages
+ patch -p1 -i "${srcdir}/cmake3.patch"
+
+ # Fix off-center cube cap pictures
+ patch -p1 -i "${srcdir}/cube-texture.patch"
+
+ # Use the Marco gsettings in MATE session (commits 3997+4002)
+ patch -p1 -i "${srcdir}/marco-in-mate.patch"
# Manjaro defaults
patch -p1 -i "${srcdir}/${pkgname}-defaults.patch"
@@ -155,12 +166,10 @@ package() {
# Place autostart/theme scripts/enablers
install -Dm755 "${srcdir}/compiz-xfce-autostart" "${pkgdir}/usr/bin/compiz-xfce-autostart"
install -Dm644 "${srcdir}/compiz-xfce-autostart.desktop" "${pkgdir}/etc/xdg/autostart/compiz-xfce-autostart.desktop"
- install -Dm755 "${srcdir}/compiz-xfce-uninstall-helper" "${pkgdir}/usr/share/compiz-xfce/compiz-xfce-uninstall-helper"
- install -Dm644 "${srcdir}/compiz-xfce-uninstall-helper.desktop" "${pkgdir}/usr/share/compiz-xfce/compiz-xfce-uninstall-helper.desktop"
- install -Dm755 "${srcdir}/${pkgname}-decoratortheme" "${pkgdir}/usr/bin/${pkgname}-decoratortheme"
- install -Dm644 "${srcdir}/${pkgname}-decoratortheme.desktop" "${pkgdir}/etc/xdg/autostart/${pkgname}-decoratortheme.desktop"
- install -Dm755 "${srcdir}/${pkgname}-mate-decoratortheme" "${pkgdir}/usr/bin/${pkgname}-mate-decoratortheme"
- install -Dm644 "${srcdir}/${pkgname}-mate-decoratortheme.desktop" "${pkgdir}/etc/xdg/autostart/${pkgname}-mate-decoratortheme.desktop"
+ install -Dm755 "${srcdir}/compiz-xfce-uninstall-helper" "${pkgdir}/usr/bin/compiz-xfce-uninstall-helper"
+ install -Dm644 "${srcdir}/compiz-xfce-uninstall-helper.desktop" "${pkgdir}/etc/xdg/autostart/compiz-xfce-uninstall-helper.desktop"
+ install -Dm755 "${srcdir}/${pkgname}-xfce-decoratortheme" "${pkgdir}/usr/bin/${pkgname}-xfce-decoratortheme"
+ install -Dm644 "${srcdir}/${pkgname}-xfce-decoratortheme.desktop" "${pkgdir}/etc/xdg/autostart/${pkgname}-xfce-decoratortheme.desktop"
# greybird window decorations
cd "${srcdir}/Greybird-${_greybirdver}"
diff --git a/cmake3.patch b/cmake3.patch
new file mode 100644
index 000000000000..e59a4a037ca6
--- /dev/null
+++ b/cmake3.patch
@@ -0,0 +1,31 @@
+=== modified file 'cmake/CompizCommon.cmake'
+--- a/cmake/CompizCommon.cmake 2014-11-04 15:54:44 +0000
++++ b/cmake/CompizCommon.cmake 2015-07-30 19:36:21 +0000
+@@ -17,6 +17,8 @@
+ cmake_policy (SET CMP0003 NEW)
+ cmake_policy (SET CMP0005 OLD)
+ cmake_policy (SET CMP0011 OLD)
++cmake_policy (SET CMP0022 OLD)
++
+
+ set (CMAKE_SKIP_RPATH FALSE)
+
+@@ -381,7 +383,6 @@
+ add_custom_target (release-upload-component)
+ add_custom_target (release-upload)
+
+- add_dependencies (release-upload-component release-upload-version)
+ add_dependencies (release-upload release-upload-component)
+
+ endmacro ()
+
+=== modified file 'compizconfig/CMakeLists.txt'
+--- a/compizconfig/CMakeLists.txt 2014-11-25 13:15:56 +0000
++++ b/compizconfig/CMakeLists.txt 2015-07-30 19:36:21 +0000
+@@ -37,5 +37,3 @@
+ endif (COMPIZ_BUILD_TESTING)
+
+ add_custom_target (pyclean)
+-
+-add_dependencies (pyclean pyclean_ccsm pyclean_compizconfig)
+
diff --git a/compiz-manjaro-decoratortheme b/compiz-manjaro-decoratortheme
deleted file mode 100755
index 4ab78267bc70..000000000000
--- a/compiz-manjaro-decoratortheme
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-gsettings reset org.gnome.desktop.wm.preferences theme
-
-if [ -f /usr/bin/xfconf-query ] && [ "$(xfconf-query -c xsettings -p /Net/ThemeName)" == "Menda" ]; then
- gsettings set org.gnome.desktop.wm.preferences theme "Menda"
-fi
-
-mkdir -p ~/.config/autostart
-rm ~/.config/autostart/compiz-manjaro-decoratortheme.desktop
-cp /etc/xdg/autostart/compiz-manjaro-decoratortheme.desktop ~/.config/autostart/
-sed -i 's|Hidden=false|Hidden=true|' ~/.config/autostart/compiz-manjaro-decoratortheme.desktop
diff --git a/compiz-manjaro-mate-decoratortheme b/compiz-manjaro-mate-decoratortheme
deleted file mode 100755
index b555cb83bf98..000000000000
--- a/compiz-manjaro-mate-decoratortheme
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/bash
-gsettings set org.gnome.desktop.wm.preferences theme $(gsettings get org.mate.interface gtk-theme | sed "s/'//g")
-
-mkdir -p ~/.config/autostart
-rm ~/.config/autostart/compiz-manjaro-mate-decoratortheme.desktop
-cp /etc/xdg/autostart/compiz-manjaro-mate-decoratortheme.desktop ~/.config/autostart/
-sed -i 's|Hidden=false|Hidden=true|' ~/.config/autostart/compiz-manjaro-mate-decoratortheme.desktop
diff --git a/compiz-manjaro-mate-decoratortheme.desktop b/compiz-manjaro-mate-decoratortheme.desktop
deleted file mode 100644
index fdfb88333bb0..000000000000
--- a/compiz-manjaro-mate-decoratortheme.desktop
+++ /dev/null
@@ -1,11 +0,0 @@
-[Desktop Entry]
-Encoding=UTF-8
-Version=0.9.4
-Type=Application
-Name=Compiz-Manjaro-MATE decorator theme enabler
-Comment=
-Exec=compiz-manjaro-mate-decoratortheme
-OnlyShowIn=MATE;
-StartupNotify=false
-Terminal=false
-Hidden=false
diff --git a/compiz-manjaro-xfce-decoratortheme b/compiz-manjaro-xfce-decoratortheme
new file mode 100755
index 000000000000..a16a84ebe6a9
--- /dev/null
+++ b/compiz-manjaro-xfce-decoratortheme
@@ -0,0 +1,14 @@
+#!/bin/bash
+gsettings reset org.gnome.desktop.wm.preferences theme
+
+if [ -f /usr/bin/xfconf-query ] && [ "$(xfconf-query -c xsettings -p /Net/ThemeName)" == "Menda" ]; then
+ gsettings set org.gnome.metacity theme "Menda"
+elif [ -f /usr/bin/xfconf-query ] && [ "$(xfconf-query -c xsettings -p /Net/ThemeName)" == "Vertex-Maia-Square" ]; then
+ gsettings set org.gnome.metacity theme "Vertex-Maia-Square"
+
+fi
+
+mkdir -p ~/.config/autostart
+rm ~/.config/autostart/compiz-manjaro-xfce-decoratortheme.desktop
+cp /etc/xdg/autostart/compiz-manjaro-xfce-decoratortheme.desktop ~/.config/autostart/
+sed -i 's|Hidden=false|Hidden=true|' ~/.config/autostart/compiz-manjaro-xfce-decoratortheme.desktop
diff --git a/compiz-manjaro-decoratortheme.desktop b/compiz-manjaro-xfce-decoratortheme.desktop
index 76eb7ecb3aa5..bf5a27b8aea3 100644
--- a/compiz-manjaro-decoratortheme.desktop
+++ b/compiz-manjaro-xfce-decoratortheme.desktop
@@ -4,7 +4,7 @@ Version=0.9.4
Type=Application
Name=Compiz-Manjaro decorator theme enabler
Comment=
-Exec=compiz-manjaro-decoratortheme
+Exec=compiz-manjaro-xfce-decoratortheme
OnlyShowIn=XFCE;
StartupNotify=false
Terminal=false
diff --git a/compiz-manjaro.install b/compiz-manjaro.install
deleted file mode 100644
index 91829bac1674..000000000000
--- a/compiz-manjaro.install
+++ /dev/null
@@ -1,81 +0,0 @@
-post_install() {
- echo " -> Updating icon cache..."
- gtk-update-icon-cache -q -f -t /usr/share/icons/hicolor
- echo " -> Updating XDG menu database..."
- update-desktop-database -q
-
- ls usr/share/glib-2.0/schemas 2>/dev/null | grep -qm1 org.compiz
- if [ $? -eq 0 ]; then
- echo " -> Recompiling the GSettings database... "
- glib-compile-schemas usr/share/glib-2.0/schemas
- fi
-
- # Xfce autostart. This sed command generally won't work on initial installation, but that's ok, it's dealt with elsewhere.
- sed -i 's|xfwm4|compiz|' /home/*/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml 2>/dev/null
-
-## This shouldn't be needed anymore, but the removal warning is.
-# echo ""
-# echo "** XFCE USERS **"
-# echo "** It's recommended you clear your saved sessions before **"
-# echo "** logging out and back in: **"
-# echo "** **"
-# echo "** Menu -> Settings -> Session and Startup -> Session tab **"
-# echo "** 'Clear saved sessions' button **"
-# echo "** **"
-# echo "** Make sure 'Save session for future logins' is NOT ticked **"
-# echo "** in the log out window. **"
-# echo "** Log out and back in, then Compiz should be active. **"
-# echo ""
-
- echo ""
- echo "*** Xfce and MATE users just log out ***"
- echo "*** and back in, Compiz will autostart ***"
- echo ""
-}
-
-post_upgrade() {
- echo " -> Updating icon cache..."
- gtk-update-icon-cache -q -f -t /usr/share/icons/hicolor
- echo " -> Updating XDG menu database..."
- update-desktop-database -q
-
- ls usr/share/glib-2.0/schemas 2>/dev/null | grep -qm1 org.compiz
- if [ $? -eq 0 ]; then
- echo " -> Recompiling the GSettings database... "
- glib-compile-schemas usr/share/glib-2.0/schemas
- fi
-}
-
-post_remove() {
- echo " -> Updating icon cache..."
- gtk-update-icon-cache -q -f -t /usr/share/icons/hicolor
- echo " -> Updating XDG menu database..."
- update-desktop-database -q
-
- if [ -d /usr/share/glib-2.0/schemas ]; then
- echo " -> Recompiling the GSettings database... "
- glib-compile-schemas usr/share/glib-2.0/schemas
- fi
-
- # Xfce autostart removal. The first sed command remains to reverse actions made by earlier revisions of the package.
- sed -i 's|compiz|xfwm4|' /etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml 2>/dev/null
- sed -i 's|compiz|xfwm4|' /home/*/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml 2>/dev/null
- rm /home/*/.config/autostart/compiz-xfce-autostart.desktop 2>/dev/null
- rm /home/*/.config/autostart/compiz-manjaro-decoratortheme.desktop 2>/dev/null
- # MATE initial decoration fix removal
- rm /home/*/.config/autostart/compiz-manjaro-mate-decoratortheme.desktop 2>/dev/null
-
- echo ""
- echo "** XFCE USERS **"
- echo "** It's recommended you clear your saved sessions before **"
- echo "** logging out and back in: **"
- echo "** **"
- echo "** Menu -> Settings -> Session and Startup -> Session tab **"
- echo "** 'Clear saved sessions' button **"
- echo "** **"
- echo "** Make sure 'Save session for future logins' is NOT ticked **"
- echo "** in the log out window. **"
- echo "** Log out and back in, then Xfwm4 should be restored. **"
- echo ""
-}
-
diff --git a/compiz-xfce-autostart b/compiz-xfce-autostart
index d8f008d0d0ea..0774728646d8 100755
--- a/compiz-xfce-autostart
+++ b/compiz-xfce-autostart
@@ -1,13 +1,7 @@
#!/bin/bash
-if [ -f ~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml ] && [ "$(grep -i 'xfwm4' ~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml)" != "" ]; then
- sed -i 's|xfwm4|compiz|' ~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml
-elif [ -f ~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml ] && [ "$(grep -i 'compiz' ~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml)" == "" ]; then
- mv ~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml ~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml.backup
- cp /etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml ~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml
- sed -i 's|xfwm4|compiz|' ~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml
-elif [ ! -f ~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml ]; then
- cp /etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml ~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml
- sed -i 's|xfwm4|compiz|' ~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml
+
+if [ -f /usr/bin/xfconf-query ]; then
+ xfconf-query -c xfce4-session -p /sessions/Failsafe/Client0_Command -a -s compiz
fi
mkdir -p ~/.config/autostart
@@ -15,11 +9,5 @@ rm ~/.config/autostart/compiz-xfce-autostart.desktop
cp /etc/xdg/autostart/compiz-xfce-autostart.desktop ~/.config/autostart/
sed -i 's|Hidden=false|Hidden=true|' ~/.config/autostart/compiz-xfce-autostart.desktop
-mkdir -p ~/.local/bin
-rm ~/.local/bin/compiz-xfce-uninstall-helper
-rm ~/.config/autostart/compiz-xfce-uninstall-helper.desktop
-cp /usr/share/compiz-xfce/compiz-xfce-uninstall-helper ~/.local/bin/
-cp /usr/share/compiz-xfce/compiz-xfce-uninstall-helper.desktop ~/.config/autostart/
-
## This first-time run when it's replacing a running xfwm4, we run it twice cause of bugs
compiz --replace ; exec compiz --replace
diff --git a/compiz-xfce-uninstall-helper b/compiz-xfce-uninstall-helper
index 240468eb04f5..827da37c10bd 100644
--- a/compiz-xfce-uninstall-helper
+++ b/compiz-xfce-uninstall-helper
@@ -2,6 +2,20 @@
if [ ! -f /usr/bin/compiz ]; then
xfwm4 --daemon
+ xfconf-query -c xfce4-session -p /sessions/Failsafe/Client0_Command -a -s xfwm4
+ rm ~/.config/autostart/compiz-xfce-autostart.desktop
+ rm ~/.config/autostart/compiz-manjaro-xfce-decoratortheme.desktop
rm ~/.config/autostart/compiz-xfce-uninstall-helper.desktop
+
+ # this one is clean-up for an old filename that is no longer used, some time in the future it should be removed
+ rm ~/.config/autostart/compiz-manjaro-decoratortheme.desktop
+
rm ~/.local/bin/compiz-xfce-uninstall-helper
+elif [ ! -f ~/.config/autostart/compiz-xfce-uninstall-helper.desktop ]; then
+ mkdir -p ~/.local/bin
+ mkdir -p ~/.config/autostart
+ rm ~/.local/bin/compiz-xfce-uninstall-helper
+ cp /usr/bin/compiz-xfce-uninstall-helper ~/.local/bin/
+ cp /etc/xdg/autostart/compiz-xfce-uninstall-helper.desktop ~/.config/autostart/
+ sed -i 's|Exec=compiz-xfce-uninstall-helper|Exec=sh -c ~/.local/bin/compiz-xfce-uninstall-helper|' ~/.config/autostart/compiz-xfce-uninstall-helper.desktop
fi
diff --git a/compiz-xfce-uninstall-helper.desktop b/compiz-xfce-uninstall-helper.desktop
index 731719b2d391..e015650f1c25 100644
--- a/compiz-xfce-uninstall-helper.desktop
+++ b/compiz-xfce-uninstall-helper.desktop
@@ -4,7 +4,7 @@ Version=0.9.4
Type=Application
Name=Compiz-Xfce uninstallation helper
Comment=
-Exec=sh -c ~/.local/bin/compiz-xfce-uninstall-helper
+Exec=compiz-xfce-uninstall-helper
OnlyShowIn=XFCE;
StartupNotify=false
Terminal=false
diff --git a/compiz.install b/compiz.install
new file mode 100644
index 000000000000..4c346d149f62
--- /dev/null
+++ b/compiz.install
@@ -0,0 +1,35 @@
+post_install() {
+ echo " -> Updating icon cache..."
+ gtk-update-icon-cache -q -f -t /usr/share/icons/hicolor
+ echo " -> Updating XDG menu database..."
+ update-desktop-database -q
+
+ ls /usr/share/glib-2.0/schemas 2>/dev/null | grep -qm1 org.compiz
+ if [ $? -eq 0 ]; then
+ echo " -> Recompiling the GSettings database... "
+ glib-compile-schemas /usr/share/glib-2.0/schemas
+ fi
+}
+
+pre_upgrade() {
+ if [ -f /usr/share/gconf/schemas/compiz.schemas ]; then
+ echo " -> Uninstalling GConf schemas... "
+ gconfpkg --uninstall compiz
+ fi
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ echo " -> Updating icon cache..."
+ gtk-update-icon-cache -q -f -t /usr/share/icons/hicolor
+ echo " -> Updating XDG menu database..."
+ update-desktop-database -q
+
+ if [ -d /usr/share/glib-2.0/schemas ]; then
+ echo " -> Recompiling the GSettings database... "
+ glib-compile-schemas /usr/share/glib-2.0/schemas
+ fi
+}
diff --git a/cube-texture.patch b/cube-texture.patch
new file mode 100644
index 000000000000..3c217ad58c9a
--- /dev/null
+++ b/cube-texture.patch
@@ -0,0 +1,26 @@
+=== modified file 'plugins/cubeaddon/src/cubeaddon.cpp'
+--- a/plugins/cubeaddon/src/cubeaddon.cpp 2013-05-09 13:43:07 +0000
++++ b/plugins/cubeaddon/src/cubeaddon.cpp 2015-09-22 13:33:09 +0000
+@@ -591,8 +591,8 @@
+ mCapFill[i * 3 + 1],
+ mCapFill[i * 3 + 2],
+ 1.0f);
+- float s = v * sGen;
+- float t = v * tGen;
++ float s = v * sGen + 0.5;
++ float t = v * tGen + 0.5;
+
+ *(texCoordsPtr++) = s;
+ *(texCoordsPtr++) = t;
+@@ -653,8 +653,8 @@
+ * texCoord.s = dot (vec4 (obj, 1.0), sGenPlane)
+ * texCoord.t = dot (vec4 (obj, 1.0), tGenPlane)
+ */
+- float s = v * sGen;
+- float t = v * tGen;
++ float s = v * sGen + 0.5;
++ float t = v * tGen + 0.5;
+
+ *(texCoordsPtr++) = s;
+ *(texCoordsPtr++) = t;
+
diff --git a/marco-in-mate.patch b/marco-in-mate.patch
new file mode 100644
index 000000000000..ec74b9db20c5
--- /dev/null
+++ b/marco-in-mate.patch
@@ -0,0 +1,1209 @@
+diff -Naur a/gtk/window-decorator/gwd-settings-interface.c b/gtk/window-decorator/gwd-settings-interface.c
+--- a/gtk/window-decorator/gwd-settings-interface.c 2015-08-20 23:01:09.000000000 +1000
++++ b/gtk/window-decorator/gwd-settings-interface.c 2016-04-09 19:33:04.180359747 +1000
+@@ -33,7 +33,6 @@
+ const gint INACTIVE_SHADOW_OFFSET_Y_DEFAULT = 1;
+ const gchar *INACTIVE_SHADOW_COLOR_DEFAULT = "#00000000";
+
+-const guint DRAGGABLE_BORDER_WIDTH_DEFAULT = 7;
+ const gint BLUR_TYPE_DEFAULT = BLUR_TYPE_NONE;
+
+ const gchar *METACITY_THEME_DEFAULT = "Adwaita";
+@@ -74,14 +73,6 @@
+ USE_TOOLTIPS_DEFAULT,
+ G_PARAM_READABLE));
+ g_object_interface_install_property (settings_interface,
+- g_param_spec_int ("draggable-border-width",
+- "Draggable Border Width",
+- "Draggable Border Width Setting",
+- 0,
+- 64,
+- DRAGGABLE_BORDER_WIDTH_DEFAULT,
+- G_PARAM_READABLE));
+- g_object_interface_install_property (settings_interface,
+ g_param_spec_int ("blur",
+ "Blur Type",
+ "Blur type property",
+diff -Naur a/gtk/window-decorator/gwd-settings-storage-gsettings.c b/gtk/window-decorator/gwd-settings-storage-gsettings.c
+--- a/gtk/window-decorator/gwd-settings-storage-gsettings.c 2015-08-20 23:01:09.000000000 +1000
++++ b/gtk/window-decorator/gwd-settings-storage-gsettings.c 2016-04-09 19:33:06.810364208 +1000
+@@ -18,6 +18,7 @@
+ * Authored By: Sam Spilsbury <sam.spilsbury@canonical.com>
+ */
+ #include <glib-object.h>
++#include <glib.h>
+
+ #include <gio/gio.h>
+
+@@ -29,8 +30,8 @@
+
+ const gchar * ORG_COMPIZ_GWD = "org.compiz.gwd";
+ const gchar * ORG_GNOME_METACITY = "org.gnome.metacity";
+-const gchar * ORG_GNOME_MUTTER = "org.gnome.mutter";
+ const gchar * ORG_GNOME_DESKTOP_WM_PREFERENCES = "org.gnome.desktop.wm.preferences";
++const gchar * ORG_MATE_MARCO_GENERAL = "org.mate.Marco.general";
+
+ const gchar * ORG_COMPIZ_GWD_KEY_USE_TOOLTIPS = "use-tooltips";
+ const gchar * ORG_COMPIZ_GWD_KEY_BLUR_TYPE = "blur-type";
+@@ -41,7 +42,6 @@
+ const gchar * ORG_COMPIZ_GWD_KEY_USE_METACITY_THEME = "use-metacity-theme";
+ const gchar * ORG_COMPIZ_GWD_KEY_MOUSE_WHEEL_ACTION = "mouse-wheel-action";
+ const gchar * ORG_GNOME_METACITY_THEME = "theme";
+-const gchar * ORG_GNOME_MUTTER_DRAGGABLE_BORDER_WIDTH = "draggable-border-width";
+ const gchar * ORG_GNOME_DESKTOP_WM_PREFERENCES_ACTION_DOUBLE_CLICK_TITLEBAR = "action-double-click-titlebar";
+ const gchar * ORG_GNOME_DESKTOP_WM_PREFERENCES_ACTION_MIDDLE_CLICK_TITLEBAR = "action-middle-click-titlebar";
+ const gchar * ORG_GNOME_DESKTOP_WM_PREFERENCES_ACTION_RIGHT_CLICK_TITLEBAR = "action-right-click-titlebar";
+@@ -49,6 +49,13 @@
+ const gchar * ORG_GNOME_DESKTOP_WM_PREFERENCES_TITLEBAR_USES_SYSTEM_FONT = "titlebar-uses-system-font";
+ const gchar * ORG_GNOME_DESKTOP_WM_PREFERENCES_TITLEBAR_FONT = "titlebar-font";
+ const gchar * ORG_GNOME_DESKTOP_WM_PREFERENCES_BUTTON_LAYOUT = "button-layout";
++const gchar * ORG_MATE_MARCO_GENERAL_ACTION_DOUBLE_CLICK_TITLEBAR = "action-double-click-titlebar";
++const gchar * ORG_MATE_MARCO_GENERAL_ACTION_MIDDLE_CLICK_TITLEBAR = "action-middle-click-titlebar";
++const gchar * ORG_MATE_MARCO_GENERAL_ACTION_RIGHT_CLICK_TITLEBAR = "action-right-click-titlebar";
++const gchar * ORG_MATE_MARCO_GENERAL_THEME = "theme";
++const gchar * ORG_MATE_MARCO_GENERAL_TITLEBAR_USES_SYSTEM_FONT = "titlebar-uses-system-font";
++const gchar * ORG_MATE_MARCO_GENERAL_TITLEBAR_FONT = "titlebar-font";
++const gchar * ORG_MATE_MARCO_GENERAL_BUTTON_LAYOUT = "button-layout";
+
+ #define GWD_SETTINGS_STORAGE_GSETTINGS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GWD_TYPE_SETTINGS_STORAGE_GSETTINGS, GWDSettingsStorageGSettings));
+ #define GWD_SETTINGS_STORAGE_GSETTINGS_CLASS(obj) (G_TYPE_CHECK_CLASS_CAST ((obj), GWD_TYPE_SETTINGS_STORAGE_GSETTINGS, GWDSettingsStorageGSettingsClass));
+@@ -78,7 +85,7 @@
+ {
+ GWD_SETTINGS_STORAGE_GSETTINGS_PROPERTY_DESKTOP_GSETTINGS = 1,
+ GWD_SETTINGS_STORAGE_GSETTINGS_PROPERTY_METACITY_GSETTINGS = 2,
+- GWD_SETTINGS_STORAGE_GSETTINGS_PROPERTY_MUTTER_GSETTINGS = 3,
++ GWD_SETTINGS_STORAGE_GSETTINGS_PROPERTY_MARCO_GSETTINGS = 3,
+ GWD_SETTINGS_STORAGE_GSETTINGS_PROPERTY_GWD_GSETTINGS = 4,
+ GWD_SETTINGS_STORAGE_GSETTINGS_PROPERTY_WRITABLE_SETTINGS = 5
+ };
+@@ -87,7 +94,10 @@
+ {
+ GSettings *desktop;
+ GSettings *metacity;
+- GSettings *mutter;
++
++ GSettings *marco;
++ gboolean is_mate_desktop;
++
+ GSettings *gwd;
+ GWDSettingsWritable *writable;
+ } GWDSettingsStorageGSettingsPrivate;
+@@ -107,20 +117,6 @@
+ }
+
+ static gboolean
+-gwd_settings_storage_gsettings_update_draggable_border_width (GWDSettingsStorage *settings)
+-{
+- GWDSettingsStorageGSettings *storage = GWD_SETTINGS_STORAGE_GSETTINGS (settings);
+- GWDSettingsStorageGSettingsPrivate *priv = GET_PRIVATE (storage);
+-
+- if (!priv->mutter)
+- return FALSE;
+-
+- return gwd_settings_writable_draggable_border_width_changed (priv->writable,
+- g_settings_get_int (priv->mutter,
+- ORG_GNOME_MUTTER_DRAGGABLE_BORDER_WIDTH));
+-}
+-
+-static gboolean
+ gwd_settings_storage_gsettings_update_blur (GWDSettingsStorage *settings)
+ {
+ GWDSettingsStorageGSettings *storage = GWD_SETTINGS_STORAGE_GSETTINGS (settings);
+@@ -150,10 +146,12 @@
+
+ use_metacity_theme = g_settings_get_boolean (priv->gwd, ORG_COMPIZ_GWD_KEY_USE_METACITY_THEME);
+
+- if (!priv->metacity)
+- return FALSE;
+-
++ if (priv->is_mate_desktop)
++ theme = g_settings_get_string (priv->marco, ORG_MATE_MARCO_GENERAL_THEME);
++ else if (priv->metacity)
+ theme = g_settings_get_string (priv->metacity, ORG_GNOME_METACITY_THEME);
++ else
++ return FALSE;
+
+ return gwd_settings_writable_metacity_theme_changed (priv->writable,
+ use_metacity_theme,
+@@ -185,13 +183,17 @@
+ {
+ GWDSettingsStorageGSettings *storage = GWD_SETTINGS_STORAGE_GSETTINGS (settings);
+ GWDSettingsStorageGSettingsPrivate *priv = GET_PRIVATE (storage);
++ gchar *button_layout;
+
+- if (!priv->desktop)
++ if (priv->is_mate_desktop)
++ button_layout = g_settings_get_string (priv->marco, ORG_MATE_MARCO_GENERAL_BUTTON_LAYOUT);
++ else if (priv->desktop)
++ button_layout = g_settings_get_string (priv->desktop, ORG_GNOME_DESKTOP_WM_PREFERENCES_BUTTON_LAYOUT);
++ else
+ return FALSE;
+
+ return gwd_settings_writable_button_layout_changed (priv->writable,
+- g_settings_get_string (priv->desktop,
+- ORG_GNOME_DESKTOP_WM_PREFERENCES_BUTTON_LAYOUT));
++ button_layout);
+ }
+
+ static gboolean
+@@ -199,15 +201,21 @@
+ {
+ GWDSettingsStorageGSettings *storage = GWD_SETTINGS_STORAGE_GSETTINGS (settings);
+ GWDSettingsStorageGSettingsPrivate *priv = GET_PRIVATE (storage);
++ gchar *titlebar_font;
++ gboolean titlebar_system_font;
+
+- if (!priv->desktop)
++ if (priv->is_mate_desktop) {
++ titlebar_font = g_settings_get_string (priv->marco, ORG_MATE_MARCO_GENERAL_TITLEBAR_FONT);
++ titlebar_system_font = g_settings_get_boolean (priv->marco, ORG_MATE_MARCO_GENERAL_TITLEBAR_USES_SYSTEM_FONT);
++ } else if (priv->desktop) {
++ titlebar_font = g_settings_get_string (priv->desktop, ORG_GNOME_DESKTOP_WM_PREFERENCES_TITLEBAR_FONT);
++ titlebar_system_font = g_settings_get_boolean (priv->desktop, ORG_GNOME_DESKTOP_WM_PREFERENCES_TITLEBAR_USES_SYSTEM_FONT);
++ } else
+ return FALSE;
+
+ return gwd_settings_writable_font_changed (priv->writable,
+- g_settings_get_boolean (priv->desktop,
+- ORG_GNOME_DESKTOP_WM_PREFERENCES_TITLEBAR_USES_SYSTEM_FONT),
+- g_settings_get_string (priv->desktop,
+- ORG_GNOME_DESKTOP_WM_PREFERENCES_TITLEBAR_FONT));
++ titlebar_system_font,
++ titlebar_font);
+ }
+
+ static inline gchar *
+@@ -233,19 +241,27 @@
+ {
+ GWDSettingsStorageGSettings *storage = GWD_SETTINGS_STORAGE_GSETTINGS (settings);
+ GWDSettingsStorageGSettingsPrivate *priv = GET_PRIVATE (storage);
+-
+- if (!priv->desktop)
+- return FALSE;
++ gchar *double_click_action, *middle_click_action, *right_click_action;
+
+ if (!priv->gwd)
+ return FALSE;
+
+- gchar *double_click_action = translate_dashes_to_underscores (g_settings_get_string (priv->desktop,
++ if (priv->is_mate_desktop) {
++ double_click_action = translate_dashes_to_underscores (g_settings_get_string (priv->marco,
++ ORG_MATE_MARCO_GENERAL_ACTION_DOUBLE_CLICK_TITLEBAR));
++ middle_click_action = translate_dashes_to_underscores (g_settings_get_string (priv->marco,
++ ORG_MATE_MARCO_GENERAL_ACTION_MIDDLE_CLICK_TITLEBAR));
++ right_click_action = translate_dashes_to_underscores (g_settings_get_string (priv->marco,
++ ORG_MATE_MARCO_GENERAL_ACTION_RIGHT_CLICK_TITLEBAR));
++ } else if (priv->desktop) {
++ double_click_action = translate_dashes_to_underscores (g_settings_get_string (priv->desktop,
+ ORG_GNOME_DESKTOP_WM_PREFERENCES_ACTION_DOUBLE_CLICK_TITLEBAR));
+- gchar *middle_click_action = translate_dashes_to_underscores (g_settings_get_string (priv->desktop,
++ middle_click_action = translate_dashes_to_underscores (g_settings_get_string (priv->desktop,
+ ORG_GNOME_DESKTOP_WM_PREFERENCES_ACTION_MIDDLE_CLICK_TITLEBAR));
+- gchar *right_click_action = translate_dashes_to_underscores (g_settings_get_string (priv->desktop,
++ right_click_action = translate_dashes_to_underscores (g_settings_get_string (priv->desktop,
+ ORG_GNOME_DESKTOP_WM_PREFERENCES_ACTION_RIGHT_CLICK_TITLEBAR));
++ } else
++ return FALSE;
+
+ return gwd_settings_writable_titlebar_actions_changed (priv->writable,
+ double_click_action,
+@@ -268,7 +284,6 @@
+ gwd_settings_storage_gsettings_interface_init (GWDSettingsStorageInterface *interface)
+ {
+ interface->update_use_tooltips = gwd_settings_storage_gsettings_update_use_tooltips;
+- interface->update_draggable_border_width = gwd_settings_storage_gsettings_update_draggable_border_width;
+ interface->update_blur = gwd_settings_storage_gsettings_update_blur;
+ interface->update_metacity_theme = gwd_settings_storage_gsettings_update_metacity_theme;
+ interface->update_opacity = gwd_settings_storage_gsettings_update_opacity;
+@@ -299,11 +314,11 @@
+
+ priv->metacity = g_value_dup_object (value);
+ break;
+- case GWD_SETTINGS_STORAGE_GSETTINGS_PROPERTY_MUTTER_GSETTINGS:
+- if (priv->mutter)
+- g_object_unref (priv->mutter);
++ case GWD_SETTINGS_STORAGE_GSETTINGS_PROPERTY_MARCO_GSETTINGS:
++ if (priv->marco)
++ g_object_unref (priv->marco);
+
+- priv->mutter = g_value_dup_object (value);
++ priv->marco = g_value_dup_object (value);
+ break;
+ case GWD_SETTINGS_STORAGE_GSETTINGS_PROPERTY_GWD_GSETTINGS:
+ if (priv->gwd)
+@@ -332,8 +347,8 @@
+ if (priv->metacity)
+ g_object_unref (priv->metacity);
+
+- if (priv->mutter)
+- g_object_unref (priv->mutter);
++ if (priv->marco)
++ g_object_unref (priv->marco);
+
+ if (priv->gwd)
+ g_object_unref (priv->gwd);
+@@ -362,9 +377,9 @@
+ "GSettings Object for org.gnome.metacity",
+ G_TYPE_SETTINGS,
+ G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY),
+- g_param_spec_object ("mutter-gsettings",
+- ORG_GNOME_MUTTER,
+- "GSettings Object for org.gnome.mutter",
++ g_param_spec_object ("marco-gsettings",
++ ORG_MATE_MARCO_GENERAL,
++ "GSettings Object for org.mate.Marco.general",
+ G_TYPE_SETTINGS,
+ G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY),
+ g_param_spec_object ("gwd-gsettings",
+@@ -396,7 +411,7 @@
+ GWDSettingsStorage *
+ gwd_settings_storage_gsettings_new (GSettings *desktop,
+ GSettings *metacity,
+- GSettings *mutter,
++ GSettings *marco,
+ GSettings *gwd,
+ GWDSettingsWritable *writable)
+ {
+@@ -405,23 +420,24 @@
+
+ GValue desktop_value = G_VALUE_INIT;
+ GValue metacity_value = G_VALUE_INIT;
+- GValue mutter_value = G_VALUE_INIT;
++ GValue marco_value = G_VALUE_INIT;
+ GValue gwd_value = G_VALUE_INIT;
+ GValue writable_value = G_VALUE_INIT;
+
+ GWDSettingsStorage *storage = NULL;
++ GWDSettingsStorageGSettingsPrivate *priv;
+
+ g_return_val_if_fail (writable != NULL, NULL);
+
+ g_value_init (&desktop_value, G_TYPE_OBJECT);
+ g_value_init (&metacity_value, G_TYPE_OBJECT);
+- g_value_init (&mutter_value, G_TYPE_OBJECT);
++ g_value_init (&marco_value, G_TYPE_OBJECT);
+ g_value_init (&gwd_value, G_TYPE_OBJECT);
+ g_value_init (&writable_value, G_TYPE_POINTER);
+
+ g_value_take_object (&desktop_value, desktop);
+ g_value_take_object (&metacity_value, metacity);
+- g_value_take_object (&mutter_value, mutter);
++ g_value_take_object (&marco_value, marco);
+ g_value_take_object (&gwd_value, gwd);
+ g_value_set_pointer (&writable_value, writable);
+
+@@ -429,8 +445,8 @@
+ param[0].value = desktop_value;
+ param[1].name = "metacity-gsettings";
+ param[1].value = metacity_value;
+- param[2].name = "mutter-gsettings";
+- param[2].value = mutter_value;
++ param[2].name = "marco-gsettings";
++ param[2].value = marco_value;
+ param[3].name = "gwd-gsettings";
+ param[3].value = gwd_value;
+ param[4].name = "writable-settings";
+@@ -442,10 +458,33 @@
+
+ g_value_unset (&desktop_value);
+ g_value_unset (&metacity_value);
+- g_value_unset (&mutter_value);
++ g_value_unset (&marco_value);
+ g_value_unset (&gwd_value);
+ g_value_unset (&writable_value);
+
++ priv = GET_PRIVATE (storage);
++ priv->is_mate_desktop = FALSE;
++
++ if (marco) {
++ const gchar *xdg_current_desktop;
++
++ xdg_current_desktop = g_getenv ("XDG_CURRENT_DESKTOP");
++ if (xdg_current_desktop) {
++ gchar **desktops;
++ gint i;
++
++ desktops = g_strsplit (xdg_current_desktop, ":", -1);
++ for (i = 0; desktops[i] != NULL; i++) {
++ if (g_strcmp0 (desktops[i], "MATE") == 0) {
++ priv->is_mate_desktop = TRUE;
++ break;
++ }
++ }
++
++ g_strfreev (desktops);
++ }
++ }
++
+ return storage;
+ }
+
+@@ -531,33 +570,6 @@
+ }
+
+ static void
+-org_gnome_mutter_settings_changed (GSettings *settings,
+- const gchar *key,
+- gpointer user_data)
+-{
+- GWDSettingsStorage *storage = GWD_SETTINGS_STORAGE_INTERFACE (user_data);
+-
+- if (strcmp (key, ORG_GNOME_MUTTER_DRAGGABLE_BORDER_WIDTH) == 0)
+- gwd_settings_storage_update_draggable_border_width (storage);
+-}
+-
+-void
+-gwd_connect_org_gnome_mutter_settings (GSettings *settings,
+- GWDSettingsStorage *storage)
+-{
+- if (!settings)
+- return;
+-
+- g_signal_connect (settings, "changed", (GCallback) org_gnome_mutter_settings_changed, storage);
+-}
+-
+-GSettings *
+-gwd_get_org_gnome_mutter_settings ()
+-{
+- return get_settings_no_abort (ORG_GNOME_MUTTER);
+-}
+-
+-static void
+ org_gnome_desktop_wm_keybindings_settings_changed (GSettings *settings,
+ const gchar *key,
+ gpointer user_data)
+@@ -595,3 +607,43 @@
+ {
+ return get_settings_no_abort (ORG_GNOME_DESKTOP_WM_PREFERENCES);
+ }
++
++static void
++org_mate_marco_general_settings_changed (GSettings *settings,
++ const gchar *key,
++ gpointer user_data)
++{
++ GWDSettingsStorage *storage;
++
++ storage = GWD_SETTINGS_STORAGE_INTERFACE (user_data);
++
++ if (strcmp (key, ORG_MATE_MARCO_GENERAL_TITLEBAR_USES_SYSTEM_FONT) == 0 ||
++ strcmp (key, ORG_MATE_MARCO_GENERAL_TITLEBAR_FONT) == 0)
++ gwd_settings_storage_update_font (storage);
++ else if (strcmp (key, ORG_MATE_MARCO_GENERAL_TITLEBAR_FONT) == 0)
++ gwd_settings_storage_update_font (storage);
++ else if (strcmp (key, ORG_MATE_MARCO_GENERAL_ACTION_DOUBLE_CLICK_TITLEBAR) == 0 ||
++ strcmp (key, ORG_MATE_MARCO_GENERAL_ACTION_MIDDLE_CLICK_TITLEBAR) == 0 ||
++ strcmp (key, ORG_MATE_MARCO_GENERAL_ACTION_RIGHT_CLICK_TITLEBAR) == 0)
++ gwd_settings_storage_update_titlebar_actions (storage);
++ else if (strcmp (key, ORG_MATE_MARCO_GENERAL_THEME) == 0)
++ gwd_settings_storage_update_metacity_theme (storage);
++ else if (strcmp (key, ORG_MATE_MARCO_GENERAL_BUTTON_LAYOUT) == 0)
++ gwd_settings_storage_update_button_layout (storage);
++}
++
++void
++gwd_connect_org_mate_marco_general_settings (GSettings *settings,
++ GWDSettingsStorage *storage)
++{
++ if (!settings)
++ return;
++
++ g_signal_connect (settings, "changed", (GCallback) org_mate_marco_general_settings_changed, storage);
++}
++
++GSettings *
++gwd_get_org_mate_marco_general_settings ()
++{
++ return get_settings_no_abort (ORG_MATE_MARCO_GENERAL);
++}
+diff -Naur a/gtk/window-decorator/gwd-settings-storage-gsettings.h b/gtk/window-decorator/gwd-settings-storage-gsettings.h
+--- a/gtk/window-decorator/gwd-settings-storage-gsettings.h 2015-08-20 23:01:09.000000000 +1000
++++ b/gtk/window-decorator/gwd-settings-storage-gsettings.h 2016-04-09 19:33:06.810364208 +1000
+@@ -31,7 +31,7 @@
+ GWDSettingsStorage *
+ gwd_settings_storage_gsettings_new (GSettings *orgGNOMEDesktopSettings,
+ GSettings *metacitySettings,
+- GSettings *mutterSettings,
++ GSettings *marcoSettings,
+ GSettings *gwdSettings,
+ GWDSettingsWritable *writableSettings);
+
+@@ -50,23 +50,23 @@
+ gwd_get_org_gnome_metacity_settings ();
+
+ void
+-gwd_connect_org_gnome_mutter_settings (GSettings *settings,
+- GWDSettingsStorage *storage);
++gwd_connect_org_gnome_desktop_wm_preferences_settings (GSettings *settings,
++ GWDSettingsStorage *storage);
+
+ GSettings *
+-gwd_get_org_gnome_mutter_settings ();
++gwd_get_org_gnome_desktop_wm_preferences_settings ();
+
+ void
+-gwd_connect_org_gnome_desktop_wm_preferences_settings (GSettings *settings,
+- GWDSettingsStorage *storage);
++gwd_connect_org_mate_marco_general_settings (GSettings *settings,
++ GWDSettingsStorage *storage);
+
+ GSettings *
+-gwd_get_org_gnome_desktop_wm_preferences_settings ();
++gwd_get_org_mate_marco_general_settings ();
+
+ extern const gchar * ORG_COMPIZ_GWD;
+ extern const gchar * ORG_GNOME_METACITY;
+-extern const gchar * ORG_GNOME_MUTTER;
+ extern const gchar * ORG_GNOME_DESKTOP_WM_PREFERENCES;
++extern const gchar * ORG_MATE_MARCO_GENERAL;
+
+ extern const gchar * ORG_COMPIZ_GWD_KEY_USE_TOOLTIPS;
+ extern const gchar * ORG_COMPIZ_GWD_KEY_BLUR_TYPE;
+@@ -77,7 +77,6 @@
+ extern const gchar * ORG_COMPIZ_GWD_KEY_USE_METACITY_THEME;
+ extern const gchar * ORG_COMPIZ_GWD_KEY_MOUSE_WHEEL_ACTION;
+ extern const gchar * ORG_GNOME_METACITY_THEME;
+-extern const gchar * ORG_GNOME_MUTTER_DRAGGABLE_BORDER_WIDTH;
+ extern const gchar * ORG_GNOME_DESKTOP_WM_PREFERENCES_ACTION_DOUBLE_CLICK_TITLEBAR;
+ extern const gchar * ORG_GNOME_DESKTOP_WM_PREFERENCES_ACTION_MIDDLE_CLICK_TITLEBAR;
+ extern const gchar * ORG_GNOME_DESKTOP_WM_PREFERENCES_ACTION_RIGHT_CLICK_TITLEBAR;
+@@ -85,6 +84,13 @@
+ extern const gchar * ORG_GNOME_DESKTOP_WM_PREFERENCES_TITLEBAR_USES_SYSTEM_FONT;
+ extern const gchar * ORG_GNOME_DESKTOP_WM_PREFERENCES_TITLEBAR_FONT;
+ extern const gchar * ORG_GNOME_DESKTOP_WM_PREFERENCES_BUTTON_LAYOUT;
++extern const gchar * ORG_MATE_MARCO_GENERAL_ACTION_DOUBLE_CLICK_TITLEBAR;
++extern const gchar * ORG_MATE_MARCO_GENERAL_ACTION_MIDDLE_CLICK_TITLEBAR;
++extern const gchar * ORG_MATE_MARCO_GENERAL_ACTION_RIGHT_CLICK_TITLEBAR;
++extern const gchar * ORG_MATE_MARCO_GENERAL_THEME;
++extern const gchar * ORG_MATE_MARCO_GENERAL_TITLEBAR_USES_SYSTEM_FONT;
++extern const gchar * ORG_MATE_MARCO_GENERAL_TITLEBAR_FONT;
++extern const gchar * ORG_MATE_MARCO_GENERAL_BUTTON_LAYOUT;
+
+ G_END_DECLS
+
+diff -Naur a/gtk/window-decorator/gwd-settings-storage-interface.c b/gtk/window-decorator/gwd-settings-storage-interface.c
+--- a/gtk/window-decorator/gwd-settings-storage-interface.c 2015-08-20 23:01:09.000000000 +1000
++++ b/gtk/window-decorator/gwd-settings-storage-interface.c 2016-04-09 19:33:04.183693086 +1000
+@@ -33,12 +33,6 @@
+ return (*interface->update_use_tooltips) (settings);
+ }
+
+-gboolean gwd_settings_storage_update_draggable_border_width (GWDSettingsStorage *settings)
+-{
+- GWDSettingsStorageInterface *interface = GWD_SETTINGS_STORAGE_GET_INTERFACE (settings);
+- return (*interface->update_draggable_border_width) (settings);
+-}
+-
+ gboolean gwd_settings_storage_update_blur (GWDSettingsStorage *settings)
+ {
+ GWDSettingsStorageInterface *interface = GWD_SETTINGS_STORAGE_GET_INTERFACE (settings);
+diff -Naur a/gtk/window-decorator/gwd-settings-storage-interface.h b/gtk/window-decorator/gwd-settings-storage-interface.h
+--- a/gtk/window-decorator/gwd-settings-storage-interface.h 2015-08-20 23:01:09.000000000 +1000
++++ b/gtk/window-decorator/gwd-settings-storage-interface.h 2016-04-09 19:33:04.183693086 +1000
+@@ -40,7 +40,6 @@
+ GTypeInterface parent;
+
+ gboolean (*update_use_tooltips) (GWDSettingsStorage *settings);
+- gboolean (*update_draggable_border_width) (GWDSettingsStorage *settings);
+ gboolean (*update_blur) (GWDSettingsStorage *settings);
+ gboolean (*update_metacity_theme) (GWDSettingsStorage *settings);
+ gboolean (*update_opacity) (GWDSettingsStorage *settings);
+@@ -50,7 +49,6 @@
+ };
+
+ gboolean gwd_settings_storage_update_use_tooltips (GWDSettingsStorage *settings);
+-gboolean gwd_settings_storage_update_draggable_border_width (GWDSettingsStorage *settings);
+ gboolean gwd_settings_storage_update_blur (GWDSettingsStorage *settings);
+ gboolean gwd_settings_storage_update_metacity_theme (GWDSettingsStorage *settings);
+ gboolean gwd_settings_storage_update_opacity (GWDSettingsStorage *settings);
+diff -Naur a/gtk/window-decorator/gwd-settings-writable-interface.c b/gtk/window-decorator/gwd-settings-writable-interface.c
+--- a/gtk/window-decorator/gwd-settings-writable-interface.c 2015-08-20 23:01:09.000000000 +1000
++++ b/gtk/window-decorator/gwd-settings-writable-interface.c 2016-04-09 19:33:04.183693086 +1000
+@@ -77,14 +77,6 @@
+ }
+
+ gboolean
+-gwd_settings_writable_draggable_border_width_changed (GWDSettingsWritable *settings,
+- gint draggable_border_width)
+-{
+- GWDSettingsWritableInterface *iface = GWD_SETTINGS_WRITABLE_GET_INTERFACE (settings);
+- return (*iface->draggable_border_width_changed) (settings, draggable_border_width);
+-}
+-
+-gboolean
+ gwd_settings_writable_blur_changed (GWDSettingsWritable *settings,
+ const gchar *blur_type)
+ {
+diff -Naur a/gtk/window-decorator/gwd-settings-writable-interface.h b/gtk/window-decorator/gwd-settings-writable-interface.h
+--- a/gtk/window-decorator/gwd-settings-writable-interface.h 2015-08-20 23:01:09.000000000 +1000
++++ b/gtk/window-decorator/gwd-settings-writable-interface.h 2016-04-09 19:33:04.183693086 +1000
+@@ -54,8 +54,6 @@
+ const gchar *inactive_shadow_color);
+ gboolean (*use_tooltips_changed) (GWDSettingsWritable *settings,
+ gboolean new_value);
+- gboolean (*draggable_border_width_changed) (GWDSettingsWritable *settings,
+- gint new_value);
+ gboolean (*blur_changed) (GWDSettingsWritable *settings,
+ const gchar *type);
+ gboolean (*metacity_theme_changed) (GWDSettingsWritable *settings,
+@@ -102,10 +100,6 @@
+ gboolean use_tooltips);
+
+ gboolean
+-gwd_settings_writable_draggable_border_width_changed (GWDSettingsWritable *settings,
+- gint draggable_border_width);
+-
+-gboolean
+ gwd_settings_writable_blur_changed (GWDSettingsWritable *settings,
+ const gchar *blur_type);
+
+diff -Naur a/gtk/window-decorator/gwd-settings.c b/gtk/window-decorator/gwd-settings.c
+--- a/gtk/window-decorator/gwd-settings.c 2015-08-20 23:01:09.000000000 +1000
++++ b/gtk/window-decorator/gwd-settings.c 2016-04-09 19:33:04.183693086 +1000
+@@ -60,21 +60,20 @@
+ GWD_SETTINGS_IMPL_PROPERTY_ACTIVE_SHADOW = 1,
+ GWD_SETTINGS_IMPL_PROPERTY_INACTIVE_SHADOW = 2,
+ GWD_SETTINGS_IMPL_PROPERTY_USE_TOOLTIPS = 3,
+- GWD_SETTINGS_IMPL_PROPERTY_DRAGGABLE_BORDER_WIDTH = 4,
+- GWD_SETTINGS_IMPL_PROPERTY_BLUR_CHANGED = 5,
+- GWD_SETTINGS_IMPL_PROPERTY_METACITY_THEME = 6,
+- GWD_SETTINGS_IMPL_PROPERTY_ACTIVE_OPACITY = 7,
+- GWD_SETTINGS_IMPL_PROPERTY_INACTIVE_OPACITY = 8,
+- GWD_SETTINGS_IMPL_PROPERTY_ACTIVE_SHADE_OPACITY = 9,
+- GWD_SETTINGS_IMPL_PROPERTY_INACTIVE_SHADE_OPACITY = 10,
+- GWD_SETTINGS_IMPL_PROPERTY_BUTTON_LAYOUT = 11,
+- GWD_SETTINGS_IMPL_PROPERTY_TITLEBAR_ACTION_DOUBLE_CLICK = 12,
+- GWD_SETTINGS_IMPL_PROPERTY_TITLEBAR_ACTION_MIDDLE_CLICK = 13,
+- GWD_SETTINGS_IMPL_PROPERTY_TITLEBAR_ACTION_RIGHT_CLICK = 14,
+- GWD_SETTINGS_IMPL_PROPERTY_MOUSE_WHEEL_ACTION = 15,
+- GWD_SETTINGS_IMPL_PROPERTY_TITLEBAR_FONT = 16,
+- GWD_SETTINGS_IMPL_PROPERTY_CMDLINE_OPTIONS = 17,
+- GWD_SETTINGS_IMPL_PROPERTY_SETTINGS_NOTIFIED = 18
++ GWD_SETTINGS_IMPL_PROPERTY_BLUR_CHANGED = 4,
++ GWD_SETTINGS_IMPL_PROPERTY_METACITY_THEME = 5,
++ GWD_SETTINGS_IMPL_PROPERTY_ACTIVE_OPACITY = 6,
++ GWD_SETTINGS_IMPL_PROPERTY_INACTIVE_OPACITY = 7,
++ GWD_SETTINGS_IMPL_PROPERTY_ACTIVE_SHADE_OPACITY = 8,
++ GWD_SETTINGS_IMPL_PROPERTY_INACTIVE_SHADE_OPACITY = 9,
++ GWD_SETTINGS_IMPL_PROPERTY_BUTTON_LAYOUT = 10,
++ GWD_SETTINGS_IMPL_PROPERTY_TITLEBAR_ACTION_DOUBLE_CLICK = 11,
++ GWD_SETTINGS_IMPL_PROPERTY_TITLEBAR_ACTION_MIDDLE_CLICK = 12,
++ GWD_SETTINGS_IMPL_PROPERTY_TITLEBAR_ACTION_RIGHT_CLICK = 13,
++ GWD_SETTINGS_IMPL_PROPERTY_MOUSE_WHEEL_ACTION = 14,
++ GWD_SETTINGS_IMPL_PROPERTY_TITLEBAR_FONT = 15,
++ GWD_SETTINGS_IMPL_PROPERTY_CMDLINE_OPTIONS = 16,
++ GWD_SETTINGS_IMPL_PROPERTY_SETTINGS_NOTIFIED = 17
+ };
+
+ enum
+@@ -90,7 +89,6 @@
+ decor_shadow_options_t active_shadow;
+ decor_shadow_options_t inactive_shadow;
+ gboolean use_tooltips;
+- gint draggable_border_width;
+ gint blur_type;
+ gchar *metacity_theme;
+ gdouble metacity_active_opacity;
+@@ -241,24 +239,6 @@
+ }
+
+ static gboolean
+-gwd_settings_draggable_border_width_changed (GWDSettingsWritable *settings,
+- gint draggable_border_width)
+-{
+- GWDSettingsImpl *settings_impl = GWD_SETTINGS_IMPL (settings);
+- GWDSettingsImplPrivate *priv = GET_PRIVATE (settings_impl);
+-
+- if (priv->draggable_border_width != draggable_border_width)
+- {
+- priv->draggable_border_width = draggable_border_width;
+- append_to_notify_funcs (settings_impl, gwd_settings_notified_update_decorations);
+- release_notify_funcs (settings_impl);
+- return TRUE;
+- }
+- else
+- return FALSE;
+-}
+-
+-static gboolean
+ gwd_settings_blur_changed (GWDSettingsWritable *settings,
+ const gchar *type)
+
+@@ -533,7 +513,6 @@
+ {
+ interface->shadow_property_changed = gwd_settings_shadow_property_changed;
+ interface->use_tooltips_changed = gwd_settings_use_tooltips_changed;
+- interface->draggable_border_width_changed = gwd_settings_draggable_border_width_changed;
+ interface->blur_changed = gwd_settings_blur_changed;
+ interface->metacity_theme_changed = gwd_settings_metacity_theme_changed;
+ interface->opacity_changed = gwd_settings_opacity_changed;
+@@ -635,9 +614,6 @@
+ case GWD_SETTINGS_IMPL_PROPERTY_USE_TOOLTIPS:
+ g_value_set_boolean (value, priv->use_tooltips);
+ break;
+- case GWD_SETTINGS_IMPL_PROPERTY_DRAGGABLE_BORDER_WIDTH:
+- g_value_set_int (value, priv->draggable_border_width);
+- break;
+ case GWD_SETTINGS_IMPL_PROPERTY_BLUR_CHANGED:
+ g_value_set_int (value, priv->blur_type);
+ break;
+@@ -702,9 +678,6 @@
+ GWD_SETTINGS_IMPL_PROPERTY_USE_TOOLTIPS,
+ "use-tooltips");
+ g_object_class_override_property (object_class,
+- GWD_SETTINGS_IMPL_PROPERTY_DRAGGABLE_BORDER_WIDTH,
+- "draggable-border-width");
+- g_object_class_override_property (object_class,
+ GWD_SETTINGS_IMPL_PROPERTY_BLUR_CHANGED,
+ "blur");
+ g_object_class_override_property (object_class,
+@@ -779,7 +752,6 @@
+ priv->inactive_shadow.shadow_color[0] = 0;
+ priv->inactive_shadow.shadow_color[1] = 0;
+ priv->inactive_shadow.shadow_color[2] = 0;
+- priv->draggable_border_width = DRAGGABLE_BORDER_WIDTH_DEFAULT;
+ priv->blur_type = BLUR_TYPE_DEFAULT;
+ priv->metacity_theme = g_strdup (METACITY_THEME_DEFAULT);
+ priv->metacity_active_opacity = METACITY_ACTIVE_OPACITY_DEFAULT;
+diff -Naur a/gtk/window-decorator/settings.c b/gtk/window-decorator/settings.c
+--- a/gtk/window-decorator/settings.c 2015-08-20 23:01:09.000000000 +1000
++++ b/gtk/window-decorator/settings.c 2016-04-09 19:33:06.813697548 +1000
+@@ -46,15 +46,15 @@
+ #define STORAGE_USED
+ GSettings *compiz = gwd_get_org_compiz_gwd_settings ();
+ GSettings *metacity = gwd_get_org_gnome_metacity_settings ();
+- GSettings *mutter = gwd_get_org_gnome_mutter_settings ();
+ GSettings *gnome = gwd_get_org_gnome_desktop_wm_preferences_settings ();
++ GSettings *marco = gwd_get_org_mate_marco_general_settings ();
+
+- storage = gwd_settings_storage_gsettings_new (gnome, metacity, mutter, compiz, writable);
++ storage = gwd_settings_storage_gsettings_new (gnome, metacity, marco, compiz, writable);
+
+ gwd_connect_org_compiz_gwd_settings (compiz, storage);
+ gwd_connect_org_gnome_metacity_settings (metacity, storage);
+- gwd_connect_org_gnome_mutter_settings (mutter, storage);
+ gwd_connect_org_gnome_desktop_wm_preferences_settings (gnome, storage);
++ gwd_connect_org_mate_marco_general_settings (marco, storage);
+ #endif
+
+ GdkDisplay *display = gdk_display_get_default ();
+@@ -72,7 +72,6 @@
+ gwd_settings_storage_update_font (storage);
+ gwd_settings_storage_update_titlebar_actions (storage);
+ gwd_settings_storage_update_blur (storage);
+- gwd_settings_storage_update_draggable_border_width (storage);
+ gwd_settings_storage_update_use_tooltips (storage);
+ gwd_process_decor_shadow_property_update ();
+ #else
+diff -Naur a/gtk/window-decorator/settings.c.orig b/gtk/window-decorator/settings.c.orig
+--- a/gtk/window-decorator/settings.c.orig 1970-01-01 10:00:00.000000000 +1000
++++ b/gtk/window-decorator/settings.c.orig 2016-04-09 19:33:04.187026425 +1000
+@@ -0,0 +1,98 @@
++/*
++ * Copyright © 2006 Novell, Inc.
++ *
++ * This library is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU Lesser General Public
++ * License as published by the Free Software Foundation; either
++ * version 2 of the License, or (at your option) any later version.
++ *
++ * This library 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
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public
++ * License along with this library; if not, write to the
++ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
++ * Boston, MA 02111-1307, USA.
++ *
++ * Author: David Reveman <davidr@novell.com>
++ */
++
++#include "gtk-window-decorator.h"
++#include "gwd-settings-writable-interface.h"
++#include "gwd-settings-storage-interface.h"
++
++#ifdef USE_GSETTINGS
++#include "gwd-settings-storage-gsettings.h"
++#endif
++
++#include "gwd-settings-xproperty-interface.h"
++#include "gwd-settings-xproperty-storage.h"
++
++GWDSettingsStorage *storage = NULL;
++GWDSettingsXPropertyStorage *xprop_storage = NULL;
++
++#ifdef USE_GSETTINGS
++
++
++#endif
++
++gboolean
++init_settings (GWDSettingsWritable *writable,
++ WnckScreen *screen)
++{
++#ifdef USE_GSETTINGS
++#define STORAGE_USED
++ GSettings *compiz = gwd_get_org_compiz_gwd_settings ();
++ GSettings *metacity = gwd_get_org_gnome_metacity_settings ();
++ GSettings *gnome = gwd_get_org_gnome_desktop_wm_preferences_settings ();
++
++ storage = gwd_settings_storage_gsettings_new (gnome, metacity, compiz, writable);
++
++ gwd_connect_org_compiz_gwd_settings (compiz, storage);
++ gwd_connect_org_gnome_metacity_settings (metacity, storage);
++ gwd_connect_org_gnome_desktop_wm_preferences_settings (gnome, storage);
++#endif
++
++ GdkDisplay *display = gdk_display_get_default ();
++ Display *xdisplay = gdk_x11_display_get_xdisplay (display);
++ Window root = gdk_x11_get_default_root_xwindow ();
++
++ xprop_storage = gwd_settings_storage_xprop_new (xdisplay,
++ root,
++ writable);
++
++#ifdef STORAGE_USED
++ gwd_settings_storage_update_metacity_theme (storage);
++ gwd_settings_storage_update_opacity (storage);
++ gwd_settings_storage_update_button_layout (storage);
++ gwd_settings_storage_update_font (storage);
++ gwd_settings_storage_update_titlebar_actions (storage);
++ gwd_settings_storage_update_blur (storage);
++ gwd_settings_storage_update_use_tooltips (storage);
++ gwd_process_decor_shadow_property_update ();
++#else
++ storage = NULL;
++#endif
++
++#undef STORAGE_USED
++
++ return TRUE;
++}
++
++void
++fini_settings ()
++{
++ if (storage)
++ g_object_unref (storage);
++
++ if (xprop_storage)
++ g_object_unref (xprop_storage);
++}
++
++gboolean
++gwd_process_decor_shadow_property_update ()
++{
++ return gwd_settings_xproperty_storage_update_all (xprop_storage);
++}
+diff -Naur a/gtk/window-decorator/tests/CMakeLists.txt b/gtk/window-decorator/tests/CMakeLists.txt
+--- a/gtk/window-decorator/tests/CMakeLists.txt 2015-08-20 23:01:09.000000000 +1000
++++ b/gtk/window-decorator/tests/CMakeLists.txt 2016-04-09 19:33:06.813697548 +1000
+@@ -90,20 +90,20 @@
+
+ add_gsettings_schema_to_recompilation_list (compiz_gwd_gsettings_org_gnome_metacity_schema)
+
+- set (_mutter_gschema_name org.gnome.mutter)
+- set (_mutter_gschema_filename ${_mutter_gschema_name}.gschema.xml)
+- set (_mutter_gschema_filepath ${CMAKE_CURRENT_SOURCE_DIR}/${_mutter_gschema_filename})
+- set (_mutter_gschema_generated_location ${CMAKE_BINARY_DIR}/generated/glib-2.0/schemas/${_mutter_gschema_filename})
+-
+- add_custom_command (OUTPUT ${_mutter_gschema_generated_location}
+- COMMAND cp -r ${_mutter_gschema_filepath} ${_mutter_gschema_generated_location}
+- DEPENDS ${_mutter_gschema_filepath}
++ set (_marco_gschema_name org.mate.marco)
++ set (_marco_gschema_filename ${_marco_gschema_name}.gschema.xml)
++ set (_marco_gschema_filepath ${CMAKE_CURRENT_SOURCE_DIR}/${_marco_gschema_filename})
++ set (_marco_gschema_generated_location ${CMAKE_BINARY_DIR}/generated/glib-2.0/schemas/${_marco_gschema_filename})
++
++ add_custom_command (OUTPUT ${_marco_gschema_generated_location}
++ COMMAND cp -r ${_marco_gschema_filepath} ${_marco_gschema_generated_location}
++ DEPENDS ${_marco_gschema_filepath}
+ VERBATIM)
+
+- add_custom_target (compiz_gwd_gsettings_org_gnome_mutter_schema ALL
+- DEPENDS ${_mutter_gschema_generated_location})
++ add_custom_target (compiz_gwd_gsettings_org_mate_marco_schema ALL
++ DEPENDS ${_marco_gschema_generated_location})
+
+- add_gsettings_schema_to_recompilation_list (compiz_gwd_gsettings_org_gnome_mutter_schema)
++ add_gsettings_schema_to_recompilation_list (compiz_gwd_gsettings_org_nate_marco_schema)
+
+ set (COMPIZ_TEST_GWD_SETTINGS_ADDITIONAL_LIBRARIES
+ ${COMPIZ_TEST_GWD_SETTINGS_ADDITIONAL_LIBRARIES}
+diff -Naur a/gtk/window-decorator/tests/compiz_gwd_mock_settings.cpp b/gtk/window-decorator/tests/compiz_gwd_mock_settings.cpp
+--- a/gtk/window-decorator/tests/compiz_gwd_mock_settings.cpp 2015-08-20 23:01:09.000000000 +1000
++++ b/gtk/window-decorator/tests/compiz_gwd_mock_settings.cpp 2016-04-09 19:33:04.187026425 +1000
+@@ -128,12 +128,6 @@
+ GWD_MOCK_SETTINGS_PROPERTY_USE_TOOLTIPS,
+ "use-tooltips");
+ g_object_class_override_property (object_class,
+- GWD_MOCK_SETTINGS_PROPERTY_DRAGGABLE_BORDER_WIDTH,
+- "draggable-border-width");
+- g_object_class_override_property (object_class,
+- GWD_MOCK_SETTINGS_PROPERTY_ATTACH_MODAL_DIALOGS,
+- "attach-modal-dialogs");
+- g_object_class_override_property (object_class,
+ GWD_MOCK_SETTINGS_PROPERTY_BLUR_CHANGED,
+ "blur");
+ g_object_class_override_property (object_class,
+diff -Naur a/gtk/window-decorator/tests/compiz_gwd_mock_settings_storage.cpp b/gtk/window-decorator/tests/compiz_gwd_mock_settings_storage.cpp
+--- a/gtk/window-decorator/tests/compiz_gwd_mock_settings_storage.cpp 2015-08-20 23:01:09.000000000 +1000
++++ b/gtk/window-decorator/tests/compiz_gwd_mock_settings_storage.cpp 2016-04-09 19:33:04.187026425 +1000
+@@ -66,13 +66,6 @@
+ return settingsGMock->updateUseTooltips ();
+ }
+
+-gboolean gwd_mock_settings_storage_update_draggable_border_width (GWDSettingsStorage *settings)
+-{
+- GWDMockSettingsStorage *settingsStorageMock = GWD_MOCK_SETTINGS_STORAGE (settings);
+- GWDMockSettingsStorageGMockInterface *settingsGMock = GET_PRIVATE (settingsStorageMock)->mock;
+- return settingsGMock->updateDraggableBorderWidth ();
+-}
+-
+ gboolean gwd_mock_settings_storage_update_blur (GWDSettingsStorage *settings)
+ {
+ GWDMockSettingsStorage *settingsStorageMock = GWD_MOCK_SETTINGS_STORAGE (settings);
+@@ -118,7 +111,6 @@
+ static void gwd_mock_settings_storage_interface_init (GWDSettingsStorageInterface *interface)
+ {
+ interface->update_use_tooltips = gwd_mock_settings_storage_update_use_tooltips;
+- interface->update_draggable_border_width = gwd_mock_settings_storage_update_draggable_border_width;
+ interface->update_blur = gwd_mock_settings_storage_update_blur;
+ interface->update_metacity_theme = gwd_mock_settings_storage_update_metacity_theme;
+ interface->update_opacity = gwd_mock_settings_storage_update_opacity;
+diff -Naur a/gtk/window-decorator/tests/compiz_gwd_mock_settings_writable.cpp b/gtk/window-decorator/tests/compiz_gwd_mock_settings_writable.cpp
+--- a/gtk/window-decorator/tests/compiz_gwd_mock_settings_writable.cpp 2015-08-20 23:01:09.000000000 +1000
++++ b/gtk/window-decorator/tests/compiz_gwd_mock_settings_writable.cpp 2016-04-09 19:33:04.187026425 +1000
+@@ -108,14 +108,6 @@
+ }
+
+ gboolean
+-gwd_mock_settings_writable_draggable_border_width_changed (GWDSettingsWritable *settings,
+- gint draggable_border_width)
+-{
+- GWDMockSettingsWritableGMockInterface *gmockSettingsWritable = GET_PRIVATE (settings)->mock;
+- return gmockSettingsWritable->draggableBorderWidthChanged (draggable_border_width);
+-}
+-
+-gboolean
+ gwd_mock_settings_writable_blur_changed (GWDSettingsWritable *settings,
+ const gchar *blur_type)
+ {
+@@ -178,7 +170,6 @@
+ {
+ interface->shadow_property_changed = gwd_mock_settings_writable_shadow_property_changed;
+ interface->use_tooltips_changed = gwd_mock_settings_writable_use_tooltips_changed;
+- interface->draggable_border_width_changed = gwd_mock_settings_writable_draggable_border_width_changed;
+ interface->blur_changed = gwd_mock_settings_writable_blur_changed;
+ interface->metacity_theme_changed = gwd_mock_settings_writable_metacity_theme_changed;
+ interface->opacity_changed = gwd_mock_settings_writable_opacity_changed;
+diff -Naur a/gtk/window-decorator/tests/compiz_gwd_mock_settings_writable.h b/gtk/window-decorator/tests/compiz_gwd_mock_settings_writable.h
+--- a/gtk/window-decorator/tests/compiz_gwd_mock_settings_writable.h 2015-08-20 23:01:09.000000000 +1000
++++ b/gtk/window-decorator/tests/compiz_gwd_mock_settings_writable.h 2016-04-09 19:33:04.187026425 +1000
+@@ -58,7 +58,6 @@
+ gdouble inactive_shadow_offset_y,
+ const gchar *inactive_shadow_color) = 0;
+ virtual gboolean useTooltipsChanged (gboolean newValue) = 0;
+- virtual gboolean draggableBorderWidthChanged (gint newValue) = 0;
+ virtual gboolean blurChanged (const gchar *type) = 0;
+ virtual gboolean metacityThemeChanged (gboolean useMetacityTheme, const gchar *metacityTheme) = 0;
+ virtual gboolean opacityChanged (gdouble inactiveOpacity,
+@@ -88,7 +87,6 @@
+ MOCK_METHOD10 (shadowPropertyChanged, gboolean (gdouble, gdouble, gdouble, gdouble, const gchar *,
+ gdouble, gdouble, gdouble, gdouble, const gchar *));
+ MOCK_METHOD1 (useTooltipsChanged, gboolean (gboolean));
+- MOCK_METHOD1 (draggableBorderWidthChanged, gboolean (gint));
+ MOCK_METHOD1 (blurChanged, gboolean (const gchar *));
+ MOCK_METHOD2 (metacityThemeChanged, gboolean (gboolean, const gchar *));
+ MOCK_METHOD4 (opacityChanged, gboolean (gdouble, gdouble, gboolean, gboolean));
+diff -Naur a/gtk/window-decorator/tests/org.gnome.mutter.gschema.xml b/gtk/window-decorator/tests/org.gnome.mutter.gschema.xml
+--- a/gtk/window-decorator/tests/org.gnome.mutter.gschema.xml 2015-08-20 23:01:09.000000000 +1000
++++ b/gtk/window-decorator/tests/org.gnome.mutter.gschema.xml 1970-01-01 10:00:00.000000000 +1000
+@@ -1,11 +0,0 @@
+-<?xml version="1.0" encoding="UTF-8"?>
+-<schemalist>
+- <schema path="/org/gnome/mutter/" id="org.gnome.mutter" gettext-domain="@GETTEXT_DOMAIN">
+- <key type="i" name="draggable-border-width">
+- <default>10</default>
+- <range min="0" max="64"/>
+- <summary>Draggable border width</summary>
+- <description>The amount of total draggable borders. If the theme's visible borders are not enough, invisible borders will be added to meet this value.</description>
+- </key>
+- </schema>
+-</schemalist>
+diff -Naur a/gtk/window-decorator/tests/org.mate.marco.gschema.xml b/gtk/window-decorator/tests/org.mate.marco.gschema.xml
+--- a/gtk/window-decorator/tests/org.mate.marco.gschema.xml 1970-01-01 10:00:00.000000000 +1000
++++ b/gtk/window-decorator/tests/org.mate.marco.gschema.xml 2016-04-09 19:33:06.813697548 +1000
+@@ -0,0 +1,53 @@
++<schemalist>
++ <enum id="org.mate.Marco.ActionTitlebar">
++ <value nick="toggle_shade" value="0"/>
++ <value nick="toggle_maximize" value="1"/>
++ <value nick="toggle_maximize_horizontally" value="2"/>
++ <value nick="toggle_maximize_vertically" value="3"/>
++ <value nick="minimize" value="4"/>
++ <value nick="none" value="5"/>
++ <value nick="lower" value="6"/>
++ <value nick="menu" value="7"/>
++ <value nick="last" value="8"/>
++ </enum>
++ <schema id="org.mate.Marco" path="/org/mate/marco/">
++ <child name="general" schema="org.mate.Marco.general"/>
++ </schema>
++ <schema id="org.mate.Marco.general" path="/org/mate/marco/general/">
++ <key name="button-layout" type="s">
++ <default>'menu:minimize,maximize,close'</default>
++ <summary>Arrangement of buttons on the titlebar</summary>
++ <description>Arrangement of buttons on the titlebar. The value should be a string, such as "menu:minimize,maximize,spacer,close"; the colon separates the left corner of the window from the right corner, and the button names are comma-separated. Duplicate buttons are not allowed. Unknown button names are silently ignored so that buttons can be added in future marco versions without breaking older versions. A special spacer tag can be used to insert some space between two adjacent buttons.</description>
++ </key>
++ <key name="action-double-click-titlebar" enum="org.mate.Marco.ActionTitlebar">
++ <default>'toggle_maximize'</default>
++ <summary>Action on title bar double-click</summary>
++ <description>This option determines the effects of double-clicking on the title bar. Current valid options are 'toggle_shade', which will shade/unshade the window, 'toggle_maximize' which will maximize/unmaximize the window, 'toggle_maximize_horizontally' and 'toggle_maximize_vertically' which will maximize/unmaximize the window in that direction only, 'minimize' which will minimize the window, 'shade' which will roll the window up, 'menu' which will display the window menu, 'lower' which will put the window behind all the others, and 'none' which will not do anything.</description>
++ </key>
++ <key name="action-middle-click-titlebar" enum="org.mate.Marco.ActionTitlebar">
++ <default>'lower'</default>
++ <summary>Action on title bar middle-click</summary>
++ <description>This option determines the effects of middle-clicking on the title bar. Current valid options are 'toggle_shade', which will shade/unshade the window, 'toggle_maximize' which will maximize/unmaximize the window, 'toggle_maximize_horizontally' and 'toggle_maximize_vertically' which will maximize/unmaximize the window in that direction only, 'minimize' which will minimize the window, 'shade' which will roll the window up, 'menu' which will display the window menu, 'lower' which will put the window behind all the others, and 'none' which will not do anything.</description>
++ </key>
++ <key name="action-right-click-titlebar" enum="org.mate.Marco.ActionTitlebar">
++ <default>'menu'</default>
++ <summary>Action on title bar right-click</summary>
++ <description>This option determines the effects of right-clicking on the title bar. Current valid options are 'toggle_shade', which will shade/unshade the window, 'toggle_maximize' which will maximize/unmaximize the window, 'toggle_maximize_horizontally' and 'toggle_maximize_vertically' which will maximize/unmaximize the window in that direction only, 'minimize' which will minimize the window, 'shade' which will roll the window up, 'menu' which will display the window menu, 'lower' which will put the window behind all the others, and 'none' which will not do anything.</description>
++ </key>
++ <key name="theme" type="s">
++ <default>'Menta'</default>
++ <summary>Current theme</summary>
++ <description>The theme determines the appearance of window borders, titlebar, and so forth.</description>
++ </key>
++ <key name="titlebar-uses-system-font" type="b">
++ <default>false</default>
++ <summary>Use standard system font in window titles</summary>
++ <description>If true, ignore the titlebar_font option, and use the standard application font for window titles.</description>
++ </key>
++ <key name="titlebar-font" type="s">
++ <default>'Sans Bold 10'</default>
++ <summary>Window title font</summary>
++ <description>A font description string describing a font for window titlebars. The size from the description will only be used if the titlebar_font_size option is set to 0. Also, this option is disabled if the titlebar_uses_desktop_font option is set to true.</description>
++ </key>
++ </schema>
++</schemalist>
+diff -Naur a/gtk/window-decorator/tests/test_gwd_settings.cpp b/gtk/window-decorator/tests/test_gwd_settings.cpp
+--- a/gtk/window-decorator/tests/test_gwd_settings.cpp 2015-08-20 23:01:09.000000000 +1000
++++ b/gtk/window-decorator/tests/test_gwd_settings.cpp 2016-04-09 19:33:06.813697548 +1000
+@@ -197,7 +197,6 @@
+ const std::string INACTIVE_SHADOW_COLOR_STR_VALUE ("#00000000");
+ const gushort INACTIVE_SHADOW_COLOR_VALUE[] = { 0, 0, 0 };
+ const gboolean USE_TOOLTIPS_VALUE = !USE_TOOLTIPS_DEFAULT;
+- const guint DRAGGABLE_BORDER_WIDTH_VALUE = 1;
+ const std::string BLUR_TYPE_TITLEBAR_VALUE ("titlebar");
+ const gint BLUR_TYPE_TITLEBAR_INT_VALUE = BLUR_TYPE_TITLEBAR;
+ const std::string BLUR_TYPE_ALL_VALUE ("all");
+@@ -328,7 +327,6 @@
+ testing_values::INACTIVE_SHADOW_OFFSET_Y_VALUE,
+ Eq (testing_values::INACTIVE_SHADOW_COLOR_STR_VALUE))).WillOnce (Return (TRUE));
+ EXPECT_CALL (writableGMock, useTooltipsChanged (testing_values::USE_TOOLTIPS_VALUE)).WillOnce (Return (TRUE));
+- EXPECT_CALL (writableGMock, draggableBorderWidthChanged (testing_values::DRAGGABLE_BORDER_WIDTH_VALUE)).WillOnce (Return (TRUE));
+ EXPECT_CALL (writableGMock, blurChanged (Eq (testing_values::BLUR_TYPE_TITLEBAR_VALUE))).WillOnce (Return (TRUE));
+ EXPECT_CALL (writableGMock, metacityThemeChanged (TRUE, Eq (testing_values::METACITY_THEME_VALUE))).WillOnce (Return (TRUE));
+ EXPECT_CALL (writableGMock, opacityChanged (testing_values::ACTIVE_OPACITY_VALUE,
+@@ -361,7 +359,6 @@
+ testing_values::INACTIVE_SHADOW_OFFSET_Y_VALUE,
+ testing_values::INACTIVE_SHADOW_COLOR_STR_VALUE.c_str ()), IsTrue ());
+ EXPECT_THAT (gwd_settings_writable_use_tooltips_changed (writableMock.get (), testing_values::USE_TOOLTIPS_VALUE), IsTrue ());
+- EXPECT_THAT (gwd_settings_writable_draggable_border_width_changed (writableMock.get (), testing_values::DRAGGABLE_BORDER_WIDTH_VALUE), IsTrue ());
+ EXPECT_THAT (gwd_settings_writable_blur_changed (writableMock.get (), testing_values::BLUR_TYPE_TITLEBAR_VALUE.c_str ()), IsTrue ());
+ EXPECT_THAT (gwd_settings_writable_metacity_theme_changed (writableMock.get (),
+ testing_values::USE_METACITY_THEME_VALUE,
+@@ -461,14 +458,6 @@
+ "use-tooltips",
+ &booleanGValue);
+
+- EXPECT_CALL (settingsGMock, getProperty (GWD_MOCK_SETTINGS_PROPERTY_DRAGGABLE_BORDER_WIDTH,
+- GValueMatch <gint> (0, g_value_get_int),
+- _));
+-
+- g_object_get_property (G_OBJECT (settingsMock.get ()),
+- "draggable-border-width",
+- &integerGValue);
+-
+ EXPECT_CALL (settingsGMock, getProperty (GWD_MOCK_SETTINGS_PROPERTY_BLUR_CHANGED,
+ GValueMatch <gint> (0, g_value_get_int),
+ _));
+@@ -749,29 +738,6 @@
+ USE_TOOLTIPS_DEFAULT), IsFalse ());
+ }
+
+-TEST_F(GWDSettingsTest, TestDraggableBorderWidthChanged)
+-{
+- EXPECT_CALL (*mGMockNotified, updateDecorations ());
+- EXPECT_THAT (gwd_settings_writable_draggable_border_width_changed (GWD_SETTINGS_WRITABLE_INTERFACE (mSettings.get ()),
+- testing_values::DRAGGABLE_BORDER_WIDTH_VALUE), IsTrue ());
+-
+- AutoUnsetGValue draggableBorderWidthValue (G_TYPE_INT);
+- GValue &draggableBorderWidthGValue = draggableBorderWidthValue;
+-
+- g_object_get_property (G_OBJECT (mSettings.get ()),
+- "draggable-border-width",
+- &draggableBorderWidthGValue);
+-
+- EXPECT_THAT (&draggableBorderWidthGValue, GValueMatch <gint> (testing_values::DRAGGABLE_BORDER_WIDTH_VALUE,
+- g_value_get_int));
+-}
+-
+-TEST_F(GWDSettingsTest, TestDraggableBorderWidthChangedIsDefault)
+-{
+- EXPECT_THAT (gwd_settings_writable_draggable_border_width_changed (GWD_SETTINGS_WRITABLE_INTERFACE (mSettings.get ()),
+- DRAGGABLE_BORDER_WIDTH_DEFAULT), IsFalse ());
+-}
+-
+ TEST_F(GWDSettingsTest, TestBlurChangedTitlebar)
+ {
+ EXPECT_CALL (*mGMockNotified, updateDecorations ());
+@@ -1183,7 +1149,6 @@
+ virtual void SetUp (GWDSettingsWritable *writable) = 0;
+ virtual GWDSettingsStorage * GetStorage () = 0;
+ virtual void SetUseTooltips (gboolean useTooltips) = 0;
+- virtual void SetDraggableBorderWidth (gint draggableBorderWidth) = 0;
+ virtual void SetBlur (const std::string &blurType) = 0;
+ virtual void SetOpacity (gdouble activeOpacity,
+ gdouble inactiveOpacity,
+@@ -1247,16 +1212,6 @@
+ gwd_settings_storage_update_use_tooltips (storage);
+ }
+
+-TEST_P (GWDSettingsTestStorageUpdates, TestSetDraggableBorderWidth)
+-{
+- GWDSettingsStorage *storage = GetParam ()->GetStorage ();
+- GetParam ()->SetDraggableBorderWidth (testing_values::DRAGGABLE_BORDER_WIDTH_VALUE);
+-
+- EXPECT_CALL (*mSettingsMock, draggableBorderWidthChanged (testing_values::DRAGGABLE_BORDER_WIDTH_VALUE));
+-
+- gwd_settings_storage_update_draggable_border_width (storage);
+-}
+-
+ TEST_P (GWDSettingsTestStorageUpdates, TestSetBlur)
+ {
+ GWDSettingsStorage *storage = GetParam ()->GetStorage ();
+@@ -1360,15 +1315,6 @@
+ gwd_settings_writable_use_tooltips_changed, mWritable, useTooltips)));
+ }
+
+- virtual void SetDraggableBorderWidth (gint draggableBorderWidth)
+- {
+- EXPECT_CALL (*mStorageMock, updateDraggableBorderWidth ())
+- .WillOnce (
+- InvokeFunctor (
+- boost::bind (
+- gwd_settings_writable_draggable_border_width_changed, mWritable, draggableBorderWidth)));
+- }
+-
+ virtual void SetBlur (const std::string &blurType)
+ {
+ EXPECT_CALL (*mStorageMock, updateBlur ())
+@@ -1482,8 +1428,8 @@
+
+ gwd_connect_org_compiz_gwd_settings (NULL, mStorage.get ());
+ gwd_connect_org_gnome_metacity_settings (NULL, mStorage.get ());
+- gwd_connect_org_gnome_mutter_settings (NULL, mStorage.get ());
+ gwd_connect_org_gnome_desktop_wm_preferences_settings (NULL, mStorage.get ());
++ gwd_connect_org_mate_marco_settings (NULL, mStorage.get ());
+
+ EXPECT_CALL (*mStorageMock, dispose ());
+ EXPECT_CALL (*mStorageMock, finalize ());
+@@ -1502,12 +1448,12 @@
+ /* We do not need to keep a reference to these */
+ mGWDSettings = gwd_get_org_compiz_gwd_settings ();
+ mMetacitySettings = gwd_get_org_gnome_metacity_settings ();
+- mMutterSettings = gwd_get_org_gnome_mutter_settings ();
+ mDesktopSettings = gwd_get_org_gnome_desktop_wm_preferences_settings ();
++ mMarcoSettings = gwd_get_org_mate_marco_settings ();
+
+ mStorage.reset (gwd_settings_storage_gsettings_new (mDesktopSettings,
+ mMetacitySettings,
+- mMutterSettings,
++ mMarcoSettings,
+ mGWDSettings,
+ writable),
+ boost::bind (gwd_settings_storage_unref, _1));
+@@ -1523,11 +1469,6 @@
+ g_settings_set_boolean (mGWDSettings, ORG_COMPIZ_GWD_KEY_USE_TOOLTIPS, useTooltips);
+ }
+
+- virtual void SetDraggableBorderWidth (gint draggableBorderWidth)
+- {
+- g_settings_set_int (mMutterSettings, ORG_GNOME_MUTTER_DRAGGABLE_BORDER_WIDTH, draggableBorderWidth);
+- }
+-
+ virtual void SetBlur (const std::string &blurType)
+ {
+ g_settings_set_string (mGWDSettings, ORG_COMPIZ_GWD_KEY_BLUR_TYPE, blurType.c_str ());
+@@ -1549,6 +1490,7 @@
+ {
+ g_settings_set_boolean (mGWDSettings, ORG_COMPIZ_GWD_KEY_USE_METACITY_THEME, useMetacityTheme);
+ g_settings_set_string (mDesktopSettings, ORG_GNOME_DESKTOP_WM_PREFERENCES_THEME, metacityTheme.c_str ());
++ g_settings_set_string (mMarcoSettings, ORG_MATE_MARCO_GENERAL_THEME, metacityTheme.c_str ());
+ }
+
+ virtual void SetButtonLayout (const std::string &buttonLayout)
+@@ -1556,6 +1498,9 @@
+ g_settings_set_string (mDesktopSettings,
+ ORG_GNOME_DESKTOP_WM_PREFERENCES_BUTTON_LAYOUT,
+ buttonLayout.c_str ());
++ g_settings_set_string (mMarcoSettings,
++ ORG_MATE_MARCO_GENERAL_BUTTON_LAYOUT,
++ buttonLayout.c_str ());
+ }
+
+ virtual void SetFont (gboolean useSystemFont, const std::string &titlebarFont)
+@@ -1566,6 +1511,12 @@
+ g_settings_set_string (mDesktopSettings,
+ ORG_GNOME_DESKTOP_WM_PREFERENCES_TITLEBAR_FONT,
+ titlebarFont.c_str ());
++ g_settings_set_boolean (mMarcoSettings,
++ ORG_MATE_MARCO_GENERAL_TITLEBAR_USES_SYSTEM_FONT,
++ useSystemFont);
++ g_settings_set_string (mMarcoSettings,
++ ORG_MATE_MARCO_GENERAL_TITLEBAR_FONT,
++ titlebarFont.c_str ());
+ }
+
+ virtual void SetTitlebarActions (const std::string &doubleClickAction,
+@@ -1590,6 +1541,15 @@
+ g_settings_set_string (mDesktopSettings,
+ ORG_GNOME_DESKTOP_WM_PREFERENCES_ACTION_RIGHT_CLICK_TITLEBAR,
+ translatedRC.c_str ());
++ g_settings_set_string (mMarcoSettings,
++ ORG_MATE_MARCO_GENERAL_ACTION_DOUBLE_CLICK_TITLEBAR,
++ translatedDC.c_str ());
++ g_settings_set_string (mMarcoSettings,
++ ORG_MATE_MARCO_GENERAL_ACTION_MIDDLE_CLICK_TITLEBAR,
++ translatedMC.c_str ());
++ g_settings_set_string (mMarcoSettings,
++ ORG_MATE_MARCO_GENERAL_ACTION_RIGHT_CLICK_TITLEBAR,
++ translatedRC.c_str ());
+ g_settings_set_string (mGWDSettings,
+ ORG_COMPIZ_GWD_KEY_MOUSE_WHEEL_ACTION,
+ mouseWheelAction.c_str ());
+@@ -1600,8 +1560,8 @@
+ mStorage.reset ();
+ mGWDSettings = NULL;
+ mMetacitySettings = NULL;
+- mMutterSettings = NULL;
+ mDesktopSettings = NULL;
++ mMarcoSettings = NULL;
+ gsettingsEnv.TearDownEnv ();
+ gsliceEnv.TearDownEnv ();
+ }
+@@ -1610,8 +1570,8 @@
+
+ GSettings *mGWDSettings;
+ GSettings *mMetacitySettings;
+- GSettings *mMutterSettings;
+ GSettings *mDesktopSettings;
++ GSettings *mMarcoSettings;
+ boost::shared_ptr <GWDSettingsStorage> mStorage;
+ CompizGLibGSliceOffEnv gsliceEnv;
+ CompizGLibGSettingsMemoryBackendTestingEnv gsettingsEnv;