From 346e79b34d2ddeeefa2ed8f8243ac5f0df8ad28b Mon Sep 17 00:00:00 2001
From: ameer2468 <33054370+ameer2468@users.noreply.github.com>
Date: Tue, 26 Aug 2025 11:55:28 +0300
Subject: [PATCH 1/2] shouldnt render the App settings group since they are for
 mac only

---
 .../routes/(window-chrome)/settings/general.tsx    | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/apps/desktop/src/routes/(window-chrome)/settings/general.tsx b/apps/desktop/src/routes/(window-chrome)/settings/general.tsx
index 1b07be1c39..f29b4f3be7 100644
--- a/apps/desktop/src/routes/(window-chrome)/settings/general.tsx
+++ b/apps/desktop/src/routes/(window-chrome)/settings/general.tsx
@@ -164,6 +164,7 @@ function Inner(props: { initialStore: GeneralSettingsStore | null }) {
 
 	type SettingsGroup = {
 		title: string;
+		os?: "macos" | "windows" | "linux";
 		titleStyling?: string;
 		items: SettingItem[];
 	};
@@ -190,6 +191,7 @@ function Inner(props: { initialStore: GeneralSettingsStore | null }) {
 		},
 		{
 			title: "App",
+			os: "macos",
 			items: [
 				{
 					label: "Hide dock icon",
@@ -383,11 +385,12 @@ function Inner(props: { initialStore: GeneralSettingsStore | null }) {
 
 					<For each={settingsGroups}>
 						{(group) => (
-							<div>
-								<h3
-									class={cx(
-										"mb-3 text-sm text-gray-12 w-fit",
-										group.titleStyling,
+							<Show when={group.os === ostype || !group.os}>
+								<div>
+									<h3
+										class={cx(
+											"mb-3 text-sm text-gray-12 w-fit",
+											group.titleStyling,
 									)}
 								>
 									{group.title}
@@ -477,6 +480,7 @@ function Inner(props: { initialStore: GeneralSettingsStore | null }) {
 									</For>
 								</div>
 							</div>
+							</Show>
 						)}
 					</For>
 

From 64c3ab8cf12117b6b66ebf1379b445f5f458b74f Mon Sep 17 00:00:00 2001
From: ameer2468 <33054370+ameer2468@users.noreply.github.com>
Date: Tue, 26 Aug 2025 12:09:57 +0300
Subject: [PATCH 2/2] formatting

---
 .../(window-chrome)/settings/general.tsx      | 172 +++++++++---------
 1 file changed, 88 insertions(+), 84 deletions(-)

diff --git a/apps/desktop/src/routes/(window-chrome)/settings/general.tsx b/apps/desktop/src/routes/(window-chrome)/settings/general.tsx
index f29b4f3be7..5d3ec919aa 100644
--- a/apps/desktop/src/routes/(window-chrome)/settings/general.tsx
+++ b/apps/desktop/src/routes/(window-chrome)/settings/general.tsx
@@ -391,95 +391,99 @@ function Inner(props: { initialStore: GeneralSettingsStore | null }) {
 										class={cx(
 											"mb-3 text-sm text-gray-12 w-fit",
 											group.titleStyling,
-									)}
-								>
-									{group.title}
-								</h3>
-								<div class="px-3 rounded-xl border divide-y divide-gray-3 border-gray-3 bg-gray-2">
-									<For each={group.items}>
-										{(item) => {
-											// Check OS compatibility
-											if (
-												item.type === "toggle" &&
-												item.os &&
-												item.os !== ostype
-											) {
-												return null;
-											}
-
-											if (item.type === "toggle") {
-												return (
-													<ToggleSetting
-														pro={group.title === "Cap Pro"}
-														label={item.label}
-														description={item.description}
-														value={item.value}
-														onChange={item.onChange}
-													/>
-												);
-											} else if (item.type === "select") {
+										)}
+									>
+										{group.title}
+									</h3>
+									<div class="px-3 rounded-xl border divide-y divide-gray-3 border-gray-3 bg-gray-2">
+										<For each={group.items}>
+											{(item) => {
+												// Check OS compatibility
 												if (
-													item.label === "Main window recording start behaviour"
-												) {
-													return renderRecordingSelect(
-														item.label,
-														item.description,
-														() => item.value,
-														item.onChange,
-														[
-															{ text: "Close", value: "close" },
-															{ text: "Minimise", value: "minimise" },
-														],
-													);
-												} else if (
-													item.label === "Studio recording finish behaviour"
+													item.type === "toggle" &&
+													item.os &&
+													item.os !== ostype
 												) {
-													return renderRecordingSelect(
-														item.label,
-														item.description,
-														() => item.value,
-														item.onChange,
-														[
-															{ text: "Open editor", value: "openEditor" },
-															{ text: "Show in overlay", value: "showOverlay" },
-														],
-													);
-												} else if (item.label === "Recording countdown") {
-													return renderRecordingSelect(
-														item.label,
-														item.description,
-														() => item.value,
-														item.onChange,
-														[
-															{ text: "Off", value: 0 },
-															{ text: "3 seconds", value: 3 },
-															{ text: "5 seconds", value: 5 },
-															{ text: "10 seconds", value: 10 },
-														],
-													);
-												} else if (
-													item.label === "After deleting recording behaviour"
-												) {
-													return renderRecordingSelect(
-														item.label,
-														item.description,
-														() => item.value,
-														item.onChange,
-														[
-															{ text: "Do Nothing", value: "doNothing" },
-															{
-																text: "Reopen Recording Window",
-																value: "reopenRecordingWindow",
-															},
-														],
+													return null;
+												}
+
+												if (item.type === "toggle") {
+													return (
+														<ToggleSetting
+															pro={group.title === "Cap Pro"}
+															label={item.label}
+															description={item.description}
+															value={item.value}
+															onChange={item.onChange}
+														/>
 													);
+												} else if (item.type === "select") {
+													if (
+														item.label ===
+														"Main window recording start behaviour"
+													) {
+														return renderRecordingSelect(
+															item.label,
+															item.description,
+															() => item.value,
+															item.onChange,
+															[
+																{ text: "Close", value: "close" },
+																{ text: "Minimise", value: "minimise" },
+															],
+														);
+													} else if (
+														item.label === "Studio recording finish behaviour"
+													) {
+														return renderRecordingSelect(
+															item.label,
+															item.description,
+															() => item.value,
+															item.onChange,
+															[
+																{ text: "Open editor", value: "openEditor" },
+																{
+																	text: "Show in overlay",
+																	value: "showOverlay",
+																},
+															],
+														);
+													} else if (item.label === "Recording countdown") {
+														return renderRecordingSelect(
+															item.label,
+															item.description,
+															() => item.value,
+															item.onChange,
+															[
+																{ text: "Off", value: 0 },
+																{ text: "3 seconds", value: 3 },
+																{ text: "5 seconds", value: 5 },
+																{ text: "10 seconds", value: 10 },
+															],
+														);
+													} else if (
+														item.label === "After deleting recording behaviour"
+													) {
+														return renderRecordingSelect(
+															item.label,
+															item.description,
+															() => item.value,
+															item.onChange,
+															[
+																{ text: "Do Nothing", value: "doNothing" },
+																{
+																	text: "Reopen Recording Window",
+																	value: "reopenRecordingWindow",
+																},
+															],
+														);
+													}
 												}
-											}
-											return null;
-										}}
-									</For>
+												return null;
+											}}
+										</For>
+									</div>
 								</div>
-							</div>
 							</Show>
 						)}
 					</For>
