LINUX.ORG.RU

Сообщения wandrien

 

Чиним тормоза и зависоны GRUB

По результатам вчерашнего изучения ситуации с зависанием os-prober-а, о чем писал в теме Немейнстримные RPM-based дистрибутивы: зачем и почему (комментарий)

По итогу причиной оказалась запредельная крутизна O()-метрики алгоритма из-за некачественного кода.

Проблем оказалось две. Первая затрагивает логику работы утилиты grub-mount. А вторая общую логику работы файловой подсистемы GRUB. Вот они:

  1. https://github.com/wandrien/grub/issues/1

  2. https://github.com/wandrien/grub/issues/2

Вот ветка с фиксом для 1-й проблемы: https://github.com/wandrien/grub/commits/grub-mount-fixes

2-й еще не занимался.

Я пока не стал писать в апстрим. Загрузил код на гитхаб и там же разместил тексты багрепортов. Как сформирую цельный пачсет, тогда напишу в апстрим на Саванну.

Желающие помочь с кодом/пул-реквестами/тестированием/исправлением моего английского/умными идеями - are welcome.

Да, по второму багу. Знаете, что GRUB делает на каждом вызове функции grub_file_open()? Каждый раз заново детектирует файловую систему на разделе.

Я пока не знаю, разумного объяснения, почему так сделано. Ну то есть… если это сделано специально?

Пока что считаю, что это просто было сделано по принципу «работает и ладно», и поэтому исправить проблему труда не составит. Дальше посмотрим…

 ,

wandrien
()

А gnu и fsf вообще живое?

Я сейчас заглянул в список важных проектов на сайте gnu. А там знаете что? Реализация поддержки грамматического рода существительных для словаря. Не шучу:

Modify aspell or hunspell to handle a gender dictionary. The gender dictionary for a given language would record the gender of each known word, if it has a gender.

The purpose of this is to enhance the command to check a single word. It should report the word’s gender, if the dictionary states its gender. Then we could extend the command M-$ in GNU Emacs to report the word’s gender. Other editors could be extended likewise.

Most of us know of languages where the genders are “male”, “female” or perhaps “neuter”. However, some languages classify nouns in other ways. In linguistic terms, any classification of nouns into categories is called “gender”. This feature should let the gender dictionary specify any set of genders and classify nouns into them. It should handle whatever set of genders the current dictionary defines.

Some languages use suffixes on verb forms to classify the subject by gender. It would be useful if the extension can analyze a verb form and say which gender it applies to its subject, object, or other related nominal.

Всё, это полный список. Только один пункт.

Все другие проблемы и задачи решены, я так понимаю. Все деньги ушли на мероприятия, выставки-поездки?

 ,

wandrien
()

Нескучный экран загрузки как сама бесполезная программа

Скажите, а я один не понимаю смысл существования этого графического экрана загрузки с прогрессбаром? Оно появилось и существует чтобы что? Даже создание очередного текстового редактора с нуля выглядит менее бессмысленно, чем эта программа.

  • Текстовый лог загрузки показывает наглядно, что происходит. Если что-то пойдёт не так, то сразу будет видно. А с plymouth бывали ситуации, когда он в случае проблемы просто не отключается по esc, и лог не видно никак.
  • Текстовый лог это на самом деле прикольно. Машина работает, видно, как она функционирует. Это фишка. Она интересная.
  • Даже если у вас машина грузится 2 секунды, то 2 страницы текста, которые промелькнут за эти 2 секунды, как бы говорят: «Ого, смотри как быстро. Это 2023-й год, ёлки-моталки!» А если ты две секунды смотришь на статичный экран, то успеваешь подумать о том, что комп всё еще грузится не слишком быстро.
  • Ну и у systemd реально красивый загрузочный лог. Уж точно симпатичнее абстрактных картинок.

 ,

wandrien
()

Подсчёт размеров каталогов по заданному списку файлов

Дан список файловых путей и их размеры:

dir1/subdir1/filename1 100
dir1/subdir1/filename2 1000
dir1/subdir2/filename1 3000
dir2/subdir1/filename1 10
dir2/subdir1/filename2 10
dir2/subdir1/filename3 10

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

. 4130 6
dir1/ 4100 3
dir1/subdir1/ 1100 2
dir1/subdir2/ 3000 1
dir2/ 30 3
dir2/subdir1/ 30 3

Тут, собственно, два пути. Или написать скрипт на awk. Или взять исходники du на Си и добавить в них этот режим. Вы бы какой вариант выбрали?

А может уже есть готовый скрипт для этого, и мне не придётся возиться с awk-ом?

 ,

wandrien
()

Исправить старый пост в архиве форума

@hobbit Можно поменять оба линка вот тут в связи со сменой домена у сайта?

Новый линк - https://wandrien.github.io/articles/tty/

 

wandrien
()

Немейнстримные RPM-based дистрибутивы: зачем и почему

Существует семейство RPM-based дистрибутивов, которые позиционируют себя как решения для десктопа. Как минимум, вспомнились:

  • PCLinuxOS
  • OpenMandriva Lx
  • Mageia
  • ROSA

Может еще какие есть.

Хотелось бы услышать мнение тех, кто пользовался этими продуктами. Что они собой представляют, зачем нужны, плюсы/минусы, реальный опыт использования.

Сам я из всего этого десктопного зоопарка пользовался только Mandrake 10 (неплохая была ОС для своего времени; да и трава раньше была зеленее) и SUSE 9.

Кстати про современное состояние openSUSE тот же вопрос. Это вроде серьёзный проект с историей, но сам я давно с ним дела не имел, и хотелось бы услышать, что там и как в наше время.

Перемещено hobbit из talks

 , , , ,

wandrien
()

Прибитые к ./configure --prefix=/usr программы...

Я тут компилируя gcc, случайно обнаружил, что он прекрасно себя чувствует и работает, будучи размещен по абсолютно любому пути. Вовсе не обязательно, чтобы это был тут путь, который указан в ./configure --prefix=/prefix. Он просто берёт относительный путь от своего бинарника и находит там свои файлы.

При чем это не какое-то нововведение. Функция make_relative_prefix(), которой он пользуется, входит в состав древней как GNU библиотеки libiberty.

То есть собираем gcc, например, с ./configure --prefix=/fake-usr, а потом копируем установочный каталог в любое место хомяка и без проблем пользуемся. Даже не нужно вручную ему пути подсовывать через ключ -B или переменные окружения.

Собственно, вопрос…

Почему куча остальных программ написана через задницу?

Почему использование make_relative_prefix() или её аналога не входит в best practices и не описывает в туториалах по сборке программ под линукс?

Почему всё типичное, что может прочитать an average developer о сборке ПО для линукс - это то, как захардкодить фиксированный prefix через аутотулзы, cmake и т.п.?

 , ,

wandrien
()

systemd и половинчатые решения

Слава Поттерингу, в Linux системные учётные записи создаются декларативно.

Но вот почему… почему нельзя было уже исправить проблему пространства имён, чтобы системные учётки не конфликтовали с пользовательскими? Вон Эппл же смогла.

При чем проблема обсуждалась в Дебиане аж 2008-м году. Но в Дебиане могут только обсуждать. Видимо, пока Поттеринг не доберётся до этого, так и будет бардак.

 ,

wandrien
()

Вопросы по KDE

Поставил Manjaro с KDE в VBox, чтобы посмотреть, что там в современных кедах. Тема для всплывающих по ходу дела вопросов.

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

  2. В таскбаре есть кнопка с надписью «Временно освобождает рабочий стол, перемещая открытые окна в углы экрана». У меня она ничего никуда не перемещает, просто скрывает окна. Вопрос снят, это ошибка перевода, похоже. На англ. текст по смыслу иной.

  3. Есть возможность сделать, чтобы по Alt+Tab листалка показывалась мгновенно, а не с задержкой? Я понимаю, что это by design скорее всего, но это выглядит неопрятно, будто система лагает.

 , ,

wandrien
()

Вот я и докатился - 2 (c)

По мотивам: Вот я и докатился

Арчик надо было накатывать лет 15 назад. Как-то время-то упущено теперь. А сейчас самое то — накатывать FreeBSD уже.

В связи с тем, что в GNUтой экосистеме уже практически окончательно закончились программисты.

 , ,

wandrien
()

Баг колоризатора для ```

На следующем примере без указания параметра c форматирование теста сохраняется, а с указанием — теряется.

  out_file = (filename_option == 0 && num_operands <= 1
              ? - (directories == RECURSE_DIRECTORIES)
              : 0 <= filename_option);
  out_file = (filename_option == 0 && num_operands <= 1
              ? - (directories == RECURSE_DIRECTORIES)
              : 0 <= filename_option);

 , ,

wandrien
()

Краткая история о том, как не надо писать (и улучшать) код

По мотивам разговора в Почему программы на с++ тормозят :) решил оформить это отдельной темой.

В исходниках GNU grep я наткнулся на такое:

/* Whether to output filenames.  1 means yes, 0 means no, and -1 means
   'grep -r PATTERN FILE' was used and it is not known yet whether
   FILE is a directory (which means yes) or not (which means no).  */
static int out_file;
  /* Which command-line options have been specified for filename output.
     -1 for -h, 1 for -H, 0 for neither.  */
  int filename_option = 0;
  /* Don't output file names if invoked as 'grep -r PATTERN NONDIRECTORY'.  */
  if (out_file < 0)
    out_file = !!S_ISDIR (st.st_mode);

Тут явно напрашивается enum вместо магических констант. О чем я сразу подумал. А дальше в коде я наткнулся еще на такой однострочник, с которым без поллитры не разобраться:

  out_file = (filename_option == 0 && num_operands <= 1
              ? - (directories == RECURSE_DIRECTORIES)
              : 0 <= filename_option);

В общем, я подумал, что эта лапша наверное родом откуда-то из конца 80-х - начала 90-х, когда код писали в «хакерских традициях». Но нет. Всё это безобразие было введено в 2019-м году в 3-х коммитах под следующими заголовками:

Автор сначала ввёл enum-ы как разумный разработчик. А потом выкинул их, заменив на числа и магические операции сравнения а ля больше/меньше/равно нулю.

Не делайте так. Не хакерствуйте над битами как для конкурса IOCCC.

 , ,

wandrien
()

Очумелые ручки, Bedrock, Debian и все-все-все

Всем привет, народ, и особенно - тем, кого помню. Давно не заглядывал.

Валялась у меня тут Live-флешка с Арчем, завернутым в Bedrock. Bedrock - это такой докер наоборот. Прикольная штука, позволяет миксовать софт из разных дистрибутивов в произвольных сочетаниях. (А вот еще какая-то обзорная статья на хабре, не моя.) Валялась без дела год, а сегодня попалась на глаза и решил запустить её.

Пока обновлялся Арч, решил поставить туда же Дебиан. Ну раз есть Бедрок, надо его использовать, а ставить на флешку еще один дистр с роллингом смысла нет. А если с фиксированными релизами - ну тогда Дебиан, очевидно же. И лучше сразу 12-й, потому что к тому времени, как я в следующий раз про эту флешку вспомню, он как раз успеет релизнуться. Апдейтнул Bedrock, развернул Debian в новой страте, чрутнулся туда, немножко настроил, поставил рандомного софта поиграться. Ребутнулся. Загрузился в дебиановский юзерлэнд на арчевском ядре. Ну прикольно. Всё работает, проблем нигде не вылезло.

Потыкал в разные DE. Внезапно прямо хорошо зашла мне XFCE. Лаконичная. Просто симпатичная по дефолту, без выкрутасов. Необходимый минимум настроек и фич есть, и ничем лишним не перегружена. Захотелось на ней и остаться.

И пока тестировал разные конфигурации, включал-отключал страты, созрела идея:

Делаем brl hide Arch, релогаемся - вся куча прикладного софта, поставленного под Арчем, попадает из меню приложений и из PATH. Остаётся чистый Debian с XFCE и минимумом софта. Делаем brl show Arch, релогаемся - в меню снова куча приложений. Хм… Да это же мысль. Я же этого джвадцать лет ждал.

  • Стабильный Дебиан можно использовать в качестве основной ОС, в качестве платформы, на которой работает графический сеанс, DE и основные средства управления компом. Там будут чёткие неизменные версии основных компонентов.
  • В Арч ставим приложения, которые хочется иметь максимально свежими без оглядки на релиз-цикл дистрибутива. В моём случае это, например, Firefox, Libreoffice, gimp и т.п. Плюс удобно ставить софт из AUR.
  • В дополнительные страты по необходимости ставим другие версии дебиана или убунты или чего угодно, где есть нужный софт. Например, мне нужен 5-й kicad, потому что на 6-й лень мигрировать, а 5-й и так меня устраивает. Вот в 11-м Дебиане как раз нужная версия, оттуда и ставим.

И получается функциональный аналог этих ихних рантайм-сред от флатпака, но намного более крутой.

Потому что:

  • Флатхаб не хранит старые версии, это не входит в его задачи. А в архиве Дебиана любые версии хранятся, как показывает практика, вечно. И в любой момент нужную версию можно поставить.
  • Абсолютно любой диструбутив - это уже готовый рантайм для приложений без необходимости изобретать квадратное колесо.
  • Можно свободно сочетать не только разные рантаймы и версии приложений, но и низкоуровневые части системы. Можно легко и удобно использовать ядра от любых диструбутивов, можно менять базовую систему отдельно от приложений и т.п.
  • Можно мигрировать между дистрибутивами настолько, насколько самому пользователю удобно. Вот выйдет когда-то следующий 13-й Дебиан, и я могу сразу использовать отдельные приложения от него, при этом сидя по больше части на 12-м. Не бэкпортировать, а просто юзать как есть. А потом захочу перейти на 13-й - просто доустановлю туда нужные пакеты, выберу другой пункт меню при загрузке, и вот я уже в 13-м. Без всяких дист-апгрейдов и без созданий новых разделов.
  • Да что там, можно хоть сейчас ставить из Sid-а пакеты в отдельной страте, и при этом в основной системе гарантированно ничего не сломается.
  • В изолированных стратах проще организовать сборочное окружение для пакетов, нежели плясать вокруг докера. Как видимость страты другими стратами снаружи, так и видимость изнутри страты наружу - легко управляются командой brl. Также легко для всех страт настраивается глобальная часть пространства файловых имён.

Тут можно еще вспомнить виндовую технологию SxS для библиотек (Side-by-Size сборки), но лучше даже не вспоминать, потому что в Бедроке концепция и возможности на голову выше.

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

Короче, советую попробовать, товарищи энтузиасты. Я чо-т протащился с этого. Буду дальше экспериментировать в эту сторону.

З.Ы. В очередной раз обновляя Арч, который не обновлялся то ли полгода, то ли год, подумал о том, что никогда ничего «само» не разваливается, если только специально не толкать руки себе в задницу. Ни под Арчем, ни под Дебианом, ни под другими адекватными дистрибутивами. ЧЯДНТ?

З.З.Ы. Модератор, создай тэг bedrock, таки да.

 , , ,

wandrien
()

Операционная система Атлант

Красноярские программисты создали на базе Linux собственную операционную систему «Атлант», не имеющую аналогов: она позволяет удаленно управлять парком из тысяч персональных компьютеров и дистанционно обновлять на них софт без остановки рабочих процессов. Newslab поговорил с главой фирмы-разработчика и выяснил, как им удалось совершить прорыв в мире IT-бизнеса.

В общем, если без пафоса, то они сделали ПО для управления Linux-машинами в домене и продают лицензии на него.

Презентация: https://rutube.ru/video/b662f26954f52be0a7a7da819644c49f/

Интервью с разрабами: https://newslab.ru/article/999309

Официальный сайт: https://applite.ru/atlant

Что думаете?

 

wandrien
()

killall больше не killall

Расскажите мне, чего я не знаю. После апдейта ОС команды killall и pgrep перестали видеть firefox:

vadim@aquila:~$ killall -KILL firefox 
firefox: процесс не найден
Status: 1
vadim@aquila:~$ pgrep firefox 
Status: 1
vadim@aquila:~$ ps -A -o cmd | grep firefox | head -3
/usr/lib/firefox/firefox -ProfileManager --new-instance
/usr/lib/firefox/firefox -contentproc -parentBuildID 20211121002925 -prefsLen 1 -prefMapSize 253532 -appdir /usr/lib/firefox/browser 5002 true socket
/usr/lib/firefox/firefox -contentproc -childID 2 -isForBrowser -prefsLen 197 -prefMapSize 253532 -jsInit 278680 -parentBuildID 20211121002925 -appdir /usr/lib/firefox/browser 5002 true tab
vadim@aquila:~$ 

 , ,

wandrien
()

Как прекрасен юникс-вей в 2020-х...

…не зря Майкрософт еще в 80-х хотела с ДОСа мигрировать на Юникс. Но не вышло у пацанов, не фартануло.

Попросили вчера помочь с нетривиальной конфигурацией винды. Назанимался нетрадиционным секасом с в ней вдоволь… или вдоль. Точнее сказать, под любым юникс-лайк вся конфигурация была бы тривиальной, но это ж винда.

Большая часть действий делается через тупой GUI, в котором надо лазить по меню и натыкивать галки. Если нужно изменить конфиг, проверить и в случае чего вернуть как было, или протестировать разные варианты, то сидишь и надрачиваешь мышь. Система была рассчитана на людей, которые не могут выразить команду высшим достижением эволюции: человеческим языком.

Некоторые вещи вообще только через реестр. Ну сам реестр это отдельная история. Никакого вам аналога diff, meld, невозможно без дебильных приседаний с экспортом-импортом в текстовый файлик положить конфигурацию в git. Спасибо, хоть экспорт-импорт приделать не забыли. (В этом месте я вернулся сюда из абзаца, в котором писал про кодировки, и еще раз напишу: спасибо! От этих … специалистов можно было бы вполне ожидать, что и этого не будет.)

Система всё время ставит палки в колеса, если нужно часть действий выполнить от имени администратора. Типа, запускаю ФМ с полными правами админа. Создаю в нём файл. Открываю его в Notepad++ — а всё, Notepad++ уже работает не с полными правами админа. Может это, конечно, баг самого NPP, я хз.

Интерфейсы для работы с правами доступа находятся глубоко в категории «рисовал программист» и не обновлялись со времён NT. Там под виндой даже не столько сама система прав доступа сложная, сколько GUI к ней убогий.

И в целом многие интерфейсы сделаны так, что худшим образчикам из Linux и не снилось. Типа прокрутки гигантских списков в окошке фиксированного размера, в который влазит штук пять строк.

Чтобы сделать аналог линуксового «запуск фиксированной команды через sudo без пароля», нужно добавлять задание в тамошний аналог крон!. А чтобы сделать аналог «запуск фиксированной команды через sudo без пароля, но только для конкретной группы пользователей», я вообще не знаю, что делать. Тут моих навыков гуглёжки не хватило.

Описания системных сервисов переведены на русский, такое впечатление, что машинным надмозгом. А описания сторонних сервисов часто вообще не заполнены. Документации на это тоже, понятно, часто нет.

Если ты хочешь взять обычный Блокнот и написать в нём cmd-скрипт, то хрен там ночевал - Блокнот сохраняет файлы в кодировке 1251, а запускается скрипт в кодировке 866!!!! КАКОГО ХРЕНА?!

А если ты берешь весь из себя такой знаменитый Notepad++ с поддержкой кодировок и хочешь перекодировать уже написанный файл, то он не умеет конвертировать между этими кодировками!

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

Когда что-то гуглишь по вопросам системной конфигурации, обычно попадаешь или на ВИО, где отвечающий тупее вопрощающего, или на официальные места поддержки, где ответ чаще всего «такая штука в Windows не поддерживается, но вы можете попробовать самостоятельно станцевать в гамаке на лыжах», или на поисковый спам.

Эта шляпа еще и на HDD стояла, а я уже забыл, что такое 64-битная винда на HDD. Это ад и израиль, сраный лагодром с загрузками по 5 минут, во время которых пытаются просраться несколько десятков системных сервисов и еще куча говнокода в пользовательском сеансе. И пока они не просрутся, Проводник висит, и весь гуй вместе с ним. Да по сравнению с этим что systemd, что до-systemd-шная баше-лапша - просто вершины архитектуры и топ производительности.

Кен Томпсон, Деннис Ритчи, Ричард Столлман, Линус Торвальдс, и вся Red Hat целиком, и все остальные причастные к Линуксу, и еще разработчики всех BSD, и даже почившая Sun Microsystems с Солярой, СПАСИБО вам всем! Что мы имеем технологичную, конфигурируемую, понятную ОС, и даже целое множество разных ОС. И не привязаны к этой жалкой пародии на OpenVMS, мутировавшей на отравленных землях MS-DOS-а, и по какой-то злой шутке судьбы дожившей до 2020-х!

…уф. Выдохнул.

 , ,

wandrien
()

Почему gimp рендерит лютое ШГ?

В качестве примера шрифт Play, 12 pt. На самом деле с любым шрифтом та же шляпа.

Вот картинка: https://ibb.co/BstPQmd

Вот пояснения к картинке, сверху вниз:

  1. XPaint. Да-да, древнее как мамонт иксовое приложение на тулките xaw!
  2. AzPainter.
  3. Pinta. Тормозит при работе с выпадающим списком шрифтов адски. Но рендерит нормально.
  4. Gimp. По мнению gimp-а, вот так выглядит шрифт 12 pt. На самом деле при переключении между px и pt ничего не меняеется. Gimp считает, что один пункт равен одному экранному пикселю.
  5. Снова Gimp в размере 16 px / 16 pt.
  6. Inkscape.
  7. Dia. Никаких настроек DPI не нашел. 12 pt по мнению Dia выглядят так.

У меня, чёрт возьми, есть вопрос. Точнее два.

Почему gimp рендерит шрифты как говно? И как это исправить?

 ,

wandrien
()

Потокобезопасность system(3) в glibc

При чтении документации glibc обнаружил, что system(3) заявлена как потокобезопасная. Что противоречит интуитивно ожидаемому: функция манипулирует обработчиками сигналов, следовательно должна быть MT-Unsafe. Это побудило подробнее изучить вопрос и сравнить реализации в разных ОС.

Возможно пригодится кому:

 , , , ,

wandrien
()

При работе в VirtualBox мышь упирается в вертикальные стены

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

Резко кидаешь налево до упора и потом вправо - иногда разглючивает, а иногда стена просто возникает в другом месте.

Баг устойчиво воспроизводится на постоянной основе.

Куда копать?

Нагуглить не смог.

 

wandrien
()

Оформление Firefox

Обновился файрфокс и теперь выглядит как кусок чего-то неприглядного: https://ibb.co/3dpzsYX

Очевидная проблема: теперь абсолютно не считывается, какая вкладка активная. Как этим можно пользоваться, не представляю.

Но кроме этого также бардак с меню:

  • Оформление меню не следует дефолтным цветам тулкита. В частности в данный момент - Адвайты.
  • При этом контекстное меню страницы и классическое меню по Alt остались старыми - GTK3-шными, с ними всё нормально.
  • А меню-бутерброд и меню закладок - новые в нестандартном оформлении.

Действительно, в 20-х годах XXI-го века следовать оформлению тулкита не модно. Теперь мы сами с усами, теперь у нас СТИЛЛЛЬ.

Но пока у дизайнеров СТИЛЛЛЬ, простому пользователю надо это как-то фиксить.

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

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

У меня начали формироваться смутные подозрения, что этот цвет прошит в лису и изменению через стили не подлежит.

Ну тем хуже для лисы - если так, придётся патчить.

Похоже, что мне придётся разобраться, как сделать собственную тему оформления, и всё сделать в ней исключительно уже на свой вкус. А если вдруг я не найду документированного способа поменять цвет заливки выделенного пункта меню, то придётся лезть в исходники.

Всем этим я займусь, наверное, на выходных.

А пока может у кого-то есть конструктивные предложения? Кто как решал эти затруднения?

 , ,

wandrien
()

RSS подписка на новые темы