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

Список ответов на каверзные вопросы можно получить в FAQ-разделе форума.

№995113-04-2021 01:29:18

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

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

Dobrov пишет

возможность запуска через $(which …mpv…)

Это возможно из консоли или из bash скрипта.
Ну так напишите скрипт и вызывайте его вместо приложения, в качестве аргументов для скрипта передать в том числе в каком приложении открыть

Отредактировано Vitaliy V. (13-04-2021 01:29:34)

Отсутствует

 

№995213-04-2021 01:41:33

Dobrov
Участник
 
Группа: Members
Зарегистрирован: 04-10-2011
Сообщений: 475
UA: Firefox 84.0

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

Vitaliy V. - подход со скриптом будет работать только на одном компе!


Vitaliy V. ещё просьба по Открыть ссылку в…
Удалить из кода открытие страницы, оставить только открытие ссылки!


Второй вопрос по стилям - как увеличить шрифт названий плиток?
Как сделать плитки прямоугольными (например в пропорции 16:9), а не квадратными?
2021-03-26-19-24-27-cut-merged-1616758700321-01.gif

Заранее спасибо!

Отредактировано Dobrov (13-04-2021 02:11:25)

Отсутствует

 

№995314-04-2021 00:32:59

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

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

Dobrov пишет

Удалить из кода открытие страницы, оставить только открытие ссылки!

Обновил скрипт, на [firefox] 88 не работал ну и эту хрень что они там придумали исправил, и добавил такую возможность для каждого пункта можно указать открытие страницы или ссылки или все https://forum.mozilla-russia.org/viewto … 54#p782454

Dobrov пишет

как увеличить шрифт названий плиток?

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

Выделить код

Код:

@-moz-document url("about:newtab"), url("about:home") {
    .top-site-outer .title {
        font-size: 14px !important;
    }
}

Dobrov пишет

Как сделать плитки прямоугольными (например в пропорции 16:9), а не квадратными?

Там все поломается если так сделать, а исправлять долго и муторно

Отсутствует

 

№995414-04-2021 01:08:24

Dobrov
Участник
 
Группа: Members
Зарегистрирован: 04-10-2011
Сообщений: 475
UA: Firefox 84.0

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

Vitaliy V. спасибо! Два дополнения 1) плеер mpv для МакОС:

Выделить код

Код:

['mpv', 'MPV', '/usr/bin/open', '-n -a "mpv" --args --ytdl-format=bestvideo[height<=?720][fps<=?30]+bestaudio/best[height<=?720][fps<=?30] %OpenURI', 'moz-icon://file:///Applications/mpv.app?size=16'],

2) неплохо бы и для других плееров ограничить качество видео, а ещё лучше менять этот параметр (например через кнопку кнопка QuickToggleAbout) как 480p/720p/1080p…, а то некоторые видео 8К без (--ytdl-format=bestvideo…) очень долго открываются.

Отсутствует

 

№995514-04-2021 09:51:59

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

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

Vitaliy V.
Что это за вертикаль ?
1.png

Отсутствует

 

№995614-04-2021 10:32:49

sandro79
Участник
 
Группа: Members
Зарегистрирован: 15-11-2017
Сообщений: 1750
UA: Firefox 78.0

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

tagnupip пишет

снова сломали

browser.proton.enabled — false должно помочь, но на долго ли...
Dobrov пишет

Как сделать плитки прямоугольными (например в пропорции 16:9), а не квадратными?

Можно с этим кодом поэкспериментировать.

Отсутствует

 

№995714-04-2021 12:33:28

Totem
Участник
 
Группа: Members
Зарегистрирован: 23-07-2018
Сообщений: 69
UA: Firefox 87.0

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

Ребят, может у кого есть строчка, убрать надо бы пункт один из контекстного меню, (когда выделяешь текст в поле/форуме/чате, там присутствует пункт "Печать выделенной области" в [firefox] 87.  Ранее скидывали полезную ссылку: simpleMenuWizard  Спс. Убрал, что нужно мне, а на этот пункт ненашел. было подобно что-то #context-printframe,  но пункт не исчез.

Отредактировано Totem (14-04-2021 12:43:09)

Отсутствует

 

№995814-04-2021 12:41:37

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

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

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


ВВП пишет

Что это за вертикаль ?

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

Выделить код

Код:

#identity-box[pageproxystate="valid"].chromeUI, #identity-box[pageproxystate="valid"].extensionPage {
    border-inline-end: none !important;
}


Totem
#context-print-selection

Отсутствует

 

№995914-04-2021 12:51:04

Totem
Участник
 
Группа: Members
Зарегистрирован: 23-07-2018
Сообщений: 69
UA: Firefox 87.0

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

Vitaliy V. пишет

#context-print-selection

Vitaliy V.
Спасибо! Пункт пропал.

Отсутствует

 

№996014-04-2021 15:50:54

Totem
Участник
 
Группа: Members
Зарегистрирован: 23-07-2018
Сообщений: 69
UA: Firefox 87.0

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

При наведении на меню закладок, на тулбаре, в самом низу рамка "Показать все закладки" давно хочу убрать её, Вот Из меню закладок  можно скрыть этот пункт, а тут не могу убрать.. Может есть у кого код? cd5e262a5103t.jpg

Отсутствует

 

№996114-04-2021 15:59:46

sandro79
Участник
 
Группа: Members
Зарегистрирован: 15-11-2017
Сообщений: 1750
UA: Firefox 78.0

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

Totem пишет

Может есть у кого код?

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

Выделить код

Код:

#BMB_bookmarksShowAll {
    display: none !important;
}


Инструкция по работе с инструментами браузера.

Отсутствует

 

№996214-04-2021 16:04:43

Totem
Участник
 
Группа: Members
Зарегистрирован: 23-07-2018
Сообщений: 69
UA: Firefox 87.0

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

sandro79 Спасибо))))

Отсутствует

 

№996314-04-2021 17:30:31

Dobrov
Участник
 
Группа: Members
Зарегистрирован: 04-10-2011
Сообщений: 475
UA: Firefox 84.0

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

Vitaliy V. пишет

this.contextmenuopenwith = {

Меню Открыть ссылку в подключаю как отдельный скрипт - не работает, а если вставляю весь код в custom_script_win.js, тогда пункты в контекстном меню появляются…

Выделить код

Код:

// this.autohidesidebar.init(); // <-- Auto Hide Sidebar
		/* ************************************************ */
		// Здесь может быть ваш код который сработает по событию "load" не раньше

        var loadscript = name => {
            try {
                Services.scriptloader.loadSubScript(`chrome://user_chrome_files/content/custom_scripts/${name}`,globalThis,"UTF-8");
                return true;
            } catch(e) {}
        };
        loadscript("contextmenuopenwith.js");
        loadscript("undo-tab.js"); // этот скрипт подключается и работает

		/* ************************************************ */
	},
	handleEvent(e) {

Отсутствует

 

№996414-04-2021 19:50:31

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

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

Dobrov пишет

подключаю как отдельный скрипт

Загрузчик нужен для custom_script_win.js https://forum.mozilla-russia.org/viewto … 01#p788301
подключить так
loadscript("contextmenuopenwith.js", this);

Отсутствует

 

№996515-04-2021 01:39:50

Dobrov
Участник
 
Группа: Members
Зарегистрирован: 04-10-2011
Сообщений: 475
UA: Firefox 84.0

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

Vitaliy V. - спасибо! (из 400 страниц нужное очень сложно, пора делать отдельный FAQ со ссылками на полезные посты)


Вопрос по блоку "Загрузка скриптов для browser.xhtml" - в тексте не указано, после каких команд конкретно включать этот код.
Я добавил загрузчик в custom_script_win.js в функцию load(), убрав первую и последнюю строки: (() => { ……… })();
Или надо было по-другому подключить? Или загрузчик скриптов в window.режим автономен и его можно и в custom_script.js включить?

Выделить код

Код:

load() {
		if (this.initialized)
			return;
		this.initialized = true;
		// this.specialwidgets.init(); // <-- Special Widgets
		/* ************************************************ */

		// Здесь может быть ваш код который сработает по событию "load" не раньше
// (() => {
            var loadscript = (relpath, obj) => {
                try {
                    Services.scriptloader.loadSubScript(`chrome://user_chrome_files/content/custom_scripts/${relpath}`, obj, "UTF-8");
…………

Vitaliy V. - нужно в user_chrome_files сразу включить 3 внешних демо-скрипта, (и может быть Greasemonkey скрипт, например с подсветкой указанных слов). Тогда каждый не будет задавать вопросы хотя-бы по подключению внешних скриптов!
P.S. у меня ушло много времени, чтобы "перерыть" форум и подключить код от CustomButtons и внешние скрипты…

Отредактировано Dobrov (15-04-2021 06:11:15)

Отсутствует

 

№996615-04-2021 12:53:13

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

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

Dobrov пишет

Я добавил загрузчик в custom_script_win.js в функцию load(), убрав первую и последнюю строки: (() => { ……… })();

В функцию load правильно, но обертку убирать не надо, чтобы не засорять функцию лишними переменными loadscript, load_scripts_by_url

Dobrov пишет

его можно и в custom_script.js включить?

Нет для
custom_script.js https://forum.mozilla-russia.org/viewto … 70#p788670
custom_script_all_win.js https://forum.mozilla-russia.org/viewto … 57#p784757


Dobrov пишет

нужно в user_chrome_files сразу включить 3 внешних демо-скрипта

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


Dobrov пишет

и может быть Greasemonkey скрипт

А это уже другая область, контента, можно использовать Frame script
Но framescript устарел, есть замена ему JSWindowActor
Вот пример JSWindowActor для user_chrome_files https://forum.mozilla-russia.org/viewto … 52#p788552
Есть смысл если скриптов Greasemonkey немного, иначе проще использовать менеджеры скриптов по их назначению.

Отсутствует

 

№996715-04-2021 16:46:11

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

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

Vitaliy V.
Почему иногда пропадает белый дроп ? Перезапуск нужен или очистка  всего...
nsmppixb.png
Сам код

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

@namespace html url("http://www.w3.org/1999/xhtml");
@-moz-document url("chrome://browser/content/browser.xhtml");

scrollbar,
scrollbar * {
    -moz-appearance: none !important;
    margin: 0px !important;
    padding: 0px !important;
        border: 0px !important;
    box-shadow: none !important;
    cursor: pointer;
}



scrollbar thumb[orient="vertical"]:hover {
    background: linear-gradient(to right, rgb(0, 196, 244), rgb(3, 96, 120))!important;
    border-radius: 0px !important;
   
}
scrollbar thumb[orient="horizontal"]:hover {
    background: linear-gradient(rgb(0, 196, 244), rgb(3, 96, 120))!important;
    border-radius: 0px !important;
   
}
scrollbar thumb[orient="vertical"]:active {
    background: linear-gradient(to right, red, #D90000, brown) !important;
    border-radius: 0px !important;
   
}
scrollbar thumb[orient="horizontal"]:active {
    background: linear-gradient(red, #D90000, brown) !important;
    border-radius: 0px !important;
   
}

scrollbar[orient="vertical"] {
    -moz-margin-start: 0px !important;
    max-width: 10px !important;
    min-width: 10px !important;
    background-image: -moz-linear-gradient(to right, #d1d2d4, #e3e4e6, #dadbdd);
        background-color: transparent;
    background-size: 10px 10px !important;
    box-shadow: 0 1px 6px hsla(0,0%,0%,.1) !important;
    background-repeat: repeat-y !important;
    background-position: 50% 0% !important;
   
}

scrollbar[orient="horizontal"] {
    margin-top: 0px !important;
    max-height: 10px !important;
    min-height: 10px !important;
      background-image: -moz-linear-gradient(#d1d2d4, #e3e4e6, #dadbdd);
      background-color: transparent;
    background-size: 10px 10px !important;
    background-repeat: repeat-x  !important;
    background-position: 0% 50% !important;
   
}



scrollbar > slider {
    -moz-appearance: none !important;
    background: none !important;
    border: none !important;
}


scrollbar thumb {
    border-radius: 12px !important;
    background-color: #555 !important;
    transition: all 0.4s !important;
    cursor: default !important;
}


menulist > dropmarker {
    -moz-appearance: none !important;
    min-width: 14px !important;
    width: 14px !important;
    height: auto !important;
    margin: 0 -1px -1px 0px !important;
    border: none !important;
    border-radius: 0px !important;
    background: linear-gradient(to right, rgb(0, 196, 244), rgb(3, 96, 120))!important;)!important;
    filter: none !important;
    list-style-image: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' height='5' width='5'><path d='M 0,0.75 2.5,3.25 5,0.75 5,1.75 2.5,4.25 0,1.75 Z' style='fill:white;shape-rendering:crispEdges'/></svg>") !important;
    -moz-box-align: center !important;
    -moz-box-pack: center !important;
}

scrollbar thumb[orient="vertical"] {
    min-height: 26px !important;
    width: 10px !important;
    min-width: 10px !important;
    max-width: 10px !important;
    background: linear-gradient(to right, #A0A0A0, #555) !important;
    border-radius: 0px !important;
}

scrollbar thumb[orient="horizontal"] {
    min-height: 26px !important;
    width: 10px !important;
    min-width: 10px !important;
    max-width: 10px !important;
    background: linear-gradient(#A0A0A0, #555) !important;
    border-radius: 0x !important;
}

scrollbar > slider > thumb:hover,
scrollbar > scrollbarbutton:hover,
html|select > html|button:hover {
    -moz-appearance: none !important;
    border: none !important;
    border-radius: 0px !important;
    background-color: #0080FF !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
    background-size: 8px, auto !important;
}

scrollbar > slider > thumb,
scrollbar > scrollbarbutton,
html|select > html|button {
    -moz-appearance: none !important;
    border: none !important;
    border-radius: 0px !important;
    background-color: #555 !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
    background-size: 8px, auto !important;
}
scrollbar[orient="vertical"],
scrollbar[orient="vertical"] > slider,
scrollbar[orient="vertical"] > slider > thumb {
    none !important;
    cursor: pointer !important;
}

scrollbar[orient="horizontal"],
scrollbar[orient="horizontal"] > slider,
scrollbar[orient="horizontal"] > slider > thumb {
    min-height: 10px !important;
    max-height: 10px !important;
    cursor: pointer !important;
}

scrollbar > scrollbarbutton {
    -moz-appearance: none !important;
    width: 10px !important;
    height: 10px !important;
   
}
scrollbar > slider > thumb:-moz-any(:active),
scrollbar > scrollbarbutton:not([disabled="true"]):-moz-any(:active),
menulist > dropmarker:not([disabled="true"])[open="true"],
html|select > html|button:-moz-any(:active) {
    background-color: #D90000 !important;
    cursor: pointer !important;
}

html|select > html|button {
    background-image: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' height='6' width='6'><path d='M 0,0.75 2.5,3.25 5,0.75 5,1.75 2.5,4.25 0,1.75 Z' style='fill:white;shape-rendering:crispEdges'/></svg>"), linear-gradient(to right, rgb(0, 196, 244), rgb(3, 96, 120))!important;
}

scrollbar > scrollbarbutton[type="increment"],
html|select > html|button[orientation="right"] {
    background-image: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' height='6' width='6'><path d='M 0.75,0 3.25,2.5 0.75,5 1.75,5 4.25,2.5 1.75,0 Z' style='fill:white;shape-rendering:crispEdges'/></svg>"), linear-gradient(to bottom, rgba(255,255,255,0.5), transparent) !important;
}

scrollbar[orient="vertical"] > scrollbarbutton[type="increment"] {
    background-image: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' height='6' width='6'><path d='M 0,0.75 2.5,3.25 5,0.75 5,1.75 2.5,4.25 0,1.75 Z' style='fill:white;shape-rendering:crispEdges'/></svg>"), linear-gradient(to right, rgba(255,255,255,0.5), transparent) !important;
}

scrollbar > scrollbarbutton[type="decrement"],
html|select > html|button[orientation="left"] {
    background-image: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' height='6' width='6'><path d='M 4.25,5 1.75,2.5 4.25,0 3.25,0 0.75,2.5 3.25,5 Z' style='fill:white;shape-rendering:crispEdges'/></svg>"), linear-gradient(to bottom, rgba(255,255,255,0.5), transparent) !important;
}

scrollbar[orient="vertical"] > scrollbarbutton[type="decrement"] {
    background-image: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' height='6' width='6'><path d='M 0,4.25 2.5,1.75 5,4.25 5,3.25 2.5,0.75 0,3.25 Z' style='fill:white;shape-rendering:crispEdges'/></svg>"), linear-gradient(to right, rgba(255,255,255,0.5), transparent) !important;
}


Влияет удаление этого из кеша запуска startupCache.4.little ....Ничего не понимаю. В настройках что-то уделал. Вроде наладилось.

Отредактировано ВВП (15-04-2021 18:14:56)

Отсутствует

 

№996816-04-2021 01:10:06

Dobrov
Участник
 
Группа: Members
Зарегистрирован: 04-10-2011
Сообщений: 475
UA: Firefox 84.0

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

Vitaliy V. пишет

( … в user_chrome_files сразу включить 3 внешних демо-скрипта )
Ну давайте пример таких скриптов, тут не может быть универсального способа если скрипты не написаны для user_chrome_files

Лучше всего в отдельный каталог-архив на гитхабе добавлять все скрипты форума, написанные для user_chrome_files!


скрипты, которые можно подключить в user_chrome_files (то есть в проект на гитхабе, чтобы проще обновлять):
custom_script_all_win.js > ucf_wheretoopenlink.js, ucf_SidebarTabs.js
custom_script.js > ucf-undo-tab.js, ucf-eom-button.js (знаю, что ucf-eom-button есть в дополнении add_toolbar_buttons.2021.2.20.xpi, но ведь user_chrome_files отдельное расширение)
custom_script_win.js > ucf_win_contextmenuopenwith.js (Открыть ссылку в), ucf_win_hookClick.js "клики для downloads-button" (в этот код просьба ещё включить код SaveHTML)

от себя: ucf_win_hookClick.js «добавить клики для downloads-button» (нужно добавить SaveHTML)

Выделить код

Код:

// в этот код желательно на Right-click добавить сохранение страницы/выделенного в единый файл с помощью CustomButton кнопки "SaveHTML"

(async (name, id, func) => {
	if (name == "Object") return CustomizableUI.createWidget(func());
	var win = name == "Window", g = Components.utils.import("resource://gre/modules/Services.jsm", {});
	if (g[id]) {if (win) return;} else g[id] = func();
	if (win) return CustomizableUI.createWidget(g[id]);
	addDestructor(r => r[5] == "e" && delete g[id]);
	g[id].onCreated(this);
})(this.constructor.name, "hookClick", () => { // BEGIN


(async id => { // добавить клики для downloads-button
	await window.delayedStartupPromise;
	var btn = document.getElementById("downloads-button");
	if (!btn) return;
	btn.setAttribute("context", "event.stopPropagation()"); // откл контекстное меню
	btn.tooltipText = GetDynamicShortcutTooltipText(btn.id) + '\nКолёсико:	Download Folder\nПравый клик:	Сохранить страницу';
	var listener = e => {
		if (e.button == 1) {
			Downloads.getSystemDownloadsDirectory().then(path => FileUtils.File(path).launch(), Cu.reportError); // Обзор папки «Загрузки»
		} else if (e.button == 2) {
			if (e.metaKey || e.ctrlKey || e.shiftKey) return;
			e.preventDefault();
			// this.SaveHTML(e);
			alert("Right-click");
		}
	}
	btn.addEventListener("click", listener);
	var ucf = window.ucf_custom_script_win || window.ucf_custom_script_all_win;
	ucf[id] = {destructor: () => btn.removeEventListener("click", listener)};
	ucf.unloadlisteners.push(id);
})("downloads-button-click-listener");

}); // END hookClicks

Три просьбы: доработать код ucf_win_hookClick.js - включить в него Сохранить страницу/выделенное как единый HTML-файл.


2) изменить ucf-undo-tab.js, сделать "Недавно закрытые вкладки" сразу в меню, то есть сделать меню таким:
• Показать весь журнал
• Восстановить все вкладки
• Удалить недавнюю историю
• подменю Недавно закрытые окна
… separator …
• далее строки недавно закрытых вкладок, как в кнопке Undo Close Tabs от infocatcher
И убрать drop marker, сделав кнопку единой: Клик мыши - Меню, правый клик - Восстановить вкладку, Колёсико - Восстановить окно (или Показать весь журнал).


3) объединить код в один, чтобы избавиться от отдельного скрипта UCFTitleChangedChild.jsm

UCFTitleChangedChild.jsm

Выделить код

Код:

ChromeUtils.registerWindowActor("UCFTitleChanged", {
	child: {
		moduleURI: "chrome://user_chrome_files/content/custom_scripts/UCFTitleChangedChild.jsm",
		events: {
			DOMTitleChanged: { capture: true },
		},
	},
	matches: ["https://forum.mozilla-russia.org", "https://www.google.com/search?*", "https://www.google.ru/search?*"],
	messageManagerGroups: ["browsers"],
});


====== UCFTitleChangedChild.jsm - отдельный скрипт ========
var EXPORTED_SYMBOLS = ["UCFTitleChangedChild"];

class UCFTitleChangedChild extends JSWindowActorChild {
	handleEvent(e) {
		var reg = /-\s*Поиск\s*в\s*Google$| \| Форум Mozilla Россия/;
		if (reg.test(this.document.title))
			this.document.title = this.document.title.replace(reg, "");
	}
}

Отредактировано Dobrov (16-04-2021 06:05:39)

Отсутствует

 

№996916-04-2021 13:31:13

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

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

Dobrov пишет

Лучше всего в отдельный каталог-архив на гитхабе добавлять все скрипты форума, написанные для user_chrome_files!

Возможно некоторые добавлю

Dobrov пишет

от себя: ucf_win_hookClick.js «добавить клики для downloads-button» (нужно добавить SaveHTML)

Что это вначале, зачем?

Dobrov пишет

доработать код ucf_win_hookClick.js - включить в него Сохранить страницу/выделенное как единый HTML-файл.

custom_script_win.js

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

Выделить код

Код:

(async id => { // добавить клики для downloads-button
	await window.delayedStartupPromise;
	var btn = document.getElementById("downloads-button");
	if (!btn) return;
	btn.setAttribute("context", "event.stopPropagation()"); // откл контекстное меню
	btn.tooltipText = GetDynamicShortcutTooltipText(btn.id) + '\nКолёсико:	Download Folder\nПравый клик:	Сохранить страницу';
	var listener = e => {
		if (e.button == 1) {
			Downloads.getSystemDownloadsDirectory().then(path => FileUtils.File(path).launch(), Cu.reportError); // Обзор папки «Загрузки»
		} else if (e.button == 2) {
			if (e.metaKey || e.ctrlKey || e.shiftKey) return;
			e.preventDefault();
			let vert=`javascript:(function(){var getSelWin=function(w){if(w.getSelection().toString())return w;for(var i=0,f,r;f=w.frames[i];i++){try{if(r=getSelWin(f))return r}catch(e){}}};var selWin=getSelWin(window),win=selWin||window,doc=win.document,loc=win.location;var qualifyURL=function(url,base){if(!url||/^([a-z]+:|%23)/.test(url))return url;var a=doc.createElement('a');if(base){a.href=base;a.href=a.protocol+(url.charAt(0)=='/'%3F(url.charAt(1)=='/'%3F'':'//'+a.host):'//'+a.host+a.pathname.slice(0,(url.charAt(0)!='%3F'&&a.pathname.lastIndexOf('/')+1)||a.pathname.length))+url}else{a.href=url};return a.href};var encodeImg=function(src,obj){var canvas,img,ret=src;if(/^https%3F:%5C/%5C//.test(src)){canvas=doc.createElement('canvas');if(!obj||obj.nodeName.toLowerCase()!='img'){img=doc.createElement('img');img.src=src}else{img=obj};if(img.complete)try{canvas.width=img.width;canvas.height=img.height;canvas.getContext('2d').drawImage(img,0,0);ret=canvas.toDataURL((/%5C.jpe%3Fg/i.test(src)%3F'image/jpeg':'image/png'))}catch(e){};if(img!=obj)img.src='about:blank'};return ret};var toSrc=function(obj){var strToSrc=function(str){var chr,ret='',i=0,meta={'%5Cb':'%5C%5Cb','%5Ct':'%5C%5Ct','%5Cn':'%5C%5Cn','%5Cf':'%5C%5Cf','%5Cr':'%5C%5Cr','%5Cx22':'%5C%5C%5Cx22','%5C%5C':'%5C%5C%5C%5C'};while(chr=str.charAt(i++)){ret+=meta[chr]||chr};return'%5Cx22'+ret+'%5Cx22'},arrToSrc=function(arr){var ret=[];for(var i=0;i<arr.length;i++){ret[i]=toSrc(arr[i])||'null'};return'['+ret.join(',')+']'},objToSrc=function(obj){var val,ret=[];for(var prop in obj){if(Object.prototype.hasOwnProperty.call(obj,prop)&&(val=toSrc(obj[prop])))ret.push(strToSrc(prop)+': '+val)};return'{'+ret.join(',')+'}'};switch(Object.prototype.toString.call(obj).slice(8,-1)){case'Array':return arrToSrc(obj);case'Boolean':case'Function':case'RegExp':return obj.toString();case'Date':return'new Date('+obj.getTime()+')';case'Math':return'Math';case'Number':return isFinite(obj)%3FString(obj):'null';case'Object':return objToSrc(obj);case'String':return strToSrc(obj);default:return obj%3F(obj.nodeType==1&&obj.id%3F'document.getElementById('+strToSrc(obj.id)+')':'{}'):'null'}};var ele,pEle,clone,reUrl=/(url%5C(%5Cx22%3F)(.+%3F)(%5Cx22%3F%5C))/g;if(selWin){var rng=win.getSelection().getRangeAt(0);pEle=rng.commonAncestorContainer;ele=rng.cloneContents()}else{pEle=doc.documentElement;ele=(doc.body||doc.getElementsByTagName('body')[0]).cloneNode(true)};while(pEle){if(pEle.nodeType==1){clone=pEle.cloneNode(false);clone.appendChild(ele);ele=clone};pEle=pEle.parentNode};var sel=doc.createElement('div');sel.appendChild(ele);for(var el,all=sel.getElementsByTagName('*'),i=all.length;i--;){el=all[i];if(el.style&&el.style.backgroundImage)el.style.backgroundImage=el.style.backgroundImage.replace(reUrl,function(a,b,c,d){return b+encodeImg(qualifyURL(c))+d});switch(el.nodeName.toLowerCase()){case'link':case'style':case'script':el.parentNode.removeChild(el);break;case'a':case'area':if(el.hasAttribute('href')&&el.getAttribute('href').charAt(0)!='%23')el.href=el.href;break;case'img':case'input':if(el.hasAttribute('src'))el.src=encodeImg(el.src,el);break;case'audio':case'video':case'embed':case'frame':case'iframe':if(el.hasAttribute('src'))el.src=el.src;break;case'object':if(el.hasAttribute('data'))el.data=el.data;break;case'form':if(el.hasAttribute('action'))el.action=el.action;break}};var head=ele.insertBefore(doc.createElement('head'),ele.firstChild);var meta=doc.createElement('meta');meta.httpEquiv='content-type';meta.content='text/html; charset=utf-8';head.appendChild(meta);var title=doc.getElementsByTagName('title')[0];if(title)head.appendChild(title.cloneNode(true));head.copyScript=function(){if('$'in win)return;var f=doc.createElement('iframe');f.src='about:blank';f.setAttribute('style','position:fixed;left:0;top:0;visibility:hidden;width:0;height:0;');doc.documentElement.appendChild(f);var str,script=doc.createElement('script');script.type='text/javascript';for(var name in win){if(name in f.contentWindow||!/^[a-zA-Z_$][0-9a-zA-Z_$]*$/.test(name))continue;try{str=toSrc(win[name]);if(!/%5C{%5Cs*%5C[native code%5C]%5Cs*%5C}/.test(str)){script.appendChild(doc.createTextNode('var '+name+' = '+str.replace(/<%5C/(script>)/ig,'<%5C%5C/$1')+';%5Cn'))}}catch(e){}};f.parentNode.removeChild(f);if(script.childNodes.length)this.nextSibling.appendChild(script)};head.copyScript();head.copyStyle=function(s){if(!s)return;var style=doc.createElement('style');style.type='text/css';if(s.media&&s.media.mediaText)style.media=s.media.mediaText;try{for(var i=0,rule;rule=s.cssRules[i];i++){if(rule.type!=3){if((!rule.selectorText||rule.selectorText.indexOf(':')!=-1)||(!sel.querySelector||sel.querySelector(rule.selectorText))){style.appendChild(doc.createTextNode(rule.cssText.replace(reUrl,function(a,b,c,d){var url=qualifyURL(c,s.href);if(rule.type==1&&rule.style&&rule.style.backgroundImage)url=encodeImg(url);return b+url+d})+'%5Cn'))}}else{this.copyStyle(rule.styleSheet)}}}catch(e){if(s.ownerNode)style=s.ownerNode.cloneNode(false)};this.appendChild(style)};var sheets=doc.styleSheets;for(var j=0;j<sheets.length;j++)head.copyStyle(sheets[j]);head.appendChild(doc.createTextNode('%5Cn'));var doctype='',dt=doc.doctype;if(dt&&dt.name){doctype+='<!DOCTYPE '+dt.name;if(dt.publicId)doctype+=' PUBLIC %5Cx22'+dt.publicId+'%5Cx22';if(dt.systemId)doctype+=' %5Cx22'+dt.systemId+'%5Cx22';doctype+='>%5Cn'};var href = 'data:text/html;charset=utf-8,' + encodeURIComponent(doctype + sel.innerHTML + '\n<!-- This document saved from ' + (loc.protocol != 'data:' ? loc.href : 'data:uri') + ' -->');var a = document.documentElement.appendChild(document.createElement("a"));a.setAttribute("href", href);var name = selWin ? win.getSelection().toString() : (title && title.text ? title.text : loc.pathname.split('/').pop());name=name.replace(/[:\\\/<>?*|"]+/g, '_').replace(/\s+/g, ' ').slice(0, 100).replace(/^\s+|\s+$/g, '');name += (function () {var d = new Date(), z=function(n){return '_' + (n < 10 ? '0' : '') + n};return z(d.getHours()) + z(d.getMinutes()) + z(d.getSeconds());})();a.setAttribute("download", name + ".html");a.click();a.remove();})();`;
            gBrowser.loadURI(vert, {triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal()});
		}
	}
	btn.addEventListener("click", listener);
	var ucf = window.ucf_custom_script_win || window.ucf_custom_script_all_win;
	ucf[id] = {destructor: () => btn.removeEventListener("click", listener)};
	ucf.unloadlisteners.push(id);
})("downloads-button-click-listener");

Dobrov пишет

изменить ucf-undo-tab.js, сделать "Недавно закрытые вкладки" сразу в меню, то есть сделать меню таким:

Ну примерно так в add_toolbar_buttons но с дропмаркером

Dobrov пишет

объединить код в один, чтобы избавиться от отдельного скрипта UCFTitleChangedChild.jsm

Объединить можно но модуль jsm нужен

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

Выделить код

Код:

var EXPORTED_SYMBOLS = ["registerUCFTitleChanged", "UCFTitleChangedChild"];

function registerUCFTitleChanged() {
    ChromeUtils.registerWindowActor("UCFTitleChanged", {
        child: {
            moduleURI: "chrome://user_chrome_files/content/custom_scripts/UCFTitleChangedChild.jsm",
            events: {
                DOMTitleChanged: { capture: true },
            },
        },
        matches: ["https://forum.mozilla-russia.org/*", "https://www.google.com/search?*", "https://www.google.ru/search?*"],
        messageManagerGroups: ["browsers"],
    });
}

class UCFTitleChangedChild extends JSWindowActorChild {
    handleEvent(e) {
        var reg = /-\sПоиск\sв\sGoogle$|\s\|\sФорум\sMozilla\sРоссия$/;
        if (reg.test(this.document.title))
            this.document.title = this.document.title.replace(reg, "");
    }
}


и запуск из custom_script.js или из других скриптов но один раз
скрытый текст

Выделить код

Код:

ChromeUtils.import("chrome://user_chrome_files/content/custom_scripts/UCFTitleChangedChild.jsm", {})
.registerUCFTitleChanged();

Отсутствует

 

№997016-04-2021 17:29:54

Алексей У.
Участник
 
Группа: Members
Зарегистрирован: 10-04-2021
Сообщений: 182
UA: Firefox 68.0

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

Как сделать такое же оформление для кнопок панели меню, панелей инструментов и закладок в режимах hover и active?
BEZYMYNNYI.jpg

Отсутствует

 

№997116-04-2021 20:35:42

казявка
Участник
 
Группа: Members
Зарегистрирован: 13-08-2014
Сообщений: 139
UA: Firefox 89.0

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

в последней Ночнушке 89.0a1 в закладках расстояние между ними по вертикали стало очень большое - скажите как уменьшить по вертикали (сжать) расстояние между закладками?
Bezymyannyj2.1618594520.png

Отсутствует

 

№997216-04-2021 21:25:03

sandro79
Участник
 
Группа: Members
Зарегистрирован: 15-11-2017
Сообщений: 1750
UA: Firefox 78.0

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

казявка пишет

скажите как уменьшить по вертикали (сжать) расстояние между закладками?

Эта настройка, или можно кодом и для других  подобных меню

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

Выделить код

Код:

:root {
        --arrowpanel-menuitem-padding-block: 0px !important;
}

Войдите или зарегистрируйтесь, чтобы увидеть скрытый текст.

Отсутствует

 

№997316-04-2021 21:43:12

казявка
Участник
 
Группа: Members
Зарегистрирован: 13-08-2014
Сообщений: 139
UA: Firefox 89.0

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

sandro79

sandro79 пишет

Эта настройка,........

отлично! спс! эта настройка помогла!
Bezymyannyj2.1618598492.png

Отсутствует

 

№997417-04-2021 01:14:26

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

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

Bug 1702013 - Re-introduce "view image info" in the context menu behind a hidden (about:config) pref and enable that pref by default in devedition


Status: RESOLVED FIXED
Milestone: 89 Branch


browser.menu.showViewImageInfo

Отсутствует

 

№997517-04-2021 01:43:35

xrun1
Участник
 
Группа: Members
Зарегистрирован: 12-12-2013
Сообщений: 1224
UA: Firefox 87.0

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

Не скажу касательно ночнушек, не пользуюсь и проверить не смогу. Код отсюда, второй спойлер.

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

Выделить код

Код:

#BMB_bookmarksPopup .subviewbutton {
    min-height: 18px !important;
    padding-top: 1px !important;
    padding-bottom: 1px !important;
}

Добавлено 17-04-2021 02:09:21

Dumby пишет

browser.menu.showViewImageInfo

Ага, значит всё таки баг. А я всё голову ломал, зачем выпилили этот пункт меню

Отредактировано xrun1 (17-04-2021 02:09:21)

Отсутствует

 

Board footer

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