diff --git a/extension/extension-kdeconnect.js b/extension/extension-kdeconnect.js
--- a/extension/extension-kdeconnect.js
+++ b/extension/extension-kdeconnect.js
@@ -47,11 +47,39 @@
let menuEntryTitle = chrome.i18n.getMessage("kdeconnect_open_device", name);
let menuId = kdeConnectMenuIdPrefix + deviceId;
- chrome.contextMenus.create({
+ let props = {
id: menuId,
contexts: ["link", "page", "image", "audio", "video"],
title: menuEntryTitle,
- });
+ };
+
+ if (IS_FIREFOX) {
+ let iconName = "";
+ switch (type) {
+ case "smartphone":
+ case "phone":
+ iconName = "smartphone-symbolic";
+ break;
+ case "tablet":
+ iconName = "tablet-symbolic";
+ break;
+ case "desktop":
+ case "tv": // at this size you can't really tell desktop monitor icon from a TV
+ iconName = "computer-symbolic";
+ break;
+ case "laptop":
+ iconName = "computer-laptop-symbolic";
+ break;
+ }
+
+ if (iconName) {
+ props.icons = {
+ "16": "icons/" + iconName + ".svg"
+ };
+ }
+ }
+
+ chrome.contextMenus.create(props);
kdeConnectDevices[deviceId] = {
name, type
diff --git a/extension/icons/computer-laptop-symbolic.svg b/extension/icons/computer-laptop-symbolic.svg
new file mode 100644
--- /dev/null
+++ b/extension/icons/computer-laptop-symbolic.svg
@@ -0,0 +1,13 @@
+
diff --git a/extension/icons/computer-symbolic.svg b/extension/icons/computer-symbolic.svg
new file mode 100644
--- /dev/null
+++ b/extension/icons/computer-symbolic.svg
@@ -0,0 +1,13 @@
+
diff --git a/extension/icons/smartphone-symbolic.svg b/extension/icons/smartphone-symbolic.svg
new file mode 100644
--- /dev/null
+++ b/extension/icons/smartphone-symbolic.svg
@@ -0,0 +1,13 @@
+
diff --git a/extension/icons/tablet-symbolic.svg b/extension/icons/tablet-symbolic.svg
new file mode 100644
--- /dev/null
+++ b/extension/icons/tablet-symbolic.svg
@@ -0,0 +1,8 @@
+