using-applications.rst 77 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534
  1. ..
  2. SPDX-FileCopyrightText: 2018-2023 EasyCoding Team and contributors
  3. SPDX-License-Identifier: CC-BY-SA-4.0
  4. .. _using-applications:
  5. **********************
  6. Сторонние приложения
  7. **********************
  8. .. index:: firefox, hardware acceleration
  9. .. _firefox-hwaccel:
  10. Как активировать аппаратное ускорение в браузере Firefox?
  11. =============================================================
  12. Для активации аппаратного ускорения рендеринга страниц в Mozilla Firefox на поддерживаемых драйверах необходимо открыть модуль конфигурации ``about:config`` и исправить значения следующих переменных (при отсутствии создать):
  13. .. code-block:: text
  14. layers.acceleration.force-enabled = true
  15. webgl.force-enabled = true
  16. gfx.webrender.enabled = true
  17. gfx.webrender.all = true
  18. dom.webgpu.enabled = true
  19. Изменения вступят в силу при следующем запуске браузера.
  20. Внимание! Это не затрагивает :ref:`аппаратное декодирование мультимедиа <browser-hwaccel>` средствами видеоускорителя.
  21. .. index:: firefox, chromium, chrome, hardware acceleration, vaapi
  22. .. _browser-hwaccel:
  23. Как активировать аппаратное ускорение декодирования мультимедиа в браузерах?
  24. ===============================================================================
  25. Поддерживаемые веб-браузеры:
  26. * :ref:`Mozilla Firefox <hwaccel-firefox>`;
  27. * :ref:`Chromium <hwaccel-chromium>`.
  28. .. index:: firefox, chromium, chrome, hardware acceleration, vaapi
  29. .. _hwaccel-firefox:
  30. Как активировать аппаратное ускорение декодирования мультимедиа в Firefox?
  31. ===============================================================================
  32. Начиная с версии `Firefox 77.0 <https://mastransky.wordpress.com/2020/06/03/firefox-on-fedora-finally-gets-va-api-on-wayland/>`__, аппаратное ускорение декодирования мультимедиа доступно для :ref:`сеанса Wayland <session-type>`, а с `Firefox 81.0 <https://mastransky.wordpress.com/2020/09/29/firefox-81-on-fedora-with-va-api-webrtc-and-x11/>`__ и для X11.
  33. Установим полный :ref:`набор кодеков <browser-codecs>`, а также :ref:`VA-API драйверы <hwaccel-drivers>` из репозитория :ref:`RPM Fusion <rpmfusion>`.
  34. Откроем модуль конфигурации ``about:config`` и изменим значения следующих переменных (при отсутствии создадим):
  35. .. code-block:: text
  36. widget.wayland-dmabuf-vaapi.enabled = true
  37. media.ffmpeg.vaapi.enabled = true
  38. media.ffmpeg.low-latency.enabled = true
  39. media.navigator.mediadatadecoder_vpx_enabled = true
  40. В случае использования сеанса на базе :ref:`Wayland <session-type>` ввиду `известной ошибки <https://bugzilla.mozilla.org/show_bug.cgi?id=1683808>`__ отключим встроенную песочницу для декодировщика мультимедиа (это значительно снизит безопасность браузера):
  41. .. code-block:: text
  42. media.ffvpx.enabled = false
  43. media.rdd-ffvpx.enabled = false
  44. media.rdd-vpx.enabled = false
  45. Перезапустим браузер для вступления изменений в силу.
  46. .. index:: chromium, chrome, hardware acceleration, vaapi
  47. .. _hwaccel-chromium:
  48. Как активировать аппаратное ускорение декодирования мультимедиа в Chromium?
  49. ===============================================================================
  50. Начиная с версии Chromium 110, аппаратное ускорение декодирования мультимедиа включено по умолчанию в Fedora.
  51. Установим полный :ref:`набор кодеков <browser-codecs>`, а также :ref:`VA-API драйверы <hwaccel-drivers>` из репозитория :ref:`RPM Fusion <rpmfusion>`.
  52. Далее зайдём в ``chrome://flags`` и установим для пункта **Hardware decoding** значение **Enabled**, после чего перезапустим браузер для вступления изменений в силу.
  53. .. index:: mpv, video player, hardware acceleration, vaapi, vdpau
  54. .. _video-hwaccel:
  55. В каких проигрывателях реализовано аппаратное ускорение декодирования мультимедиа?
  56. =====================================================================================
  57. Полная поддержка аппаратного декодирования мультимедиа средствами :ref:`VA-API <vaapi-info>` (:ref:`AMD <vaapi-amd>`, :ref:`Intel <vaapi-intel>`, :ref:`NVIDIA <vaapi-nvidia>`) или VPDAU (NVIDIA) реализована в проигрывателях VLC и mpv.
  58. Для активации данной функции необходимо в качестве графического бэкэнда вывода изображения указать **vaapi** или **vdpau**, после чего перезапустить плеер.
  59. .. index:: hardware acceleration, vaapi, intel, nvidia, amd
  60. .. _vaapi-info:
  61. Как получить информацию о поддерживаемых VA-API форматах видео?
  62. ==================================================================
  63. Установим утилиту **vainfo**:
  64. .. code-block:: text
  65. sudo dnf install libva-utils
  66. Выведем информацию о поддерживаемых форматах и профилях:
  67. .. code-block:: text
  68. vainfo
  69. .. index:: telegram, im
  70. .. _telegram-fedora:
  71. Как лучше установить Telegram Desktop в Fedora?
  72. ===================================================
  73. Мы настоятельно рекомендуем устанавливать данный мессенджер исключительно из :ref:`RPM Fusion <rpmfusion>`:
  74. .. code-block:: text
  75. sudo dnf install telegram-desktop
  76. Данная версия собрана и динамически слинкована с использованием исключительно штатных системных библиотек, доступных в репозиториях Fedora, а не давно устаревших и уязвимых версий из комплекта Ubuntu 14.04, как официальная.
  77. Сборка Fedora поддерживает системные настройки тем, правильное сглаживание шрифтов (за счёт использование общесистемных настроек) и не имеет проблем со скоростью запуска.
  78. .. index:: telegram, cleanup, im
  79. .. _telegram-cleanup:
  80. Ранее я устанавливал официальную версию Telegram Desktop. Как мне очистить её остатки?
  81. =========================================================================================
  82. Официальная версия с сайта создаёт ярлыки запуска и копирует ряд загруженных бинарных файлов в пользовательский домашний каталог. Избавимся от этого:
  83. 1. удалим старый бинарник и модуль обновления официального клиента, а также их копии из ``~/.local/share/TelegramDesktop`` и ``~/.local/share/TelegramDesktop/tdata``;
  84. 2. удалим ярлыки из ``~/.local/share/applications``.
  85. Теперь можно установить :ref:`версию <telegram-fedora>` из :ref:`RPM Fusion <rpmfusion>`.
  86. .. index:: repository, codecs, multimedia, third-party, ffmpeg, firefox, chromium
  87. .. _browser-codecs:
  88. Как активировать все доступные кодеки мультимедиа браузерах?
  89. ================================================================
  90. Браузеры Mozilla Firefox и Chromium из официального репозитория Fedora использует ffmpeg для работы с мультимедийным контентом, поэтому подключим :ref:`RPM Fusion <rpmfusion>` и произведём установку пакета **ffmpeg-libs**.
  91. Вариант для стандартных версий Fedora с любыми :ref:`рабочими средами <de-supported>`:
  92. .. code-block:: text
  93. sudo dnf install ffmpeg-libs --allowerasing
  94. Вариант для неизменяемых систем, основанных на ostree, например :ref:`Silverblue <silverblue>`:
  95. .. code-block:: text
  96. rpm-ostree override remove libavcodec-free libavfilter-free libavformat-free libavutil-free libpostproc-free libswresample-free libswscale-free --install ffmpeg-libs
  97. .. index:: latex, editor
  98. .. _latex-editor:
  99. В репозиториях есть полнофункциональные редакторы LaTeX?
  100. ===========================================================
  101. Да. Для работы с документами в формате LaTeX рекомендуется использовать **texmaker**:
  102. .. code-block:: text
  103. sudo dnf install texmaker
  104. .. index:: latex, texlive, cyrillic, fonts
  105. .. _latex-cyrillic:
  106. Как установить поддержку кириллических шрифтов для LaTeX?
  107. =============================================================
  108. Наборы кириллических шрифтов доступны в виде коллекции:
  109. .. code-block:: text
  110. sudo dnf install texlive-collection-langcyrillic texlive-cyrillic texlive-russ texlive-babel-russian
  111. .. index:: video, youtube, download, yt-dlp, ffmpeg
  112. .. _youtube-download:
  113. Как скачать видео с Youtube?
  114. =================================
  115. Скачать любое интересующее видео с Youtube, а также ряда других хостингов, можно посредством утилиты **yt-dlp**, доступной в основном репозитории Fedora:
  116. .. code-block:: text
  117. sudo dnf install yt-dlp
  118. Скачивание видео с настройками по умолчанию в наилучшем качестве:
  119. .. code-block:: text
  120. yt-dlp https://www.youtube.com/watch?v=XXXXXXXXXX
  121. Иногда при скачивании видео в разрешении 4K с ключом ``-f bestvideo`` может не работать аппаратное ускорение при воспроизведении из-за того, что кодек vp9.2 не поддерживается аппаратными кодировщиками. В таких случаях необходимо явно указывать кодек (``-f bestvideo[vcodec=vp9]``).
  122. Чтобы гарантировано скачать видео с указанным кодеком со звуком требуется дополнительно установить пакет **ffmpeg** из репозиториев :ref:`RPM Fusion <rpmfusion>`:
  123. .. code-block:: text
  124. sudo dnf install ffmpeg
  125. В качестве примера скачаем видео в наилучшем качестве, сжатое кодеком VP9 (с возможностью аппаратного ускорения) и звуком:
  126. .. code-block:: text
  127. yt-dlp -f bestvideo[vcodec=vp9]+bestaudio https://www.youtube.com/watch?v=XXXXXXXXXX
  128. Поддерживается автоматическое удаление спонсорских интеграций из видеоряда на основе базы данных `SponsorBlock <https://sponsor.ajay.app/>`__, активируемое параметром ``--sponsorblock-remove=sponsor``:
  129. .. code-block:: text
  130. yt-dlp -f bestvideo+bestaudio --sponsorblock-remove=sponsor https://www.youtube.com/watch?v=XXXXXXXXXX
  131. Данная утилита имеет множество параметров командной строки, справку по которым можно найти в её странице man:
  132. .. code-block:: text
  133. man yt-dlp
  134. Для выхода из окна просмотра справки достаточно нажать **Q**.
  135. .. index:: iso, write iso, image
  136. .. _fedora-winiso:
  137. Как из Fedora записать образ с MS Windows на флешку?
  138. ========================================================
  139. К сожалению, :ref:`штатный способ <usb-flash>` записи посредством использования утилиты dd не сработает в случае ISO образов MS Windows, поэтому для этого следует применять утилиту WoeUSB:
  140. .. code-block:: text
  141. sudo dnf install WoeUSB
  142. .. index:: text file, encoding, converting, iconv
  143. .. _iconv-convert:
  144. Как конвертировать текстовый файл из одной кодировки в другую?
  145. ==================================================================
  146. Для быстрой перекодировки текстовых файлов из одной кодировки в другую можно использовать утилиту iconv.
  147. Пример перекодировки файла из cp1251 (Windows-1251) в юникод (UTF-8):
  148. .. code-block:: text
  149. iconv -f cp1251 -t utf8 test.txt > result.txt
  150. Здесь **test.txt** -- исходный файл с неправильной кодировкой, а **result.txt** используется для записи результата преобразования.
  151. .. index:: fuse, file system, mtp, android, phone
  152. .. _fuse-mtp:
  153. Как подключить смартфон на Android посредством протокола MTP?
  154. ================================================================
  155. Для простой и удобной работы с файловой системой смартфона вне зависимости от используемых приложений, рабочей среды и файлового менеджера, мы рекомендуем использовать основанную на FUSE реализацию.
  156. Установим пакет **jmtpfs**:
  157. .. code-block:: text
  158. sudo dnf install jmtpfs fuse
  159. Создадим каталог, в который будет смонтирована ФС смартфона:
  160. .. code-block:: text
  161. mkdir -p ~/myphone
  162. Подключим устройство к компьютеру или ноутбуку по USB, разблокируем его и выберем режим MTP, после чего выполним:
  163. .. code-block:: text
  164. jmtpfs ~/myphone
  165. По окончании работы обязательно завершим MTP сессию:
  166. .. code-block:: text
  167. fusermount -u ~/myphone
  168. .. index:: kde connect, smartphone, kde
  169. .. _kde-connect:
  170. Как лучше работать со смартфоном посредством компьютера или ноутбука?
  171. ==========================================================================
  172. Для простой и эффективной работы со смартфоном на базе ОС Android пользователи рабочей среды KDE Plasma 5 могут использовать KDE Connect:
  173. .. code-block:: text
  174. sudo dnf install kde-connect
  175. Сначала установим клиент KDE Connect на смартфон:
  176. * `Google Play <https://play.google.com/store/apps/details?id=org.kde.kdeconnect_tp>`__;
  177. * `F-Droid <https://f-droid.org/packages/org.kde.kdeconnect_tp/>`__.
  178. Запустим плазмоид KDE Connect и выполним сопряжение.
  179. .. index:: kde connect, firewalld
  180. .. _kde-connect-firewalld:
  181. KDE Connect не видит мой смартфон. Как исправить?
  182. ======================================================
  183. Добавим правило, разрешающее входящие соединения к сервису kdeconnectd посредством :ref:`Firewalld <firewalld-about>`:
  184. .. code-block:: text
  185. sudo firewall-cmd --add-service=kdeconnect --permanent
  186. Применим новые правила:
  187. .. code-block:: text
  188. sudo firewall-cmd --reload
  189. .. index:: kde, plasma, new file, dolphin, templates
  190. .. _dolphin-templates:
  191. Как добавить новый тип файлов в меню Создать в Dolphin?
  192. ==========================================================
  193. Сначала получим пути, в которых KDE пытается обнаружить *ярлыки* шаблонов новых файлов:
  194. .. code-block:: text
  195. kf5-config --path templates
  196. По умолчанию это ``~/.local/share/templates`` и он не существует, поэтому создадим его:
  197. .. code-block:: text
  198. mkdir -p ~/.local/share/templates
  199. В качестве примера сохраним в любом каталоге новый шаблон ``xml-document.xml`` примерно следующего содержания:
  200. .. code-block:: xml
  201. <?xml version="1.0" encoding="utf-8" ?>
  202. <root>
  203. </root>
  204. В каталоге шаблонов KDE добавим ярлык ``xml-document.desktop`` на созданный ранее файл:
  205. .. code-block:: ini
  206. [Desktop Entry]
  207. Icon=application-xml
  208. Name[ru_RU]=Документ XML
  209. Name=XML document
  210. Type=Link
  211. URL[$e]=file:$HOME/Templates/xml-document.xml
  212. Здесь **Icon** -- значок для новой строки, **Name** -- название новой строки с поддержкой локализации, а **URL** -- полный путь к файлу шаблона.
  213. Изменения вступят в силу немедленно и через несколько секунд в меню *Создать* файлового менеджера Dolphin появится новый пункт.
  214. .. index:: gnome, nautilus, new file, templates
  215. .. _nautilus-templates:
  216. Как добавить новый тип файлов в меню Создать в Nautilus?
  217. ============================================================
  218. В отличие от :ref:`Dolphin в KDE <dolphin-templates>`, Nautilus в Gnome ищет файлы шаблонов в стандартном каталоге :ref:`$XDG_TEMPLATES_DIR <xdg-reallocate>`. Получим путь к нему:
  219. .. code-block:: text
  220. xdg-user-dir TEMPLATES
  221. Создадим новый файл ``XML document.xml`` следующего содержания:
  222. .. code-block:: xml
  223. <?xml version="1.0" encoding="utf-8" ?>
  224. <root>
  225. </root>
  226. Изменения вступят в силу немедленно и через несколько секунд в меню *Создать* файлового менеджера Nautilus появится новый пункт.
  227. .. index:: converting multiple files, convert, find, ffmpeg, mp3
  228. .. _convert-multiple-files:
  229. Как конвертировать множество файлов в mp3 из текущего каталога?
  230. ===================================================================
  231. Конвертируем все файлы с маской \*.ogg в mp3 в текущем каталоге:
  232. .. code-block:: text
  233. find . -maxdepth 1 -type f -name "*.ogg" -exec ffmpeg -i "{}" -acodec mp3 -ab 192k "$(basename {}).mp3" \;
  234. .. index:: window, borders, kde plasma, kde
  235. .. _window-borders:
  236. Как убрать рамки внутри окон в KDE Plasma 5?
  237. ===============================================
  238. Для этого следует открыть **Меню KDE** -- **Компьютер** -- **Параметры системы** -- **Оформление приложений** -- страница **Стиль интерфейса** -- кнопка **Настроить** -- вкладка **Рамки**, **убрать все флажки** из чекбоксов на данной странице и нажать кнопку **OK**.
  239. .. index:: icons, cache, kde, plasma
  240. .. _kde-icons-refresh:
  241. Как обновить кэш значков приложений в главном меню KDE Plasma 5?
  242. ===================================================================
  243. Обычно кэш обновляется автоматически при любых изменениях файлов внутри каталогов ``/usr/share/applications`` (глобально), а также ``~/.local/share/applications`` (пользователь), однако если по какой-то причине этого не произошло, выполним обновление кэшей вручную:
  244. .. code-block:: text
  245. kbuildsycoca5 --noincremental
  246. .. index:: thunderbird, mail client, email, extension, translation, langpack
  247. .. _thunderbird-symlinks:
  248. В установленном Thunderbird не обновляются языковые пакеты. Как исправить?
  249. ===============================================================================
  250. Проблема заключается в том, что системные расширения и пакеты с переводами должны копироваться в профиль пользователя при каждом обновлении клиента, но RPM пакетам `запрещено <https://docs.fedoraproject.org/en-US/packaging-guidelines/>`__ вносить любые изменения в домашние каталоги пользователей, поэтому они автоматически не обновляются.
  251. Чтобы исправить проблему необходимо и достаточно создать символические ссылки на XPI файлы, обновляемые пакетом.
  252. Удалим старые файлы из профилей Thunderbird:
  253. .. code-block:: text
  254. rm -f ~/.thunderbird/*/extensions/langpack-ru@thunderbird.mozilla.org.xpi
  255. Создадим символические ссылки на месте удалённых XPI файлов:
  256. .. code-block:: text
  257. ln -s /usr/lib64/thunderbird/distribution/extensions/langpack-ru@thunderbird.mozilla.org.xpi ~/.thunderbird/*/extensions/langpack-ru@thunderbird.mozilla.org.xpi
  258. Перезапустим Thunderbird для того, чтобы изменения вступили в силу.
  259. .. index:: qr code, bar code, image
  260. .. _qr-code:
  261. Как распознать QR-код или штрих-код из консоли?
  262. ===================================================
  263. Для распознавания бар-кода на изображении и получения его содержимого воспользуемся пакетом **zbar**:
  264. .. code-block:: text
  265. sudo dnf install zbar
  266. Применим утилиту **zbarimg** для получения содержимого кодов внутри файла изображения ``foo-bar.png``:
  267. .. code-block:: text
  268. zbarimg --noxml foo-bar.png
  269. Результат (или результаты (по одному на каждый обнаруженный бар-код)) будут выведены в консоль.
  270. .. index:: scanner, pdf, ocr, text
  271. .. _ocr-app:
  272. Как можно распознать текст с изображения или сканера?
  273. ========================================================
  274. Для получения текста из файлов изображений, либо PDF, можно воспользоваться системой оптического распознавания символов Tesseract, а также графической утилитой gImageReader.
  275. Установим Tesseract и набор файлов для русского языка:
  276. .. code-block:: text
  277. sudo dnf install tesseract tesseract-langpack-rus
  278. Установим утилиту gImageReader с интерфейсом на Qt (для пользователей KDE, LXQt):
  279. .. code-block:: text
  280. sudo dnf install gimagereader-qt
  281. Установим утилиту gImageReader с интерфейсом на GTK3 (для пользователей Gnome, XFCE, LXDE, Mate, Cinnamon и т.д.):
  282. .. code-block:: text
  283. sudo dnf install gimagereader-gtk
  284. Запустим gImageReader, в левой боковой панели выберем отсканированный файл (для наилучших результатов разрешение при сканировании должно быть не меньше 300 DPI), PDF, либо :ref:`устройство сканирования <scan-drivers>`, зададим режим распознавания и используемые в документе языки, затем нажмём кнопку **Распознать всё**.
  285. Результат может быть сохранён в файл с панели результатов распознавания.
  286. .. index:: zip, archive, encoding, file
  287. .. _zip-encoding:
  288. При распаковке Zip архива появляются кракозябры вместо имён файлов. Как исправить?
  289. =====================================================================================
  290. Zip-архивы, созданные штатными средствами ОС Windows, сохраняют имена файлов внутри архива исключительно в однобайтовой кодировке системы по умолчанию (в русской версии это Windows-1251 (cp1251), в английской -- Windows-1252 (cp1252)), поэтому при распаковке таких архивов вместо русских букв будут отображаться кракозябры.
  291. Утилита unzip поддерживает явное указание кодировки, поэтому воспользуемся данной функцией:
  292. .. code-block:: text
  293. unzip -O cp1251 foo-bar.zip -d /path/to/destination
  294. Здесь **cp1251** -- кодировка имён файлов, **foo-bar.zip** -- имя архива, а **/path/to/destination** -- каталог, в который он будет распакован.
  295. .. index:: cache, browser, tmpfs
  296. .. _browser-tmpfs:
  297. Стоит ли переносить кэши браузеров в tmpfs?
  298. ===============================================
  299. Да, т.к. это даёт следующие преимущества:
  300. 1. очень быстрый доступ особенно при случайном чтении;
  301. 2. отсутствует необходимость в ручной очистке, т.к. это будет сделано автоматически при перезагрузке системы.
  302. .. index:: cache, browser, tmpfs, firefox
  303. .. _firefox-cache:
  304. Как перенести кэш браузера Firefox в tmpfs?
  305. ==============================================
  306. В Fedora каталог **/tmp** по умолчанию монтируется в tmpfs, поэтому осуществим перенос кэшей данного браузера именно в него:
  307. 1. запустим Firefox и откроем страницу ``about:config``;
  308. 2. найдём в списке переменную ``browser.cache.disk.parent_directory`` (при отсутствии создадим) и присвоим ему строковое значение ``/tmp/firefox``;
  309. 3. чтобы кэш очень сильно не разрастался, укажем в переменной ``browser.cache.disk.capacity`` (тип *целое*) максимальный размер в килобайтах, например ``262144`` (256 МБ);
  310. 4. перезапустим браузер для применения новых изменений.
  311. .. index:: wget, http, web, download
  312. .. _wget-crawler:
  313. Как скачать веб-страницу рекурсивно?
  314. =======================================
  315. Для рекурсивного скачивания статических веб-страниц можно использовать wget в специальном режиме.
  316. Запустим скачивание ресурса **example.org**:
  317. .. code-block:: text
  318. wget --random-wait -r -p -e robots=off -U "Mozilla/5.0 (X11; Linux x86_64; rv:100.0) Gecko/20100101 Firefox/100.0" https://example.org
  319. Рекурсивное скачивание может занять много времени и места на диске. Настоятельно не рекомендуется использовать этот режим на ресурсах с динамическим контентом.
  320. .. index:: exif, jpeg, information, metadata
  321. .. _exif-data:
  322. Как извлечь метаданные EXIF из файла изображения?
  323. ====================================================
  324. Установим пакет ImageMagick:
  325. .. code-block:: text
  326. sudo dnf install ImageMagick
  327. Осуществим извлечение метаданных `EXIF <https://ru.wikipedia.org/wiki/EXIF>`__ файла **foo-bar.jpg**:
  328. .. code-block:: text
  329. identify -verbose foo-bar.jpg
  330. .. index:: wget, http, web, bookmarks, check
  331. .. _wget-spider:
  332. Как проверить действительность ссылок в закладках без сторонних расширений?
  333. ==============================================================================
  334. Проверить действительность любых ссылок, указанных в файле, можно средствами **wget** в режиме *spider*.
  335. Запустим веб-браузер и экспортируем список закладок в файл, совместимый с форматом *Netscape Bookmarks*. В Firefox это можно сделать так:
  336. 1. **Закладки** -- **Показать все закладки**;
  337. 2. **Импорт и резервные копии** -- **Экспорт закладок в HTML файл**;
  338. 3. сохраняем файл **bookmarks.html** в любом каталоге.
  339. Перейдём в каталог, в котором находится файл **bookmarks.html** и запустим проверку:
  340. .. code-block:: text
  341. wget --spider --force-html --no-verbose --tries=1 --timeout=10 -i bookmarks.html
  342. В зависимости от размера файла процесс проверки может занять очень много времени.
  343. .. index:: steam, gaming
  344. .. _steam:
  345. Как установить Steam в Fedora?
  346. =================================
  347. Подключим репозитории :ref:`RPM Fusion <rpmfusion>` (как free, так и nonfree), после чего установим его:
  348. .. code-block:: text
  349. sudo dnf install steam
  350. Ярлык запуска клиента Steam появится в главном меню используемой графической среды.
  351. .. index:: gnome, shell, extension
  352. .. _gnome-shell-extensions:
  353. Откуда правильно устанавливать расширения для Gnome Shell?
  354. ==============================================================
  355. Расширения для Gnome Shell можно устанавливать как в виде пакета из репозиториев, так и напрямую из `Магазина расширений Gnome <https://extensions.gnome.org/>`__. Разница лишь в том, что расширения, установленные пакетом, будут доступны сразу для всех пользователей системы.
  356. Рекомендуется устанавливать расширения из Магазина, т.к. многие пакеты очень редко получают обновления.
  357. .. index:: gnome, shell, extension, firefox, chromium
  358. .. _gnome-shell-browser:
  359. Как разрешить установку расширений Gnome Shell из веб-браузера?
  360. ==================================================================
  361. Для того, чтобы разрешить установку :ref:`расширений Gnome Shell <gnome-shell-extensions>` из браузеров, необходимо установить соответствующий пакет:
  362. .. code-block:: text
  363. sudo dnf install gnome-shell-browser
  364. Также данное дополнение можно установить и вручную:
  365. * `Firefox <https://addons.mozilla.org/ru/firefox/addon/gnome-shell-integration/>`__;
  366. * `Chrome/Chromium <https://chrome.google.com/webstore/detail/gnome-shell-integration/gphhapmejobijbbhgpjhcjognlahblep?hl=ru>`__.
  367. .. index:: kde, plasma, extension, firefox, chromium
  368. .. _plasma-browser:
  369. Как разрешить установку расширений KDE Plasma из веб-браузера?
  370. =================================================================
  371. Для того, чтобы разрешить установку расширений оболочки KDE Plasma из браузеров, необходимо установить соответствующий пакет:
  372. .. code-block:: text
  373. sudo dnf install plasma-browser-integration
  374. Также данное дополнение можно установить и вручную:
  375. * `Firefox <https://addons.mozilla.org/ru/firefox/addon/plasma-integration/>`__;
  376. * `Chrome/Chromium <https://chrome.google.com/webstore/detail/plasma-integration/cimiefiiaegbelhefglklhhakcgmhkai?hl=ru>`__.
  377. .. index:: gnome, shell, tray, system tray, icon
  378. .. _gnome-shell-tray:
  379. Как вернуть классический системный лоток (трей) в Gnome Shell?
  380. ==================================================================
  381. Начиная с Gnome 3.26, из области уведомлений оболочки была удалена поддержка классического системного лотка, поэтому многие приложения при закрытии или сворачивании могут не завершать свою работу, а продолжать работать в фоне без отображения видимого окна.
  382. Восстановить трей можно посредством установки одного из :ref:`расширений Gnome Shell <gnome-shell-extensions>`:
  383. * `AppIndicator Support <https://extensions.gnome.org/extension/615/appindicator-support/>`__ (также доступно в виде пакета ``gnome-shell-extension-appindicator`` в репозиториях);
  384. * `TopIcons Plus <https://extensions.gnome.org/extension/1031/topicons/>`__ (также доступно в виде пакета ``gnome-shell-extension-topicons-plus`` в репозиториях).
  385. .. index:: gnome, shell, desktop, icon
  386. .. _gnome-shell-desktop:
  387. Как вернуть классический рабочий стол в Gnome Shell?
  388. =======================================================
  389. Начиная с Gnome 3.28, поддержка рабочего стола с возможностью размещения на нём файлов, либо ярлыков приложений, была удалена.
  390. Восстановить классический рабочий стол можно при помощи установки :ref:`расширения Gnome Shell <gnome-shell-extensions>` `Desktop Icons <https://extensions.gnome.org/extension/1465/desktop-icons/>`__ (также доступно в виде пакета ``gnome-shell-extension-desktop-icons`` в репозиториях).
  391. .. index:: 7zip, archive, split, optical drive, dvd, p7zip
  392. .. _7zip-split:
  393. Как упаковать содержимое каталога в архив с разделением на части, пригодные для записи на диск?
  394. ==================================================================================================
  395. Установим пакет **p7zip**:
  396. .. code-block:: text
  397. sudo dnf install p7zip
  398. Упакуем содержимое текущего каталога в 7-Zip архив с использованием алгоритма сжатия LZMA2 c разбиением на тома размером 4480 МБ (для размещения на DVD носителях):
  399. .. code-block:: text
  400. 7za a -m0=LZMA2 -mx9 -r -t7z -v4480m /path/to/archive.7z
  401. .. index:: kerberos, remote, login, authorization, renewal, gnome
  402. .. _kerberos-gnome:
  403. Как настроить автоматическое обновление Kerberos-тикетов в Gnome?
  404. ====================================================================
  405. Актуальные версии среды Gnome поддерживают автоматическое :ref:`обновление <kerberos-renew>` :ref:`Kerberos-тикетов <kerberos-auth>` "из коробки".
  406. Откроем **настройки Gnome**, выберем пункт **Онлайн учётные записи**, нажмём кнопку с символом **+** для добавления нового, в конце списка выберем вариант **Другие**, а затем **Enterprise login (Kerberos)**.
  407. В появившемся окне введём авторизационные данные и подтвердим добавление аккаунта.
  408. .. index:: torrent, download, transmission, server
  409. .. _transmission-server:
  410. Как запустить фоновый клиент для загрузки торрентов?
  411. =======================================================
  412. Установим Transsmission в виде сервиса:
  413. .. code-block:: text
  414. sudo dnf install transmission-daemon
  415. Установим "тонкий клиент" Transsmission Remote:
  416. .. code-block:: text
  417. sudo dnf install transmission-remote-gtk
  418. Активируем и запустим сервер:
  419. .. code-block:: text
  420. sudo systemctl enable --now transmission-daemon.service
  421. В Firewalld разрешим входящие BitTorrent подключения:
  422. .. code-block:: text
  423. sudo firewall-cmd --add-service=transmission-client --permanent
  424. Запустим "тонкий клиент", подключимся к серверу **127.0.0.1:9091**, перейдём в **Опции** -- **Настройки сервера** и внесём свои правки, указав например каталог для загрузок.
  425. Изменения вступают в силу немедленно. Сервер будет запускаться автоматически при каждой загрузке системы и сразу же осуществлять загрузку, либо раздачу торрентов.
  426. .. index:: gnome, shell, settings, reset
  427. .. _gnome-shell-reset:
  428. Как сбросить все настройки Gnome Shell?
  429. ==========================================
  430. Чтобы сбросить все настройки Gnome и Gnome Shell, выполним:
  431. .. code-block:: text
  432. dconf reset -f /
  433. Это действие удалит все настройки Gnome, включая приложения, использующие dconf для хранения пользовательских настроек, аккаунтов и т.д., параметры системы, настройки среды, установленные темы и расширения и т.д. Перед использованием рекомендуется создать резервную копию.
  434. При следующем входе будут восстановлены значения по умолчанию.
  435. .. index:: directory, tree
  436. .. _directory-tree:
  437. Как построить дерево каталогов и сохранить его в файл?
  438. =========================================================
  439. Для построения дерева каталогов воспользуемся утилитой **tree**, затем перенаправим вывод в файл:
  440. .. code-block:: text
  441. tree /path/to/directory > ~/foo-bar.txt
  442. Здесь **/path/to/directory** -- путь к каталогу, дерево которого нужно построить, а **~/foo-bar.txt** -- файл, в котором будет сохранён результат.
  443. .. index:: recycle bin, delete file, trash, terminal
  444. .. _trash-terminal:
  445. Как из терминала удалить файл в корзину?
  446. ===========================================
  447. Для удаления в корзину из оболочки воспользуемся утилитой **gio**:
  448. .. code-block:: text
  449. gio trash /path/to/file.txt
  450. .. index:: irc, certificate, login, hexchat, liberachat, openssl, sasl
  451. .. _irc-nopass:
  452. Можно ли входить в IRC сеть LiberaChat без ввода пароля?
  453. ============================================================
  454. Да, сеть LiberaChat поддерживает вход по ключам.
  455. Создадим каталог для хранения ключей HexChat:
  456. .. code-block:: text
  457. mkdir -p ~/.config/hexchat/certs
  458. Воспользуемся утилитой **openssl**, чтобы сгенерировать новую ключевую пару:
  459. .. code-block:: text
  460. openssl req -x509 -new -newkey rsa:4096 -sha256 -days 1825 -nodes -out ~/.config/hexchat/certs/liberachat.pem -keyout ~/.config/hexchat/certs/liberachat.pem
  461. Будут заданы стандартные вопросы. На них можно отвечать как угодно (сервер не проверяет валидность данных), за исключением **Common Name** (зарегистрированный ник в сети LiberaChat) и **Email Address** (привязанный к учётной записи адрес электронной почты).
  462. Установим корректный chmod:
  463. .. code-block:: text
  464. chmod 0400 ~/.config/hexchat/certs/liberachat.pem
  465. Запустим HexChat, откроем список сетей и убедимся, что FreeNode называется **liberachat** (в нижнем регистре; важно, чтобы имя файла сертификата соответствовало названию сети). Если это не так, нажмём **F2** и осуществим переименование.
  466. Зайдём в расширенные настройки сети liberachat, укажем в качестве основного сервера ``irc.liberachat.net/6697`` (остальные лучше вообще удалить), затем установим следующие параметры:
  467. * флажок **соединяться только с выделенным сервером** -- включено;
  468. * флажок **использовать SSL для всех серверов в этой сети** -- включено;
  469. * **метод авторизации** -- SASL external (cert).
  470. Получим SHA1 отпечаток созданного сертификата:
  471. .. code-block:: text
  472. openssl x509 -in ~/.config/hexchat/certs/freenode.pem -outform der | sha512sum -b | cut -d' ' -f1
  473. Подключимся к серверу, затем авторизуемся в системе:
  474. .. code-block:: text
  475. /ns identify PASSWORD
  476. Добавим SHA1 отпечаток сертификата в доверенные:
  477. .. code-block:: text
  478. /ns cert add XXXXXXXXXX
  479. Здесь **PASSWORD** -- текущий пароль пользователя, а **XXXXXXXXXX** -- отпечаток сертификата.
  480. Теперь можно отключиться и подключиться заново. Вход будет выполнен уже безопасным способом без использования паролей.
  481. .. index:: kde, plasma, kickoff, menu, icons, reset, kactivitymanagerd
  482. .. _kickoff-reset:
  483. В меню KDE перестали отображаться значки приложений и документов. Как исправить?
  484. ===================================================================================
  485. Исчезновение значков приложений, либо документов в меню KDE Plasma 5 часто происходит при повреждении баз данных компонента KDE activity manager.
  486. Произведём удаление старых баз (при необходимости можно сделать резервную копию):
  487. .. code-block:: text
  488. rm -rf ~/.local/share/kactivitymanagerd
  489. При следующем входе в систему все настройки Kickoff будут сброшены, включая страницу *Избранное* и при этом должна восстановиться его правильная работа.
  490. .. index:: firefox, browser, sqlite, database, vacuum, compress, find
  491. .. _firefox-vacuum:
  492. Как сжать базы данных sqlite браузера Firefox?
  493. =================================================
  494. Браузер Mozilla Firefox сохраняет данные внутри стандартных баз sqlite3, поэтому даже после очистки истории, cookies, кэшей и т.д. их размер на диске не уменьшается, т.к. данные в них лишь помечаются удалёнными, а непосредственная очистка (vacuum) производится по таймеру во время простоя несколько раз в месяц.
  495. Сжать все базы данных можно и вручную. Для этого установим пакет sqlite:
  496. .. code-block:: text
  497. sudo dnf install sqlite
  498. Убедимся, что Firefox **не запущен**, затем выполним команду vaccuum для всех sqlite файлов внутри локальных профилей браузера:
  499. .. code-block:: text
  500. find ~/.mozilla/firefox -name "*.sqlite" -exec sqlite3 "{}" VACUUM \;
  501. Это действие абсолютно безопасно, т.к. физически удаляет лишь те данные, которые в них были помечены в качестве удалённых.
  502. .. index:: flash, usb, check, f3
  503. .. _f3chk-safe:
  504. Как безопасно проверить объём накопителя?
  505. ============================================
  506. Установим пакет **f3**:
  507. .. code-block:: text
  508. sudo dnf install f3
  509. Подключим накопитель и смонтируем его, затем начнём проверку:
  510. .. code-block:: text
  511. f3write /media/foo-bar
  512. По окончании работы осуществим проверку записанных данных:
  513. .. code-block:: text
  514. f3read /media/foo-bar
  515. Если проверки прошли успешно, накопитель имеет действительный объём.
  516. Удалим созданные проверочные данные:
  517. .. code-block:: text
  518. find /media/foo-bar -name *.h2w -delete \;
  519. Здесь **/media/foo-bar** -- точка монтирования накопителя, объём которого требуется проверить.
  520. .. index:: flash, usb, check, f3
  521. .. _f3chk-deep:
  522. Как выполнить глубокую проверку объёма накопителя?
  523. =====================================================
  524. Установим пакет **f3**:
  525. .. code-block:: text
  526. sudo dnf install f3
  527. Подключим накопитель, но не будем его монтировать.
  528. Внимание! Все данные с этого устройства будет безвозвратно потеряны.
  529. Запустим глубокую проверку:
  530. .. code-block:: text
  531. sudo f3probe --destructive --time-ops /dev/sdb
  532. Здесь **/dev/sdb** -- устройство, объём которого требуется проверить.
  533. После завершения процесса потребуется заново создать раздел и файловую систему на проверяемом устройстве при помощи таких утилит, как GParted, Gnome Disks, KDE Disk Manager и т.д.
  534. .. index:: latex, texlive, pdf, markdown, xelatex, xetex
  535. .. _markdown-pdf:
  536. Как из документа в формате Markdown создать PDF?
  537. ====================================================
  538. Установим универсальный конвертер документов pandoc:
  539. .. code-block:: text
  540. sudo dnf install pandoc
  541. Установим движок xelatex:
  542. .. code-block:: text
  543. sudo dnf install texlive-xetex
  544. Преобразуем документ ``foo-bar.md`` из формата Markdown в PDF:
  545. .. code-block:: text
  546. pandoc foo-bar.md --pdf-engine=xelatex --variable papersize=a4 --variable fontsize=12pt --variable mathfont="DejaVu Sans" --variable mainfont="DejaVu Serif" --variable sansfont="DejaVu Sans" --variable monofont="DejaVu Sans Mono" -o foo-bar.pdf
  547. Допускается указать любые установленные в системе OpenType шрифты.
  548. .. index:: du, disk usage, coreutils, directory size, console
  549. .. _directory-size-console:
  550. Как из консоли получить размер каталога вместе со всем его содержимым?
  551. =========================================================================
  552. Выведем общий размер каталога в человеко-читаемом формате, включая вложенные объекты:
  553. .. code-block:: text
  554. du -sh ~/foo-bar
  555. .. index:: du, disk usage, coreutils, directory size, console
  556. .. _directory-size-top:
  557. Как из консоли вывести список десяти самых крупных каталогов?
  558. =================================================================
  559. Вывыдем список десяти самых крупных каталогов:
  560. .. code-block:: text
  561. du -hs /path/to/directory/* 2>/dev/null | sort -rh | head -10
  562. Здесь **/path/to/directory** -- начальный каталог.
  563. .. index:: disk usage, directory size, filelight, baobab
  564. .. _directory-size-gui:
  565. Как вывести содержимое каталога в графическом виде?
  566. ======================================================
  567. В графическом режиме для визуализации содержимого каталога могут применяться такие утилиты, как **Baobab** (Gnome, GTK), либо **Filelight** (KDE, Qt).
  568. Установим **Baobab** (для пользователей Gnome или других DE, основанных на GTK):
  569. .. code-block:: text
  570. sudo dnf install baobab
  571. Установим **Filelight** (для пользователей KDE):
  572. .. code-block:: text
  573. sudo dnf install filelight
  574. .. index:: kde, plasma, restart, shell
  575. .. _plasma-restart:
  576. Как перезапустить зависшую оболочку KDE Plasma 5?
  577. ====================================================
  578. Перезапустим KDE Plasma 5:
  579. .. code-block:: text
  580. kquitapp5 plasmashell && kstart plasmashell
  581. .. index:: kde, plasma, restart, window manager, kwin, x11, wayland
  582. .. _kwin-restart:
  583. Как перезапустить оконный менеджер KDE Plasma 5?
  584. ====================================================
  585. Перезапустим оконный менеджер KWin, работающий поверх X11:
  586. .. code-block:: text
  587. kwin_x11 --replace &>/dev/null &
  588. Перезапустим оконный менеджер KWin, работающий поверх Wayland:
  589. .. code-block:: text
  590. kwin_wayland --replace &>/dev/null &
  591. .. index:: gnome, restart, shell
  592. .. _gnome-shell-restart:
  593. Как перезапустить зависшую оболочку Gnome Shell?
  594. ===================================================
  595. Перезапустим Gnome Shell:
  596. .. code-block:: text
  597. gnome-shell --replace
  598. .. index:: hash, bash, check, files, sha512sum, sha2, sha512, find
  599. .. _dir-hash-save:
  600. Как сохранить контрольные суммы файлов в каталоге рекурсивно?
  601. ================================================================
  602. Cгенерируем файл с контрольными суммами SHA2 (SHA-512) содержимого текущего каталога при помощи утилит **find** и **sha512sum**:
  603. .. code-block:: text
  604. find -type f \( -not -name 'sha512sum.txt' \) -exec sha512sum '{}' \; > sha512sum.txt
  605. Результат будет сохранён в файле с именем **sha512sum.txt**.
  606. .. index:: hash, bash, check, verification, files, sha512sum, sha2, sha512
  607. .. _dir-hash-verify:
  608. Как проверить контрольные суммы файлов в каталоге?
  609. =====================================================
  610. Проверим контрольные суммы SHA2 (SHA-512), :ref:`сохранённые <dir-hash-save>` в **sha512sum.txt**:
  611. .. code-block:: text
  612. sha512sum -c sha512sum.txt > check_results.txt
  613. Для удобства :ref:`перенаправим вывод <bash-pipelines>` в файл **check_results.txt** ибо он может быть очень большим и не поместиться на экране.
  614. .. index:: hash, bash, check, verification, files, sha512sum, sha2, sha512, grep
  615. .. _dir-hash-missmatch:
  616. Как вывести список не совпадающих с сохранёнными контрольными суммами файлов?
  617. =================================================================================
  618. Проверим контрольные суммы SHA2 (SHA-512), :ref:`сохранённые <dir-hash-save>` в **sha512sum.txt** и выведем лишь те, проверка которых завершилась неудачно:
  619. .. code-block:: text
  620. sha512sum -c sha512sum.txt | grep -v 'OK'
  621. Для удобства :ref:`перенаправим вывод <bash-pipelines>` в файл **failed_results.txt** ибо он может быть очень большим и не поместиться на экране:
  622. .. code-block:: text
  623. sha512sum -c sha512sum.txt | grep -v 'OK' > failed_results.txt
  624. .. index:: qt, theme, override
  625. .. _qt-theme-override:
  626. Как переопределить тему в Qt приложениях?
  627. ============================================
  628. Воспользуемся :ref:`переменными окружения <env-set>` для переопределения темы Qt:
  629. .. code-block:: text
  630. QT_STYLE_OVERRIDE=adwaita QT_QPA_PLATFORMTHEME=qgnomeplatform /usr/bin/foo-bar
  631. .. index:: wine, windows
  632. .. _wine-fedora:
  633. Как правильно установить Wine в Fedora?
  634. ===========================================
  635. В основном репозитории Fedora всегда находится самый свежий и правильно опакеченный выпуск Wine, поэтому подключать какие-либо сторонние репозитории, в т.ч. официальный от WineHQ, категорически не рекомендуется.
  636. Установим Wine из репозитория Fedora:
  637. .. code-block:: text
  638. sudo dnf install wine wine.i686
  639. .. index:: wine, dxvk, windows, directx, direct3d
  640. .. _wine-dxvk:
  641. Как правильно установить dxvk для Wine из репозиториев?
  642. ==========================================================
  643. Наряду с :ref:`правильно опакеченным Wine <wine-fedora>`, в основном репозитории Fedora доступен и dxvk.
  644. Установим dxvk с поддержкой DirectX 10, 11:
  645. .. code-block:: text
  646. sudo dnf install wine-dxvk wine-dxvk.i686
  647. Установим dxvk с поддержкой DirectX 9:
  648. .. code-block:: text
  649. sudo dnf install wine-dxvk-d3d9 wine-dxvk-d3d9.i686
  650. .. index:: kde, chromium, chrome, default, plasma, browser
  651. .. _kde-chromium-default:
  652. Как сделать Chromium браузером по умолчанию в KDE?
  653. ======================================================
  654. Для того, чтобы назначить Chromium браузером по умолчанию, выполним **Параметры системы** -- **Приложения** -- **Приложения по умолчанию** -- **Браузер** -- установим точку около **в следующем приложении**, затем в выпадающем списке выберем **Chromium** и нажмём кнопку **Применить**.
  655. Однако, даже если указанное действие сделано верно, Chromium всё равно будет предлагать установить его браузером по умолчанию при каждом запуске, т.к. он проверяет привязку не только к протоколам, но и к конкретным :ref:`mime-типам <file-types>` для HTML-файлов.
  656. Чтобы избавиться от данного сообщения, повторно откроем **Параметры системы** -- **Приложения** -- **Привязки файлов**, в строке поиска введём ``html`` и переместим Chromium в самый верх списка приоритетов для **xhtml+xml** и **html**. Нажмём **Применить**.
  657. .. index:: oom, kernel, earlyoom
  658. .. _earlyoom-info:
  659. Что такое earlyoom и почему он установлен по умолчанию?
  660. ============================================================
  661. В Fedora 32 и 33, в редакции Workstation, `предустановлен <https://pagure.io/fedora-workstation/issue/119>`__ пакет **earlyoom**, который представляет собой систему раннего предотвращения нехватки памяти из пользовательского режима (user-space OOM Killer).
  662. В случаях, когда объём доступной оперативной памяти опустится ниже 4% или 400 МБ (в зависимости от того, что меньше), earlyoom принудительно завершит работу процесса, наиболее активно потребляющего память (имеющего самое высокое значение oom_score), не доводя систему до очистки системных буферов и вызова ядерного OOM Killer.
  663. Наиболее приоритетными кандидатами на завершение являются процессы *Web Content* браузера Mozilla Firefox. В то же время, снижен приоритет для различных системных сервисов, критичных для работы системы.
  664. .. index:: oom, kernel, earlyoom, systemd
  665. .. _earlyoom-enable:
  666. Как активировать earlyoom?
  667. ===============================
  668. Установим пакет **earlyoom** (для версий, :ref:`отличных от Workstation <earlyoom-info>`):
  669. .. code-block:: text
  670. sudo dnf install earlyoom
  671. Активируем его сервис (будет запускаться вместе с системой):
  672. .. code-block:: text
  673. sudo systemctl enable --now earlyoom.service
  674. .. index:: oom, kernel, earlyoom, systemd
  675. .. _earlyoom-disable:
  676. Как отключить earlyoom?
  677. ============================
  678. Отключим earlyoom (не будет запускаться вместе с системой):
  679. .. code-block:: text
  680. sudo systemctl disable --now earlyoom.service
  681. Удалим пакет **earlyoom**:
  682. .. code-block:: text
  683. sudo dnf remove earlyoom
  684. Внимание! Если удалить пакет **earlyoom** в Fedora 32 и 33, он может быть :ref:`установлен заново <earlyoom-info>` из-за включённых по умолчанию :ref:`слабых зависимостей <dnf-weakdeps>`.
  685. .. index:: oom, kernel, earlyoom, config
  686. .. _earlyoom-configure:
  687. Как настроить earlyoom?
  688. ============================
  689. Параметры :ref:`earlyoom <earlyoom-info>` хранятся в файле ``/etc/default/earlyoom``.
  690. Откроем его в текстовом редакторе:
  691. .. code-block:: text
  692. sudoedit /etc/default/earlyoom
  693. Внесём правки, сохраним изменения, а затем перезапустим сервис:
  694. .. code-block:: text
  695. sudo systemctl restart earlyoom.service
  696. Подробную документацию о всех поддерживаемых опциях можно найти в ``man earlyoom``.
  697. .. index:: oom, kernel, systemd, oomd
  698. .. _oomd-info:
  699. Что такое systemd-oomd?
  700. =============================
  701. Начиная с Fedora 34, во всех редакциях `активирован по умолчанию <https://fedoraproject.org/wiki/Changes/EnableSystemdOomd>`__ сервис **systemd-oomd**.
  702. Как и :ref:`earlyoom <earlyoom-info>`, он представляет собой систему раннего предотвращения нехватки памяти из пользовательского режима (user-space OOM Killer).
  703. .. index:: oom, kernel, systemd, oomd
  704. .. _oomd-disable:
  705. Как отключить systemd-oomd?
  706. ===============================
  707. Отключим сервис **systemd-oomd** (не будет запускаться вместе с системой):
  708. .. code-block:: text
  709. sudo systemctl disable --now systemd-oomd.service
  710. Заблокируем возможность его повторной активации и запуска:
  711. .. code-block:: text
  712. sudo systemctl mask systemd-oomd.service
  713. .. index:: oom, kernel, systemd, oomd, earlyoom
  714. .. _oomd-revert:
  715. Как отключить systemd-oomd и вернуться к earlyoom?
  716. =====================================================
  717. Выполним два простых шага:
  718. 1. :ref:`отключим systemd-oomd <oomd-disable>`;
  719. 2. :ref:`активируем earlyoom <earlyoom-enable>`.
  720. Изменения вступят в силу немедленно.
  721. .. index:: kde, iso, dolphin, ark, udf, plasma, dolphin
  722. .. _kde-iso:
  723. Как открыть ISO образ в KDE?
  724. ===================================
  725. Файлы образов ISO могут быть открыты архиватором Ark (``sudo dnf install ark``), если они не используют `файловую систему UDF <https://ru.wikipedia.org/wiki/Universal_Disk_Format>`__.
  726. В качестве альтернативного варианта можно установить утилиту Gnome Disks (``sudo dnf install gnome-disk-utility``), после чего пункт монтирования ISO-файла появится в контекстном меню по щелчку правой кнопки мыши в Dolphin. Таким способом можно быстро смонтировать образ с любой ФС.
  727. .. index:: kernel, memory, uresourced, gui, ram, cgroupsv2
  728. .. _uresourced-info:
  729. Что такое uresourced и почему он установлен по умолчанию?
  730. ============================================================
  731. Начиная с Fedora 33, в редакции Workstation `предустановлен <https://pagure.io/fedora-workstation/issue/154>`__ пакет **uresourced**, который представляет собой систему повышения отзывчивости графической оболочки.
  732. По умолчанию данный сервис резервирует 250 МБ или 10% от общего объёма оперативной памяти (в зависимости от того, что меньше) при помощи cgroupsv2.
  733. В результате снижается вероятность возникновения ошибок страниц за счёт исключения возможности вытеснения страниц памяти, занимаемых графической оболочкой, что в итоге и приводит к повышению отзывчивости.
  734. .. index:: kernel, memory, uresourced, gui, ram, systemd
  735. .. _uresourced-enable:
  736. Как активировать uresourced?
  737. ===============================
  738. Установим пакет **uresourced** (для версий, :ref:`отличных от Workstation <uresourced-info>`):
  739. .. code-block:: text
  740. sudo dnf install uresourced
  741. Активируем его сервис (будет запускаться вместе с системой):
  742. .. code-block:: text
  743. sudo systemctl enable --now uresourced.service
  744. .. index:: kernel, memory, uresourced, gui, ram, systemd
  745. .. _uresourced-disable:
  746. Как отключить uresourced?
  747. ============================
  748. Отключим uresourced (не будет запускаться вместе с системой):
  749. .. code-block:: text
  750. sudo systemctl disable uresourced.service
  751. Удалим пакет **uresourced**:
  752. .. code-block:: text
  753. sudo dnf remove uresourced
  754. Внимание! Если удалить пакет **uresourced** в Fedora Workstation, он может быть :ref:`установлен заново <earlyoom-info>` из-за включённых по умолчанию :ref:`слабых зависимостей <dnf-weakdeps>`.
  755. .. index:: firefox, dialog, save, open, file, kde
  756. .. _firefox-kde-dialog:
  757. Как в Firefox включить диалог загрузки и сохранения файлов от KDE?
  758. ======================================================================
  759. По умолчанию Firefox использует диалоги открытия и сохранения файлов из GTK, однако существует возможность активации родных от используемой рабочей среды, например KDE.
  760. Установим соответствующий пакет с порталом:
  761. .. code-block:: text
  762. sudo dnf install xdg-desktop-portal-kde
  763. Откроем ``about:config`` и установим переменной ``widget.use-xdg-desktop-portal`` значение ``true``.
  764. Изменения вступят в силу немедленно.
  765. .. index:: text editor, text, editor, vim, nano
  766. .. _nano-to-vim:
  767. Как заменить текстовый редактор по умолчанию Nano на Vim?
  768. =============================================================
  769. Призведём замену пакета, предоставляющего общесистемную конфигурацию по умолчанию:
  770. .. code-block:: text
  771. sudo dnf swap nano-default-editor vim-default-editor --allowerasing
  772. Данное действие затронет всех пользователей системы, явно не указавших :ref:`предпочитаемый текстовый редактор <editor-selection>` при помощи :ref:`переменных окружения <env-set>`.
  773. Осуществим новый вход в систему для вступления изменений в силу.
  774. .. index:: pdf, combine, merge, texlive, pdfjam
  775. .. _pdf-merge:
  776. Как объединить несколько PDF-файлов в один?
  777. ===============================================
  778. Для объединения нескольких PDF-файлов в один воспользуемся утилитой **pdfjam**, входящей в набор **texlive**.
  779. Установим пакет **texlive-pdfjam**:
  780. .. code-block:: text
  781. sudo dnf install texlive-pdfjam
  782. Объединим файлы с именами *file1.pdf* -- *fileN.pdf* в **result.pdf** по схеме 3x1 (три на одной странице):
  783. .. code-block:: text
  784. pdfjam file*.pdf --nup 3x1 --outfile result.pdf
  785. Поддерживаются следующие схемы размещения исходников:
  786. * **1x1** -- один файл на странице (по сути, простое объединение);
  787. * **2x1** -- два файла;
  788. * **3x1** -- три файла;
  789. * **4x1** -- четыре файла.
  790. Внимание! Если в оригиналах присутствовали цифровые подписи, они не будут перенесены в итоговый PDF.
  791. .. index:: sed, find, files
  792. .. _mass-change-files:
  793. Как изменить строку во всех файлах рекурсивно?
  794. =================================================
  795. Воспользуемся утилитами **find** и **sed** для замены строки *foo* на *bar*.
  796. Произведём поиск и замену во всех файлах каталога **src**:
  797. .. code-block:: text
  798. find src -type f -exec sed -e "s/foo/bar/g" -i "{}" \;
  799. Произведём поиск и замену в файлах, удовлетворяющих маске имени ``*.txt``, начиная с текущего каталога:
  800. .. code-block:: text
  801. find -type f -name "*.txt" -exec sed -e "s/foo/bar/g" -i "{}" \;
  802. .. index:: git, xargs, sed, find, files
  803. .. _mass-change-files-git:
  804. Как изменить строку во всех файлах Git-репозитория?
  805. ======================================================
  806. При использовании системы контроля версий Git, не следует применять :ref:`классический поиск <mass-change-files>` без указания маски имени, либо начального каталога, т.к. это может повлечь за собой внесение правок в индексы, расположенные внутри служебной директории ``.git``, что приведёт к повреждению локальной копии репозитория.
  807. Воспользуемся функцией Git **ls-files** и утилитами **xargs** и **sed** для замены строки *foo* на *bar*.
  808. Произведём поиск и замену во всех файлах репозитория:
  809. .. code-block:: text
  810. git ls-files | xargs sed -i -e "s/foo/bar/g"
  811. Произведём поиск и замену в файлах репозитория, удовлетворяющих маске имени ``*.txt``:
  812. .. code-block:: text
  813. git ls-files "*.txt" | xargs sed -i -e "s/foo/bar/g"
  814. .. index:: kde, plasma, kactivitymanagerd, privacy, tracking, activity, sqlite, database
  815. .. _plasma-privacy:
  816. Как улучшить приватность KDE Plasma 5?
  817. ===========================================
  818. С настройками по умолчанию KDE activity manager отслеживает, собирает и сохраняет в базе данных SQLite ``~/.local/share/kactivitymanagerd/resources/database`` подробную информацию об использовании системы, включая запуск приложений, открытие документов и каталогов и т.д.
  819. Для отключения этой функциональности перейдём в **Настройки системы** (**System Settings**) -- **Рабочая среда** (**Workspace**) -- **Поведение рабочей среды** (**Workspace Behavior**) -- **Комнаты** (**Комнаты**).
  820. На вкладке **Комнаты** (**Activities**), справа от имени каждой существующей комнаты, выберем вариант **Настроить комнату** (**Configure activity**), в появившемся окне установим флажок в чекбокс **Не запоминать статистику использования** (**Do not track usage for this activity**) и нажмём кнопку **OK**.
  821. На вкладке **Конфиденциальность** (**Privacy**), в разделе **Запоминать открытые документы** (**Remember opened documents**), установим точку около пункта **Не запоминать** (**Do not remember**), после чего нажмём **Применить** (**Apply**). Здесь же обязательно очистим все уже собранные данные при помощи **Очистить историю** (**Clear history**) -- **Стереть всё** (**Forget everything**).
  822. Произведём :ref:`очистку кэша <plasma-mime-clean>` :ref:`mime-типов <file-types>` файлов и каталогов и при необходимости :ref:`автоматизируем <plasma-mime-autoclean>` это действие.
  823. Изменения вступят в силу при следующем входе в систему.
  824. .. index:: kde, plasma, kactivitymanagerd, privacy, tracking, activity, sqlite, database, mime
  825. .. _plasma-mime-clean:
  826. Как очистить кэш файлов и каталогов в KDE Plasma 5?
  827. =======================================================
  828. KDE activity manager отслеживает, собирает и сохраняет в базе данных SQLite ``~/.local/share/kactivitymanagerd/resources/database``, в таблице **ResourceInfo**, информацию о :ref:`mime-типе <file-types>` каждого файла или каталога, которые был открыты при помощи любого приложения из состава KDE.
  829. Очистим данную таблицу вручную при помощи утилиты **sqlite3**:
  830. .. code-block:: text
  831. sqlite3 ~/.local/share/kactivitymanagerd/resources/database 'DELETE from ResourceInfo; PRAGMA wal_checkpoint(TRUNCATE); VACUUM;'
  832. .. index:: kde, plasma, kactivitymanagerd, privacy, tracking, activity, sqlite, mime, systemd, timer
  833. .. _plasma-mime-autoclean:
  834. Как автоматизировать очистку кэша файлов и каталогов в KDE Plasma 5?
  835. =======================================================================
  836. Т.к. в настоящее время не существует возможности штатно запретить KDE activity manager накапливать данные о :ref:`mime-типах <file-types>`, автоматизируем :ref:`очистку <plasma-mime-clean>` при помощи пользовательского :ref:`systemd-юнита <systemd-info>`.
  837. Создадим и откроем файл ``~/.config/systemd/user/plasma-clean-database.service`` в любом :ref:`текстовом редакторе <editor-selection>`:
  838. .. code-block:: text
  839. mkdir -p ~/.config/systemd/user
  840. touch ~/.config/systemd/user/plasma-clean-database.service
  841. restorecon -Rv ~/.config/systemd
  842. Добавим следующее содержимое:
  843. .. code-block:: ini
  844. [Unit]
  845. Description=Clean KDE Activity Manager database
  846. Before=plasma-plasmashell.service
  847. [Service]
  848. Type=oneshot
  849. ExecStart=/usr/bin/sqlite3 %h/.local/share/kactivitymanagerd/resources/database 'DELETE from ResourceInfo; PRAGMA wal_checkpoint(TRUNCATE); VACUUM;'
  850. RemainAfterExit=true
  851. [Install]
  852. WantedBy=graphical-session.target
  853. Настроим его автоматический запуск:
  854. .. code-block:: text
  855. systemctl --user daemon-reload
  856. systemctl --user enable plasma-clean-database.service
  857. .. index:: third-party, libheif, hevc, heif
  858. .. _heif-support:
  859. Как добавить поддержку открытия и сохранения изображений в формате HEIF?
  860. ============================================================================
  861. Для работы с графическими файлами в формате `High Efficiency Image File <https://ru.wikipedia.org/wiki/HEIF>`__, подключим репозиторий :ref:`RPM Fusion <rpmfusion>` и установим пакет **libheif-freeworld**:
  862. .. code-block:: text
  863. sudo dnf install libheif-freeworld
  864. Перезапустим графический редактор для вступления изменений в силу.
  865. .. index:: qt, qml, qtquick, acceleration
  866. .. _qml-software:
  867. Как отключить аппаратное ускорение для QML-приложений?
  868. ===========================================================
  869. Для отключения аппаратного ускорения отрисовки QML и QtQuick, зададим :ref:`переменную окружения <env-set>` **QT_QUICK_BACKEND** перед его запуском:
  870. .. code-block:: text
  871. QT_QUICK_BACKEND=software foo-bar
  872. При необходимости :ref:`отредактируем ярлык <icon-override>`:
  873. .. code-block:: text
  874. Exec=env QT_QUICK_BACKEND=software foo-bar