diff --git a/src/main/index.ts b/src/main/index.ts
index 9cf7964..33a1534 100644
--- a/src/main/index.ts
+++ b/src/main/index.ts
@@ -112,6 +112,12 @@ function buildAppMenu(win: BrowserWindow): void {
{
label: 'View',
submenu: [
+ {
+ label: 'Focus Mode',
+ accelerator: 'CmdOrCtrl+Shift+G',
+ click: () => send(win, 'toggleFocusMode')
+ },
+ { type: 'separator' },
{
label: 'Toggle File Tree',
accelerator: 'CmdOrCtrl+Shift+1',
diff --git a/src/renderer/App.tsx b/src/renderer/App.tsx
index c79b102..54b7084 100644
--- a/src/renderer/App.tsx
+++ b/src/renderer/App.tsx
@@ -14,7 +14,7 @@ export default function App(): JSX.Element {
const {
setFileTree, activeFilePath, isDirty, markSaved, activeFileContent, theme, toggleTheme,
loadSession, revisionPanelOpen, toggleRevisionPanel, fontSize, setFontSize,
- openProjectSearch, clearActiveFile, initPrefs
+ openProjectSearch, clearActiveFile, initPrefs, focusMode, toggleFocusMode
} = useEditorStore()
const [sidebarOpen, setSidebarOpen] = useState(
() => localStorage.getItem('sidebarOpen') !== 'false'
@@ -72,6 +72,8 @@ export default function App(): JSX.Element {
openProjectSearch()
} else if (action === 'openSettings') {
setSettingsOpen(true)
+ } else if (action === 'toggleFocusMode') {
+ toggleFocusMode()
} else if (action === 'openProject') {
const picked = await window.api.pickProjectFolder()
if (picked) await switchProject(picked)
@@ -92,17 +94,23 @@ export default function App(): JSX.Element {
} else if ((e.metaKey || e.ctrlKey) && e.shiftKey && e.key === 'f') {
e.preventDefault()
openProjectSearch()
+ } else if ((e.metaKey || e.ctrlKey) && e.shiftKey && e.key === 'g') {
+ e.preventDefault()
+ toggleFocusMode()
+ } else if (e.key === 'Escape' && focusMode) {
+ toggleFocusMode()
}
}
window.addEventListener('keydown', handler)
return () => window.removeEventListener('keydown', handler)
- }, [activeFilePath, isDirty, activeFileContent])
+ }, [activeFilePath, isDirty, activeFileContent, focusMode])
return (
Hohoff Editor
@@ -121,6 +129,11 @@ export default function App(): JSX.Element {
/>
+