Linux Development for Contributors
Clone this wiki locally
Brackets officially supports Mac and Windows. However, we're working on adding Linux support with the help of our open source community. If you're an end user that just wants to try out Brackets on Linux, please be aware that many features are missing or partially implemented.
To be clear, if you are NOT an extension developer and NOT planning to contribute to brackets-shell, please visit download.brackets.io to download a preview build of Brackets. Please review the release notes for known issues.
Development Environment Setup
Required Setup for brackets-shell and brackets
These instructions will download the Git repositories for brackets-shell and brackets, download required dependencies, compile the native shell, create and install a debian package, then run Brackets (
- Fork brackets and fork brackets-shell
- Create a top level folder to contain the Brackets git repositories
- In a terminal window,
cdto the folder from the previous step and run the following command as root
wget https://gist.githubusercontent.com/jasonsanjose/5514813/raw/6a522e292f37256b42b697b6da5015e43a6fc2e6/setup.sh; chmod +x setup.sh; bash setup.sh; rm setup.sh
- You'll be prompted for your GitHub user name to clone your fork of the repositories
- Respond to
sudopassword prompts when requested
ATTENTION This setup script will point your git
origin to your own fork, then add a remote
upstreamand point to the
upstream/master branch in the main git repository. Assuming you're here to contribute to Brackets, you will want to point to your fork. This setup script automates the fork and upstream setup instructions here.
# cache root ~/.Brackets # browser cache, local storage, etc. ~/.Brackets/cef_data # extensions ~/.Brackets/extensions/user
The extension development workflow is the same as Mac and Windows. Please refer to How to hack on Brackets and How to write extensions. Please note that the extension location on Linux is
Contributors: If you are willing to test other Linux distributions please add your results here
|Ubuntu||13.04 64-bit||libudev workaround https://github.com/adobe/brackets/issues/4720 (Fix arrives in Sprint 30)|
|Ubuntu||12.04 64-bit||libudev workaround https://github.com/adobe/brackets/issues/4720 (Fix arrives in Sprint 30)|
|Mint 15||64-bit||libudev workaround https://github.com/adobe/brackets/issues/4720 (Fix arrives in Sprint 30)|
|Mint 16||64-bit||No issues besides the close issue. Still Testing|
|LMDE(*)||Debian Testing 32 bit||None|
|Arch||32/64-bit||Not tested / None - (Package: https://aur.archlinux.org/packages/brackets-git)|
|Arch||32/64-bit||No issues besides the close issue. Still working around all the features. (Package: https://aur.archlinux.org/packages/brackets-bin/)|
|Slackware||32 & 64||None (http://slackbuilds.org/apps/brackets/)|
(*) Linux Mint Debian Edition
After the script runs to completion, you'll need to get the CEF components. To do this, run:
To create the
gyp --depth .
If you're only making changes to C++ code, just run
grunt build and the binaries will be in
When adding new files or changing the build configuration, you'll need to make modifications to the GYP configuration files (either
common.gypi). After making changes, you'll need to generate a new
Makefile with gyp (as above).
Brackets currently supports 2 options for installation: (A) a Debian .deb package and (B) a portable .tar.gz archive.
To build a Debian package for installation on Debian/Ubuntu distributions, use the
grunt installer build task. This tasks copies over both the binaries and the www source and creates a Debian package, e.g. installer/linux/Brackets Sprint 30.deb.
Note that Debian packaging is based on the Chromium browser installer build scripts (CEF 3.1547.1354, Chromium 29.0.1547.41) and shares some 3rd party code. Chromium also provides an RPM script that we could use in the future to implement installers for Fedora/CentOS.
- Debian Binary Package Building HOWTO
- Pull Request
- Chromium trunk installer scripts
- Chromium 29 installer scripts
- Chromium trunk RPM packaging scripts
To build a portable archive, use the
grunt build-linux-archive task. This task generates a .tar.gz based off the current Linux build. Use
uninstall.sh from the
installer/linux/archive/ directory to install/uninstall desktop and command-line entries for Brackets.
Reference: Pull Request
There are several user stories (feature work) to complete in brackets-shell before the Linux version reaches feature parity with Mac and Windows. These stories are listed below in priority order
|User Story||Status||Affected Features||Contact|
|Ubuntu Installer/Packaging||In Progress||Install experience||Jason San Jose|
|Native Menus||Not Started||Menus (HTML menus are an interim, but completely functional substitute)||Ingo Richter|
We tag Linux-specific bugs in our GitHub issues.
- 2013-08-29: Updated for Sprint 30
- 2013-08-20: Update user story status, remove TODOs jasonsanjose
- 2013-08-09: Edit inline sprint 28 comments jasonsanjose
- 2013-07-30: Inline draft comments for sprint 28 build jasonsanjose
- 2013-06-22: Updated
brackets-shell/linuxbranch with SVG app icon jasonsanjose
- 2013-06-21: Linux branches land in master in
brackets. Includes: CEF parity with Mac and Win, stubbed methods for incomplete native shell stories (Node, File I/O, etc.), debian packaging. jasonsanjose