Полезная информация

Юристы зарабатывают огромные деньги и славу, оперируя хорошим знанием законов. Правила форума — простой путь к успешному общению.

CSS-стили » Настройка внешнего вида Firefox в userChrome.css » Вчера 22:20:41

egorsemenov06 пишет

в скрипте Save

Там же не одна иконка, в меню ещё много...
Для панели можно так заменить в Save.js self.image = ...

скрытый текст

Выделить код

Код:

self.image = ((img = `${_id.toLowerCase()}-img`) => {
    Services.io.getProtocolHandler("resource")
    .QueryInterface(Ci.nsIResProtocolHandler)
    .setSubstitution(img, Services.io.newURI("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>"));
    return `resource://${img}`;
})();

CSS-стили » Настройка внешнего вида Firefox в userChrome.css » Вчера 20:36:53

egorsemenov06 пишет

она какаято тусклая

А где используете? Так просто она не заработает через протокол data: нужно регистрировать resource:// как в кнопках в теме UCF
либо включить настройку svg.context-properties.content.enabled = true
Но лучше просто положить файл svg где нибудь в директории например user_chrome_files/custom_styles/svg
и подключить в css

CSS-стили » Настройка внешнего вида Firefox в userChrome.css » 25-04-2024 21:16:37

egorsemenov06 пишет

Вот эта пойдет?

Норм
[spoiler][code]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:context-fill rgb(142, 142, 152);fill-opacity:context-fill-opacity;' d='M1 0 0 1l2.2 3.081a1 1 0 0 0 .815.419h.07a1 1 0 0 1 .708.293l2.675 2.675-2.617 2.654A3.003 3.003 0 0 0 0 13a3 3 0 1 0 5.878-.851l2.654-2.617.968.968-.305.914a1 1 0 0 0 .242 1.023l3.356 3.356a1 1 0 0 0 1.414 0l1.586-1.586a1 1 0 0 0 0-1.414l-3.356-3.356a1 1 0 0 0-1.023-.242L10.5 9.5l-.96-.96 2.68-2.643A3.005 3.005 0 0 0 16 3q0-.405-.102-.777l-2.14 2.141L12 4l-.364-1.757L13.777.102a3 3 0 0 0-3.675 3.68L7.462 6.46 4.793 3.793a1 1 0 0 1-.293-.707v-.071a1 1 0 0 0-.419-.814zm9.646 10.646a.5.5 0 0 1 .708 0l3 3a.5.5 0 0 1-.708.708l-3-3a.5.5 0 0 1 0-.708M3 11l.471.242.529.026.287.445.445.287.026.529L5 13l-.242.471-.026.529-.445.287-.287.445-.529.026L3 15l-.471-.242L2 14.732l-.287-.445L1.268 14l-.026-.529L1 13l.242-.471.026-.529.44

CSS-стили » Настройка внешнего вида Firefox в userChrome.css » 25-04-2024 20:26:04

egorsemenov06 пишет

сделайте пожалуйста вот этот svg-фаил для кнопки ucf-open-about-config

Этот файл плохо подходит, много мелких деталей совсем неразличимы в разрешении 16x16 px, надо что то вроде этого

скрытый текст

Выделить код

Код:

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='M15 3c1.4-1.4-.6-3.4-2-2L7 7s-3.6-1.4-5.5.5S1 12 1 12l2-2c2-2 5 1 3 3l-2 2s2.6 1.4 4.5-.5S9 9 9 9Z'/></svg>


Используйте это или найдите другой svg, желательно в разрешении 16x16 px, а не 1800...

Скрипты » UCF - ваши кнопки, темы, дополнения, скрипты… » 25-04-2024 14:32:21

_zt пишет

А с about:cfg

Надо было выложить сам about:cfg полностью, а то ссылки недействительны кроме https://forum.mozilla-russia.org/viewto … 48#p806748
а там нет папки locale.
Вариант как и было с окном about:cfg
[spoiler][code](async (
    id = "ucf-open-old-about-config",
    label = "about:config",
    tooltiptext = "ЛКМ: Открыть about:config\nCtrl+ЛКМ: Искать выделенное / буфер в about:config\nПКМ: Открыть окно about:cfg\nCtrl+ПКМ: Искать выделенное / буфер в окне about:cfg",
    img = "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:none;stroke:context-fill rgb(142, 142, 152);stroke-opacity:context-fill-opacity;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round;'><path d='m 8.66,15.4 h -1.2 c -0.69,0 -1.3,-0.5 -1.5,-1.2 L 5.58,13 C 5.32,12.9 5.07,12.7 4.82,12.5 L 3.41,12.9 C 2.76,13 2.04,12.8 1.69,12.1 L 1.09,11.2 C 0.748,10.5 0.838,9.75 1.31,9.33 l 1,-1

Скрипты » UCF - ваши кнопки, темы, дополнения, скрипты… » 24-04-2024 16:46:34

egorsemenov06 пишет

Можно еще пару кнопок обновить

[spoiler][code]//about_config..........................................
(async (
    id = "ucf-open-about-config",
    label = "about:config",
    tooltiptext = "ЛКМ: Открыть about:config\nСКМ: Искать выделенное в about:config\nПКМ: Открыть about:about",
    img = "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:none;stroke:context-fill rgb(142, 142, 152);stroke-opacity:context-fill-opacity;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round;'><path d='m 8.66,15.4 h -1.2 c -0.69,0 -1.3,-0.5 -1.5,-1.2 L 5.58,13 C 5.32,12.9 5.07,12.7 4.82,12.5 L 3.41,12.9 C 2.76,13 2.04,12.8 1.69,12.1 L 1.09,11.2 C 0.748,10.5 0.838,9.75 1.31,9.33 l 1,-1 V 7.52 L 1.32,6.55 C 0.842,6.06 0.748,5.36 1.1,4.78 L 1.7,3.8 C 2.04,3.22 2.75,2.93 3.4,3.08 L 4.84,3.4 C 5.1,3.24 5.34,3.1 5.58,2.99 L 5.96,1.72 C 6.16,1.08 6.77,0.631 7.46,0.629 h 1.2 C 9.35,0.629 9.94,1.

Скрипты » UCF - ваши кнопки, темы, дополнения, скрипты… » 23-04-2024 19:18:19

egorsemenov06
[spoiler][code]//Ссылки кликабельны
(async (
    id = "ucf-text-to-link",
    label = "Текст URL в кликабельные ссылки",
    tooltiptext = "Превратить текст URL в кликабельные ссылки",
    img = "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='m5.6 10.4 4.8-4.8m-8.9 4.9c-2.6 2.6 1.4 6.6 4 4l1-1c2.6-2.6-1.4-6.6-4-4zm9-9c2.6-2.6 6.6 1.4 4 4l-1 1c-2.6 2.6-6.6-1.4-4-4z'/></svg>",

    texttolink = {
        _registerActor() {
            if (this.registerActor) return;
            ChromeUtils.registerWindowActor("UcfTextToLinkActor", {
                child: {
                    esModuleURI: "chrome://user_chrome_files/content/custom_scripts/UcfTextToLinkActorChild.mjs"
                },
                allFrames: true,
                mess

Скрипты » UCF - ваши кнопки, темы, дополнения, скрипты… » 22-04-2024 15:43:55

b0ttle пишет

Можно их как-то вытащить в отдельные скрипты в ucf?

Ну хорошо, только сначала нужно обновить UCF, незначительное обновление добавлен модуль ExtensionParent, может пригодится и для других скриптов.
Upd: + файл настроек CustomStylesScripts.mjs вынесен в корень user_chrome_files
[spoiler][code](async (
    id = "ucf-aom-button",
    label = "Дополнения",
    tooltiptext = "ЛКМ: Меню дополнений\nСКМ: Отладка дополнений\nПКМ: Открыть менеджер дополнений",
    img = "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(39, 174, 129);stroke-opacity:context-fill-opacity;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round;' d='M12.9 15.3H3.2c-.88 0-1.6-.6-1.6-1.4v-2.7c0-.4.33-.6.74-.6h1.72c.7 0 1.25-.64 1.25-1.2 0-.64-.55-1.15-1.25-1.15H2.34c

Скрипты » UCF - ваши кнопки, темы, дополнения, скрипты… » 21-04-2024 17:06:17

Dobrov пишет

Я так переделал, и всё работает

Нет я же написал это не пойдет, открой второе окно и понажимай там пункт, перезагружаться будет в первом окне

Скрипты » UCF - ваши кнопки, темы, дополнения, скрипты… » 21-04-2024 13:43:05

Dobrov пишет

Кнопка не видит функции

Ну с cmd.toString() это не представляется возможным,
попробуй может заменить
item.setAttribute("oncommand", cmd.toString().replace(
                /cmd\(.*?\){/, "{var trg = event.target || event;"));
на
item.addEventListener("command", cmd);
Upd: нет так не пойдет в другом окне работать не будет,
зачем вообще в оконном скрипте делать CustomizableUI.createWidget ...
Вот если немного переделать для custom_script.js
[spoiler][code](async id => { // UserMenu

    var BrowserReloadEx = (win, skip) =>{ // ошибка –> Uncaught ReferenceError is not defined
        if(parseInt(Services.appinfo.version) < 126)
            skip ? win.BrowserReloadSkipCache() : win.BrowserReload();
        else
            skip ? win.BrowserCommands.reloadSkipCache() : win.BrowserCommands.reload();
    };
    var G = {
        v: "permissions.default.image",
        Pref(key,set){key = [key];
            var t = Services.prefs.getPrefType(key[0]), m = {b:"Bool",n:"I

Скрипты » UCF - ваши кнопки, темы, дополнения, скрипты… » 20-04-2024 14:26:57

_zt пишет

я выше писал об этом

Видел но у меня [nightly][linux][windows] не падает, скорее всего баг [nightly],
я так понял у вас не работает с параметром centerscreen
попробуйте заменить
let features = ...;
на
let features = "chrome,dialog=no,resizable,centerscreen";
а потом так например
let features = "chrome,dialog=no,resizable,screenX=10,screenY=10";


И удалить xulstore.json

Скрипты » UCF - ваши кнопки, темы, дополнения, скрипты… » 19-04-2024 13:54:32

_zt пишет

Vitaliy V.
Можете этот скрипт для [nightly] переделать, не работает.

Это тоже с BrowserCommands связано, добавил совместимость с [nightly]

Скрипты » UCF - ваши кнопки, темы, дополнения, скрипты… » 17-04-2024 12:06:37

_zt пишет

Я что то пропустил, что за настройка?

Наверняка знаете давно сделали toolkit.legacyUserProfileCustomizations.stylesheets не помню с какой версии

Скрипты » UCF - ваши кнопки, темы, дополнения, скрипты… » 17-04-2024 01:51:02

Dobrov
ES модули и background скрипты загруженные в песочницу не одно и тоже, в песочнице globalThis не равно Cu.getGlobalForObject(Cu)
а UcfPrefs.customSandbox дает ссылку именно на песочницу, надеюсь теперь понятно

Скрипты » UCF - ваши кнопки, темы, дополнения, скрипты… » 17-04-2024 00:34:23

_zt пишет

самое логичное место для одиночного файла пользовательских настроек (CustomStylesScripts.mjs) это корень user_chrome_files

Да возможно так и сделаю это уже мелочи, в принципе и сами можете в двух местах пути подправить в user_chrome.js и StylesScriptsChild.mjs

_zt пишет

сделать автозагрузку скриптов

Нет этого делать не буду, это может задерживать запуск [firefox] не случайно же даже для userChrome.css userContent.css сделали настройку чтобы не искать файлы в директории

_zt пишет

Или не автозагрузку, а кнопку/окно с меню лежащих в папках скриптов. Закинул в папку скрипт и включил галку в браузере

Я не любитель gui там где это не к чему, не потому что это сложно сделать, хотя и это тоже это вам не userChromeJS (или как там называется) где одинаковые оконные скрипты по одному событию загружаются и все. Так что кому нужны gui, автозакрузки ищите замену если найдете

Скрипты » UCF - ваши кнопки, темы, дополнения, скрипты… » 16-04-2024 14:47:52

Dumby пишет

идея была в том, чтобы вырезать весь интерналс в отдельную папку.
...
А рядом с этой пользовательской папкой user_chrome_files
другая — (условно) user_chrome_files_internal

Т.е. в папке chrome две папки UserChromeFiles ? По моему это излишне...
А так почти все что обновляется и так в одной папке user_chrome,
вот только user_chrome.manifest и папка locales двойного назначения, юзер может редактировать или добавлять файлы локали,
а и ещё остались custom_script_win.js custom_script_all_win.js но они тоже редко обновляются или можно вообще убрать их в следующем обновлении UCF ?

Dumby пишет

BrowserOpenTab() и BrowserOpenFileWindow()
которых в 126 уже нет.
BrowserOpenAddonsMgr()

Спс, исправил.

Dobrov пишет

В новой версии можно проще общие объекты подключать к UCF вместо браузера?

Например из поста №1440
эту часть кода
Cu.getGlobalForObject(
        Cc["@mozilla.org/network/protocol/a

Скрипты » UCF - ваши кнопки, темы, дополнения, скрипты… » 14-04-2024 15:04:22

Dumby пишет

если будет обновление UCF, то заодно,
возможно, стоит рассмотреть добавить.

Вот есть scope.UcfPrefs = UcfPrefs;
а рядом, наоборот, что-то типа UcfPrefs.userbox = scope;

Обновил, добавил UcfPrefs.customSandbox, в случае если отключены в настройках фоновые скрипты
вызов UcfPrefs.customSandbox создает песочницу но при этом скрипты если подключены в CustomStylesScripts.mjs не загружаются.


Для всех:
В этом обновлении CustomStylesScriptsChild.mjs удалён, настройки из него перемещены в CustomStylesScripts.mjs см. Сontent Settings
и подчистил этот файл оставил там только то что нужно для редактирования.

CSS-стили » Настройка внешнего вида Firefox в userChrome.css » 30-03-2024 14:22:24

Dobrov пишет

вкладки снизу в несколько строк под #nav-bar -
можно сделать вкладки снизу без скрипта, только стилем, учитывая панель меню?

Не вижу такой возможности нет атрибутов в нужном месте или prefs, разве что панель меню ниже панели навигации, или постоянное автоскрытие панели меню, показать при наведении или Alt, F10.
Для вкладок в один ряд есть возможность сделать стилем.

Скрипты » UCF - ваши кнопки, темы, дополнения, скрипты… » 28-03-2024 17:06:21

Dobrov пишет

что делает этот скрипт?
Подключил, но при поиске из строки адреса ничего не изменилось…

При клике ЛКМ по значкам поисковиков [firefox] по умолчанию входит в режим поиска данного поисковика, тут надо заметить что влияет настройка browser.search.openintab если true то страница поиска открывается в новой вкладке сразу после клика, но например на about:newtab поведение остается прежним. Скрипт делает везде чтобы поиск происходил сразу, а с зажатой клавишей Shift входил в режим поиска, т.е. делает наоборот раньше нужно было зажать Shift для немедленного поиска.

Скрипты » UCF - ваши кнопки, темы, дополнения, скрипты… » 27-03-2024 18:22:39

Dumby пишет

без тренарного оператора

Точно он там лишний это я машинально записал не задумываясь
вот для красоты кому надо можно так записать

скрытый текст

Выделить код

Код:

(async ({UrlbarSearchOneOffs}) => {
    var orig = UrlbarSearchOneOffs.prototype.handleSearchCommand;
    UrlbarSearchOneOffs.prototype.handleSearchCommand = function handleSearchCommand() {
        var e = arguments[0];
        Object.defineProperty(e, "shiftKey", {
            enumerable: true,
            configurable: true,
            writable: false,
            value: !e.shiftKey,
        });
        return orig.apply(this, arguments);
    };
})(ChromeUtils.importESModule("resource:///modules/UrlbarSearchOneOffs.sys.mjs"));

CSS-стили » Настройка внешнего вида Firefox в userChrome.css » 27-03-2024 13:14:57

b0ttle
вот такое придумалось, проверил на win 11 вроде проблем не наблюдается

скрытый текст

Выделить код

Код:

:root {
    --v-titlebar-menubar-margin-inline-start: 50vw;
}
#titlebar {
    margin-bottom: calc(-1 * (2 * var(--tab-block-margin) + var(--tab-min-height))) !important;
    margin-inline-start: var(--v-titlebar-menubar-margin-inline-start) !important;
    z-index: 1 !important;
    #toolbar-menubar {
        position: relative !important;
        margin-inline-start: calc(-1 * var(--v-titlebar-menubar-margin-inline-start)) !important;
    }
}
#nav-bar {
    min-height: calc(2 * var(--tab-block-margin) + var(--tab-min-height)) !important;
    padding-inline-start: var(--v-main-menubar-min-width, 0) !important;
    margin-inline-end: calc(100vw - var(--v-titlebar-menubar-margin-inline-start)) !important;
}

Скрипты » UCF - ваши кнопки, темы, дополнения, скрипты… » 27-03-2024 00:41:57

darex

Dumby пишет

но, возможно,
для решения исходной задачи, стоит искать какой-то совсем другой принцип.

Да тут же достаточно event.shiftKey изменить и все.
В custom_script.js

скрытый текст

Выделить код

Код:

(async () => {
    var {UrlbarSearchOneOffs} = ChromeUtils.importESModule("resource:///modules/UrlbarSearchOneOffs.sys.mjs");
    var orig = UrlbarSearchOneOffs.prototype.handleSearchCommand;
    UrlbarSearchOneOffs.prototype.handleSearchCommand = function() {
        Object.defineProperty(arguments[0], "shiftKey", {
            enumerable: true,
            configurable: true,
            writable: false,
            value: !arguments[0].shiftKey ? true : false,
        });
        return orig.apply(this, arguments);
    }
})();

CSS-стили » Настройка внешнего вида Firefox в userChrome.css » 25-03-2024 18:26:32

6e73epo
чтобы стиль точно соответствовал я бы так записал, это не единственный вариант

скрытый текст

Выделить код

Код:

b > c > d {
    a > & {}
    e > & {}
    f > & {}
    g > & {}
}


Да по логике так выходит но с > не работает
тогда так, c b работает
скрытый текст

Выделить код

Код:

b > c > d {
    a & {}
    e & {}
    f & {}
    g & {}
}


Так тоже работает стиль полностью соответсвует но проще оставить как есть
скрытый текст

Выделить код

Код:

b {
    a > & > c > d {}
    e > & > c > d {}
    f > & > c > d {}
    g > & > c > d {}
}


P.S. А если свойства для a,e,f,g одинаковые то и короче можно записать
скрытый текст

Выделить код

Код:

:is(a,e,f,g) > b > c > d {}


egorsemenov06
[spoiler][code]/* Добавляет отображение названия браузера в строке меню */
#main-menubar::after {
    display: flex;
    content: attr(version);
    height: 1.25em;
    min-height: var(--v-main-menubar-min-height, 1.25em);
    flex-direction: row;
    align-items: center;
    padding-inline

Скрипты » UCF - ваши кнопки, темы, дополнения, скрипты… » 25-03-2024 16:59:33

b0ttle пишет

а со стилями вроде другое, у меня они в all

Ну если не заморачиваться можно и в all, однако я не подключаю много стилей в all documents, для всех это то и значит вообще всех при каждом открытии страницы сайта, фрейма все эти стили будут загружаться а если отсутствует @-moz-document url то и пытаться применится где не надо, потому они и не включены по умолчанию. Короче в all подключаю стили для сайтов и общие, те стили для интерфейса что работают в userChrome.css  в chrome, для служебных страниц в CustomStylesScriptsChild.mjs

CSS-стили » Настройка внешнего вида Firefox в userChrome.css » 25-03-2024 16:20:11

egorsemenov06 пишет

еще и этот стиль обновить

Да вроде нечего обновлять, у меня только оформленно по новому
[spoiler][code]@-moz-document url("chrome://browser/content/browser.xhtml") {
:root {
    --v-main-menubar-min-height: 20px;
    --v-main-menubar-min-width: 15px;
    --v-main-menubar-color: rgb(255, 255, 255);
    --v-main-menubar-background-color: rgb(0, 116, 232);
    --v-main-menubar-background-color-hover: rgb(23, 139, 255);
    --v-main-menubar-background-color-active: rgb(0, 89, 232);
    &[uidensity="touch"] { /* мобильный режим */
        --v-main-menubar-min-height: 26px;
        --v-main-menubar-min-width: 21px;
    }
}

#titlebar {
    /* Классическое меню - показывать при наведении или при нажатии клавиши "Alt" --> */
    & > #toolbar-menubar[autohide="true"] #main-menubar > menu {
        appearance: none !important;
        border: none !important;
        border-radius: 0px !important;
        background: var(--v-main-menubar-background-color) !important;

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]