GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - rareram/NudgeLine: Subtle macOS screen-edge calendar timeline bar (앰비언트 일정 뷰어)

BranchesTags
Open more actions menu

Latest commit

 

History

70 Commits
70 Commits

Folders and files

NameName
Last commit message
Last commit date
.github
.github
 
 
Resources
Resources
 
 
Sources/NudgeLine
Sources/NudgeLine
 
 
Tests/NudgeLineTests
Tests/NudgeLineTests
 
 
docs/images
docs/images
 
 
scripts
scripts
 
 
.gitignore
.gitignore
 
 
LICENSE
LICENSE
 
 
PRIVACY.md
PRIVACY.md
 
 
Package.swift
Package.swift
 
 
README.md
README.md
 
 
README_KR.md
README_KR.md
 
 
version.json
version.json
 
 

Repository files navigation

NudgeLine

NudgeLine Icon

Today's schedule, quietly resting at your screen edge.
macOS 15+ (Sequoia) / Swift 6, SwiftUI

English | 한국어

Platform Swift Version Architecture License


Overview

NudgeLine displays your daily schedule as a thin bar along the edge of your screen (Left, Right, or Bottom).

nudgeline_play_full.mp4

Key Features:

  • Mouse Passthrough: Clicks and scrolls pass through outside the bar area.
  • Timeline Bar: Background track, event boundary lines, and 4 indicator styles.
  • Overlapping Events: Alternating color transitions for concurrent events.
  • Mascots: 3 built-in animated pets with 6 hide motions, and custom pet support.
  • Apple Reminders: Pinpoint markers on the timeline for today's reminders with two-track styles (SF Symbols & pet treats).
  • Meeting & Map Integration: 1-click launch for 10 meeting platforms, automatic unwrapping of corporate SafeLinks/Redirects, and preferred map shortcuts (Apple, Google, Naver, Kakao).
  • Privacy: Option to hide the bar during screen sharing/recording or in full-screen spaces.
  • One-Click In-App Update: Automatic update notifications and seamless in-app download/relaunch from the menu bar.
  • Native Implementation: Built with SwiftUI, AppKit, and EventKit with no external dependencies.

Hide - Tail Wag     Hide - Head Peek     Disappear - Pop
Mascots hide behind the bezel or disappear upon cursor proximity (6 motions supported).


Installation

1. via Homebrew (Recommended)

brew install rareram/tap/nudgeline

2. Direct Download (.dmg)

  1. Download NudgeLine.dmg from GitHub Releases and move NudgeLine.app to /Applications. Subsequent updates can be installed with a single click via the menu bar.
  2. Gatekeeper Notice (First launch only):
    • Since this is an unsigned open-source app, macOS may prompt a security confirmation on first open.
    • Right-click (Control + Click) NudgeLine.app > select Open, or run:
      xattr -cr /Applications/NudgeLine.app

Features

1. Screen-Edge Timeline

  • Position: Left, Right, or Bottom screen edge.
  • Multi-Monitor: Show on the primary display or across all connected screens.
  • Thickness: Adjustable from 1px to 10px, with optional expansion on hover.
  • Overlaps: Alternating transitions between concurrent events.
  • Past Event Dimming: Completed events dim to 35% opacity and saturation, restoring to original colors on hover.

2. Time Indicators

  • Styles: Triangle Tick, Round Dome, Protruding Block, and Point Ring.
  • Visual Effects: Indicator color customization, rim highlight, and neon glow toggles.
  • Shortest Event Focus: Prioritizes the shortest event when hovering over overlapping meetings.

3. Event Alerts & Effects

  • Pre-Event Alert: 3-second bar pulse animation 5, 10, 15, or 20 minutes before a meeting starts.
  • Event Start Effects: Visual alert effects (Cherry Blossom, Neon Thunder, Maple Leaf, Snow Flurry).
  • On the Hour Notification: Optional visual alert triggered at :00 every hour.
  • Trigger Control: Triggers once when an event starts (3-minute cooldown).

4. Mascot Indicators & Custom Pets

  • Built-in Pets: Calico Cat, White Jindo Dog, and White Tiger.
  • 6 Hide Motions:
    • tailPeek: Hides behind the bezel with tail visible.
    • headPeek: Hides body with head peeking out.
    • pop: Shrinks and disappears.
    • vortex: Rotates and disappears.
    • squish: Squishes and disappears.
    • smoke: Blurs and disappears.
    • Custom Pets: Import PNG frame sequences, adjust FPS, configure hide offsets with live preview.
  • Pet Snooze: Click the current time indicator or tooltip bubble to temporarily snooze the mascot. The indicator shows a subtle breathing animation, and the tooltip displays a live wave gauge with the remaining snooze countdown.

5. Event Popovers

  • Action Card: Schedule details, 1-click meeting join with automatic SafeLinks/Redirect unwrapping, preferred map routing (Apple, Google, OpenStreetMap, Naver, Kakao), and Apple Calendar shortcut.
  • Simple Tooltip: Compact tooltip showing title and time.
  • Card Themes: Supports System Adaptive, Dark, and Light themes with contrast adjustment for buttons and links on light backgrounds.
  • All-day Events: Displays all-day events alongside timed schedules in popovers.
  • Empty Track Guidance: Displays a status tooltip when hovering over empty timeline gaps.

6. Apple Reminders Integration

  • Timeline Markers: Pinpoint markers indicating due times for today's reminders on the timeline.
  • Two-Track Marker Styles:
    • SF Symbols: Flag, Diamond, Heart, and Star (retains reminder list color).
    • Pet Treats: Full-color food items matching the active pet (Meat for White Tiger, Bone for Jindo Dog, Fish for Calico Cat, Star for Custom Pets).
  • Visibility Window: Configurable display range (1, 2, 3, 4, 12 hours, or All Day).
  • Interactive Popovers: View reminder details, toggle completion status directly from the popover, and open the Apple Reminders app.
  • Smart App Deep-Linking: Securely recognizes task URLs and displays dedicated badges for productivity tools (Notion, Slack, Things 3, Obsidian, etc.) with 3-tier security filtering.

7. Shortcuts & Menu Controls

  • Menu Bar Controls: Quick access to Settings, Instant Refresh, Check for Updates, App Info (About NudgeLine), and Quit directly from the menu bar status icon.
  • Native About Window: A compact 320pt window displaying app identity, release highlights with markdown emphasis, and direct repository/feedback links.
  • Instant Refresh: Re-fetch today's calendar events via the timeline bar context menu or menu bar [Refresh] item.
  • AppIntents Integration:
    • Refresh Schedule / NudgeLine 새로고침: Refetch today's calendar events.
    • Toggle Pet / NudgeLine 펫 토글: Toggle pet visibility on the timeline bar.

8. Settings Window

  • Timeline: Position, thickness, hover expand, border and neon highlights, past event dimming, background style (Auto, Dark, Light, Custom), and opacity.
  • Appearance: Card style/theme/opacity, indicator shape/color, pre-event alert, event start effects, hourly alert, pet selection and hide motions, custom pet manager.
  • Schedule: 24-hour mode, work hours, visible calendars with color pickers, System Settings deep link.
  • Reminders: Enable/disable timeline markers, marker style (SF Symbols or Pet Treats), visibility window, and reminder list filter.
  • General: Language (System, Korean, English), preferred map service, launch at login (SMAppService), multi-display, hide on screen share, hide in full screen, app info.

Supported Integrations

NudgeLine integrates with your daily workflow tools to provide a seamless, distraction-free experience.

1. Video Meeting Platforms (11 Platforms)

  • Global & Enterprise: Google Meet, Zoom, Microsoft Teams, Apple FaceTime, Cisco Webex, Amazon Chime.
  • Team Collaboration & Community: Discord, Lark, Whereby, Jitsi Meet.
  • Regional: Naver Whale ON.
  • Security & Native Launch:
    • Automatically unwraps obfuscated URLs (Microsoft Defender SafeLinks, Google Redirects) to reveal clean destinations.
    • 1-click launch into native macOS clients for Microsoft Teams (msteams://) and FaceTime (facetime://).

2. Productivity & Deep Links (10 Apps + Web)

  • Task & Productivity Tools: Notion (notion://), Slack (slack://), Things 3 (things://), Obsidian (obsidian://), Bear (bear://), Linear (linear://), Figma (figma://).
  • Apple System Apps: Apple Mail (message://), Apple Notes (notes://), Apple Reminders (x-apple-reminderkit://).
  • Smart Web Badges: Clean domain hostname badges for standard URLs (e.g., github.com, docs.google.com).
  • 3-Tier Safe Scheme Parser: Blocks dangerous local file execution and script injection schemes (file, javascript, applescript, etc.).

3. Location & Map Routing (5 Services)

  • Supported Services: Apple Maps, Google Maps, OpenStreetMap, Naver Map, Kakao Map.
  • Configurable in Settings: Choose your preferred map service in Settings > General. Korean localized environments provide Naver and Kakao options alongside global providers.

Requirements & Build

Requirements

  • macOS 15.0+ (Sequoia)
  • Apple Silicon or Intel Mac

Build from Source

# 1. Clone repository
git clone https://github.com/rareram/NudgeLine.git
cd NudgeLine

# 2. Local development build (Isolated NudgeLine (Dev).app)
./scripts/build_app.sh
open "build/NudgeLine (Dev).app"

# Or production release build
./scripts/build_app.sh --release
open "build/NudgeLine.app"

Running Unit Tests (Manual Testing)

You can manually run the unit test suite to verify the localization dictionary (L10n), default configuration models (AppSettings), and calendar event model integrity:

# Run local unit tests
./scripts/run_tests.sh

# Or directly via Swift Package Manager (Xcode environment)
swift test

Project Structure

NudgeLine/
├── Package.swift                         # SPM Manifest (macOS 15+)
├── docs/
│   └── images/                           # README screenshots and icon assets
├── Resources/
│   ├── Info.plist                        # LSUIElement and calendar usage descriptions
│   └── AppIcon.icns                      # App icon
├── Sources/
│   └── NudgeLine/
│       ├── AppDelegate.swift             # App lifecycle and screen change observers
│       ├── main.swift                    # Entry point & single instance guard
│       ├── Models/
│       │   ├── AppSettings.swift         # Settings persistence via UserDefaults
│       │   ├── CalendarEvent.swift       # Event model, meeting parser, safe indexing
│       │   └── ReminderItem.swift        # Apple Reminders model & visibility calculator
│       ├── Services/
│       │   ├── CalendarService.swift     # EventKit background query service
│       │   ├── CustomPetService.swift    # Thread-safe custom pet file manager
│       │   ├── LaunchAtLoginHelper.swift # SMAppService login item wrapper
│       │   ├── Localization.swift        # English/Korean L10n dictionary
│       │   ├── NudgeLineShortcuts.swift  # AppIntents for Shortcuts & Siri automation
│       │   ├── ReminderService.swift     # Apple Reminders fetch & toggle service
│       │   └── UpdateService.swift       # In-app update checker and download coordinator
│       └── Views/
│           ├── About/                    # Native About window & singleton controller
│           │   └── AboutView.swift
│           ├── OverlayPanel.swift        # Edge floating NSPanel with mouse passthrough
│           ├── PopoverPanel.swift        # Floating popover panel with .common runloop timer & empty tooltip
│           ├── TimelineBarView.swift     # Main timeline rendering & gesture coordinator
│           ├── HangingPetIndicatorView.swift # Mascot renderer & orbit physics
│           ├── HoverRenderers.swift      # Popover renderer protocol
│           ├── EventPopoverView.swift    # Action card popover (timed & all-day multi-stack)
│           ├── SimpleInfoPopoverView.swift # Simple tooltip bubble
│           ├── CustomPetEditorSheet.swift# Custom pet drag-and-drop modal
│           ├── SettingsView.swift        # Preferences tab container
│           ├── SettingsWindowController.swift # Dedicated settings window lifecycle manager
│           ├── Settings/                 # Modular settings tabs
│           │   ├── TimelineTab.swift
│           │   ├── AppearanceTab.swift
│           │   ├── ScheduleTab.swift
│           │   ├── RemindersTab.swift
│           │   └── GeneralTab.swift
│           ├── Effects/                  # 16-frame 1.0s micro event alert effects
│           │   ├── EventTriggerEffectView.swift
│           │   ├── CherryBlossomEffectAsset.swift
│           │   ├── ThunderEffectAsset.swift
│           │   ├── AutumnLeavesEffectAsset.swift
│           │   └── WinterSnowEffectAsset.swift
│           └── Pets/                     # Built-in 16-frame Base64 pet assets & interaction
│               ├── PetProtocol.swift
│               ├── InteractivePetView.swift
│               ├── InteractiveCustomPetView.swift
│               ├── CatPetAsset.swift
│               ├── JindoDogPetAsset.swift
│               └── WhiteTigerPetAsset.swift
├── Tests/
│   └── NudgeLineTests/                   # Swift Testing unit test suite
└── scripts/
    ├── hooks/                            # Local Git pre-push automated verification hooks
    │   ├── install_hook.sh
    │   ├── pre-push.sh
    │   └── uninstall_hook.sh
    ├── build_app.sh                      # Local Dev & Release bundle packager
    ├── create_dmg.sh                     # Release DMG packaging script
    ├── run_tests.sh                      # Local unit test runner
    ├── generate_dev_icon.swift           # DEV icon badging script
    ├── generate_app_icon.sh              # Production icon generator script
    ├── generate_custom_pet.py            # CLI sprite generator for Swift models
    └── check_security.sh                 # Static secret scan script

Localization

NudgeLine supports:

  • System Default (Follows macOS system language)
  • English
  • Korean (한국어)

You can change the language in Settings > General > Language.


Credits & License

  • Inspired by the concept of PixelScheduler (2014-2015) by Andreas Katzian & ARTMIXTURE.
  • License: MIT License.
  • Copyright: (c) 2026 rareram. All rights reserved.

About

Subtle macOS screen-edge calendar timeline bar (앰비언트 일정 뷰어)

Topics

calendarcaskdesktop-peteventkithomebrewmacosmenubar-appoverlaypetsproductivityscheduler-viewswiftswiftuivirtual-pet

Resources

Readme
MIT license
Activity

Stars

24 stars

Watchers

1 watching

Forks

1 fork
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.