Index: src/mlx/config.py
===================================================================
--- src/mlx/config.py	(revision 1097)
+++ src/mlx/config.py	(revision 1098)
@@ -224,4 +224,5 @@
         self._clearBrowserCacheOnStart = False
         self._language = ""
+        self._mainWindowResizable = False
         self._hideMinimizedWindow = True
         self._quitOnClose = False
@@ -335,4 +336,16 @@
 
     @property
+    def mainWindowResizable(self):
+        """Get whether a the main window should be resizable."""
+        return self._mainWindowResizable
+
+    @mainWindowResizable.setter
+    def mainWindowResizable(self, mainWindowResizable):
+        """Set whether a minimized window should be hidden."""
+        if mainWindowResizable!=self._mainWindowResizable:
+            self._mainWindowResizable = mainWindowResizable
+            self._modified = True
+
+    @property
     def hideMinimizedWindow(self):
         """Get whether a minimized window should be hidden."""
@@ -773,4 +786,7 @@
         self._language = self._get(config, "general", "language", "")
 
+        self._mainWindowResizable = self._getBoolean(config, "general",
+                                                     "mainWindowResizable",
+                                                     False)
         self._hideMinimizedWindow = self._getBoolean(config, "general",
                                                      "hideMinimizedWindow",
@@ -884,4 +900,6 @@
         if self._language:
             config.set("general", "language", self._language)
+        config.set("general", "mainWindowResizable",
+                   "yes" if self._mainWindowResizable else "no")
         config.set("general", "hideMinimizedWindow",
                    "yes" if self._hideMinimizedWindow else "no")
@@ -1056,4 +1074,5 @@
         print("  language:", self._language)
 
+        print("  mainWindowResizable:", self._mainWindowResizable)
         print("  hideMinimizedWindow:", self._hideMinimizedWindow)
         print("  quitOnClose:", self._quitOnClose)
Index: src/mlx/gui/gui.py
===================================================================
--- src/mlx/gui/gui.py	(revision 1097)
+++ src/mlx/gui/gui.py	(revision 1098)
@@ -118,5 +118,5 @@
         window.set_title(WINDOW_TITLE_BASE)
         window.set_icon_from_file(os.path.join(iconDirectory, "logo.ico"))
-        window.set_resizable(False)
+        window.set_resizable(self.config.mainWindowResizable)
         window.connect("delete-event", self.deleteMainWindow)
         window.connect("window-state-event", self._handleMainWindowState)
@@ -1432,4 +1432,5 @@
         self._clearHotkeys()
         self._preferences.run(self.config)
+        self._mainWindow.set_resizable(self.config.mainWindowResizable)
         self._setupTimeSync()
         self._listenHotkeys()
Index: src/mlx/gui/prefs.py
===================================================================
--- src/mlx/gui/prefs.py	(revision 1094)
+++ src/mlx/gui/prefs.py	(revision 1098)
@@ -231,4 +231,5 @@
 
         self._setLanguage(config.language)
+        self._mainWindowResizable.set_active(config.mainWindowResizable)
         self._hideMinimizedWindow.set_active(config.hideMinimizedWindow)
         self._quitOnClose.set_active(config.quitOnClose)
@@ -287,4 +288,5 @@
         """Setup the given config from the settings in the dialog."""
         config.language = self._getLanguage()
+        config.mainWindowResizable = self._mainWindowResizable.get_active()
         config.hideMinimizedWindow = self._hideMinimizedWindow.get_active()
         config.quitOnClose = self._quitOnClose.get_active()
@@ -369,4 +371,9 @@
         self._warnedRestartNeeded = False
 
+        self._mainWindowResizable = Gtk.CheckButton(xstr("prefs_mainWindowResizable"))
+        self._mainWindowResizable.set_use_underline(True)
+        self._mainWindowResizable.set_tooltip_text(xstr("prefs_mainWindowResizable_tooltip"))
+        guiBox.pack_start(self._mainWindowResizable, False, False, 4)
+
         self._hideMinimizedWindow = Gtk.CheckButton(xstr("prefs_hideMinimizedWindow"))
         self._hideMinimizedWindow.set_use_underline(True)
