diff --git a/www/index.html b/www/index.html
index 59b00cdad246eb1d24b74031ba4466ccd3b57b00..4b500bcee4650924f5b0ff1d4ce691b5aea936ea 100644
--- a/www/index.html
+++ b/www/index.html
@@ -59,9 +59,8 @@
         ng-class="{'nobackdrop': $root.tour, 'expert-mode': $root.settings.expertMode, 'demo': $root.config.demo && !$root.config.readonly, 'readonly': $root.config.readonly}"
         style="background-color: #1a237e;">
     <ion-nav-view>
-      <div class="loader">
-        <h3 style="text-align: center; padding-top: 25px; color: whitesmoke;"><b>Cesium</b></h3>
-        <h4 style="text-align: center; color: whitesmoke;"><i class="icon ion-load-a"></i></h4>
+      <div class="loader center">
+        <div class="logo"></div>
       </div>
     </ion-nav-view>
 
diff --git a/www/js/controllers/app-controllers.js b/www/js/controllers/app-controllers.js
index 87508125545f1ba216396cac2ebb1ccc88a1f638..2b4464c7e9d53971890e46b7cb4a1258bb417b2f 100644
--- a/www/js/controllers/app-controllers.js
+++ b/www/js/controllers/app-controllers.js
@@ -204,8 +204,8 @@ function AppController($scope, $rootScope, $state, $ionicSideMenuDelegate, $q, $
       if (csConfig.httpsMode && $window.location && $window.location.protocol !== 'https:') {
         var href = $window.location.href;
         var hashIndex = href.indexOf('#');
-        var rootPath = (hashIndex != -1) ? href.substr(0, hashIndex) : href;
-        rootPath = 'https' + rootPath.substr(4);
+        var rootPath = (hashIndex !== -1) ? href.substring(0, hashIndex) : href;
+        rootPath = 'https' + rootPath.substring(4);
         href = rootPath + $state.href(state);
         if (csConfig.httpsModeDebug) {
           // Debug mode: just log, then continue
@@ -569,19 +569,41 @@ function AppController($scope, $rootScope, $state, $ionicSideMenuDelegate, $q, $
     var skip = $scope.fullscreen || !UIUtils.screen.isSmall() || !Device.isWeb();
     if (skip) return;
 
+    // Already ask
+    if (csSettings.data.useFullscreen === false) {
+      $scope.toggleFullscreen(false);
+      return;
+    }
+
+    // User already say 'yes' => need o ask again (chrome will avoid changed if no gesture has been done)
+    //if (csSettings.data.useFullscreen === true) {
+    //  $scope.toggleFullscreen(true);
+    //  return;
+    //}
+
     return UIUtils.alert.confirm('CONFIRM.FULLSCREEN', undefined, {
       cancelText: 'COMMON.BTN_NO',
       okText: 'COMMON.BTN_YES'
     })
       .then(function(confirm) {
-        if (!confirm) return;
-        $scope.toggleFullscreen();
+        $scope.toggleFullscreen(confirm);
       });
   };
 
-  $scope.toggleFullscreen = function() {
-    $scope.fullscreen = !UIUtils.screen.fullscreen.isEnabled();
-    UIUtils.screen.fullscreen.toggleAll();
+  $scope.toggleFullscreen = function(enable, options) {
+    enable = angular.isDefined(enable) ? enable : !UIUtils.screen.fullscreen.isEnabled();
+
+    $scope.fullscreen = enable;
+
+    if (enable !== UIUtils.screen.fullscreen.isEnabled()) {
+      UIUtils.screen.fullscreen.toggleAll();
+    }
+
+    // Save into settings
+    if ((csSettings.data.useFullscreen !== enable) && (!options || options.emitEvent !== false)) {
+      csSettings.data.useFullscreen = enable;
+      return $timeout(csSettings.store, 2000);
+    }
   };
 
   // removeIf(no-device)
diff --git a/www/js/controllers/home-controllers.js b/www/js/controllers/home-controllers.js
index be727b9fda90a460afa4f2a622ce0a047a914320..46cb297ab39116f96e0000c4fdf3a50e8486dd35 100644
--- a/www/js/controllers/home-controllers.js
+++ b/www/js/controllers/home-controllers.js
@@ -7,7 +7,7 @@ angular.module('cesium.home.controllers', ['cesium.platform', 'cesium.services']
 
 
       .state('app.home', {
-        url: "/home?error&uri",
+        url: "/home?error&uri&login",
         views: {
           'menuContent': {
             templateUrl: "templates/home/home.html",
@@ -25,7 +25,7 @@ angular.module('cesium.home.controllers', ['cesium.platform', 'cesium.services']
 ;
 
 function HomeController($scope, $state, $timeout, $interval, $ionicHistory, $translate, $http, $q, $location,
-                        UIUtils, BMA, Device, csConfig, csHttp, csCache, csPlatform, csNetwork, csCurrency, csSettings) {
+                        UIUtils, BMA, Device, csConfig, csHttp, csCache, csPlatform, csNetwork, csCurrency, csSettings, csWallet) {
   'ngInject';
 
   $scope.loading = true;
@@ -45,7 +45,6 @@ function HomeController($scope, $state, $timeout, $interval, $ionicHistory, $tra
     }
 
     if (state && state.stateParams && state.stateParams.uri) {
-
       return $scope.handleUri(state.stateParams.uri)
         .then(function() {
           $scope.loading = false;
@@ -56,6 +55,7 @@ function HomeController($scope, $state, $timeout, $interval, $ionicHistory, $tra
       $scope.node = csCurrency.data.node;
       $scope.loading = false;
       $scope.cleanLocationHref(state);
+      return $q.when();
     }
     else {
 
@@ -77,8 +77,10 @@ function HomeController($scope, $state, $timeout, $interval, $ionicHistory, $tra
         $scope.$broadcast('$$rebind::loading'); // force rebind loading
       }, 200);
 
+      var hasLoginParam = state && state.stateParams && state.stateParams.login || false;
+
       // Wait platform to be ready
-      csPlatform.ready()
+      return csPlatform.ready()
         .catch(function(err) {
           $scope.node =  csCurrency.data.node;
           $scope.error = err;
@@ -91,6 +93,14 @@ function HomeController($scope, $state, $timeout, $interval, $ionicHistory, $tra
           $scope.loadingMessage = '';
           $scope.loadingPct = 100;
           $scope.$broadcast('$$rebind::loading'); // force rebind loading
+          $scope.$broadcast('$$rebind::feed'); // force rebind feed
+
+          // Open the login modal
+          if (hasLoginParam && !csWallet.isLogin() && !$scope.error) {
+            $scope.cleanLocationHref(state);
+
+            return csWallet.login();
+          }
         });
     }
   };
@@ -126,8 +136,11 @@ function HomeController($scope, $state, $timeout, $interval, $ionicHistory, $tra
   };
 
   $scope.toggleFeed = function(show) {
+
     $scope.showFeed = (show !== undefined) ? show : !$scope.showFeed;
-    $scope.$broadcast('$$rebind::feed'); // force rebind feed
+    if (!this.loading) {
+      $scope.$broadcast('$$rebind::feed'); // force rebind feed
+    }
   };
 
   /* -- show/hide locales popup -- */
@@ -152,10 +165,13 @@ function HomeController($scope, $state, $timeout, $interval, $ionicHistory, $tra
 
   // remove '?uri&error' from the location URI, and inside history
   $scope.cleanLocationHref = function(state) {
+    state = state || {stateName: 'app.home'};
+    state.stateParams = state.stateParams || {};
     if (state && state.stateParams) {
       var stateParams = angular.copy(state.stateParams);
       delete stateParams.uri;
       delete stateParams.error;
+      delete stateParams.login;
 
       $location.search(stateParams).replace();
 
@@ -167,7 +183,7 @@ function HomeController($scope, $state, $timeout, $interval, $ionicHistory, $tra
       });
       return $state.go(state.stateName, stateParams, {
           reload: false,
-          inherit: true,
+          inherit: false,
           notify: false
         });
     }
diff --git a/www/js/controllers/login-controllers.js b/www/js/controllers/login-controllers.js
index 47b0e1cbc1fb44633f2b795e24268151acf0666e..f921716f1c8124c5628a0c654a7fc22a93821f0f 100644
--- a/www/js/controllers/login-controllers.js
+++ b/www/js/controllers/login-controllers.js
@@ -1,24 +1,6 @@
 
 angular.module('cesium.login.controllers', ['cesium.services'])
 
-  .config(function($stateProvider) {
-    'ngInject';
-
-    $stateProvider
-      .state('app.login', {
-        url: "/login",
-        views: {
-          'menuContent': {
-            templateUrl: "templates/home/home.html",
-            controller: 'LoginCtrl'
-          }
-        }
-      })
-    ;
-  })
-
-  .controller('LoginCtrl', LoginController)
-
   .controller('LoginModalCtrl', LoginModalController)
 
   .controller('AuthCtrl', AuthController)
@@ -26,23 +8,6 @@ angular.module('cesium.login.controllers', ['cesium.services'])
 ;
 
 
-function LoginController($scope, $timeout, $controller, csWallet) {
-  'ngInject';
-
-  // Initialize the super class and extend it.
-  angular.extend(this, $controller('HomeCtrl', {$scope: $scope}));
-
-  $scope.showLoginModal = function() {
-    if ($scope.loading) return $timeout($scope.showLoginModal, 500); // recursive call
-
-    if (!csWallet.isLogin() && !$scope.error) {
-      return $timeout(csWallet.login, 300);
-    }
-  };
-  $scope.$on('$ionicView.enter', $scope.showLoginModal);
-
-}
-
 function LoginModalController($scope, $timeout, $q, $ionicPopover, $window, CryptoUtils, csCrypto, ionicReady,
                               UIUtils, BMA, Modals, csConfig, csSettings, Device, parameters) {
   'ngInject';
diff --git a/www/js/controllers/transfer-controllers.js b/www/js/controllers/transfer-controllers.js
index 03d370e771c66b843269ccaf04e9f52df19e01f0..dd774d50d2ab399949492105f3d86ff91a3b37b2 100644
--- a/www/js/controllers/transfer-controllers.js
+++ b/www/js/controllers/transfer-controllers.js
@@ -129,7 +129,7 @@ function TransferModalController($scope, $q, $translate, $timeout, $filter, $foc
       $scope.destPub = parameters.pubkey;
     }
     if (parameters.amount) {
-      var amount = Number(parameters.amount)
+      var amount = Number(parameters.amount);
       // Trunc at 2 decimals
       $scope.formData.amount = !isNaN(amount) ? Math.trunc(parseFloat(parameters.amount) * 100) / 100 : null;
       $scope.formData.useRelative=false;
diff --git a/www/js/controllers/wot-controllers.js b/www/js/controllers/wot-controllers.js
index 6336b6df7878adf2a9dc3aa600475a8561a73fad..3c9e50f137a361bf84c32740b47bd3d0f811466c 100644
--- a/www/js/controllers/wot-controllers.js
+++ b/www/js/controllers/wot-controllers.js
@@ -1118,7 +1118,8 @@ function WotIdentityViewController($scope, $rootScope, $controller, $timeout, $s
       }
 
       $scope.removeActionParamInLocationHref(state);
-    }
+    };
+
     var onLoadSuccess = function() {
       $scope.doMotion();
 
diff --git a/www/js/services/settings-services.js b/www/js/services/settings-services.js
index ff47d939a413b90c8c20428de44ed8bcce39b9e6..988ea9686e16537ee43eda56411104c144d8b01b 100644
--- a/www/js/services/settings-services.js
+++ b/www/js/services/settings-services.js
@@ -93,6 +93,7 @@ angular.module('cesium.settings.services', ['ngApi', 'cesium.config'])
     useRelative: false,
     useLocalStorage: !!$window.localStorage, // Overwritten to false if not a device
     useLocalStorageEncryption: false,
+    useFullscreen: null,
     persistCache: false, // disable by default (waiting resolution of issue #885)
     walletHistoryTimeSecond: 30 * 24 * 60 * 60, // 30 days
     walletHistorySliceSecond: 5 * 24 * 60 * 60, // download using 5 days slice - need for cache
diff --git a/www/templates/home/home.html b/www/templates/home/home.html
index 26cd84200e2265d06801c65db83aaadcefb203bf..5bdc95c172d3474a0476885172c1f04eca23b221 100644
--- a/www/templates/home/home.html
+++ b/www/templates/home/home.html
@@ -1,4 +1,4 @@
-<ion-view id="home" bind-notifier="{locale:$root.settings.locale.id, feed: showFeed, loading: loading}">
+<ion-view id="home" bind-notifier="{locale:$root.settings.locale.id, loading: loading}">
   <!-- no title -->
   <ion-nav-title></ion-nav-title>
 
diff --git a/www/templates/menu.html b/www/templates/menu.html
index 9af34b7a3d4212ae655dcffb3aff2e77830c455e..141aa8da8880b5ab298a59958525ad62e212700e 100644
--- a/www/templates/menu.html
+++ b/www/templates/menu.html
@@ -68,7 +68,8 @@
 
       <div class="visible-sm visible-xs hero">
         <div class="content">
-          <i class="avatar avatar-member hero-icon" ng-if="!walletData.avatar" ng-class="{'royal-bg': login, 'stable-bg': !login}" ng-click="!login ? showHome() : loginAndGo()" menu-close></i>
+          <i class="avatar avatar-member hero-icon" ng-if="!walletData.avatar" ng-class="{'royal-bg': login, 'stable-bg': !login}"
+             ng-click="loginAndGo()" menu-close></i>
           <a class="avatar hero-icon" ng-if="walletData.avatar" style="background-image: url('{{walletData.avatar.src}}')" ui-sref="app.view_wallet" menu-close></a>
           <h4 ng-if="login">
             <a class="light" ui-sref="app.view_wallet" menu-close>
@@ -77,8 +78,7 @@
             </a>
           </h4>
           <h4 ng-if="!login">
-            <a class="light" ui-sref="app.login"
-               menu-close>
+            <a class="light" ng-click="loginAndGo()" menu-close>
               {{'COMMON.BTN_LOGIN'|translate}}
               <i class="ion-arrow-right-b"></i>
             </a>