       log.setLevel('DEBUG')
     packageVersion = atom.packages.getLoadedPackage('wakatime').metadata.version
     log.debug 'Initializing WakaTime v' + packageVersion + '...'
+    requestIdleCallback @delayedActivate, {timeout: 10000}
+
+  delayedActivate: ->
+    loadDependencies()
     setupConfigs()
     @settingChangedObserver = atom.config.observe 'wakatime', settingChangedHandler
-
-    isPythonInstalled((installed) ->
-      if not installed
-        if os.type() is 'Windows_NT'
-          installPython(checkCLI)
-        else
-          window.alert('Please install Python (https://www.python.org/downloads/) and restart Atom to enable the WakaTime plugin.')
-      else
-        checkCLI()
-    )
+    checkPython()
 
   consumeStatusBar: (statusBar) ->
     statusBarIcon = new StatusBarTileView()

Website:     https://wakatime.com/
###

# package-global attributes
log = null
packageVersion = null

getUserHome = ->
  process.env[if process.platform == 'win32' then 'USERPROFILE' else 'HOME'] || ''

loadDependencies = ->
  AdmZip = require 'adm-zip'
  fs = require 'fs'
  os = require 'os'
  path = require 'path'
  child_process = require 'child_process'
  request = require 'request'
  rimraf = require 'rimraf'
  ini = require 'ini'

setupConfigs = ->
  configFile = path.join getUserHome(), '.wakatime.cfg'
  fs.readFile configFile, 'utf-8', (err, configContent) ->
