Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

JonasFocus/Ink

Repository files navigation

Ink — Floating notes for macOS



Ink app icon

Ink

Instant floating notes. Plain Markdown. You own every file.


macOS Swift SwiftUI License


Features · Demo · Shortcuts · Get Started · Structure


✦ Demo

Animated Ink floating panel mockup

Summon a frosted panel over any app, any Space, even fullscreen — start typing in milliseconds.


✦ Features

⚡ Zero friction

Global hotkey → floating panel appears instantly. No context switch. No Dock icon required. Dismiss with Esc or click outside.

🪟 Native floating panel

Built on NSPanel with .nonactivatingPanel — stays above your work without stealing app activation.

⌨️ Customizable shortcuts

All primary commands register through KeyboardShortcuts so users can remap keys.

📝 Plain Markdown

Raw Markdown editing with a bottom toolbar that inserts syntax — not a WYSIWYG layer. What you see is what’s on disk.

📁 Files you own

Notes live as individual .md files (default: ~/Library/Application Support/Ink/Notes). Open them in Obsidian, VS Code, BBEdit, or git.

🔍 Instant search

In-memory title + content index for fast browse/search — no database lock-in in v1.

📋 Clipboard history

The menu-bar icon keeps your last 25 copied text snippets (right/control-click → Clipboard History). Pick one to put it back on the clipboard. Copies that macOS or the source app marks as concealed, transient, autogenerated, or sensitive are skipped before Ink reads them.


✦ Shortcuts

Action Default What it does
Create note ⌥⌘N Opens the editor with a fresh note
Browse / toggle ⌥⌘P Search and switch notes
Action panel ⌥⌘K Command palette for all actions
Dismiss Esc Hide the panel (Spotlight-style)


✦ Get Started

Quick build (~5 min)

git clone https://github.com/Cloverings1/Ink.git
cd Ink
open Ink/Ink.xcodeproj

Press ⌘R in Xcode. You should get a menu bar extra, no main window, and ⌥⌘N summoning the panel.

To verify from Terminal:

xcodebuild test -project Ink/Ink.xcodeproj -scheme Ink -destination 'platform=macOS,arch=arm64'

Privacy and security

  • Ink has no backend. Notes are plain .md files on your Mac.
  • Clipboard history is stored locally at ~/Library/Application Support/Ink/clipboard-history.json and can be cleared from the menu-bar context menu.
  • Local deployment files, build products, app archives, dependency folders, and environment files are ignored by git.
  • Ink is currently unsandboxed so user-selected note folders work without extra friction. Treat distributed builds as local developer builds unless they are signed and notarized through a release process.
Project generation checklist

The generated Xcode project is checked in for open-in-Xcode onboarding. Ink/project.yml remains the source used to regenerate it.

Regenerate after project-structure changes

cd Ink
xcodegen generate --spec project.yml
cd ..
git diff -- Ink/project.yml Ink/Ink.xcodeproj

Target configuration

  • General → Deployment Target: macOS 14.0 (Sonoma)+
  • Info → LSUIElement = YES (agent-style app, no Dock icon by default)
  • Info → URL Types → Item 0 → URL Schemes → ink
  • Ensure Ink/Resources/Assets.xcassets is in Build Phases → Copy Bundle Resources
  • App Icon should point to AppIcon in asset catalog

Assets

  • App icon is pre-built in Ink/Resources/Assets.xcassets/AppIcon.appiconset/
  • Master .icns at Ink/Resources/Icons/Ink.icns

Build & run

  • ⌘R — app launches without a main window or floating panel (expected)
  • Press ⌥⌘N to verify the floating panel
  • Run xcodebuild test -project Ink/Ink.xcodeproj -scheme Ink -destination 'platform=macOS,arch=arm64' to verify persistence behavior


✦ Structure

Ink/
├── InkApp.swift
├── App/
│ └── KeyboardShortcuts+Ink.swift
├── Core/
│ ├── Models/Note.swift
│ └── Services/NoteStore.swift
├── UI/
│ ├── Editor/InkEditorView.swift
│ ├── Browse/NotesBrowserView.swift
│ ├── FloatingPanel/
│ │ ├── FloatingNotePanel.swift
│ │ ├── FloatingPanelController.swift
│ │ └── FloatingPanelRootView.swift
│ └── CommandPalette/ActionPanelView.swift
├── Tests/
│ └── NoteStoreTests.swift
├── Resources/
│ ├── Assets.xcassets/
│ └── Icons/Ink.icns
├── Info.plist
└── Ink.entitlements


✦ Design principles

Principle Implementation
Instant Global hotkey + non-activating NSPanel
Native SwiftUI + AppKit, frosted HUD window material
Portable Plain .md files on disk, debounced per-note auto-save with flush-on-transition
Lightweight One dependency (KeyboardShortcuts) for hotkeys
Searchable In-memory index, no SQLite in v1


Built for frictionless thinking on macOS.


MIT License — you own your notes and your code.


If Ink saves you a thought, star the repo ⭐

About

No description, website, or topics provided.

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

AltStyle によって変換されたページ (->オリジナル) /