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

Многие проблемы быстрее решаются поиском по форуму и чтением FAQ, чем созданием новой темы и томительным ожиданием ответа.

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

_zt пишет

А можете еще переместить пункт в самый верх меню и добавить после него сепаратор?

Не исключено. Замена начала кода
[spoiler][code]try {({
    run(func) {
        var topics = ["quit-application-granted", "chrome-document-loaded"];
        var obs = Cc["@mozilla.org/observer-service;1"].getService(Ci.nsIObserverService);
        for(var t of topics) obs.addObserver(this, t, false);
        this.observe = (subj, topic) => this[topic[0]](subj);
        this.q = () => topics.forEach(t => obs.removeObserver(this, t));

        this.run = async doc => {
            var code = `(${func})(document.getElementById("placesContext"));`;
            var ps = await doc.ownerGlobal.ChromeUtils
                .compileScript("data:charset=utf-8," + encodeURIComponent(code));
            (this.run = ps.executeInGlobal.bind(ps))(doc);
        }
        var re = /\/(?:places|bookmarksSidebar)\.xhtml$/;
        this.c = doc => re.test(doc.documentURI) && this.run(doc);
    }
}).run(popup => {
    var label = "Показать в папке", listener = {
        handleEvent() {
            if (this.shouldHide) retu

Скрипты » UCF - ваши кнопки, темы, дополнения, скрипты… » Вчера 16:32:42

xrun1 пишет

Special Widgets

Special Widgets грузится в объект ucf_custom_script_win
окна документа браузера (browser.xhtml).


А закладки в сайдбаре — это другое окно (bookmarksSidebar.xhtml).
Надо прописывать в UcfStylesScripts.scriptsallchrome


Опусти глаза чуть пониже. Пример для Библиотеки видишь?
// { path: "example_places.js", urlregxp: /chrome:\/\/browser\/content\/places\/places\.xhtml/, ucfobj: false, },


Вот туда. Типа
{ path: "cs_win/SidebarBookmarkSearchOpenFolder.uc.js", urlregxp: /chrome:\/\/browser\/content\/places\/bookmarksSidebar\.xhtml/ },

Поддержка пользователей » Почему-то никак не удаётся заставить его заработать напрямую » Вчера 16:29:56

austri пишет

где и как искать? (inspector?)

Да, inspector, но не контентский, а inspector Browser Toolbox'а,
[Файл Правка Вид ...] —> «Инструменты» —> «Веб-разработка» —> «Инструменты браузера».
Только сначала надо в настройках контентских инструментов поставить галки


[✔] Включить инструменты отладки browser chrome и дополнений
[✔] Включить удалённую отладку

зачем?

Чтобы пользоваться. И, соответственно, задавать меньше вопросов.

а это не перепортит имеющуюся настройку? (в файле userContent.css)

Ну так создай со значениями red и yellow, чтобы явно отличалось по виду, и смотри.
Если что-то не устроит, сбросишь настройки и все дела.

- повести курсор влево от кнопки organize
- повести курсор вправо от кнопки import and backup

Видимо слетает условие «при наведении курсора».

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

Вот, кстати, об инструментах разработки.
Нужны, в том числе, чтобы точ

Скрипты » UCF - ваши кнопки, темы, дополнения, скрипты… » Вчера 10:50:53

kokoss пишет

Сделайте пожалуйста скрипт для авто... открытия панели загрузок при старте закачки.

Хорошо, попробую. Это в custom_script.js

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

Выделить код

Код:

Services.obs.addObserver(function brw(win, topic) {
	Services.obs.removeObserver(brw, topic);

	var {Downloads: d, BrowserWindowTracker: bwt} = win;
	var show = function(download) {
		download.newDownloadNotified ||
		bwt.getTopWindow(this)?.DownloadsPanel.showPanel();
	};
	["PUBLIC", "PRIVATE"].forEach(async (type, ind) => {
		var view = Object.create(null);
		view.private = Boolean(ind);
		view.onDownloadChanged = show;
		(await d.getList(d[type])).addView(view);
	});
}, "browser-delayed-startup-finished");

_zt пишет

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

«положение поиска» это какие папки развёрнуты?
Если так, то можно попробовать запоминать принудительно.
[spoiler][code]/*
            tree.scrollByLines(Math.round(

Поддержка пользователей » Почему-то никак не удаётся заставить его заработать напрямую » Вчера 10:48:33

austri пишет

не понял, что делают вот эти 2 строки (вроде ничего не делают)

Это для дочерних субкверей корневого пункта History (Сегодня - ... - Старше чем 6 мес.).
Если не разворачиваешь и не пользуешься, тогда можно удалить.
А «справа от пункта Bookmarks Toolbar» будет
#placeContent[place="place:folder=TOOLBAR&expandQueries=0"]

замена тёмно-синего цвета (на серый) пока удалась только для #searchFilter,
но в остальных местах по-прежнему тёмно-синее выделение

Ищи id'шники или иные селекторы, или самый общий для всех.
Верни в тестовый экземпляр лисы все девелоперские расширения.


Или, может, создай две строковые настройки
ui.textSelectBackground и ui.textSelectForeground
с валидными значениями, типа lightblue или #9a0303

можно ли сделать так, чтобы в library при наведении курсора на organize, views, import and backup
не появлялась прямоугольная рамка? и чтобы при нажатии на любую из этих трёх кнопок - их текст не сдвигался

menu:hover {
    border-

Поддержка пользователей » Почему-то никак не удаётся заставить его заработать напрямую » 23-09-2022 20:43:08

austri пишет

более полноценно ответить смогу

Аналогично. Поэтому по верхушкам:

чтобы было меньше записи на диск

Меньше здесь было в смысле реже.

что именно он там каждые 60с делает

Не совсем каждые, там сложнее, это не значит, что лис будет
долбить диск каждые N секунд сохранением сессионного расклада,
а только если этот расклад изменился, то есть, это как-бы минимальмый
период для следующей записи. Если запись не требуется, значит писать не должен,
иначе говоря, если отошёл от компа на полчаса, то, скорее всего, никаких тридцати записей не случится.

amount of POSTDATA = 0      это хорошо для чего? и плохо для чего?

Я, в повседневном браузере, не пользуюсь сохранением сессий как таковым,
поэтому не знаю. Но, так-то, чисто теоретически, если вкладка открыта POST-запросом,
а сохранение POSTDATA в ноль, то что получится? Видимо, аналогичо GET-запросу.
Если за какой-то большой период времени проблем так не было замечено, тогда оставь,
д

Поддержка пользователей » Почему-то никак не удаётся заставить его заработать напрямую » 23-09-2022 09:11:41

austri пишет

и сюда же очень похожий вопрос про позицию скрола,
но только уже не применительно к спискy посещённых страниц, а применительно к стёртомy текстy (в поисковом поле):
      можно ли сделать так, чтобы после стирания поискового запроса
      (во вновь появившемся полном списке истории посещений) происходило восстановление позиции вертикального скрола?

Можно, например, запоминать номер первой видимой строки,
а после стирания поискового запроса прокрутить на этот номер.
Однако, если, к моменту стирания, исторический расклад уже поменялся,
то прокрутка может попасть не туда, куда ожидалось.
Но чего-то умнее в голову не приходит, поэтому пока так.
[spoiler][code](url => {
    var obs = doc => {
        if (doc.documentURI != url) return;

        var box = doc.getElementById("searchFilter");
        box.removeAttribute("clickSelectsAll");

        var win = doc.ownerGlobal;
        var place = "place:sort=4";
        var o = win.Object, po = win.PlacesOrganizer;

        var select = po.selectLeftPaneContainerByHie

Поддержка пользователей » Почему-то никак не удаётся заставить его заработать напрямую » 20-09-2022 12:40:44

austri пишет

как насчёт того нюанса, что мне нужно сразу видеть всю историю?

Не имеет отношения к комментарию.

после стирания поискового запроса происходит переход, по сути, в никуда
а должно происходить возвращение в полностью прогруженный список истории посещений


      после нажатия на кнопку del выделенные строки/строка должны просто удалиться
      (без последующей переброски во всё тот же бессмысленный мелкий список:      today, yesterday, last 7 days...)

Хорошо, тогда попробую забрать пункт «Журнал» под это дело полностью.
Код на замену.
[spoiler][code](url => {
    var obs = doc => {
        if (doc.documentURI != url) return;

        var box = doc.getElementById("searchFilter");
        box.removeAttribute("clickSelectsAll");

        var win = doc.ownerGlobal;
        var place = "place:sort=4";
        var o = win.Object, po = win.PlacesOrganizer;

        var select = po.selectLeftPaneContainerByHierarchy.bind(po);
        po.selectLeftPaneContainerByHierarchy = arg => {
            select(arg);
            arg ==

Скрипты » UCF - ваши кнопки, темы, дополнения, скрипты… » 18-09-2022 22:54:40

Dobrov пишет

Разные способы запуска из CustomStylesScripts.jsm не пашут

Что там может не пахать

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

Выделить код

Код:

(async tc => {
	var args = ["wheel", e => {
		if (e.shiftKey || e.ctrlKey || e.altKey || e.metaKey)
			return;
		e.stopPropagation(); e.preventDefault();
		tc.advanceSelectedTab(e.deltaY < 0 ? 1 : -1, true);
	}, true];
	tc.addEventListener(...args);
	var id = Symbol();
	this.unloadlisteners.push(id);
	this[id] = {destructor: () => tc.removeEventListener(...args)};
})(gBrowser.tabContainer);
Выделить код

Код:

var UcfStylesScripts = {
    .......
    scriptschrome: { // Для докум. окна браузера [ChromeOnly]
        domload: [ // По событию "DOMContentLoaded"

        ],
        load: [ // По событию "load"
            .......
            { path: "advanceSelectedTab.js", ucfobj: true },
        ],
    },

Поддержка пользователей » Почему-то никак не удаётся заставить его заработать напрямую » 18-09-2022 22:51:45

austri пишет

верно ли понимаю, что их трогать не надо? или наобoрот - надо удалить?

Не хочу здесь рассуждать в категориях «надо» и «не надо».
Есть и есть, и есть не просят. Если надумаешь вернуть расширение,
то настройки должны подхватиться. Если вероятность возвращения
расширения нулевая, то связанные с ним prefs'ы можно удалить.

как убрать контекстное меню и внизу тоже? (там, где: name, location, tags)

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

Выделить код

Код:

@-moz-document url(chrome://browser/content/places/places.xul) {
	#editBMPanel_rows .textbox-contextmenu {
		display: none !important;
	}
}

в "history > поле для ввода поискового запросa" уже вынужденно проставлен символ /      с пробелом после него,

      что позволяет тут же начинать набирать нужный мне поисковый запрос, и делать это сразу по всей истории,
      а не только по каким-то там навязанным куцым дурацким "yesterday", "last 7 days", "this month"...,

Это непонятно. Какой бы куцый дурацкий вариант не бы

Скрипты » UCF - ваши кнопки, темы, дополнения, скрипты… » 18-09-2022 00:01:16

LGS
Ну, то есть, в изначальном вопросе «В 68 после замены» «и правки» это был енот.
У меня нет никакого енота, а сохранение надо было смотреть, поэтому,
на скорую руку, чисто формально, запихал код в Firefox 68 так

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

Выделить код

Код:

....
		//if (old != trg) old?.removeAttribute("boot");
		if (old != trg) old && old.removeAttribute("boot");
....
		//if (arg.constructor.isInstance?.(arg)) {
		if (arg.constructor.isInstance && arg.constructor.isInstance(arg)) {
....
		//win.document.querySelector(this.skd)?.removeAttribute("maxwidth");
		var menu = win.document.querySelector(this.skd);
		menu && menu.removeAttribute("maxwidth");
....
			//: this.dragData?.mouse && e.preventDefault()
			: this.dragData && this.dragData.mouse && e.preventDefault()

Скрипты » UCF - ваши кнопки, темы, дополнения, скрипты… » 17-09-2022 22:58:41

LGS пишет

На 68esr кнопка не создается, на Еноте68 работает

Конечно не создаётся. Оператор «?.» это не какая-то там ошибка в работе кода,
это сразу SyntaxError, весь код встанет враскоряку.


Уж не знаю что за Енот68, но значит там поддержка этого оператора есть.

Только мне стыдно спросить - что такое STR..?

Steps To Reproduce (шаги по воспроизводству),
типа делай раз, делай два, делай три. Багзильский такой формат.


Пример. Допустим, обсуждаемый код работает.


STR: Запускаем Firefox 78. Инициируем в кнопке сохранение сессии.
В открывшемся окошке ввода имени вызываем контекстное меню (ПКМ) на строке «Сохранить:».
Жмём пункт «Выделить всё».


AR: Выделение не происходит.
ER: Выделение происходит.


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

Скрипты » UCF - ваши кнопки, темы, дополнения, скрипты… » 17-09-2022 21:42:50

kazarin пишет

фикс не помог

Точно. Это я глупость написал. Вторая попытка.

Скрипты » UCF - ваши кнопки, темы, дополнения, скрипты… » 17-09-2022 20:53:13

LGS пишет

В 68 после замены btn.type = "menu"; на btn.setAttribute("type", "menu"); и правки @-moz-document url-prefix(chrome://browser/content/browser.xul) кнопка появляется, по щелчку ЛКМ предлагает сохранить сессию, но не сохраняет.

Что-то я не понял, там же четыре «?.» оператора, которые надо выгребать,
а об этом ни слова. Ладно, будем считать что сделал, но не написал.


Патч на сохранение. Только это, я не буду там всё тестировать,
а если ещё что-то всплывёт, то пиши доходчивый STR, попробую посмотреть.
[spoiler][code]/*
    async save(excWin) {
        var io = Cu.getGlobalForObject(Cu).IOUtils;
*/
    io: {
        get OS() {
            delete this.OS;
            Cu.import("resource://gre/modules/osfile.jsm", this);
            return this.OS;
        },
        makeDirectory(path) {
            return (this.makeDirectory = this.OS.File.makeDir)(path);
        },
        writeJSON(path, obj) {
            var wa = this.OS.File.writeAtomic;
            return (this.writeJSON = (path, obj) => wa(path, JSON.stringify(obj)))(path, obj);
        }
    },
    async save(excWin)

Сustom Buttons » Custom Buttons » 17-09-2022 17:49:35

momo2000
Ну, например,
var ???????? = PictureInPicture.onCommand.bind(null, {target: window});
Но переключать обратно с PiP-окна не будет, в нём же нет CB-кнопок.

Скрипты » UCF - ваши кнопки, темы, дополнения, скрипты… » 17-09-2022 12:43:32

Dobrov пишет

есть в профиле profile_ucf_dobrov

Если ты про этот код, то его подкосил баг 1767802.

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

Выделить код

Код:

/*
			.tabbrowser-tab[first-visible-tab="true"][last-visible-tab="true"] ~ #tabs-newtab-button {
*/
			.tabbrowser-tab[first-visible-tab="true"][last-visible-tab="true"] ~ #tabs-newtab-button,
			.tabbrowser-tab[first-visible-tab="true"][last-visible-tab="true"] ~ #tabbrowser-arrowscrollbox-periphery > #tabs-newtab-button {

Скрипты » UCF - ваши кнопки, темы, дополнения, скрипты… » 17-09-2022 11:16:54

Dobrov пишет

привожу стиль

Ну и где там хоть что-то про автоскрытие панели вкладок (TabsToolbar)?

Скрипты » UCF - ваши кнопки, темы, дополнения, скрипты… » 17-09-2022 10:30:05

Dobrov пишет

именно этот этот код автоскрывает панель вкладок

Нет, он этого не делает. Он вообще ничего не автоскрывает.


Код следит за атрибутами "autohide" и "inactive" toolbar-menubar'а,
и за атрибутом "sizemode" корневого элемента документа (<html>).


И, при изменении этих атрибутов, устанавливает для <html>
значение атрибута "v_menubar_autohide" и в его атрибуте "style"
устанавливает часть именуемую "--v-titlebar-buttonbox-container-width".


Вот и всё. Если у тебя какой-то стиль повешен на эти атрибуты, то где стиль?

Скрипты » UCF - ваши кнопки, темы, дополнения, скрипты… » 17-09-2022 08:18:57

Dobrov пишет

Так нормально?

В комментарий прокралась опечатка: «слилей».

может починишь код menubarVisibilityChance.js или переделаешь, чтобы работало автоскрытие панели вкладок

Не понял просьбу. menubar это не панель вкладок.


xrun1 пишет

Как ширину/высоту панелей отрегулировать в "новом" UCF?

kazarin верно намекает, что в "новом" UCF
id тулбаров префиксятся с ucf- а не с add-

Сustom Buttons » Custom Buttons » 17-09-2022 08:13:24

momo2000 пишет

Официально клавиши нет, есть только закрыть Ctrl+W, а вот включить (отделить) нет

Разве? Я вижу, что, для русской локали, работает переключатель Ctrl+Shift+*
Ctrl+Shift+] ещё есть, но я не знаю как такое с моей клавиатуры вызвать.

Поддержка пользователей » Почему-то никак не удаётся заставить его заработать напрямую » 17-09-2022 08:11:42

austri пишет

я имел в виду не сами пункты, а всё их содержимое

Тогда тоже не вижу. У меня разрешение экрана по высоте меньше (1080),
влезает только 63 пункта, menupopup 1077 и 3 пикселя остаётся,
и если в обоих menupopup по 63 пункта, то они выглядят одинаково.

никакого Ctrl+D в tab-mix-plus не прописано

Ну да, там много чего ещё не прописано.

большей свободы (от tab-mix-plus)

Наоборот, если shortcut-строка в настройках tab-mix-plus
соответствует уже существующему в браузере элементу <key>,
и ты делаешь её пустой, то, тем самым, ты говоришь, что tab-mix-plus
должен отключить это сочетание клавиш, а если оставляешь как есть,
то tab-mix-plus вмешиваться не должен.

отсутствия неправильных

Что значит неправильных? Если в браузере Ctrl+T — это создать вкладку,
то tab-mix-plus должен там что-то показать, либо заказанное изменение
(пустота это вариант изменения), либо дефолтное значение.

доба

Поддержка пользователей » Почему-то никак не удаётся заставить его заработать напрямую » 15-09-2022 19:40:43

austri пишет

пункт "closed" имеет чуть-чуть меньшую высоту, чем пункт "opened"

У меня эти два, да и вообще все, одинаковой высоты в 17px, с тех пор, как завёл стиль.
Так что не знаю что у тебя может влиять на высоту одного из этих двух.

- и чтобы список      tab mix plus > options > menu > shortcuts      стал пустым
- и чтобы все нужные комбинации срабатывали через файл click.js

Нет. Даже не хочется задумываться зачем это надо.
Лучше сделать так: нужные комбинации в списке tab mix plus
просто сбросить в дефолтное значение, чтобы он оставил их в покое (для click.js),
а ненужные можно оставить пустыми. То есть, после сброса, будут эти три:


«Open a new tab» — Ctrl+T
«Reloads the tab*» — F5 (да, со звёздочкой)
«Закрыть вкладку» — Ctrl+W


Тогда в click.js меняем key_reload на key_reload2, а для Ctrl+K пишем
key_close: { key: "k", modifiers: "control" },
«k» — маленькая, с большой «K» у ме

Скрипты » UCF - ваши кнопки, темы, дополнения, скрипты… » 14-09-2022 19:20:29

xrun1 пишет

Работает в боковой панели. На панели закладок не спрашивает.

Это я понял ещё из изначального вопроса.
На что была дадена ссылка, где сказано какую строку куда добавить.
Вот и осталось непонятно, помогла строка или нет.


kokoss пишет

А у меня наоборот, этот скрипт на панели закладок работает, а в боковой нет.

Этого не может быть. Наверно ты не понял что скрипт делает.
И неудивительно: человек когда-то что-то спрашивает, затем кто-то другой
спрашивает мод, затем третий, зачем-то, тащит это к себе, да ещё и переименовывает
"Удалять с панели закладок?" в "Удалить закладку/папку?". Короче — испорченный телефон.


Подтверждение появляется если:
1. Удаляется закладка из панели закладок (включая закладки из подпапок).
2. Удаляется папка из панели закладок (только из самой панели закладок, исключая вложенные папки).
А удаляется где — неважно (панель закладок, main-menubar, сайдбар, Библиотека, и.т.д).


Dobrov пишет

возможно добавить восстановление удалённых закл

Скрипты » UCF - ваши кнопки, темы, дополнения, скрипты… » 13-09-2022 14:04:17

xrun1 пишет

2. Работает

Не понял. А 1. что, не работает что ли?

Нет, я не трус, но я боюсь. Боюсь, смогу ли я, способен ли?

Так склонируй браузер, и там пробуй разобраться.
Никто не торопит, ни чем не рискуешь.
В отношении скриптов в "новом" вообще ничего не поменялось.
Не нравится встроенный загрузчик — не используй, делай как привык.
Со стилями да, наверно придётся почесать репу.

Скрипты » UCF - ваши кнопки, темы, дополнения, скрипты… » 13-09-2022 08:20:59

egorsemenov06 пишет

возможно ли сделать из этого расширения https://www.upload.ee/files/14493725/do … s.xpi.html кнопку для UCF

Конечно же нет, это ведь не расширение, а WebExtensions.
Не, ну может есть где-то такие лбы, которые могут, но они не будут.
Плюс, оно, в некоторой части, зависимо от конкретных веб-сайтов,
а значит должно обновляться, если там что-то поменяется.

что бы закачки передавались в портативный Download Master

Разве что можно попытаться забрать у него browser.runtime.sendNativeMessage() себе,
и попробовать построить симуляцию на аргументах командной строки.
Затея так себе, но раз всё равно не работает...
Создать .mjs'ку, прописать там путь до dmaster.exe. Импортировать, например, так
[spoiler][code]var UcfStylesScripts = {
    /** ************************▼ Настройки ▼************************ */
    .......

    scriptsbackground: [ // В фоне [System Principal]
        .......

        { func: 'ChromeUtils.importESModule("chrome://user_chrome_f

Board footer

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