Skip to content

Commit

Permalink
sound150 v9.2.0: Add custom commands (#6848)
Browse files Browse the repository at this point in the history
  • Loading branch information
claudiux authored Feb 3, 2025
1 parent fd7d5b6 commit 8709f0a
Show file tree
Hide file tree
Showing 15 changed files with 755 additions and 433 deletions.
12 changes: 12 additions & 0 deletions sound150@claudiux/files/sound150@claudiux/6.4/applet.js
Original file line number Diff line number Diff line change
Expand Up @@ -1978,6 +1978,9 @@ class Sound150Applet extends Applet.TextIconApplet {
VOLUME_ADJUSTMENT_STEP = this.settings.getValue("stepVolume") / 100;
//~ log("VOLUME_ADJUSTMENT_STEP = " + VOLUME_ADJUSTMENT_STEP);

// Custom commands:
this.settings.bind("custom-commands-list", "custom_commands");

// Whether sound@cinnamon.org is loaded:
let enabledApplets = global.settings.get_strv(ENABLED_APPLETS_KEY);
var _soundATcinnamonDOTorg_is_loaded = false;
Expand Down Expand Up @@ -2120,6 +2123,15 @@ class Sound150Applet extends Applet.TextIconApplet {
this._applet_context_menu.addMenuItem(this.context_menu_item_pulseEffects);
}

// Custom commands:
if (this.custom_commands.length > 0) {
let commands_menu_item = new PopupMenu.PopupSubMenuMenuItem(_("Commands"));
for (let c of this.custom_commands) {
commands_menu_item.menu.addAction(c["title"], () => { Util.spawnCommandLineAsync(`${c["command"]}`) });
}
this._applet_context_menu.addMenuItem(commands_menu_item);
}

// button Reload this applet
this._applet_context_menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
let _reload_button = new PopupMenu.PopupIconMenuItem(_("Reload this applet"), "restart", St.IconType.SYMBOLIC);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,8 @@
"type": "page",
"title": "Shortcuts",
"sections": [
"sectionShortcuts1"
"sectionShortcuts1",
"sectionCommands"
]
},
"sectionBehavior1": {
Expand Down Expand Up @@ -166,6 +167,15 @@
"audio-next",
"audio-prev"
]
},
"sectionCommands": {
"type": "section",
"title": "Custom commands",
"keys": [
"custom-commands-label",
"custom-commands-list",
"button-reload-applet"
]
}
},
"playerControl": {
Expand Down Expand Up @@ -523,6 +533,36 @@
"default": "::",
"description": "Previous Track"
},
"custom-commands-label": {
"type": "label",
"description": "These commands will appear in the context menu once you've reloaded this applet."
},
"custom-commands-list": {
"type": "list",
"description": "Commands",
"default": [],
"columns": [
{
"id": "title",
"title": "Title",
"type": "string",
"default": "",
"expand-width": false
},
{
"id": "command",
"title": "Command",
"type": "string",
"default": "",
"expand-width": true
}
]
},
"button-reload-applet": {
"type": "button",
"description": "Reload this applet",
"callback": "_on_reload_this_applet_pressed"
},
"volume": {
"type": "generic",
"default": "50%"
Expand Down
4 changes: 4 additions & 0 deletions sound150@claudiux/files/sound150@claudiux/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
### v9.2.0~20250203
* Add custom commands (see Shortcuts tab in settings).
* Fixes #6847.

### v9.1.0~20250203
* Functional improvement.
* When the volume step differs from 5, multimedia key shortcuts are automatically redefined.
Expand Down
2 changes: 1 addition & 1 deletion sound150@claudiux/files/sound150@claudiux/metadata.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"max-instances": "1",
"description": "Enhanced sound applet",
"hide-configuration": false,
"version": "9.1.0",
"version": "9.2.0",
"cinnamon-version": [
"2.8",
"3.0",
Expand Down
102 changes: 63 additions & 39 deletions sound150@claudiux/files/sound150@claudiux/po/ca.po
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: sound150@claudiux 6.16.0\n"
"Report-Msgid-Bugs-To: https://github.com/linuxmint/cinnamon-spices-applets/"
"issues\n"
"POT-Creation-Date: 2025-02-01 14:52+0100\n"
"POT-Creation-Date: 2025-02-03 20:04+0100\n"
"PO-Revision-Date: 2024-10-28 03:00+0100\n"
"Last-Translator: Odyssey <odysseyhyd@gmail.com>\n"
"Language-Team: \n"
Expand All @@ -35,14 +35,14 @@ msgstr "Aturat"

#. 6.2/applet.js:238 6.2/applet.js:2042 4.4/applet.js:1034 5.4/applet.js:224
#. 5.4/applet.js:1964 4.6/applet.js:1050 2.8/applet.js:1277 6.4/applet.js:298
#. 6.4/applet.js:2086 3.4/applet.js:1199
#. 6.4/applet.js:2099 3.4/applet.js:1199
msgid "Microphone"
msgstr "Micròfon"

#. 6.2/applet.js:254 6.2/applet.js:2954 6.2/applet.js:3122 4.4/applet.js:1403
#. 4.4/applet.js:1497 5.4/applet.js:241 5.4/applet.js:2742 5.4/applet.js:2902
#. 4.6/applet.js:137 4.6/applet.js:1428 4.6/applet.js:1523 2.8/applet.js:1650
#. 2.8/applet.js:1735 6.4/applet.js:314 6.4/applet.js:3012 6.4/applet.js:3180
#. 2.8/applet.js:1735 6.4/applet.js:314 6.4/applet.js:3045 6.4/applet.js:3213
#. 3.4/applet.js:1577 3.4/applet.js:1662
msgid "Volume"
msgstr "Volum"
Expand All @@ -61,15 +61,15 @@ msgstr ""
#. 5.4/applet.js:1401 5.4/applet.js:1404 5.4/applet.js:1407 5.4/applet.js:1441
#. 5.4/applet.js:1450 5.4/applet.js:2715 5.4/applet.js:2749 4.6/applet.js:600
#. 4.6/applet.js:727 4.6/applet.js:731 2.8/applet.js:529 2.8/applet.js:761
#. 2.8/applet.js:765 6.4/applet.js:1192 6.4/applet.js:1489 6.4/applet.js:1492
#. 6.4/applet.js:1495 6.4/applet.js:1529 6.4/applet.js:1538 6.4/applet.js:2985
#. 6.4/applet.js:3019 3.4/applet.js:534 3.4/applet.js:766 3.4/applet.js:770
#. 2.8/applet.js:765 6.4/applet.js:1193 6.4/applet.js:1490 6.4/applet.js:1493
#. 6.4/applet.js:1496 6.4/applet.js:1530 6.4/applet.js:1539 6.4/applet.js:3018
#. 6.4/applet.js:3052 3.4/applet.js:534 3.4/applet.js:766 3.4/applet.js:770
msgid "Unknown Artist"
msgstr "Artista desconegut"

#. 6.2/applet.js:1147 6.2/applet.js:1456 4.4/applet.js:592 4.4/applet.js:734
#. 5.4/applet.js:1119 5.4/applet.js:1414 4.6/applet.js:601 4.6/applet.js:738
#. 2.8/applet.js:530 2.8/applet.js:772 6.4/applet.js:1193 6.4/applet.js:1502
#. 2.8/applet.js:530 2.8/applet.js:772 6.4/applet.js:1194 6.4/applet.js:1503
#. 3.4/applet.js:535 3.4/applet.js:777
msgid "Unknown Album"
msgstr "Àlbum desconegut"
Expand All @@ -78,22 +78,22 @@ msgstr "Àlbum desconegut"
#. 6.2/applet.js:1497 6.2/applet.js:2964 4.4/applet.js:593 4.4/applet.js:739
#. 5.4/applet.js:1120 5.4/applet.js:1435 5.4/applet.js:1444 5.4/applet.js:1447
#. 5.4/applet.js:1455 5.4/applet.js:2752 4.6/applet.js:602 4.6/applet.js:743
#. 2.8/applet.js:531 2.8/applet.js:777 6.4/applet.js:1194 6.4/applet.js:1523
#. 6.4/applet.js:1532 6.4/applet.js:1535 6.4/applet.js:1543 6.4/applet.js:3022
#. 2.8/applet.js:531 2.8/applet.js:777 6.4/applet.js:1195 6.4/applet.js:1524
#. 6.4/applet.js:1533 6.4/applet.js:1536 6.4/applet.js:1544 6.4/applet.js:3055
#. 3.4/applet.js:536 3.4/applet.js:782
msgid "Unknown Title"
msgstr "Títol desconegut"

#. 6.2/applet.js:1215 4.4/applet.js:615 5.4/applet.js:1174 4.6/applet.js:624
#. 2.8/applet.js:552 6.4/applet.js:1261 3.4/applet.js:557
#. 2.8/applet.js:552 6.4/applet.js:1262 3.4/applet.js:557
msgid "Previous"
msgstr "Anterior"

#. 6.2/applet.js:1231 6.2/applet.js:1605 6.2/applet.js:1611 4.4/applet.js:618
#. 4.4/applet.js:794 4.4/applet.js:800 5.4/applet.js:1190 5.4/applet.js:1562
#. 5.4/applet.js:1568 4.6/applet.js:627 4.6/applet.js:798 4.6/applet.js:804
#. 2.8/applet.js:555 2.8/applet.js:837 2.8/applet.js:843 6.4/applet.js:1277
#. 6.4/applet.js:1650 6.4/applet.js:1656 3.4/applet.js:560 3.4/applet.js:842
#. 2.8/applet.js:555 2.8/applet.js:837 2.8/applet.js:843 6.4/applet.js:1278
#. 6.4/applet.js:1651 6.4/applet.js:1657 3.4/applet.js:560 3.4/applet.js:842
#. 3.4/applet.js:848
msgid "Play"
msgstr "Reprodueix"
Expand All @@ -102,112 +102,112 @@ msgstr "Reprodueix"
#. 5.4->settings-schema.json->audio-stop->description
#. 6.4->settings-schema.json->audio-stop->description
#. 6.2/applet.js:1235 4.4/applet.js:621 5.4/applet.js:1194 4.6/applet.js:630
#. 2.8/applet.js:558 6.4/applet.js:1281 3.4/applet.js:563
#. 2.8/applet.js:558 6.4/applet.js:1282 3.4/applet.js:563
msgid "Stop"
msgstr "Atura"

#. 6.2/applet.js:1246 4.4/applet.js:624 5.4/applet.js:1205 4.6/applet.js:633
#. 2.8/applet.js:561 6.4/applet.js:1292 3.4/applet.js:566
#. 2.8/applet.js:561 6.4/applet.js:1293 3.4/applet.js:566
msgid "Next"
msgstr "Següent"

#. 6.2/applet.js:1269 6.2/applet.js:1637 4.4/applet.js:634 4.4/applet.js:824
#. 5.4/applet.js:1228 5.4/applet.js:1594 4.6/applet.js:643 4.6/applet.js:830
#. 2.8/applet.js:572 2.8/applet.js:867 6.4/applet.js:1315 6.4/applet.js:1682
#. 2.8/applet.js:572 2.8/applet.js:867 6.4/applet.js:1316 6.4/applet.js:1683
#. 3.4/applet.js:577 3.4/applet.js:872
msgid "Consecutive Playing"
msgstr "Reproducció consecutiva"

#. 6.2/applet.js:1272 6.2/applet.js:1653 4.4/applet.js:641 4.4/applet.js:838
#. 5.4/applet.js:1231 5.4/applet.js:1610 4.6/applet.js:646 4.6/applet.js:846
#. 2.8/applet.js:579 2.8/applet.js:881 6.4/applet.js:1318 6.4/applet.js:1698
#. 2.8/applet.js:579 2.8/applet.js:881 6.4/applet.js:1319 6.4/applet.js:1699
#. 3.4/applet.js:584 3.4/applet.js:886
msgid "No Shuffle"
msgstr "Sense reproducció aleatòria"

#. 6.2/applet.js:1335 4.4/applet.js:557 5.4/applet.js:1294 4.6/applet.js:566
#. 2.8/applet.js:495 6.4/applet.js:1381 3.4/applet.js:500
#. 2.8/applet.js:495 6.4/applet.js:1382 3.4/applet.js:500
msgid "Open Player"
msgstr "Obrir reproductor"

#. 6.2/applet.js:1349 4.4/applet.js:570 5.4/applet.js:1308 4.6/applet.js:579
#. 2.8/applet.js:508 6.4/applet.js:1395 3.4/applet.js:513
#. 2.8/applet.js:508 6.4/applet.js:1396 3.4/applet.js:513
msgid "Quit Player"
msgstr "Tancar el reproductor"

#. 6.2/applet.js:1599 4.4/applet.js:788 5.4/applet.js:1556 4.6/applet.js:792
#. 2.8/applet.js:831 6.4/applet.js:1644 3.4/applet.js:836
#. 2.8/applet.js:831 6.4/applet.js:1645 3.4/applet.js:836
msgid "Pause"
msgstr "Pausar"

#. 6.2/applet.js:1639 4.4/applet.js:826 5.4/applet.js:1596 4.6/applet.js:832
#. 2.8/applet.js:869 6.4/applet.js:1684 3.4/applet.js:874
#. 2.8/applet.js:869 6.4/applet.js:1685 3.4/applet.js:874
msgid "Repeat Single"
msgstr "Repetir individual"

#. 6.2/applet.js:1641 4.4/applet.js:828 5.4/applet.js:1598 4.6/applet.js:834
#. 2.8/applet.js:871 6.4/applet.js:1686 3.4/applet.js:876
#. 2.8/applet.js:871 6.4/applet.js:1687 3.4/applet.js:876
msgid "Repeat All"
msgstr "Repetir tot"

#. 6.2/applet.js:1653 4.4/applet.js:838 5.4/applet.js:1610 4.6/applet.js:846
#. 2.8/applet.js:881 6.4/applet.js:1698 3.4/applet.js:886
#. 2.8/applet.js:881 6.4/applet.js:1699 3.4/applet.js:886
msgid "Shuffle"
msgstr "Reproducció aleatòria"

#. 6.2/applet.js:2023 4.4/applet.js:1019 5.4/applet.js:1945 4.6/applet.js:1035
#. 2.8/applet.js:1262 6.4/applet.js:1990 3.4/applet.js:1184
#. 2.8/applet.js:1262 6.4/applet.js:2003 3.4/applet.js:1184
msgid "Mute output"
msgstr "Silenciar la sortida"

#. 6.2/applet.js:2024 4.4/applet.js:1020 5.4/applet.js:1946 4.6/applet.js:1036
#. 2.8/applet.js:1263 6.4/applet.js:1991 3.4/applet.js:1185
#. 2.8/applet.js:1263 6.4/applet.js:2004 3.4/applet.js:1185
msgid "Mute input"
msgstr "Silenciar l'entrada"

#. 6.2/applet.js:2034 4.4/applet.js:1026 5.4/applet.js:1956 4.6/applet.js:1042
#. 2.8/applet.js:1269 6.4/applet.js:2078 3.4/applet.js:1191
#. 2.8/applet.js:1269 6.4/applet.js:2091 3.4/applet.js:1191
msgid "Applications"
msgstr "Aplicacions"

#. 6.2/applet.js:2035 4.4/applet.js:1027 5.4/applet.js:1957 4.6/applet.js:1043
#. 2.8/applet.js:1270 6.4/applet.js:2079 3.4/applet.js:1192
#. 2.8/applet.js:1270 6.4/applet.js:2092 3.4/applet.js:1192
msgid "Output device"
msgstr "Dispositiu de sortida"

#. 6.2/applet.js:2044 4.4/applet.js:1036 5.4/applet.js:1966 4.6/applet.js:1052
#. 2.8/applet.js:1280 6.4/applet.js:2088 3.4/applet.js:1202
#. 2.8/applet.js:1280 6.4/applet.js:2101 3.4/applet.js:1202
msgid "Input device"
msgstr "Dispositiu d'entrada"

#. 6.2/applet.js:2057 5.4/applet.js:1979 6.4/applet.js:2101
#. 6.2/applet.js:2057 5.4/applet.js:1979 6.4/applet.js:2114
msgid "Easy Effects"
msgstr "Easy Effects"

#. 6.2/applet.js:2064 5.4/applet.js:1986 6.4/applet.js:2108
#. 6.2/applet.js:2064 5.4/applet.js:1986 6.4/applet.js:2121
msgid "Pulse Effects"
msgstr "Pulse Effects"

#. 6.2/applet.js:2116 5.4/applet.js:2030 6.4/applet.js:2153
#. 6.2/applet.js:2116 5.4/applet.js:2030 6.4/applet.js:2175
#, javascript-format
msgid "Are you sure you want to remove '%s'?"
msgstr "Segur que voleu eliminar '%s'?"

#. 6.2/applet.js:2970 5.4/applet.js:2758 6.4/applet.js:3028
#. 6.2/applet.js:2970 5.4/applet.js:2758 6.4/applet.js:3061
msgid "The 'playerctl' package is required!"
msgstr "Es necessita el paquet 'playerctl'!"

#. 6.2/applet.js:2971 5.4/applet.js:2759 6.4/applet.js:3029
#. 6.2/applet.js:2971 5.4/applet.js:2759 6.4/applet.js:3062
msgid "Please select 'Install playerctl' in this menu"
msgstr "Si us plau, seleccioneu 'Instal·la playerctl' en aquest menú"

#. 6.2/applet.js:3110 4.4/applet.js:1397 5.4/applet.js:2890 4.6/applet.js:1417
#. 2.8/applet.js:1644 6.4/applet.js:3168 3.4/applet.js:1571
#. 2.8/applet.js:1644 6.4/applet.js:3201 3.4/applet.js:1571
msgid "Launch player"
msgstr "Iniciar reproductor"

#. 6.2/applet.js:3115 4.4/applet.js:1392 5.4/applet.js:2895 4.6/applet.js:1422
#. 2.8/applet.js:1639 6.4/applet.js:3173 3.4/applet.js:1566
#. 2.8/applet.js:1639 6.4/applet.js:3206 3.4/applet.js:1566
msgid "Choose player controls"
msgstr "Escollir els controls del reproductor"

Expand All @@ -218,27 +218,33 @@ msgstr "Escollir els controls del reproductor"
#. 6.4->settings-schema.json->sectionSound1->title
#. 3.4->settings-schema.json->section3->description
#. 6.2/applet.js:3130 4.4/applet.js:1409 5.4/applet.js:2910 4.6/applet.js:1434
#. 2.8/applet.js:1657 6.4/applet.js:3188 3.4/applet.js:1584
#. 2.8/applet.js:1657 6.4/applet.js:3221 3.4/applet.js:1584
msgid "Sound Settings"
msgstr "Opcions de so"

#. 6.2/applet.js:3135 5.4/applet.js:2915 6.4/applet.js:2115
#. 6.4->settings-schema.json->button-reload-applet->description
#. 6.2/applet.js:3135 5.4/applet.js:2915 6.4/applet.js:2137
msgid "Reload this applet"
msgstr "Refresca aquesta miniaplicació"

#. 6.2/applet.js:3141 5.4/applet.js:2921 6.4/applet.js:3194
#. 6.2/applet.js:3141 5.4/applet.js:2921 6.4/applet.js:3227
msgid "Remove sound applet"
msgstr "Elimina la miniaplicació"

#. 6.2/applet.js:3150 5.4/applet.js:2930 6.4/applet.js:3203
#. 6.2/applet.js:3150 5.4/applet.js:2930 6.4/applet.js:3236
msgid "Install playerctl"
msgstr "Instal·la playerctl"

#. 6.4/applet.js:210 6.4/applet.js:1884 6.4/applet.js:1886
#. 6.4/applet.js:210 6.4/applet.js:1886 6.4/applet.js:1888
#, fuzzy
msgid "%"
msgstr "9%"

#. 6.4->settings-schema.json->custom-commands-list->description
#. 6.4/applet.js:2128
msgid "Commands"
msgstr ""

#. metadata.json->name
msgid "Enhanced Sound applet"
msgstr "Miniaplicació de so millorat"
Expand Down Expand Up @@ -991,6 +997,10 @@ msgstr "Color de la icona: 0%-100%"
msgid "Scrolling"
msgstr ""

#. 6.4->settings-schema.json->sectionCommands->title
msgid "Custom commands"
msgstr ""

#. 6.4->settings-schema.json->showMediaOptical->description
msgid "Show Media-Optical icon"
msgstr ""
Expand Down Expand Up @@ -1022,6 +1032,20 @@ msgstr "Mostrar el nivell de volum a l'OSD a l'inici"
msgid "Show bar level in OSD"
msgstr "Mostrar el nivell de volum a l'OSD a l'inici"

#. 6.4->settings-schema.json->custom-commands-label->description
msgid ""
"These commands will appear in the context menu once you've reloaded this "
"applet."
msgstr ""

#. 6.4->settings-schema.json->custom-commands-list->columns->title
msgid "Title"
msgstr ""

#. 6.4->settings-schema.json->custom-commands-list->columns->title
msgid "Command"
msgstr ""

#. 3.4->settings-schema.json->alwaysShowInput->description
msgid "Always show input controls"
msgstr "Mostrar sempre els controls d'entrada"
Expand Down
Loading

0 comments on commit 8709f0a

Please sign in to comment.