Skip to content

nnecec/line

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

72 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Line

Line logo

English · 简体中文

Line is a native macOS window manager with first-class grid layout, multi-display support, and a focus on high performance. Open source. It is a personal fork of MrKai77/Loop, based on upstream commit 9661bcb.

Snap to the line.

Release License: GPL v3 macOS 26

Targets macOS 26.

Features

  • First-class grid placement
  • Multi-display layouts and targeting
  • High-performance, native AppKit / SwiftUI implementation
  • Standard and custom window actions, cycling, padding, snapping, and edge stashing
  • Configurable appearance and theming
  • Local automation through the line:// URL scheme
  • Open source; in-app updates through Sparkle (after the appcast PR for a release is merged)

Install

Official packages are published on GitHub Releases as:

  • Line-X.Y.Z.dmg
  • Line-X.Y.Z.zip
  • SHA256SUMS.txt

These builds are produced on GitHub Actions with a free Apple Development signature so Accessibility permission can stick. They are not Developer ID signed and not notarized. First launch: right-click → Open, then enable Line under System Settings → Privacy & Security → Accessibility. Prefer assets from this repository’s Releases page only.

In-app Check for Updates uses Sparkle and the feed at appcast.xml on main. That file is updated through a reviewable pull request after each publish; until that PR is merged, GitHub Releases may already have the new build while the app still reports “up to date.”

Screenshot

screenshot

Build from source

git clone https://github.com/nnecec/Line.git
cd Line
open Line.xcodeproj

Maintainers: publish a release

  1. Land Conventional Commits on main (feat:, fix:, …).
  2. Ensure CI and Lint are green on the tip.
  3. Run Actions → Publish (dry_run optional).

semantic-release chooses the next vX.Y.Z tag, builds packages, creates a full GitHub Release, then opens an appcast PR. Details: docs/RELEASES.md.

Required repository secrets:

  • SPARKLE_PRIVATE_KEY (Ed25519 seed matching SPARKLE_PUBLIC_ED_KEY in Line/Config.xcconfig)
  • APPLE_DEVELOPMENT_CERT_BASE64, P12_PASSWORD, KEYCHAIN_PASSWORD (free Apple Development .p12 for Accessibility-stable Release builds)

See docs/RELEASES.md for exporting the certificate.

Build and test

Use Xcode 26.4 or a compatible Xcode 26 release. The Line scheme is for local development and tests. Line (GH ACTIONS) is the release configuration used by CI and Publish.

For local Accessibility testing, sign with an Apple Development identity (free Apple ID). See docs/RELEASES.md.

make test-unit         # required CI path
make test-integration  # needs Accessibility
make test-coverage     # unit + calculator floor
make build
make build-release
make help
VERSION=0.1.0 scripts/release/build_package.sh   # Development-signed dist/Line-0.1.0.{zip,dmg}
mint run swiftformat --lint . --reporter github-actions-log

Architecture and automation

Contributing and support

Read CONTRIBUTING.md before sending a pull request. Use GitHub issue forms for bugs and features. Security: SECURITY.md. Support: SUPPORT.md.

Code of Conduct · Third-party notices

License and upstream credit

Line is distributed under the GNU General Public License v3. The original design and implementation came from MrKai77/Loop.

About

Native macOS window manager. First-class grid, multi-display, high performance. Open source.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Packages

 
 
 

Contributors