Mozilla thunderbird темы как установить

Обновлено: 06.07.2024


Вместо того, чтобы тратить деньги на пакет Microsoft, мы можем использовать гораздо более легкое решение, которое является установкой скина, темы с появлением Microsoft Outlook на Thunderbird. В этом руководстве мы покажем вам, как добиться этого эффекта очень простым способом.

Установка темы Outlook

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

Здесь мы открываем вкладку «Загрузка надстроек». Затем, в правой части страницы, мы найдем поле с темами и откройте их на новой вкладке Thunderbird. Теперь все, что вам нужно сделать, это ввести запрос «Outlook» в поле поиска темы для этого почтового клиента. В результатах поиска мы увидим все самые популярные скины, относящиеся к популярной программе Microsoft.


Начнем с скина под названием Outlook 2013 blue. Это расширение, изменяющее цвета Thunderbird, похожее на внешний вид Windows XP и Outlook с этого периода. Конечно, остальные элементы остаются неизменными и не меняются. Единственное, что меняется, это цвета в нашей программе электронной почты.

Аналогичные варианты предлагаются по теме Outlook Standard. Здесь тоже цвета Thunderbird меняются в пользу более похожей программы Microsoft. Из доступных мотивов мы можем найти несколько подобных решений.

Установка надстройки Outlook

Мы также можем использовать более комплексное решение и установить соответствующее дополнение, которое не только изменит внешний вид Thunderbird, но также представит опции, известные из этой программы.


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

Picture 3

«Приключение» с почтовым клиентом Mozilla Thunderbird началось с автоматического обновления на версию 68.0. Заметными особенностями этой версии было вот что: больше текста добавляется во всплывающие уведомления и тёмная тема по умолчанию. Повстречалась ошибка, которую захотелось попробовать обнаружить с помощью статического анализа. Это стало поводом в очередной раз проверить исходный код проекта с помощью PVS-Studio. Так вышло, что к моменту анализа ошибка уже была исправлена. Но раз мы обратили внимание на этот проект, мы можем написать про другие найденные в нём дефекты.

Введение

Тёмная тема новой версии Thunderbird выглядит достаточно красиво. Я люблю тёмные темы. Уже перешёл на них в мессенджерах, Windows, macOS. Скоро iPhone обновится до iOS 13, где появилась тёмная тема. Ради этого даже пришлось сменить свой iPhone 5S на более новую модель. На практике оказалось, что тёмная тема требует больше усилий для разработчиков, чтобы подобрать цвета интерфейса. Не все с этим справляются с первого раза. Так у меня стали выглядеть стандартные теги в Thunderbird:

Picture 1

Я пользуюсь шестью тегами (5 стандартных + 1 пользовательский) для разметки писем. На половину из них после обновления стало невозможно смотреть, и я решил в настройках изменить цвет на более яркий. Но тут я столкнулся с багом:

Picture 2

Нельзя поменять цвет тега. Точнее, можно, но редактор не даст его сохранить, ссылаясь на уже существующее имя (WTF. ).

Другим проявлением бага будет бездействие кнопки ОК, если попробовать поменять имя, раз уж с этим именем нельзя сохраниться. Переименовать тоже нельзя.

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

После длительной борьбы со сборочной системой в Windows таки удалось собрать Thunderbird из исходников. Самая последняя версия почтового клиента оказалось намного лучше свежего релиза. В ней тёмная тема добралась и до настроек, а также исчез этот баг с редактором тегов. Но чтобы труды сборки проекта не пропадали зря, был запущен статический анализатор кода PVS-Studio.

Примечание. Исходный код Thunderbird так или иначе пересекается с кодовой базой Firefox. Поэтому в анализ вошли ошибки из разных компонентов, которые стоит внимательно посмотреть разработчикам разных команд.

Примечание 2. Пока писалась статья, вышло обновление Thunderbird 68.1 с исправлением этого бага:

Picture 5

comm-central is a Mercurial repository of the Thunderbird, SeaMonkey, and Lightning extension code.

V501 There are identical sub-expressions '(!strcmp(header, «Reply-To»))' to the left and to the right of the '||' operator. nsEmitterUtils.cpp 28


Строку header сравнили с константой HEADER_REPLY_TO дважды. Возможно, на её месте должна была быть другая константа.

V501 There are identical sub-expressions 'obj->options->headers != MimeHeadersCitation' to the left and to the right of the '&&' operator. mimemsig.cpp 536


Ещё одно странное сравнение переменной с похожим именем — headers. Как всегда, есть два возможных объяснения: лишняя проверка или опечатка.

V517 The use of 'if (A) <. >else if (A) <. >' pattern was detected. There is a probability of logical error presence. Check lines: 1306, 1308. MapiApi.cpp 1306


Написание каскада условных выражений явно было ускорено клавишами Ctrl+C и Ctrl+V. Как результат — одна из веток никогда не выполняется.

V517 The use of 'if (A) <. >else if (A) <. >' pattern was detected. There is a probability of logical error presence. Check lines: 777, 816. nsRDFContentSink.cpp 777


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

V522 Dereferencing of the null pointer 'row' might take place. morkRowCellCursor.cpp 175


Разыменование нулевого указателя row возможно в следующей строке:


Скорее всего, перед этой строкой был пропущена инициализация указателя, например, методом GetRow и т.п.

V543 It is odd that value '-1' is assigned to the variable 'm_lastError' of HRESULT type. MapiApi.cpp 1050


Тип HRESULT является сложно устроенным типом данных. Разные биты переменной этого типа представляют разные поля описания ошибки. Задавать код ошибки необходимо с помощью специальных констант из системных заголовочных файлов.

Ещё пара таких мест:

  • V543 It is odd that value '-1' is assigned to the variable 'm_lastError' of HRESULT type. MapiApi.cpp 817
  • V543 It is odd that value '-1' is assigned to the variable 'm_lastError' of HRESULT type. MapiApi.cpp 1749


Переменная parts является указателем на массив структур. Для сброса значений структур воспользовались функцией memset, но в качестве размера участка памяти ей передали размер указателя.

Другие подозрительные места:

  • V579 The memset function receives the pointer and its size as arguments. It is possibly a mistake. Inspect the third argument. icalmime.c 385
  • V579 The memset function receives the pointer and its size as arguments. It is possibly a mistake. Inspect the third argument. icalparameter.c 114
  • V579 The snprintf function receives the pointer and its size as arguments. It is possibly a mistake. Inspect the second argument. icaltimezone.c 1908
  • V579 The snprintf function receives the pointer and its size as arguments. It is possibly a mistake. Inspect the second argument. icaltimezone.c 1910
  • V579 The strncmp function receives the pointer and its size as arguments. It is possibly a mistake. Inspect the third argument. sspm.c 707
  • V579 The strncmp function receives the pointer and its size as arguments. It is possibly a mistake. Inspect the third argument. sspm.c 813


Диагностика V595 обычно находит типовые ошибки разыменования нулевого указателя. Но тут нашёлся прямо очень интересный случай, достойный отдельного внимания.

Технически анализатор прав, что указатель aValues сначала разыменовывается, потом проверяется, но ошибка в другом. Это двойной указатель, поэтому правильный код должен выглядеть следующим образом:


Ещё одно очень похожее место:

  • V595 The '_retval' pointer was utilized before it was verified against nullptr. Check lines: 357, 358. nsLDAPSyncQuery.cpp 357


Эта ошибка найдена с помощью новой диагностики, которая будет доступна в следующем релизе анализатора. Все переменные, используемые в условии остановки цикла while, не модифицируются, потому что в теле функции перепутали переменные ptr2 и cSet.

netwerk

V501 There are identical sub-expressions 'connectStarted' to the left and to the right of the '&&' operator. nsSocketTransport2.cpp 1693


Я сначала подумал, что дублирование переменной connectStarted — это просто лишний код, пока не просмотрел всю достаточно длинную функцию и не обнаружил похожий фрагмент. Скорее всего, вместо одной переменной connectStarted тут тоже должна быть переменная connectCalled.

V611 The memory was allocated using 'new T[]' operator but was released using the 'delete' operator. Consider inspecting this code. It's probably better to use 'delete [] mData;'. Check lines: 233, 222. DataChannel.cpp 233


Указатель mData указывает на массив, а не на один объект. В деструкторе класса допустили ошибку, забыв добавить квадратные скобки для оператора delete.

V1044 Loop break conditions do not depend on the number of iterations. ParseFTPList.cpp 691


Значение переменной pos перезаписывается в цикле на одну и ту же величину. Похоже, новая диагностика нашла ещё одну ошибку.

gfx contains C interfaces and code for platform independent drawing and imaging. It can be used to draw rectangles, lines, images, etc. Essentially, it is a a set of interfaces for a platform-independent device (drawing) context. It does not handle widgets or specific drawing routines; it just provides the primitive operations for drawing.

V501 There are identical sub-expressions to the left and to the right of the '||' operator: mVRSystem || mVRCompositor || mVRSystem OpenVRSession.cpp 876


В условии два раза присутствует переменная mVRSystem. Очевидно, одну из них следует заменить на mVRChaperone.

dom contains C interfaces and code for implementing and tracking DOM (Document Object Model) objects in Javascript. It forms the C substructure which creates, destroys and manipulates built-in and user-defined objects according to the Javascript script.

V570 The 'clonedDoc->mPreloadReferrerInfo' variable is assigned to itself. Document.cpp 12049


Анализатор обнаружил присваивание переменной самой себе.

xpcom

xpcom contains the low-level C interfaces, C code, C code, a bit of assembly code and command line tools for implementing the basic machinery of XPCOM components (which stands for «Cross Platform Component Object Model»). XPCOM is the mechanism that allows Mozilla to export interfaces and have them automatically available to JavaScript scripts, to Microsoft COM and to regular Mozilla C code.

V611 The memory was allocated using 'malloc/realloc' function but was released using the 'delete' operator. Consider inspecting operation logics behind the 'key' variable. Check lines: 143, 140. nsINIParser.h 143


После вызова функции strdup необходимо освобождать память с помощью функции free, а не оператора delete.

V716 Suspicious type conversion in initialization: 'HRESULT var = BOOL'. SpecialSystemDirectory.cpp 73


WinAPI функция SHGetSpecialFolderPathW возвращает значение типа BOOL, а не HRESULT. Проверку результата функции необходимо переписать на правильную.

nsprpub

nsprpub contains C code for the cross platform «C» Runtime Library. The «C» Runtime Library contains basic non-visual C functions to allocate and deallocate memory, get the time and date, read and write files, handle threads and handling and compare strings across all platforms

V647 The value of 'int' type is assigned to the pointer of 'short' type. Consider inspecting the assignment: 'out_flags = 0x2'. prsocket.c 1220


Анализатор обнаружил присваивание численной константы указателю out_flags. Скорее всего, его просто забыли разыменовать:

Заключение

Это ещё не конец. Новым обзорам кода быть. В состав кода Thunderbird и Firefox входят две крупные библиотеки: Network Security Services (NSS) и WebRTC (Web Real Time Communications). Там нашлись очень интересные ошибки. В этом обзоре покажу по одной.

V597 The compiler could delete the 'memset' function call, which is used to flush 'newdeskey' buffer. The RtlSecureZeroMemory() function should be used to erase the private data. pkcs11c.c 1033


NSS — это библиотека для разработки защищенных клиентских и серверных приложений, а тут DES Key не чистится. Компилятор удалит вызов memset из кода, т.к. массив newdeskey больше не используется в коде дальше этого места.

V519 The 'state[state_length — x_length + i]' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 83, 84. filter_ar.c 84


Во втором цикле данные записываются не в тот массив, потому что автор скопировал код и забыл изменить название массива со state на state_low.

Вероятно, в этих проектах есть ещё интересные ошибки, о которых стоит рассказать. И мы этим займёмся в ближайшее время. А пока попробуйте PVS-Studio на своём проекте.


Если хотите поделиться этой статьей с англоязычной аудиторией, то прошу использовать ссылку на перевод: Svyatoslav Razmyslov. Dark theme of Thunderbird as a reason to run a code analyzer.

Среди настольных почтовых клиентов Mozilla Thunderbird по-прежнему остается популярным выбором. Хотя более 50% наших читателей проверяют свою электронную почту в Интернете, 15% используют Thunderbird, а затем Outlook и другие настольные клиенты.

Thunderbird объединяет в себе множество преимуществ, в том числе гибкость, которую мы все знаем по Firefox. И если вам приходится полагаться на учетные записи электронной почты от разных провайдеров (например, на работу, GMail и Yahoo! Mail), клиент электронной почты для настольного компьютера, такой как Thunderbird, позволяет вам собирать все ваши электронные письма в одном месте на рабочем столе.

Одна из величайших радостей для меня — это настройка внешнего вида и стиля Thunderbird, то есть перестановка иконок и пробование новых тем. Вот 10 моих любимых тем Mozilla Thunderbird.

2-й Классик

Тема Мозиллы Тандерберд

2nd Classic — это светло-серая тема Mozilla Thunderbird с несколькими хорошими контрастами, например, другим фоном для боковой панели. Он также поставляется с пользовательскими значками для кнопок «Почта», «Календарь» и «Задачи», чего не хватает большинству скинов.

Если вам интересно, откуда у меня эти кнопки, посмотрите мой пост Как интегрировать Календарь Google в Thunderbird и секрет должен быть поднят. Он также работает для iCalendar (ICS), CalDAV или Sun Java System Calendar Server (WCAP).

Aquabird Redone

Кожа Мозиллы Тандерберд

Я большой поклонник светлых тем Mozilla Thunderbird с аккуратными пуговицами, и этот скин определенно вписывается в мой хищный узор. Тема также доступна в темной версии: Aquabird Black

кобальт

Скин браузера

Это тема, которую я использую последние несколько месяцев. Как я уже сказал, у меня есть слабость к стильным светлым скинам. К сожалению, нет пользовательских кнопок Почта, Календарь и Задачи.

iLeopard Mail

Тема браузера

Цветовая схема iLeopard здесь очень похожа на 2nd Classic, но значки очень разные. Я нахожу их восхитительными, очень Mac!

Модерн Модоки

Настройте Mozilla Thunderbird

Большинство тем Mozilla Thunderbird легкие. Современная голубовато-серая тема Модоки с красивыми иконками отличается.

Nuvola

буревестник

Nuvola — более игривая кожа с цветными значками на светло-сером фоне. Мне нравятся все мелкие детали, особенно пользовательские значки везде. Очень хорошо сделано!

OxyBird

Настроить тему

OxyBird — еще один любимый светлый скин с красивыми кнопками. Если вы фанат легких скинов, обратите внимание на тонкие различия в иконках. Эта тема не монохромная, но объединяет небольшие кусочки цвета, что делает ее настолько интересной.

Темно

Настроить скин

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

Silvermel

Мозилла Скин

Silvermel имеет светло-серую основу с немного красочными и оригинальными иконами.

Whitehart

Мозилла Тема

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

И Thunderbird может быть намного больше, чем просто красивым! Как упоминалось ранее, Thunderbird поддерживает расширения, как и Firefox. Вот небольшой выбор пользовательских настроек, которые мы рассмотрели на MakeUse Of:

Дэмиен составил список из 10 больших аддонов

Какая твоя любимая тема? Вы регулярно меняете свои темы? Сколько в настоящее время установлено для вашего Thunderbird? Да, мы хотим знать все это! : D

Среди настольных почтовых клиентов Mozilla Thunderbird по-прежнему остается популярным выбором. Хотя более 50% наших читателей проверяют свою электронную почту в Интернете, 15% используют Thunderbird, а затем Outlook и другие настольные клиенты.

Thunderbird объединяет в себе множество преимуществ, в том числе гибкость, которую мы все знаем по Firefox. И если вам приходится полагаться на учетные записи электронной почты от разных провайдеров (например, на работу, GMail и Yahoo! Mail), клиент электронной почты для настольного компьютера, такой как Thunderbird, позволяет вам собирать все ваши электронные письма в одном месте на рабочем столе.

Одна из величайших радостей для меня — это настройка внешнего вида и стиля Thunderbird, то есть перестановка иконок и пробование новых тем. Вот 10 моих любимых тем Mozilla Thunderbird.

2-й Классик

Тема Мозиллы Тандерберд

2nd Classic — это светло-серая тема Mozilla Thunderbird с несколькими хорошими контрастами, например, другим фоном для боковой панели. Он также поставляется с пользовательскими значками для кнопок «Почта», «Календарь» и «Задачи», чего не хватает большинству скинов.

Если вам интересно, откуда у меня эти кнопки, посмотрите мой пост Как интегрировать Календарь Google в Thunderbird и секрет должен быть поднят. Он также работает для iCalendar (ICS), CalDAV или Sun Java System Calendar Server (WCAP).

Aquabird Redone

Кожа Мозиллы Тандерберд

Я большой поклонник светлых тем Mozilla Thunderbird с аккуратными пуговицами, и этот скин определенно вписывается в мой хищный узор. Тема также доступна в темной версии: Aquabird Black

кобальт

Скин браузера

Это тема, которую я использую последние несколько месяцев. Как я уже сказал, у меня есть слабость к стильным светлым скинам. К сожалению, нет пользовательских кнопок Почта, Календарь и Задачи.

iLeopard Mail

Тема браузера

Цветовая схема iLeopard здесь очень похожа на 2nd Classic, но значки очень разные. Я нахожу их восхитительными, очень Mac!

Модерн Модоки

Настройте Mozilla Thunderbird

Большинство тем Mozilla Thunderbird легкие. Современная голубовато-серая тема Модоки с красивыми иконками отличается.

Nuvola

буревестник

Nuvola — более игривая кожа с цветными значками на светло-сером фоне. Мне нравятся все мелкие детали, особенно пользовательские значки везде. Очень хорошо сделано!

OxyBird

Настроить тему

OxyBird — еще один любимый светлый скин с красивыми кнопками. Если вы фанат легких скинов, обратите внимание на тонкие различия в иконках. Эта тема не монохромная, но объединяет небольшие кусочки цвета, что делает ее настолько интересной.

Темно

Настроить скин

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

Silvermel

Мозилла Скин

Silvermel имеет светло-серую основу с немного красочными и оригинальными иконами.

Whitehart

Мозилла Тема

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

И Thunderbird может быть намного больше, чем просто красивым! Как упоминалось ранее, Thunderbird поддерживает расширения, как и Firefox. Вот небольшой выбор пользовательских настроек, которые мы рассмотрели на MakeUse Of:

Дэмиен составил список из 10 больших аддонов

Какая твоя любимая тема? Вы регулярно меняете свои темы? Сколько в настоящее время установлено для вашего Thunderbird? Да, мы хотим знать все это! : D

Читайте также: