diff --git a/OotD.Core/Controls/TransparencyMenuSlider.cs b/OotD.Core/Controls/TransparencyMenuSlider.cs
new file mode 100644
index 0000000..eb07443
--- /dev/null
+++ b/OotD.Core/Controls/TransparencyMenuSlider.cs
@@ -0,0 +1,60 @@
+using System;
+using System.Drawing;
+using System.Windows.Forms;
+using MACTrackBarLib;
+
+namespace OotD.Controls;
+
+public class TrackBarMenuItem : ToolStripControlHost
+{
+#pragma warning disable CS3003
+    public MACTrackBar TrackBar { get; }
+#pragma warning restore CS3003
+
+    public event EventHandler? ValueChanged;
+
+    public ToolTip ToolTip { get; } = new ToolTip(); // Add ToolTip property
+
+    public TrackBarMenuItem() : base(new MACTrackBar())
+    {
+        TrackBar = (MACTrackBar)Control;
+        TrackBar.Scroll += TrackBar_Scroll;
+    }
+
+    public Point Location
+    {
+        get { return TrackBar.Location; }
+        set { TrackBar.Location = value; }
+    }
+
+    public int Minimum
+    {
+        get { return TrackBar.Minimum; }
+        set { TrackBar.Minimum = value; }
+    }
+
+    public int Maximum
+    {
+        get { return TrackBar.Maximum; }
+        set { TrackBar.Maximum = value; }
+    }
+
+    public int Value
+    {
+        get { return TrackBar.Value; }
+        set { TrackBar.Value = value; }
+    }
+
+    public TickStyle TickStyle
+    {
+        get { return TrackBar.TickStyle; }
+        set { TrackBar.TickStyle = value; }
+    }
+
+    // Add more properties as needed...
+
+    private void TrackBar_Scroll(object? sender, EventArgs e)
+    {
+        ValueChanged?.Invoke(this, EventArgs.Empty);
+    }
+}
diff --git a/OotD.Core/Forms/MainForm.Designer.cs b/OotD.Core/Forms/MainForm.Designer.cs
index 9b4738b..90f5d9e 100644
--- a/OotD.Core/Forms/MainForm.Designer.cs
+++ b/OotD.Core/Forms/MainForm.Designer.cs
@@ -1,7 +1,10 @@
 using System.ComponentModel;
+using System.Drawing;
 using System.Windows.Forms;
 using AxOLXLib;
 using MACTrackBarLib;
+using OotD.Controls;
+using OotD.Utility;
 
 namespace OotD.Forms
 {
@@ -23,7 +26,7 @@ protected override void Dispose(bool disposing)
                 components.Dispose();
 
                 // Ensure we cleanup the Outlook resources, but do not call Quit() on the Outlook
-                // app object or we will inadvertantly close any full blown Outlook instances 
+                // app object or we will inadvertently close any full blown Outlook instances 
                 // that are open.
                 OutlookFolderViews = null;
                 _outlookFolder = null;
@@ -54,6 +57,7 @@ private void InitializeComponent()
             this.OutlookViewsMenu = new System.Windows.Forms.ToolStripMenuItem();
             this.DefaultOutlookViewSubMenu = new System.Windows.Forms.ToolStripMenuItem();
             this.Separator3 = new System.Windows.Forms.ToolStripSeparator();
+            this.Separator7 = new System.Windows.Forms.ToolStripSeparator();
             this.RenameInstanceMenu = new System.Windows.Forms.ToolStripMenuItem();
             this.Separator4 = new System.Windows.Forms.ToolStripSeparator();
             this.HideShowMenu = new System.Windows.Forms.ToolStripMenuItem();
@@ -76,7 +80,9 @@ private void InitializeComponent()
             this.DayButton = new System.Windows.Forms.Button();
             this.LabelBackground = new System.Windows.Forms.Label();
             this.ViewControlHostPanel = new System.Windows.Forms.Panel();
+            this.OpacityLabel = new ToolStripLabel("Opacity: ##%");
             this.OutlookViewControl = new AxOLXLib.AxViewCtl();
+            this.TransparencyMenuSlider = new TrackBarMenuItem();
             this.NotifyIcon = new System.Windows.Forms.NotifyIcon(this.components);
             this.ToolTip = new System.Windows.Forms.ToolTip(this.components);
             this.WindowMessageTimer = new System.Windows.Forms.Timer(this.components);
@@ -106,6 +112,9 @@ private void InitializeComponent()
             this.DisableEnableEditingMenu,
             this.Separator5,
             this.RemoveInstanceMenu,
+            this.Separator7,
+            this.OpacityLabel,
+            this.TransparencyMenuSlider,
             this.Separator6,
             this.ExitMenu});
             this.TrayMenu.Name = "trayMenu";
@@ -157,6 +166,20 @@ private void InitializeComponent()
             // 
             this.Separator1.Name = "Separator1";
             this.Separator1.Size = new System.Drawing.Size(183, 6);
+            //
+            // TransparencyMenuSlider
+            //
+            this.TransparencyMenuSlider.Name = "TransparencyMenuSlider";
+            this.TransparencyMenuSlider.AutoSize = false;
+            this.TransparencyMenuSlider.Location = new System.Drawing.Point(20, 0);
+            this.TransparencyMenuSlider.Margin = new System.Windows.Forms.Padding(0);
+            this.TransparencyMenuSlider.Maximum = 100;
+            this.TransparencyMenuSlider.Minimum = 30;
+            this.TransparencyMenuSlider.Size = new System.Drawing.Size(150, 25);
+            this.TransparencyMenuSlider.Font = new Font(this.TransparencyMenuSlider.Font.FontFamily, 1f);
+            this.TransparencyMenuSlider.TrackBar.TickStyle = System.Windows.Forms.TickStyle.None;
+            this.TransparencyMenuSlider.Value = 50;
+            this.TransparencyMenuSlider.ValueChanged += TransparencyMenuSlider_ValueChanged;
             // 
             // SelectFolderMenu
             // 
@@ -504,7 +527,7 @@ private void InitializeComponent()
             this.MinimizeBox = false;
             this.MinimumSize = new System.Drawing.Size(325, 125);
             this.Name = "MainForm";
-            this.Opacity = 0.5D;
+            this.Opacity = 1;
             this.Padding = new System.Windows.Forms.Padding(4);
             this.ShowInTaskbar = false;
             this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide;
@@ -542,7 +565,9 @@ private void InitializeComponent()
         private ToolStripMenuItem DefaultOutlookViewSubMenu;
         private ToolStripSeparator Separator3;
         private ToolStripSeparator Separator2;
+        private ToolStripSeparator Separator7;
         private ToolStripMenuItem DisableEnableEditingMenu;
+        private TrackBarMenuItem TransparencyMenuSlider;
         internal Panel HeaderPanel;
         private Panel ViewControlHostPanel;
         private AxViewCtl OutlookViewControl;
@@ -558,6 +583,7 @@ private void InitializeComponent()
         private Button ButtonNext;
         private Button ButtonPrevious;
         public Label LabelCurrentDate;
+        public ToolStripLabel OpacityLabel;
 #pragma warning disable CS3003 // Type is not CLS-compliant
         public MACTrackBar TransparencySlider;
         private Label LabelBackground;
diff --git a/OotD.Core/Forms/MainForm.cs b/OotD.Core/Forms/MainForm.cs
index de7c39a..8b34492 100644
--- a/OotD.Core/Forms/MainForm.cs
+++ b/OotD.Core/Forms/MainForm.cs
@@ -12,6 +12,7 @@
 using Microsoft.Office.Interop.Outlook;
 using Microsoft.Win32;
 using NLog;
+using OotD.Controls;
 using OotD.Enums;
 using OotD.Events;
 using OotD.Preferences;
@@ -345,6 +346,8 @@ private void SetWindowOpacity()
         }
 
         TransparencySlider.Value = (int)(Preferences.Opacity * 100);
+        TransparencyMenuSlider.Value = (int)(Preferences.Opacity * 100);
+        OpacityLabel.Text = Resources.Opacity + Math.Round(Preferences.Opacity * 100) + Resources.Percentage;
     }
 
     /// <summary>
@@ -1234,7 +1237,7 @@ private CurrentCalendarView GetCurrentCalendarViewMode()
         return mode;
     }
 
-    private void TransparencySlider_ValueChanged(object sender, EventArgs e, decimal value)
+    private void TransparencySlider_ValueChanged(object sender, EventArgs args, decimal value)
     {
         var opacityVal = (double)(value / 100);
         if (Math.Abs(opacityVal - 1) < double.Epsilon)
@@ -1242,8 +1245,29 @@ private void TransparencySlider_ValueChanged(object sender, EventArgs e, decimal
             opacityVal = 0.99;
         }
 
+        OpacityLabel.Text = Resources.Opacity + Math.Round(opacityVal * 100) + Resources.Percentage;
+
         Opacity = opacityVal;
         Preferences.Opacity = opacityVal;
+
+        // Keep the other slider in sync
+        TransparencyMenuSlider.Value = (int)(opacityVal * 100);
+    }
+
+    private void TransparencyMenuSlider_ValueChanged(object sender, EventArgs e)
+    {
+        var trackBar = (TrackBarMenuItem)sender;
+        var opacityVal = (double)trackBar.Value / 100; // Get the value from TransparencyMenuSlider
+        if (Math.Abs(opacityVal - 1) < double.Epsilon)
+        {
+            opacityVal = 0.99;
+        }
+
+        // Keep the other slider in sync
+        TransparencySlider.Value = (int)(opacityVal * 100);
+
+        // Trigger the ValueChanged event for TransparencySlider to make sure it's persisted
+        TransparencySlider_ValueChanged(TransparencySlider, EventArgs.Empty, (decimal)(opacityVal * 100));
     }
 
     private void WindowMessageTimer_Tick(object sender, EventArgs e)
@@ -1255,7 +1279,7 @@ private void WindowMessageTimer_Tick(object sender, EventArgs e)
 
     /// <summary>
     /// Standard windows message handler.  The main reason this exists is to ensure 
-    /// the OotD window always stays behind other windows.  A side affect of that is that even
+    /// the OotD window always stays behind other windows.  A side effect of that is that even
     /// context menus from OotD show up behind the main window, so we have to do some trickery below
     /// to handle that case and make sure that the outlook view control context menu shows up in front of 
     /// the main window.  Since we don't have access to the context menu directly, we have to bring the 
diff --git a/OotD.Core/OotD.Core.csproj b/OotD.Core/OotD.Core.csproj
index 8b579d3..235c3b1 100644
--- a/OotD.Core/OotD.Core.csproj
+++ b/OotD.Core/OotD.Core.csproj
@@ -121,4 +121,17 @@
     <PackageReference Include="NLog.Schema" Version="5.2.8" />
     <PackageReference Include="TaskScheduler" Version="2.10.1" />
   </ItemGroup>
+  <ItemGroup>
+    <Compile Update="Properties\Resources.Designer.cs">
+      <DesignTime>True</DesignTime>
+      <AutoGen>True</AutoGen>
+      <DependentUpon>Resources.resx</DependentUpon>
+    </Compile>
+  </ItemGroup>
+  <ItemGroup>
+    <EmbeddedResource Update="Properties\Resources.resx">
+      <Generator>ResXFileCodeGenerator</Generator>
+      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+    </EmbeddedResource>
+  </ItemGroup>
 </Project>
\ No newline at end of file
diff --git a/OotD.Core/Properties/Resources.Designer.cs b/OotD.Core/Properties/Resources.Designer.cs
index 0b14349..ad9372b 100644
--- a/OotD.Core/Properties/Resources.Designer.cs
+++ b/OotD.Core/Properties/Resources.Designer.cs
@@ -19,7 +19,7 @@ namespace OotD.Properties {
     // class via a tool like ResGen or Visual Studio.
     // To add or remove a member, edit your .ResX file then rerun ResGen
     // with the /str option, or rebuild your VS project.
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
     internal class Resources {
@@ -850,7 +850,7 @@ internal static string OotdRunning {
         }
         
         /// <summary>
-        ///   Looks up a localized string similar to Opacity:.
+        ///   Looks up a localized string similar to Opacity: .
         /// </summary>
         internal static string Opacity {
             get {
@@ -896,7 +896,7 @@ internal static string OutlookLocationKeyNotFoundError {
         }
         
         /// <summary>
-        ///   Looks up a localized string similar to OotD detected that Outlook is not running. Perhaps it crashed or was closed accidentally. OotD cannot run without it, please close OotD and restart it..
+        ///   Looks up a localized string similar to OotD detected that Outlook is not running. Perhaps it crashed or was closed accidentally. OotD cannot run without it and will need to be restarted. OotD will now close. .
         /// </summary>
         internal static string OutlookNotRunning {
             get {
@@ -914,6 +914,15 @@ internal static System.Drawing.Bitmap PayPal {
             }
         }
         
+        /// <summary>
+        ///   Looks up a localized string similar to %.
+        /// </summary>
+        internal static string Percentage {
+            get {
+                return ResourceManager.GetString("Percentage", resourceCulture);
+            }
+        }
+        
         /// <summary>
         ///   Looks up a localized string similar to Position.
         /// </summary>
@@ -1227,7 +1236,7 @@ internal static string Windows_RPC_Server_is_not_available {
         ///	&lt;viewname&gt;Calendar&lt;/viewname&gt;
         ///	&lt;mode&gt;4&lt;/mode&gt;
         ///	&lt;showfullweek&gt;0&lt;/showfullweek&gt;
-        ///  &lt;showworkweek&gt;1&lt;/showworkweek&gt;	
+        ///    &lt;showworkweek&gt;1&lt;/showworkweek&gt;	
         ///&lt;/view&gt;.
         /// </summary>
         internal static string WorkWeekXML {
diff --git a/OotD.Core/Properties/Resources.resx b/OotD.Core/Properties/Resources.resx
index 7e8d2c7..9726186 100644
--- a/OotD.Core/Properties/Resources.resx
+++ b/OotD.Core/Properties/Resources.resx
@@ -112,10 +112,10 @@
     <value>2.0</value>
   </resheader>
   <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </resheader>
   <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </resheader>
   <data name="Position" xml:space="preserve">
     <value>Position</value>
@@ -144,7 +144,7 @@
   <data name="CancelButton" xml:space="preserve">
     <value>&amp;Cancel</value>
   </data>
-  <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+  <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
   <data name="_8" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\Icons\8.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
@@ -224,7 +224,7 @@
     <value>Width</value>
   </data>
   <data name="Opacity" xml:space="preserve">
-    <value>Opacity:</value>
+    <value>Opacity: </value>
   </data>
   <data name="ErrorSettingFolder" xml:space="preserve">
     <value>There was an error changing to the folder you specified. It may not be compatible with Outlook on the Desktop.</value>
@@ -492,4 +492,7 @@ If you have 32-bit Office installed, please use the 32-bit Outlook on the Deskto
   <data name="OutlookNotRunning" xml:space="preserve">
     <value>OotD detected that Outlook is not running. Perhaps it crashed or was closed accidentally. OotD cannot run without it and will need to be restarted. OotD will now close. </value>
   </data>
+  <data name="Percentage" xml:space="preserve">
+    <value>%</value>
+  </data>
 </root>
\ No newline at end of file
diff --git a/OotD.x64/OotD.x64.csproj b/OotD.x64/OotD.x64.csproj
index 86bf21a..c30e708 100644
--- a/OotD.x64/OotD.x64.csproj
+++ b/OotD.x64/OotD.x64.csproj
@@ -77,6 +77,7 @@
       <DependentUpon>Resources.resx</DependentUpon>
     </Compile>
     <Compile Include="..\OotD.Core\Startup.cs" Link="Startup.cs" />
+    <Compile Include="..\OotD.Core\Controls\TransparencyMenuSlider.cs" Link="Controls\TransparencyMenuSlider.cs" />
     <Compile Include="..\OotD.Core\Utility\OutlookFolderDefinition.cs" Link="Utility\OutlookFolderDefinition.cs" />
     <Compile Include="..\OotD.Core\Utility\RegistryHelper.cs" Link="Utility\RegistryHelper.cs" />
     <Compile Include="..\OotD.Core\Utility\StickyWindow.cs" Link="Utility\StickyWindow.cs" />
diff --git a/OotD.x86/OotD.x86.csproj b/OotD.x86/OotD.x86.csproj
index 3920fc3..2b57b01 100644
--- a/OotD.x86/OotD.x86.csproj
+++ b/OotD.x86/OotD.x86.csproj
@@ -73,6 +73,7 @@
       <DependentUpon>Resources.resx</DependentUpon>
     </Compile>
     <Compile Include="..\OotD.Core\Startup.cs" Link="Startup.cs" />
+    <Compile Include="..\OotD.Core\Controls\TransparencyMenuSlider.cs" Link="Controls\TransparencyMenuSlider.cs" />
     <Compile Include="..\OotD.Core\Utility\OutlookFolderDefinition.cs" Link="Utility\OutlookFolderDefinition.cs" />
     <Compile Include="..\OotD.Core\Utility\RegistryHelper.cs" Link="Utility\RegistryHelper.cs" />
     <Compile Include="..\OotD.Core\Utility\StickyWindow.cs" Link="Utility\StickyWindow.cs" />
diff --git a/Setup Script.iss b/Setup Script.iss
index 5b95343..567aad2 100644
--- a/Setup Script.iss	
+++ b/Setup Script.iss	
@@ -78,7 +78,7 @@ Name: {group}\{cm:UninstallProgram,{#MyAppName}}; Filename: {uninstallexe}
 [Registry]
 Root: "HKCU"; Subkey: "Software\Microsoft\Windows\CurrentVersion\Run"; ValueName: "OutlookOnDesktop"; ValueType: string; Flags: deletevalue;
 Root: "HKCU"; Subkey: "Software\SMR Computer Services\Outlook On The Desktop"; Flags: createvalueifdoesntexist uninsdeletekey
-Root: "HKCU"; Subkey: "Software\SMR Computer Services\Outlook On The Desktop\"; ValueType: string; ValueName: "First Run"; ValueData: "True"
+Root: "HKCU"; Subkey: "Software\SMR Computer Services\Outlook On The Desktop\"; ValueType: string; ValueName: "FirstRun"; ValueData: "True"
 Root: "HKCU"; Subkey: "Software\SMR Computer Services\Outlook On The Desktop\AutoUpdate"; Flags: createvalueifdoesntexist uninsdeletekey
 
 [Dirs]
@@ -160,4 +160,4 @@ Name: {app}; Type: dirifempty
 
 [InstallDelete]
 Name: C:\{app}\*; Type: filesandordirs
-Name: C:\{app}; Type: dirifempty
\ No newline at end of file
+Name: C:\{app}; Type: dirifempty