Антиподписной код у меня этот:
https://forum.mozilla-russia.org/viewto … 59#p800159
Вроде бы не менялся, хотя, может, я что-то и пропустил...
Попробуйте этот: https://forum.mozilla-russia.org/viewto … 53#p808453
«The Truth Is Out There»
Отсутствует
Добавил поддержку Гром-птицы, но без панелей и кнопок
Скрипты в Thunderbird всё же редко необходимы…
Вот бы UCF ещё в Palemoon добавить!, его свежие сборки ещё актуальны, т.к. Firefox слишком тормозной.
Отсутствует
Вот бы UCF ещё в Palemoon добавить!
В текущую сборку UCF добавить поддержку Palemoon нереально, там код древний. Разве что как отдельную сборку, но абсолютно весь код UCF переписывать на древний такое себе... Да и зачем там же xul расширения можно установить или свои написать.
Отсутствует
Добавил поддержку Гром-птицы, но без панелей и кнопок
А какая минимальная поддерживаемая версия Гром-птицы? На 78 или 91 будет работать?
Отредактировано unter_officer (09-05-2024 13:55:09)
«The Truth Is Out There»
Отсутствует
-
Отредактировано Vitaliy V. (08-08-2024 14:56:20)
Отсутствует
dom.event.clipboardevents.enabled = false
Не подходит, ломает работу расширений. Например этого Link Text and Location Copier
Так что вопрос со скриптом остается открытым.
Отсутствует
Не подходит, ломает работу расширений. Например этого Link Text and Location Copier
Но мне подходит, с какого какие то веб сайты будут перезаписывать мне буфер обмена, нет уж у меня всегда отключена данная настройка.
А если понадобится подобное копирование как в расширении то можно и скрипт написать вместо расширения.
Отсутствует
ломает работу расширений
Тут ещё вопрос ломает ли, в этом расширении Link Text and Location Copier изменил в linktextlocationcopier.js
/* const code = 'copyToClipboard(' + JSON.stringify(outputtext) + ',' + clickedItem.outputAsHTML +');'; browser.tabs.executeScript({ code: 'typeof copyToClipboard === "function";', }).then((results) => { if (!results || results[0] !== true) { return browser.tabs.executeScript(tab.id, { file: 'clipboard-helper.js' }); } }).then(() => { return browser.tabs.executeScript(tab.id, { code }); }).catch((error) => { console.error('Failed to copy text: ' + error); }); */ const type = clickedItem.outputAsHTML ? "text/html" : "text/plain"; const blob = new Blob([outputtext], { type }); const data = [new ClipboardItem({ [type]: blob })]; navigator.clipboard.write(data);
egorsemenov06
(async ( id = "context-copylink", image = "data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'><g style='fill:context-fill rgb(0, 142, 152);fill-opacity:context-fill-opacity'><path d='M4.715 6.542 3.343 7.914a3 3 0 1 0 4.243 4.243l1.828-1.829A3 3 0 0 0 8.586 5.5L8 6.086a1.002 1.002 0 0 0-.154.199 2 2 0 0 1 .861 3.337L6.88 11.45a2 2 0 1 1-2.83-2.83l.793-.792a4.018 4.018 0 0 1-.128-1.287z'/><path d='M6.586 4.672A3 3 0 0 0 7.414 9.5l.775-.776a2 2 0 0 1-.896-3.346L9.12 3.55a2 2 0 1 1 2.83 2.83l-.793.792c.112.42.155.855.128 1.287l1.372-1.372a3 3 0 1 0-4.243-4.243L6.586 4.672z'/></g></svg>", substitution = `ucf-${id.toLowerCase()}-img`, PHandler = Services.io.getProtocolHandler("resource") .QueryInterface(Ci.nsIResProtocolHandler), ) => { if (!PHandler.hasSubstitution(substitution)) PHandler.setSubstitution(substitution, Services.io.newURI(image)); var menuitem = document.createXULElement("menuitem"); document.getElementById(id).after(menuitem); var hidden = () => !nsContextMenu.contentData.context.linkTextStr; menuitem.hidden = true; menuitem.render = () => { if (hidden()) return; menuitem.hidden = false; menuitem.id = `${id}text`; menuitem.label = "Скопировать текст ссылки"; menuitem.setAttribute("oncommand", "navigator.clipboard.writeText(gContextMenu.linkTextStr);"); delete menuitem.render; menuitem.className = "menuitem-iconic"; menuitem.style.cssText = `list-style-image:url("resource://${substitution}");-moz-context-properties:fill,fill-opacity;fill:currentColor;`; menuitem.render(); menuitem.render = () => menuitem.hidden = hidden(); } })();
Отредактировано Vitaliy V. (10-05-2024 02:18:16)
Отсутствует
Проверял на
Да это работает только на пока
Но здесь же не нужно копировать изображения вроде достаточно будет navigator.clipboard.writeText(), попробуйте так
/* const code = 'copyToClipboard(' + JSON.stringify(outputtext) + ',' + clickedItem.outputAsHTML +');'; browser.tabs.executeScript({ code: 'typeof copyToClipboard === "function";', }).then((results) => { if (!results || results[0] !== true) { return browser.tabs.executeScript(tab.id, { file: 'clipboard-helper.js' }); } }).then(() => { return browser.tabs.executeScript(tab.id, { code }); }).catch((error) => { console.error('Failed to copy text: ' + error); }); */ navigator.clipboard.writeText(outputtext);
Отсутствует
как уменьшить высоту панели вкладок?
Почему в этой теме непонятно, ну да ладно
:@-moz-document url("chrome://browser/content/browser.xhtml") { :root { --tab-min-height: 26px !important; --tab-block-margin: 1px !important; } :root[uidensity="touch"] { /* мобильный режим */ --tab-min-height: 32px !important; } .tab-label-container { height: 1.75em !important; } .tab-label { line-height: 1.25em !important; height: 1.25em !important; margin-block: 0 !important; } .tab-secondary-label { margin-block: -.25em 0 !important; font-size: .75em !important; } .tab-icon-sound-label { line-height: 1.25em !important; height: 1.25em !important; margin-block: 0 !important; } }
Отсутствует
Почему в этой теме непонятно, ну да ладно
Спасибо. Не работает. Менял --tab-min-height: 20px !important;
Другие стили (цвет и размер шрифтов) из этого же файла работают.
Может я путь { path: "correct.css", type: "AGENT_SHEET"}, не туда прописыаю?
Отсутствует
Менял --tab-min-height: 20px
Так бы и сказали что нужно так сильно уменьшить
@-moz-document url("chrome://browser/content/browser.xhtml") { :root { --tab-min-height: 20px !important; --tab-block-margin: 0px !important; --tabs-navbar-shadow-size: 0px !important; --tab-border-radius: 4px !important; } :root[uidensity="touch"] { /* мобильный режим */ --tab-min-height: 32px !important; } .tab-background { border-end-start-radius: 0 !important; border-end-end-radius: 0 !important; } .tab-label-container { height: 1.5em !important; } .tab-label { line-height: 1.25em !important; height: 1.25em !important; margin-block: 0 !important; } .tab-secondary-label { margin-block: -.25em 0 !important; font-size: .75em !important; } .tab-icon-sound-label { line-height: 1.25em !important; height: 1.25em !important; margin-block: 0 !important; } .tab-close-button { width: 18px !important; height: 18px !important; padding: 3px !important; } }
Отсутствует
Так бы и сказали что нужно так сильно уменьшить
Vitaliy V. Спасибо. Теперь нормально. Прямо камень с души упал.
Извините, что отвлекаю по мелочам.
Отсутствует
Алексей У. пишетА где можно достать UserChromeFiles для Firefox 88?
Благодарю, установил - работает. Правда хочу отметить замеченный мной нюанс (вернее, недоработку). Когда в адресную строку вводится поисковый запрос, dropmarker заменяется кнопкой "Перейти" (есть такая настройка в скрипте); однако если вместо запроса вставляется готовая ссылка, dropmarker остается на месте, хотя так же должен заменяться кнопкой перехода. Было бы неплохо автору исправить это. И еще небольшой вопрос - можно ли убрать из персонализации кнопку перезапуска или хотя бы перекрасить ее в черный цвет (она красная и этим сильно выделяется из ряда остальных кнопок)?
Отсутствует
ucf_hookClicks.js – оптимизация скрипта меню и кнопок, устранены ошибки, больше не мусорит переменными в окно.
Меню быстрых опций запомнит ваши значения, а не только вшитые: щёлкаем строку "User Agent", вводим нужный вам ЮзерАгент в general.useragent.override_my. Работает для любых опций, например в строке "Загрузки" можно изменить пути сохранения страниц/графики. Дополнено меню пользователя, пока ещё в режиме окна, т.к. завязано на многие функции скрипта ucf_hookClicks.
SaveHTML.mjs - исправлены ошибки, в демо-профиле у background-скриптов теперь префикс «ucb_»
ucf_contextmenu_openwith.js от Vitaliy V. – убрал OpenClipboardURI, чтоб не путаться при кликах, добавил tooltips. Правый клик аналогичен левому с Shift и передаёт ссылку из буфера обмена или выделенного текста. Добавил roll - на строке "Ссылку в плеер MPV" клик колёсиком выполнит команду, указанную в подсказке. Для Linux могу сделать автопоиск терминала, но это усложнит код: path: '/usr/bin/sh', args: `-c "term=$(which konsole xterm xfce4-…`
Отсутствует
Было бы неплохо автору исправить это
Это в этом скрипте https://forum.mozilla-russia.org/viewto … 88#p781188
так понял, да вроде работало и с адресом, в любом случае проверить не могу версия 88 у меня не запускается как надо слишком старая
разбираться почему лень вероятно с wayland не дружит.
egorsemenov06
// menuItem.setAttribute("image", "data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' width='17' height='16'><path fill='rgb(0, 116, 232)' fill-opacity='context-fill-opacity' d='M15.37 15H17l-3.63-8.54a.75.75 0 0 0-.69-.46h-.82c-.3 0-.58.18-.7.46L9.32 10.8l-.01-.01a10.8 10.8 0 0 1-3.27-2.2 12.38 12.38 0 0 0 2.54-4.18L9.08 3H10V1.5H5.75V0h-1.5v1.5H0V3h7.5l-.33.91c-.47 1.31-1.2 2.52-2.13 3.56-.7-.9-1.25-1.9-1.63-2.97H1.8l.18.48a12.43 12.43 0 0 0 1.97 3.56c-.9.75-1.89 1.35-2.96 1.78v1.58a12.3 12.3 0 0 0 3.96-2.26 12.31 12.31 0 0 0 3.77 2.54L7.53 15h1.64l1.06-2.5h4.08l1.06 2.5Zm-4.5-4 1.4-3.3 1.4 3.3h-2.8Z'/></svg>"); var image = "data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16'><path fill='context-fill rgb(0, 116, 232)' fill-opacity='context-fill-opacity' d='M15.37 15H17l-3.63-8.54a.75.75 0 0 0-.69-.46h-.82c-.3 0-.58.18-.7.46L9.32 10.8l-.01-.01a10.8 10.8 0 0 1-3.27-2.2 12.38 12.38 0 0 0 2.54-4.18L9.08 3H10V1.5H5.75V0h-1.5v1.5H0V3h7.5l-.33.91c-.47 1.31-1.2 2.52-2.13 3.56-.7-.9-1.25-1.9-1.63-2.97H1.8l.18.48a12.43 12.43 0 0 0 1.97 3.56c-.9.75-1.89 1.35-2.96 1.78v1.58a12.3 12.3 0 0 0 3.96-2.26 12.31 12.31 0 0 0 3.77 2.54L7.53 15h1.64l1.06-2.5h4.08l1.06 2.5Zm-4.5-4 1.4-3.3 1.4 3.3h-2.8Z'/></svg>"; var substitution = `ucf-${menuItem.id.toLowerCase()}-img`; var PHandler = Services.io.getProtocolHandler("resource") .QueryInterface(Ci.nsIResProtocolHandler); if (!PHandler.hasSubstitution(substitution)) PHandler.setSubstitution(substitution, Services.io.newURI(image)); menuItem.style.cssText = `list-style-image:url("resource://${substitution}");-moz-context-properties:fill,fill-opacity;fill:currentColor;`;
Dobrov
Это то что сразу заметил, переменную length убрал выше и теперь здесь у тебя всегда submenu = false; будет https://github.com/VicDobrov/UserChrome … ith.js#L94
Да и если ты не заметил мой скрипт был обновлен, чтобы пункты при выделении текста и полях ввода были скрыты если это не URL
Отсутствует
Это в этом скрипте https://forum.mozilla-russia.org/viewto … 88#p781188
Да, я этот скрипт имел в виду. Зачем вообще убрали из адресной строки dropmarker - не пойму, с ним было очень удобно просматривать выпадающий список. А чтобы недоделку с вставляемой ссылкой устранить, это нужно сам скрипт править?
Отсутствует
А чтобы недоделку с вставляемой ссылкой устранить, это нужно сам скрипт править?
У меня не воспроизводится dropmarker скрывается с настройкой hidewhenusertyping: true, пробовал на 88, вот только иконка dropmarker'а не загрузилась заменил arrow-down.svg на arrow-dropdown-16.svg. А так да для новых версий нужно править.
Отредактировано Vitaliy V. (12-05-2024 16:45:06)
Отсутствует
Это то что сразу заметил, переменную length убрал выше и теперь здесь у тебя всегда submenu = false
Шеф, я усё исправил! – там arrOS.length надо было, т.к. имена текущей OS и массивов равны.
Поправил мой мод ucf_contextmenu_openwith.js в соответствии с новой версией, упростил и дополнил.
Скрыл OpenClipboardURI, чтоб было однозначное поведение при кликах, добавил подсказки. Правый клик аналогичен левому с Shift и передаёт ссылку из буфера обмена или выделенного текста. Добавил roll - выполнение другой команды. В строке "yt-dlp" клик колёсиком подставит другие опции.
Vitaliy V. - шапку обновил, добавив ссылку на твой скрипт ucf_contextmenuopenwith.js.
Мне сложно проверять, обновился пост или нет, гитхабом или чем-то подобным это проще и удобней отслеживать!
Отредактировано Dobrov (12-05-2024 03:54:01)
Отсутствует
В консоли пишет вот такую ошибку Uncaught Error: not well-formed XML
Странно, у меня ничего подобного не пишет, XML'ка подхватывается.
Заресурсить SVG'шки попробовал так:
Код Save.js — оставил без изменений, таким, как ты выложил.
А в коде создания виджета — убрал get image() {…},
и заменил get initCode() {…}, на такой
// get initCode() { var count = 0; var prfx = "ucf-cbbtn-save-resurl-"; var rph = Services.io.getProtocolHandler("resource").QueryInterface(Ci.nsIResProtocolHandler); var ss = url => { var subst = prfx + ++count; rph.setSubstitution(subst, Services.io.newURI(url)); return "resource://" + subst; } this.image = ss("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'><path style='fill:none;stroke:context-fill rgb(142, 142, 152);stroke-opacity:context-fill-opacity;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round;' d='M3 .6C1.6.6.6 1.6.6 3v10c0 1.4 1 2.4 2.4 2.4h10c1.4 0 2.4-1 2.4-2.4V4.84L11.2.602Zm5.4 5.8h2V1m-2 0v5.4H7L5.6 5V1m-2 14v-2.6l1-1h6.8l1 1V15'/></svg>"); var arr = [ "@-moz-document url(chrome://browser/content/browser.xhtml) {", ` #${this.id} menuitem, #content-baseItem, #content-saveItem, #content-editorItem {`, " fill: currentColor !important;", " -moz-context-properties: fill, fill-opacity !important;", " }", " @media (-moz-platform: windows) {", ` #${this.id} menugroup > menuitem {`, " padding-block: .5em !important;", " padding-inline-start: 1em !important;", " }", " }", "}" ]; var url = "data:text/css;charset=utf-8," + encodeURIComponent(arr.join("\n")); var sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService); sss.loadAndRegisterSheet(Services.io.newURI(ss(url)), sss.USER_SHEET); delete this.initCode; return this.initCode = Cu.readUTF8URI(Services.io.newURI( "chrome://user_chrome_files/content/custom_scripts/custom_script/Save.js" )) .replace(/data:image\/svg[^"]+/g, ss); },
Отсутствует