A MacOS native academic PDF reader derived from Sioyek(https://github.com/ahrm/sioyek)
brew tap herbertwxin/lector
brew install --cask lector
To update when a new version is released:
brew upgrade --cask lector
Download Lector.dmg from Releases, open it, and drag Lector to Applications.
First launch: right-click Lector.app → Open, then click Open in the dialog. This is a one-time step because the app is not yet notarized with Apple.
- macOS 14.0 (Sonoma) or later
- Xcode 15+
brew install xcodegen
xcodegen generate
open Lector.xcodeproj # then ⌘B
| Key |
Action |
j / ↓ |
Scroll down |
k / ↑ |
Scroll up |
⌃d |
Scroll down (large step) |
⌃u |
Scroll up (large step) |
Space |
Next page |
Shift+Space |
Previous page |
gg |
Go to beginning |
G |
Go to end |
{n}gg |
Go to page n (e.g. 42gg) |
⌫ |
Navigate back |
Shift+⌫ |
Navigate forward |
| Key |
Action |
+ |
Zoom in |
- |
Zoom out |
= |
Fit to width |
0 |
Actual size (100%) |
| Key |
Action |
/ |
Open search bar |
n |
Next result |
N |
Previous result |
Esc |
Close search |
| Key |
Action |
b |
Add bookmark at current position |
db |
Delete bookmark at current position |
gb |
List bookmarks (current document) |
gB |
List bookmarks (all documents) |
| Key |
Action |
h + char |
Highlight selection — a yellow · b green · c blue · d red |
dh |
Delete highlight at current position |
gh |
List highlights |
gnh |
Jump to next highlight |
gNh |
Jump to previous highlight |
| Key |
Action |
m + char |
Set mark — lowercase = per-document, uppercase = global across docs |
` + char |
Jump to mark |
gm |
List marks |
| Key |
Action |
p |
First press: set source · Second press: create portal to current location |
dp |
Delete portal nearest to current position |
| Key |
Action |
⌃f |
Search selected text on Google Scholar |
⌥f |
Search selected text on Google |
| Key |
Action |
t |
Toggle table of contents |
: |
Open command mode |
o |
Open document picker |
F8 |
Cycle appearance: Auto → Dark → Light → Auto |
q |
Quit |
Press : to enter command mode, type a command, press Enter.
| Command |
Action |
:dark |
Force dark mode |
:light |
Force light mode |
:auto / :system |
Follow system appearance (default) |
:toggledark |
Cycle Auto → Dark → Light |
| Command |
Action |
:page 42 |
Jump to page 42 |
:beginning |
Go to first page |
:end |
Go to last page |
:nextpage |
Next page |
:prevpage |
Previous page |
:back |
Navigate back in history |
:forward |
Navigate forward in history |
:nextchapter |
Jump to next outline chapter |
:prevchapter |
Jump to previous outline chapter |
| Command |
Action |
:zoom 150 |
Set zoom to 150% |
:zoomin |
Zoom in |
:zoomout |
Zoom out |
:fit / :fitwidth |
Fit to width |
:actualsize |
Reset to 100% |
| Command |
Action |
:search keyword |
Search for keyword |
:next |
Next search result |
:prev |
Previous search result |
| Command |
Action |
:bookmark |
Add bookmark (auto-labelled) |
:bookmark My note |
Add bookmark with custom label |
:deletebookmark |
Delete bookmark at current position |
:bookmarks |
Show bookmarks panel |
:allbookmarks |
Show bookmarks across all documents |
| Command |
Action |
:highlight a |
Highlight selection (a/b/c/d → yellow/green/blue/red) |
:deletehighlight |
Delete highlight at current position |
:highlights |
Show highlights panel |
:nexthighlight |
Jump to next highlight |
:prevhighlight |
Jump to previous highlight |
| Command |
Action |
:mark a |
Set mark 'a' at current position |
:goto a |
Jump to mark 'a' |
:marks |
Show marks panel |
| Command |
Action |
:portal |
Set portal source / create portal |
:deleteportal |
Delete nearest portal |
:gotoportal |
Jump to nearest portal destination |
| Command |
Action |
:scholar deep learning |
Search phrase on Google Scholar |
:scholar |
Search current selection on Google Scholar |
:google gradient descent |
Search phrase on Google |
:google |
Search current selection on Google |
| Command |
Action |
:copy |
Copy selected text to clipboard |
:rotate |
Rotate all pages 90° clockwise |
:rotate ccw |
Rotate all pages 90° counter-clockwise |
:fullscreen |
Toggle full screen |
:toc |
Toggle table of contents |
:open / :o |
Open document picker |
:recent |
Show recent documents panel |
:quit / :q |
Quit |