diff --git a/common/advanced_config.cpp b/common/advanced_config.cpp
index 1ff3702024..c58fb653e7 100644
--- a/common/advanced_config.cpp
+++ b/common/advanced_config.cpp
@@ -101,6 +101,7 @@ static const wxChar UseClipper2[] = wxT( "UseClipper2" );
 static const wxChar EnableGenerators[] = wxT( "EnableGenerators" );
 static const wxChar EnableGit[] = wxT( "EnableGit" );
 static const wxChar EnableLibWithText[] = wxT( "EnableLibWithText" );
+static const wxChar EnableLibDir[] = wxT( "EnableLibDir" );
 static const wxChar EnableEeschemaPrintCairo[] = wxT( "EnableEeschemaPrintCairo" );
 static const wxChar DisambiguationTime[] = wxT( "DisambiguationTime" );
 static const wxChar PcbSelectionVisibilityRatio[] = wxT( "PcbSelectionVisibilityRatio" );
@@ -241,6 +242,7 @@ ADVANCED_CFG::ADVANCED_CFG()
     m_EnableGenerators          = false;
     m_EnableGit                 = false;
     m_EnableLibWithText         = false;
+    m_EnableLibDir              = false;
 
     m_EnableEeschemaPrintCairo  = true;
 
@@ -464,6 +466,9 @@ void ADVANCED_CFG::loadSettings( wxConfigBase& aCfg )
     configParams.push_back( new PARAM_CFG_BOOL( true, AC_KEYS::EnableLibWithText,
                                                 &m_EnableLibWithText, m_EnableLibWithText ) );
 
+    configParams.push_back( new PARAM_CFG_BOOL( true, AC_KEYS::EnableLibDir,
+                                                &m_EnableLibDir, m_EnableLibDir ) );
+
     configParams.push_back( new PARAM_CFG_BOOL( true, AC_KEYS::EnableEeschemaPrintCairo,
                                                 &m_EnableEeschemaPrintCairo,
                                                 m_EnableEeschemaPrintCairo ) );
diff --git a/common/dialogs/panel_common_settings.cpp b/common/dialogs/panel_common_settings.cpp
index 1804cb662c..08a9d3fb45 100644
--- a/common/dialogs/panel_common_settings.cpp
+++ b/common/dialogs/panel_common_settings.cpp
@@ -55,6 +55,8 @@ PANEL_COMMON_SETTINGS::PANEL_COMMON_SETTINGS( wxWindow* aParent )
     m_antialiasingFallbackLabel->Show( false );
 #endif
 
+    ShowFileManagerWidgets( ADVANCED_CFG::GetCfg().m_EnableLibDir );
+
     m_textEditorBtn->SetBitmap( KiBitmapBundle( BITMAPS::small_folder ) );
     m_pdfViewerBtn->SetBitmap( KiBitmapBundle( BITMAPS::small_folder ) );
 
@@ -143,6 +145,8 @@ bool PANEL_COMMON_SETTINGS::TransferDataToWindow()
 
     applySettingsToPanel( *commonSettings );
 
+    m_textCtrlFileManager->SetValue( commonSettings->m_System.file_explorer );
+
     // TODO(JE) Move these into COMMON_SETTINGS probably
     m_textEditorPath->SetValue( Pgm().GetTextEditor( false ) );
     m_defaultPDFViewer->SetValue( Pgm().UseSystemPdfBrowser() );
@@ -158,6 +162,8 @@ bool PANEL_COMMON_SETTINGS::TransferDataFromWindow()
 {
     COMMON_SETTINGS* commonSettings = Pgm().GetCommonSettings();
 
+    commonSettings->m_System.file_explorer = m_textCtrlFileManager->GetValue();
+
     commonSettings->m_System.autosave_interval = m_SaveTime->GetValue() * 60;
     commonSettings->m_System.file_history_size = m_fileHistorySize->GetValue();
     commonSettings->m_System.clear_3d_cache_interval = m_Clear3DCacheFilesOlder->GetValue();
@@ -335,6 +341,28 @@ void PANEL_COMMON_SETTINGS::OnTextEditorClick( wxCommandEvent& event )
 }
 
 
+void PANEL_COMMON_SETTINGS::ShowFileManagerWidgets( bool aBool )
+{
+    m_staticTextFileManager->Show( aBool );
+    m_textCtrlFileManager->Show( aBool );
+
+    if( aBool )
+    {
+#if defined( __WINDOWS__ )
+        wxString msg = _( "Default 'explorer.exe /n,/select,%F' for this OS." );
+        m_textCtrlFileManager->SetToolTip( msg );
+        wxString str = "%F";
+#else
+        wxString msg = _( "File explorer command.\nexample:" ) + wxS( " 'nemo -n %F'" );
+        m_textCtrlFileManager->SetToolTip( msg );
+        wxString str= " %F";
+#endif
+        msg = _( "Explorer command with mandatory '%s' suffix after last entered character." );
+        m_staticTextFileManager->SetToolTip( wxString::Format( msg, str ) );
+    }
+}
+
+
 void PANEL_COMMON_SETTINGS::OnPDFViewerClick( wxCommandEvent& event )
 {
     wxString mask( wxT( "*" ) );
diff --git a/common/dialogs/panel_common_settings_base.cpp b/common/dialogs/panel_common_settings_base.cpp
index f854930828..b94380f7c5 100644
--- a/common/dialogs/panel_common_settings_base.cpp
+++ b/common/dialogs/panel_common_settings_base.cpp
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////
-// C++ code generated with wxFormBuilder (version 4.1.0-0-g733bf3d)
+// C++ code generated with wxFormBuilder (version 4.2.1-0-g80c4cb6)
 // http://www.wxformbuilder.org/
 //
 // PLEASE DO *NOT* EDIT THIS FILE!
@@ -94,6 +94,18 @@ PANEL_COMMON_SETTINGS_BASE::PANEL_COMMON_SETTINGS_BASE( wxWindow* parent, wxWind
 
 	bHelperAppsSizer->Add( bSizer61, 0, wxTOP|wxRIGHT|wxEXPAND, 5 );
 
+	bSizerFileManager = new wxBoxSizer( wxHORIZONTAL );
+
+	m_staticTextFileManager = new wxStaticText( this, wxID_ANY, _("File manager:"), wxDefaultPosition, wxDefaultSize, 0 );
+	m_staticTextFileManager->Wrap( -1 );
+	bSizerFileManager->Add( m_staticTextFileManager, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 5 );
+
+	m_textCtrlFileManager = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
+	bSizerFileManager->Add( m_textCtrlFileManager, 1, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+	bHelperAppsSizer->Add( bSizerFileManager, 0, wxEXPAND|wxRIGHT|wxTOP, 5 );
+
 
 	bHelperAppsSizer->Add( 0, 12, 0, wxEXPAND, 5 );
 
diff --git a/common/dialogs/panel_common_settings_base.fbp b/common/dialogs/panel_common_settings_base.fbp
index 99f4d15009..aaaf2ce789 100644
--- a/common/dialogs/panel_common_settings_base.fbp
+++ b/common/dialogs/panel_common_settings_base.fbp
@@ -1,34 +1,36 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <wxFormBuilder_Project>
-  <FileVersion major="1" minor="17"/>
+  <FileVersion major="1" minor="18"/>
   <object class="Project" expanded="true">
-    <property name="class_decoration"></property>
     <property name="code_generation">C++</property>
-    <property name="disconnect_events">1</property>
-    <property name="disconnect_mode">source_name</property>
-    <property name="disconnect_php_events">0</property>
-    <property name="disconnect_python_events">0</property>
+    <property name="cpp_class_decoration"></property>
+    <property name="cpp_disconnect_events">1</property>
+    <property name="cpp_event_generation">connect</property>
+    <property name="cpp_help_provider">none</property>
+    <property name="cpp_namespace"></property>
+    <property name="cpp_precompiled_header"></property>
+    <property name="cpp_use_array_enum">0</property>
+    <property name="cpp_use_enum">1</property>
     <property name="embedded_files_path">res</property>
     <property name="encoding">UTF-8</property>
-    <property name="event_generation">connect</property>
     <property name="file">panel_common_settings_base</property>
     <property name="first_id">1000</property>
-    <property name="help_provider">none</property>
-    <property name="image_path_wrapper_function_name"></property>
-    <property name="indent_with_spaces"></property>
     <property name="internationalize">1</property>
+    <property name="lua_skip_events">1</property>
+    <property name="lua_ui_table">UI</property>
     <property name="name">PanelCommonSettings</property>
-    <property name="namespace"></property>
     <property name="path">.</property>
-    <property name="precompiled_header"></property>
+    <property name="php_disconnect_events">0</property>
+    <property name="php_disconnect_mode">source_name</property>
+    <property name="php_skip_events">1</property>
+    <property name="python_disconnect_events">0</property>
+    <property name="python_disconnect_mode">source_name</property>
+    <property name="python_image_path_wrapper_function_name"></property>
+    <property name="python_indent_with_spaces"></property>
+    <property name="python_skip_events">1</property>
     <property name="relative_path">1</property>
-    <property name="skip_lua_events">1</property>
-    <property name="skip_php_events">1</property>
-    <property name="skip_python_events">1</property>
-    <property name="ui_table">UI</property>
-    <property name="use_array_enum">0</property>
-    <property name="use_enum">1</property>
     <property name="use_microsoft_bom">0</property>
+    <property name="use_native_eol">0</property>
     <object class="Panel" expanded="true">
       <property name="aui_managed">0</property>
       <property name="aui_manager_style">wxAUI_MGR_DEFAULT</property>
@@ -76,10 +78,10 @@
                 <property name="LeftDockable">1</property>
                 <property name="RightDockable">1</property>
                 <property name="TopDockable">1</property>
-                <property name="aui_layer"></property>
+                <property name="aui_layer">0</property>
                 <property name="aui_name"></property>
-                <property name="aui_position"></property>
-                <property name="aui_row"></property>
+                <property name="aui_position">0</property>
+                <property name="aui_row">0</property>
                 <property name="best_size"></property>
                 <property name="bg"></property>
                 <property name="caption"></property>
@@ -138,10 +140,10 @@
                 <property name="LeftDockable">1</property>
                 <property name="RightDockable">1</property>
                 <property name="TopDockable">1</property>
-                <property name="aui_layer"></property>
+                <property name="aui_layer">0</property>
                 <property name="aui_name"></property>
-                <property name="aui_position"></property>
-                <property name="aui_row"></property>
+                <property name="aui_position">0</property>
+                <property name="aui_row">0</property>
                 <property name="best_size"></property>
                 <property name="bg"></property>
                 <property name="caption"></property>
@@ -224,10 +226,10 @@
                         <property name="LeftDockable">1</property>
                         <property name="RightDockable">1</property>
                         <property name="TopDockable">1</property>
-                        <property name="aui_layer"></property>
+                        <property name="aui_layer">0</property>
                         <property name="aui_name"></property>
-                        <property name="aui_position"></property>
-                        <property name="aui_row"></property>
+                        <property name="aui_position">0</property>
+                        <property name="aui_row">0</property>
                         <property name="best_size"></property>
                         <property name="bg"></property>
                         <property name="caption"></property>
@@ -289,10 +291,10 @@
                         <property name="LeftDockable">1</property>
                         <property name="RightDockable">1</property>
                         <property name="TopDockable">1</property>
-                        <property name="aui_layer"></property>
+                        <property name="aui_layer">0</property>
                         <property name="aui_name"></property>
-                        <property name="aui_position"></property>
-                        <property name="aui_row"></property>
+                        <property name="aui_position">0</property>
+                        <property name="aui_row">0</property>
                         <property name="best_size"></property>
                         <property name="bg"></property>
                         <property name="caption"></property>
@@ -357,10 +359,10 @@
                         <property name="LeftDockable">1</property>
                         <property name="RightDockable">1</property>
                         <property name="TopDockable">1</property>
-                        <property name="aui_layer"></property>
+                        <property name="aui_layer">0</property>
                         <property name="aui_name"></property>
-                        <property name="aui_position"></property>
-                        <property name="aui_row"></property>
+                        <property name="aui_position">0</property>
+                        <property name="aui_row">0</property>
                         <property name="best_size"></property>
                         <property name="bg"></property>
                         <property name="caption"></property>
@@ -422,10 +424,10 @@
                         <property name="LeftDockable">1</property>
                         <property name="RightDockable">1</property>
                         <property name="TopDockable">1</property>
-                        <property name="aui_layer"></property>
+                        <property name="aui_layer">0</property>
                         <property name="aui_name"></property>
-                        <property name="aui_position"></property>
-                        <property name="aui_row"></property>
+                        <property name="aui_position">0</property>
+                        <property name="aui_row">0</property>
                         <property name="best_size"></property>
                         <property name="bg"></property>
                         <property name="caption"></property>
@@ -501,10 +503,10 @@
                 <property name="LeftDockable">1</property>
                 <property name="RightDockable">1</property>
                 <property name="TopDockable">1</property>
-                <property name="aui_layer"></property>
+                <property name="aui_layer">0</property>
                 <property name="aui_name"></property>
-                <property name="aui_position"></property>
-                <property name="aui_row"></property>
+                <property name="aui_position">0</property>
+                <property name="aui_row">0</property>
                 <property name="best_size"></property>
                 <property name="bg"></property>
                 <property name="caption"></property>
@@ -563,10 +565,10 @@
                 <property name="LeftDockable">1</property>
                 <property name="RightDockable">1</property>
                 <property name="TopDockable">1</property>
-                <property name="aui_layer"></property>
+                <property name="aui_layer">0</property>
                 <property name="aui_name"></property>
-                <property name="aui_position"></property>
-                <property name="aui_row"></property>
+                <property name="aui_position">0</property>
+                <property name="aui_row">0</property>
                 <property name="best_size"></property>
                 <property name="bg"></property>
                 <property name="caption"></property>
@@ -640,10 +642,10 @@
                         <property name="LeftDockable">1</property>
                         <property name="RightDockable">1</property>
                         <property name="TopDockable">1</property>
-                        <property name="aui_layer"></property>
+                        <property name="aui_layer">0</property>
                         <property name="aui_name"></property>
-                        <property name="aui_position"></property>
-                        <property name="aui_row"></property>
+                        <property name="aui_position">0</property>
+                        <property name="aui_row">0</property>
                         <property name="best_size"></property>
                         <property name="bg"></property>
                         <property name="caption"></property>
@@ -702,10 +704,10 @@
                         <property name="LeftDockable">1</property>
                         <property name="RightDockable">1</property>
                         <property name="TopDockable">1</property>
-                        <property name="aui_layer"></property>
+                        <property name="aui_layer">0</property>
                         <property name="aui_name"></property>
-                        <property name="aui_position"></property>
-                        <property name="aui_row"></property>
+                        <property name="aui_position">0</property>
+                        <property name="aui_row">0</property>
                         <property name="best_size"></property>
                         <property name="bg"></property>
                         <property name="caption"></property>
@@ -729,7 +731,7 @@
                         <property name="max_size"></property>
                         <property name="maximize_button">0</property>
                         <property name="maximum_size"></property>
-                        <property name="maxlength"></property>
+                        <property name="maxlength">0</property>
                         <property name="min_size"></property>
                         <property name="minimize_button">0</property>
                         <property name="minimum_size">-1,-1</property>
@@ -767,10 +769,10 @@
                         <property name="LeftDockable">1</property>
                         <property name="RightDockable">1</property>
                         <property name="TopDockable">1</property>
-                        <property name="aui_layer"></property>
+                        <property name="aui_layer">0</property>
                         <property name="aui_name"></property>
-                        <property name="aui_position"></property>
-                        <property name="aui_row"></property>
+                        <property name="aui_position">0</property>
+                        <property name="aui_row">0</property>
                         <property name="auth_needed">0</property>
                         <property name="best_size"></property>
                         <property name="bg"></property>
@@ -835,6 +837,144 @@
                     </object>
                   </object>
                 </object>
+                <object class="sizeritem" expanded="true">
+                  <property name="border">5</property>
+                  <property name="flag">wxEXPAND|wxRIGHT|wxTOP</property>
+                  <property name="proportion">0</property>
+                  <object class="wxBoxSizer" expanded="true">
+                    <property name="minimum_size"></property>
+                    <property name="name">bSizerFileManager</property>
+                    <property name="orient">wxHORIZONTAL</property>
+                    <property name="permission">protected</property>
+                    <object class="sizeritem" expanded="true">
+                      <property name="border">5</property>
+                      <property name="flag">wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT</property>
+                      <property name="proportion">0</property>
+                      <object class="wxStaticText" expanded="true">
+                        <property name="BottomDockable">1</property>
+                        <property name="LeftDockable">1</property>
+                        <property name="RightDockable">1</property>
+                        <property name="TopDockable">1</property>
+                        <property name="aui_layer">0</property>
+                        <property name="aui_name"></property>
+                        <property name="aui_position">0</property>
+                        <property name="aui_row">0</property>
+                        <property name="best_size"></property>
+                        <property name="bg"></property>
+                        <property name="caption"></property>
+                        <property name="caption_visible">1</property>
+                        <property name="center_pane">0</property>
+                        <property name="close_button">1</property>
+                        <property name="context_help"></property>
+                        <property name="context_menu">1</property>
+                        <property name="default_pane">0</property>
+                        <property name="dock">Dock</property>
+                        <property name="dock_fixed">0</property>
+                        <property name="docking">Left</property>
+                        <property name="drag_accept_files">0</property>
+                        <property name="enabled">1</property>
+                        <property name="fg"></property>
+                        <property name="floatable">1</property>
+                        <property name="font"></property>
+                        <property name="gripper">0</property>
+                        <property name="hidden">0</property>
+                        <property name="id">wxID_ANY</property>
+                        <property name="label">File manager:</property>
+                        <property name="markup">0</property>
+                        <property name="max_size"></property>
+                        <property name="maximize_button">0</property>
+                        <property name="maximum_size"></property>
+                        <property name="min_size"></property>
+                        <property name="minimize_button">0</property>
+                        <property name="minimum_size"></property>
+                        <property name="moveable">1</property>
+                        <property name="name">m_staticTextFileManager</property>
+                        <property name="pane_border">1</property>
+                        <property name="pane_position"></property>
+                        <property name="pane_size"></property>
+                        <property name="permission">protected</property>
+                        <property name="pin_button">1</property>
+                        <property name="pos"></property>
+                        <property name="resize">Resizable</property>
+                        <property name="show">1</property>
+                        <property name="size"></property>
+                        <property name="style"></property>
+                        <property name="subclass">; ; forward_declare</property>
+                        <property name="toolbar_pane">0</property>
+                        <property name="tooltip"></property>
+                        <property name="window_extra_style"></property>
+                        <property name="window_name"></property>
+                        <property name="window_style"></property>
+                        <property name="wrap">-1</property>
+                      </object>
+                    </object>
+                    <object class="sizeritem" expanded="true">
+                      <property name="border">5</property>
+                      <property name="flag">wxALIGN_CENTER_VERTICAL</property>
+                      <property name="proportion">1</property>
+                      <object class="wxTextCtrl" expanded="true">
+                        <property name="BottomDockable">1</property>
+                        <property name="LeftDockable">1</property>
+                        <property name="RightDockable">1</property>
+                        <property name="TopDockable">1</property>
+                        <property name="aui_layer">0</property>
+                        <property name="aui_name"></property>
+                        <property name="aui_position">0</property>
+                        <property name="aui_row">0</property>
+                        <property name="best_size"></property>
+                        <property name="bg"></property>
+                        <property name="caption"></property>
+                        <property name="caption_visible">1</property>
+                        <property name="center_pane">0</property>
+                        <property name="close_button">1</property>
+                        <property name="context_help"></property>
+                        <property name="context_menu">1</property>
+                        <property name="default_pane">0</property>
+                        <property name="dock">Dock</property>
+                        <property name="dock_fixed">0</property>
+                        <property name="docking">Left</property>
+                        <property name="drag_accept_files">0</property>
+                        <property name="enabled">1</property>
+                        <property name="fg"></property>
+                        <property name="floatable">1</property>
+                        <property name="font"></property>
+                        <property name="gripper">0</property>
+                        <property name="hidden">0</property>
+                        <property name="id">wxID_ANY</property>
+                        <property name="max_size"></property>
+                        <property name="maximize_button">0</property>
+                        <property name="maximum_size"></property>
+                        <property name="maxlength">0</property>
+                        <property name="min_size"></property>
+                        <property name="minimize_button">0</property>
+                        <property name="minimum_size"></property>
+                        <property name="moveable">1</property>
+                        <property name="name">m_textCtrlFileManager</property>
+                        <property name="pane_border">1</property>
+                        <property name="pane_position"></property>
+                        <property name="pane_size"></property>
+                        <property name="permission">protected</property>
+                        <property name="pin_button">1</property>
+                        <property name="pos"></property>
+                        <property name="resize">Resizable</property>
+                        <property name="show">1</property>
+                        <property name="size"></property>
+                        <property name="style"></property>
+                        <property name="subclass">; ; forward_declare</property>
+                        <property name="toolbar_pane">0</property>
+                        <property name="tooltip"></property>
+                        <property name="validator_data_type"></property>
+                        <property name="validator_style">wxFILTER_NONE</property>
+                        <property name="validator_type">wxDefaultValidator</property>
+                        <property name="validator_variable"></property>
+                        <property name="value"></property>
+                        <property name="window_extra_style"></property>
+                        <property name="window_name"></property>
+                        <property name="window_style"></property>
+                      </object>
+                    </object>
+                  </object>
+                </object>
                 <object class="sizeritem" expanded="false">
                   <property name="border">5</property>
                   <property name="flag">wxEXPAND</property>
@@ -849,7 +989,7 @@
                   <property name="border">3</property>
                   <property name="flag">wxBOTTOM|wxEXPAND</property>
                   <property name="proportion">0</property>
-                  <object class="wxBoxSizer" expanded="true">
+                  <object class="wxBoxSizer" expanded="false">
                     <property name="minimum_size"></property>
                     <property name="name">bSizer8</property>
                     <property name="orient">wxVERTICAL</property>
@@ -863,10 +1003,10 @@
                         <property name="LeftDockable">1</property>
                         <property name="RightDockable">1</property>
                         <property name="TopDockable">1</property>
-                        <property name="aui_layer"></property>
+                        <property name="aui_layer">0</property>
                         <property name="aui_name"></property>
-                        <property name="aui_position"></property>
-                        <property name="aui_row"></property>
+                        <property name="aui_position">0</property>
+                        <property name="aui_row">0</property>
                         <property name="best_size"></property>
                         <property name="bg"></property>
                         <property name="caption"></property>
@@ -926,7 +1066,7 @@
                   <property name="border">5</property>
                   <property name="flag">wxBOTTOM|wxRIGHT|wxEXPAND</property>
                   <property name="proportion">0</property>
-                  <object class="wxBoxSizer" expanded="true">
+                  <object class="wxBoxSizer" expanded="false">
                     <property name="minimum_size"></property>
                     <property name="name">bSizer7</property>
                     <property name="orient">wxHORIZONTAL</property>
@@ -940,10 +1080,10 @@
                         <property name="LeftDockable">1</property>
                         <property name="RightDockable">1</property>
                         <property name="TopDockable">1</property>
-                        <property name="aui_layer"></property>
+                        <property name="aui_layer">0</property>
                         <property name="aui_name"></property>
-                        <property name="aui_position"></property>
-                        <property name="aui_row"></property>
+                        <property name="aui_position">0</property>
+                        <property name="aui_row">0</property>
                         <property name="best_size"></property>
                         <property name="bg"></property>
                         <property name="caption"></property>
@@ -1006,10 +1146,10 @@
                         <property name="LeftDockable">1</property>
                         <property name="RightDockable">1</property>
                         <property name="TopDockable">1</property>
-                        <property name="aui_layer"></property>
+                        <property name="aui_layer">0</property>
                         <property name="aui_name"></property>
-                        <property name="aui_position"></property>
-                        <property name="aui_row"></property>
+                        <property name="aui_position">0</property>
+                        <property name="aui_row">0</property>
                         <property name="best_size"></property>
                         <property name="bg"></property>
                         <property name="caption"></property>
@@ -1033,7 +1173,7 @@
                         <property name="max_size"></property>
                         <property name="maximize_button">0</property>
                         <property name="maximum_size"></property>
-                        <property name="maxlength"></property>
+                        <property name="maxlength">0</property>
                         <property name="min_size"></property>
                         <property name="minimize_button">0</property>
                         <property name="minimum_size">-1,-1</property>
@@ -1071,10 +1211,10 @@
                         <property name="LeftDockable">1</property>
                         <property name="RightDockable">1</property>
                         <property name="TopDockable">1</property>
-                        <property name="aui_layer"></property>
+                        <property name="aui_layer">0</property>
                         <property name="aui_name"></property>
-                        <property name="aui_position"></property>
-                        <property name="aui_row"></property>
+                        <property name="aui_position">0</property>
+                        <property name="aui_row">0</property>
                         <property name="auth_needed">0</property>
                         <property name="best_size"></property>
                         <property name="bg"></property>
@@ -1160,10 +1300,10 @@
                 <property name="LeftDockable">1</property>
                 <property name="RightDockable">1</property>
                 <property name="TopDockable">1</property>
-                <property name="aui_layer"></property>
+                <property name="aui_layer">0</property>
                 <property name="aui_name"></property>
-                <property name="aui_position"></property>
-                <property name="aui_row"></property>
+                <property name="aui_position">0</property>
+                <property name="aui_row">0</property>
                 <property name="best_size"></property>
                 <property name="bg"></property>
                 <property name="caption"></property>
@@ -1222,10 +1362,10 @@
                 <property name="LeftDockable">1</property>
                 <property name="RightDockable">1</property>
                 <property name="TopDockable">1</property>
-                <property name="aui_layer"></property>
+                <property name="aui_layer">0</property>
                 <property name="aui_name"></property>
-                <property name="aui_position"></property>
-                <property name="aui_row"></property>
+                <property name="aui_position">0</property>
+                <property name="aui_row">0</property>
                 <property name="best_size"></property>
                 <property name="bg"></property>
                 <property name="caption"></property>
@@ -1276,33 +1416,33 @@
               <property name="border">5</property>
               <property name="flag">wxTOP|wxLEFT|wxEXPAND</property>
               <property name="proportion">0</property>
-              <object class="wxBoxSizer" expanded="true">
+              <object class="wxBoxSizer" expanded="false">
                 <property name="minimum_size"></property>
                 <property name="name">bUserInterfaceSizer</property>
                 <property name="orient">wxVERTICAL</property>
                 <property name="permission">none</property>
-                <object class="sizeritem" expanded="true">
+                <object class="sizeritem" expanded="false">
                   <property name="border">5</property>
                   <property name="flag">wxEXPAND</property>
                   <property name="proportion">0</property>
-                  <object class="wxBoxSizer" expanded="true">
+                  <object class="wxBoxSizer" expanded="false">
                     <property name="minimum_size"></property>
                     <property name="name">bSizer14</property>
                     <property name="orient">wxVERTICAL</property>
                     <property name="permission">none</property>
-                    <object class="sizeritem" expanded="true">
+                    <object class="sizeritem" expanded="false">
                       <property name="border">5</property>
                       <property name="flag">wxALL</property>
                       <property name="proportion">0</property>
-                      <object class="wxCheckBox" expanded="true">
+                      <object class="wxCheckBox" expanded="false">
                         <property name="BottomDockable">1</property>
                         <property name="LeftDockable">1</property>
                         <property name="RightDockable">1</property>
                         <property name="TopDockable">1</property>
-                        <property name="aui_layer"></property>
+                        <property name="aui_layer">0</property>
                         <property name="aui_name"></property>
-                        <property name="aui_position"></property>
-                        <property name="aui_row"></property>
+                        <property name="aui_position">0</property>
+                        <property name="aui_row">0</property>
                         <property name="best_size"></property>
                         <property name="bg"></property>
                         <property name="caption"></property>
@@ -1355,19 +1495,19 @@
                         <property name="window_style"></property>
                       </object>
                     </object>
-                    <object class="sizeritem" expanded="true">
+                    <object class="sizeritem" expanded="false">
                       <property name="border">5</property>
                       <property name="flag">wxBOTTOM|wxRIGHT|wxLEFT</property>
                       <property name="proportion">0</property>
-                      <object class="wxCheckBox" expanded="true">
+                      <object class="wxCheckBox" expanded="false">
                         <property name="BottomDockable">1</property>
                         <property name="LeftDockable">1</property>
                         <property name="RightDockable">1</property>
                         <property name="TopDockable">1</property>
-                        <property name="aui_layer"></property>
+                        <property name="aui_layer">0</property>
                         <property name="aui_name"></property>
-                        <property name="aui_position"></property>
-                        <property name="aui_row"></property>
+                        <property name="aui_position">0</property>
+                        <property name="aui_row">0</property>
                         <property name="best_size"></property>
                         <property name="bg"></property>
                         <property name="caption"></property>
@@ -1420,19 +1560,19 @@
                         <property name="window_style"></property>
                       </object>
                     </object>
-                    <object class="sizeritem" expanded="true">
+                    <object class="sizeritem" expanded="false">
                       <property name="border">5</property>
                       <property name="flag">wxBOTTOM|wxRIGHT|wxLEFT</property>
                       <property name="proportion">0</property>
-                      <object class="wxCheckBox" expanded="true">
+                      <object class="wxCheckBox" expanded="false">
                         <property name="BottomDockable">1</property>
                         <property name="LeftDockable">1</property>
                         <property name="RightDockable">1</property>
                         <property name="TopDockable">1</property>
-                        <property name="aui_layer"></property>
+                        <property name="aui_layer">0</property>
                         <property name="aui_name"></property>
-                        <property name="aui_position"></property>
-                        <property name="aui_row"></property>
+                        <property name="aui_position">0</property>
+                        <property name="aui_row">0</property>
                         <property name="best_size"></property>
                         <property name="bg"></property>
                         <property name="caption"></property>
@@ -1485,19 +1625,19 @@
                         <property name="window_style"></property>
                       </object>
                     </object>
-                    <object class="sizeritem" expanded="true">
+                    <object class="sizeritem" expanded="false">
                       <property name="border">5</property>
                       <property name="flag">wxBOTTOM|wxLEFT|wxRIGHT</property>
                       <property name="proportion">0</property>
-                      <object class="wxCheckBox" expanded="true">
+                      <object class="wxCheckBox" expanded="false">
                         <property name="BottomDockable">1</property>
                         <property name="LeftDockable">1</property>
                         <property name="RightDockable">1</property>
                         <property name="TopDockable">1</property>
-                        <property name="aui_layer"></property>
+                        <property name="aui_layer">0</property>
                         <property name="aui_name"></property>
-                        <property name="aui_position"></property>
-                        <property name="aui_row"></property>
+                        <property name="aui_position">0</property>
+                        <property name="aui_row">0</property>
                         <property name="best_size"></property>
                         <property name="bg"></property>
                         <property name="caption"></property>
@@ -1550,19 +1690,19 @@
                         <property name="window_style"></property>
                       </object>
                     </object>
-                    <object class="sizeritem" expanded="true">
+                    <object class="sizeritem" expanded="false">
                       <property name="border">5</property>
                       <property name="flag">wxBOTTOM|wxLEFT|wxRIGHT</property>
                       <property name="proportion">0</property>
-                      <object class="wxCheckBox" expanded="true">
+                      <object class="wxCheckBox" expanded="false">
                         <property name="BottomDockable">1</property>
                         <property name="LeftDockable">1</property>
                         <property name="RightDockable">1</property>
                         <property name="TopDockable">1</property>
-                        <property name="aui_layer"></property>
+                        <property name="aui_layer">0</property>
                         <property name="aui_name"></property>
-                        <property name="aui_position"></property>
-                        <property name="aui_row"></property>
+                        <property name="aui_position">0</property>
+                        <property name="aui_row">0</property>
                         <property name="best_size"></property>
                         <property name="bg"></property>
                         <property name="caption"></property>
@@ -1617,7 +1757,7 @@
                     </object>
                   </object>
                 </object>
-                <object class="sizeritem" expanded="true">
+                <object class="sizeritem" expanded="false">
                   <property name="border">5</property>
                   <property name="flag">wxEXPAND</property>
                   <property name="proportion">0</property>
@@ -1635,10 +1775,10 @@
                         <property name="LeftDockable">1</property>
                         <property name="RightDockable">1</property>
                         <property name="TopDockable">1</property>
-                        <property name="aui_layer"></property>
+                        <property name="aui_layer">0</property>
                         <property name="aui_name"></property>
-                        <property name="aui_position"></property>
-                        <property name="aui_row"></property>
+                        <property name="aui_position">0</property>
+                        <property name="aui_row">0</property>
                         <property name="best_size"></property>
                         <property name="bg"></property>
                         <property name="caption"></property>
@@ -1697,10 +1837,10 @@
                         <property name="LeftDockable">1</property>
                         <property name="RightDockable">1</property>
                         <property name="TopDockable">1</property>
-                        <property name="aui_layer"></property>
+                        <property name="aui_layer">0</property>
                         <property name="aui_name"></property>
-                        <property name="aui_position"></property>
-                        <property name="aui_row"></property>
+                        <property name="aui_position">0</property>
+                        <property name="aui_row">0</property>
                         <property name="best_size"></property>
                         <property name="bg"></property>
                         <property name="caption"></property>
@@ -1762,10 +1902,10 @@
                         <property name="LeftDockable">1</property>
                         <property name="RightDockable">1</property>
                         <property name="TopDockable">1</property>
-                        <property name="aui_layer"></property>
+                        <property name="aui_layer">0</property>
                         <property name="aui_name"></property>
-                        <property name="aui_position"></property>
-                        <property name="aui_row"></property>
+                        <property name="aui_position">0</property>
+                        <property name="aui_row">0</property>
                         <property name="best_size"></property>
                         <property name="bg"></property>
                         <property name="caption"></property>
@@ -1827,10 +1967,10 @@
                         <property name="LeftDockable">1</property>
                         <property name="RightDockable">1</property>
                         <property name="TopDockable">1</property>
-                        <property name="aui_layer"></property>
+                        <property name="aui_layer">0</property>
                         <property name="aui_name"></property>
-                        <property name="aui_position"></property>
-                        <property name="aui_row"></property>
+                        <property name="aui_position">0</property>
+                        <property name="aui_row">0</property>
                         <property name="best_size"></property>
                         <property name="bg"></property>
                         <property name="caption"></property>
@@ -1885,28 +2025,28 @@
                     </object>
                   </object>
                 </object>
-                <object class="sizeritem" expanded="true">
+                <object class="sizeritem" expanded="false">
                   <property name="border">5</property>
                   <property name="flag">wxEXPAND</property>
                   <property name="proportion">0</property>
-                  <object class="wxBoxSizer" expanded="true">
+                  <object class="wxBoxSizer" expanded="false">
                     <property name="minimum_size"></property>
                     <property name="name">bSizerToolbarSize</property>
                     <property name="orient">wxHORIZONTAL</property>
                     <property name="permission">none</property>
-                    <object class="sizeritem" expanded="true">
+                    <object class="sizeritem" expanded="false">
                       <property name="border">5</property>
                       <property name="flag">wxALL</property>
                       <property name="proportion">0</property>
-                      <object class="wxStaticText" expanded="true">
+                      <object class="wxStaticText" expanded="false">
                         <property name="BottomDockable">1</property>
                         <property name="LeftDockable">1</property>
                         <property name="RightDockable">1</property>
                         <property name="TopDockable">1</property>
-                        <property name="aui_layer"></property>
+                        <property name="aui_layer">0</property>
                         <property name="aui_name"></property>
-                        <property name="aui_position"></property>
-                        <property name="aui_row"></property>
+                        <property name="aui_position">0</property>
+                        <property name="aui_row">0</property>
                         <property name="best_size"></property>
                         <property name="bg"></property>
                         <property name="caption"></property>
@@ -1956,19 +2096,19 @@
                         <property name="wrap">-1</property>
                       </object>
                     </object>
-                    <object class="sizeritem" expanded="true">
+                    <object class="sizeritem" expanded="false">
                       <property name="border">5</property>
                       <property name="flag">wxALL</property>
                       <property name="proportion">0</property>
-                      <object class="wxRadioButton" expanded="true">
+                      <object class="wxRadioButton" expanded="false">
                         <property name="BottomDockable">1</property>
                         <property name="LeftDockable">1</property>
                         <property name="RightDockable">1</property>
                         <property name="TopDockable">1</property>
-                        <property name="aui_layer"></property>
+                        <property name="aui_layer">0</property>
                         <property name="aui_name"></property>
-                        <property name="aui_position"></property>
-                        <property name="aui_row"></property>
+                        <property name="aui_position">0</property>
+                        <property name="aui_row">0</property>
                         <property name="best_size"></property>
                         <property name="bg"></property>
                         <property name="caption"></property>
@@ -2021,19 +2161,19 @@
                         <property name="window_style"></property>
                       </object>
                     </object>
-                    <object class="sizeritem" expanded="true">
+                    <object class="sizeritem" expanded="false">
                       <property name="border">5</property>
                       <property name="flag">wxALL</property>
                       <property name="proportion">0</property>
-                      <object class="wxRadioButton" expanded="true">
+                      <object class="wxRadioButton" expanded="false">
                         <property name="BottomDockable">1</property>
                         <property name="LeftDockable">1</property>
                         <property name="RightDockable">1</property>
                         <property name="TopDockable">1</property>
-                        <property name="aui_layer"></property>
+                        <property name="aui_layer">0</property>
                         <property name="aui_name"></property>
-                        <property name="aui_position"></property>
-                        <property name="aui_row"></property>
+                        <property name="aui_position">0</property>
+                        <property name="aui_row">0</property>
                         <property name="best_size"></property>
                         <property name="bg"></property>
                         <property name="caption"></property>
@@ -2086,19 +2226,19 @@
                         <property name="window_style"></property>
                       </object>
                     </object>
-                    <object class="sizeritem" expanded="true">
+                    <object class="sizeritem" expanded="false">
                       <property name="border">5</property>
                       <property name="flag">wxALL</property>
                       <property name="proportion">0</property>
-                      <object class="wxRadioButton" expanded="true">
+                      <object class="wxRadioButton" expanded="false">
                         <property name="BottomDockable">1</property>
                         <property name="LeftDockable">1</property>
                         <property name="RightDockable">1</property>
                         <property name="TopDockable">1</property>
-                        <property name="aui_layer"></property>
+                        <property name="aui_layer">0</property>
                         <property name="aui_name"></property>
-                        <property name="aui_position"></property>
-                        <property name="aui_row"></property>
+                        <property name="aui_position">0</property>
+                        <property name="aui_row">0</property>
                         <property name="best_size"></property>
                         <property name="bg"></property>
                         <property name="caption"></property>
@@ -2153,11 +2293,11 @@
                     </object>
                   </object>
                 </object>
-                <object class="sizeritem" expanded="true">
+                <object class="sizeritem" expanded="false">
                   <property name="border">5</property>
                   <property name="flag">wxTOP|wxBOTTOM|wxLEFT|wxEXPAND</property>
                   <property name="proportion">0</property>
-                  <object class="wxGridBagSizer" expanded="true">
+                  <object class="wxGridBagSizer" expanded="false">
                     <property name="empty_cell_size">-1,-1</property>
                     <property name="flexible_direction">wxVERTICAL</property>
                     <property name="growablecols"></property>
@@ -2180,10 +2320,10 @@
                         <property name="LeftDockable">1</property>
                         <property name="RightDockable">1</property>
                         <property name="TopDockable">1</property>
-                        <property name="aui_layer"></property>
+                        <property name="aui_layer">0</property>
                         <property name="aui_name"></property>
-                        <property name="aui_position"></property>
-                        <property name="aui_row"></property>
+                        <property name="aui_position">0</property>
+                        <property name="aui_row">0</property>
                         <property name="best_size"></property>
                         <property name="bg"></property>
                         <property name="caption"></property>
@@ -2245,10 +2385,10 @@
                         <property name="LeftDockable">1</property>
                         <property name="RightDockable">1</property>
                         <property name="TopDockable">1</property>
-                        <property name="aui_layer"></property>
+                        <property name="aui_layer">0</property>
                         <property name="aui_name"></property>
-                        <property name="aui_position"></property>
-                        <property name="aui_row"></property>
+                        <property name="aui_position">0</property>
+                        <property name="aui_row">0</property>
                         <property name="best_size"></property>
                         <property name="bg"></property>
                         <property name="caption"></property>
@@ -2313,10 +2453,10 @@
                         <property name="LeftDockable">1</property>
                         <property name="RightDockable">1</property>
                         <property name="TopDockable">1</property>
-                        <property name="aui_layer"></property>
+                        <property name="aui_layer">0</property>
                         <property name="aui_name"></property>
-                        <property name="aui_position"></property>
-                        <property name="aui_row"></property>
+                        <property name="aui_position">0</property>
+                        <property name="aui_row">0</property>
                         <property name="best_size"></property>
                         <property name="bg"></property>
                         <property name="caption"></property>
@@ -2391,10 +2531,10 @@
                     <property name="LeftDockable">1</property>
                     <property name="RightDockable">1</property>
                     <property name="TopDockable">1</property>
-                    <property name="aui_layer"></property>
+                    <property name="aui_layer">0</property>
                     <property name="aui_name"></property>
-                    <property name="aui_position"></property>
-                    <property name="aui_row"></property>
+                    <property name="aui_position">0</property>
+                    <property name="aui_row">0</property>
                     <property name="best_size"></property>
                     <property name="bg"></property>
                     <property name="caption"></property>
@@ -2456,10 +2596,10 @@
                     <property name="LeftDockable">1</property>
                     <property name="RightDockable">1</property>
                     <property name="TopDockable">1</property>
-                    <property name="aui_layer"></property>
+                    <property name="aui_layer">0</property>
                     <property name="aui_name"></property>
-                    <property name="aui_position"></property>
-                    <property name="aui_row"></property>
+                    <property name="aui_position">0</property>
+                    <property name="aui_row">0</property>
                     <property name="best_size"></property>
                     <property name="bg"></property>
                     <property name="caption"></property>
@@ -2509,11 +2649,11 @@
                     <property name="wrap">-1</property>
                   </object>
                 </object>
-                <object class="sizeritem" expanded="true">
+                <object class="sizeritem" expanded="false">
                   <property name="border">5</property>
                   <property name="flag">wxBOTTOM|wxEXPAND</property>
                   <property name="proportion">0</property>
-                  <object class="wxBoxSizer" expanded="true">
+                  <object class="wxBoxSizer" expanded="false">
                     <property name="minimum_size"></property>
                     <property name="name">bSizerHighContrast</property>
                     <property name="orient">wxHORIZONTAL</property>
@@ -2527,10 +2667,10 @@
                         <property name="LeftDockable">1</property>
                         <property name="RightDockable">1</property>
                         <property name="TopDockable">1</property>
-                        <property name="aui_layer"></property>
+                        <property name="aui_layer">0</property>
                         <property name="aui_name"></property>
-                        <property name="aui_position"></property>
-                        <property name="aui_row"></property>
+                        <property name="aui_position">0</property>
+                        <property name="aui_row">0</property>
                         <property name="best_size"></property>
                         <property name="bg"></property>
                         <property name="caption"></property>
@@ -2589,10 +2729,10 @@
                         <property name="LeftDockable">1</property>
                         <property name="RightDockable">1</property>
                         <property name="TopDockable">1</property>
-                        <property name="aui_layer"></property>
+                        <property name="aui_layer">0</property>
                         <property name="aui_name"></property>
-                        <property name="aui_position"></property>
-                        <property name="aui_row"></property>
+                        <property name="aui_position">0</property>
+                        <property name="aui_row">0</property>
                         <property name="best_size"></property>
                         <property name="bg"></property>
                         <property name="caption"></property>
@@ -2616,7 +2756,7 @@
                         <property name="max_size"></property>
                         <property name="maximize_button">0</property>
                         <property name="maximum_size"></property>
-                        <property name="maxlength"></property>
+                        <property name="maxlength">0</property>
                         <property name="min_size"></property>
                         <property name="minimize_button">0</property>
                         <property name="minimum_size"></property>
@@ -2654,10 +2794,10 @@
                         <property name="LeftDockable">1</property>
                         <property name="RightDockable">1</property>
                         <property name="TopDockable">1</property>
-                        <property name="aui_layer"></property>
+                        <property name="aui_layer">0</property>
                         <property name="aui_name"></property>
-                        <property name="aui_position"></property>
-                        <property name="aui_row"></property>
+                        <property name="aui_position">0</property>
+                        <property name="aui_row">0</property>
                         <property name="best_size"></property>
                         <property name="bg"></property>
                         <property name="caption"></property>
@@ -2731,10 +2871,10 @@
                 <property name="LeftDockable">1</property>
                 <property name="RightDockable">1</property>
                 <property name="TopDockable">1</property>
-                <property name="aui_layer"></property>
+                <property name="aui_layer">0</property>
                 <property name="aui_name"></property>
-                <property name="aui_position"></property>
-                <property name="aui_row"></property>
+                <property name="aui_position">0</property>
+                <property name="aui_row">0</property>
                 <property name="best_size"></property>
                 <property name="bg"></property>
                 <property name="caption"></property>
@@ -2793,10 +2933,10 @@
                 <property name="LeftDockable">1</property>
                 <property name="RightDockable">1</property>
                 <property name="TopDockable">1</property>
-                <property name="aui_layer"></property>
+                <property name="aui_layer">0</property>
                 <property name="aui_name"></property>
-                <property name="aui_position"></property>
-                <property name="aui_row"></property>
+                <property name="aui_position">0</property>
+                <property name="aui_row">0</property>
                 <property name="best_size"></property>
                 <property name="bg"></property>
                 <property name="caption"></property>
@@ -2861,10 +3001,10 @@
                     <property name="LeftDockable">1</property>
                     <property name="RightDockable">1</property>
                     <property name="TopDockable">1</property>
-                    <property name="aui_layer"></property>
+                    <property name="aui_layer">0</property>
                     <property name="aui_name"></property>
-                    <property name="aui_position"></property>
-                    <property name="aui_row"></property>
+                    <property name="aui_position">0</property>
+                    <property name="aui_row">0</property>
                     <property name="best_size"></property>
                     <property name="bg"></property>
                     <property name="caption"></property>
@@ -2926,10 +3066,10 @@
                     <property name="LeftDockable">1</property>
                     <property name="RightDockable">1</property>
                     <property name="TopDockable">1</property>
-                    <property name="aui_layer"></property>
+                    <property name="aui_layer">0</property>
                     <property name="aui_name"></property>
-                    <property name="aui_position"></property>
-                    <property name="aui_row"></property>
+                    <property name="aui_position">0</property>
+                    <property name="aui_row">0</property>
                     <property name="best_size"></property>
                     <property name="bg"></property>
                     <property name="caption"></property>
@@ -3003,10 +3143,10 @@
                 <property name="LeftDockable">1</property>
                 <property name="RightDockable">1</property>
                 <property name="TopDockable">1</property>
-                <property name="aui_layer"></property>
+                <property name="aui_layer">0</property>
                 <property name="aui_name"></property>
-                <property name="aui_position"></property>
-                <property name="aui_row"></property>
+                <property name="aui_position">0</property>
+                <property name="aui_row">0</property>
                 <property name="best_size"></property>
                 <property name="bg"></property>
                 <property name="caption"></property>
@@ -3065,10 +3205,10 @@
                 <property name="LeftDockable">1</property>
                 <property name="RightDockable">1</property>
                 <property name="TopDockable">1</property>
-                <property name="aui_layer"></property>
+                <property name="aui_layer">0</property>
                 <property name="aui_name"></property>
-                <property name="aui_position"></property>
-                <property name="aui_row"></property>
+                <property name="aui_position">0</property>
+                <property name="aui_row">0</property>
                 <property name="best_size"></property>
                 <property name="bg"></property>
                 <property name="caption"></property>
@@ -3133,10 +3273,10 @@
                     <property name="LeftDockable">1</property>
                     <property name="RightDockable">1</property>
                     <property name="TopDockable">1</property>
-                    <property name="aui_layer"></property>
+                    <property name="aui_layer">0</property>
                     <property name="aui_name"></property>
-                    <property name="aui_position"></property>
-                    <property name="aui_row"></property>
+                    <property name="aui_position">0</property>
+                    <property name="aui_row">0</property>
                     <property name="best_size"></property>
                     <property name="bg"></property>
                     <property name="caption"></property>
@@ -3226,10 +3366,10 @@
                         <property name="LeftDockable">1</property>
                         <property name="RightDockable">1</property>
                         <property name="TopDockable">1</property>
-                        <property name="aui_layer"></property>
+                        <property name="aui_layer">0</property>
                         <property name="aui_name"></property>
-                        <property name="aui_position"></property>
-                        <property name="aui_row"></property>
+                        <property name="aui_position">0</property>
+                        <property name="aui_row">0</property>
                         <property name="best_size"></property>
                         <property name="bg"></property>
                         <property name="caption"></property>
@@ -3291,10 +3431,10 @@
                         <property name="LeftDockable">1</property>
                         <property name="RightDockable">1</property>
                         <property name="TopDockable">1</property>
-                        <property name="aui_layer"></property>
+                        <property name="aui_layer">0</property>
                         <property name="aui_name"></property>
-                        <property name="aui_position"></property>
-                        <property name="aui_row"></property>
+                        <property name="aui_position">0</property>
+                        <property name="aui_row">0</property>
                         <property name="best_size"></property>
                         <property name="bg"></property>
                         <property name="caption"></property>
@@ -3357,10 +3497,10 @@
                         <property name="LeftDockable">1</property>
                         <property name="RightDockable">1</property>
                         <property name="TopDockable">1</property>
-                        <property name="aui_layer"></property>
+                        <property name="aui_layer">0</property>
                         <property name="aui_name"></property>
-                        <property name="aui_position"></property>
-                        <property name="aui_row"></property>
+                        <property name="aui_position">0</property>
+                        <property name="aui_row">0</property>
                         <property name="best_size"></property>
                         <property name="bg"></property>
                         <property name="caption"></property>
@@ -3422,10 +3562,10 @@
                         <property name="LeftDockable">1</property>
                         <property name="RightDockable">1</property>
                         <property name="TopDockable">1</property>
-                        <property name="aui_layer"></property>
+                        <property name="aui_layer">0</property>
                         <property name="aui_name"></property>
-                        <property name="aui_position"></property>
-                        <property name="aui_row"></property>
+                        <property name="aui_position">0</property>
+                        <property name="aui_row">0</property>
                         <property name="best_size"></property>
                         <property name="bg"></property>
                         <property name="caption"></property>
@@ -3487,10 +3627,10 @@
                         <property name="LeftDockable">1</property>
                         <property name="RightDockable">1</property>
                         <property name="TopDockable">1</property>
-                        <property name="aui_layer"></property>
+                        <property name="aui_layer">0</property>
                         <property name="aui_name"></property>
-                        <property name="aui_position"></property>
-                        <property name="aui_row"></property>
+                        <property name="aui_position">0</property>
+                        <property name="aui_row">0</property>
                         <property name="best_size"></property>
                         <property name="bg"></property>
                         <property name="caption"></property>
@@ -3553,10 +3693,10 @@
                         <property name="LeftDockable">1</property>
                         <property name="RightDockable">1</property>
                         <property name="TopDockable">1</property>
-                        <property name="aui_layer"></property>
+                        <property name="aui_layer">0</property>
                         <property name="aui_name"></property>
-                        <property name="aui_position"></property>
-                        <property name="aui_row"></property>
+                        <property name="aui_position">0</property>
+                        <property name="aui_row">0</property>
                         <property name="best_size"></property>
                         <property name="bg"></property>
                         <property name="caption"></property>
@@ -3618,10 +3758,10 @@
                         <property name="LeftDockable">1</property>
                         <property name="RightDockable">1</property>
                         <property name="TopDockable">1</property>
-                        <property name="aui_layer"></property>
+                        <property name="aui_layer">0</property>
                         <property name="aui_name"></property>
-                        <property name="aui_position"></property>
-                        <property name="aui_row"></property>
+                        <property name="aui_position">0</property>
+                        <property name="aui_row">0</property>
                         <property name="best_size"></property>
                         <property name="bg"></property>
                         <property name="caption"></property>
@@ -3684,10 +3824,10 @@
                         <property name="LeftDockable">1</property>
                         <property name="RightDockable">1</property>
                         <property name="TopDockable">1</property>
-                        <property name="aui_layer"></property>
+                        <property name="aui_layer">0</property>
                         <property name="aui_name"></property>
-                        <property name="aui_position"></property>
-                        <property name="aui_row"></property>
+                        <property name="aui_position">0</property>
+                        <property name="aui_row">0</property>
                         <property name="best_size"></property>
                         <property name="bg"></property>
                         <property name="caption"></property>
@@ -3760,10 +3900,10 @@
                 <property name="LeftDockable">1</property>
                 <property name="RightDockable">1</property>
                 <property name="TopDockable">1</property>
-                <property name="aui_layer"></property>
+                <property name="aui_layer">0</property>
                 <property name="aui_name"></property>
-                <property name="aui_position"></property>
-                <property name="aui_row"></property>
+                <property name="aui_position">0</property>
+                <property name="aui_row">0</property>
                 <property name="best_size"></property>
                 <property name="bg"></property>
                 <property name="caption"></property>
@@ -3822,10 +3962,10 @@
                 <property name="LeftDockable">1</property>
                 <property name="RightDockable">1</property>
                 <property name="TopDockable">1</property>
-                <property name="aui_layer"></property>
+                <property name="aui_layer">0</property>
                 <property name="aui_name"></property>
-                <property name="aui_position"></property>
-                <property name="aui_row"></property>
+                <property name="aui_position">0</property>
+                <property name="aui_row">0</property>
                 <property name="best_size"></property>
                 <property name="bg"></property>
                 <property name="caption"></property>
@@ -3908,10 +4048,10 @@
                         <property name="LeftDockable">1</property>
                         <property name="RightDockable">1</property>
                         <property name="TopDockable">1</property>
-                        <property name="aui_layer"></property>
+                        <property name="aui_layer">0</property>
                         <property name="aui_name"></property>
-                        <property name="aui_position"></property>
-                        <property name="aui_row"></property>
+                        <property name="aui_position">0</property>
+                        <property name="aui_row">0</property>
                         <property name="best_size"></property>
                         <property name="bg"></property>
                         <property name="caption"></property>
@@ -3976,10 +4116,10 @@
                         <property name="LeftDockable">1</property>
                         <property name="RightDockable">1</property>
                         <property name="TopDockable">1</property>
-                        <property name="aui_layer"></property>
+                        <property name="aui_layer">0</property>
                         <property name="aui_name"></property>
-                        <property name="aui_position"></property>
-                        <property name="aui_row"></property>
+                        <property name="aui_position">0</property>
+                        <property name="aui_row">0</property>
                         <property name="best_size"></property>
                         <property name="bg"></property>
                         <property name="caption"></property>
@@ -4044,10 +4184,10 @@
                         <property name="LeftDockable">1</property>
                         <property name="RightDockable">1</property>
                         <property name="TopDockable">1</property>
-                        <property name="aui_layer"></property>
+                        <property name="aui_layer">0</property>
                         <property name="aui_name"></property>
-                        <property name="aui_position"></property>
-                        <property name="aui_row"></property>
+                        <property name="aui_position">0</property>
+                        <property name="aui_row">0</property>
                         <property name="best_size"></property>
                         <property name="bg"></property>
                         <property name="caption"></property>
@@ -4109,10 +4249,10 @@
                         <property name="LeftDockable">1</property>
                         <property name="RightDockable">1</property>
                         <property name="TopDockable">1</property>
-                        <property name="aui_layer"></property>
+                        <property name="aui_layer">0</property>
                         <property name="aui_name"></property>
-                        <property name="aui_position"></property>
-                        <property name="aui_row"></property>
+                        <property name="aui_position">0</property>
+                        <property name="aui_row">0</property>
                         <property name="best_size"></property>
                         <property name="bg"></property>
                         <property name="caption"></property>
@@ -4175,10 +4315,10 @@
                         <property name="LeftDockable">1</property>
                         <property name="RightDockable">1</property>
                         <property name="TopDockable">1</property>
-                        <property name="aui_layer"></property>
+                        <property name="aui_layer">0</property>
                         <property name="aui_name"></property>
-                        <property name="aui_position"></property>
-                        <property name="aui_row"></property>
+                        <property name="aui_position">0</property>
+                        <property name="aui_row">0</property>
                         <property name="best_size"></property>
                         <property name="bg"></property>
                         <property name="caption"></property>
@@ -4240,10 +4380,10 @@
                         <property name="LeftDockable">1</property>
                         <property name="RightDockable">1</property>
                         <property name="TopDockable">1</property>
-                        <property name="aui_layer"></property>
+                        <property name="aui_layer">0</property>
                         <property name="aui_name"></property>
-                        <property name="aui_position"></property>
-                        <property name="aui_row"></property>
+                        <property name="aui_position">0</property>
+                        <property name="aui_row">0</property>
                         <property name="best_size"></property>
                         <property name="bg"></property>
                         <property name="caption"></property>
@@ -4306,10 +4446,10 @@
                         <property name="LeftDockable">1</property>
                         <property name="RightDockable">1</property>
                         <property name="TopDockable">1</property>
-                        <property name="aui_layer"></property>
+                        <property name="aui_layer">0</property>
                         <property name="aui_name"></property>
-                        <property name="aui_position"></property>
-                        <property name="aui_row"></property>
+                        <property name="aui_position">0</property>
+                        <property name="aui_row">0</property>
                         <property name="best_size"></property>
                         <property name="bg"></property>
                         <property name="caption"></property>
@@ -4371,10 +4511,10 @@
                         <property name="LeftDockable">1</property>
                         <property name="RightDockable">1</property>
                         <property name="TopDockable">1</property>
-                        <property name="aui_layer"></property>
+                        <property name="aui_layer">0</property>
                         <property name="aui_name"></property>
-                        <property name="aui_position"></property>
-                        <property name="aui_row"></property>
+                        <property name="aui_position">0</property>
+                        <property name="aui_row">0</property>
                         <property name="best_size"></property>
                         <property name="bg"></property>
                         <property name="caption"></property>
@@ -4437,10 +4577,10 @@
                         <property name="LeftDockable">1</property>
                         <property name="RightDockable">1</property>
                         <property name="TopDockable">1</property>
-                        <property name="aui_layer"></property>
+                        <property name="aui_layer">0</property>
                         <property name="aui_name"></property>
-                        <property name="aui_position"></property>
-                        <property name="aui_row"></property>
+                        <property name="aui_position">0</property>
+                        <property name="aui_row">0</property>
                         <property name="best_size"></property>
                         <property name="bg"></property>
                         <property name="caption"></property>
@@ -4502,10 +4642,10 @@
                         <property name="LeftDockable">1</property>
                         <property name="RightDockable">1</property>
                         <property name="TopDockable">1</property>
-                        <property name="aui_layer"></property>
+                        <property name="aui_layer">0</property>
                         <property name="aui_name"></property>
-                        <property name="aui_position"></property>
-                        <property name="aui_row"></property>
+                        <property name="aui_position">0</property>
+                        <property name="aui_row">0</property>
                         <property name="best_size"></property>
                         <property name="bg"></property>
                         <property name="caption"></property>
@@ -4567,10 +4707,10 @@
                         <property name="LeftDockable">1</property>
                         <property name="RightDockable">1</property>
                         <property name="TopDockable">1</property>
-                        <property name="aui_layer"></property>
+                        <property name="aui_layer">0</property>
                         <property name="aui_name"></property>
-                        <property name="aui_position"></property>
-                        <property name="aui_row"></property>
+                        <property name="aui_position">0</property>
+                        <property name="aui_row">0</property>
                         <property name="best_size"></property>
                         <property name="bg"></property>
                         <property name="caption"></property>
@@ -4633,10 +4773,10 @@
                         <property name="LeftDockable">1</property>
                         <property name="RightDockable">1</property>
                         <property name="TopDockable">1</property>
-                        <property name="aui_layer"></property>
+                        <property name="aui_layer">0</property>
                         <property name="aui_name"></property>
-                        <property name="aui_position"></property>
-                        <property name="aui_row"></property>
+                        <property name="aui_position">0</property>
+                        <property name="aui_row">0</property>
                         <property name="best_size"></property>
                         <property name="bg"></property>
                         <property name="caption"></property>
diff --git a/common/dialogs/panel_common_settings_base.h b/common/dialogs/panel_common_settings_base.h
index c57da86fd3..71b62273d2 100644
--- a/common/dialogs/panel_common_settings_base.h
+++ b/common/dialogs/panel_common_settings_base.h
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////
-// C++ code generated with wxFormBuilder (version 4.1.0-0-g733bf3d)
+// C++ code generated with wxFormBuilder (version 4.2.1-0-g80c4cb6)
 // http://www.wxformbuilder.org/
 //
 // PLEASE DO *NOT* EDIT THIS FILE!
@@ -53,6 +53,9 @@ class PANEL_COMMON_SETTINGS_BASE : public RESETTABLE_PANEL
 		wxStaticLine* m_staticline2;
 		wxTextCtrl* m_textEditorPath;
 		STD_BITMAP_BUTTON* m_textEditorBtn;
+		wxBoxSizer* bSizerFileManager;
+		wxStaticText* m_staticTextFileManager;
+		wxTextCtrl* m_textCtrlFileManager;
 		wxRadioButton* m_defaultPDFViewer;
 		wxRadioButton* m_otherPDFViewer;
 		wxTextCtrl* m_PDFViewerPath;
diff --git a/common/settings/common_settings.cpp b/common/settings/common_settings.cpp
index 171c53f376..34b7e90406 100644
--- a/common/settings/common_settings.cpp
+++ b/common/settings/common_settings.cpp
@@ -296,6 +296,14 @@ COMMON_SETTINGS::COMMON_SETTINGS() :
             &m_System.text_editor, wxS( "" ) ) );
 #endif
 
+#if defined( __WINDOWS__ )
+    m_params.emplace_back( new PARAM<wxString>( "system.file_explorer",
+            &m_System.file_explorer, wxS( "explorer.exe /n,/select,%F" ) ) );
+#else
+    m_params.emplace_back( new PARAM<wxString>( "system.file_explorer",
+            &m_System.file_explorer, wxS( "" ) ) );
+#endif
+
     m_params.emplace_back( new PARAM<int>( "system.file_history_size",
             &m_System.file_history_size, 9 ) );
 
diff --git a/common/tool/actions.cpp b/common/tool/actions.cpp
index f3c2ef6b8e..0945ac8a91 100644
--- a/common/tool/actions.cpp
+++ b/common/tool/actions.cpp
@@ -76,6 +76,13 @@ TOOL_ACTION ACTIONS::openWithTextEditor( TOOL_ACTION_ARGS()
         .Tooltip( _( "Open a library file with a text editor" ) )
         .Icon( BITMAPS::editor ) );
 
+TOOL_ACTION ACTIONS::openDirectory( TOOL_ACTION_ARGS()
+        .Name( "common.Control.openDirectory" )
+        .Scope( AS_GLOBAL )
+        .FriendlyName( _( "Open in file explorer..." ) )
+        .Tooltip( _( "Open a library file with system file explorer" ) )
+        .Icon( BITMAPS::directory_browser ) );
+
 TOOL_ACTION ACTIONS::save( TOOL_ACTION_ARGS()
         .Name( "common.Control.save" )
         .Scope( AS_GLOBAL )
diff --git a/eeschema/tools/symbol_editor_control.cpp b/eeschema/tools/symbol_editor_control.cpp
index 24fc13b841..25d0c88974 100644
--- a/eeschema/tools/symbol_editor_control.cpp
+++ b/eeschema/tools/symbol_editor_control.cpp
@@ -37,6 +37,7 @@
 #include <bitmaps/bitmap_types.h>
 #include <confirm.h>
 #include <kidialog.h>
+#include <launch_ext.h> // To default when file manager setting is empty
 #include <gestfich.h> // To open with a text editor
 #include <wx/filedlg.h>
 #include "string_utils.h"
@@ -79,20 +80,44 @@ bool SYMBOL_EDITOR_CONTROL::Init()
                     return !sel.GetLibNickname().empty() && !sel.GetLibItemName().empty();
                 };
 
-        auto saveSymbolAsCondition =
-                [ editFrame ]( const SELECTION& aSel )
-                {
-                    LIB_ID sel = editFrame->GetTargetLibId();
-                    return !sel.GetLibNickname().empty() && !sel.GetLibItemName().empty();
-                };
-
+/* not used, but used to be used
         auto multiSelectedCondition =
                 [ editFrame ]( const SELECTION& aSel )
                 {
                     return editFrame->GetTreeSelectionCount() > 1;
                 };
-
-        auto canOpenWithTextEditor =
+*/
+        auto multiSymbolSelectedCondition =
+                [ editFrame ]( const SELECTION& aSel )
+                {
+                    if( editFrame->GetTreeSelectionCount() > 1 )
+                    {
+                        for( LIB_ID& sel : editFrame->GetSelectedLibIds() )
+                        {
+                            if( !sel.IsValid() )
+                                return false;
+                        }
+                        return true;
+                    }
+                    return false;
+                };
+/* not used, yet
+        auto multiLibrarySelectedCondition =
+                [ editFrame ]( const SELECTION& aSel )
+                {
+                    if( editFrame->GetTreeSelectionCount() > 1 )
+                    {
+                        for( LIB_ID& sel : editFrame->GetSelectedLibIds() )
+                        {
+                            if( sel.IsValid() )
+                                return false;
+                        }
+                        return true;
+                    }
+                    return false;
+                };
+*/
+        auto canOpenExternally =
                 [ editFrame ]( const SELECTION& aSel )
                 {
                     // The option is shown if the lib has no current edits
@@ -109,16 +134,16 @@ bool SYMBOL_EDITOR_CONTROL::Init()
         ctxMenu.AddSeparator( 10 );
         ctxMenu.AddItem( ACTIONS::save,                   symbolSelectedCondition || libInferredCondition, 10 );
         ctxMenu.AddItem( EE_ACTIONS::saveLibraryAs,       libSelectedCondition, 10 );
-        ctxMenu.AddItem( EE_ACTIONS::saveSymbolCopyAs,    saveSymbolAsCondition, 10 );
+        ctxMenu.AddItem( EE_ACTIONS::saveSymbolCopyAs,    symbolSelectedCondition, 10 );
         ctxMenu.AddItem( ACTIONS::revert,                 symbolSelectedCondition || libInferredCondition, 10 );
 
         ctxMenu.AddSeparator( 10 );
-        ctxMenu.AddItem( EE_ACTIONS::cutSymbol,           symbolSelectedCondition || multiSelectedCondition, 10 );
-        ctxMenu.AddItem( EE_ACTIONS::copySymbol,          symbolSelectedCondition || multiSelectedCondition, 10 );
+        ctxMenu.AddItem( EE_ACTIONS::cutSymbol,           symbolSelectedCondition || multiSymbolSelectedCondition, 10 );
+        ctxMenu.AddItem( EE_ACTIONS::copySymbol,          symbolSelectedCondition || multiSymbolSelectedCondition, 10 );
         ctxMenu.AddItem( EE_ACTIONS::pasteSymbol,         libInferredCondition, 10 );
         ctxMenu.AddItem( EE_ACTIONS::duplicateSymbol,     symbolSelectedCondition, 10 );
         ctxMenu.AddItem( EE_ACTIONS::renameSymbol,        symbolSelectedCondition, 10 );
-        ctxMenu.AddItem( EE_ACTIONS::deleteSymbol,        symbolSelectedCondition || multiSelectedCondition, 10 );
+        ctxMenu.AddItem( EE_ACTIONS::deleteSymbol,        symbolSelectedCondition || multiSymbolSelectedCondition, 10 );
 
         ctxMenu.AddSeparator( 100 );
         ctxMenu.AddItem( EE_ACTIONS::importSymbol,        libInferredCondition, 100 );
@@ -126,7 +151,13 @@ bool SYMBOL_EDITOR_CONTROL::Init()
         if( ADVANCED_CFG::GetCfg().m_EnableLibWithText )
         {
             ctxMenu.AddSeparator( 200 );
-            ctxMenu.AddItem( ACTIONS::openWithTextEditor, canOpenWithTextEditor && ( symbolSelectedCondition || libSelectedCondition ), 200 );
+            ctxMenu.AddItem( ACTIONS::openWithTextEditor, canOpenExternally && ( symbolSelectedCondition || libSelectedCondition ), 200 );
+        }
+
+        if( ADVANCED_CFG::GetCfg().m_EnableLibDir )
+        {
+            ctxMenu.AddSeparator( 200 );
+            ctxMenu.AddItem( ACTIONS::openDirectory,      canOpenExternally && ( symbolSelectedCondition || libSelectedCondition ), 200 );
         }
 
         libraryTreeTool->AddContextMenuItems( &ctxMenu );
@@ -237,6 +268,56 @@ int SYMBOL_EDITOR_CONTROL::Revert( const TOOL_EVENT& aEvent )
 }
 
 
+int SYMBOL_EDITOR_CONTROL::OpenDirectory( const TOOL_EVENT& aEvent )
+{
+    if( !m_isSymbolEditor )
+        return 0;
+
+    SYMBOL_EDIT_FRAME*          editFrame = getEditFrame<SYMBOL_EDIT_FRAME>();
+    LIB_SYMBOL_LIBRARY_MANAGER& libMgr = editFrame->GetLibManager();
+
+    LIB_ID libId = editFrame->GetTreeLIBID();
+
+    wxString libName = libId.GetLibNickname();
+    wxString libItemName = libMgr.GetLibrary( libName )->GetFullURI( true );
+
+    wxFileName fileName( libItemName );
+
+    wxString filePath = wxEmptyString;
+
+    COMMON_SETTINGS* cfg = Pgm().GetCommonSettings();
+
+    wxString explCommand = cfg->m_System.file_explorer;
+
+    if( explCommand.IsEmpty() )
+    {
+        filePath = fileName.GetFullPath().BeforeLast( wxFileName::GetPathSeparator() );
+
+        if( !filePath.IsEmpty() && wxDirExists( filePath ) )
+            LaunchExternal( filePath );
+        return 0;
+    }
+
+    if( !explCommand.EndsWith( "%F" ) )
+    {
+        wxMessageBox( _( "Missing/malformed file explorer argument '%F' in common settings." ) );
+        return 0;
+    }
+
+    filePath = fileName.GetFullPath();
+    filePath.Replace( wxS( "\"" ), wxS( "_" ) );
+
+    wxString fileArg = '"' + filePath + '"';
+
+    explCommand.Replace( wxT( "%F" ), fileArg );
+
+    if( !explCommand.IsEmpty() )
+        wxExecute( explCommand );
+
+    return 0;
+}
+
+
 int SYMBOL_EDITOR_CONTROL::OpenWithTextEditor( const TOOL_EVENT& aEvent )
 {
     if( !m_isSymbolEditor )
@@ -701,7 +782,10 @@ void SYMBOL_EDITOR_CONTROL::setTransitions()
     Go( &SYMBOL_EDITOR_CONTROL::CutCopyDelete,         EE_ACTIONS::cutSymbol.MakeEvent() );
     Go( &SYMBOL_EDITOR_CONTROL::CutCopyDelete,         EE_ACTIONS::copySymbol.MakeEvent() );
     Go( &SYMBOL_EDITOR_CONTROL::DuplicateSymbol,       EE_ACTIONS::pasteSymbol.MakeEvent() );
+
     Go( &SYMBOL_EDITOR_CONTROL::OpenWithTextEditor,    ACTIONS::openWithTextEditor.MakeEvent() );
+    Go( &SYMBOL_EDITOR_CONTROL::OpenDirectory,         ACTIONS::openDirectory.MakeEvent() );
+
     Go( &SYMBOL_EDITOR_CONTROL::ExportView,            EE_ACTIONS::exportSymbolView.MakeEvent() );
     Go( &SYMBOL_EDITOR_CONTROL::ExportSymbolAsSVG,     EE_ACTIONS::exportSymbolAsSVG.MakeEvent() );
     Go( &SYMBOL_EDITOR_CONTROL::AddSymbolToSchematic,  EE_ACTIONS::addSymbolToSchematic.MakeEvent() );
diff --git a/eeschema/tools/symbol_editor_control.h b/eeschema/tools/symbol_editor_control.h
index d9364443e8..e31608c962 100644
--- a/eeschema/tools/symbol_editor_control.h
+++ b/eeschema/tools/symbol_editor_control.h
@@ -54,6 +54,7 @@ public:
     int CutCopyDelete( const TOOL_EVENT& aEvent );
     int DuplicateSymbol( const TOOL_EVENT& aEvent );
     int RenameSymbol( const TOOL_EVENT& newName );
+    int OpenDirectory( const TOOL_EVENT& aEvent );
     int OpenWithTextEditor( const TOOL_EVENT& aEvent );
     int ExportView( const TOOL_EVENT& aEvent );
     int ExportSymbolAsSVG( const TOOL_EVENT& aEvent );
diff --git a/include/advanced_config.h b/include/advanced_config.h
index b655e7c701..20a57c8196 100644
--- a/include/advanced_config.h
+++ b/include/advanced_config.h
@@ -484,6 +484,24 @@ public:
      */
     bool m_EnableLibWithText;
 
+    /**
+     * Enable option to open lib file directory.
+     * Reveals one additional field under common preferences to set
+     * system's file manager command in order for the context menu options to work.
+     * On windows common settings preselect the default explorer with a hardcoded value.
+     *
+     * Examples,
+     * Linux:  "nemo -n %F"
+     *         "nautilus --browser %F"
+     *         "dolphin --select %F" etc
+     * Win11:  "explorer.exe /n,/select,%F"
+     *
+     * Setting name: "EnableLibDir"
+     * Valid values: 0 or 1
+     * Default value: 0
+     */
+    bool m_EnableLibDir;
+
     /**
      * Enable Eeschema printing using Cairo.
      *
diff --git a/include/dialogs/panel_common_settings.h b/include/dialogs/panel_common_settings.h
index 61e68d8cc6..11d5b95d08 100644
--- a/include/dialogs/panel_common_settings.h
+++ b/include/dialogs/panel_common_settings.h
@@ -61,6 +61,7 @@ protected:
     void OnCanvasScaleAuto( wxCommandEvent& aEvent ) override;
 
 private:
+    void ShowFileManagerWidgets( bool aBool );
     void setPdfViewerPathState();
 };
 
diff --git a/include/settings/common_settings.h b/include/settings/common_settings.h
index 2bba06b5ad..c32f6865c3 100644
--- a/include/settings/common_settings.h
+++ b/include/settings/common_settings.h
@@ -120,6 +120,7 @@ public:
     {
         int autosave_interval;
         wxString text_editor;
+        wxString file_explorer;
         int file_history_size;
         wxString language;
         wxString pdf_viewer_name;
diff --git a/include/tool/actions.h b/include/tool/actions.h
index cd513f0673..e83a4f67e1 100644
--- a/include/tool/actions.h
+++ b/include/tool/actions.h
@@ -59,6 +59,7 @@ public:
     static TOOL_ACTION quit;
     static TOOL_ACTION ddAddLibrary;    // for drag and drop lib
     static TOOL_ACTION openWithTextEditor;
+    static TOOL_ACTION openDirectory;
 
     // Generic edit actions
     static TOOL_ACTION cancelInteractive;
diff --git a/pcbnew/tools/footprint_editor_control.cpp b/pcbnew/tools/footprint_editor_control.cpp
index 8ce51592b6..300d08d4a4 100644
--- a/pcbnew/tools/footprint_editor_control.cpp
+++ b/pcbnew/tools/footprint_editor_control.cpp
@@ -33,6 +33,9 @@
 #include <pcbnew_id.h>
 #include <confirm.h>
 #include <kidialog.h>
+#include <wx/filename.h>
+#include <wildcards_and_files_ext.h>
+#include <launch_ext.h> // To default when file manager setting is empty
 #include <gestfich.h> // To open with a text editor
 #include <widgets/wx_infobar.h>
 #include <footprint.h>
@@ -108,7 +111,7 @@ bool FOOTPRINT_EDITOR_CONTROL::Init()
                 return fp != nullptr;
             };
 
-    auto canOpenWithTextEditor =
+    auto canOpenExternally =
             [ this ]( const SELECTION& aSel )
             {
                 // The option is shown if the editor has no current edits,
@@ -141,7 +144,13 @@ bool FOOTPRINT_EDITOR_CONTROL::Init()
     if( ADVANCED_CFG::GetCfg().m_EnableLibWithText )
     {
         ctxMenu.AddSeparator( 200 );
-        ctxMenu.AddItem( ACTIONS::openWithTextEditor, canOpenWithTextEditor && fpSelectedCondition, 200 );
+        ctxMenu.AddItem( ACTIONS::openWithTextEditor, canOpenExternally && fpSelectedCondition, 200 );
+    }
+
+    if( ADVANCED_CFG::GetCfg().m_EnableLibDir )
+    {
+        ctxMenu.AddSeparator( 200 );
+        ctxMenu.AddItem( ACTIONS::openDirectory,  canOpenExternally && ( libSelectedCondition || fpSelectedCondition ), 200 );
     }
 // clang-format on
 
@@ -549,6 +558,77 @@ int FOOTPRINT_EDITOR_CONTROL::ExportFootprint( const TOOL_EVENT& aEvent )
 }
 
 
+int FOOTPRINT_EDITOR_CONTROL::OpenDirectory( const TOOL_EVENT& aEvent )
+{
+    // No check for multi selection since the context menu option must be hidden in that case
+    FP_LIB_TABLE* globalTable = dynamic_cast<FP_LIB_TABLE*>( &GFootprintTable );
+    FP_LIB_TABLE* projectTable = PROJECT_PCB::PcbFootprintLibs( &m_frame->Prj() );
+    LIB_ID        libId = m_frame->GetTargetFPID();
+
+    wxString    libName = libId.GetLibNickname();
+    wxString    libItemName = libId.GetLibItemName();
+    wxString    path = wxEmptyString;
+
+    for( FP_LIB_TABLE* table : { globalTable, projectTable } )
+    {
+        if( !table )
+            break;
+
+        try
+        {
+            path = table->FindRow( libName, true )->GetFullURI( true );
+        }
+        catch( IO_ERROR& err )
+        {
+            // Do nothing: libName can be not found in globalTable if libName is in projectTable
+        }
+
+        if( !path.IsEmpty() )
+            break;
+    }
+
+    wxString fileExt = wxEmptyString;
+
+    // If selection is footprint
+    if( !libItemName.IsEmpty() )
+        fileExt = FILEEXT::KiCadFootprintFileExtension;
+
+    wxFileName fileName( path, libItemName, fileExt );
+
+    COMMON_SETTINGS* cfg = Pgm().GetCommonSettings();
+
+    wxString explCommand = cfg->m_System.file_explorer;
+
+    if( explCommand.IsEmpty() )
+    {
+        path = fileName.GetFullPath().BeforeLast( wxFileName::GetPathSeparator() );
+
+        if( !path.IsEmpty() && wxDirExists( path ) )
+            LaunchExternal( path );
+        return 0;
+    }
+
+    if( !explCommand.EndsWith( "%F" ) )
+    {
+        wxMessageBox( _( "Missing/malformed file explorer argument '%F' in common settings." ) );
+        return 0;
+    }
+
+    wxString escapedFilePath = fileName.GetFullPath();
+    escapedFilePath.Replace( wxS( "\"" ), wxS( "_" ) );
+
+    wxString fileArg = wxEmptyString;
+    fileArg << '"' << escapedFilePath << '"';
+
+    explCommand.Replace( wxT( "%F" ), fileArg );
+
+    if( !explCommand.IsEmpty() )
+        wxExecute( explCommand );
+
+    return 0;
+}
+
+
 int FOOTPRINT_EDITOR_CONTROL::OpenWithTextEditor( const TOOL_EVENT& aEvent )
 {
     wxString fullEditorName = Pgm().GetTextEditor();
@@ -559,12 +639,13 @@ int FOOTPRINT_EDITOR_CONTROL::OpenWithTextEditor( const TOOL_EVENT& aEvent )
         return 0;
     }
 
+    // No check for multi selection since the context menu option must be hidden in that case
     FP_LIB_TABLE* globalTable = dynamic_cast<FP_LIB_TABLE*>( &GFootprintTable );
     FP_LIB_TABLE* projectTable = PROJECT_PCB::PcbFootprintLibs( &m_frame->Prj() );
     LIB_ID        libId = m_frame->GetLibTree()->GetSelectedLibId();
 
-    wxString libName = libId.GetLibNickname();
-    wxString  libItemName = wxEmptyString;
+    wxString    libName = libId.GetLibNickname();
+    wxString    libItemName = wxEmptyString;
 
     for( FP_LIB_TABLE* table : { globalTable, projectTable } )
     {
@@ -574,16 +655,24 @@ int FOOTPRINT_EDITOR_CONTROL::OpenWithTextEditor( const TOOL_EVENT& aEvent )
         try
         {
             libItemName = table->FindRow( libName, true )->GetFullURI( true );
-            libItemName = libItemName + "/" + libId.GetLibItemName() + ".kicad_mod";
         }
         catch( IO_ERROR& err )
         {
-           // Do nothing: libName can be not found in globalTable if libName is in projectTable
+            // Do nothing: libName can be not found in globalTable if libName is in projectTable
         }
+
+        if( !libItemName.IsEmpty() )
+            break;
     }
 
-    if( !libItemName.IsEmpty() )
-        ExecuteFile( fullEditorName, libItemName.wc_str(), nullptr, false );
+    libItemName << wxFileName::GetPathSeparator();
+    libItemName << libId.GetLibItemName();
+    libItemName << '.' + FILEEXT::KiCadFootprintFileExtension;
+
+    if( !wxFileName::FileExists( libItemName ) )
+        return 0;
+
+    ExecuteFile( fullEditorName, libItemName.wc_str(), nullptr, false );
 
     return 0;
 }
@@ -763,7 +852,9 @@ void FOOTPRINT_EDITOR_CONTROL::setTransitions()
 
     Go( &FOOTPRINT_EDITOR_CONTROL::ImportFootprint,      PCB_ACTIONS::importFootprint.MakeEvent() );
     Go( &FOOTPRINT_EDITOR_CONTROL::ExportFootprint,      PCB_ACTIONS::exportFootprint.MakeEvent() );
+
     Go( &FOOTPRINT_EDITOR_CONTROL::OpenWithTextEditor,   ACTIONS::openWithTextEditor.MakeEvent() );
+    Go( &FOOTPRINT_EDITOR_CONTROL::OpenDirectory,        ACTIONS::openDirectory.MakeEvent() );
 
     Go( &FOOTPRINT_EDITOR_CONTROL::EditTextAndGraphics,  PCB_ACTIONS::editTextAndGraphics.MakeEvent() );
     Go( &FOOTPRINT_EDITOR_CONTROL::CleanupGraphics,      PCB_ACTIONS::cleanupGraphics.MakeEvent() );
diff --git a/pcbnew/tools/footprint_editor_control.h b/pcbnew/tools/footprint_editor_control.h
index 9ed0f6514c..bb12bbdbc2 100644
--- a/pcbnew/tools/footprint_editor_control.h
+++ b/pcbnew/tools/footprint_editor_control.h
@@ -62,6 +62,7 @@ public:
     int DeleteFootprint( const TOOL_EVENT& aEvent );
     int ImportFootprint( const TOOL_EVENT& aEvent );
     int ExportFootprint( const TOOL_EVENT& aEvent );
+    int OpenDirectory( const TOOL_EVENT& aEvent );
     int OpenWithTextEditor( const TOOL_EVENT& aEvent );
 
     int ToggleLayersManager( const TOOL_EVENT& aEvent );