diff --git a/extensions/system-monitor/CHANGELOG.md b/extensions/system-monitor/CHANGELOG.md
index 21018e030af..b49d1bdce7e 100644
--- a/extensions/system-monitor/CHANGELOG.md
+++ b/extensions/system-monitor/CHANGELOG.md
@@ -1,5 +1,9 @@
# System Monitor Changelog
+## [Improvements] - 2025-03-17
+
+- Improve the `onAction()` so it can open the Activity Monitor directly without selecting a tab
+
## [New Additions] - 2025-03-11
- Add a new menubar feature to display system monitor information in the menubar
diff --git a/extensions/system-monitor/src/SystemInfo/SystemInfo.tsx b/extensions/system-monitor/src/SystemInfo/SystemInfo.tsx
index fe6bbf957f9..d7ef25d5707 100644
--- a/extensions/system-monitor/src/SystemInfo/SystemInfo.tsx
+++ b/extensions/system-monitor/src/SystemInfo/SystemInfo.tsx
@@ -12,7 +12,7 @@ export default function SystemInfo() {
title="System Info"
icon={Icon.Finder}
detail={}
- actions={}
+ actions={}
/>
);
}
diff --git a/extensions/system-monitor/src/components/Actions.tsx b/extensions/system-monitor/src/components/Actions.tsx
index 04bdb8513d9..73828efbacd 100644
--- a/extensions/system-monitor/src/components/Actions.tsx
+++ b/extensions/system-monitor/src/components/Actions.tsx
@@ -3,13 +3,13 @@ import { runAppleScript } from "@raycast/utils";
import { openActivityMonitorAppleScript } from "../utils";
interface ActionsProps {
- radioButtonNumber: number;
+ radioButtonNumber?: number;
}
export const Actions = ({ radioButtonNumber }: ActionsProps) => {
const handleRunAppleScript = async () => {
try {
- await runAppleScript(openActivityMonitorAppleScript(radioButtonNumber));
+ await runAppleScript(openActivityMonitorAppleScript(radioButtonNumber ?? null));
await closeMainWindow();
} catch (error) {
await showToast({
diff --git a/extensions/system-monitor/src/menubar-system-monitor.tsx b/extensions/system-monitor/src/menubar-system-monitor.tsx
index 7f9f0457716..c6a88b1e167 100644
--- a/extensions/system-monitor/src/menubar-system-monitor.tsx
+++ b/extensions/system-monitor/src/menubar-system-monitor.tsx
@@ -20,6 +20,7 @@ export default function Command() {
} = usePromise(async () => {
const osInfo = await getOSInfo();
const storage = await calculateDiskStorage();
+
return { osInfo, storage };
});
@@ -102,9 +103,10 @@ export default function Command() {
title="macOS"
subtitle={`${systemInfo?.osInfo.release}` || "Loading..."}
icon={Icon.Finder}
- onAction={() => {}}
+ onAction={() => runAppleScript(openActivityMonitorAppleScript())}
/>
+
{systemInfo?.storage.map((disk, index) => (
))}
+
runAppleScript(openActivityMonitorAppleScript(1))}
/>
+
runAppleScript(openActivityMonitorAppleScript(2))}
/>
+
runAppleScript(openActivityMonitorAppleScript(5))}
/>
+
runAppleScript(openActivityMonitorAppleScript(3))}
/>
diff --git a/extensions/system-monitor/src/utils.ts b/extensions/system-monitor/src/utils.ts
index 8ed9d37f829..72d91a53909 100644
--- a/extensions/system-monitor/src/utils.ts
+++ b/extensions/system-monitor/src/utils.ts
@@ -49,7 +49,15 @@ export const convertMinutesToHours = (minutes: number): string => {
return `${`0${(minutes / 60) ^ 0}`.slice(-2)}:${`0${minutes % 60}`.slice(-2)}`;
};
-export const openActivityMonitorAppleScript = (radioButtonNumber: number) => {
+export const openActivityMonitorAppleScript = (radioButtonNumber?: number | null): string => {
+ if (!radioButtonNumber) {
+ return `
+ tell application "Activity Monitor"
+ activate
+ end tell
+ `;
+ }
+
return `
tell application "Activity Monitor"
activate