LINUX.ORG.RU

Избранные сообщения schlae

Firefox. А я таки нашёл правильную настройку для своей системы

Форум — Desktop

Я множество раз жаловался на FF по поводу неплавного скроллинга, излагал свою историю, но так и не получил пинка в нужную сторону. Объяснить это нетрудно: на быстрых компах этого не замечают; просто забивают на всратый скроллинг; на вяленом такой проблемы нет.

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

Железо: проц — i3-4330 3.50GHz x 4 (виртуально. Реально два), встройка — HD 4600 (HSW GT2). Короче, очень старый — умеет VAAPI только для H.264 (это не проблема, так как ютуб и прочие платформы такой формат дают).
Софт: Иксы, гном-3.32.2.

Итак, счастье закончилось на FF-87 — последующие версии превращали скроллинг в слайдшоу при:

user_pref("gfx.x11-egl.force-enabled", true);

Ладно, 87 оставил для ютуба, ибо на последующих версиях скроллинг снова становился отличный при:

user_pref("gfx.x11-egl.force-disabled", true);

Разумеется VAAPI больше не работает (ну и фиг с ним, удобство и приятность важнее, чем видосы).

Однако, где-то начиная с версии 116 (точнее не скажу, но в 115_ESR было всё хорошо, вот на днях только удалил) ещё что-то доломали, то есть в ESR_128 уже и при выключенном EGL скроллинг опять испортился, но не так критично, просто какой-то периодически дёрганный стал. В общем жить было можно, но неприятно, поэтому я сидел на 115 до… пока не нашёл то, что искал ВОТ ЗДЕСЬ.

user_pref("gfx.swap-interval.egl", true);

Всё, теперь приятно скроллит и видосы показывает с хардверным ускорением на всех новых версиях FF.

На всякий случай выложу настройки, которые всё это делают на подобном железе и софте (может кому-то пригодится).

user_pref("gfx.swap-interval.egl", true);
user_pref("gfx.x11-egl.force-enabled", true);
user_pref("media.ffmpeg.vaapi.enabled", true);
user_pref("media.ffmpeg.low-latency.enabled", true);
user_pref("media.webm.enabled", false); // играет только mp4 & m4a
user_pref("layers.acceleration.force-enabled", true);
user_pref("webgl.force-enabled", true);
user_pref("dom.webgpu.enabled", true);
user_pref("gfx.webrender.all", true);

UPD


Анон подтолкнул потестить и вроде всё работает так же хорошо только с этими настройками.

user_pref("gfx.swap-interval.egl", true);
user_pref("media.ffmpeg.vaapi.enabled", true);
user_pref("media.webm.enabled", false); // только mp4 & m4a

(для новичков в FF: не забывайте отменять настройки в about:config или удалять их из prefs.js, который лежит в каталоге профиля, если просто комментируете или удаляете настройки в user.js)

 , , ,

papin-aziat
()

Помогите допилить управлялку расположения и геометрии клиентов с клавиатуры

Форум — Desktop

Год и два года назад как-то поднимал уже эту тему, но не срослось.

Демка гифка, чтобы не читать много текста ниже: http://i.imgur.com/cpKRBXM.gif

Подробнее: управлять размещением клиента, а именно размещать его по частям текущего дисплея при этом подгоняя его геометрию.

Например: есть фокус-клиент, я нажимаю на mod4 + 9 на нампаде, т.е. верхнюю правую кнопку (KP_Prior), что означает, что клиент должен переместиться в верхний правый угол текущего дисплея и иметь геометрию четверти дисплея:

+---------------------+  +---------------------+  +---------------------+
| +---------+         |  | +-----------------+ |  |         +---------+ |
| |    7    |         |  | |         8       | |  |         |    9    | |
| |         |         |  | |                 | |  |         |         | |
| +---------+         |  | +-----------------+ |  |         +---------+ |
|                     |  |                     |  |                     |
|                     |  |                     |  |                     |
|                     |  |                     |  |                     |
|                     |  |                     |  |                     |
+---------------------+  +---------------------+  +---------------------+
+---------------------+  +---------------------+  +---------------------+
| +---------+         |  | +-----------------+ |  |         +---------+ |
| |         |         |  | |                 | |  |         |         | |
| |         |         |  | |                 | |  |         |         | |
| |    4    |         |  | |        5        | |  |         |    6    | |
| |         |         |  | |                 | |  |         |         | |
| |         |         |  | |                 | |  |         |         | |
| |         |         |  | |                 | |  |         |         | |
| +---------+         |  | +-----------------+ |  |         +---------+ |
+---------------------+  +---------------------+  +---------------------+
+---------------------+  +---------------------+  +---------------------+
|                     |  |                     |  |                     |
|                     |  |                     |  |                     |
|                     |  |                     |  |                     |
|                     |  |                     |  |                     |
| +---------+         |  | +-----------------+ |  |         +---------+ |
| |    1    |         |  | |         2       | |  |         |    3    | |
| |         |         |  | |                 | |  |         |         | |
| +---------+         |  | +-----------------+ |  |         +---------+ |
+---------------------+  +---------------------+  +---------------------+
Управление кнопками нампада в целом такое (расположение / геометрия), mod4+:

  • 1  — левый нижний угол / пол длины / пол высоты
  • 2  — нижняя часть / вся длина / пол высоты
  • 3  — правый нижний угол / пол длины / пол высоты
  • 4  — левая часть / пол длины / вся высота
  • 5  — максимизация (типа mod4+M, но без переключения режима floating)
  • 6  — правая часть / пол длины / вся высота
  • 7  — левый верхний угол / пол длины / пол высоты
  • 8  — верхняя часть / вся длина / пол высоты
  • 9  — верхний правый угол / пол длины / пол высоты

Для одно-мониторной конфигурации я запилил уже давно:

local wa = screen[mouse.screen].workarea -- текущий screen
local ph = 22 -- высота панели
local ww = wa.width -- длина текущего screen
local wh = wa.height -- высота текущего screen

clientkeys = awful.util.table.join(

awful.key({modkey}, "KP_Left",  function (c) c:geometry( { width = ww / 2, height = wh, x = 0, y = ph } ) end),
awful.key({modkey}, "KP_Right", function (c) c:geometry( { width = ww / 2, height = wh, x = ww / 2, y = ph } ) end),
awful.key({modkey}, "KP_Up",    function (c) c:geometry( { width = ww, height = wh / 2, x = 0, y = ph } ) end),
awful.key({modkey}, "KP_Down",  function (c) c:geometry( { width = ww, height = wh / 2, x = 0, y = wh / 2 + ph } ) end),
awful.key({modkey}, "KP_Prior", function (c) c:geometry( { width = ww / 2, height = wh / 2, x = ww / 2, y = ph } ) end),
awful.key({modkey}, "KP_Next",  function (c) c:geometry( { width = ww / 2, height = wh / 2, x = ww / 2, y = wh / 2 + ph } ) end),
awful.key({modkey}, "KP_Home",  function (c) c:geometry( { width = ww / 2, height = wh / 2, x = 0, y = ph } ) end),
awful.key({modkey}, "KP_End",   function (c) c:geometry( { width = ww / 2, height = wh / 2, x = 0, y = wh / 2 + ph } ) end),
awful.key({modkey}, "KP_Begin", function (c) c:geometry( { width = ww, height = wh, x = 0, y = ph } ) end),

)
Всё отлично работает, но когда два дисплея, начиная каша малаша, почему-то не хочет считать геометрию и расположение фокусного скрина, от чего плясать нужно? Не screen[mouse.screen]? Тогда что? Помогите допилить, может и вам (это очень удобно, отвечаю!) пригодится и вашим родственникам и друзьям.

sudo cast actionless, Worron, fjfalcon, zhuravlik, Faiver, r3lgar; (простие, если вы бог осома, а я вас запамятовал).

Спасибо.

 , ,

kep
()