Работает в боковой панели. На панели закладок не спрашивает.
А у меня наоборот, этот скрипт на панели закладок работает, а в боковой нет.
У меня и в боковой, и на панели закладок работает. Dumby, спасибо.
Отсутствует
Работает в боковой панели. На панели закладок не спрашивает.
Это я понял ещё из изначального вопроса.
На что была дадена ссылка, где сказано какую строку куда добавить.
Вот и осталось непонятно, помогла строка или нет.
А у меня наоборот, этот скрипт на панели закладок работает, а в боковой нет.
Этого не может быть. Наверно ты не понял что скрипт делает.
И неудивительно: человек когда-то что-то спрашивает, затем кто-то другой
спрашивает мод, затем третий, зачем-то, тащит это к себе, да ещё и переименовывает
"Удалять с панели закладок?" в "Удалить закладку/папку?". Короче — испорченный телефон.
Подтверждение появляется если:
1. Удаляется закладка из панели закладок (включая закладки из подпапок).
2. Удаляется папка из панели закладок (только из самой панели закладок, исключая вложенные папки).
А удаляется где — неважно (панель закладок, main-menubar, сайдбар, Библиотека, и.т.д).
возможно добавить восстановление удалённых закладок было и в окне Библиотеки?
Оно там есть. В смысле должно работать Ctrl+Z.
Но можешь попробовать загрузить скрипт в это окно,
в CustomStylesScripts.jsm, для Библиотеки, есть даже пример-комментарий.
чтобы на macos подключались ещё пара своих AGENT_SHEET и USER_SHEET стилей, на linux пара своих, на windows тоже.
Так а в чём, собственно, затруднение?
Я не знаю как тебе видится это организовать, но, допустим, например:
В начале скрипта импортируем лисий модуль AppConstants,
и определяем функцию типа var os = name => `${name}_${AppConstants.platform}.css`;
Тогда, там где path, вместо строки, пишем вызов этой функции path: os("style1"),
получается, как если бы, path: "style1_macosx.css" (или "style1_linux.css", или "style1_win.css").
Не проверял.
osx
Не osx, а macos. К тому же, Firefox 99+, а не 97.
Отредактировано Dumby (14-09-2022 19:21:45)
Отсутствует
бесцветные иконки категорически отказываюсь лицезреть
Если только из за этого, то просто замените в новом UCF, папку svg и файл icons_in_menu на свои.
Add, забыл. там ещё понадобится комплект full_theme, где и находятся папка svg и файл icons_in_menu.
Отредактировано kokoss (14-09-2022 20:54:20)
Win7
Отсутствует
В начале скрипта импортируем лисий модуль AppConstants, и определяем функцию типа var os = name => `${name}_${AppConstants.platform}.css`;
с @media (-moz-platform не совсем подходит, так как хочу, чтобы работало на "быстрых" старых версиях, как UCF для FF78+. Так нормально?
const {AppConstants} = ChromeUtils.import("resource://gre/modules/AppConstants.jsm"); var os = name => `${name}_${AppConstants.platform}.css`; var UcfStylesScripts = { /** ************************▼ Настройки ▼ + доп. подключение слилей для вашей ОС */ ……………………… stylesall: [ // Для всех документов { path: "custom_styles_all_agent.css", type: "AGENT_SHEET", sheet() { registerSheet(this); }, }, { path: "custom_styles_all_user.css", type: "USER_SHEET", sheet() { registerSheet(this); }, }, // добавить стиль для вашей операционной системы: "*_macosx.css" "*_linux.css" "*_win.css" { path: os("custom_styles_all_agent"), type: "AGENT_SHEET", sheet() { registerSheet(this); }, }, { path: os("custom_styles_all_user"), type: "AGENT_SHEET", sheet() { registerSheet(this); }, }, ],
Отсутствует
На что была дадена ссылка, где сказано какую строку куда добавить.
Вот и осталось непонятно, помогла строка или нет.
Ссылка помогла после повторного прочтения. Меня смутило слово "симилярно".
Что касается перехода на "новый" UCF. Привык делать, если чётко понимаю "что" и "зачем". Второй пункт спорный: если всё работает, то зачем? Оптимизация?
Первый пункт непонятен. Догадываюсь, что CustomStylesScripts.jsm и CustomStylesScriptsChild.jsm некие загрузчики, но чем они отличаются и, в зависимости от этого, что куда прописывать. Виталий этого не объяснил, или я невнимательно читал. Когда "ucfobj" считать объектом? Методом "тыка" делать не хочу, да и долго это будет.
P.S. А я и не переходил на icons_in_menu от Виталия. У меня остался свой с цветными иконками, за исключением системных.
P.P.S. Опять переделывать user_chrome.js лениво, сейчас так.
Отсутствует
Вот пара моих скриптов, надеюсь кому пригодятся.
Они сделаны под загрузчик by alice0775; будут ли работать с описанным в начале этой темы загрузчиком, не знаю.
Quick Mark
Переработанное меню добавления закладки. Можно выбрать папку по умолчанию, переименовать папку, создать новую. Высота окошка настраивается (потянуть мышкой). Внутри скрипта есть несколько настроек, которые вы можете изменить по вкусу (думаю, в последних версиях FF не все они уже работают).
// QUICK BOOKMARK // Replacement for QuickMark extension for Firefox 57+ // https://addons.mozilla.org/firefox/addon/quickmark/ // https://github.com/TarekJor/Firefox-52-ESR-legacy-addon/blob/master/xpi/quickmark-1.2.11-fx.xpi // Required Firefox version: min 54, max tested 70a // Changelog // 2017.11.14 - initial release for FF 57 // 2018.08.28 - edits for FF 62-63 // 2019.08.18 - edits for FF 68-70: // Some operations with folderTree variable moved from initialization code into panel.popupshowing listener as node #editBMPanel_folderTree is no longer present in DOM until popup initialized and toggleFolderTreeVisibility() called. // createElement() replaced with createXULElement() (used in makeResizer() and makeFolderContextMenu()). // 2020.05.08 - edits for FF 76 // Bookmarks panel is now accessed via StarUI.panel as getElementById(...) returns null in FF 76 // 2020.06.02 - edits for FF 78 or 79 // Popup hint is now accessed via ConfirmationHint._panel as getElementById(...) returns null since FF 78 or 79 // 2022.06.19 - edits for FF ≈101 // Small fixes let settings = { // If false, you can set any folder as default via its context menu useLastSelectedFolderAsDefault: false, // Comment out any element to unhide it menuElementsToHide: [ // '.panel-header', '#editBookmarkPanelImage', // FF62+ '#editBookmarkPanelFaviconContainer', // FF62+ // '#editBMPanel_nameRow', // '#editBMPanel_folderRow', '#editBMPanel_folderRow > hbox', // ≈FF101 '#editBMPanel_newFolderBox', // '#editBMPanel_tagsRow', '#editBookmarkPanel_showForNewBookmarks', // FF63+ '#editBookmarkHeaderSeparator', // ≈FF101 ], makeMenuNarrower: true, makeButtonsSmaller: false, hideBookmarksToolbarIfEmpty: true, hideThatStupidGreenTooltipOnSaving: true, // FF62+ useOneClickMode: true, }; let strings = { 'en': { 'setAsDefault': 'Set as default folder', 'rename': 'Rename', 'addNewFolder': 'New folder...', }, 'ru': { 'setAsDefault': 'Сделать папкой по умолчанию', 'rename': 'Переименовать', 'addNewFolder': 'Новая папка...', }, }; strings['en-US'] = strings['en']; strings['ru-RU'] = strings['ru']; if (Services.vc.compare(Services.appinfo.platformVersion, '54.*') == -1) { let path = Components.stack.filename; path = path.substring(path.lastIndexOf('///') + 3); alert('“Quick Bookmark” userscript will not work with this version of Firefox. \nMinimal supported version is 54. \nPlease delete the script to avoid such alerts and possible malfunctioning. \n' + path); } let storage = Services.prefs.getBranch('extensions.userScripts.quickBookmark.'); let starButton = document.getElementById('star-button-box'); // let panel = document.getElementById('editBookmarkPanel'); // Null since FF76 because of “lazy load” (see browser-places.js) let panel = StarUI.panel; // This creates the panel in FF76 if missed or just gets it in older versions let folderTree = panel.querySelector('#editBMPanel_folderTree'); // Null in FF 68-70 let folderTreeRow = panel.querySelector('#editBMPanel_folderTreeRow'); let defaultFolderGuid = storage.getCharPref('defaultFolderGuid', PlacesUtils.bookmarks.unfiledGuid); let lastSelectedFolderGuid = defaultFolderGuid; // Used to distinguish if user really selected the folder or just expanded/collapsed it let shouldCloseOnClick = true; makeResizer(); makeFolderContextMenu(); let folderTreeHeight = storage.getCharPref('folderTreeHeight', '300px'); folderTreeRow.style.height = folderTreeHeight; for (let sel of settings.menuElementsToHide) { if (sel == '#editBookmarkPanel_showForNewBookmarks') continue; // This must be done later let el = panel.querySelector(sel); if (el) el.style.display = 'none'; if (sel == '#editBMPanel_folderRow > hbox' && el) folderTreeRow.style.padding = '0px'; } if (settings.makeMenuNarrower) { if (folderTree) folderTree.style.minWidth = '260px'; // Fix for ~FF62b18, probably will not be needed in latest builds panel.querySelector('#editBookmarkPanelBottomButtons').removeAttribute('style'); } if (settings.makeButtonsSmaller) { panel.querySelector('#editBookmarkPanelDoneButton').style.padding = '5px 2px 7px'; panel.querySelector('#editBookmarkPanelRemoveButton').style.padding = '5px 2px 7px'; } if (settings.hideThatStupidGreenTooltipOnSaving) { // document.querySelector('#confirmation-hint').style.display = 'none'; // Null since FF78 or 79 because of “lazy load” (see browser.js) let hint = document.querySelector('#confirmation-hint') || ConfirmationHint._panel; // This creates the hint in FF78-79 if missed or just gets it in older versions hint.style.display = 'none'; } // let tagsSelectorCollapsed = storage.getBoolPref('tagsSelectorCollapsed', true); // Add/remove bookmark silently when middle-clicking on the star button or pressing Ctrl+Alt+D // This may interfere with typographic keyboard layouts; possible solution - use Ctrl+Shift+D starButton.addEventListener('click', function(e) { if (e.button == 1 || (e.button == 0 && (e.ctrlKey || e.shiftKey))) { e.stopPropagation(); toggleBookmark(); } }, true); document.addEventListener('keydown', function(e) { if (e.ctrlKey && e.altKey && e.code == 'KeyD') { e.preventDefault(); toggleBookmark(); } // In FF63a1, if typographic layout is used and we are pressing Ctrl+Alt+D, both e.ctrlKey and e.altKey are false // This is a temporary workaround else if (e.key == '°' && e.code == 'KeyD') { e.preventDefault(); toggleBookmark(); } }); panel.addEventListener('popupshowing', function() { gEditItemOverlay.toggleFolderTreeVisibility(); if (!folderTree) folderTree = panel.querySelector('#editBMPanel_folderTree'); if (settings.makeMenuNarrower) folderTree.style.minWidth = '260px'; folderTree.contextMenu = 'editBMPanel_folderTree_contextMenu'; if (settings.menuElementsToHide.includes('#editBookmarkPanel_showForNewBookmarks')) { let el = panel.querySelector('#editBookmarkPanel_showForNewBookmarks'); if (el) el.style.display = (el.checked) ? 'none' : ''; } // if (!settings.menuElementsToHide.includes('#editBMPanel_tagsRow') && !tagsSelectorCollapsed) // gEditItemOverlay.toggleTagsSelector(); }); panel.addEventListener('popupshown', onPopupShown); panel.addEventListener('popuphidden', onPopupHidden); function onPopupShown() { folderTree.focus(); if (StarUI._isNewBookmark) gEditItemOverlay._folderTree.selectItems([defaultFolderGuid]); lastSelectedFolderGuid = gEditItemOverlay.selectedFolderGuid; // Reset var shouldCloseOnClick = true; if (settings.useOneClickMode) { folderTree.addEventListener('select', onFolderTreeSelect); folderTreeRow.addEventListener('click', onFolderTreeClick); folderTreeRow.addEventListener('keydown', onFolderTreeClick, true); // NB: keydown listener must be attached to folderTreeRow, not folderTree, // to be able to prevent default folderTree action (expand/collapse folder) when pressing Enter } }; function onFolderTreeSelect(e) { // Stop undesirable calls before the panel is shown if (!panel.hasAttribute('panelopen')) return; if (gEditItemOverlay.selectedFolderGuid == lastSelectedFolderGuid) // 'Select' event fired, but folder not changed? Seems user expanded/collapsed some folder, so panel shouldn’t be closed shouldCloseOnClick = false; else lastSelectedFolderGuid = gEditItemOverlay.selectedFolderGuid; }; function onFolderTreeClick(e) { // Cancel one-click mode when Alt pressed, e.g. user can rename folder with Alt+DoubleClick if (e.altKey) return; // Rename folder with F2 if (e.code == 'F2') { let g = gEditItemOverlay; g._folderTree.startEditing(g._folderTree.view.selection.currentIndex, g._folderTree.columns.getFirstColumn()); } // Close menu with Enter or left click else if (e.code == 'Enter' || e.button == 0) { // Prevent folder from expand/collapse when pressing Enter e.stopPropagation(); if (shouldCloseOnClick || e.code == 'Enter') { setTimeout(function() { StarUI.panel.hidePopup(); }, 100); } shouldCloseOnClick = true; } }; function onPopupHidden() { // Hide bookmarks toolbar if empty if (settings.hideBookmarksToolbarIfEmpty) { setTimeout(function() { let toolbarFolder = PlacesUtils.getFolderContents(PlacesUtils.bookmarks.toolbarGuid).root; let toolbarNode = document.getElementById('PersonalToolbar'); if (toolbarNode && !toolbarNode.collapsed && !toolbarFolder.hasChildren) BookmarkingUI.toggleBookmarksToolbar(); }, 500); } // Save panel height let height = folderTreeRow.style.height; if (height && height != '0' && height != '0px' && height != folderTreeHeight) { storage.setCharPref('folderTreeHeight', height); folderTreeHeight = height; } // Save default folder guid if (settings.useLastSelectedFolderAsDefault && gEditItemOverlay.selectedFolderGuid && gEditItemOverlay.selectedFolderGuid != defaultFolderGuid) { storage.setCharPref('defaultFolderGuid', gEditItemOverlay.selectedFolderGuid); defaultFolderGuid = gEditItemOverlay.selectedFolderGuid; } // Save tags selector state /* let collapsed = panel.querySelector('#editBMPanel_tagsSelectorRow').collapsed; if (collapsed != tagsSelectorCollapsed) { storage.setBoolPref('tagsSelectorCollapsed', collapsed); tagsSelectorCollapsed = collapsed; } */ }; // Visible resizer above OK/Cancel buttons /* function makeResizer() { let el = document.createXULElement('resizer'); el.setAttribute('dir', 'bottom'); el.setAttribute('element', 'editBMPanel_folderTreeRow'); el.style.MozAppearance = 'none'; el.style.backgroundSize = 'auto'; el.style.backgroundPosition = 'bottom right'; el.style.backgroundImage = 'url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAABmJLR0QAUABQAFDGhwvwAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4gcVDwIBDNJ+vQAAADdJREFUKM9jYCARMDIwMDD8//+fOMWMjAxMhBQdOHDg/4EDB+AmMg2Mk5CdMYBOwuUM+juJZAAAHy0zBdN01HIAAAAASUVORK5CYII=)'; el.style.marginTop = '-16px'; // panel.querySelector('#editBookmarkPanelRows').style.paddingBottom = "0px"; panel.querySelector('#editBookmarkPanelContent').appendChild(el); }; */ // Invisible resizer at the bottom edge of panel function makeResizer() { let el = document.createXULElement('resizer'); el.setAttribute('dir', 'bottom'); el.setAttribute('element', 'editBMPanel_folderTreeRow'); el.style.MozAppearance = 'none'; el.style.background = 'none'; el.style.height = '6px'; el.style.margin = '-2px 0 -4px'; panel.appendChild(el); }; function makeFolderContextMenu() { let menu = document.createXULElement('menupopup'); menu.id = 'editBMPanel_folderTree_contextMenu'; let items = ['rename', 'addNewFolder']; if (!settings.useLastSelectedFolderAsDefault) items.unshift('setAsDefault'); for (let item of items) { let z = document.createXULElement('menuitem'); z.setAttribute('label', lang(item)); z.setAttribute('action', item); menu.appendChild(z); } document.querySelector('#mainPopupSet').appendChild(menu); // folderTree.contextMenu = 'editBMPanel_folderTree_contextMenu'; if (!settings.useLastSelectedFolderAsDefault) { menu.firstChild.setAttribute('type', 'checkbox'); menu.addEventListener('popupshowing', function(e) { menu.firstChild.setAttribute('checked', (defaultFolderGuid == gEditItemOverlay.selectedFolderGuid)); }); } menu.addEventListener('command', onFolderContextMenuCommand); }; function onFolderContextMenuCommand(e) { let g = gEditItemOverlay; switch (e.target.getAttribute('action')) { case 'setAsDefault': storage.setCharPref('defaultFolderGuid', g.selectedFolderGuid); defaultFolderGuid = g.selectedFolderGuid; break; case 'rename': g._folderTree.startEditing(g._folderTree.view.selection.currentIndex, g._folderTree.columns.getFirstColumn()); break; case 'addNewFolder': g.newFolder(); } }; function lang(string) { let l = strings[navigator.language]; return (l && l[string]) ? l[string] : strings['en'][string] ? strings['en'][string] : string; } function toggleBookmark() { if (BookmarkingUI.status == BookmarkingUI.STATUS_STARRED) { let uri = gBrowser.currentURI.spec; try { uri = decodeURIComponent(uri); } catch {} PlacesUtils.bookmarks.search(uri).then((foundItems) => { if (foundItems.length) PlacesUtils.bookmarks.remove(foundItems); }); } else PlacesUtils.bookmarks.insert({url: gBrowser.currentURI.spec, title: gBrowser.contentTitle, parentGuid: defaultFolderGuid}); }
(function() { // FF65- // let tabbox = document.getElementById('tabbrowser-tabs').arrowScrollbox._scrollbox; // FF66+ let tabbox = document.getElementById('tabbrowser-tabs').arrowScrollbox.scrollbox; tabbox.addEventListener('wheel', wheelHandler); function wheelHandler(event) { // Preserve original behaviour if meta (Windows) key is held if (event.metaKey) return; if (event.deltaY < 0) { gBrowser.tabContainer.advanceSelectedTab(-1, false); } else { gBrowser.tabContainer.advanceSelectedTab(1, false); } event.stopPropagation(); event.preventDefault(); } })();
window.inputLanguageAssistant = { init: function() { let urlbar = document.getElementById('urlbar-input'); // Since FF 68-70 (I don't know exact version) if (!urlbar) urlbar = document.getElementById('urlbar'); if (!urlbar) return; try { Components.utils.import("resource://gre/modules/ctypes.jsm"); this.lib = ctypes.open("user32.dll"); this.ActivateKeyboardLayout = this.lib.declare("ActivateKeyboardLayout", ctypes.winapi_abi, ctypes.voidptr_t, // return HKL ctypes.voidptr_t, // HKL hkl ctypes.uint32_t); // UINT Flags this.KLF_SETFORPROCESS = 0x00000100; this.HKL_ENGLISH = ctypes.voidptr_t(0x00000409); // United States (US) } catch (err) { // console.log(err); } urlbar.addEventListener('focus', function(e) { window.inputLanguageAssistant.focus(); }); urlbar.addEventListener('blur', function(e) { window.inputLanguageAssistant.blur(); }); }, focus: function() { try { if (this.ActivateKeyboardLayout) { this.hkl = this.ActivateKeyboardLayout(this.HKL_ENGLISH, this.KLF_SETFORPROCESS); } } catch (err) { // console.log(err); } }, blur: function() { try { if (this.ActivateKeyboardLayout && this.hkl) { this.ActivateKeyboardLayout(this.hkl, this.KLF_SETFORPROCESS); } } catch (err) { // console.log(err); } } }; window.inputLanguageAssistant.init();
Отсутствует
Yeesha, спасибо!
А у вас подключено через userChrome.js или rebuild_userChrome.uc.js?
У меня на 68 есть загрузчик через userChrome.js, через него не работает. А на основных браузерах параллельно с UCF стоит загрузчик от xiaoxiaoflood, закладки и язык подхватились и работают, проверял на 68, 78 и 102. Жаль, закладки конфликтуют с кастомной кнопкой, изменяющей размер окошка, не знаю, кого из них оставить, и ваш хорош, и тот. А за Input Language Assistant особо спасибо, очень полезная фича. Хотя раньше у меня её не было, были две кнопки в доквантумном браузере, из которых я сделал одну - указание цветом в поле, какой язык сейчас включён, и индикатор на тулбаре. У вас случайно какой-нибудь из них нет под квантум?
Код для вкладок не проверял, мне такая фича неудобна.
Отсутствует
Yeesha
Через rebuild_userChrome.uc.js это у Ксяо, нужен этот файл и папка utils в chrome (я третий метод использую), и код в config.js. Скрипты просто кладутся рядом и сами подхватываются.
Отсутствует
Попробовал поставить "новый" UCF. До кнопок пока не добрался, попробовал стили. Мои все заработали, кроме одного. В нём можно было регулировать ширину боковой и высоту доп.панелей. С "новым" UCF не работает или я его не туда воткнул.
/* Сжать доп.панели https://forum.mozilla-russia.org/viewtopic.php?pid=775867#p775867 */ #add-additional-top-bar, #add-additional-bottom-bar { --toolbarbutton-outer-padding: 2px !important; /* было 0px */ --toolbarbutton-inner-padding: 2px !important; min-height: 20px !important; } :-moz-any(#add-additional-top-bar,#add-additional-bottom-bar) .toolbarbutton-badge { margin-inline-end: calc(-1 * (var(--toolbarbutton-outer-padding) + var(--toolbarbutton-inner-padding))) !important; } #add-additional-bottom-closebutton { padding: 0 !important; } #add-additional-vertical-bar { --toolbarbutton-outer-padding: 2px !important; /* было 0px */ --toolbarbutton-inner-padding: 3px !important; min-width: 20px !important; } #add-additional-vertical-bar .toolbarbutton-badge { margin-inline-end: calc(-1 * (var(--toolbarbutton-outer-padding) + var(--toolbarbutton-inner-padding))) !important; }
Отсутствует
xrun1
С нижней я сделал так:
Отсутствует
Опять в Firefox 103+ перестал работать скрипт от Виталия - нужно скрывать панель вкладок, если открыта одна вкладка.
Dumby - может починишь код menubarVisibilityChance.js или переделаешь, чтобы работало автоскрытие панели вкладок на FF90+ ?
var menubarvisibilitychance = { buttons: null, buttonsfullscreen: null, init(that) { var menubar = this.menubar = document.querySelector("#toolbar-menubar"); if (!menubar) return; this.autohidechange = new MutationObserver(() => { this.settoolbarvisibility(); }); this.autohidechange.observe(menubar, { attributeFilter: ["autohide", "inactive"], attributes: true, }); this.sizemodechange = new MutationObserver(() => { this.setbuttonboxwidth(); }); this.sizemodechange.observe(document.documentElement, { attributeFilter: ["sizemode"], attributes: true, }); that.unloadlisteners?.push("menubarvisibilitychance"); this.settoolbarvisibility(); }, settoolbarvisibility() { var docElm = document.documentElement; if (this.menubar.getAttribute("autohide") == "true" && this.menubar.getAttribute("inactive") == "true") { docElm.setAttribute("v_menubar_autohide", true); this.setbuttonboxwidth(); } else docElm.setAttribute("v_menubar_autohide", false); }, width(outerRect, innerRect) { if (!window.RTL_UI) this.width = (outerRect, innerRect) => outerRect.right - innerRect.left; else this.width = (outerRect, innerRect) => innerRect.right - outerRect.left; return this.width(outerRect, innerRect); }, setbuttonboxwidth() { var buttons, docElm = document.documentElement; if (docElm.getAttribute("sizemode") != "fullscreen") buttons = (this.buttons || (this.buttons = this.menubar.querySelector(".titlebar-buttonbox-container"))); else buttons = (this.buttonsfullscreen || (this.buttonsfullscreen = document.querySelector("#window-controls"))); var innerRect = buttons.getBoundingClientRect(); if (innerRect.width < 1) { docElm.style.setProperty("--v-titlebar-buttonbox-container-width", "0px"); return; } var outerRect = docElm.getBoundingClientRect(); docElm.style.setProperty("--v-titlebar-buttonbox-container-width", `${this.width(outerRect, innerRect)}px`); }, destructor() { this.autohidechange.disconnect(); this.sizemodechange.disconnect(); this.autohidechange = null; this.sizemodechange = null; } }; menubarvisibilitychance.init(this);
Отсутствует
Так нормально?
В комментарий прокралась опечатка: «слилей».
может починишь код menubarVisibilityChance.js или переделаешь, чтобы работало автоскрытие панели вкладок
Не понял просьбу. menubar это не панель вкладок.
Как ширину/высоту панелей отрегулировать в "новом" UCF?
kazarin верно намекает, что в "новом" UCF
id тулбаров префиксятся с ucf- а не с add-
Отсутствует
именно этот этот код автоскрывает панель вкладок
Нет, он этого не делает. Он вообще ничего не автоскрывает.
Код следит за атрибутами "autohide" и "inactive" toolbar-menubar'а,
и за атрибутом "sizemode" корневого элемента документа (<html>).
И, при изменении этих атрибутов, устанавливает для <html>
значение атрибута "v_menubar_autohide" и в его атрибуте "style"
устанавливает часть именуемую "--v-titlebar-buttonbox-container-width".
Вот и всё. Если у тебя какой-то стиль повешен на эти атрибуты, то где стиль?
Отсутствует
при изменении этих атрибутов, устанавливает для <html>
значение атрибута "v_menubar_autohide" и в его атрибуте "style"
устанавливает часть именуемую "--v-titlebar-buttonbox-container-width".Вот и всё. Если у тебя какой-то стиль повешен на эти атрибуты, то где стиль?
Так как этот стиль связан с кодом, привожу стиль от Виталия здесь:
@-moz-document url("chrome://browser/content/browser.xhtml") { :root { /* вкладки снизу: стиль плюс скрипты https://forum.mozilla-russia.org/viewtopic.php?pid=784310#p784310 */ --v-toolbar-menubar-height: 28px; /* высота панели меню, только чётные числа не меньше 20px для macos = 0 если изменяете эту переменную то и в --v-toolbar-menubar-height-content - атрибут height= нужно установить ровно в два раза больше*/ --v-toolbar-menubar-height-content: url("data:image/svg+xml,<svg width='28' height='56' xmlns='http://www.w3.org/2000/svg'><rect x='0' y='0' width='100%' height='100%' style='fill:transparent;'/></svg>"); /* height='2 * --v-toolbar-menubar-height' */ --tab-border-radius: 4px !important; /* **************************************** */ --proton-tab-block-margin: 0px !important; --tab-block-margin: 0px !important; --tabs-navbar-shadow-size: 0px !important; } #navigator-toolbox { border-block: none !important; box-shadow: none !important; padding-top: 0 !important; -moz-appearance: none !important; appearance: none !important; } :root:not([inFullscreen])[tabsintitlebar] #navigator-toolbox { position: relative !important; } #navigator-toolbox > toolbar { -moz-box-ordinal-group: 10 !important; } #navigator-toolbox > #nav-bar { margin-block: 0 !important; box-shadow: none !important; -moz-box-ordinal-group: 0 !important; padding-inline: 0 !important; } :root:not([inFullscreen]) #navigator-toolbox > #nav-bar { margin-top: var(--v-toolbar-menubar-height) !important; } #navigator-toolbox > #PersonalToolbar { -moz-box-ordinal-group: 1 !important; } :root:not([inFullscreen])[tabsintitlebar] > *|body::before { content: var(--v-toolbar-menubar-height-content) !important; display: -moz-box !important; -moz-box-flex: 0 !important; -moz-box-orient: vertical !important; -moz-box-pack: start !important; -moz-box-align: stretch !important; -moz-box-ordinal-group: 0 !important; margin-bottom: calc(-2 * var(--v-toolbar-menubar-height)) !important; box-sizing: content-box !important; } :root:not([inFullscreen])[tabsintitlebar][sizemode="normal"] > *|body::before { -moz-appearance: -moz-window-titlebar !important; appearance: -moz-window-titlebar !important; } :root:not([inFullscreen])[tabsintitlebar][sizemode="maximized"] > *|body::before { -moz-appearance: -moz-window-titlebar-maximized !important; appearance: -moz-window-titlebar-maximized !important; } :root:not([inFullscreen])[tabsintitlebar]:-moz-lwtheme > *|body::before { visibility: hidden !important; } @media not all and (-moz-os-version: windows-win7) { @media not all and (-moz-os-version: windows-win8) { :root:-moz-lwtheme { background-color: var(--lwt-accent-color, -moz-Dialog) !important; } :root:-moz-window-inactive:-moz-lwtheme { background-color: var(--lwt-accent-color-inactive, var(--lwt-accent-color, -moz-Dialog)) !important; } } } #navigator-toolbox > #titlebar { -moz-appearance: none !important; appearance: none !important; -moz-box-ordinal-group: 100 !important; position: static !important; } #toolbar-menubar { padding-block: 0 !important; margin-block: 0 !important; border: none !important; background: none !important; --toolbarbutton-outer-padding: 0px !important; --toolbarbutton-inner-padding: calc((var(--v-toolbar-menubar-height) - 16px) / 2) !important; -moz-appearance: none !important; appearance: none !important; } :root:not(:is([inFullscreen],[chromehidden~="menubar"])) #toolbar-menubar { position: absolute !important; top: 0 !important; left: 0 !important; right: 0 !important; display: flex !important; flex-wrap: nowrap !important; flex-direction: row !important; align-items: stretch !important; justify-content: flex-start !important; min-height: 0 !important; height: var(--v-toolbar-menubar-height) !important; overflow: hidden !important; } #toolbar-menubar .toolbarbutton-badge { margin-inline-end: calc(-1 * (var(--toolbarbutton-outer-padding) + var(--toolbarbutton-inner-padding))) !important; } :root:not([inFullscreen]) #toolbar-menubar > :is(toolbaritem,toolbarbutton) { align-self: center !important; } :root:not([inFullscreen]) #toolbar-menubar > :is(#menubar-items,#wrapper-menubar-items,.titlebar-buttonbox-container) { align-self: flex-start !important; } :root:not([inFullscreen]) #toolbar-menubar > * { padding-block: 0 !important; margin-block: 0 !important; } :root:not([inFullscreen]) #toolbar-menubar[autohide="true"][inactive="true"]:not([customizing="true"]) > *:not(.titlebar-buttonbox-container) { opacity: 0 !important; pointer-events: none !important; } :root[inFullscreen] #toolbar-menubar { visibility: collapse !important; } :root:not([inFullscreen]) #toolbar-menubar > :is(*[style*="-moz-box-ordinal-group: 1000;"],.titlebar-buttonbox-container) { order: 1000 !important; } :root:not([inFullscreen]) #toolbar-menubar > :is(toolbarspring,spacer,[id^="wrapper-customizableui-special-spring"]) { flex-grow: 1 !important; } :root:not([inFullscreen]) #toolbar-menubar > :is(#search-container,#wrapper-search-container) { flex-grow: 100 !important; } #toolbar-menubar #search-container { padding-block: 0 !important; } #toolbar-menubar #searchbar { min-height: calc(var(--v-toolbar-menubar-height) - 2px) !important; } #TabsToolbar { -moz-appearance: none !important; appearance: none !important; padding-block: 0 !important; margin-block: 0 !important; box-shadow: 0 -1px 0 var(--tabs-border-color, rgba(0,0,0,.3)) inset !important; position: static !important; background-color: var(--toolbar-bgcolor, -moz-dialog) !important; background-image: var(--toolbar-bgimage, none) !important; color: var(--toolbar-color, -moz-dialogtext) !important; --lwt-toolbarbutton-icon-fill: inherit !important; } #tabbrowser-tabs { padding-bottom: 0 !important; margin-bottom: 0 !important; } .tabbrowser-tab { background-color: transparent !important; border-top: none !important; } .tab-background { border-end-end-radius: 0 !important; border-end-start-radius: 0 !important; margin-block-start: 1px !important; } :root:not(:-moz-lwtheme) .tab-background { --toolbar-bgimage: none; --toolbar-non-lwt-bgimage: none; } #TabsToolbar > .toolbar-items { padding-top: 0 !important; margin-top: 0 !important; } .tabbrowser-tab[usercontextid] .tab-context-line { margin-block: 0 !important; margin-inline: calc(var(--tab-border-radius) / 2) !important; } #TabsToolbar .titlebar-buttonbox-container, #navigator-toolbox::after, #TabsToolbar::after, #TabsToolbar .titlebar-spacer:is([type="pre-tabs"],[type="post-tabs"]) { display: none !important; } #scrollbutton-up, #scrollbutton-down { border-block: none !important; border-end-end-radius: 0 !important; border-end-start-radius: 0 !important; } :root[inFullscreen] #window-controls { position: absolute !important; display: flex !important; align-items: start !important; top: 0 !important; inset-inline-start: auto !important; inset-inline-end: 0 !important; margin: 0 !important; } :root[inFullscreen] #navigator-toolbox > #nav-bar { margin-inline-end: var(--v-titlebar-buttonbox-container-width, 108px) !important; } :root:not([inFullscreen])[v_menubar_autohide="true"] #navigator-toolbox > #nav-bar { margin-top: 0 !important; margin-inline-end: var(--v-titlebar-buttonbox-container-width, 108px) !important; } :root:not([inFullscreen])[v_menubar_autohide="true"] #toolbar-menubar { pointer-events: none !important; } :root:not([inFullscreen])[v_menubar_autohide="true"] #toolbar-menubar .titlebar-buttonbox-container { pointer-events: auto !important; } @media (-moz-os-version: windows-win7), (-moz-os-version: windows-win8) { :root[sizemode="normal"] #TabsToolbar { border-inline: 1px solid hsla(240,5%,5%,0.3) !important; background-clip: padding-box !important; } @media (-moz-windows-classic: 0) { :root:not([inFullscreen])[v_menubar_autohide="true"][tabsintitlebar][sizemode="normal"] #navigator-toolbox > #nav-bar { margin-top: 1px !important; } :root:not([inFullscreen])[sizemode="normal"] #toolbar-menubar:not([autohide="true"]) > #menubar-items { margin-top: 1px !important; } } } @media (-moz-windows-classic) { :root:not([inFullscreen])[tabsintitlebar][sizemode="normal"] #navigator-toolbox::before { content: "" !important; display: -moz-box !important; height: 4px !important; -moz-box-ordinal-group: 0 !important; visibility: visible !important; } :root:not([inFullscreen])[tabsintitlebar][sizemode="normal"]:-moz-lwtheme #navigator-toolbox::before { background-image: linear-gradient(to bottom, ThreeDLightShadow 0, ThreeDLightShadow 1px, ThreeDHighlight 1px, ThreeDHighlight 2px, ActiveBorder 2px, ActiveBorder 4px, transparent 4px) !important; } :root:not([inFullscreen])[tabsintitlebar][sizemode="normal"] #toolbar-menubar { margin-top: 4px !important; } } :root[data-l10n-id="browser-main-window-mac"] { --v-toolbar-menubar-height: 0px !important; --v-toolbar-menubar-height-content: none !important; } :root:not([inFullscreen])[tabsintitlebar][data-l10n-id="browser-main-window-mac"] #nav-bar { margin-inline-start: calc(var(--toolbarbutton-outer-padding, 2px) + var(--v-titlebar-button-horizont-padding, 6px) * 6 + var(--v-titlebar-button-image-width, 12px) * 3) !important; } :root:not([inFullscreen])[tabsintitlebar][data-l10n-id="browser-main-window-mac"] #TabsToolbar .titlebar-buttonbox-container { visibility: visible !important; display: -moz-box !important; position: absolute !important; display: flex !important; top: 0 !important; } }
Отсутствует
Dumby - Я не уверен, но автоскрытие панели вкладок от Виталия есть в профиле profile_ucf_dobrov, но перестало работать в новых FF.
:root:not([inFullscreen])[v_menubar_autohide="true"] #navigator-toolbox > #nav-bar { margin-top: 0 !important; margin-inline-end: var(--v-titlebar-buttonbox-container-width, 108px) !important; }
Отредактировано Dobrov (17-09-2022 11:21:53)
Отсутствует