diff --git a/src/Gargantext/Components/GraphExplorer/Sigmajs.js b/src/Gargantext/Components/GraphExplorer/Sigmajs.js
index 1d7aeae1272d742ae2e6e048e0ce628f31b99632..559c6ebe82ba194f1de5dfb3c7534b46b3dc98fc 100644
--- a/src/Gargantext/Components/GraphExplorer/Sigmajs.js
+++ b/src/Gargantext/Components/GraphExplorer/Sigmajs.js
@@ -69,76 +69,72 @@ exports.pauseForceAtlas2 = function() {
 exports.cursor_size = 10;
 
 // TODO
-// exports.shift_key = false;
-exports.shift_key = true;
+exports.shift_key = false;
+//exports.shift_key = true;
 
-exports.trackMouse = function() {
+exports.trackMouse = function(e) {
     var partialGraph = window.sigmaGargInstance;
-    console.log('FUN t.minimap:trackMouse')
+    console.log('FUN t.minimap:trackMouse');
+
     if(!exports.shift_key) {
-        // $.doTimeout(300,function (){
-            var ctx = partialGraph._core.domElements.mouse.getContext('2d');
-            ctx.globalCompositeOperation = "source-over";
-            ctx.clearRect(0, 0, partialGraph._core.domElements.nodes.width, partialGraph._core.domElements.nodes.height);
-
-            x = partialGraph._core.mousecaptor.mouseX;
-            y = partialGraph._core.mousecaptor.mouseY;
-
-            ctx.strokeStyle = '#000';
-            ctx.lineWidth = 1;
-            ctx.fillStyle = "#71C3FF";
-            ctx.globalAlpha = 0.5;
-            ctx.beginPath();
-
-            if(partialGraph._core.mousecaptor.ratio>showLabelsIfZoom){
-                for(var i in partialGraph._core.graph.nodesIndex){
-                        n=partialGraph._core.graph.nodesIndex[i];
-                        if(n.hidden==false){
-                            distance = Math.sqrt(
-                                Math.pow((x-parseInt(n.displayX)),2) +
-                                Math.pow((y-parseInt(n.displayY)),2)
-                                );
-                            if(parseInt(distance)<=exports.cursor_size) {
-                                partialGraph._core.graph.nodesIndex[i].forceLabel=true;
-                            } else {
-                                if(typeof(n.neighbour)!=="undefined") {
-                                    if(!n.neighbour) partialGraph._core.graph.nodesIndex[i].forceLabel=false;
-                                } else partialGraph._core.graph.nodesIndex[i].forceLabel=false;
-                            }
-                        }
-                }
-                if(partialGraph.forceatlas2 && partialGraph.forceatlas2.count<=1) {
-                    partialGraph.draw(2,2,2);
-                }
-            } else {
-                for(var i in partialGraph._core.graph.nodesIndex){
-                    n=partialGraph._core.graph.nodesIndex[i];
-                    if(!n.hidden){
-                        partialGraph._core.graph.nodesIndex[i].forceLabel=false;
-                        if(typeof(n.neighbour)!=="undefined") {
-                            if(!n.neighbour) partialGraph._core.graph.nodesIndex[i].forceLabel=false;
-                            else partialGraph._core.graph.nodesIndex[i].forceLabel=true;
-                        } else partialGraph._core.graph.nodesIndex[i].forceLabel=false;
-                    }
-                }
-                if(partialGraph.forceatlas2 && partialGraph.forceatlas2.count<=1) {
-                    partialGraph.draw(2,2,2);
-                }
-            }
-            ctx.arc(x, y, exports.cursor_size, 0, Math.PI * 2, true);
-            //ctx.arc(partialGraph._core.width/2, partialGraph._core.height/2, 4, 0, 2 * Math.PI, true);/*todel*/
-            ctx.closePath();
-            ctx.fill();
-            ctx.stroke();
-        // });
+      // new sigma.js 2D mouse context
+      var ctx = partialGraph.renderers[0].contexts.mouse;
+      ctx.globalCompositeOperation = "source-over";
+
+      // clear zone each time to prevent repeated frame artifacts
+      ctx.clearRect(50, 50,
+                    partialGraph.renderers[0].container.offsetWidth,
+                    partialGraph.renderers[0].container.offsetHeight);
+
+      // classic mousemove event or other similar non-sigma events
+
+      var coord = window.sigma.utils.mouseCoords(e)
+      var x = (coord.x + coord.clientX) / 2 // ; // sigma.utils.getX(e);
+      var y = (coord.y + coord.clientY) /2 // ; // sigma.utils.getY(e);
+      console.log(coord);
+      // optional: make more labels appear on circle hover (/!\ costly /!\ esp. on large graphs)
+//      if (partialGraph.conf.moreLabelsUnderArea) {
+//        // convert screen => mouse => cam
+//        var mouseCoords = (50,50); // sigma.utils.mouseCoords(e)
+//        var camCoords = partialGraph.cam.cameraPosition(mouseCoords.x, mouseCoords.y)
+//
+//        var exactNodeset = circleGetAreaNodes(camCoords.x,camCoords.y)
+//        // console.log("nodes under circle:", exactNodeset)
+//
+//        // we'll use labelThreshold / 3 as the "boosted" cam:size threshold
+//        var pfx = partialGraph.cam.readPrefix
+//        var toRedraw = []
+//        for (var k in exactNodeset) {
+//          var n = partialGraph.graph.nodes(exactNodeset[k])
+//          if(!n.hidden && n[pfx+'size'] > (partialGraph.customSettings.labelThreshold / 3)) {
+//            toRedraw.push(n)
+//          }
+//        }
+//        redrawNodesInHoverLayer(toRedraw, "hovers")
+//      }
+
+      // draw the circle itself
+      ctx.strokeStyle = '#000';
+      ctx.lineWidth = 1;
+      ctx.fillStyle = "#71C3FF";
+      ctx.globalAlpha = 0.5;
+      ctx.beginPath();
+      ctx.arc(x, y, 30.0, 0, Math.PI * 2, true);
+      //ctx.arc(x, y, partialGraph.gui.circleSize, 0, Math.PI * 2, true);
+      ctx.closePath();
+      ctx.fill();
+      ctx.stroke();
+      ctx.globalAlpha = 1
+
     }
+
 };
 
 exports.sigmaOnMouseMove = function(e) {
     return function() {
       console.log('sigmaOnMouseMove');
       if(typeof(window.sigmaGargInstance) !== "undefined") {
-          if(exports.cursor_size>0) exports.trackMouse();
+          if(exports.cursor_size>0) exports.trackMouse(e);
       }
     };
 };