diff --git a/.gitignore b/.gitignore
index fbe259c4..708870ec 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,11 +3,5 @@
!/modules/node_helper
!/modules/node_helper/**
-/modules/*
-!/modules/calendar
-!/modules/clock
-!/modules/compliments
-!/modules/currentweather
-!/modules/helloworld
-!/modules/newsfeed
-!/modules/weatherforecast
+/modules/**
+!/modules/default/**
diff --git a/README.md b/README.md
index e952ca02..3df3738a 100644
--- a/README.md
+++ b/README.md
@@ -24,13 +24,13 @@ Things that still have to be implemented or changed.
##Modules
### Default modules:
-- [**Clock**](modules/clock)
-- [**Calendar**](modules/calendar)
-- [**Current Weather**](modules/currentweather)
-- [**Weather Forecast**](modules/weatherforecast)
-- [**News Feed**](modules/newsfeed)
-- [**Compliments**](modules/compliments)
-- [**Hello World**](modules/helloworld)
+- [**Clock**](modules/default/clock)
+- [**Calendar**](modules/default/calendar)
+- [**Current Weather**](modules/default/currentweather)
+- [**Weather Forecast**](modules/default/weatherforecast)
+- [**News Feed**](modules/default/newsfeed)
+- [**Compliments**](modules/default/compliments)
+- [**Hello World**](modules/default/helloworld)
### 3rd Party Modules:
diff --git a/index.html b/index.html
index 70b73040..18eb65e9 100644
--- a/index.html
+++ b/index.html
@@ -31,6 +31,7 @@
+
diff --git a/js/electron.js b/js/electron.js
index fc05c10e..74192f6c 100755
--- a/js/electron.js
+++ b/js/electron.js
@@ -6,7 +6,7 @@ const fs = require('fs');
const Server = require(__dirname + '/server.js');
const spawn = require('child_process').spawn;
const electron = require('electron');
-
+const defaultModules = require(__dirname + '/../modules/default/defaultmodules.js');
// Config
var config = {};
@@ -56,8 +56,18 @@ function loadConfig (callback) {
}
}
-function loadModule(moduleName) {
- var helperPath = __dirname + '/../modules/' + moduleName + '/node_helper.js';
+function loadModule(module) {
+
+ var elements = module.split('/');
+ var moduleName = elements[elements.length - 1];
+ var moduleFolder = __dirname + '/../modules/' + module;
+
+ if (defaultModules.indexOf(moduleName) !== -1) {
+ moduleFolder = __dirname + '/../modules/default/' + module;
+ }
+
+ var helperPath = moduleFolder + '/node_helper.js';
+
var loadModule = true;
try {
fs.accessSync(helperPath, fs.R_OK);
diff --git a/js/loader.js b/js/loader.js
index a35c013c..0c6f661c 100644
--- a/js/loader.js
+++ b/js/loader.js
@@ -79,12 +79,20 @@ var Loader = (function() {
var moduleData = modules[m];
var module = moduleData.module;
+ var elements = module.split('/');
+ var moduleName = elements[elements.length - 1];
+ var moduleFolder = config.paths.modules + '/' + module;
+
+ if (defaultModules.indexOf(moduleName) !== -1) {
+ moduleFolder = config.paths.modules + '/default/' + module;
+ }
+
moduleFiles.push({
index: m,
identifier: 'module_' + m + '_' + module,
- name: module,
- path: config.paths.modules + '/' + module,
- file: module + '.js',
+ name: moduleName,
+ path: moduleFolder + '/' ,
+ file: moduleName + '.js',
position: moduleData.position,
header: moduleData.header,
config: moduleData.config,
diff --git a/modules/calendar/README.md b/modules/default/calendar/README.md
similarity index 100%
rename from modules/calendar/README.md
rename to modules/default/calendar/README.md
diff --git a/modules/calendar/calendar.css b/modules/default/calendar/calendar.css
similarity index 100%
rename from modules/calendar/calendar.css
rename to modules/default/calendar/calendar.css
diff --git a/modules/calendar/calendar.js b/modules/default/calendar/calendar.js
similarity index 100%
rename from modules/calendar/calendar.js
rename to modules/default/calendar/calendar.js
diff --git a/modules/calendar/node_helper.js b/modules/default/calendar/node_helper.js
similarity index 100%
rename from modules/calendar/node_helper.js
rename to modules/default/calendar/node_helper.js
diff --git a/modules/clock/README.md b/modules/default/clock/README.md
similarity index 100%
rename from modules/clock/README.md
rename to modules/default/clock/README.md
diff --git a/modules/clock/clock.js b/modules/default/clock/clock.js
similarity index 100%
rename from modules/clock/clock.js
rename to modules/default/clock/clock.js
diff --git a/modules/compliments/README.md b/modules/default/compliments/README.md
similarity index 100%
rename from modules/compliments/README.md
rename to modules/default/compliments/README.md
diff --git a/modules/compliments/compliments.js b/modules/default/compliments/compliments.js
similarity index 100%
rename from modules/compliments/compliments.js
rename to modules/default/compliments/compliments.js
diff --git a/modules/currentweather/README.md b/modules/default/currentweather/README.md
similarity index 100%
rename from modules/currentweather/README.md
rename to modules/default/currentweather/README.md
diff --git a/modules/currentweather/currentweather.css b/modules/default/currentweather/currentweather.css
similarity index 100%
rename from modules/currentweather/currentweather.css
rename to modules/default/currentweather/currentweather.css
diff --git a/modules/currentweather/currentweather.js b/modules/default/currentweather/currentweather.js
similarity index 100%
rename from modules/currentweather/currentweather.js
rename to modules/default/currentweather/currentweather.js
diff --git a/modules/default/defaultmodules.js b/modules/default/defaultmodules.js
new file mode 100644
index 00000000..a6b81c88
--- /dev/null
+++ b/modules/default/defaultmodules.js
@@ -0,0 +1,22 @@
+/* Magic Mirror
+ * Default Modules List
+ *
+ * By Michael Teeuw http://michaelteeuw.nl
+ * MIT Licensed.
+ */
+
+// Modules listed below can be loaded without the 'default/' prefix. Omitting the default folder name.
+
+var defaultModules = [
+ 'calendar',
+ 'clock',
+ 'compliments',
+ 'currentweather',
+ 'helloworld',
+ 'newsfeed',
+ 'weatherforecast'
+];
+
+
+/*************** DO NOT EDIT THE LINE BELOW ***************/
+if (typeof module !== 'undefined') {module.exports = defaultModules;}
\ No newline at end of file
diff --git a/modules/helloworld/README.md b/modules/default/helloworld/README.md
similarity index 100%
rename from modules/helloworld/README.md
rename to modules/default/helloworld/README.md
diff --git a/modules/helloworld/helloworld.js b/modules/default/helloworld/helloworld.js
similarity index 100%
rename from modules/helloworld/helloworld.js
rename to modules/default/helloworld/helloworld.js
diff --git a/modules/newsfeed/README.md b/modules/default/newsfeed/README.md
similarity index 100%
rename from modules/newsfeed/README.md
rename to modules/default/newsfeed/README.md
diff --git a/modules/newsfeed/fetcher.js b/modules/default/newsfeed/fetcher.js
similarity index 100%
rename from modules/newsfeed/fetcher.js
rename to modules/default/newsfeed/fetcher.js
diff --git a/modules/newsfeed/newsfeed.js b/modules/default/newsfeed/newsfeed.js
similarity index 100%
rename from modules/newsfeed/newsfeed.js
rename to modules/default/newsfeed/newsfeed.js
diff --git a/modules/newsfeed/newsfetcher.js b/modules/default/newsfeed/newsfetcher.js
similarity index 100%
rename from modules/newsfeed/newsfetcher.js
rename to modules/default/newsfeed/newsfetcher.js
diff --git a/modules/newsfeed/node_helper.js b/modules/default/newsfeed/node_helper.js
similarity index 100%
rename from modules/newsfeed/node_helper.js
rename to modules/default/newsfeed/node_helper.js
diff --git a/modules/weatherforecast/README.md b/modules/default/weatherforecast/README.md
similarity index 100%
rename from modules/weatherforecast/README.md
rename to modules/default/weatherforecast/README.md
diff --git a/modules/weatherforecast/weatherforecast.css b/modules/default/weatherforecast/weatherforecast.css
similarity index 100%
rename from modules/weatherforecast/weatherforecast.css
rename to modules/default/weatherforecast/weatherforecast.css
diff --git a/modules/weatherforecast/weatherforecast.js b/modules/default/weatherforecast/weatherforecast.js
similarity index 100%
rename from modules/weatherforecast/weatherforecast.js
rename to modules/default/weatherforecast/weatherforecast.js