Skip to content

sagemathinc/cocalc-desktop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CoCalc Desktop

Windows and MacOS binaries

Download a binary and install it on Windows or MacOS. For Linux, see the quickstart below.

What this is

This initial goal of cocalc-desktop is to provide a minimal easy-to-install version of CoCalc for MS Windows and MacOS (both M1 and x86) that addresses the following problems:

  • Keyboard shortcuts: Provide a way of running CoCalc where browser keyboard shortcuts do not interfere at all with usability. E.g, it should be possible to use Emacs in a terminal with standard keyboard shortcuts.
  • No extensions: Browser extensions or other browser configuration can cause significant performance issues for CoCalc, and this desktop app provides a more well defined and predictable host for using CoCalc.

Initially, all that cocalc-desktop does is provide a nice icon and embed the main site https://cocalc.com in an iframe using ElectronJS. This is similar to installing CoCalc as a minimal progressive web application (via Google Chrome). There are a number of subtle issues that do come up though, involving pop-up windows, external links, etc., that we address.

Development quickstart

git clone https://github.com/sagemathinc/cocalc-desktop
cd cocalc-desktop
npm ci
npm start

Other goals

There are many other longterm goals that we may also develop as part of this application. However, for the first release, the above is our main motivation.

  • Local Jupyter Kernels: More longterm, we could make any Jupyter kernel available on the local user's computer available for realtime collaborative use via CoCalc. This is something that isn't possible in a web browser, but would be relatively straightforward to implement in a natural way as part of cocalc-docker. This is related to cocalc-compute, and there are similar very significant security implications to using such functionality.
  • Features! Look at the section headings here under "Adding features to your app". Many of those could translate in a natural way to extra functionality that we could implement for cocalc-desktop. E.g., native notifications, custom dock menu, native file drag & drop, etc.