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