tgz пишетгде взять файл userChrome.css
В папке вашего профиля создать папку \chrome, а в ней файл userChrome.css, желательно в кодировке utf-8 без BOM.
Скопировать в него ваш код и сохранить.
В about:config параметр toolkit.legacyUserProfileCustomizations.stylesheets переключить в true.
Перезагрузить браузер
Спасибо, сделал все в точности как написано, но к сожалению это не сработало((
Отсутствует
tgz
что вы сделали? покажите. уверен, что "сделал все в точности как написано" - не так.
скрины дайте папки профиля с файлом css. не txt, не "ещечегототам", а именно css
свою папку профиля легко найти - настройки - справка - информация о решении проблем - папка профиля - открыть папку. и там создавайте сначала папку chrome, потом файл css, и должно быть настроено в винде отображение расширений файлов.
Отредактировано sonyas75 (07-07-2021 11:37:45)
Отсутствует
sonyas75
да, действительно файл был в формате .txt и отображение расширения файлов было выключено. Я только перешел с 7 на 10 винду, еще не успел всё настроить. Извините за мою невнимательность. Огромное спасибо, теперь всё работает Уверен кому то еще пригодится эта инфа.
Отсутствует
Vitaliy V.
Столкнулся, что в Firefox 91 из docShell убрали allowJavascript.
Bug 1646560: Part 2 - Move allowJavascript and friends from DocShell to BrowsingContext and WindowContext.
Затрагивает ATB-кнопку «Переключить JavaScript».
Вот, пытался составить на замену _sendAsyncMessages(win, message) из parent.js
… Actors: class { constructor(win) { this.bc = win.gBrowser.selectedBrowser.browsingContext; } get actor() { return Object.defineProperty(this, "actor", { value: this.bc.currentWindowGlobal.getActor("ATBWinActor") }).actor; } *[Symbol.iterator]() { yield this.actor; var contextsToVisit = Array.from(this.bc.children); while (contextsToVisit.length) { let currentContext = contextsToVisit.pop(); let global = currentContext?.currentWindowGlobal; if (global) contextsToVisit.push(...currentContext.children), yield global.getActor("ATBWinActor"); } } }, get useBC() { delete this.useBC; return this.useBC = Cu.getGlobalForObject(Cu) .BrowsingContext.prototype.hasOwnProperty("allowJavascript"); }, async _sendAsyncMessages(win, message) { var actors = new this.Actors(win); switch (message) { case "ATBWinActor:ScrollPageUp": case "ATBWinActor:ScrollPageDown": case "ATBWinActor:ScrollTop": case "ATBWinActor:ScrollBottom": return actors.actor.sendAsyncMessage(message); case "ATBWinActor:TextToLink": for(var actor of actors) actor.sendAsyncMessage(message); return; case "ATBWinActor:CopyAllLinks": var links = "", count = 0; for(var actor of actors) { var data = await actor.sendQuery(message); if (data) links += `${data.links}\n`, count += data.count; } this.clipboardHelp.copyString(links); win.setTimeout(() => this.showAlert("Копирование ссылок", `${count} ссылок в буфере обмена!`) , 100); return; case "ATBWinActor:PageJavaScript": if (this.useBC) { var state = !actors.bc.allowJavascript; for(var bc of actors.bc.getAllBrowsingContextsInSubtree()) bc.allowJavascript = state; return; } var check, getstate = "ATBWinActor:getPageJavaScript"; break; case "ATBWinActor:PageImages": var check = true, getstate = "ATBWinActor:getPageImages"; break; case "ATBWinActor:LinkPointerEvents": var check, getstate = "ATBWinActor:getLinkPointerEvents"; break; default: return; } var data = {state: !(await actors.actor.sendQuery(getstate))}; for(var actor of actors) await actor.sendQuery(message, data); check && this.checkBrowserReload(win); },
Отсутствует
Dumby
Вроде понятно, спасибо, но надо ли мне переделывать функцию _sendAsyncMessages так же, можно же и с минимум правок сделать?
Отсутствует
Vitaliy V.
Нет, переделывать функцию _sendAsyncMessages именно так же,
разумеется, не требуется. Это я просто показать вариант,
если было интересно, то и хорошо.
Главное — обратить внимание на баг, типа если что, чтобы потом
не заморачиваться, что да почему, ничего не искать, всё уже знакомо.
Отсутствует
Vitaliy V.
Dumby
Помогите пожалуйста заменить значок Яндекс-поисковика в 90+ на старый значок
Пытался через user_chrome.manifest - override moz-extension://7e4100f1-2d2e-4ab3-88f6-fcba6e24a9a3/yandex-ru.ico chrome://user_chrome_files/content/custom_styles/svg/yandex-ru.ico, но не пошло.
Подменой в omni.ja конечно получилось, но может можно как-то стилем это осуществить? Если не сильно муторно конечно.
Старая иконка как-то приятней для глаз, чем новая в панели поиска, а то уже думаю отказаться от скрипта search_engine_icon_in_searchbar.uc.js и оставить штатную безликую лупу
Отсутствует
sandro79
может так custom_script.js
Services.search.getEnginesByExtensionID("yandex@search.mozilla.org").then(engine => { if (!engine.length) return; engine[0]._iconURI = Services.io.newURI("chrome://user_chrome_files/content/custom_styles/svg/yandex-ru.ico"); });
Отсутствует
может так custom_script.js
Отлично! Сработало! Огромное Вам Спасибо! Теперь к переходу на 91ESR готов на все 100.
Добавлено 09-07-2021 00:10:34
Отредактировано sandro79 (09-07-2021 00:10:34)
Отсутствует
Здравствуйте. Можно ли применить стили только к подменю контекстных меню чтобы выровнять вот это:
Но тогда меню появляются далековато от курсора.
Отсутствует
Здравствуйте. Можно ли применить стили только к подменю контекстных меню чтобы выровнять вот это:
Здравствуйте.
Ну у вас явно не дефолтные меню, там такого большого разброса нет, есть гораздо меньший. Я так его устранил https://forum.mozilla-russia.org/viewto … 60#p792660
margin-inline-start: -2px !important; можно выбросить и margin-top явно другой будет.
Отредактировано sandro79 (09-07-2021 18:48:16)
Отсутствует
используете стиль отсюда
О, только заметил на 10 опять изменили, обновил стиль.
И не важно proton или нет должно одинаково работать.
А у него похоже не мой стиль
Отредактировано Vitaliy V. (09-07-2021 19:21:37)
Отсутствует
Использую такой код для замены стандартных черно-белых кнопок закрытия вкладок на цветные (изображения свои):
#tabbrowser-tabs .tabbrowser-tab .tab-close-button:hover {
list-style-image: url("./../image/close_hover.png") !important;
border-radius: 2px !important;
width: 16px !important;
height: 16px !important;
}
#tabbrowser-tabs .tabbrowser-tab .tab-close-button:active {
list-style-image: url("./../image/close_active.png") !important;
border-radius: 2px !important;
width: 16px !important;
height: 16px !important;
}
#tabbrowser-tabs .tabbrowser-tab:not([pinned]) .tab-close-button {
visibility: visible !important;
display: block !important;
}
#tabbrowser-tabs .tabbrowser-tab:not([pinned])[faviconized="true"] .tab-close-button {
visibility: collapse !important;
display: none !important;
}
Отсутствует
Vitaliy V., есть ли возможность сделать стилем свой цвет для панели вкладок (которая над адресной строкой) и для всех открытых, но неактивных вкладок?
---------------
Vitaliy V., СПАСИБО ! То, что надо !
Отредактировано usalex (09-07-2021 20:34:01)
Отсутствует
usalex
панель вкладок это #TabsToolbar
для неактивных вкладок так
.tabbrowser-tab > .tab-stack > .tab-background:not([selected="true"], [multiselected]) { background-color: color-mix(in srgb, currentColor 30%, transparent) !important; } .tabbrowser-tab:hover > .tab-stack > .tab-background:not([selected="true"], [multiselected]) { background-color: color-mix(in srgb, currentColor 40%, transparent) !important; }
Отсутствует
Но предположу, из вашего скриншота, что browser.proton.contextmenus.enabled в false у вас и вы используете стиль отсюда
Не. У меня всё протоновское. За основу всят этот стиль и глубоко переработан.
Взял кусок отсюда, задача решена. Спасибо.
Отсутствует
За основу всят этот стиль
вот если кому-то понадобится
Не понадобится тот стиль тоже был обновлен для 10
Отредактировано Vitaliy V. (09-07-2021 20:47:24)
Отсутствует
Вот ещё проблемка: после обновления до протона поломался скрипт контекстного меню поисковиков. Раньше если кликать колёсиком по пунктам подменю с недефолтными поисковиками то открывались станицы с запросами в фоновых вкладках, меню оставалось открытым и можно было прокликать несколько поисковиков (пунктов меню), а сейчас после первого же клика меню закрывается. Можно ли это пофиксить?
Не знаю где пост со скриптом.
(async (searchSelect, popup) => (popup = searchSelect.closest("menupopup")).addEventListener("popupshowing", { topic: "browser-search-engine-modified", defaultImg: "chrome://browser/skin/search-engine-placeholder.png", handleEvent(e) { if (searchSelect.hidden) return; var menu = document.createXULElement("menu"); menu.className = "menu-iconic"; menu.ePopup = menu.appendChild(document.createXULElement("menupopup")); menu.onclick = this.search; searchSelect.collapsed = true; searchSelect.before(menu); addEventListener("unload", () => { popup.removeEventListener("popupshowing", this); this.handleEvent == this.handler && Services.obs.removeObserver(this, this.topic); }, {once: true}); this.handler = () => menu.hidden = searchSelect.hidden; this.handlerRebuild = () => this.handler() || this.rebuild(menu); this.rebuild(menu); }, async rebuild(menu) { var de = Services.search.defaultEngine; de = de.wrappedJSObject || de; this.setAttrs(menu, de, `Искать в ${de.name} или в ...`); menu.ePopup.textContent = ""; for(var engine of await Services.search.getVisibleEngines()) { if (engine == de) continue; var menuitem = document.createXULElement("menuitem"); menuitem.className = "menuitem-iconic"; this.setAttrs(menuitem, engine); menu.ePopup.append(menuitem); } this.handleEvent = this.handler; Services.obs.addObserver(this, this.topic, false); }, setAttrs(node, engine, label = engine.name) { node.engine = engine; node.setAttribute("label", label); node.setAttribute("image", engine.iconURI ? engine.iconURI.spec : this.defaultImg); }, observe() { this.handleEvent = this.handlerRebuild; Services.obs.removeObserver(this, this.topic); }, search(e) { var {engine} = e.target; if (!engine) return; var submission = engine.getSubmission( searchSelect.searchTerms, null, "contextmenu" ); submission && openLinkIn(submission.uri.spec, "tab", { postData: submission.postData, inBackground: e.button > 0, relatedToCurrent: true, triggeringPrincipal: searchSelect.principal }); e.button != 1 && popup.state == "open" && popup.hidePopup(); } }))(document.getElementById("context-searchselect"));
Отсутствует
Vitaliy V., уже давно вы дали мне стиль для выезжающей панели закладок:
/*Выезжающая боковая панель + Закладки своим шрифтом*/ @namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); @-moz-document url("chrome://browser/content/browser.xhtml"), url("chrome://browser/content/browser.xul") { #sidebar-box { --v-sidebar-min-width: 2px; --v-sidebar-min-width-normal: 5px; --v-sidebar-max-width: 30em; --v-sidebar-transition-delay-show: .0s; --v-sidebar-transition-delay-hide: .0s; --v-sidebar-transition-duration: .0s; /* ********************************************** */ position: relative !important; z-index: 2 !important; min-width: var(--v-sidebar-max-width) !important; width: var(--v-sidebar-max-width) !important; max-width: var(--v-sidebar-max-width) !important; overflow: hidden !important; opacity: 0 !important; --v-sidebar-margin-max-width: calc(-1 * var(--v-sidebar-max-width)); --v-sidebar-margin-left-locale-dir: 0; --v-sidebar-margin-right-locale-dir: var(--v-sidebar-margin-max-width); --v-sidebar-transform-locale-dir: -1; margin-left: var(--v-sidebar-margin-left-locale-dir) !important; margin-right: var(--v-sidebar-margin-right-locale-dir) !important; transform: translateX(calc(var(--v-sidebar-transform-locale-dir) * (var(--v-sidebar-max-width) - var(--v-sidebar-min-width)))) !important; transition-timing-function: linear, step-start !important; transition-delay: var(--v-sidebar-transition-delay-hide), calc(var(--v-sidebar-transition-delay-hide) + var(--v-sidebar-transition-duration)) !important; transition-duration: var(--v-sidebar-transition-duration), 0s !important; transition-property: transform, opacity !important; -moz-binding: url("data:text/xml;charset=utf-8,<bindings xmlns='http://www.mozilla.org/xbl'><binding id='sidebar'><handlers><handler event='dragenter'><![CDATA[ if (!this.hasAttribute('sidebardrag')) this.setAttribute('sidebardrag', 'true'); ]]></handler><handler event='drop'><![CDATA[ if (this.hasAttribute('sidebardrag')) this.removeAttribute('sidebardrag'); ]]></handler><handler event='dragexit'><![CDATA[ var boxObj = this.boxObject; if ((!event.relatedTarget || event.screenY <= (boxObj.screenY + 5) || event.screenY >= (boxObj.screenY + boxObj.height - 5) || event.screenX <= (boxObj.screenX + 5) || event.screenX >= (boxObj.screenX + boxObj.width - 5)) && this.hasAttribute('sidebardrag')) this.removeAttribute('sidebardrag'); ]]></handler></handlers></binding></bindings>#sidebar") !important; } #sidebar-box[ordinal][positionend="true"], #sidebar-box:-moz-locale-dir(rtl) { --v-sidebar-margin-left-locale-dir: var(--v-sidebar-margin-max-width); --v-sidebar-margin-right-locale-dir: 0; --v-sidebar-transform-locale-dir: 1; } #sidebar-box[ordinal][positionend="true"]:-moz-locale-dir(rtl) { --v-sidebar-margin-left-locale-dir: 0; --v-sidebar-margin-right-locale-dir: var(--v-sidebar-margin-max-width); --v-sidebar-transform-locale-dir: -1; } #main-window[sizemode="normal"] #sidebar-box { --v-sidebar-min-width: var(--v-sidebar-min-width-normal) !important; } #browser > *:not(#appcontent):hover ~ #sidebar-box[ordinal]:not([positionend="true"]), #sidebar-box:hover, #sidebar-box[sidebardrag] { transform: translateX(0) !important; opacity: 1 !important; transition-delay: var(--v-sidebar-transition-delay-show) !important; } #main-window #browser > #sidebar-splitter { -moz-appearance: none !important; visibility: collapse !important; padding: 0 !important; border: none !important; width: 0 !important; } #sidebar-box > #sidebar { min-width: 0 !important; width: auto !important; max-width: none !important; -moz-box-flex: 1 !important; } @font-face { font-family: "Custom"; src: url("./fonts/Lucida.ttf"); } #BMB_bookmarksPopup, #bookmarksMenuPopup, #BMB_bookmarksPopup menupopup, #bookmarksMenuPopup menupopup { font-family: "Custom" !important; font-size: 16px !important; } #BMB_bookmarksPopup .subviewbutton { min-height: 18px !important; padding-top: 1px !important; padding-bottom: 1px !important; margin-top: 0 !important; margin-bottom: 0 !important; } } @-moz-document url-prefix("chrome://browser/content/places/") { @font-face { font-family: "Custom"; src: url("./fonts/Lucida.ttf"); } #bookmarksPanel { font-family: "Custom" !important; font-size: 16px !important; } }
Отсутствует
Win7
Отсутствует
usalex
Да он старый ещё с биндингом -moz-binding
а вы что user_chrome_files не пользуетесь?
там есть стиль что по ссылке kokoss
раскомментировать в custom_style_user.css
@import url("./auto_hide_sidebar.css"); /* <-- Auto Hide Sidebar */
и скрипт для него раскомментировать в custom_script_win.js
this.autohidesidebar.init(); // <-- Auto Hide Sidebar
если без скрипта то:
не работает авто-открытие панели при перетаскивании ссылки,
при переключении в верхнем меню когда курсор на меню панель скрывается,
и т.д.
Отредактировано Vitaliy V. (10-07-2021 00:05:14)
Отсутствует
вы что user_chrome_files не пользуетесь?
Пока не было такой необходимости - меня устраивали те стили, которые вы мне давали.
Теперь попробую разобраться с auto_hide_sidebar.css
Спасибо!
Отсутствует
В данной теме есть код для уменьшения междустрочного интервала в закладках и контекстном меню - всё хорошо, работает. А как уменьшить интервал в меню приложения, которое открывается по клику на гамбургер?
Отсутствует
А как уменьшить интервал в меню приложения, которое открывается по клику на гамбургер?
:root { --arrowpanel-menuitem-padding-block: 2px !important; --panel-separator-margin: 3px 8px !important; --panel-subview-body-padding: 6px 0 !important; }
Отсутствует
Vitaliy V.
Не подскажите, когда findbar ничего не находит, то на .findbar-textbox[status="notfound"] появляется черная рамка, как её убрать?
Ни border, ни box-shadow не отключает(
На форуме