Plasma/Browser Integration: Difference between revisions

From KDE Community Wiki
(Added instructions how to load the extension from source code)
(Replace IRC channel by Matrix link)
 
(11 intermediate revisions by 4 users not shown)
Line 3: Line 3:


= What is it?=
= What is it?=
Plasma Browser Integration is an extension for common browsers to closer fit into the Plasma shell. This includes:
Plasma Browser Integration is a system for common browsers to closer fit into the Plasma shell. This includes:


* Media Controls
* Media Controls
** Lets you control video and audio players in websites using the Media Controller plasmoid, media keys on your keyboard, and even remotely from your phone
** Lets you control video and audio players in websites using the Media Controller plasmoid, media keys on your keyboard, and even remotely from your phone
* Send links via [[KDEConnect|KDE Connect]]
* Send links via [[KDEConnect|KDE Connect]]
** Adds a context menu entry to links enabling you to send them to your phone and other paired devices
** Adds a context menu entry to links, enabling you to send them to your phone and other paired devices
* Show downloads in and control them from Plasma’s notification area
* Show and control downloads from Plasma’s notification area
* Find browser tabs in the Run Command (Alt-Space) window
** Add downloaded files to recent documents for quick access throughout the Plasma desktop
** Optionally store the URL a file was downloaded from in its metadata
* Let websites prompt for sharing contents to other applications
* Find browser tabs and search the browser history in KRunner (Alt-Space)
** Make sure the "Browser Tabs" module is enabled in Plasma Search (KRunner) settings
** Make sure the "Browser Tabs" module is enabled in Plasma Search (KRunner) settings
** Needs to be granted permission to acesss the browser history in order to search it


= How to install =
= How to install =
Line 20: Line 24:
** For Google Chrome, Chromium, and Vivaldi: https://chrome.google.com/webstore/detail/plasma-integration/cimiefiiaegbelhefglklhhakcgmhkai
** For Google Chrome, Chromium, and Vivaldi: https://chrome.google.com/webstore/detail/plasma-integration/cimiefiiaegbelhefglklhhakcgmhkai
** For Mozilla Firefox: https://addons.mozilla.org/en-US/firefox/addon/plasma-integration/
** For Mozilla Firefox: https://addons.mozilla.org/en-US/firefox/addon/plasma-integration/
** For Microsoft Edge: https://microsoftedge.microsoft.com/addons/detail/dnnckbejblnejeabhcmhklcaljjpdjeh
** For using the extension from source code:
** For using the extension from source code:
*** For Google Chrome, Chromium, go to ''chrome://extensions'', enable "Developer Mode", click "load unpacked extension" and point it to the "extension" directory in the folder where you downloaded the source code
*** For Google Chrome, and most Chromium-based browsers, go to ''chrome://extensions'', enable "Developer Mode", click "load unpacked extension" and point it to the "extension" directory in the folder where you downloaded the source code
*** For Mozilla Firefox: go to ''about:debugging'', "Enable add-on debugging", click "Load Temporary Add-on" and point it to the "manifest.json" file within the "extension" directory  in the folder where you downloaded the source code
*** For Mozilla Firefox: go to ''about:debugging'', "This Firefox", "Enable add-on debugging", click "Load Temporary Add-on" and point it to the "manifest.json" file within the "extension" directory  in the folder where you downloaded the source code


* The '''native host''': An application that runs on your computer that the browser extension talks to:
* The '''native host''': An application that runs on your computer that the browser extension talks to:
** It should be available as package from your distribution.
** It should be available as a package from your distribution.
** If building from source into a custom prefix, you will want to build with -DCOPY_MESSAGING_HOST_FILE_HOME to install the files firefox/chrome need
** If building from the source into a custom prefix, you will want to build with -DCOPY_MESSAGING_HOST_FILE_HOME to install the files firefox/chrome need
** See [https://developer.chrome.com/apps/nativeMessaging#native-messaging-host-location Chrome documentation] and [https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Native_messaging Firefox documentation] for where the native host and its accompanying configuration file must be placed in.


= Privacy=
= Privacy=


Everything is handled on your PC between the browser and your desktop, no additional data is sent via the web.
Generally, everything is handled on your PC between the browser and your desktop.
 
Note, however:
 
* When using Tabs Runner, the extension will query the browser for website favicons of all open pages. They are open already anyway, so this normally won't result in any additional network activity.
* When using Enhanced Media Controls, the extension will announce a website-provided album cover image URL, which may be downloaded and displayed outside the browser, such as by the desktop shell.
* A website might be able to detect that you are using this extension by querying for specific objects added to the website's environment.
 
KDE's [https://kde.org/privacypolicy-apps Privacy Policy] applies.


= How to help =
= How to help =


If you find an issue, please check the [https://bugs.kde.org/buglist.cgi?list_id=1517340&product=plasma-browser-integration&resolution=--- list of open bugs] and then [https://bugs.kde.org/enter_bug.cgi?product=plasma-browser-integration file a bug report].
If you find an issue, please check the [https://bugs.kde.org/buglist.cgi?list_id=1517340&product=plasma-browser-integration&resolution=--- list of open bugs], and then [https://bugs.kde.org/enter_bug.cgi?product=plasma-browser-integration file a bug report].


For help and suggestions, you'll find us in #plasma on Freenode IRC.
For help and suggestions, you'll find us in [https://go.kde.org/matrix/#/#plasma:kde.org #plasma:kde.org] on Matrix.


You can also [https://cgit.kde.org/plasma-browser-integration.git browse the source code] and clone it from git://anongit.kde.org/plasma-browser-integration.git
You can browse the source code on KDE's GitLab instance: https://invent.kde.org/plasma/plasma-browser-integration  


<!-- TODO add some paragraph on how to load the extension from file system for testing local changes -->
<!-- TODO add Troubleshooting section -->
<!-- TODO add Troubleshooting section -->

Latest revision as of 09:05, 4 November 2023

This project aims to provide better integration of web browsers with the Plasma desktop.

What is it?

Plasma Browser Integration is a system for common browsers to closer fit into the Plasma shell. This includes:

  • Media Controls
    • Lets you control video and audio players in websites using the Media Controller plasmoid, media keys on your keyboard, and even remotely from your phone
  • Send links via KDE Connect
    • Adds a context menu entry to links, enabling you to send them to your phone and other paired devices
  • Show and control downloads from Plasma’s notification area
    • Add downloaded files to recent documents for quick access throughout the Plasma desktop
    • Optionally store the URL a file was downloaded from in its metadata
  • Let websites prompt for sharing contents to other applications
  • Find browser tabs and search the browser history in KRunner (Alt-Space)
    • Make sure the "Browser Tabs" module is enabled in Plasma Search (KRunner) settings
    • Needs to be granted permission to acesss the browser history in order to search it

How to install

The extension consists of two parts:

  • The native host: An application that runs on your computer that the browser extension talks to:
    • It should be available as a package from your distribution.
    • If building from the source into a custom prefix, you will want to build with -DCOPY_MESSAGING_HOST_FILE_HOME to install the files firefox/chrome need
    • See Chrome documentation and Firefox documentation for where the native host and its accompanying configuration file must be placed in.

Privacy

Generally, everything is handled on your PC between the browser and your desktop.

Note, however:

  • When using Tabs Runner, the extension will query the browser for website favicons of all open pages. They are open already anyway, so this normally won't result in any additional network activity.
  • When using Enhanced Media Controls, the extension will announce a website-provided album cover image URL, which may be downloaded and displayed outside the browser, such as by the desktop shell.
  • A website might be able to detect that you are using this extension by querying for specific objects added to the website's environment.

KDE's Privacy Policy applies.

How to help

If you find an issue, please check the list of open bugs, and then file a bug report.

For help and suggestions, you'll find us in #plasma:kde.org on Matrix.

You can browse the source code on KDE's GitLab instance: https://invent.kde.org/plasma/plasma-browser-integration