--- /home/noitulove/PycharmProjects/semantic/web2py/gluon/tools.py
+++ /home/noitulove/PycharmProjects/semantic/web2py/gluon/tools_semantic.py
@@ -1506,6 +1506,15 @@
         keep_session_onlogin=True,
         keep_session_onlogout=False,
         wiki=Settings(),
+        # Default icons
+        login_button_icon='icon-off',
+        register_button_icon='icon-user',
+        lost_password_button_icon='icon-lock',
+        forgot_username_button_icon='icon-edit',
+        change_password_button_icon='icon-lock',
+        profile_buttons_icon='user',
+        logout_button_icon='icon-off',
+        default_scafolding='bootstrap3'
     )
         # ## these are messages that can be customized
     default_messages = dict(
@@ -1991,14 +2000,14 @@
             logout_next = self.settings.logout_next
             items.append({'name': T('Log Out'),
                           'href': '%s/logout?_next=%s' % (action, urllib.quote(logout_next)),
-                          'icon': 'icon-off'})
+                          'icon': self.settings.logout_button_icon})
             if 'profile' not in self.settings.actions_disabled:
                 items.append({'name': T('Profile'), 'href': href('profile'),
-                              'icon': 'icon-user'})
+                              'icon': self.settings.profile_buttons_icon})
             if 'change_password' not in self.settings.actions_disabled:
                 items.append({'name': T('Password'),
                               'href': href('change_password'),
-                              'icon': 'icon-lock'})
+                              'icon': self.settings.change_password_button_icon})
 
             if user_identifier is DEFAULT:
                 user_identifier = '%(first_name)s'
@@ -2012,19 +2021,19 @@
                 user_identifier = ''
         else:  # User is not logged in
             items.append({'name': T('Log In'), 'href': href('login'),
-                          'icon': 'icon-off'})
+                          'icon': self.settings.login_button_icon})
             if 'register' not in self.settings.actions_disabled:
                 items.append({'name': T('Sign Up'), 'href': href('register'),
-                              'icon': 'icon-user'})
+                              'icon': self.settings.register_button_icon})
             if 'request_reset_password' not in self.settings.actions_disabled:
                 items.append({'name': T('Lost password?'),
                               'href': href('request_reset_password'),
-                              'icon': 'icon-lock'})
+                              'icon': self.settings.lost_password_button_icon})
             if (self.settings.use_username and not
                     'retrieve_username' in self.settings.actions_disabled):
                 items.append({'name': T('Forgot username?'),
                               'href': href('retrieve_username'),
-                              'icon': 'icon-edit'})
+                              'icon': self.settings.forgot_username_button_icon})
 
         def menu():  # For inclusion in MENU
             self.bar = [(items[0]['name'], False, items[0]['href'], [])]
@@ -2033,7 +2042,9 @@
                 self.bar[0][3].append((item['name'], False, item['href']))
 
         def bootstrap3():  # Default web2py scaffolding
-            def rename(icon): return icon+' '+icon.replace('icon', 'glyphicon')
+            def rename(icon):
+                return icon+' '+icon.replace('icon', 'glyphicon')
+
             self.bar = UL(LI(Anr(I(_class=rename('icon '+items[0]['icon'])),
                                  ' ' + items[0]['name'],
                                  _href=items[0]['href'])), _class='dropdown-menu')
@@ -2053,6 +2064,22 @@
                                   _href='#', _class="dropdown-toggle",
                                   data={'toggle': 'dropdown'}), self.bar,
                               _class='dropdown')
+
+        def semantic2():  # Semantic scaffolding
+            self.bar = [Anr(I(_class='icon ' + items[0]['icon']),
+                            ' ' + items[0]['name'], _href=items[0]['href'], _class='item')]
+            del items[0]
+            for item in items:
+                self.bar.insert(-1, Anr(I(_class='icon ' + item['icon']),
+                                        ' ' + item['name'],
+                                        _href=item['href'], _class='item'))
+            self.bar.insert(-1, DIV(' ', _class='divider'))
+            if self.user_id:
+                self.bar = CAT(prefix, user_identifier, I(_class='dropdown icon'),
+                               DIV(CAT(self.bar), _class='menu'))
+            else:
+                self.bar = CAT(T('Log In'), I(_class='dropdown icon'),
+                               DIV(I(_class='dropdown icon'), CAT(self.bar), _class='menu'))
 
         def bare():
             """ In order to do advanced customization we only need the
@@ -2132,8 +2159,9 @@
 
             self.bar = bare
 
+        scafolding = {'bootstrap3': bootstrap3, 'semantic2': semantic2}
         options = {'asmenu': menu,
-                   'dropdown': bootstrap3,
+                   'dropdown': scafolding[self.settings.default_scafolding],
                    'bare': bare
                    }  # Define custom modes.
 
