diff --git a/kde/kde4-workspace/Portfile b/kde/kde4-workspace/Portfile
index c78470e38d..337b31a0fb 100644
--- a/kde/kde4-workspace/Portfile
+++ b/kde/kde4-workspace/Portfile
@@ -5,12 +5,11 @@ PortGroup           kde4   1.1
 
 fetch.type          git
 git.url             git://anongit.kde.org/kde-workspace
-git.branch          b904af16
+git.branch          100800e799b062914fd2e6f517643effaca40ae7
 
 name                kde4-workspace
-version             4.14.4.20150324
-revision            5
-set plasmaversion   4.11.17
+version             4.14.4.20150831
+set plasmaversion   4.11.22-6
 categories          kde kde4
 maintainers         {gmail.com:rjvbertin @RJVB}
 license             GPL-2+ LGPL-2.1+
@@ -28,32 +27,42 @@ use_xz              yes
 #                    sha256  09d8ae1ac1b704fc919bdedfec47c6561033dca125b0096cb9ed398445fa942f
 
 patchfiles          patch-CMakeLists-for-OSX.patch \
-                    patch-libs-CMakeLists.patch \
                     patch-kcontrol.patch \
-                    systemsettings-correct-menuplacement.patch
+                    systemsettings-correct-menuplacement.patch \
+                    patch-input-wheelzooms.diff
 
 depends_build-append port:boost \
                     port:freetype \
                     port:libusb
 
 depends_lib-append  port:kdelibs4 \
-                    port:kdepimlibs4 \
+                    path:lib/libakonadi-calendar.4.dylib:kdepimlibs4 \
                     port:kactivities \
                     port:nepomuk-core \
                     port:libqalculate \
                     port:qjson \
                     port:qimageblitz
 
-configure.args-append  -DBUILD_webkit:BOOL=ON
+configure.args-append \
+                    -DBUILD_webkit:BOOL=ON \
+                    -DBUILD_OXYGEN=ON
 
 configure.args-delete -DCMAKE_BUILD_TYPE=Release
 configure.args-append -DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo -DCMAKE_STRIP:FILEPATH=/bin/echo
 
-variant oxygen description {Build the Oxygen theme} {
-    patchfiles-append     no-oxygen-theme.patch
+variant oxygen description {Build the Oxygen theme} {}
+default_variants    +oxygen
+
+if {![variant_isset oxygen]} {
+    configure.args-replace \
+                    -DBUILD_OXYGEN=ON \
+                    -DBUILD_OXYGEN=OFF
 }
 
-default_variants    +oxygen
+# maintainer convience: let the build go as far as possible to collect as
+# many errors as possible (if any) in a single pass.
+build.post_args-append \
+                    -k
 
 post-destroot {
     ln -s ${applications_dir}/KDE4/plasma-windowed.app/Contents/MacOS/plasma-windowed ${destroot}${prefix}/bin/plasma-windowed
diff --git a/kde/kde4-workspace/files/no-oxygen-theme.patch b/kde/kde4-workspace/files/no-oxygen-theme.patch
deleted file mode 100644
index 59a598348b..0000000000
--- a/kde/kde4-workspace/files/no-oxygen-theme.patch
+++ /dev/null
@@ -1,16 +0,0 @@
---- kstyles/orig.CMakeLists.txt	2014-10-03 18:30:13.000000000 +0200
-+++ kstyles/CMakeLists.txt	2014-10-08 11:57:14.000000000 +0200
-@@ -1,2 +1,2 @@
--add_subdirectory( oxygen )
-+# add_subdirectory( oxygen )
- add_subdirectory( themes )
---- libs/oxy.CMakeLists.txt	2014-12-30 13:32:17.000000000 +0100
-+++ libs/CMakeLists.txt	2014-12-30 14:25:25.000000000 +0100
-@@ -1,6 +1,6 @@
- add_subdirectory(kephal)
- add_subdirectory(kworkspace)
--add_subdirectory(oxygen)
-+#add_subdirectory(oxygen)
- add_subdirectory(plasmaclock)
- 
- if(${KDE_PLATFORM_PROFILE} STREQUAL "Desktop")
diff --git a/kde/kde4-workspace/files/patch-CMakeLists-for-OSX.patch b/kde/kde4-workspace/files/patch-CMakeLists-for-OSX.patch
old mode 100644
new mode 100755
index 5b43f06622..a575402222
--- a/kde/kde4-workspace/files/patch-CMakeLists-for-OSX.patch
+++ b/kde/kde4-workspace/files/patch-CMakeLists-for-OSX.patch
@@ -1,6 +1,16 @@
---- orig.CMakeLists.txt	2014-09-19 14:30:04.000000000 +0200
-+++ CMakeLists.txt	2014-10-03 18:55:38.000000000 +0200
-@@ -194,7 +194,7 @@
+diff --git CMakeLists.txt CMakeLists.txt
+index 3d4287c..273dcdd 100644
+--- CMakeLists.txt
++++ CMakeLists.txt
+@@ -19,6 +19,7 @@ find_package(KDE4 4.9.4 REQUIRED)
+ include(KDE4Defaults)
+ 
+ option(WITH_XINERAMA "Xinerama support for multi-headed X displays" ON)
++option(BUILD_OXYGEN "Build the Oxygen style for Qt4/KDE4" ON)
+ 
+ find_package(Strigi)
+ 
+@@ -194,7 +195,7 @@ set_package_properties(QJSON PROPERTIES DESCRIPTION "Library to manage JSON obje
  
  
  include(ConfigureChecks.cmake)
@@ -9,22 +19,21 @@
    configure_file(config-unix.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-unix.h )
    configure_file(config-X11.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-X11.h )
    if(NOT CMAKE_INSTALL_PREFIX STREQUAL "/usr")
-@@ -221,15 +221,17 @@
+@@ -221,15 +222,17 @@ endif(${KDE_PLATFORM_PROFILE} STREQUAL "Desktop")
  
  # core apps
  if(NOT WIN32)
 -   macro_optional_add_subdirectory( kcheckpass )
 -   macro_optional_add_subdirectory( kwin )
 -   macro_optional_add_subdirectory( ksmserver )
--
--   find_package(JPEG REQUIRED)
--   find_package(PNG REQUIRED)
--   macro_optional_add_subdirectory( ksplash )
 +   if(NOT APPLE)
 +      macro_optional_add_subdirectory( kcheckpass )
 +      macro_optional_add_subdirectory( kwin )
 +      macro_optional_add_subdirectory( ksmserver )
-+
+ 
+-   find_package(JPEG REQUIRED)
+-   find_package(PNG REQUIRED)
+-   macro_optional_add_subdirectory( ksplash )
 +      find_package(JPEG REQUIRED)
 +      find_package(PNG REQUIRED)
 +      macro_optional_add_subdirectory( ksplash )
@@ -35,7 +44,7 @@
     macro_optional_add_subdirectory( qguiplatformplugin_kde )
     if (NOT CMAKE_SYSTEM_NAME MATCHES Darwin)
        macro_optional_add_subdirectory( ksysguard )
-@@ -238,14 +240,16 @@
+@@ -238,14 +241,16 @@ endif(NOT WIN32)
  
  if(${KDE_PLATFORM_PROFILE} STREQUAL "Desktop")
     macro_optional_add_subdirectory(kcontrol)
@@ -60,7 +69,7 @@
  
     # data
     macro_optional_add_subdirectory(doc)
-@@ -254,7 +258,7 @@
+@@ -254,7 +259,7 @@ if(${KDE_PLATFORM_PROFILE} STREQUAL "Desktop")
        macro_optional_add_subdirectory(ktouchpadenabler)
     endif (Q_WS_X11)
  
@@ -69,7 +78,7 @@
        macro_optional_add_subdirectory(kcminit)
        macro_optional_add_subdirectory(khotkeys)
        macro_optional_add_subdirectory(kwrited)
-@@ -269,17 +273,19 @@
+@@ -269,17 +274,19 @@ if(${KDE_PLATFORM_PROFILE} STREQUAL "Desktop")
     endif(X11_Xau_FOUND AND X11_Xdmcp_FOUND)
  endif(${KDE_PLATFORM_PROFILE} STREQUAL "Desktop")
  
@@ -81,8 +90,8 @@
  
 -macro_optional_add_subdirectory(plasma)
 +if(NOT APPLE)
-+   macro_optional_add_subdirectory(plasma)
-+endif(NOT APPLE)
++    macro_optional_add_subdirectory(plasma)
++endif()
  macro_optional_add_subdirectory(statusnotifierwatcher)
  macro_optional_add_subdirectory(kstyles)
  
@@ -92,3 +101,67 @@
    install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/startkde DESTINATION ${BIN_INSTALL_DIR})
  endif(NOT WIN32)
  
+@@ -352,9 +359,11 @@ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/KDE4WorkspaceConfig.cmake
+               ${CMAKE_CURRENT_BINARY_DIR}/KDE4WorkspaceConfigVersion.cmake
+         DESTINATION ${_KDE4WorkspaceConfig_INSTALL_DIR})
+ 
+-install(EXPORT kdeworkspaceLibraryTargets 
++if(NOT APPLE)
++    install(EXPORT kdeworkspaceLibraryTargets 
+         NAMESPACE ${KDE4WORKSPACE_TARGET_PREFIX}
+         DESTINATION ${_KDE4WorkspaceConfig_INSTALL_DIR}
+         FILE KDE4WorkspaceLibraryTargets.cmake )
++endif()
+ 
+ 
+diff --git libs/CMakeLists.txt libs/CMakeLists.txt
+index c0576fe6e77eedd71ec548c8cf38dda819dfaa99..0f522ab59b1928d1e63f561b3b98e06d4d703910 100644
+--- libs/CMakeLists.txt
++++ libs/CMakeLists.txt
+@@ -1,19 +1,20 @@
+-add_subdirectory(kephal)
+-add_subdirectory(kworkspace)
+-add_subdirectory(oxygen)
+-add_subdirectory(plasmaclock)
++if(NOT APPLE)
++    add_subdirectory(kephal)
++    add_subdirectory(kworkspace)
++    add_subdirectory(plasmaclock)
+ 
+-if(${KDE_PLATFORM_PROFILE} STREQUAL "Desktop")
+-   add_subdirectory(kdm)
+-   add_subdirectory(plasmagenericshell)
+-   if(NOT WIN32)
+-        add_subdirectory(taskmanager)
+-   endif(NOT WIN32)
+-endif(${KDE_PLATFORM_PROFILE} STREQUAL "Desktop")
++    if(${KDE_PLATFORM_PROFILE} STREQUAL "Desktop")
++       add_subdirectory(kdm)
++       add_subdirectory(plasmagenericshell)
++       if(NOT WIN32 AND NOT CMAKE_SYSTEM_NAME MATCHES Darwin)
++            add_subdirectory(taskmanager)
++       endif(NOT WIN32 AND NOT CMAKE_SYSTEM_NAME MATCHES Darwin)
++    endif(${KDE_PLATFORM_PROFILE} STREQUAL "Desktop")
+ 
+-if(NOT WIN32)
+-    if (NOT CMAKE_SYSTEM_NAME MATCHES Darwin)
++    if(NOT WIN32 AND NOT CMAKE_SYSTEM_NAME MATCHES Darwin)
+         add_subdirectory(ksysguard)
+-    endif (NOT CMAKE_SYSTEM_NAME MATCHES Darwin)
+-endif(NOT WIN32)
+-
++    endif(NOT WIN32 AND NOT CMAKE_SYSTEM_NAME MATCHES Darwin)
++endif()
++if(BUILD_OXYGEN)
++    add_subdirectory(oxygen)
++endif()
+diff --git kstyles/CMakeLists.txt kstyles/CMakeLists.txt
+index 260f65b784121c3455e1a3e129d92fe37f30d12b..34585c6e46be2fb465f1cce9a41f63e42f2d05fb 100644
+--- kstyles/CMakeLists.txt
++++ kstyles/CMakeLists.txt
+@@ -1,2 +1,4 @@
+-add_subdirectory( oxygen )
++if(BUILD_OXYGEN)
++    add_subdirectory( oxygen )
++endif()
+ add_subdirectory( themes )
diff --git a/kde/kde4-workspace/files/patch-input-wheelzooms.diff b/kde/kde4-workspace/files/patch-input-wheelzooms.diff
new file mode 100644
index 0000000000..c3035ca700
--- /dev/null
+++ b/kde/kde4-workspace/files/patch-input-wheelzooms.diff
@@ -0,0 +1,115 @@
+diff --git kcontrol/input/kmousedlg.ui kcontrol/input/kmousedlg.ui
+index b48a606..c2dde85 100644
+--- kcontrol/input/kmousedlg.ui
++++ kcontrol/input/kmousedlg.ui
+@@ -76,6 +76,16 @@
+          </property>
+         </widget>
+        </item>
++       <item>
++        <widget class="QCheckBox" name="cbWheelZooms">
++         <property name="whatsThis">
++          <string>Scrolling with the mouse wheel with the Control (or Command) key may zoom text, or else may accelerate the scrolling.</string>
++         </property>
++         <property name="text">
++          <string>Mo&amp;use wheel may zoom text</string>
++         </property>
++        </widget>
++       </item>
+       </layout>
+      </item>
+      <item>
+@@ -249,6 +259,7 @@
+   <tabstop>rightHanded</tabstop>
+   <tabstop>leftHanded</tabstop>
+   <tabstop>cbScrollPolarity</tabstop>
++  <tabstop>cbWheelZooms</tabstop>
+   <tabstop>doubleClick</tabstop>
+   <tabstop>singleClick</tabstop>
+   <tabstop>cb_pointershape</tabstop>
+diff --git kcontrol/input/mouse.cpp kcontrol/input/mouse.cpp
+index cebb174..d65db1c 100644
+--- kcontrol/input/mouse.cpp
++++ kcontrol/input/mouse.cpp
+@@ -180,6 +180,9 @@ MouseConfig::MouseConfig(QWidget *parent, const QVariantList &args)
+     connect(generalTab->cbScrollPolarity, SIGNAL(clicked()), this, SLOT(changed()));
+     connect(generalTab->cbScrollPolarity, SIGNAL(clicked()), this, SLOT(slotScrollPolarityChanged()));
+ 
++    connect(generalTab->cbWheelZooms, SIGNAL(clicked()), this, SLOT(changed()));
++    connect(generalTab->cbWheelZooms, SIGNAL(clicked()), this, SLOT(slotWheelZoomsChanged()));
++
+     // Advanced tab
+     advancedTab = new QWidget(0);
+     advancedTab->setObjectName("Advanced Tab");
+@@ -457,6 +460,7 @@ void MouseConfig::load()
+   if ( generalTab->cbScrollPolarity->isEnabled() )
+     generalTab->cbScrollPolarity->setEnabled(settings->handedEnabled);
+   generalTab->cbScrollPolarity->setChecked( settings->reverseScrollPolarity );
++  generalTab->cbWheelZooms->setChecked( settings->wheelZooms );
+ 
+   setAccel(settings->accelRate);
+   setThreshold(settings->thresholdMove);
+@@ -524,6 +528,7 @@ void MouseConfig::save()
+ //  settings->changeCursor = generalTab->singleClick->isChecked();
+   settings->changeCursor = generalTab->cb_pointershape->isChecked();
+   settings->reverseScrollPolarity = generalTab->cbScrollPolarity->isChecked();
++  settings->wheelZooms = generalTab->cbWheelZooms->isChecked();
+ 
+   settings->apply();
+   KConfig config( "kcminputrc" );
+@@ -568,6 +573,7 @@ void MouseConfig::defaults()
+     generalTab->slAutoSelect->setValue( KDE_DEFAULT_AUTOSELECTDELAY == -1 ? 50 : KDE_DEFAULT_AUTOSELECTDELAY );
+     generalTab->singleClick->setChecked( KDE_DEFAULT_SINGLECLICK );
+     generalTab->cb_pointershape->setChecked(KDE_DEFAULT_CHANGECURSOR);
++    generalTab->cbWheelZooms->setChecked(KDE_DEFAULT_WHEEL_ZOOM);
+     slotClick();
+ 
+   mouseKeys->setChecked(false);
+@@ -681,6 +687,7 @@ void MouseSettings::load(KConfig *config)
+   singleClick = group.readEntry("SingleClick", KDE_DEFAULT_SINGLECLICK);
+   autoSelectDelay = group.readEntry("AutoSelectDelay", KDE_DEFAULT_AUTOSELECTDELAY);
+   changeCursor = group.readEntry("ChangeCursor", KDE_DEFAULT_CHANGECURSOR);
++  wheelZooms = group.readEntry("WheelMouseZooms", KDE_DEFAULT_WHEEL_ZOOM );
+ }
+ 
+ void MouseConfig::slotThreshChanged(int value)
+@@ -796,6 +803,7 @@ void MouseSettings::save(KConfig *config)
+   group.writeEntry("SingleClick", singleClick, KConfig::Persistent|KConfig::Global);
+   group.writeEntry("AutoSelectDelay", autoSelectDelay, KConfig::Persistent|KConfig::Global);
+   group.writeEntry("ChangeCursor", changeCursor,KConfig::Persistent|KConfig::Global);
++  group.writeEntry("WheelMouseZooms", wheelZooms, KConfig::Persistent|KConfig::Global);
+   // This iterates through the various Logitech mice, if we have support.
+ #ifdef HAVE_LIBUSB
+   LogitechMouse *logitechMouse;
+@@ -812,6 +820,11 @@ void MouseConfig::slotScrollPolarityChanged()
+   settings->m_handedNeedsApply = true;
+ }
+ 
++void MouseConfig::slotWheelZoomsChanged()
++{
++  settings->wheelZooms = generalTab->cbWheelZooms->isChecked();
++}
++
+ void MouseConfig::slotSmartSliderEnabling()
+ {
+   bool enabled = generalTab->singleClick->isChecked() ? generalTab->cbAutoSelect->isChecked() : false;
+diff --git kcontrol/input/mouse.h kcontrol/input/mouse.h
+index d926a99..dcc160f 100644
+--- kcontrol/input/mouse.h
++++ kcontrol/input/mouse.h
+@@ -88,6 +88,7 @@ public:
+  bool changeCursor;
+  int wheelScrollLines;
+  bool reverseScrollPolarity;
++ bool wheelZooms;
+ 
+  #ifdef HAVE_LIBUSB
+  // TODO: In Qt4, replace with a better container.
+@@ -112,6 +113,7 @@ private Q_SLOTS:
+   /** No descriptions */
+   void slotHandedChanged(int val);
+   void slotScrollPolarityChanged();
++  void slotWheelZoomsChanged();
+   void checkAccess();
+   void slotThreshChanged(int value);
+   void slotDragStartDistChanged(int value);
diff --git a/kde/kde4-workspace/files/patch-libs-CMakeLists.patch b/kde/kde4-workspace/files/patch-libs-CMakeLists.patch
deleted file mode 100644
index 10d5a027e8..0000000000
--- a/kde/kde4-workspace/files/patch-libs-CMakeLists.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-diff --git libs/CMakeLists.txt libs/CMakeLists.txt
-index c0576fe..1a34bca 100644
---- libs/CMakeLists.txt
-+++ libs/CMakeLists.txt
-@@ -6,14 +6,12 @@ add_subdirectory(plasmaclock)
- if(${KDE_PLATFORM_PROFILE} STREQUAL "Desktop")
-    add_subdirectory(kdm)
-    add_subdirectory(plasmagenericshell)
--   if(NOT WIN32)
-+   if(NOT WIN32 AND NOT CMAKE_SYSTEM_NAME MATCHES Darwin)
-         add_subdirectory(taskmanager)
--   endif(NOT WIN32)
-+   endif(NOT WIN32 AND NOT CMAKE_SYSTEM_NAME MATCHES Darwin)
- endif(${KDE_PLATFORM_PROFILE} STREQUAL "Desktop")
- 
--if(NOT WIN32)
--    if (NOT CMAKE_SYSTEM_NAME MATCHES Darwin)
--        add_subdirectory(ksysguard)
--    endif (NOT CMAKE_SYSTEM_NAME MATCHES Darwin)
--endif(NOT WIN32)
-+if(NOT WIN32 AND NOT CMAKE_SYSTEM_NAME MATCHES Darwin)
-+    add_subdirectory(ksysguard)
-+endif(NOT WIN32 AND NOT CMAKE_SYSTEM_NAME MATCHES Darwin)
- 
-
