diff -NurpP --exclude .libs --exclude po --exclude autom4te.cache compiz-plugins-experimental-0.8.12/metadata/freewins.xml compiz-plugins-experimental-0.8.12.work/metadata/freewins.xml --- compiz-plugins-experimental-0.8.12/metadata/freewins.xml 2016-09-04 15:32:18.641234549 +0000 +++ compiz-plugins-experimental-0.8.12.work/metadata/freewins.xml 2016-09-04 12:17:13.931857036 +0000 @@ -58,7 +58,7 @@ Use this bindings to enable/disable snapping. int 0 - 3 + 5 0 Shift @@ -166,6 +166,14 @@ Meta Metaé”® + + 4 + Super + + + 5 + Hyper + @@ -175,7 +183,7 @@ Use this bindings to invert the rotation mode. int 0 - 3 + 5 0 Shift @@ -283,6 +291,14 @@ Meta Metaé”® + + 4 + Super + + + 5 + Hyper + diff -NurpP --exclude .libs --exclude po --exclude autom4te.cache compiz-plugins-experimental-0.8.12/metadata/freewins.xml.in compiz-plugins-experimental-0.8.12.work/metadata/freewins.xml.in --- compiz-plugins-experimental-0.8.12/metadata/freewins.xml.in 2016-01-12 19:38:41.000000000 +0000 +++ compiz-plugins-experimental-0.8.12.work/metadata/freewins.xml.in 2016-09-04 12:17:12.371740162 +0000 @@ -58,7 +58,7 @@ <_long>Use this bindings to enable/disable snapping. int 0 - 3 + 5 0 <_name>Shift @@ -75,6 +75,14 @@ 3 <_name>Meta + + 4 + <_name>Super + + + 5 + <_name>Hyper + @@ -84,7 +92,7 @@ <_long>Use this bindings to invert the rotation mode. int 0 - 3 + 5 0 <_name>Shift @@ -101,6 +109,14 @@ 3 <_name>Meta + + 4 + <_name>Super + + + 5 + <_name>Hyper + diff -NurpP --exclude .libs --exclude po --exclude autom4te.cache compiz-plugins-experimental-0.8.12/src/freewins/freewins.c compiz-plugins-experimental-0.8.12.work/src/freewins/freewins.c --- compiz-plugins-experimental-0.8.12/src/freewins/freewins.c 2016-01-12 19:38:41.000000000 +0000 +++ compiz-plugins-experimental-0.8.12.work/src/freewins/freewins.c 2016-09-04 05:13:53.770770814 +0000 @@ -123,6 +123,10 @@ FWReloadSnapKeys (CompDisplay *d) fwd->invertMask |= ControlMask; if (imask & InvertModsMetaMask) fwd->invertMask |= CompMetaMask; + if (imask & InvertModsSuperMask) + fwd->invertMask |= CompSuperMask; + if (imask & InvertModsHyperMask) + fwd->invertMask |= CompHyperMask; unsigned int smask = freewinsGetSnapModsMask(d); fwd->snapMask = 0; @@ -134,6 +138,10 @@ FWReloadSnapKeys (CompDisplay *d) fwd->snapMask |= ControlMask; if (smask & SnapModsMetaMask) fwd->snapMask |= CompMetaMask; + if (smask & SnapModsSuperMask) + fwd->snapMask |= CompSuperMask; + if (smask & SnapModsHyperMask) + fwd->snapMask |= CompHyperMask; } } diff -NurpP --exclude .libs --exclude po --exclude autom4te.cache compiz-plugins-experimental-0.8.12/src/freewins/freewins_options.h compiz-plugins-experimental-0.8.12.work/src/freewins/freewins_options.h --- compiz-plugins-experimental-0.8.12/src/freewins/freewins_options.h 2016-09-04 15:32:32.532276997 +0000 +++ compiz-plugins-experimental-0.8.12.work/src/freewins/freewins_options.h 2016-09-04 12:17:14.071867525 +0000 @@ -87,6 +87,8 @@ typedef enum SnapModsAlt = 1, SnapModsControl = 2, SnapModsMeta = 3, + SnapModsSuper = 4, + SnapModsHyper = 5, } FreewinsSnapModsEnum; typedef enum @@ -95,6 +97,8 @@ typedef enum InvertModsAlt = 1, InvertModsControl = 2, InvertModsMeta = 3, + InvertModsSuper = 4, + InvertModsHyper = 5, } FreewinsInvertModsEnum; typedef enum @@ -125,12 +129,16 @@ typedef enum #define SnapModsAltMask (1 << 1) #define SnapModsControlMask (1 << 2) #define SnapModsMetaMask (1 << 3) +#define SnapModsSuperMask (1 << 4) +#define SnapModsHyperMask (1 << 5) #define InvertModsShiftMask (1 << 0) #define InvertModsAltMask (1 << 1) #define InvertModsControlMask (1 << 2) #define InvertModsMetaMask (1 << 3) +#define InvertModsSuperMask (1 << 4) +#define InvertModsHyperMask (1 << 5) CompAction * freewinsGetRotate (CompDisplay *d);