Skip to content

Commit

Permalink
Merge pull request #1 from andyholmes/master
Browse files Browse the repository at this point in the history
Update
  • Loading branch information
Vistaus authored Oct 11, 2018
2 parents d1ec986 + 8d02d4e commit 7844a5e
Show file tree
Hide file tree
Showing 141 changed files with 24,663 additions and 13,850 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
_build
*~
12 changes: 1 addition & 11 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,4 @@
# Code of Conduct

This project is governed by two simple axioms of human interaction:

* Don't *try* to offend people. If it is brought to your attention that you
have offended someone then apologize sincerely.

* Don't *try* to be offended by people. If you are offended by someone bring it
to their attention and then accept their sincere apology.

Any situation not resolved by adhering to these two axioms should be brought to
the attention of the project maintainers who will provide mediation and take
corrective action at their discretion.
Stay on topic. This applies to what you think, say, and do.

98 changes: 84 additions & 14 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,24 +2,94 @@

Thank you for considering contributing to this project. It means that you not
only find it useful, but that you think there's something that could be done to
make it more useful, or useful to more people. Suggestions are welcome, but not
all requests can or will be implemented.
make it more useful, or useful to more people.

The vision of this project is to be pure Gnome, targetting recent versions of
Gnome Shell (currently 3.24+), taking advantage of stock resources and
generally conforming to the [Gnome Shell Design Principles][design] and
[Gnome Human Interface Guidelines][hig].
The goal is to create an implementation of KDE Connect that integrates with the
Gnome desktop more than is appropriate for the original implementation, not just
duplicating its functionality. The [Gnome Shell Design Principles][design] and
[Gnome Human Interface Guidelines][hig] are followed whenever appropriate.

With regard to the KDE Connect protocol, the goal is to be compatible with
upstream KDE Connect, especially the current version of the Android app.
## Code of Conduct

All code *should* be written in [GJS][gjs] if at all possible and *must not* be
written in compiled languages that are architecture dependent. Essentially, it
should be ready as soon as it's unpacked from the extension ZIP file.
Stay on topic. This applies to what you think, say, and do.

The best way to get in touch is by [opening a new issue][issue].
## Overview

This document is mostly about code contributions. There are pages in the Wiki
for [Translating][translating], [Theming][theming] and [Packaging][packaging].
You can open a [New Issue][issue] or [Pull Request][pr] for anything you like
and it will be reviewed.

### Code Guidelines

* Code SHOULD be written in [GJS][gjs] if at all possible

Almost all of the Gnome API is available through introspection, however in the
few cases it is not Python is acceptable.

* Code MUST NOT be written in a pre-compiled language

The extension is distributed as-is to users via the GNOME Shell Extensions
website and must not include architecture dependant code or binaries.

* Code MUST run anywhere Gnome Shell runs

It is acceptable and sometimes necessary to use resources that may be specific
to Linux, but fallbacks must be available for other systems like BSD. Virtual
machines may be supported, but not at any expense to real systems.

* Code MUST NOT break compatibility with the KDE Connect project

Under no circumstances may code break protocol compatibility or introduce new
protocol features. Any protocol related discussion must happen directly with
the KDE Connect team and changes or additions are subject to their approval.

### Code Style

JavaScript doesn't follow a formal style guide; the existing code is the guide.
Prefer ES6 syntax, `if () {` long-form code blocks `}`, camelCase naming,
_private and __implementation prefixes, 4-space indents and 80 character lines.
Python can either imitate the same style or use PEP-8.

### A Note About Template Strings

JavaScript template literals are not handled well by gettext, like in the case
`` `<b>Breaks!</b>` ``. Once you have committed your changes and are about to
push, run the meson target for the POT file to confirm it still works:

```sh
ninja -C _build/ org.gnome.Shell.Extensions.GSConnect-pot
ninja: Entering directory `_build/'
[0/1] Running external command org.gnome.Shell.Extensions.GSConnect-pot.
src/extension.js:396: warning: RegExp literal terminated too early
```
Note that error messages might be incorrect and the line number earlier in the
file than is claimed. Adjust the code to use concatentation with `+` or `join()`
until it succeeds. Then discard the POT file changes and amend your commit:
```sh
git checkout -- po/org.gnome.Shell.Extensions.GSConnect.pot
git commit --amend --no-edit
```
## Questions
For general discussion, there is an IRC/Matrix channel for GSConnect:
* Matrix: https://matrix.to/#/#_gimpnet_#gsconnect:matrix.org
* IRC: irc://irc.gimp.org/#gsconnect
If that's not convenient, discussion can happen in the comments to your
[Pull Request][pr] or you can open a [New Issue][issue] for more public
discussion and mark the Pull Request as a fix for it.
[design]: https://wiki.gnome.org/Projects/GnomeShell/Design/Principles
[hig]: https://developer.gnome.org/hig/stable/
[issue]: https://github.com/andyholmes/gnome-shell-extension-mconnect/issues/new
[gjs]: https://wiki.gnome.org/Projects/Gjs
[translating]: https://github.com/andyholmes/gnome-shell-extension-gsconnect/wiki/Translating
[packaging]: https://github.com/andyholmes/gnome-shell-extension-gsconnect/wiki/Packaging
[theming]: https://github.com/andyholmes/gnome-shell-extension-gsconnect/wiki/Theming
[issue]: https://github.com/andyholmes/gnome-shell-extension-gsconnect/issues
[pr]: https://github.com/GNOME/gnome-shell/pulls
[gjs]: https://gitlab.gnome.org/GNOME/gjs/wikis/home
88 changes: 63 additions & 25 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,38 +4,57 @@

## Overview

GSConnect is a complete [KDE Connect][kdeconnect] protocol implementation
for Gnome Shell 3.24+ with Nautilus, Chrome and Firefox integration. See the
[Wiki][wiki] for more information.
> **NOTE:** The current stable release (v12) does not support Gnome Shell 3.30.
> Please see [Issue #186](https://github.com/andyholmes/gnome-shell-extension-gsconnect/issues/186)
> for a fixed Zip.
The [KDE Connect][kdeconnect] project allows devices to securely share content
such as notifications and files as well as interactive features such as SMS
messaging and remote input. The KDE Connect team maintains cross-desktop,
Android and Sailfish applications as well as an interface for KDE Plasma.

GSConnect is a complete implementation of KDE Connect especially for Gnome Shell
with Nautilus, Chrome and Firefox integration. It is does not rely on the KDE
Connect desktop application and will not work with it installed.

See [Related Projects](#related-projects) for a list of implementations.

### Getting Started

The easiest way to get started is to install the extension from the official
[GNOME Shell Extensions website][ego-install]. There is a short guide for
[pairing your first device][wiki-install], [installing from Zip][wiki-zip]
and a [full list of dependencies][wiki-depends].
[GNOME Shell Extensions website][ego-install]. The Wiki has a short guide for
[pairing your first device][wiki-install] and a [list of dependencies][wiki-depends].

The [Chrome extension][chrome-extension] and [Firefox Add-on][firefox-addon]
can be installed after [Web Browser Integration][web-browser-integration] has
been enabled in the preferences.

To connect an Android device, install the KDE Connect Android app from the
[Google Play Store][google-play] or [F-Droid][f-droid].
To connect a mobile device, install the KDE Connect Android app from the
[Google Play Store][google-play] or [F-Droid][f-droid], or the Sailfish app from
[OpenRepos][open-repos].

### Getting Help

Please see the [FAQ][wiki-faq] for answers to common questions before
[opening an issue][git-issue] to report a problem or request a new feature.
Please see the [FAQ][wiki-faq] before opening a [New Issue][git-issue] to report
a problem or request a new feature. There is also a IRC/Matrix channel available
for general discussion:

* Matrix: https://matrix.to/#/#_gimpnet_#gsconnect:matrix.org
* IRC: irc://irc.gimp.org/#gsconnect

The KDE Connect team has resources available for problems, feature requests and
contributions related to the Android App:
The KDE Connect team has resources available for problems and contributions to
their desktop, Android and Sailfish applications. Additionally, any protocol
related discussion should take place upstream within the KDE Connect project.

* [Bug Tracker][kdec-bugs]
* [Phabricator][kdec-phabricator]
* [KDE Connect Mailing List][kdec-mail]

* [Mailing List][kdec-mail]
* [Telegram (Development)][kdec-telegram]

### Credits

Code and assistance from [@getzze][getzze] implementing Bluetooth support.

Code from [python-folks][python-folks] by [@hugosenari][hugosenari] was adapted
to provide libfolks integration.

Expand All @@ -48,7 +67,6 @@ Code from [kdeconnect-chrome-extension][kdeconnect-chrome-extension] by
Icons from the [Numix][numix] project and Google's [Material Design][material]
project are included to provide fallbacks and supplement icon themes.


### Related Projects

* [KDE Connect][kdeconnect] - The original and reference implementation
Expand All @@ -58,40 +76,50 @@ project are included to provide fallbacks and supplement icon themes.

### Thanks

[@albertvaka][albertvaka] and friends for creating KDE Connect, and help on the
mailing list.
Most of all thank you to users, translators, bug reporters and contributors.

[@ptomato][ptomato], [@pwithnall][pwithnall] and [@nielsdg][nielsdg] for help
on Stackoverflow and the Gnome Bugzilla.
[@albertvaka][albertvaka], [@nicolasfella][nicolasfella], [@aleixpol][aleixpol],
[@mtijink][mtijink], [@sredman][sredman] and others for creating KDE Connect.

Joe Sneddon of [OMG! Ubuntu][omgubuntu] for his interest, support and articles.
[@ptomato][ptomato], [@pwithnall][pwithnall], [@nielsdg][nielsdg],
[@TingPing][TingPing] and others for help with Gnome APIs.

[@didrocks][didrocks] and [@jtojnar][jtojnar] for help supporting distribution
packaging.

[@piotrdrag][piotrdrag] for help and advice with translation support.

The many blogs and news sites reporting with screenshots and user guides,
especially those sharing GSConnect with non-English speaking users.


[screenshot]: https://raw.githubusercontent.com/andyholmes/gnome-shell-extension-gsconnect/master/extra/screenshot.png
[gjs]: https://wiki.gnome.org/Projects/Gjs
[wiki]: https://github.com/andyholmes/gnome-shell-extension-gsconnect/wiki
[translating]: https://github.com/andyholmes/gnome-shell-extension-gsconnect/issues/1
[roadmap]: https://github.com/andyholmes/gnome-shell-extension-gsconnect/wiki/Roadmap

[ego-install]: https://extensions.gnome.org/extension/1319/gsconnect/
[wiki-install]: https://github.com/andyholmes/gnome-shell-extension-gsconnect/wiki/Installation
[wiki-zip]: https://github.com/andyholmes/gnome-shell-extension-gsconnect/wiki/Installation#installing-from-zip
[wiki-depends]: https://github.com/andyholmes/gnome-shell-extension-gsconnect/wiki/Installation#dependencies
[web-browser-integration]: https://github.com/andyholmes/gnome-shell-extension-gsconnect/wiki/Preferences#web-browser-integration
[chrome-extension]: https://chrome.google.com/webstore/detail/gsconnect/jfnifeihccihocjbfcfhicmmgpjicaec
[firefox-addon]: https://addons.mozilla.org/en-US/firefox/addon/gsconnect/
[firefox-addon]: https://addons.mozilla.org/firefox/addon/gsconnect/

[git-issue]: https://github.com/andyholmes/gnome-shell-extension-gsconnect/issues/
[wiki-faq]: https://github.com/andyholmes/gnome-shell-extension-gsconnect/wiki/Frequently-Asked-Questions
[kdec-bugs]: https://bugs.kde.org/buglist.cgi?quicksearch=kdeconnect
[kdec-phabricator]: https://phabricator.kde.org/project/view/159/
[kdec-mail]: https://mail.kde.org/mailman/listinfo/kdeconnect
[kdec-telegram]: https://t.me/joinchat/AOS6gA37orb2dZCLhqbZjg

[kdeconnect]: https://community.kde.org/KDEConnect
[google-play]: https://play.google.com/store/apps/details?id=org.kde.kdeconnect_tp
[f-droid]: https://f-droid.org/packages/org.kde.kdeconnect_tp/
[open-repos]: https://openrepos.net/content/piggz/kde-connect
[mconnect]: https://github.com/bboozzoo/mconnect
[gconnect]: https://github.com/getzze/gconnect
[kindicator]: https://github.com/Bajoja/indicator-kdeconnect

[getzze]: https://github.com/getzze
[hugosenari]: https://github.com/hugosenari
[python-folks]: https://github.com/hugosenari/folks
[RaphaelRochet]: https://github.com/RaphaelRochet
Expand All @@ -102,7 +130,17 @@ Joe Sneddon of [OMG! Ubuntu][omgubuntu] for his interest, support and articles.
[material]: https://material.io/

[albertvaka]: https://github.com/albertvaka
[aleixpol]: https://github.com/aleixpol
[nicolasfella]: https://github.com/nicolasfella
[mtijink]: https://github.com/mtijink
[sredman]: https://github.com/sredman

[ptomato]: https://github.com/ptomato
[pwithnall]: https://github.com/pwithnall
[nielsdg]: https://github.com/nielsdg
[omgubuntu]: http://www.omgubuntu.co.uk/
[TingPing]: https://github.com/TingPing

[didrocks]: https://github.com/didrocks
[jtojnar]: https://github.com/jtojnar

[piotrdrag]: https://github.com/piotrdrag
Loading

0 comments on commit 7844a5e

Please sign in to comment.