diff --git a/console/src/components/button/SubmitButton.vue b/console/src/components/button/SubmitButton.vue
index dc3d36e9f..597dbd588 100644
--- a/console/src/components/button/SubmitButton.vue
+++ b/console/src/components/button/SubmitButton.vue
@@ -1,4 +1,5 @@
diff --git a/console/src/modules/contents/posts/PostEditor.vue b/console/src/modules/contents/posts/PostEditor.vue
index 5f0824c3f..e56c94512 100644
--- a/console/src/modules/contents/posts/PostEditor.vue
+++ b/console/src/modules/contents/posts/PostEditor.vue
@@ -38,6 +38,7 @@ import { usePostUpdateMutate } from "./composables/use-post-update-mutate";
import { contentAnnotations } from "@/constants/annotations";
import { useAutoSaveContent } from "@/composables/use-auto-save-content";
import { useContentSnapshot } from "@/composables/use-content-snapshot";
+import { useSaveKeybinding } from "@/composables/use-save-keybinding";
const router = useRouter();
const { t } = useI18n();
@@ -381,6 +382,8 @@ const handlePreview = async () => {
previewModal.value = true;
previewPending.value = false;
};
+
+useSaveKeybinding(handleSave);
diff --git a/console/src/utils/device.ts b/console/src/utils/device.ts
new file mode 100644
index 000000000..57a34be8b
--- /dev/null
+++ b/console/src/utils/device.ts
@@ -0,0 +1 @@
+export const isMac = /macintosh|mac os x/i.test(navigator.userAgent);