Skip to content

bkrdmrcioglu/panevo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

18 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Panevo

πŸ‡¬πŸ‡§ English | πŸ‡ΉπŸ‡· TΓΌrkΓ§e

A modern, native window manager for macOS.

Panevo is a lightweight menu bar app that lets you arrange your windows in seconds using keyboard shortcuts, the menu bar, or drag-to-edge snapping. Built entirely natively with Swift + SwiftUI + AppKit β€” zero external dependencies.

Platform Swift Version License Buy Me A Coffee


✨ Features

πŸͺŸ Window Snapping (15 positions)

  • Left / Right / Top / Bottom halves
  • Four quarters (Top Left, Top Right, Bottom Left, Bottom Right)
  • Thirds and two-thirds
  • Maximize and Center
  • Cycling: press the same half-snap shortcut again to cycle half β†’ third β†’ two thirds
  • Restore: return a window to its pre-snap size and position
  • Window gaps: keep an adjustable gutter (0–24 pt) between snapped windows

⌨️ System-wide Keyboard Shortcuts

Work in every app. Defaults:

Shortcut Action
βŒƒβŒ₯ ← Left Half (β†’ β…“ β†’ β…”)
βŒƒβŒ₯ β†’ Right Half (β†’ β…“ β†’ β…”)
βŒƒβŒ₯ ↑ Top Half
βŒƒβŒ₯ ↓ Bottom Half
βŒƒβŒ₯ ↩ Maximize
βŒƒβŒ₯ C Center
βŒƒβŒ₯ ⌫ Restore
βŒƒβŒ₯ N Move to Next Display
βŒƒβŒ₯ P Move to Previous Display

Every action can be rebound in-app (Shortcuts β†’ Change β†’ press your combo). Any snap position β€” including quarters and thirds β€” can be given its own shortcut. Conflicts are detected automatically.

πŸ–±οΈ Drag to Snap

Drag a window to a screen edge: a blue preview appears, release to snap. Corners snap to quarters. Edge sensitivity is adjustable, and it only triggers on real window drags.

πŸ“ Layout Profiles

  • Save Current Layout: captures the position and size of every open window
  • Apply: restores the saved arrangement β€” launching missing apps if needed
  • Profiles persist across restarts

πŸ“ Menu Bar Native

No Dock icon β€” Panevo lives entirely in your menu bar with quick snap actions one click away.

βš™οΈ Settings

  • Launch at Login
  • Snap animation styles: Instant / Snappy / Smooth / Springy
  • Window gap and edge sensitivity sliders
  • Preview overlay toggle
  • All settings persist

🌍 Languages

English and Turkish β€” follows your system language.


πŸ“₯ Installation

Homebrew (recommended):

brew install --cask bkrdmrcioglu/tap/panevo

Manual: grab the latest DMG from Releases, open it, and drag Panevo to Applications.

The app is signed and notarized by Apple β€” no security warnings, just open it.

First launch: grant Accessibility permission in System Settings β†’ Privacy & Security β†’ Accessibility. This permission is required by all window managers to move other apps' windows.

Why not on the App Store?

The App Store requires App Sandbox, and sandboxed apps cannot control other applications' windows β€” the entire point of a window manager. This is the same reason Rectangle isn't on the App Store either.

πŸ”¨ Building from Source

git clone https://github.com/bkrdmrcioglu/panevo.git
cd panevo
open Panevo.xcodeproj   # then ⌘R

Requires macOS 15+ and Xcode 16+.

πŸ—οΈ Architecture

Panevo/
β”œβ”€β”€ App.swift                  # Entry point + AppDelegate (menu bar lifecycle)
β”œβ”€β”€ ContentView.swift          # Main SwiftUI UI
β”œβ”€β”€ Models/                    # WindowPosition, KeyboardShortcut, LayoutProfile…
β”œβ”€β”€ Services/
β”‚   β”œβ”€β”€ WindowManager          # Snapping orchestration, cycling, restore, gaps
β”‚   β”œβ”€β”€ AccessibilityManager   # macOS Accessibility API wrapper
β”‚   β”œβ”€β”€ HotKeyManager          # Global shortcuts (Carbon), live re-registration
β”‚   β”œβ”€β”€ DisplayManager         # Multi-monitor tracking
β”‚   β”œβ”€β”€ LayoutProfileManager   # Layout capture/restore
β”‚   β”œβ”€β”€ SettingsManager        # UserDefaults persistence
β”‚   └── StatusBarManager       # Menu bar item and menu
β”œβ”€β”€ ViewModels/                # MVVM coordination
β”œβ”€β”€ Views/                     # Snap overlay, preferences window
β”œβ”€β”€ Utilities/                 # Extensions and helpers
└── en.lproj / tr.lproj        # Localization

Patterns: MVVM, dependency injection, service layer. Dependencies: none β€” Apple frameworks only (SwiftUI, AppKit, Carbon, Combine, ServiceManagement).

πŸ”’ Privacy

  • ❌ No network connections
  • ❌ No data collection
  • βœ… All settings stored locally

πŸ“ Changelog

1.2

  • Window gaps with adjustable size
  • Shortcut assignment for all actions; in-app shortcut recording
  • Corner drag zones (quarter snapping) + edge sensitivity setting
  • Pure menu bar app β€” no Dock icon

1.1

  • Restore (pre-snap frame), snap cycling (half β†’ β…“ β†’ β…”)
  • Display-move shortcuts, layout profiles that launch missing apps
  • App icon, drag-snap fixes, crash fix

1.0

  • 15 snap positions, 6 global shortcuts, drag-to-edge snapping
  • Layout profiles, menu bar quick actions, multi-monitor support
  • English & Turkish UI

β˜• Support

Panevo is free and open source. If it makes your day easier, you can buy me a coffee β€” it keeps the project going!

🀝 Contributing

Contributions are welcome! Please read CONTRIBUTING.md first, and use the issue templates for bugs and feature requests.

πŸ“„ License

MIT β€” Β© 2026 Bekir Demircioglu


Built with ❀️ for macOS productivity.