Browse Source

feat: adornment for ytm-only features

Sv443 18 hours ago
parent
commit
09030db525

+ 1 - 0
assets/icons/ytm.svg

@@ -0,0 +1 @@
+<svg width="24" height="24" viewBox="0 -960 960 960" version="1.1" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path class="circle" style="stroke-width:0.781273" d="m 480.32288,-171.1302 c -42.7501,0 -82.93269,-8.11189 -120.54778,-24.33567 -37.61509,-16.22379 -70.33377,-38.24139 -98.15603,-66.0528 -27.82227,-27.81141 -49.85072,-60.51654 -66.08534,-98.11536 -16.2292,-37.59884 -24.3438,-77.77059 -24.3438,-120.51525 0,-42.7501 8.11189,-82.93269 24.33567,-120.54779 16.22378,-37.61509 38.24138,-70.33377 66.05279,-98.15604 27.81142,-27.82226 60.51655,-49.8507 98.11537,-66.08532 37.59884,-16.22921 77.77059,-24.34381 120.51525,-24.34381 42.75009,0 82.93268,8.11189 120.54778,24.33568 37.61509,16.22378 70.33377,38.24137 98.15603,66.05278 27.82227,27.81142 49.85071,60.51655 66.08534,98.11537 16.2292,37.59884 24.3438,77.77059 24.3438,120.51525 0,42.7501 -8.11189,82.9327 -24.33567,120.54779 -16.22378,37.61509 -38.24138,70.33376 -66.05279,98.15602 -27.81142,27.82227 -60.51654,49.85072 -98.11536,66.08534 -37.59884,16.22921 -77.77059,24.34381 -120.51526,24.34381 z m -0.0568,-59.06932 c 69.79354,0 128.90971,-24.2194 177.34851,-72.6582 48.43879,-48.43879 72.65819,-107.55496 72.65819,-177.3485 0,-69.79354 -24.2194,-128.90971 -72.65819,-177.3485 -48.4388,-48.43881 -107.55497,-72.65821 -177.34851,-72.65821 -69.79353,0 -128.9097,24.2194 -177.34849,72.65821 -48.43881,48.43879 -72.65821,107.55496 -72.65821,177.3485 0,69.79354 24.2194,128.90971 72.65821,177.3485 48.43879,48.4388 107.55496,72.6582 177.34849,72.6582 z" /><path class="note" style="stroke-width:0.781273" d="m 418.89711,-297.506 q 37.03225,0 63.02512,-25.94601 25.98508,-25.9382 25.98508,-63.00169 v -221.16218 h 91.35401 v -55.29055 H 470.6485 v 204.81799 q -11.53937,-8.05491 -24.62566,-12.68002 -13.09411,-4.63295 -27.05542,-4.63295 -37.06348,0 -63.00168,25.92259 -25.94601,25.92256 -25.94601,62.95481 0,37.03223 25.92257,63.02511 25.92257,25.9929 62.95481,25.9929 z" /></svg>

+ 1 - 0
assets/resources.json

@@ -49,6 +49,7 @@
     "icon-speed": "icons/speed.svg",
     "icon-spinner": "icons/spinner.svg",
     "icon-upload": "icons/upload.svg",
+    "icon-ytm": "icons/ytm.svg",
     "img-close": "images/close.png",
     "img-discord": "images/external/discord.png",
     "img-github": "images/external/github.png",

+ 3 - 0
assets/spritesheet.svg

@@ -74,4 +74,7 @@
   <symbol id="bytm-svg-icon-upload">
     <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px"><path fill="#ffffff" d="M460-249.23h40V-437l84 84 28.31-28.54L480-513.85 347.69-381.54l28.54 28.31L460-437v187.77ZM264.62-120q-27.62 0-46.12-18.5Q200-157 200-184.62v-590.76q0-27.62 18.5-46.12Q237-840 264.62-840H580l180 180v475.38q0 27.62-18.5 46.12Q723-120 695.38-120H264.62ZM560-640v-160H264.62q-9.24 0-16.93 7.69-7.69 7.69-7.69 16.93v590.76q0 9.24 7.69 16.93 7.69 7.69 16.93 7.69h430.76q9.24 0 16.93-7.69 7.69-7.69 7.69-16.93V-640H560ZM240-800v160-160 640-640Z"/></svg>
   </symbol>
+  <symbol id="bytm-svg-icon-ytm">
+    <svg width="24" height="24" viewBox="0 -960 960 960" version="1.1" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path class="circle" style="stroke-width:0.781273" d="m 480.32288,-171.1302 c -42.7501,0 -82.93269,-8.11189 -120.54778,-24.33567 -37.61509,-16.22379 -70.33377,-38.24139 -98.15603,-66.0528 -27.82227,-27.81141 -49.85072,-60.51654 -66.08534,-98.11536 -16.2292,-37.59884 -24.3438,-77.77059 -24.3438,-120.51525 0,-42.7501 8.11189,-82.93269 24.33567,-120.54779 16.22378,-37.61509 38.24138,-70.33377 66.05279,-98.15604 27.81142,-27.82226 60.51655,-49.8507 98.11537,-66.08532 37.59884,-16.22921 77.77059,-24.34381 120.51525,-24.34381 42.75009,0 82.93268,8.11189 120.54778,24.33568 37.61509,16.22378 70.33377,38.24137 98.15603,66.05278 27.82227,27.81142 49.85071,60.51655 66.08534,98.11537 16.2292,37.59884 24.3438,77.77059 24.3438,120.51525 0,42.7501 -8.11189,82.9327 -24.33567,120.54779 -16.22378,37.61509 -38.24138,70.33376 -66.05279,98.15602 -27.81142,27.82227 -60.51654,49.85072 -98.11536,66.08534 -37.59884,16.22921 -77.77059,24.34381 -120.51526,24.34381 z m -0.0568,-59.06932 c 69.79354,0 128.90971,-24.2194 177.34851,-72.6582 48.43879,-48.43879 72.65819,-107.55496 72.65819,-177.3485 0,-69.79354 -24.2194,-128.90971 -72.65819,-177.3485 -48.4388,-48.43881 -107.55497,-72.65821 -177.34851,-72.65821 -69.79353,0 -128.9097,24.2194 -177.34849,72.65821 -48.43881,48.43879 -72.65821,107.55496 -72.65821,177.3485 0,69.79354 24.2194,128.90971 72.65821,177.3485 48.43879,48.4388 107.55496,72.6582 177.34849,72.6582 z" /><path class="note" style="stroke-width:0.781273" d="m 418.89711,-297.506 q 37.03225,0 63.02512,-25.94601 25.98508,-25.9382 25.98508,-63.00169 v -221.16218 h 91.35401 v -55.29055 H 470.6485 v 204.81799 q -11.53937,-8.05491 -24.62566,-12.68002 -13.09411,-4.63295 -27.05542,-4.63295 -37.06348,0 -63.00168,25.92259 -25.94601,25.92256 -25.94601,62.95481 0,37.03223 25.92257,63.02511 25.92257,25.9929 62.95481,25.9929 z" /></svg>
+  </symbol>
 </svg>

+ 9 - 9
assets/translations/README.md

@@ -16,15 +16,15 @@ To submit or edit a translation, please follow [this guide](../../contributing.m
 ### Translation progress:
 | &nbsp; | Locale | Translated keys | Based on |
 | :----: | ------ | --------------- | :------: |
-|  | [`en-US`](./en-US.json) | `355` (default locale) |  |
-| ✅ | [`de-DE`](./de-DE.json) | `355/355` (100%) | ─ |
-|  | [`en-GB`](./en-GB.json) | `355/355` (100%) | `en-US` |
-| ⚠ | [`es-ES`](./es-ES.json) | `340/355` (95.8%) | ─ |
-| ⚠ | [`fr-FR`](./fr-FR.json) | `340/355` (95.8%) | ─ |
-| ⚠ | [`hi-IN`](./hi-IN.json) | `340/355` (95.8%) | ─ |
-| ⚠ | [`ja-JP`](./ja-JP.json) | `340/355` (95.8%) | ─ |
-| ⚠ | [`pt-BR`](./pt-BR.json) | `340/355` (95.8%) | ─ |
-| ⚠ | [`zh-CN`](./zh-CN.json) | `340/355` (95.8%) | ─ |
+|  | [`en-US`](./en-US.json) | `356` (default locale) |  |
+| ✅ | [`de-DE`](./de-DE.json) | `356/356` (100%) | ─ |
+|  | [`en-GB`](./en-GB.json) | `356/356` (100%) | `en-US` |
+| ⚠ | [`es-ES`](./es-ES.json) | `341/356` (95.8%) | ─ |
+| ⚠ | [`fr-FR`](./fr-FR.json) | `341/356` (95.8%) | ─ |
+| ⚠ | [`hi-IN`](./hi-IN.json) | `341/356` (95.8%) | ─ |
+| ⚠ | [`ja-JP`](./ja-JP.json) | `341/356` (95.8%) | ─ |
+| ⚠ | [`pt-BR`](./pt-BR.json) | `341/356` (95.8%) | ─ |
+| ⚠ | [`zh-CN`](./zh-CN.json) | `341/356` (95.8%) | ─ |
 
 <sub>
 ✅ - Fully translated

+ 1 - 0
assets/translations/de-DE.json

@@ -93,6 +93,7 @@
   "advanced_mode": "Erweiterte Einstellungen",
   "advanced_mode_short": "Erweit.",
   "experimental_feature": "Experimentelle Funktion",
+  "feature_only_works_on_ytm": "Funktioniert nur auf YT Music",
 
   "open_current_lyrics": "Songtext des aktuellen Songs öffnen - Shift-Klick, um in einem neuen Fenster zu öffnen oder Strg-Klick, um manuell zu suchen",
   "open_lyrics": "Songtext in einem neuen Tab öffnen - Strg-Klick, um manuell zu suchen",

+ 1 - 0
assets/translations/en-US.json

@@ -93,6 +93,7 @@
   "advanced_mode": "Advanced mode",
   "advanced_mode_short": "Advanced",
   "experimental_feature": "Experimental feature",
+  "feature_only_works_on_ytm": "Only works on YT Music",
 
   "open_current_lyrics": "Open the current song's lyrics in a new tab - shift-click to open in a new window or ctrl-click to open manual search",
   "open_lyrics": "Open this song's lyrics in a new tab - ctrl-click to open manual search",

+ 1 - 0
assets/translations/es-ES.json

@@ -93,6 +93,7 @@
   "advanced_mode": "Modo avanzado",
   "advanced_mode_short": "Avanzado",
   "experimental_feature": "Función experimental",
+  "feature_only_works_on_ytm": "Solo funciona en YT Music",
 
   "open_current_lyrics": "Abrir la letra de la canción actual en una nueva pestaña - shift-click para abrir en una nueva ventana o ctrl-click para abrir la búsqueda manual",
   "open_lyrics": "Abrir la letra de esta canción en una nueva pestaña - ctrl-click para abrir la búsqueda manual",

+ 1 - 0
assets/translations/fr-FR.json

@@ -93,6 +93,7 @@
   "advanced_mode": "Mode avancé",
   "advanced_mode_short": "Avancé",
   "experimental_feature": "Fonctionnalité expérimentale",
+  "feature_only_works_on_ytm": "Ne fonctionne que sur YT Music",
 
   "open_current_lyrics": "Ouvrir les paroles de la chanson actuelle dans un nouvel onglet - clic droit pour ouvrir dans une nouvelle fenêtre ou ctrl-clic pour ouvrir la recherche manuelle",
   "open_lyrics": "Ouvrir les paroles de cette chanson dans un nouvel onglet - clic droit pour ouvrir dans une nouvelle fenêtre ou ctrl-clic pour ouvrir la recherche manuelle",

+ 1 - 0
assets/translations/hi-IN.json

@@ -93,6 +93,7 @@
   "advanced_mode": "उन्नत मोड",
   "advanced_mode_short": "उन्नत",
   "experimental_feature": "प्रायोगिक सुविधा",
+  "feature_only_works_on_ytm": "केवल YT म्यूजिक पर काम करता है",
 
   "open_current_lyrics": "इस गीत के बोल एक नई टैब में खोलें - शिफ्ट-क्लिक करें एक नई विंडो में खोलने के लिए या ctrl-क्लिक करें मैन्युअल खोज खोलने के लिए",
   "open_lyrics": "इस गीत के बोल एक नई टैब में खोलें - ctrl-क्लिक करें मैन्युअल खोज खोलने के लिए",

+ 1 - 0
assets/translations/ja-JP.json

@@ -93,6 +93,7 @@
   "advanced_mode": "詳細モード",
   "advanced_mode_short": "詳細モード",
   "experimental_feature": "実験的な機能",
+  "feature_only_works_on_ytm": "YouTube Music のみ",
 
   "open_current_lyrics": "この曲の歌詞を新しいタブで開く - シフトクリックで新しいウィンドウで開くか、Ctrlクリックで手動検索を開く",
   "open_lyrics": "この曲の歌詞を新しいタブで開く - Ctrlクリックで手動検索を開く",

+ 1 - 0
assets/translations/pt-BR.json

@@ -93,6 +93,7 @@
   "advanced_mode": "Modo avançado",
   "advanced_mode_short": "Avançado",
   "experimental_feature": "Recurso experimental",
+  "feature_only_works_on_ytm": "Apenas funciona no YT Music",
 
   "open_current_lyrics": "Abrir as letras da música atual em uma nova guia - clique com o botão do meio ou shift-clique para abrir em uma nova janela",
   "open_lyrics": "Abrir as letras desta música em uma nova guia - clique com o botão do meio ou shift-clique para abrir em uma nova janela",

+ 1 - 0
assets/translations/zh-CN.json

@@ -93,6 +93,7 @@
   "advanced_mode": "高级模式",
   "advanced_mode_short": "高级",
   "experimental_feature": "实验性功能",
+  "feature_only_works_on_ytm": "仅在 YT Music 上有效",
 
   "open_current_lyrics": "打开当前歌曲的歌词 - shift-click 在新窗口中打开或 ctrl-click 打开手动搜索",
   "open_lyrics": "打开当前歌曲的歌词 - ctrl-click 打开手动搜索",

+ 10 - 0
dist/BetterYTM.css

@@ -476,6 +476,8 @@ hr {
   --bytm-warning-col: #e5a63b;
   --bytm-error-col: #fa5b5b;
   --bytm-reload-col: #77e064;
+  --bytm-ytm-only-circle-col: #f13440;
+  --bytm-ytm-only-note-col: #f3dcdd;
 }
 
 /* TODO: after cfg menu migration, leave only dialog styles here */
@@ -589,6 +591,14 @@ hr {
   fill: var(--bytm-reload-col, #fff);
 }
 
+.bytm-ytm-only-icon svg path.circle {
+  fill: var(--bytm-ytm-only-circle-col, #fff);
+}
+
+.bytm-ytm-only-icon svg path.note {
+  fill: var(--bytm-ytm-only-note-col, #fff);
+}
+
 /* #region welcome dialog */
 
 #bytm-welcome-menu-title-wrapper {

+ 10 - 0
src/dialogs/dialogs.css

@@ -6,6 +6,8 @@
   --bytm-warning-col: #e5a63b;
   --bytm-error-col: #fa5b5b;
   --bytm-reload-col: #77e064;
+  --bytm-ytm-only-circle-col: #f13440;
+  --bytm-ytm-only-note-col: #f3dcdd;
 }
 
 /* TODO: after cfg menu migration, leave only dialog styles here */
@@ -119,6 +121,14 @@
   fill: var(--bytm-reload-col, #fff);
 }
 
+.bytm-ytm-only-icon svg path.circle {
+  fill: var(--bytm-ytm-only-circle-col, #fff);
+}
+
+.bytm-ytm-only-icon svg path.note {
+  fill: var(--bytm-ytm-only-note-col, #fff);
+}
+
 /* #region welcome dialog */
 
 #bytm-welcome-menu-title-wrapper {

+ 50 - 40
src/features/index.ts

@@ -74,6 +74,7 @@ const adornments = {
   globe: async () => getAdornHtml("bytm-locale-icon", undefined, "icon-globe_small"),
   alert: async (title: StringGen) => getAdornHtml("bytm-warning-icon", title, "icon-error", "role=\"alert\""),
   reload: async () => getFeature("advancedMode") ? getAdornHtml("bytm-reload-icon", t("feature_requires_reload"), "icon-reload") : undefined,
+  ytmOnly: async () => getAdornHtml("bytm-ytm-only-icon", t("feature_only_works_on_ytm"), "icon-ytm"),
 } as const satisfies Record<string, AdornmentFunc>;
 
 /** Order of adornment elements in the {@linkcode combineAdornments()} function */
@@ -180,7 +181,7 @@ export const featInfo = {
     category: "layout",
     supportedSites: ["ytm"],
     default: true,
-    textAdornment: adornments.reload,
+    textAdornment: () => combineAdornments([adornments.ytmOnly, adornments.reload]),
   },
   removeShareTrackingParam: {
     type: "toggle",
@@ -204,7 +205,7 @@ export const featInfo = {
     supportedSites: ["ytm"],
     default: true,
     advanced: true,
-    textAdornment: () => combineAdornments([adornments.advanced, adornments.reload]),
+    textAdornment: () => combineAdornments([adornments.ytmOnly, adornments.advanced, adornments.reload]),
   },
   thumbnailOverlayBehavior: {
     type: "select",
@@ -219,20 +220,21 @@ export const featInfo = {
     default: "songsOnly",
     reloadRequired: false,
     enable: noop,
+    textAdornment: adornments.ytmOnly,
   },
   thumbnailOverlayToggleBtnShown: {
     type: "toggle",
     category: "layout",
     supportedSites: ["ytm"],
     default: true,
-    textAdornment: adornments.reload,
+    textAdornment: () => combineAdornments([adornments.ytmOnly, adornments.reload]),
   },
   thumbnailOverlayShowIndicator: {
     type: "toggle",
     category: "layout",
     supportedSites: ["ytm"],
     default: true,
-    textAdornment: adornments.reload,
+    textAdornment: () => combineAdornments([adornments.ytmOnly, adornments.reload]),
   },
   thumbnailOverlayIndicatorOpacity: {
     type: "slider",
@@ -244,7 +246,7 @@ export const featInfo = {
     default: 40,
     unit: "%",
     advanced: true,
-    textAdornment: () => combineAdornments([adornments.advanced, adornments.reload]),
+    textAdornment: () => combineAdornments([adornments.ytmOnly, adornments.advanced, adornments.reload]),
   },
   thumbnailOverlayImageFit: {
     type: "select",
@@ -257,7 +259,7 @@ export const featInfo = {
     ],
     default: "cover",
     advanced: true,
-    textAdornment: () => combineAdornments([adornments.advanced, adornments.reload]),
+    textAdornment: () => combineAdornments([adornments.ytmOnly, adornments.advanced, adornments.reload]),
   },
   hideCursorOnIdle: {
     type: "toggle",
@@ -266,6 +268,7 @@ export const featInfo = {
     default: true,
     reloadRequired: false,
     enable: noop,
+    textAdornment: adornments.ytmOnly,
   },
   hideCursorOnIdleDelay: {
     type: "slider",
@@ -277,7 +280,7 @@ export const featInfo = {
     default: 2,
     unit: "s",
     advanced: true,
-    textAdornment: adornments.advanced,
+    textAdornment: () => combineAdornments([adornments.ytmOnly, adornments.advanced]),
     reloadRequired: false,
     enable: noop,
   },
@@ -287,21 +290,21 @@ export const featInfo = {
     supportedSites: ["ytm"],
     default: true,
     advanced: true,
-    textAdornment: () => combineAdornments([adornments.advanced, adornments.reload]),
+    textAdornment: () => combineAdornments([adornments.ytmOnly, adornments.advanced, adornments.reload]),
   },
   showVotes: {
     type: "toggle",
     category: "layout",
     supportedSites: ["ytm"],
     default: true,
-    textAdornment: adornments.reload,
+    textAdornment: () => combineAdornments([adornments.ytmOnly, adornments.reload]),
   },
   watchPageFullSize: {
     type: "toggle",
     category: "layout",
     supportedSites: ["ytm"],
     default: true,
-    textAdornment: adornments.reload,
+    textAdornment: () => combineAdornments([adornments.ytmOnly, adornments.reload]),
   },
   // archived idea for future version (shows a bar under the like/dislike buttons that shows the ratio of likes to dislikes):
   // showVoteRatio: {
@@ -323,7 +326,7 @@ export const featInfo = {
     category: "volume",
     supportedSites: ["ytm"],
     default: true,
-    textAdornment: adornments.reload,
+    textAdornment: () => combineAdornments([adornments.ytmOnly, adornments.reload]),
   },
   volumeSliderSize: {
     type: "number",
@@ -334,7 +337,7 @@ export const featInfo = {
     step: 5,
     default: 150,
     unit: "px",
-    textAdornment: adornments.reload,
+    textAdornment: () => combineAdornments([adornments.ytmOnly, adornments.reload]),
   },
   volumeSliderStep: {
     type: "slider",
@@ -344,7 +347,7 @@ export const featInfo = {
     max: 25,
     default: 2,
     unit: "%",
-    textAdornment: adornments.reload,
+    textAdornment: () => combineAdornments([adornments.ytmOnly, adornments.reload]),
   },
   volumeSliderScrollStep: {
     type: "slider",
@@ -354,14 +357,14 @@ export const featInfo = {
     max: 25,
     default: 4,
     unit: "%",
-    textAdornment: adornments.reload,
+    textAdornment: () => combineAdornments([adornments.ytmOnly, adornments.reload]),
   },
   volumeSharedBetweenTabs: {
     type: "toggle",
     category: "volume",
     supportedSites: ["ytm"],
     default: false,
-    textAdornment: adornments.reload,
+    textAdornment: () => combineAdornments([adornments.ytmOnly, adornments.reload]),
   },
   setInitialTabVolume: {
     type: "toggle",
@@ -369,8 +372,8 @@ export const featInfo = {
     supportedSites: ["ytm"],
     default: false,
     textAdornment: () => getFeature("volumeSharedBetweenTabs")
-      ? combineAdornments([adornments.alert(t("feature_warning_setInitialTabVolume_volumeSharedBetweenTabs_incompatible").replace(/"/g, "'")), adornments.reload])
-      : adornments.reload(),
+      ? combineAdornments([adornments.ytmOnly, adornments.alert(t("feature_warning_setInitialTabVolume_volumeSharedBetweenTabs_incompatible").replace(/"/g, "'")), adornments.reload])
+      : combineAdornments([adornments.ytmOnly, adornments.reload]),
   },
   initialTabVolumeLevel: {
     type: "slider",
@@ -382,8 +385,8 @@ export const featInfo = {
     default: 100,
     unit: "%",
     textAdornment: () => getFeature("volumeSharedBetweenTabs")
-      ? combineAdornments([adornments.alert(t("feature_warning_setInitialTabVolume_volumeSharedBetweenTabs_incompatible").replace(/"/g, "'")), adornments.reload])
-      : adornments.reload(),
+      ? combineAdornments([adornments.ytmOnly, adornments.alert(t("feature_warning_setInitialTabVolume_volumeSharedBetweenTabs_incompatible").replace(/"/g, "'")), adornments.reload])
+      : combineAdornments([adornments.ytmOnly, adornments.reload]),
     reloadRequired: false,
     enable: noop,
   },
@@ -394,14 +397,14 @@ export const featInfo = {
     category: "songLists",
     supportedSites: ["ytm"],
     default: true,
-    textAdornment: adornments.reload,
+    textAdornment: () => combineAdornments([adornments.ytmOnly, adornments.reload]),
   },
   deleteFromQueueButton: {
     type: "toggle",
     category: "songLists",
     supportedSites: ["ytm"],
     default: true,
-    textAdornment: adornments.reload,
+    textAdornment: () => combineAdornments([adornments.ytmOnly, adornments.reload]),
   },
   listButtonsPlacement: {
     type: "select",
@@ -413,21 +416,21 @@ export const featInfo = {
     ],
     default: "everywhere",
     advanced: true,
-    textAdornment: () => combineAdornments([adornments.advanced, adornments.reload]),
+    textAdornment: () => combineAdornments([adornments.ytmOnly, adornments.advanced, adornments.reload]),
   },
   scrollToActiveSongBtn: {
     type: "toggle",
     category: "songLists",
     supportedSites: ["ytm"],
     default: true,
-    textAdornment: adornments.reload,
+    textAdornment: () => combineAdornments([adornments.ytmOnly, adornments.reload]),
   },
   clearQueueBtn: {
     type: "toggle",
     category: "songLists",
     supportedSites: ["ytm"],
     default: true,
-    textAdornment: adornments.reload,
+    textAdornment: () => combineAdornments([adornments.ytmOnly, adornments.reload]),
   },
   aboveQueueBtnsSticky: {
     type: "toggle",
@@ -435,7 +438,7 @@ export const featInfo = {
     supportedSites: ["ytm"],
     default: true,
     advanced: true,
-    textAdornment: () => combineAdornments([adornments.advanced, adornments.reload]),
+    textAdornment: () => combineAdornments([adornments.ytmOnly, adornments.advanced, adornments.reload]),
   },
 
   //#region cat:behavior
@@ -530,6 +533,7 @@ export const featInfo = {
     default: "videoChangeManual",
     reloadRequired: false,
     enable: noop,
+    textAdornment: adornments.ytmOnly,
   },
 
   //#region cat:input
@@ -540,6 +544,7 @@ export const featInfo = {
     default: true,
     reloadRequired: false,
     enable: noop,
+    textAdornment: adornments.ytmOnly,
   },
   arrowKeySkipBy: {
     type: "slider",
@@ -552,6 +557,7 @@ export const featInfo = {
     unit: "s",
     reloadRequired: false,
     enable: noop,
+    textAdornment: adornments.ytmOnly,
   },
   arrowKeyVolumeStep: {
     type: "slider",
@@ -564,29 +570,31 @@ export const featInfo = {
     unit: "%",
     reloadRequired: false,
     enable: noop,
+    textAdornment: adornments.ytmOnly,
   },
   frameSkip: {
     type: "toggle",
     category: "input",
-    supportedSites: ["ytm", "yt"],
+    supportedSites: ["ytm"],
     default: true,
     reloadRequired: false,
     enable: noop,
+    textAdornment: adornments.ytmOnly,
   },
   frameSkipWhilePlaying: {
     type: "toggle",
     category: "input",
-    supportedSites: ["ytm", "yt"],
+    supportedSites: ["ytm"],
     default: false,
     reloadRequired: false,
     enable: noop,
     advanced: true,
-    textAdornment: adornments.advanced,
+    textAdornment: () => combineAdornments([adornments.ytmOnly, adornments.advanced]),
   },
   frameSkipAmount: {
     type: "number",
     category: "input",
-    supportedSites: ["ytm", "yt"],
+    supportedSites: ["ytm"],
     min: 0,
     max: 1,
     step: 0.0001,
@@ -594,14 +602,14 @@ export const featInfo = {
     reloadRequired: false,
     enable: noop,
     advanced: true,
-    textAdornment: adornments.advanced,
+    textAdornment: () => combineAdornments([adornments.ytmOnly, adornments.advanced]),
   },
   anchorImprovements: {
     type: "toggle",
     category: "input",
     supportedSites: ["ytm"],
     default: true,
-    textAdornment: adornments.reload,
+    textAdornment: () => combineAdornments([adornments.ytmOnly, adornments.reload]),
   },
   numKeysSkipToTime: {
     type: "toggle",
@@ -610,6 +618,7 @@ export const featInfo = {
     default: true,
     reloadRequired: false,
     enable: noop,
+    textAdornment: adornments.ytmOnly,
   },
   autoLikeChannels: {
     type: "toggle",
@@ -730,7 +739,7 @@ export const featInfo = {
     category: "lyrics",
     supportedSites: ["ytm"],
     default: true,
-    textAdornment: adornments.reload,
+    textAdornment: () => combineAdornments([adornments.ytmOnly, adornments.reload]),
   },
   errorOnLyricsNotFound: {
     type: "toggle",
@@ -739,6 +748,7 @@ export const featInfo = {
     default: false,
     reloadRequired: false,
     enable: noop,
+    textAdornment: adornments.ytmOnly,
   },
   geniUrlBase: {
     type: "text",
@@ -747,7 +757,7 @@ export const featInfo = {
     default: "https://api.sv443.net/geniurl",
     normalize: (val: string) => val.trim().replace(/\/+$/, ""),
     advanced: true,
-    textAdornment: adornments.advanced,
+    textAdornment: () => combineAdornments([adornments.ytmOnly, adornments.advanced]),
     reloadRequired: false,
     enable: noop,
   },
@@ -759,7 +769,7 @@ export const featInfo = {
     default: "",
     normalize: (val: string) => val.trim(),
     advanced: true,
-    textAdornment: adornments.advanced,
+    textAdornment: () => combineAdornments([adornments.ytmOnly, adornments.advanced]),
     reloadRequired: false,
     enable: noop,
   },
@@ -774,7 +784,7 @@ export const featInfo = {
     unit: (val: number) => ` ${tp("unit_entries", val)}`,
     renderValue: renderNumberVal,
     advanced: true,
-    textAdornment: adornments.advanced,
+    textAdornment: () => combineAdornments([adornments.ytmOnly, adornments.advanced]),
     reloadRequired: false,
     enable: noop,
   },
@@ -788,7 +798,7 @@ export const featInfo = {
     step: 1,
     unit: (val: number) => " " + tp("unit_days", val),
     advanced: true,
-    textAdornment: adornments.advanced,
+    textAdornment: () => combineAdornments([adornments.ytmOnly, adornments.advanced]),
     reloadRequired: false,
     enable: noop,
   },
@@ -805,7 +815,7 @@ export const featInfo = {
       }
     },
     advanced: true,
-    textAdornment: adornments.advanced,
+    textAdornment: () => combineAdornments([adornments.ytmOnly, adornments.advanced]),
   },
   // advancedLyricsFilter: {
   //   type: "toggle",
@@ -834,14 +844,14 @@ export const featInfo = {
     supportedSites: ["ytm"],
     default: true,
     advanced: true,
-    textAdornment: () => combineAdornments([adornments.advanced, adornments.reload]),
+    textAdornment: () => combineAdornments([adornments.ytmOnly, adornments.advanced, adornments.reload]),
   },
   themeSongIntegration: {
     type: "toggle",
     category: "integrations",
     supportedSites: ["ytm"],
     default: false,
-    textAdornment: adornments.reload,
+    textAdornment: () => combineAdornments([adornments.ytmOnly, adornments.reload]),
   },
   themeSongLightness: {
     type: "select",
@@ -849,7 +859,7 @@ export const featInfo = {
     supportedSites: ["ytm"],
     options: options.colorLightness,
     default: "darker",
-    textAdornment: adornments.reload,
+    textAdornment: () => combineAdornments([adornments.ytmOnly, adornments.reload]),
   },
 
   //#region cat:plugins