Theme
Dark Mode
Philo automatically follows your system theme preference: macOS:System Settings → Appearance → Light/Dark Automatic switching: Philo uses CSS media queries to detect and apply dark mode:
- Background: White
- Text: Gray-900
- Accents: Violet-600
- Background: Gray-900
- Text: White
- Accents: Violet-400
File Organization
Filename Patterns
Customize how your daily notes are organized with filename patterns. Access: Settings (⌘,) → Filename Pattern Available tokens:{YYYY}- Year (e.g.,2026){MM}- Month (e.g.,03){DD}- Day (e.g.,04)
src/services/paths.ts:124-140
Folder Structure
Organize your vault with custom folders:- Daily logs folder
- Excalidraw folder
- Assets folder
src/services/settings.ts:85-98
Storage Location
Custom Vault Directory
Store your journal in any location: Use cases:- Sync via Dropbox:
~/Dropbox/Journal/ - iCloud Drive:
~/Library/Mobile Documents/com~apple~CloudDocs/Journal/ - Existing Obsidian vault:
~/Documents/Obsidian/MyVault/ - Network drive:
/Volumes/NAS/Journal/
- Open Settings (⌘,)
- Click Choose… next to Vault Location
- Select directory
- Configure Daily logs folder
- Click Save
src/services/paths.ts:43-60
Obsidian Integration
Using Philo with Obsidian
Philo can work alongside Obsidian in the same vault: Setup:- Point Philo’s vault to your Obsidian vault
- Set Daily logs folder to match Obsidian’s daily notes folder
- Philo will auto-detect other settings
- Daily notes
- Task lists
- Images
- Frontmatter
- Excalidraw embeds
src/services/obsidian.ts
Obsidian Auto-Detection
When you select an Obsidian vault, Philo automatically detects: From.obsidian/daily-notes.json:
- Daily notes folder
- Filename format (converted to Philo pattern)
.obsidian/plugins/obsidian-excalidraw-plugin/data.json:
- Excalidraw folder
.obsidian/app.json:
- Assets folder
src/components/settings/SettingsModal.tsx:77-93
Editor Customization
Fonts
Philo uses carefully selected fonts: Body text:- System font stack for optimal readability
- Instrument Serif (italic) for date headers
- Creates a distinctive journal aesthetic
- IBM Plex Mono for monospaced content
- Used in settings, filenames, and code blocks
Bubble Menu
The bubble menu appears when you select text, offering:- Bold
- Italic
- Strikethrough
- Code
- Build (⌘↵)
src/components/editor/EditorBubbleMenu.tsx
Tasks
Recurring Task Intervals
Create custom recurring tasks with flexible intervals: Supported formats:#daily- Every day#weekly- Every week#monthly- Every month#2days- Every 2 days#3weeks- Every 3 weeks#45days- Every 45 days
- Add a task:
- [ ] Exercise #daily - Check it off:
- [x] Exercise #daily - On next app launch, it reappears unchecked
src/services/tasks.ts
Task Rollover
Unchecked tasks automatically move to today’s note on app launch. Example: Yesterday’s note:src/services/tasks.ts
Widgets
Widget Library
Save and reuse your favorite widgets:- Generate a widget (⌘↵)
- Click Save to library
- Access anytime with ⌘J
- Insert into any note
Widget Behavior
Temporary by default: Generated widgets are disposable unless you explicitly save them. Save to library: Click the save button to add a widget to your permanent library. Reuse: Press ⌘J to browse saved widgets and insert them anywhere.Advanced Customization
Settings File
Direct access to settings JSON:src/services/settings.ts:36-57
File System Scope
Philo uses Tauri’s scoped filesystem access. When you change vault directory, Philo automatically extends its permissions. Manual scope extension: If you move files outside Philo, you may need to reset the vault directory in settings to grant permissions. Location:src/services/paths.ts:66-94
UI Customization
Window Opacity (macOS)
Philo supports window opacity customization on macOS: Implementation:src-tauri/src/lib.rs:20-31
This feature is macOS-only and requires custom implementation in your fork.
Floating Today Button
The “Go to Today” button appears when you scroll away from today’s note: Behavior:- Appears when scrolled to past notes
- Hides when viewing today
- Smooth scroll to today on click
src/components/layout/AppLayout.tsx