desktop icon indicating copy to clipboard operation
desktop copied to clipboard

GitHub Desktop for Linux?

Open hmtxz opened this issue 8 years ago โ€ข 308 comments

Updating this issue with response from @billygriffin from the GitHub Desktop team (updated early 2021):

We have no immediate plans to support an official Linux version, but we continue to evaluate it alongside our other priorities and we know it's important to many people out there. I also know "maybe someday" is a disappointing response and I apologize for that. We're enormously grateful that @shiftkey has built a fork (https://github.com/shiftkey/desktop) and that many people are using that successfully, but @shiftkey is only one person and I hope people will understand that he's not always able to keep it entirely up to date with the official version.

I assure you that if/when we're able to commit to supporting a Linux version, we'll update this issue accordingly, and I appreciate your ask for a more "official" answer.

I'd also ask that others please refrain from responding to this issue with "when though?", "I want this too", or similar responses. Thanks!


Original issue content:

Please make Github Desktop available for linux user ๐Ÿ˜ƒ

Update : There is a fork with prebuilt Linux binaries by @shiftkey here https://github.com/shiftkey/desktop

hmtxz avatar May 17 '17 00:05 hmtxz

@hamaminatu this is an excellent question!

Currently our focus is on catching up to feature parity with the classic Desktop apps, and getting what we've built battle-tested, so I don't think this will be on our radar before we hit 1.0.

However I'm not aware of any current technical blockers for supporting Electron on Linux distros:

  • dugite-native - the Git package we use in Desktop - has been tested on recent Ubuntu and Fedora distros, and the Atom team are using it
  • Electron itself is built on Ubuntu 12.04 - I know other tools like VSCode support a bunch of distros, but maybe there's gaps in the official support for other platforms that we need to address
  • there's various Electron API differences - both in availability and behaviour - between macOS, Windows and Linux. For an example, read the BrowserWindow docs to see just how many differences are identified. We'd already do work differentiating between macOS and Windows in areas of the app - this is more work we need to build in and test.
  • what platform resources are there for the various Linux window managers that are available? We like to adhere to the macOS Human Interface Guidelines and the Windows Design Guidelines as much as possible.

We want to ensure a Linux version has the same high standard of quality as the other platforms we support, and given our lack of in-house expertise with the Linux ecosystem we'd love to get the community involved with this effort. So if you care to help us with knowledge, platform experience or testing, please upvote this issue or comment with how you can help!

We can also open in the interim to lay this groundwork, like #273, so we can steadily move towards this goal.

shiftkey avatar May 17 '17 01:05 shiftkey

I'm a Linux / Windows / Mac desktop dev and i have some expertise in a few different ways of setting up apt and rpm repos. I've set some up manually on S3 and have used Artifactory to host repos as well. I feel like most node / electron tools pretty much stopped at building the .deb and .rpm so if interested maybe I can build a package or two to help out there? I've also built an .arch package in the past but that was a while back.

cruzerld avatar May 17 '17 03:05 cruzerld

For the packaging part, you should also consider appimages, snaps or flatpaks to support multiple distributions with a single package.

ziggy42 avatar May 17 '17 05:05 ziggy42

Have used the GitHub desktop app for windows for quite a long time before switching to Ubuntu this year, so I could help with testing it out on Linux and give my feedback whether it's the same experience and how the app performance is compared to the other platform versions.

introwit avatar May 17 '17 05:05 introwit

Tagging this as future-work as our 1.0 work and stabilization is the current focus.

shiftkey avatar May 17 '17 05:05 shiftkey

what platform resources are there for the various Linux window managers that are available? We like to adhere to the macOS Human Interface Guidelines and the Windows Design Guidelines as much as possible.

@shiftkey

GNOME HIG: https://developer.gnome.org/hig/stable/ KDE HIG: https://community.kde.org/KDE_Visual_Design_Group/HIG

Electron-based apps tend to work the same on all desktops, but if you do want to know where to focus your efforts, I suggest making sure it works great on GNOME, since that is the default (or will be soon) for the two most popular and commercially-supported distributions (Ubuntu and Fedora) as well as for Debian.

joshmhanson avatar May 17 '17 14:05 joshmhanson

I got it working on my system! (Debian GNU/Linux 9) I have never used Electron before and have very little experience with Node, so it took some workarounds. You can check the work in progress in my fork. There's still lots of stuff to do but it works! github-desktop

picandocodigo avatar May 17 '17 16:05 picandocodigo

@picandocodigo Works on Arch linux (4.9.27-1) with GNOME (3.24.2)

prijindal avatar May 17 '17 18:05 prijindal

People seem to report of it working. Linux is open-source, one can easily test the app in a VM(and Travis is already set). Seems just like an extended "thank you" to Linus Torvalds.

lilianmoraru avatar May 17 '17 21:05 lilianmoraru

I'm a Ubuntu user and would love you contribute and test the Linux version. At least I can then remove the slow Win10 (VM) I currently use for contribution :sweat_smile:

z0al avatar May 18 '17 09:05 z0al

For the packaging part, you should also consider appimages, snaps or flatpaks to support multiple distributions with a single package.

@ziggy42 VS Code is open sourced. We could use that for packing reference.

Electron-based apps tend to work the same on all desktops

@hanjiexi Agreed. Also GitKraken is an excellent example for this.

prajapati-parth avatar May 18 '17 09:05 prajapati-parth

@prajapati-parth I'm fine with .deb and .rpm (I only use Ubuntu and Fedora so I'm covered :smile: ), but there are also examples using Appimages, like Microsoft BotFramework-Emulator.

Anyway, as long as you don't only ship debs, I'm fine :ok_hand:

ziggy42 avatar May 18 '17 09:05 ziggy42

I'm also a ubuntu user, would love to see github on linux, also I'd like to go from 0.1 stage itself for testing.

ankibalyan avatar May 18 '17 11:05 ankibalyan

I have use travis ci to build github linux client, anyone interested can give it a try. Binary download : https://github.com/gengjiawen/desktop/releases.

gengjiawen avatar May 18 '17 15:05 gengjiawen

@gengjiawen the 0.5.4 release has no binary. What is the difference between alpha2 and final 0.5.4?

hron84 avatar May 18 '17 22:05 hron84

Also, I wanna state here 0.5.4-alpha2 is works like a charm. I just downloaded yesterday, but can't wait to be GitHub officially on Linux.

hron84 avatar May 19 '17 10:05 hron84

@hron84 Use the alpha version, since the linux version has not been fully tested. The 0.5.4 tag is not what i want, but github dont allow you to delete a tag release, just ignore it. And also glad to hear it works.

gengjiawen avatar May 19 '17 10:05 gengjiawen

@gengjiawen OK, thanks for the reply. Random tips: ship an icon with deb-rpm files, and also add a Category field to the .desktop file. If you can point me to the linux build script, I can make you few modifications to ship better packages later.

hron84 avatar May 19 '17 10:05 hron84

You can fork my repo and change it (branch ci_build). The config file is the root package.json. And if you want other linux distro, you can config this file too. I hope Github desktop team will consider switch to electron builder.Because with electron builder we can use travis ci and appveyor to build multi platform binary. Have fun :)

gengjiawen avatar May 19 '17 10:05 gengjiawen

@gengjiawen next week i will check it out.

hron84 avatar May 19 '17 10:05 hron84

hope it will available in AUR too ๐Ÿ˜„

hmtxz avatar May 23 '17 09:05 hmtxz

@gengjiawen tried 0.5.4 with source compilation, its working fine, will keep on testing.

ankibalyan avatar May 23 '17 09:05 ankibalyan

Seems I am getting hung up on 2FA code entry when connecting to Github Enterprise. Works on Windows/Mac just fine, but Linux seems to never finish verifying the code. If anyone wants any data or info, let me know what you want me to gather (and how to get it since I am not experienced in the ways of Electron/Node).

kleinen avatar May 23 '17 17:05 kleinen

I would also be a huge proponent for this feature as an enterprise customer that would like to have this for 300+ people. I've been working my account rep to see if they can help drive the priority of this. ๐Ÿ‘

kleinen avatar May 23 '17 17:05 kleinen

@picandocodigo I tried your fork last night. But didn't work. I think it's because I'm using node x64 arch or maybe I'm missing something.

 lypborges ๎‚ฐ ~/Develop/GitHub/desktop ๎‚ฐ ๎‚ master ๎‚ฐ npm start                                               ๎‚ฒ โœ“ ๎‚ฒ 1732 ๎‚ฒ 22:30:14 
npm WARN lifecycle The node binary used for scripts is /home/lypborges/.asdf/shims/node but npm is using /home/lypborges/.asdf/installs/nodejs/7.10.0/bin/node itself. Use the `--scripts-prepend-node-path` option to include the path for the node binary npm was executed with.

> @ start /home/lypborges/Develop/GitHub/desktop
> cross-env NODE_ENV=development node script/start

I dunno how to run on x64 :(

npm ERR! Linux 4.8.0-52-generic
npm ERR! argv "/home/lypborges/.asdf/installs/nodejs/7.10.0/bin/node" "/home/lypborges/.asdf/installs/nodejs/7.10.0/bin/npm" "start"
npm ERR! node v7.10.0
npm ERR! npm  v4.2.0
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! @ start: `cross-env NODE_ENV=development node script/start`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the @ start script 'cross-env NODE_ENV=development node script/start'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the  package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     cross-env NODE_ENV=development node script/start
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs 
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls 
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:

I'll keep trying, but If you have any tips. Tks :rocket: :penguin:

lypborges avatar May 24 '17 01:05 lypborges

Seems I am getting hung up on 2FA code entry when connecting to Github Enterprise.

@kleinen this might be #1628 - could you confirm which version of GitHub Enterprise you are connecting to?

shiftkey avatar May 24 '17 04:05 shiftkey

My company recently upgraded to v2.9.

kleinen avatar May 24 '17 11:05 kleinen

@kleinen please open a new issue with as much information as you can provide so we can investigate further...

shiftkey avatar May 24 '17 11:05 shiftkey

@lypborges I am running x64 too. I used to see that same error at first but solved it somehow along the way. Try updating the branch and running npm install (I guess this is necessary to update any libs from commits in master), npm run build:dev and then npm start again, see if that solves the problem for you?

By the way, I'm constantly updating my linux branch to keep it in sync with master.

picandocodigo avatar May 24 '17 11:05 picandocodigo

@picandocodigo I was running on the wrong branch...uihauihaui. Tks.

lypborges avatar May 24 '17 18:05 lypborges