xrun1, спасибо за ответ (Greasemonkey нет и не было никогда)
я в эти недели наоборот крайне серьёзно стараюсь удалить все расширения, какие только могу:
ещё дней 10 назад их было 16 --- а сейчас 9 --- и на днях уже гарантированно будет только 7:
- Stylish (2.0.2.1) будет удалёнo (для этого уже проведена вся подготовка)
- AutoCopy 2 (1.2.9.1) будет удалёнo (пусть даже мой скрипт и копирует текст только при выделении мышкой - не клавиатурой)
моя цель - разгрузить/облегчить браузер - и по возможности без потери функционала/удобства
я с радостью бы поудалял и все остальные 7 расширений:
- Adblock Plus (2.6.10)
- Classic Theme Restorer (1.3.7.1)
- Element Hiding Helper For Adblock Plus (1.3.3)
- Expire History By Days (1.1.1)
- InlineDisposition 2 (0.1.1.1)
- Menu Wizard (2.10)
- Tab Mix Plus (0.4.1.8)
но сильно подозреваю, что с этим будут либо огромные, либо нерешаемые проблемы
впрочем, чувствую, что безболезненное удаление такой мелочи как "InlineDisposition 2 (0.1.1.1)" вполне реально
но пока не удалось найти способа это сделать
из остальных шести, как ни странно, мне кажется, что именно немелкую Adblock-парочку было бы относительно реально позаменять на строки
(например, для файла userChrome.css)
и я бы даже занялся этим всерьёз, так как мне по сути хватило бы пока только одного сайта
но без обстоятельной/терпеливой помощи - здесь на форуме - точно обойтись бы не смог
Отсутствует
код игнорируется
userChrome.css — это USER_SHEET
Приведённый кусок кода из лисьего panelUI.css — это AUTHOR_SHEET
Баг три года так и висит:
Bug 1575507 - Shadow parts should work in user-origin stylesheets.
этот <tooltip> находится в конце <html>, ничего в нем странного не видно
Куда уж страннее. Это NAC-тултип (Native Anonymous Content).
Для стилизации NAC нужно использовать AGENT_SHEET
нежелательно пропадает строка 'closed' в контекстном меню
Если речь о пункте меню, который добавляет расширение Tab Mix Plus,
то это так и задумано автором расширения.
Если тебе это не нравится, тогда можно код расширения подправить.
Напомню: xpi-файл — это обычный zip-архив.
В профиле, в папке extensions, он лежит под именем {dc572301-7619-498c-a57d-39143191b318}.xpi
В файле %Расширение%\chrome\content\click\click.js есть такие строки (687-689)
… Tabmix.showItem(undoCloseListMenu, !contentClick && !gContextMenu.isTextSelected && undoClose && !closeTabsEmpty && Tabmix.prefs.getBoolPref("undoCloseListContent"));
… Tabmix.showItem(undoCloseListMenu, !contentClick && /*!gContextMenu.isTextSelected &&*/ undoClose && !closeTabsEmpty && Tabmix.prefs.getBoolPref("undoCloseListContent"));
Отсутствует
у части tooltip радиус не меняется, например у бутерброда, у кнопки История, у кнопок расширений
Я изменял скриптом отсюда.
Отредактировано kazarin (14-08-2022 00:49:30)
Отсутствует
Dumby спасибо дружище за инфу
Баг три года так и висит
печально, пока заменил на .menupopup-arrowscrollbox
Куда уж страннее. Это NAC-тултип (Native Anonymous Content).
а как ты узнал, что это nac? в html несколько одинаковых (почти) tooltip, но получается, что одни наки, другие ненаки.
леса живет в лису?
Отсутствует
а как ты узнал, что это nac? в html несколько одинаковых (почти) tooltip, но получается, что одни наки, другие ненаки.
Ой, не помю уже, давно дело было.
А NAC-тултип, он вроде как всегда только один на документ.
Узнать NAC можно так: ПКМ по строке элемента —> Использовать в Консоли,
и там посмотреть значение свойства isNativeAnonymous (true или false).
Разумеется, свойство доступно только в привилегированном контексте.
Отсутствует
еще хочу радиусы у tooltip убрать. делаю так:
Код:
tooltip {
border-radius: 0 !important;
}но у части tooltip радиус не меняется, например у бутерброда, у кнопки История, у кнопок расширений. ... что делать?
Как вариант, установить UCF и добавить этот код в файл custom_styles_all_agent
Отредактировано kokoss (15-08-2022 00:07:34)
Win7
Отсутствует
Dumby
то это так и задумано автором расширения
странная задумка (я годами был уверен, что это какой-то дефект)
тогда можно код расширения подправить
спасибо (я подправил - получилось)
пункт-2 теперь решён (остальные пункты - 3, 4, 5 - остаются актуальными):
3) (перенос функционала из мелкого расширения "InlineDisposition 2 (0.1.1.1)" в css-файл)
есть ли смысл пробовать добавление в userChrome.css XBL-кода? по типу такого
я совсем не уверен, что в данном случае это толковая идея (просто уточняю)
4) (автоматически отправлять выделенный текст в буфер обмена)
раз идей ни у кого нет, то тут я, наверно, попробую смириться
с использованием своей (ранее упомянутой) частичной заменой в виде ahk-скрипта
5) (скрыть глючно-бесполезные символы на страницах)
данный пункт/проблемка тоже пока подвисла без решения (к счастью, она далеко не самая значимая)
xpi-файл — это обычный zip-архив
ещё считанные десятки часов назад я не знал даже этого
cовсем новый вопрос: можно ли что-то добавить в userChrome.css? чтобы при обновлении вкладки
в её названии не мелькала (то есть, вообще не появлялась) надпись "Connecting..."
Отсутствует
4) (автоматически отправлять выделенный текст в буфер обмена)
раз идей ни у кого нет
Ну, видимо, ожидалось подтверждение положительного опыта правки расширения.
Теперь, когда оно есть, можно попытаться что-нибудь предложить.
Попробуй добавить такой код в конец файла click.js
(это тот, который в Tab Mix Plus, тот, который ты уже правил).
/*======================[ AutoCopyMin ]======================*/ (id => { var re = /\S/; var reasons = new Set(["MOUSEUP", "KEYPRESS", "SELECTALL"].map( reason => Ci.nsISelectionListener[reason + "_REASON"] )); var listener = { notifySelectionChanged(doc, sel, reason) { reasons.has(reason) && re.test(sel) && doc.docShell.doCommand("cmd_copy"); }, handleEvent(e) { var win = e.target.ownerGlobal; win.removeEventListener("unload", this); win[id].removeSelectionListener(this); } }; var dcl = e => { var win = e.target.ownerGlobal; if (win.top == content) try { var sel = win.getSelection().QueryInterface(Ci.nsISelectionPrivate); (win[id] = sel).addSelectionListener(listener); win.addEventListener("unload", listener); } catch(ex) {} } gBrowser.addEventListener("DOMContentLoaded", dcl); window.addEventListener("unload", function unload() { window.removeEventListener("unload", unload); gBrowser.removeEventListener("DOMContentLoaded", dcl); }); })(Symbol("AutoCopyMin"));
Отсутствует
Попробуй добавить такой код в конец файла click.js
cразу сработало (спасибо) --- и позитивно, что теперь ещё и double-click на слове копирует его в буфер обмена:
мой скриптик такого не умел (пусть даже и его мне бы хватало в 99% случаев)
Отсутствует
Как вариант, установить UCF и добавить этот код в файл custom_styles_all_agent
это перебор. я просто в config.js несколько строчек добавил.
леса живет в лису?
Отсутствует
austri
Не надо здесь писать. Специальную тему выделили.
Отсутствует
kokoss
этот код загружает файл chrome\userChromeAgent.css
у меня в config.js еще кое-какой код есть, но он к нашей теме отношения не имеет.
// Первую строку файла Firefox пропускает. 'use strict'; // Папка chrome в профиле. const file = Cc['@mozilla.org/file/directory_service;1'].getService(Ci.nsIProperties).get('UChrm', Ci.nsIFile); // В профиле удаленной отладки нет папки chrome. // TODO Есть более надежный способ пропустить этот профиль? if (file.exists()) { const AGENT_SHEET = 0; const USER_SHEET = 1; const AUTHOR_SHEET = 2; const io = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService); file.append('userChromeAgent.css'); Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService).loadAndRegisterSheet( io.newURI( // c:\folder\файл ==> file:///c:/folder/%D1%84%D0%B0%D0%B9%D0%BB/ io.getProtocolHandler('file').QueryInterface(Ci.nsIFileProtocolHandler).getURLSpecFromDir(file), null, null ), AGENT_SHEET ); }
Отредактировано CoolCmd (16-08-2022 14:22:49)
леса живет в лису?
Отсутствует
скрытый текст
Вроде работает! Спасибо за ещё один способ использования стиля для тултипов.
Отредактировано kokoss (16-08-2022 00:25:52)
Win7
Отсутствует
CoolCmd
Проверил, у меня тоже работает, интересный метод. Спасибо!
А какие ещё параметры можно прописать только через userChromeAgent.css? Мне, кроме тултипов, других не попадалось.
Отсутствует
kazarin вроде кроме tooltip больше никаких. раньше видел, что полосы прокрутки меняют, но в современных версиях лесы достаточно обычного css + about:config.
я думаю, будет практичнее запихнуть стили tooltip в код config.js, потому что стилей очень мало и часто менять их не нужно, а файловые операции сравнительно медленные даже на ssd. а в файл пихать стили для shadow dom и грузить файл как AUTHOR_SHEET. я пока без AUTHOR_SHEET обошелся, но по мере перехода с xul на html пользы от него наверное будет все больше.
вот себе вторую версию config.js сделал, работает как описано выше. код легко дополнить для загрузки любого количества файлов или текста любых типов:
Отредактировано CoolCmd (17-08-2022 19:56:48)
леса живет в лису?
Отсутствует
Выделить кодКод:
// Папка chrome в профиле. const оПапка = Cc['@mozilla.org/file/directory_service;1'].getService(Ci.nsIProperties).get('UChrm', Ci.nsIFile); // В профиле удаленной отладки нет папки chrome. // TODO Есть более надежный способ пропустить этот профиль?
оПапка.parent.leafName будет chrome_debugger_profile
Отсутствует
Dumby спасибо. тогда версия 3:
// Первую строку файла Firefox пропускает. 'use strict'; // Может пригодиться для отладки этого файла. ///const {console} = Cu.import('resource://gre/modules/Console.jsm', {}); // Папка chrome в профиле. const оПапка = Cc['@mozilla.org/file/directory_service;1'].getService(Ci.nsIProperties).get('UChrm', Ci.nsIFile); // Пропустить профиль удаленной отладки. if (оПапка.parent.leafName !== 'chrome_debugger_profile') { const AGENT_SHEET = 0; const USER_SHEET = 1; const AUTHOR_SHEET = 2; const {loadAndRegisterSheet} = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService); const ioService = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService); зарегистрироватьТекст( AGENT_SHEET, ` @namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); tooltip { /* Нулевой радиус не скрывает тень */ border-radius: 0 !important; } @media (prefers-color-scheme: light) { tooltip { color: #000 !important; border-color: #767676 !important; background-image: linear-gradient(#fff, #e4e5f0) !important; } } ` ); зарегистрироватьФайл(AUTHOR_SHEET, 'userChromeAuthor.css'); function зарегистрироватьТекст(чТип, сТекст) { loadAndRegisterSheet(ioService.newURI(`data:text/css;charset=utf-8,${encodeURIComponent(сТекст)}`, null, null), чТип); } function зарегистрироватьФайл(чТип, сИмяФайла) { const оФайл = оПапка.clone(); оФайл.append(сИмяФайла); loadAndRegisterSheet( ioService.newURI( // c:\folder\файл ==> file:///c:/folder/%D1%84%D0%B0%D0%B9%D0%BB/ ioService.getProtocolHandler('file').QueryInterface(Ci.nsIFileProtocolHandler).getURLSpecFromDir(оФайл), null, null ), чТип ); } }
Отредактировано CoolCmd (20-08-2022 14:35:30)
леса живет в лису?
Отсутствует
CoolCmd
вроде кроме tooltip больше никаких. раньше видел, что полосы прокрутки меняют, но в современных версиях лесы достаточно обычного css + about:config.
Вот и мне тоже других не попадалось. В типах тулбаров я не разбираюсь, но видел, что они идентичны тем, что в винде, и единственное, что нашёл, чтоб перебить это заимствование, был скрипт uc.js. Но у него, конечно, тот большой недостаток, что только человеку, пользующемуся скриптами, можно рекомендовать.
В современных версиях лисы можно даже и без цсс, очень симпатичные скроллбары добавили в настройки.
я думаю, будет практичнее запихнуть стили tooltip в код config.js
Идея отличная))
Но третья версия у меня почему-то не запускается. Пишет - ошибка в чтении настроек, обратитесь к администратору.
Отсутствует
Но третья версия у меня почему-то не запускается. Пишет - ошибка в чтении настроек, обратитесь к администратору.
файла userChromeAuthor.css нет наверное. тогда закомментируй строку
леса живет в лису?
Отсутствует
CoolCmd
Да, не было файла, потому что он назывался userChromeAgent.css! Я не обратил внимание, что название файла изменилось! Сейчас всё работает и ничего не выскакивает.
Отредактировано kazarin (18-08-2022 22:17:44)
Отсутствует
Подскажите как убрать с контекстного меню пункты
1 Open link in new private tab
2. Искать в приватном окне
Браузер waterfox 4.14
Отредактировано ulver73 (20-08-2022 16:07:45)
Отсутствует
ulver73
вот здесь https://github.com/stonecrusher/simpleMenuWizard все варианты!
Знатоки! помогите!! попап даёт двойную окантовку остальные меню норм... кто может проверить код:
:root { --arrowpanel-background: #f0f7ff !important; --arrowpanel-border-color: #4bc9fe !important; } menupopup:not([id^="BMB_bookmarksPopup"]), popup, panel-list, #context-navigation { -moz-appearance: none !important; background-color: #f0f7ff !important; opacity: .9 !important; } menupopup:not([id^="BMB_bookmarksPopup"]), popup, panel-list { -moz-appearance: none !important; border: 2px #4bc9fe solid !important; border-radius: 5px !important; } .panel-arrowcontent{ border: 2px solid var(--arrowpanel-border-color)!important; border-radius: 5px !important; } #BMB_bookmarksPopup menupopup{ border: none !important; } .popup-internal-box, .panel-subview-body, .panel-header, #appMenu-Folders { -moz-appearance: none !important; --arrowpanel-background: #f0f7ff !important; opacity: .8 !important; } .panel-arrowbox { margin-bottom: -1px!important; margin-top: -1px !important; }
Чего–то требует душа, успев за день натрудиться.
И ночь, хозяйкой, не спеша, читает браузером страницу.
Отсутствует