diff --git a/src/sakia/data/entities/user_parameters.py b/src/sakia/data/entities/user_parameters.py
index 90945120195ffe5a07ccac6c9227af5dab192dc4..9bd51205ad63604cef636833f7991f448f4ae52e 100644
--- a/src/sakia/data/entities/user_parameters.py
+++ b/src/sakia/data/entities/user_parameters.py
@@ -19,6 +19,7 @@ class UserParameters:
     proxy_port = attr.ib(convert=int, default=8080)
     proxy_user = attr.ib(convert=str, default="")
     proxy_password = attr.ib(convert=str, default="")
+    dark_theme = attr.ib(convert=bool, default=False)
 
     def proxy(self):
         if self.enable_proxy is True:
diff --git a/src/sakia/gui/navigation/network/table_model.py b/src/sakia/gui/navigation/network/table_model.py
index d0606fe43ffdaf3df4c21796f555a1a5757022d2..30594f64347ba420b76043a9d5876633de208505 100644
--- a/src/sakia/gui/navigation/network/table_model.py
+++ b/src/sakia/gui/navigation/network/table_model.py
@@ -112,6 +112,9 @@ class NetworkFilterProxyModel(QSortFilterProxyModel):
                 font.setBold(True)
                 return font
 
+        if role == Qt.BackgroundColorRole and self.app.parameters.dark_theme:
+            return source_data.darker()
+
         return source_data
 
 
@@ -296,6 +299,7 @@ class NetworkTableModel(QAbstractTableModel):
             return node[col]
         if role == Qt.BackgroundColorRole:
             return NetworkTableModel.node_colors[node[NetworkTableModel.columns_types.index('state')]]
+
         if role == Qt.ToolTipRole:
             return NetworkTableModel.node_states[node[NetworkTableModel.columns_types.index('state')]]()
 
diff --git a/src/sakia/gui/preferences.py b/src/sakia/gui/preferences.py
index 856b39aa5783477fffd55844418f9619f3e192f0..0976b485a4677dffbbd4dc5aed933fcc09bed385 100644
--- a/src/sakia/gui/preferences.py
+++ b/src/sakia/gui/preferences.py
@@ -49,6 +49,8 @@ class PreferencesDialog(QDialog, Ui_PreferencesDialog):
         self.edit_proxy_username.setText(self.app.parameters.proxy_user)
         self.edit_proxy_password.setText(self.app.parameters.proxy_password)
 
+        self.checkbox_dark_theme.setChecked(self.app.parameters.dark_theme)
+
     def handle_proxy_change(self):
         self.spinbox_proxy_port.setEnabled(self.checkbox_proxy.isChecked())
         self.edit_proxy_address.setEnabled(self.checkbox_proxy.isChecked())
@@ -64,7 +66,8 @@ class PreferencesDialog(QDialog, Ui_PreferencesDialog):
                                     proxy_address=self.edit_proxy_address.text(),
                                     proxy_port=self.spinbox_proxy_port.value(),
                                     proxy_user=self.edit_proxy_username.text(),
-                                    proxy_password=self.edit_proxy_password.text())
+                                    proxy_password=self.edit_proxy_password.text(),
+                                    dark_theme=self.checkbox_dark_theme.isChecked())
         self.app.save_parameters(parameters)
       # change UI translation
         self.app.switch_language()
diff --git a/src/sakia/gui/preferences.ui b/src/sakia/gui/preferences.ui
index dc5414d20c2e03914622e0beb80962c860e5410d..520a13aa4dda498b94180ef8a8f2637f322a92ae 100644
--- a/src/sakia/gui/preferences.ui
+++ b/src/sakia/gui/preferences.ui
@@ -96,7 +96,7 @@
      <item>
       <widget class="QStackedWidget" name="stackedWidget">
        <property name="currentIndex">
-        <number>2</number>
+        <number>1</number>
        </property>
        <widget class="QWidget" name="page">
         <layout class="QVBoxLayout" name="verticalLayout_7">
@@ -265,6 +265,33 @@
            </item>
           </layout>
          </item>
+         <item>
+          <layout class="QHBoxLayout" name="horizontalLayout_11">
+           <property name="topMargin">
+            <number>6</number>
+           </property>
+           <item>
+            <spacer name="horizontalSpacer_4">
+             <property name="orientation">
+              <enum>Qt::Horizontal</enum>
+             </property>
+             <property name="sizeHint" stdset="0">
+              <size>
+               <width>40</width>
+               <height>20</height>
+              </size>
+             </property>
+            </spacer>
+           </item>
+           <item>
+            <widget class="QCheckBox" name="checkbox_dark_theme">
+             <property name="text">
+              <string>Dark Theme compatibility</string>
+             </property>
+            </widget>
+           </item>
+          </layout>
+         </item>
          <item>
           <spacer name="verticalSpacer_2">
            <property name="orientation">