--- a/src/proximity.c	2021-03-04 10:51:32.765179000 +0100
+++ b/src/proximity.c	2021-03-04 12:01:32.618475761 +0100
@@ -148,24 +148,24 @@ on_proximity_near_changed (PhoshProximit
                            PhoshSensorProxyManager *sensor)
 {
   gboolean near;
+  int ps_mode;
+  PhoshShell *shell = phosh_shell_get_default ();
+  PhoshMonitor *monitor = phosh_shell_get_builtin_monitor (shell);
 
   near = phosh_dbus_sensor_proxy_get_proximity_near (
     PHOSH_DBUS_SENSOR_PROXY (self->sensor_proxy_manager));
 
   g_debug ("Proximity near changed: %d", near);
+  
   if (near) {
-    PhoshShell *shell = phosh_shell_get_default ();
-    PhoshWayland *wl = phosh_wayland_get_default ();
-    PhoshMonitor *monitor = phosh_shell_get_builtin_monitor (shell);
-
-    if (!self->fader) {
-      self->fader = phosh_fader_new (phosh_wayland_get_zwlr_layer_shell_v1 (wl),
-                                     monitor->wl_output);
-      gtk_widget_show (GTK_WIDGET (self->fader));
-    }
+      ps_mode = PHOSH_MONITOR_POWER_SAVE_MODE_OFF;
+      g_object_set(monitor, "proximity", TRUE, NULL);
   } else {
-      g_clear_pointer (&self->fader, phosh_cp_widget_destroy);
+      ps_mode = PHOSH_MONITOR_POWER_SAVE_MODE_ON;
+      g_object_set(monitor, "proximity", FALSE, NULL);
   }
+
+  phosh_monitor_set_power_save_mode (monitor, ps_mode);
 }
 
 static void
--- a/src/shell.c	2021-03-04 15:50:24.291677177 +0100
+++ b/src/shell.c	2021-03-04 15:50:54.228343514 +0100
@@ -529,13 +533,15 @@ static void
 on_builtin_monitor_power_mode_changed (PhoshShell *self, GParamSpec *pspec, PhoshMonitor *monitor)
 {
   PhoshMonitorPowerSaveMode mode;
+  gboolean proximity;
 
   g_return_if_fail (PHOSH_IS_SHELL (self));
   g_return_if_fail (PHOSH_IS_MONITOR (monitor));
 
+  g_object_get (monitor, "proximity", &proximity, NULL);
   g_object_get (monitor, "power-mode", &mode, NULL);
-  if (mode == PHOSH_MONITOR_POWER_SAVE_MODE_OFF)
-    phosh_shell_lock (self);
+  if (!proximity && mode == PHOSH_MONITOR_POWER_SAVE_MODE_OFF)
+    //phosh_shell_lock (self);
 
   phosh_shell_set_state (self, PHOSH_STATE_BLANKED, mode == PHOSH_MONITOR_POWER_SAVE_MODE_OFF);
 }