Skip to content

Commit 5998f02

Browse files
authored
Merge pull request #7 from malisipi/windows-lnk-support
Support lnk format in Windows (related #1)
2 parents 0be3681 + 2a7deec commit 5998f02

File tree

3 files changed

+138
-3
lines changed

3 files changed

+138
-3
lines changed

css/index.css

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,3 +147,7 @@ img.icon {
147147
body:not([linux]) .linux-only {
148148
display: none;
149149
}
150+
151+
body:not([windows]) .windows-only {
152+
display: none;
153+
}

index.html

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,10 @@
3838
<button id="open-ssb" class="local-title local-uiOpenSSB">
3939
<img class="icon" src="./assets/icons/open_in_new_FILL0_wght400_GRAD0_opsz24.svg" />
4040
</button>
41-
<button id="add-desktop-entry" class="linux-only local-title local-uiCreateDesktopFile">
41+
<button id="add-desktop-entry-linux" class="linux-only local-title local-uiCreateDesktopFile">
42+
<img class="icon" src="./assets/icons/browser_updated_FILL0_wght400_GRAD0_opsz24.svg" />
43+
</button>
44+
<button id="add-desktop-entry-windows" class="windows-only local-title local-uiCreateDesktopFile">
4245
<img class="icon" src="./assets/icons/browser_updated_FILL0_wght400_GRAD0_opsz24.svg" />
4346
</button>
4447
<a href="./guide.html" target="_blank">

js/index.js

Lines changed: 130 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
// Operating System Check for OS specific features
22
if(navigator.userAgent.toLowerCase().includes("linux")){
33
document.body.setAttribute("linux", true);
4+
} else if(navigator.userAgent.toLowerCase().includes("win")) {
5+
document.body.setAttribute("windows", true);
46
};
57

68
// Components
@@ -28,7 +30,8 @@ var components = {
2830
copy_url: document.querySelector("#controls #copy-url"),
2931
new_bookmark: document.querySelector("#controls #new-bookmark"),
3032
open_ssb: document.querySelector("#controls #open-ssb"),
31-
add_desktop_entry: document.querySelector("#controls #add-desktop-entry")
33+
add_desktop_entry_windows: document.querySelector("#controls #add-desktop-entry-windows"),
34+
add_desktop_entry_linux: document.querySelector("#controls #add-desktop-entry-linux")
3235
}
3336
};
3437

@@ -163,7 +166,132 @@ components.controls.open_ssb.addEventListener("click", async function() {
163166
}
164167
});
165168

166-
components.controls.add_desktop_entry.addEventListener("click", async function() {
169+
components.controls.add_desktop_entry_windows.addEventListener("click", async function() {
170+
if(components.input.url.value == "") return show_warning("warningEmptyURL");
171+
if(components.input.name.value == "") return show_warning("warningEmptyName");
172+
173+
let name = sanitize_input(components.input.name.value);
174+
let ssb_url = create_ssb_url();
175+
let previous_application = localStorage.previous_firefox_application ?? "firefox";
176+
let application = await modern_prompt(browser.i18n.getMessage("browserCommandName"), previous_application, "");
177+
if(application === false) return;
178+
application = sanitize_input(application);
179+
localStorage.previous_firefox_application = application;
180+
let profile = await modern_prompt(browser.i18n.getMessage("profile"), "", browser.i18n.getMessage("useDefaultProfile"));
181+
if(profile === false) return;
182+
profile = sanitize_input(profile, true);
183+
if(profile != "") profile = "-P " + profile;
184+
185+
// Windows LNKs (shortcuts) is too complex files to encode/decode easily
186+
// So i created a shortcut template to create SSB links
187+
let lnk_start_of_file = [0x4C, 0x00, 0x00, 0x00, 0x01, 0x14, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00,
188+
0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0xEF, 0x40, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x0F, 0x63, 0xBA, 0xFF,
189+
0x6B, 0xD5, 0xD6, 0x01, 0xD7, 0xD7, 0x96, 0x76, 0xD6, 0x95, 0xDA, 0x01, 0x0F, 0x63, 0xBA, 0xFF, 0x6B, 0xD5,
190+
0xD6, 0x01, 0x00, 0x40, 0x04, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
191+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x35, 0x01, 0x14, 0x00, 0x1F, 0x50, 0xE0, 0x4F, 0xD0, 0x20,
192+
0xEA, 0x3A, 0x69, 0x10, 0xA2, 0xD8, 0x08, 0x00, 0x2B, 0x30, 0x30, 0x9D, 0x19, 0x00, 0x2F, 0x43, 0x3A, 0x5C,
193+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
194+
0x00, 0x56, 0x00, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x97, 0x58, 0x51, 0xBA, 0x10, 0x00, 0x57, 0x69, 0x6E,
195+
0x64, 0x6F, 0x77, 0x73, 0x00, 0x40, 0x00, 0x09, 0x00, 0x04, 0x00, 0xEF, 0xBE, 0x2F, 0x4D, 0x2E, 0x31, 0x97,
196+
0x58, 0x51, 0xBA, 0x2E, 0x00, 0x00, 0x00, 0x25, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
197+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x94, 0x38, 0x93, 0x00, 0x57, 0x00, 0x69,
198+
0x00, 0x6E, 0x00, 0x64, 0x00, 0x6F, 0x00, 0x77, 0x00, 0x73, 0x00, 0x00, 0x00, 0x16, 0x00, 0x5A, 0x00, 0x31,
199+
0x00, 0x00, 0x00, 0x00, 0x00, 0x97, 0x58, 0xF2, 0xBA, 0x10, 0x00, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6D, 0x33,
200+
0x32, 0x00, 0x00, 0x42, 0x00, 0x09, 0x00, 0x04, 0x00, 0xEF, 0xBE, 0x2F, 0x4D, 0x2E, 0x31, 0x97, 0x58, 0xF2,
201+
0xBA, 0x2E, 0x00, 0x00, 0x00, 0x20, 0x05, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
202+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9A, 0x10, 0xC5, 0x00, 0x53, 0x00, 0x79, 0x00, 0x73,
203+
0x00, 0x74, 0x00, 0x65, 0x00, 0x6D, 0x00, 0x33, 0x00, 0x32, 0x00, 0x00, 0x00, 0x18, 0x00, 0x56, 0x00, 0x32,
204+
0x00, 0x00, 0x40, 0x04, 0x00, 0x92, 0x51, 0xEF, 0x93, 0x20, 0x00, 0x63, 0x6D, 0x64, 0x2E, 0x65, 0x78, 0x65,
205+
0x00, 0x40, 0x00, 0x09, 0x00, 0x04, 0x00, 0xEF, 0xBE, 0x92, 0x51, 0xEF, 0x93, 0x97, 0x58, 0x4D, 0xB5, 0x2E,
206+
0x00, 0x00, 0x00, 0x82, 0x28, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
207+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF1, 0x09, 0x09, 0x01, 0x63, 0x00, 0x6D, 0x00, 0x64, 0x00, 0x2E,
208+
0x00, 0x65, 0x00, 0x78, 0x00, 0x65, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x4A, 0x00, 0x00, 0x00, 0x1C,
209+
0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x2D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
210+
0x00, 0x49, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xEF, 0x24, 0x50, 0x74, 0x10,
211+
0x00, 0x00, 0x00, 0x00, 0x43, 0x3A, 0x5C, 0x57, 0x69, 0x6E, 0x64, 0x6F, 0x77, 0x73, 0x5C, 0x53, 0x79, 0x73,
212+
0x74, 0x65, 0x6D, 0x33, 0x32, 0x5C, 0x63, 0x6D, 0x64, 0x2E, 0x65, 0x78, 0x65, 0x00, 0x00, 0x10, 0x00, 0x46,
213+
0x00, 0x69, 0x00, 0x72, 0x00, 0x65, 0x00, 0x53, 0x00, 0x53, 0x00, 0x42, 0x00, 0x20, 0x00, 0x53, 0x00, 0x68,
214+
0x00, 0x6F, 0x00, 0x72, 0x00, 0x74, 0x00, 0x63, 0x00, 0x75, 0x00, 0x74, 0x00, 0x21, 0x00, 0x2E, 0x00, 0x2E,
215+
0x00, 0x5C, 0x00, 0x2E, 0x00, 0x2E, 0x00, 0x5C, 0x00, 0x2E, 0x00, 0x2E, 0x00, 0x5C, 0x00, 0x57, 0x00, 0x69,
216+
0x00, 0x6E, 0x00, 0x64, 0x00, 0x6F, 0x00, 0x77, 0x00, 0x73, 0x00, 0x5C, 0x00, 0x53, 0x00, 0x79, 0x00, 0x73,
217+
0x00, 0x74, 0x00, 0x65, 0x00, 0x6D, 0x00, 0x33, 0x00, 0x32, 0x00, 0x5C, 0x00, 0x63, 0x00, 0x6D, 0x00, 0x64,
218+
0x00, 0x2E, 0x00, 0x65, 0x00, 0x78, 0x00, 0x65, 0x00, 0x73, 0x02, 0x2F, 0x00, 0x63, 0x00, 0x20, 0x00, 0x73,
219+
0x00, 0x74, 0x00, 0x61, 0x00, 0x72, 0x00, 0x74, 0x00, 0x20, 0x00];
220+
let lnk_end_of_file = [0x17, 0x00, 0x43, 0x00, 0x3A, 0x00, 0x5C, 0x00, 0x57, 0x00, 0x69, 0x00, 0x6E, 0x00,
221+
0x64, 0x00, 0x6F, 0x00, 0x77, 0x00, 0x73, 0x00, 0x5C, 0x00, 0x65, 0x00, 0x78, 0x00, 0x70, 0x00, 0x6C, 0x00,
222+
0x6F, 0x00, 0x72, 0x00, 0x65, 0x00, 0x72, 0x00, 0x2E, 0x00, 0x65, 0x00, 0x78, 0x00, 0x65, 0x00, 0x14, 0x03,
223+
0x00, 0x00, 0x07, 0x00, 0x00, 0xA0, 0x25, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6D, 0x52, 0x6F, 0x6F, 0x74, 0x25,
224+
0x5C, 0x65, 0x78, 0x70, 0x6C, 0x6F, 0x72, 0x65, 0x72, 0x2E, 0x65, 0x78, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00,
225+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
226+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
227+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
228+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
229+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
230+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
231+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
232+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
233+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
234+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
235+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
236+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
237+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x25, 0x00, 0x53, 0x00,
238+
0x79, 0x00, 0x73, 0x00, 0x74, 0x00, 0x65, 0x00, 0x6D, 0x00, 0x52, 0x00, 0x6F, 0x00, 0x6F, 0x00, 0x74, 0x00,
239+
0x25, 0x00, 0x5C, 0x00, 0x65, 0x00, 0x78, 0x00, 0x70, 0x00, 0x6C, 0x00, 0x6F, 0x00, 0x72, 0x00, 0x65, 0x00,
240+
0x72, 0x00, 0x2E, 0x00, 0x65, 0x00, 0x78, 0x00, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
241+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
242+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
243+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
244+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
245+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
246+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
247+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
248+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
249+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
250+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
251+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
252+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
253+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
254+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
255+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
256+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
257+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
258+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
259+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
260+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
261+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
262+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
263+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
264+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
265+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
266+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x05, 0x00,
267+
0x00, 0xA0, 0x25, 0x00, 0x00, 0x00, 0xDD, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0xA0,
268+
0x77, 0x4E, 0xC1, 0x1A, 0xE7, 0x02, 0x5D, 0x4E, 0xB7, 0x44, 0x2E, 0xB1, 0xAE, 0x51, 0x98, 0xB7, 0xDD, 0x00,
269+
0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xA0, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
270+
0x64, 0x65, 0x73, 0x6B, 0x74, 0x6F, 0x70, 0x2D, 0x73, 0x32, 0x67, 0x76, 0x61, 0x68, 0x71, 0x00, 0x00, 0x00,
271+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0xA4, 0xA1, 0xCF,
272+
0xC0, 0x01, 0xEF, 0x11, 0x96, 0x12, 0x52, 0x54, 0x00, 0x73, 0x03, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
273+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0xA4, 0xA1, 0xCF, 0xC0, 0x01, 0xEF, 0x11,
274+
0x96, 0x12, 0x52, 0x54, 0x00, 0x73, 0x03, 0x46, 0x00, 0x00, 0x00, 0x00];
275+
276+
// Actually 1236 however, file format requires "\x00" after every char
277+
// Also it can be changed however LNK table should be re-edited
278+
let allowed_app_command_len = 618;
279+
280+
let app_command = `${application} ${profile} -new-window "${ssb_url}"`;
281+
if(app_command.length>=allowed_app_command_len) return show_warning("exceedCommandSize");
282+
283+
let lnk_mid_of_file = (app_command.padEnd(allowed_app_command_len, "\x00").split("").join("\x00")+"\x00").split("").map(x=>x.charCodeAt(0));
284+
285+
var lnk_content_blob = new Blob([new Uint8Array([...lnk_start_of_file, ...lnk_mid_of_file, ...lnk_end_of_file])], {
286+
type: "application/octet-stream"
287+
});
288+
289+
let lnk_download_uri = URL.createObjectURL(lnk_content_blob);
290+
download_file(lnk_download_uri, name + ".lnk");
291+
URL.revokeObjectURL(lnk_download_uri);
292+
});
293+
294+
components.controls.add_desktop_entry_linux.addEventListener("click", async function() {
167295
if(components.input.url.value == "") return show_warning("warningEmptyURL");
168296
if(components.input.name.value == "") return show_warning("warningEmptyName");
169297

0 commit comments

Comments
 (0)