diff --git a/README.md b/README.md
index a1f478e39a..dc36145337 100644
--- a/README.md
+++ b/README.md
@@ -24,7 +24,9 @@ Clone the repository including submodules
 Build and run
 
 - Using Visual Studio 2017, Rider or Visual Studio Code (configurations are included)
-- From command line using `dotnet run --project osu.Desktop`
+- From command line using `dotnet run --project osu.Desktop`. When building for non-development purposes, add `-c Release` to gain higher performance.
+
+Note: If you run from command line under linux, you will need to prefix the output folder to your `LD_LIBRARY_PATH`. See `.vscode/launch.json` for an example
 
 If you run into issues building you may need to restore nuget packages (commonly via `dotnet restore`). Visual Studio Code users must run `Restore` task from debug tab before attempt to build.
 
diff --git a/osu.Game/Overlays/Settings/Sections/Graphics/LayoutSettings.cs b/osu.Game/Overlays/Settings/Sections/Graphics/LayoutSettings.cs
index 42028f6bd5..548d49bd36 100644
--- a/osu.Game/Overlays/Settings/Sections/Graphics/LayoutSettings.cs
+++ b/osu.Game/Overlays/Settings/Sections/Graphics/LayoutSettings.cs
@@ -1,8 +1,12 @@
 // Copyright (c) 2007-2018 ppy Pty Ltd <contact@ppy.sh>.
 // Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
 
+using System.Collections.Generic;
+using System.Drawing;
+using System.Linq;
 using osu.Framework.Allocation;
 using osu.Framework.Configuration;
+using osu.Framework.Extensions.IEnumerableExtensions;
 using osu.Framework.Graphics;
 using osu.Framework.Graphics.Containers;
 
@@ -15,21 +19,36 @@ namespace osu.Game.Overlays.Settings.Sections.Graphics
         private FillFlowContainer letterboxSettings;
 
         private Bindable<bool> letterboxing;
+        private Bindable<Size> sizeFullscreen;
+
+        private OsuGameBase game;
+        private SettingsDropdown<Size> resolutionDropdown;
+        private SettingsEnumDropdown<WindowMode> windowModeDropdown;
 
         private const int transition_duration = 400;
 
         [BackgroundDependencyLoader]
-        private void load(FrameworkConfigManager config)
+        private void load(FrameworkConfigManager config, OsuGameBase game)
         {
+            this.game = game;
+
             letterboxing = config.GetBindable<bool>(FrameworkSetting.Letterboxing);
+            sizeFullscreen = config.GetBindable<Size>(FrameworkSetting.SizeFullscreen);
 
             Children = new Drawable[]
             {
-                new SettingsEnumDropdown<WindowMode>
+                windowModeDropdown = new SettingsEnumDropdown<WindowMode>
                 {
                     LabelText = "Screen mode",
                     Bindable = config.GetBindable<WindowMode>(FrameworkSetting.WindowMode),
                 },
+                resolutionDropdown = new SettingsDropdown<Size>
+                {
+                    LabelText = "Resolution",
+                    ShowsDefaultIndicator = false,
+                    Items = getResolutions(),
+                    Bindable = sizeFullscreen
+                },
                 new SettingsCheckbox
                 {
                     LabelText = "Letterboxing",
@@ -62,15 +81,34 @@ namespace osu.Game.Overlays.Settings.Sections.Graphics
                 },
             };
 
-            letterboxing.ValueChanged += isVisible =>
+            windowModeDropdown.Bindable.BindValueChanged(windowMode =>
+            {
+                if (windowMode == WindowMode.Fullscreen)
+                {
+                    resolutionDropdown.Show();
+                    sizeFullscreen.TriggerChange();
+                }
+                else
+                    resolutionDropdown.Hide();
+            }, true);
+
+            letterboxing.BindValueChanged(isVisible =>
             {
                 letterboxSettings.ClearTransforms();
                 letterboxSettings.AutoSizeAxes = isVisible ? Axes.Y : Axes.None;
 
                 if (!isVisible)
                     letterboxSettings.ResizeHeightTo(0, transition_duration, Easing.OutQuint);
-            };
-            letterboxing.TriggerChange();
+            }, true);
         }
+
+        private IEnumerable<KeyValuePair<string, Size>> getResolutions() =>
+            game.Window?.AvailableResolutions?
+                .Where(r => r.Width >= 800 && r.Height >= 600)
+                .OrderByDescending(r => r.Width)
+                .ThenByDescending(r => r.Height)
+                .Select(res => new KeyValuePair<string, Size>($"{res.Width}x{res.Height}", new Size(res.Width, res.Height)))
+                .Distinct()
+                .ToList() ?? new KeyValuePair<string, Size>("Default", new Size(9999, 9999)).Yield();
     }
 }