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 @@ + + + + + +