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

Общайтесь со знакомыми и друзьями в нашей группе в Контакте.

№982611-03-2021 19:25:54

voqabuhe
Участник
 
Группа: Members
Зарегистрирован: 06-12-2011
Сообщений: 3231
UA: Firefox 86.0

Re: Настройка внешнего вида Firefox в userChrome.css

xrun1 пишет

Вот уж чего мне точно не нужно, смайлы... аватарки...

Я же сказал - для примера, чтоб показать, что любую картинку.

xrun1 пишет

Но связка Right Links WE со скриптом direct_images.user.js рулит!

Меня не интересует Right Links и другие дополнения.

Отсутствует

 

№982711-03-2021 19:47:03

Stkvsky
Участник
 
Группа: Members
Зарегистрирован: 26-06-2012
Сообщений: 1700
UA: Firefox 68.0

Re: Настройка внешнего вида Firefox в userChrome.css

Vitaliy V.
Не подскажите, можно ли добавить больше цветов для контейнеров?
Вот ваш стиль красящий вкладки в цвета контейнеров
Я добавляю новые в него но в браузере не добавляются

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

Выделить код

Код:

/*ЦВЕТА КОНТЕЙНЕРОВ*/
@-moz-document url("chrome://browser/content/browser.xhtml"),
    url-prefix("about:preferences"),
    url("chrome://browser/content/preferences/dialogs/containers.xhtml") {
*|*.identity-color-blue {
    --identity-tab-color: #37adff !important;
    --identity-icon-color: #37adff !important;
}

*|*.identity-color-turquoise {
    --identity-tab-color: #00c79a !important;
    --identity-icon-color: #00c79a !important;
}

*|*.identity-color-green {
    --identity-tab-color: #51cd00 !important;
    --identity-icon-color: #51cd00 !important;
}

*|*.identity-color-yellow {
    --identity-tab-color: #ffcb00 !important;
    --identity-icon-color: #ffcb00 !important;
}

*|*.identity-color-orange {
    --identity-tab-color: #ff9f00 !important;
    --identity-icon-color: #ff9f00 !important;
}

*|*.identity-color-red {
    --identity-tab-color: #ff613d !important;
    --identity-icon-color: #ff613d !important;
}

*|*.identity-color-pink {
    --identity-tab-color: #ff4bda !important;
    --identity-icon-color: #ff4bda !important;
}

*|*.identity-color-purple {
    --identity-tab-color: #af51f5 !important;
    --identity-icon-color: #af51f5 !important;
}

*|*.identity-color-toolbar {
    --identity-tab-color: #4949ff !important;
    --identity-icon-color: #4949ff !important;
}

*|*.tabbrowser-tab *|*.tab-stack {
    background-color: var(--identity-tab-color, transparent) !important;
}
}

Отсутствует

 

№982811-03-2021 20:50:01

Vitaliy V.
Участник
 
Группа: Members
Зарегистрирован: 19-09-2014
Сообщений: 2186
UA: Firefox 87.0

Re: Настройка внешнего вида Firefox в userChrome.css

voqabuhe пишет

а как imageszoom отдельным файлом подключить? Пробовал loadscript("ImageZoom.js", this); в custom_script_win.js, не срабатывает.

Теперь можно подключить
Stkvsky
Попробуйте в containers.json изменить цвета нужным контейнерам, например "color":"gray"
и в тот стиль добавить

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

Выделить код

Код:

*|*.identity-color-gray {
    --identity-tab-color: gray !important;
    --identity-icon-color: gray !important;
}

Отсутствует

 

№982911-03-2021 22:17:38

voqabuhe
Участник
 
Группа: Members
Зарегистрирован: 06-12-2011
Сообщений: 3231
UA: Firefox 86.0

Re: Настройка внешнего вида Firefox в userChrome.css

Vitaliy V. пишет

Теперь можно подключить

Спасибо, подключилась.

Отсутствует

 

№983012-03-2021 16:59:26

voqabuhe
Участник
 
Группа: Members
Зарегистрирован: 06-12-2011
Сообщений: 3231
UA: Firefox 86.0

Re: Настройка внешнего вида Firefox в userChrome.css

Vitaliy V., а можете в Автоматически открывать папки закладок на панели закладок добавить поддержку всех кнопок от расширений, CB..., главного меню, звёздочки... в общем всего, что можно открыть?

Отсутствует

 

№983113-03-2021 19:03:37

Vitaliy V.
Участник
 
Группа: Members
Зарегистрирован: 19-09-2014
Сообщений: 2186
UA: Firefox 87.0

Re: Настройка внешнего вида Firefox в userChrome.css

voqabuhe пишет

в общем всего, что можно открыть?

Это вряд ли, для toolbarbutton и image.urlbar-icon можно попробовать такую дичь

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

Выделить код

Код:

(this.mouseoveropentoolbarbutton = {
            delay: 350,
            get buttonID() {
                delete this.buttonID;
                return this.buttonID = new Map([
                    ["PanelUI-menu-button", "appMenu-popup"],
                    ["library-button", "customizationui-widget-panel"],
                    ["fxa-toolbar-menu-button", "customizationui-widget-panel"],
                    ["nav-bar-overflow-button", "widget-overflow"],
                    ["star-button", "editBookmarkPanel"],
                    ["pageActionButton", "pageActionPanel"],
                ]);
            },
            get timer() {
                delete this.timer;
                return this.timer = Cc["@mozilla.org/timer;1"].createInstance(Ci.nsITimer);
            },
            init(that) {
                var arrayelem = this.arrayelem = document.querySelectorAll(`
                    #navigator-toolbox,
                    #browser-bottombox,
                    toolbar#add-additional-vertical-bar
                `);
                for (let elem of arrayelem)
                    elem.addEventListener("mouseover", this);
                that.unloadlisteners.push("mouseoveropentoolbarbutton");
                ChromeUtils.defineModuleGetter(this, "ExtensionParent", "resource://gre/modules/ExtensionParent.jsm");
                XPCOMUtils.defineLazyGetter(this, "browserActionFor", () => {
                    return this.ExtensionParent.apiManager.global.browserActionFor;
                });
            },
            handleEvent(event, node = event.target, popupID) {
                if (!node?.matches("toolbarbutton, image.urlbar-icon")) return;
                if (node.getAttribute("type") === "menu")
                    this.openPopup(node, node.menupopup);
                else if (node.getAttribute("widget-type") === "view") {
                    let id = node.dataset?.extensionid;
                    try {
                        if (!id || (id && this.browserActionFor(this.ExtensionParent.WebExtensionPolicy.getByID(id).extension).action.tabContext.get(gBrowser.selectedTab).popup))
                            this.openPopup(node);
                    } catch (e) {}
                } else if (node.classList.contains("toolbarbutton-combined-buttons-dropmarker"))
                    this.openPopup(node, null, true);
                else if (popupID = this.buttonID.get(node.id))
                    this.openPopup(node, null, false, popupID);
            },
            openPopup(node, menupopup, dropmarker, popupID) {
                this.timer.cancel();
                this.timer.initWithCallback(() => {
                    if (node.open) return;
                    if (this.curbut?.open) {
                        this.curbut.menupopup
                        ? this.curbut.menupopup.hidePopup()
                        : document.querySelector(`panel[viewId='${this.curid}'], panel[id='${this.curid}'], menupopup[id='${this.curid}']`)?.hidePopup();
                    } else
                       document.querySelector(":is(menupopup,panel)[panelopen='true'], toolbarbutton[open='true'] > menupopup")?.hidePopup();
                    this.curbut = node;
                    if (menupopup) {
                        this.curid = "";
                        menupopup.openPopup();
                    } else if (!popupID) {
                        this.curid = CustomizableUI.getWidget(`${!dropmarker ? node.id : node.parentNode.id}`).viewId;
                        node.doCommand();
                    } else {
                        this.curid = popupID;
                        node.click();
                    }
                }, this.delay, Ci.nsITimer.TYPE_ONE_SHOT);
                node.addEventListener("mouseleave", () => {
                    this.timer.cancel();
                }, { once: true });
            },
            destructor() {
                for (let elem of this.arrayelem)
                    elem.removeEventListener("mouseover", this);
            },
        }).init(this);


Что касается CB то кнопка должна иметь атрибут type="menu" и menupopup внутри.
Можно ещё попробовать для некоторых кнопок добавить id's ["toolbarbutton", "menupopup или panel"] в this.buttonID = new Map([...

Отредактировано Vitaliy V. (14-03-2021 23:20:30)

Отсутствует

 

№983213-03-2021 19:44:06

voqabuhe
Участник
 
Группа: Members
Зарегистрирован: 06-12-2011
Сообщений: 3231
UA: Firefox 86.0

Re: Настройка внешнего вида Firefox в userChrome.css

Vitaliy V. пишет

для toolbarbutton можно попробовать такую дичь

Почему дичь? Классно получилось, почти всё открывает. Спасибо большое.

Что касается CB

Да фиг с ними, как оказалось их не так уж и много осталось. Тем более, что некоторые таки открываются вашим скриптом.
А Звёздочка и ещё у меня в адресной строке кнопка от Scroll Up Folder с ними можно что-нибудь поделать?

Отсутствует

 

№983313-03-2021 20:11:38

Vitaliy V.
Участник
 
Группа: Members
Зарегистрирован: 19-09-2014
Сообщений: 2186
UA: Firefox 87.0

Re: Настройка внешнего вида Firefox в userChrome.css

voqabuhe пишет

А Звёздочка и ещё у меня в адресной строке кнопка от Scroll Up Folder с ними можно что-нибудь поделать?

Хорошо добавил ещё для image.urlbar-icon но их ID надо добавлять в this.buttonID = new Map([...
звездочку и три точки добавил, для Scroll Up Folder добавьте
["pageAction-urlbar-scrollupfolder_omni_n0ne_org", "scrollupfolder_omni_n0ne_org-panel"],

Отсутствует

 

№983414-03-2021 08:10:03

Dumby
Участник
 
Группа: Members
Зарегистрирован: 12-08-2012
Сообщений: 2249
UA: Firefox 78.0

Re: Настройка внешнего вида Firefox в userChrome.css

Vitaliy V.
Такое впечатление, что для всех WebExtensions с browser_action делают виджет [widget-type="view"]
Вот, собрал ихний пример с гитхаба, и код срабатывает при наведении на кнопку,
хотя никакого попапа там даже близко не задумано.

Bookmark it!

Выделить код

Код:

data:application/x-xpinstall;base64,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


Может поправить, как-то так, или иначе
скрытый текст

Выделить код

Код:

/*
                else if (node.getAttribute("widget-type") === "view")
                    this.openPopup(node);
*/
                else if (node.getAttribute("widget-type") === "view") {
                    var id = node.getAttribute("data-extensionid");
                    if (
                        id && !WebExtensionPolicy.getByID(id)
                            .extension.manifest.browser_action.default_popup
                    )
                        return;
                    this.openPopup(node);
                }


Впрочем, возможно это не баг, а фича. Тогда хорошо бы об этом просто упомянуть.

Отсутствует

 

№983514-03-2021 18:06:50

Jo
Участник
 
Группа: Members
Зарегистрирован: 26-09-2010
Сообщений: 28
UA: Firefox 86.0

Re: Настройка внешнего вида Firefox в userChrome.css

Люди как убрать замок в адресной строке? Я не знаю где он отключается, через CSS или about:config
https://imgur.com/8FvMwAe

Отсутствует

 

№983614-03-2021 18:45:01

voqabuhe
Участник
 
Группа: Members
Зарегистрирован: 06-12-2011
Сообщений: 3231
UA: Firefox 86.0

Re: Настройка внешнего вида Firefox в userChrome.css

Vitaliy V. пишет

Хорошо добавил ещё для image.urlbar-icon но их ID надо добавлять в this.buttonID = new Map([...
звездочку и три точки добавил, для Scroll Up Folder добавьте
["pageAction-urlbar-scrollupfolder_omni_n0ne_org", "scrollupfolder_omni_n0ne_org-panel"],

Спасибо. Всё работает, всё отлично, добавил дополнительно необходимые мне кнопки CB и UCF и расширения. Оказывается для кнопок  достаточно ввести два раза ID и они работают. Вот только не могли бы вы для Звёздочки немного изменить поведение. Чтоб она срабатывала только когда вкладка уже в закладках, для вызова окна редактирования, а не для добавления закладок.

Отсутствует

 

№983714-03-2021 23:39:06

Vitaliy V.
Участник
 
Группа: Members
Зарегистрирован: 19-09-2014
Сообщений: 2186
UA: Firefox 87.0

Re: Настройка внешнего вида Firefox в userChrome.css

Dumby пишет

Такое впечатление, что для всех WebExtensions с browser_action делают виджет [widget-type="view"]...
код срабатывает при наведении на кнопку,
хотя никакого попапа там даже близко не задумано.

Да уж, сделали так что на всех кнопках при клике создается панель и тут же удаляется если она не нужна.
Вот этот код в panelUI.js выполняется всегда

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

Выделить код

Код:

else if (!aAnchor.open) {
      aAnchor.open = true;

      let tempPanel = document.createXULElement("panel");
      tempPanel.setAttribute("type", "arrow");
      tempPanel.setAttribute("id", "customizationui-widget-panel");
      tempPanel.setAttribute("class", "cui-widget-panel panel-no-padding");
      tempPanel.setAttribute("viewId", aViewId);
      if (aAnchor.getAttribute("tabspecific")) {
        tempPanel.setAttribute("tabspecific", true);
      }
      if (this._disableAnimations) {
        tempPanel.setAttribute("animate", "false");
      }
      tempPanel.setAttribute("context", "");
      document
        .getElementById(CustomizableUI.AREA_NAVBAR)
        .appendChild(tempPanel);
      // If the view has a footer, set a convenience class on the panel.
      tempPanel.classList.toggle(
        "cui-widget-panelWithFooter",
        viewNode.querySelector(".panel-subview-footer")
      );

      let multiView = document.createXULElement("panelmultiview");
      multiView.setAttribute("id", "customizationui-widget-multiview");
      multiView.setAttribute("viewCacheId", "appMenu-viewCache");
      multiView.setAttribute("mainViewId", viewNode.id);
      tempPanel.appendChild(multiView);
      viewNode.classList.add("cui-widget-panelview");

      let viewShown = false;
      let panelRemover = () => {
        viewNode.classList.remove("cui-widget-panelview");
        if (viewShown) {
          CustomizableUI.removePanelCloseListeners(tempPanel);
          tempPanel.removeEventListener("popuphidden", panelRemover);
        }
        aAnchor.open = false;

        PanelMultiView.removePopup(tempPanel);
      };

      if (aAnchor.parentNode.id == "PersonalToolbar") {
        tempPanel.classList.add("bookmarks-toolbar");
      }

      let anchor = this._getPanelAnchor(aAnchor);

      if (aAnchor != anchor && aAnchor.id) {
        anchor.setAttribute("consumeanchor", aAnchor.id);
      }

      try {
        viewShown = await PanelMultiView.openPopup(tempPanel, anchor, {
          position: "bottomcenter topright",
          triggerEvent: domEvent,
        });
      } catch (ex) {
        Cu.reportError(ex);
      }

      if (viewShown) {
        CustomizableUI.addPanelCloseListeners(tempPanel);
        tempPanel.addEventListener("popuphidden", panelRemover);
      } else {
        panelRemover();
      }
    }

Dumby пишет

Может поправить, как-то так, или иначе

Не совсем то, даже если в манифесте не указана default_popup, панель всё равно можно вызвать из расширения,
как например в этом расширении NoScript Security Suite
Но спасибо, проблему решил.


Jo

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

Выделить код

Код:

#identity-icon-box {
    display: none !important;
}


voqabuhe пишет

для Звёздочки немного изменить поведение. Чтоб она срабатывала только когда вкладка уже в закладках, для вызова окна редактирования, а не для добавления закладок.

Измените эту строку
// if (!node?.matches("toolbarbutton, image.urlbar-icon")) return;
if (!node?.matches("toolbarbutton, image.urlbar-icon:not(:is(#star-button:not([starred='true'])))")) return;

Отредактировано Vitaliy V. (14-03-2021 23:49:33)

Отсутствует

 

№983815-03-2021 01:22:18

Jo
Участник
 
Группа: Members
Зарегистрирован: 26-09-2010
Сообщений: 28
UA: Firefox 86.0

Re: Настройка внешнего вида Firefox в userChrome.css

Vitaliy V. не помогло. FF перезапускал.
https://imgur.com/a/j68Pod7

Отредактировано Jo (15-03-2021 01:27:29)

Отсутствует

 

№983915-03-2021 01:47:39

Vitaliy V.
Участник
 
Группа: Members
Зарегистрирован: 19-09-2014
Сообщений: 2186
UA: Firefox 87.0

Re: Настройка внешнего вида Firefox в userChrome.css

Jo
а ну то для [firefox] 87, попробуйте это
#identity-icon или #identity-box

Отредактировано Vitaliy V. (15-03-2021 01:49:55)

Отсутствует

 

№984015-03-2021 02:11:25

Jo
Участник
 
Группа: Members
Зарегистрирован: 26-09-2010
Сообщений: 28
UA: Firefox 86.0

Re: Настройка внешнего вида Firefox в userChrome.css

Vitaliy V. забрал второй вариант. Спасибо.

Отсутствует

 

№984115-03-2021 14:29:29

Jo
Участник
 
Группа: Members
Зарегистрирован: 26-09-2010
Сообщений: 28
UA: Firefox 86.0

Re: Настройка внешнего вида Firefox в userChrome.css

Vitaliy V. как убрать панель со стрелками из контекстного меню?
https://imgur.com/FDeTSJ2
И эти пункты:
Сохранить объект как
Копировать изображение
Отправить изображение по почте
Открыть фоновое изображение
Сделать фоновым рисунком рабочего стола
Печать выделенной области

Отредактировано Jo (15-03-2021 16:54:48)

Отсутствует

 

№984215-03-2021 17:53:56

voqabuhe
Участник
 
Группа: Members
Зарегистрирован: 06-12-2011
Сообщений: 3231
UA: Firefox 86.0

Re: Настройка внешнего вида Firefox в userChrome.css

Vitaliy V. пишет

Измените эту строку
// if (!node?.matches("toolbarbutton, image.urlbar-icon")) return;
if (!node?.matches("toolbarbutton, image.urlbar-icon:not(:is(#star-button:not([starred='true'])))")) return;

Спасибо.

Отсутствует

 

№984315-03-2021 18:46:00

_zt
Участник
 
Группа: Members
Зарегистрирован: 10-11-2014
Сообщений: 1644
UA: Firefox 78.0

Re: Настройка внешнего вида Firefox в userChrome.css

Отсутствует

 

№984415-03-2021 19:16:17

Jo
Участник
 
Группа: Members
Зарегистрирован: 26-09-2010
Сообщений: 28
UA: Firefox 86.0

Re: Настройка внешнего вида Firefox в userChrome.css

_zt то что нужно. Спасибо.

Отсутствует

 

№984516-03-2021 08:07:57

voqabuhe
Участник
 
Группа: Members
Зарегистрирован: 06-12-2011
Сообщений: 3231
UA: Firefox 86.0

Re: Настройка внешнего вида Firefox в userChrome.css

Vitaliy V., почему в вашем замечательном расширение нет кнопки очистить загрузки? Есть же кнопка загрузки, там  как раз это было бы уместно. Может подумаете при следующем обновление?

Отсутствует

 

№984616-03-2021 17:28:24

Vitaliy V.
Участник
 
Группа: Members
Зарегистрирован: 19-09-2014
Сообщений: 2186
UA: Firefox 87.0

Re: Настройка внешнего вида Firefox в userChrome.css

voqabuhe пишет

почему в вашем замечательном расширение нет кнопки очистить загрузки? Есть же кнопка загрузки, там  как раз это было бы уместно

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

Отсутствует

 

№984716-03-2021 18:37:23

voqabuhe
Участник
 
Группа: Members
Зарегистрирован: 06-12-2011
Сообщений: 3231
UA: Firefox 86.0

Re: Настройка внешнего вида Firefox в userChrome.css

Vitaliy V. пишет

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

Как это не видно, а кнопка загрузок появляющаяся после начала закачки и которая исчезает сразу после очистки загрузок? А так то да, можно кнопкой открыть Библиотеку, или без кнопок горячими клавишами..., но это ж лишние движения получаются. :)

Отсутствует

 

№984816-03-2021 19:06:24

oleg.sgh
Участник
 
Группа: Members
Зарегистрирован: 19-04-2014
Сообщений: 3157
UA: Firefox 85.0

Re: Настройка внешнего вида Firefox в userChrome.css

voqabuhe

которая исчезает

Персонализация - ткнуть в значок и снять галку.

скрытый текст
2021-03-16_210356.png

Отредактировано oleg.sgh (16-03-2021 19:06:50)

Отсутствует

 

№984916-03-2021 19:26:53

voqabuhe
Участник
 
Группа: Members
Зарегистрирован: 06-12-2011
Сообщений: 3231
UA: Firefox 86.0

Re: Настройка внешнего вида Firefox в userChrome.css

oleg.sgh, дык меня устраивает её поведение, мне не нужно автоскрытие, при котором не видно, что в загрузках. Мне нужен способ быстро очищать.

Отсутствует

 

№985017-03-2021 21:55:10

ВВП
Участник
 
Группа: Members
Зарегистрирован: 13-03-2021
Сообщений: 336
UA: Firefox 86.0

Re: Настройка внешнего вида Firefox в userChrome.css

voqabuhe

voqabuhe пишет

Мне нужен способ быстро очищать.

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

Выделить код

Код:

Downloads.getList(Downloads.ALL).then(
    async list => (await list.getAll()).forEach(list.remove, list),
    Cu.reportError
);

PlacesUtils.history.removeVisitsByFilter({
    transition: PlacesUtils.history.TRANSITIONS.DOWNLOAD
}).catch(Cu.reportError)

Отсутствует

 

Board footer

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