Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Apply changes for 3.2.2 release #880

Merged
merged 71 commits into from
Jul 3, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
71 commits
Select commit Hold shift + click to select a range
40d4ec7
update documentation and README for Linux support
shiftkey Nov 20, 2018
711f6a8
improvements to electron-builder config
shiftkey Nov 1, 2018
b9fe271
redirect in-app menu for reporting an issue to the fork (#141)
shiftkey Apr 19, 2019
69c06d2
workaround for Linux users of the app to use it on very low resolutio…
shiftkey May 30, 2019
f5ae49a
add CLI support to Debian package, add Elementary OS shell and editor…
jfgordon2 Mar 29, 2020
04cfbb6
polish About modal for Linux build (#241)
jfgordon2 Mar 30, 2020
25bada5
Detach CLI process from terminal (#239)
jfgordon2 Mar 30, 2020
a88ff34
restore mixins to enable Linux-specific stylings (#247)
shiftkey Apr 6, 2020
f005c0f
improve scrollbars when using dark theme (#240)
jfgordon2 Apr 2, 2020
7d46ebc
Added test for symlinks
jfgordon2 Apr 14, 2020
93891c3
set filemode for chrome-sandbox to reflect the permissions it needs (…
shiftkey Apr 16, 2020
05f3f87
move debian packaging out to dedicated step (#263)
shiftkey Apr 23, 2020
5e6a718
move redhat packaging out to own step (#273)
shiftkey May 17, 2020
54497b6
readme: add language property to code blocks (#287)
serkonda7 May 30, 2020
8305fad
wire up sponsorship details for the repository
shiftkey May 31, 2020
46f3336
drop unnecessary libappindicator dependency for RPM package (#300)
shiftkey Jun 24, 2020
f31fab1
run codeql on linux branch (#302)
shiftkey Jun 24, 2020
0ecf2c3
add in libcurl4 as optional dependency for RPM (#315)
shiftkey Jul 27, 2020
d47deeb
allow tilde character when specifying a local repository (#316)
Daniel-McCarthy Aug 4, 2020
8e03ea4
remove deprecated apt-key from installation setup (#354)
KrisAphalon Oct 24, 2020
e310ebf
add optional x11 dependency for SUSE-based distributions (#369)
shiftkey Nov 6, 2020
456190c
align CI with the upstream settings for Actions (#393)
shiftkey Dec 17, 2020
df35f0c
Add smaller icons (#395)
kevinhikaruevans Dec 27, 2020
8a6e6c6
update tooling dependencies (#424)
shiftkey Jan 25, 2021
7b97c4a
run packaging step on Linux builds if all other CI steps pass (#435)
shiftkey Feb 15, 2021
d15642e
enable dependabot monitoring for specific dependencies in project (#440)
shiftkey Feb 15, 2021
f87f9c1
bump electron-installer-redhat to latest version (#438)
shiftkey Feb 15, 2021
7d80bab
add missing MIME type to AppImage package (#496)
Mrlinkwii May 8, 2021
09c3c25
add section about known issues and add to Linux section (#537)
shiftkey Jun 22, 2021
54c5539
drop prerelease: true from release step in workflow (#551)
shiftkey Jul 6, 2021
ada6fdf
refresh smaller icons to use new theme (#530)
shiftkey Jul 6, 2021
5d8d0a7
[docs] add new section for org repos (#552)
shiftkey Jul 6, 2021
a99f912
introduce abstractions to make Flatpak integration easier (#555)
shiftkey Jul 14, 2021
d07a4db
escape paths with regex over quotes in flatpaks (#558)
Lunarequest Jul 19, 2021
c35309f
point window icon to new version (#561)
shiftkey Jul 19, 2021
8f98d27
detect and support running post-install script with offline yarn (#567)
shiftkey Jul 22, 2021
93e1c53
assorted lint fixes not caught by CI
shiftkey Aug 13, 2021
6afb894
submodules should be updated if OFFLINE=1 is not set (#587)
shiftkey Aug 30, 2021
2ed5657
Add instructions for opensuse dist in README.md (#592)
gaganyadav80 Sep 5, 2021
b7807a5
Flatpak: locate and launch flatpaked code editors (#602)
Lunarequest Sep 30, 2021
430afee
fixed a typo in the README (#605)
foxler2010 Sep 30, 2021
a3c0032
move icons to correct location, update usages in tooling (#606)
shiftkey Oct 3, 2021
23d3b5b
enable release job to access contents
shiftkey Oct 22, 2021
7aec6a1
drop removed test:integration step in CI
shiftkey Feb 5, 2022
40284bf
Changed apt-get to apt in the debian installation section of the read…
reyespinosa1996 Feb 13, 2022
1a126c6
Add mirror to README (#667)
mwt Mar 12, 2022
b7ad255
reformat helper file related to spawning flatpak
shiftkey Apr 3, 2022
46f573c
Add additional validation to find the app-specific argument we requir…
shiftkey Apr 3, 2022
de37bfc
update Actions CI status in README
shiftkey Apr 3, 2022
76f316d
move electron-winstaller to optional dependency to not block arm32 usage
shiftkey Apr 15, 2022
a2acf99
Add support for GNOME console and newer GNOME editors (#700)
Etaash-mathamsetty Apr 21, 2022
739beb9
Adds LXTerminal to terminals and Geany and Mousepad to supported edit…
theofficialgman May 7, 2022
fda7ba5
add armv7l support to scripts (#712)
theofficialgman May 7, 2022
80eef95
Add support for detecting PhpStorm editor (#717)
PadowYT2 May 20, 2022
e7a593f
Bump electron-packager from 15.2.0 to 15.5.1 (#560 #598 #706)
dependabot[bot] Jul 19, 2021
2cfcef8
Linux build does not have the equivalent of beta channel
shiftkey Jul 7, 2022
c5955df
Bump electron-packager from 15.5.1 to 16.0.0 (#755)
dependabot[bot] Aug 31, 2022
4b1c7b6
allow for packaging parameters to be derived from process.arch (#774)
shiftkey Oct 15, 2022
72a567d
Fix args processing on first launch on linux (#793)
sarim Feb 17, 2023
c0087f1
refresh docs to move away from PackageCloud (#836)
shiftkey Feb 20, 2023
61e86bd
Update readme to use new mirror origin (#838)
mwt Feb 20, 2023
110f267
doc: rename GPG public key file to use .gpg extension (#839)
phanect Feb 22, 2023
8812885
patch `electron-installer-redhat` to disable `.build-id` links in dir…
shiftkey Feb 26, 2023
068a431
Delete FUNDING.yml
shiftkey Feb 26, 2023
7ab8c0c
change keyring path to more predictable directory (#843)
shiftkey Mar 1, 2023
6f6ea0a
upgrade to supported Ubuntu runner (#863)
shiftkey Apr 7, 2023
9e7a17f
Bump electron-installer-redhat from 3.3.0 to 3.4.0 (#848)
dependabot[bot] Apr 7, 2023
391b708
moved OpenSUSE instructions to separate steps (#864)
shiftkey Apr 7, 2023
f5ffe52
patch dugite with forked package for Linux-specific build fixes (#893)
shiftkey Jul 3, 2023
0cee97b
enable system theme changes by default on Linux
shiftkey Jul 3, 2023
15ee2f2
remove duplicate editor
shiftkey Jul 3, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions .github/ISSUE_TEMPLATE/installation-issue.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
---
name: "\U0001F4BB Installation issue"
about: Report a problem when installing the application
title: ''
labels: ''
assignees: ''

---

### Operating System/Distribution

Which distribution of Linux are you using?

### Installer

Which version of the app?
Which installer type?

### What happened?

Provide as much detail as possible. Error messages or output are extremely useful.
10 changes: 10 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,13 @@ updates:
directory: /
schedule:
interval: weekly

- package-ecosystem: 'npm'
directory: '/'
open-pull-requests-limit: 5
schedule:
interval: 'weekly'
allow:
- dependency-name: 'electron-builder'
- dependency-name: 'electron-packager'
- dependency-name: 'electron-installer-*'
52 changes: 31 additions & 21 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,25 +4,37 @@ on:
push:
branches:
- development
- __release-*
- linux
- 'linux-release-*'
tags:
- 'release-*.*.*-linux*'
pull_request:
branches:
- linux
- 'linux-release-*'

jobs:
build:
name: ${{ matrix.friendlyName }} ${{ matrix.arch }}
runs-on: ${{ matrix.os }}
permissions: read-all
permissions:
contents: write
strategy:
fail-fast: false
matrix:
node: [16.17.1]
os: [macos-11, windows-2019]
os: [macos-11, windows-2019, ubuntu-20.04]
arch: [x64, arm64]
include:
- os: macos-11
friendlyName: macOS
- os: windows-2019
friendlyName: Windows
- os: ubuntu-20.04
friendlyName: Ubuntu
exclude:
- os: ubuntu-20.04
arch: arm64
timeout-minutes: 60
steps:
- uses: actions/checkout@v3
Expand Down Expand Up @@ -56,13 +68,6 @@ jobs:
- name: Build production app
run: yarn build:prod
env:
DESKTOP_OAUTH_CLIENT_ID: ${{ secrets.DESKTOP_OAUTH_CLIENT_ID }}
DESKTOP_OAUTH_CLIENT_SECRET:
${{ secrets.DESKTOP_OAUTH_CLIENT_SECRET }}
APPLE_ID: ${{ secrets.APPLE_ID }}
APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }}
DESKTOPBOT_TOKEN: ${{ secrets.DESKTOPBOT_TOKEN }}
KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
npm_config_arch: ${{ matrix.arch }}
TARGET_ARCH: ${{ matrix.arch }}
- name: Prepare testing environment
Expand All @@ -74,15 +79,20 @@ jobs:
- name: Run script tests
if: matrix.arch == 'x64'
run: yarn test:script
- name: Publish production app
run: yarn run publish
- name: Package application
run: yarn run package
if: ${{ matrix.os == 'ubuntu-20.04' && matrix.arch == 'x64' }}
- name: Create Release
uses: softprops/action-gh-release@v1
if:
${{ matrix.os == 'ubuntu-20.04' && startsWith(github.ref,
'refs/tags/') }}
with:
files: |
dist/*.AppImage
dist/*.deb
dist/*.rpm
dist/*.txt
draft: true
env:
npm_config_arch: ${{ matrix.arch }}
DESKTOPBOT_TOKEN: ${{ secrets.DESKTOPBOT_TOKEN }}
WINDOWS_CERT_PASSWORD: ${{ secrets.WINDOWS_CERT_PASSWORD }}
KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
DEPLOYMENT_SECRET: ${{ secrets.DEPLOYMENT_SECRET }}
AZURE_STORAGE_ACCOUNT: ${{ secrets.AZURE_STORAGE_ACCOUNT }}
AZURE_STORAGE_ACCESS_KEY: ${{ secrets.AZURE_STORAGE_ACCESS_KEY }}
AZURE_BLOB_CONTAINER: ${{ secrets.AZURE_BLOB_CONTAINER }}
AZURE_STORAGE_URL: ${{ secrets.AZURE_STORAGE_URL }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
2 changes: 1 addition & 1 deletion .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: 'Code scanning - action'

on:
push:
branches: ['development']
branches: ['development', 'linux']
pull_request:
branches: ['development']
schedule:
Expand Down
163 changes: 108 additions & 55 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
# [GitHub Desktop](https://desktop.github.com)
# [GitHub Desktop](https://desktop.github.com) - The Linux Fork

[![CI](https://github.com/shiftkey/desktop/actions/workflows/ci.yml/badge.svg)](https://github.com/shiftkey/desktop/actions/workflows/ci.yml)

[GitHub Desktop](https://desktop.github.com/) is an open source [Electron](https://www.electronjs.org/)-based
GitHub app. It is written in [TypeScript](https://www.typescriptlang.org) and
Expand All @@ -16,91 +18,142 @@ uses [React](https://reactjs.org/).
/>
</picture>

## Where can I get it?
## What is this repository for?

This repository contains specific patches on top of the upstream
`desktop/desktop` repository to support Linux usage.

It also publishes [releases](https://github.com/shiftkey/desktop/releases) for various Linux distributions:

- AppImage (`.AppImage`)
- Debian (`.deb`)
- RPM (`.rpm`)

## Installation via package manager

You can use your operating system's package manager to install `github-desktop` and
keep it up to date on Debian and RPM-based distributions.

### Debian/Ubuntu

There are two APT package feeds available, both hosted in the US. You only need
to add one or the other here, as both of these are generated based on the
releases from this repository.

#### [@shiftkey](https://github.com/shiftkey) package feed

```
wget -qO - https://apt.packages.shiftkey.dev/gpg.key | gpg --dearmor | sudo tee /usr/share/keyrings/shiftkey-packages.gpg > /dev/null
sudo sh -c 'echo "deb [arch=amd64 signed-by=/usr/share/keyrings/shiftkey-packages.gpg] https://apt.packages.shiftkey.dev/ubuntu/ any main" > /etc/apt/sources.list.d/shiftkey-packages.list'
```

#### [@mwt](https://github.com/mwt) package feed

```sh
wget -qO - https://mirror.mwt.me/shiftkey-desktop/gpgkey | gpg --dearmor | sudo tee /usr/share/keyrings/mwt-desktop.gpg > /dev/null
sudo sh -c 'echo "deb [arch=amd64 signed-by=/usr/share/keyrings/mwt-desktop.gpg] https://mirror.mwt.me/shiftkey-desktop/deb/ any main" > /etc/apt/sources.list.d/mwt-desktop.list'
```

#### Installation

Once you have a feed configured, run this command to install the application:

```sh
sudo apt update && sudo apt install github-desktop
```

### Red Hat/CentOS/Fedora

There are two RPM package feeds available, both hosted in the US. You only need
to add one or the other here, as both of these are generated based on the
releases from this repository.

Download the official installer for your operating system:
#### [@shiftkey](https://github.com/shiftkey) package feed

- [macOS](https://central.github.com/deployments/desktop/desktop/latest/darwin)
- [macOS (Apple silicon)](https://central.github.com/deployments/desktop/desktop/latest/darwin-arm64)
- [Windows](https://central.github.com/deployments/desktop/desktop/latest/win32)
- [Windows machine-wide install](https://central.github.com/deployments/desktop/desktop/latest/win32?format=msi)
```
sudo rpm --import https://rpm.packages.shiftkey.dev/gpg.key
sudo sh -c 'echo -e "[shiftkey-packages]\nname=GitHub Desktop\nbaseurl=https://rpm.packages.shiftkey.dev/rpm/\nenabled=1\ngpgcheck=1\nrepo_gpgcheck=1\ngpgkey=https://rpm.packages.shiftkey.dev/gpg.key" > /etc/yum.repos.d/shiftkey-packages.repo'
```

You can install this alongside your existing GitHub Desktop for Mac or GitHub
Desktop for Windows application.
#### [@mwt](https://github.com/mwt) package feed

Linux is not officially supported; however, you can find installers created for Linux from a fork of GitHub Desktop in the [Community Releases](https://github.com/desktop/desktop#community-releases) section.
```sh
sudo rpm --import https://mirror.mwt.me/shiftkey-desktop/gpgkey
sudo sh -c 'echo -e "[mwt-packages]\nname=GitHub Desktop\nbaseurl=https://mirror.mwt.me/shiftkey-desktop/rpm\nenabled=1\ngpgcheck=1\nrepo_gpgcheck=1\ngpgkey=https://mirror.mwt.me/shiftkey-desktop/gpgkey" > /etc/yum.repos.d/mwt-packages.repo'
```

**NOTE**: There is no current migration path to import your existing
repositories into the new application - you can drag-and-drop your repositories
from disk onto the application to get started.
#### Installation

Once you have a feed configured, run this command to install the application:

### Beta Channel
```sh
# if yum is your package manager
sudo yum install github-desktop

Want to test out new features and get fixes before everyone else? Install the
beta channel to get access to early builds of Desktop:
# if dnf is your package manager
sudo dnf install github-desktop

- [macOS](https://central.github.com/deployments/desktop/desktop/latest/darwin?env=beta)
- [macOS (Apple silicon)](https://central.github.com/deployments/desktop/desktop/latest/darwin-arm64?env=beta)
- [Windows](https://central.github.com/deployments/desktop/desktop/latest/win32?env=beta)
- [Windows (ARM64)](https://central.github.com/deployments/desktop/desktop/latest/win32-arm64?env=beta)
# if zypper is your package manager
sudo zypper ref && sudo zypper in github-desktop
```

The release notes for the latest beta versions are available [here](https://desktop.github.com/release-notes/?env=beta).
#### OpenSUSE

### Community Releases
There are two RPM package feeds available, both hosted in the US. You only need
to add one or the other here, as both of these are generated based on the
releases from this repository.

There are several community-supported package managers that can be used to
install GitHub Desktop:
- Windows users can install using [winget](https://docs.microsoft.com/en-us/windows/package-manager/winget/) `c:\> winget install github-desktop` or [Chocolatey](https://chocolatey.org/) `c:\> choco install github-desktop`
- macOS users can install using [Homebrew](https://brew.sh/) package manager:
`$ brew install --cask github`
#### [@shiftkey](https://github.com/shiftkey) package feed

Installers for various Linux distributions can be found on the
[`shiftkey/desktop`](https://github.com/shiftkey/desktop) fork.
```
sudo rpm --import https://rpm.packages.shiftkey.dev/gpg.key
sudo sh -c 'echo -e "[shiftkey-packages]\nname=GitHub Desktop\nbaseurl=https://rpm.packages.shiftkey.dev/rpm/\nenabled=1\ngpgcheck=1\nrepo_gpgcheck=1\ngpgkey=https://rpm.packages.shiftkey.dev/gpg.key" > /etc/zypp/repos.d/shiftkey-packages.repo'
```

Arch Linux users can install the latest version from the
[AUR](https://aur.archlinux.org/packages/github-desktop-bin/).
#### [@mwt](https://github.com/mwt) package feed

## Is GitHub Desktop right for me? What are the primary areas of focus?
```sh
sudo rpm --import https://mirror.mwt.me/shiftkey-desktop/gpgkey
sudo sh -c 'echo -e "[mwt-packages]\nname=GitHub Desktop\nbaseurl=https://mirror.mwt.me/shiftkey-desktop/rpm\nenabled=1\ngpgcheck=1\nrepo_gpgcheck=1\ngpgkey=https://mirror.mwt.me/shiftkey-desktop/gpgkey" > /etc/zypp/repos.d/mwt-packages.repo'
```

[This document](https://github.com/desktop/desktop/blob/development/docs/process/what-is-desktop.md) describes the focus of GitHub Desktop and who the product is most useful for.
#### Installation

And to see what the team is working on currently and in the near future, check out the [GitHub Desktop roadmap](https://github.com/desktop/desktop/blob/development/docs/process/roadmap.md).
```sh
sudo zypper ref && sudo zypper in github-desktop
```

## I have a problem with GitHub Desktop

Note: The [GitHub Desktop Code of Conduct](https://github.com/desktop/desktop/blob/development/CODE_OF_CONDUCT.md) applies in all interactions relating to the GitHub Desktop project.
## Other Distributions

First, please search the [open issues](https://github.com/desktop/desktop/issues?q=is%3Aopen)
and [closed issues](https://github.com/desktop/desktop/issues?q=is%3Aclosed)
to see if your issue hasn't already been reported (it may also be fixed).
### Arch Linux

There is also a list of [known issues](https://github.com/desktop/desktop/blob/development/docs/known-issues.md)
that are being tracked against Desktop, and some of these issues have workarounds.
Arch Linux users can install GitHub Desktop from the [AUR](https://aur.archlinux.org/packages/github-desktop-bin/).

If you can't find an issue that matches what you're seeing, open a [new issue](https://github.com/desktop/desktop/issues/new/choose),
choose the right template and provide us with enough information to investigate
further.
`gnome-keyring` is required and the daemon must be launched either at login or when the X server is started. Normally this is handled by a display manager, but in other cases following the instructions found on the [Arch Wiki](https://wiki.archlinux.org/index.php/GNOME/Keyring#Using_the_keyring_outside_GNOME) will fix the issue of not being able to save login credentials.

## The issue I reported isn't fixed yet. What can I do?
### Cross-Distribution Packages

If nobody has responded to your issue in a few days, you're welcome to respond to it with a friendly ping in the issue. Please do not respond more than a second time if nobody has responded. The GitHub Desktop maintainers are constrained in time and resources, and diagnosing individual configurations can be difficult and time consuming. While we'll try to at least get you pointed in the right direction, we can't guarantee we'll be able to dig too deeply into any one person's issue.
GitHub Desktop is also available cross-platform as a [Flatpak](https://github.com/flathub/io.github.shiftey.Desktop) and [AppImage](https://appimage.github.io/GitHubDesktop/).

## How can I contribute to GitHub Desktop?
### deb-get

The [CONTRIBUTING.md](./.github/CONTRIBUTING.md) document will help you get setup and
familiar with the source. The [documentation](docs/) folder also contains more
resources relevant to the project.
Debian/Ubuntu users can also install directly from this repository using [`deb-get`](https://github.com/wimpysworld/deb-get): `deb-get install github-desktop`.

If you're looking for something to work on, check out the [help wanted](https://github.com/desktop/desktop/issues?q=is%3Aissue+is%3Aopen+label%3A%22help%20wanted%22) label.
## Known issues

## Building Desktop
If you're having troubles with Desktop, please refer to the [Known issues](docs/known-issues.md#linux)
document for guidance and workarounds for common limitations.

To get your development environment set up for building Desktop, see [setup.md](./docs/contributing/setup.md).
If your package manager is still trying to reach PackageCloud, refer to the
[cleanup instructions](docs/known-issues.md#the-packagecloud-package-feed-is-no-longer-working)
for details about migrating away.

## More Resources
## More information

See [desktop.github.com](https://desktop.github.com) for more product-oriented
Please check out the [README](https://github.com/desktop/desktop#github-desktop)
on the upstream [GitHub Desktop project](https://github.com/desktop/desktop) and
[desktop.github.com](https://desktop.github.com) for more product-oriented
information about GitHub Desktop.


Expand Down
4 changes: 2 additions & 2 deletions app/package.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"name": "desktop",
"name": "github-desktop",
"productName": "GitHub Desktop",
"bundleID": "com.github.GitHubClient",
"companyName": "GitHub, Inc.",
Expand Down Expand Up @@ -30,7 +30,7 @@
"desktop-trampoline": "desktop/desktop-trampoline#v0.9.8",
"dexie": "^3.2.2",
"dompurify": "^2.3.3",
"dugite": "^2.5.0",
"@shiftkey/dugite": "2.5.0-shiftkey1",
"electron-window-state": "^5.0.3",
"event-kit": "^2.0.0",
"focus-trap-react": "^8.1.0",
Expand Down
2 changes: 2 additions & 0 deletions app/src/cli/open-desktop.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ export function openDesktop(url: string = '') {
// https://github.com/nodejs/node/blob/b39dabefe6d/lib/child_process.js#L565-L577
const shell = process.env.comspec || 'cmd.exe'
return ChildProcess.spawn(shell, ['/d', '/c', 'start', url], { env })
} else if (__LINUX__) {
return ChildProcess.spawn('xdg-open', [url], { env })
} else {
throw new Error(
`Desktop command line interface not currently supported on platform ${process.platform}`
Expand Down
6 changes: 6 additions & 0 deletions app/src/lib/editors/found-editor.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
export interface IFoundEditor<T> {
readonly editor: T
readonly path: string
/**
* Indicate to Desktop to launch the editor with the `shell: true` option included.
*
* This is available to all platforms, but is only currently used by some Windows
* editors as their launch programs end in `.cmd`
*/
readonly usesShell?: boolean
}
Loading