diff --git a/devel_php_ace.admin.inc b/devel_php_ace.admin.inc
new file mode 100644
index 0000000..4928a3d
--- /dev/null
+++ b/devel_php_ace.admin.inc
@@ -0,0 +1,42 @@
+<?php
+
+function devel_php_ace_admin_settings($form, &$form_state) {
+  $form['devel_php_ace_theme'] = array(
+    '#title' => 'Theme',
+    '#type' => 'select',
+    '#description' => 'You can check the availables themes <a href="'.
+      'http://ace.c9.io/build/kitchen-sink.html" target="_blank">here.</a>',
+    '#options' => devel_php_ace_get_themes(),
+    '#default_value' => variable_get('devel_php_ace_theme', 'twilight'),
+  );
+
+  $form['devel_php_ace_src'] = array(
+    '#title' => 'Source path',
+    '#type' => 'select',
+    '#description' => '',
+    '#options' => array(
+      'src' => 'concatenated but not minified',
+      'src-min' => 'concatenated and minified with uglify.js',
+      'src-noconflict' => 'uses ace.require instead of require',
+      'src-min-noconflict' => 'uses ace.require instead of require and minifed',
+    ),
+    '#default_value' => variable_get('devel_php_ace_src', 'src-min-noconflict'),
+  );
+
+  return system_settings_form($form);
+}
+
+function devel_php_ace_get_themes() {
+  $library_path = libraries_get_path('ace') . '/src';
+  $files = array_keys(file_scan_directory($library_path, '/^theme-.*\.js$/i', array('key' => 'name')));
+  $themes = array();
+
+  foreach ($files as $filename) {
+    $theme = explode('theme-', $filename);
+    $themes[] = $theme[1];
+  };
+
+  asort($themes);
+
+  return array_combine($themes, $themes);
+}
diff --git a/devel_php_ace.info b/devel_php_ace.info
index 72ae5b3..923ce96 100644
--- a/devel_php_ace.info
+++ b/devel_php_ace.info
@@ -2,5 +2,7 @@ name = Devel PHP ACE Editor
 description = Adds ACE Editor to Execute PHP forms.
 package = Development
 core = 7.x
+configure = admin/config/development/devel_php_ace
 
+dependencies[] = devel
 dependencies[] = libraries
diff --git a/devel_php_ace.install b/devel_php_ace.install
new file mode 100644
index 0000000..fe42480
--- /dev/null
+++ b/devel_php_ace.install
@@ -0,0 +1,13 @@
+<?php
+/**
+ * @file
+ * Installation and uninstallation functions.
+ */
+
+/**
+ * Implements hook_uninstall().
+ */
+function devel_php_ace_uninstall() {
+  variable_del('devel_php_ace_theme');
+  variable_del('devel_php_ace_src');
+}
diff --git a/devel_php_ace.module b/devel_php_ace.module
index 52868d2..e87806b 100644
--- a/devel_php_ace.module
+++ b/devel_php_ace.module
@@ -8,6 +8,8 @@
  * Implements hook_libraries_info().
  */
 function devel_php_ace_libraries_info() {
+  $src = variable_get('devel_php_ace_src', 'src-min-noconflict');
+
   $libraries['ace'] = array(
     'title' => 'Ace Editor',
     'vendor url' => 'http://ace.c9.io/',
@@ -19,7 +21,7 @@ function devel_php_ace_libraries_info() {
     ),
     'files' => array(
       'js' => array(
-        'src/ace.js',
+        $src . '/ace.js',
       ),
     ),
   );
@@ -34,10 +36,34 @@ function devel_php_ace_form_alter(&$form, &$form_state, $form_id) {
   switch ($form_id) {
     case 'devel_execute_block_form':
     case 'devel_execute_form':
+      $settings = array(
+        'data' => array(
+          'develPHPAce' => array('theme' => variable_get('devel_php_ace_theme', 'twilight')),
+        ),
+        'type' => 'setting',
+      );
       $form['execute']['code']['#attached']['libraries_load'][] = array('ace');
+      $form['execute']['code']['#attached']['js'][] = $settings;
       $form['execute']['code']['#attached']['js'][] = drupal_get_path('module', 'devel_php_ace') . '/js/devel_php_ace.js';
       $form['execute']['code']['#attached']['css'][] = drupal_get_path('module', 'devel_php_ace') . '/css/devel_php_ace.css';
       $form['execute']['code']['#attributes']['class'][] = 'ace-enabled';
+      $form['execute']['code']['#resizable'] = FALSE;
       break;
   }
 }
+
+/**
+ * Implements hook_menu().
+ */
+function devel_php_ace_menu() {
+  $items['admin/config/development/devel_php_ace'] = array(
+    'title' => 'Devel PHP ACE Editor settings',
+    'description' => 'ACE Editor settings.',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('devel_php_ace_admin_settings'),
+    'file' => 'devel_php_ace.admin.inc',
+    'access arguments' => array('administer site configuration'),
+  );
+
+  return $items;
+}
diff --git a/js/devel_php_ace.js b/js/devel_php_ace.js
index 1e86b50..e8545bc 100644
--- a/js/devel_php_ace.js
+++ b/js/devel_php_ace.js
@@ -1,18 +1,21 @@
 (function($) {
-  Drupal.behaviors.php_ace = {
+  Drupal.behaviors.develPHPAce = {
     attach: function(context, settings) {
       $('.ace-enabled').each(function(i) {
         var textarea = $(this);
-        id = textarea.attr('id');
-        textarea.before('<div id="' + id + '-ace"></div>');
-        var editor = ace.edit(id + '-ace');
-        editor.getSession().setMode({path:"ace/mode/php", inline:true})
-        editor.getSession().setValue(textarea.val());
-        editor.getSession().on('change', function(){
-          textarea.val(editor.getSession().getValue());
+        id = textarea.attr('id') + '-ace';
+        textarea.before('<div id="' + id + '"></div>');
+        var editor = ace.edit(id);
+        if (theme = settings.develPHPAce.theme) {
+          editor.setTheme("ace/theme/" + theme + "");
+        }
+        editor.session.setMode({path:"ace/mode/php", inline:true});
+        editor.setValue(textarea.val());
+        editor.on('change', function(){
+          textarea.val(editor.getValue());
         });
         textarea.hide();
       });
     }
   };
-})(jQuery);
\ No newline at end of file
+})(jQuery);
