• Stars
    star
    314
  • Rank 133,353 (Top 3 %)
  • Language
    JavaScript
  • License
    GNU General Publi...
  • Created over 2 years ago
  • Updated 8 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Next-level academia! Repository for the Native Overleaf project, attempting to integrate Overleaf with native OS features for macOS, Linux and Windows.

URGENT HELP NEEDED

Recently the settings panel of Native Overleaf was broken by changes to Overleaf. Please help us get the app back in working order by discussing in issue #32!

Native Overleaf

Overleaf is a fantastic webtool for writing and cooperating on LaTeX documents. However, would it not be even better if it were to behave like a native app on your system?

switching between system light and dark mode

Download directly for your system below!

Contents

Features

  • standalone native application
  • system-based dark / light mode switching
  • notifications of chats, comments and comment threads
  • notifications of tracked changes
  • preferences pane integrated in the Overleaf sidemenu
  • automatic update checking and release notes display
  • words-per-day tracker, reminder & graph (useful for the 200-words-per-day-doctrine)

notification badgecount notification center showcase notification center wordcount hour preferences pane wordcount overview graph

Next Features

  • addition to Homebrew for easier updates
  • automated local backups of projects (planned for future version)
  • date range selection for wordcount graph (planned for future version)
  • integrate Overleaf extensions (if technically possible, discussed here: issue #8)

Looking to contribute?

Hints

  • The preferences pane can be found in the same left-side menu as the other Overleaf settings.
  • You can run multiple instances of Native Overleaf, allowing you to keep multiple projects open at the same time and receive notifications for each project.
  • The word count tracker tracks the total words in the project, so includes anything written by other authors. It counts the words in the compiled PDF, hence it must be recompiled to track a new change in the number of words.
  • The word count tracker uses the local date of your system, hence inconsistencies may arise when switching time zones. If necessary, the word count can be reset using the button in the preferences pane.
  • Notice on notifications: For notifications to work, the app must be allowed to by your system. You will only receive notifications for projects that are opened in the app. Multiple instances of the app can be openened at the same time. Important: to get notifications for chats, the chat window must have been opened at least once after loading a project (you can close it again). This is a limitation of the way we listen for new chat messages. If someone has a better idea, please get in touch.
  • PDF dark mode works by inversing the colors and reversing the hue, meaning the white-grey-black scale is inversed while the colors remain largely the same. This can make graphics appear slightly different. PDF dark mode has been implemented by adjusting the PDF web viewer, not the source or the PDF itself, so downloaded files are untouched.

Download binary

Should you have any problems running the app, please comment on or open an issue! For now, the following binaries have been precompiled and can be downloaded directly:

Mac

Linux

Windows

If your platform / architecture is missing, let me know via the discussions page, or compile it yourself using the instructions below.

How it works

Using nativefier, the Overleaf website is wrapped as an Electron app and injected with JavaScript. While this is not optimally efficient and we may switch to a more efficient framework in the future, it does allow combining the webapp with native features for a large number of supported platforms.

Troubleshooting

If you have any problem running the app not fixed with these instructions, please comment on or open an issue!

Institutional login

This has been fixed since v1.4.0. If you encounter a related issue, look at and comment on issue #3.

Unable to open on Mac

If you get the message that "Apple can't verify this app doesn't contain malware", use right-click -> open to open it. If you get "This app is damaged and can't be opened", download the archive again and unzip it using Finder's built-in Archive Utility or ditto (otherwise codesigning metadata may be lost).

Wordcounts & projects

Currently, the wordcount tracking settings are globally. In the future we can change this to per-project settings. If you want this, please create an issue.

Compile your own

Want to adjust some settings or just build from scratch for your device? Easily create your own native version of Overleaf! In just four easy steps you can compile Overleaf as a native app for your device.

  • Step 1: open your terminal and cd to wherever you want to install Overleaf.
  • Step 2: download this repository (e.g. git clone https://github.com/fjwillemsen/NativeOverleaf.git).
  • Step 3: install the package.json dependencies, and optionally the devDependencies if you want to change the JavaScript code.
  • Step 4: use the compile-all.sh script (without codesigning) for inspiration, executing and modifying the commands as needed. Alternatively (not recommended), run nativefier 'https://overleaf.com' --name 'Overleaf' --app-version <latest version> --darwin-dark-mode-support --inject bundled_script.js --icon Icon/<select icon>. If you have an Apple Silicon (M1/M2) Mac, be sure to add --arch arm64 as Homebrew may still be an Intel process in some cases. If you do not intend to distribute the app, leave out the codesigning, otherwise create your own self-signed certificate.

After being built, the app appears in the folder - you can copy it to another location if desired.

Ideas, questions, contributions?

Please use the GitHub discussions page for this project. This allows others to read and chime in as well. If you'd like to contribute, great! Feel free to submit pull requests via forks.