Советы и хитрости

Скрытие браузера по умолчанию (Firefox)

Если вы используете другой браузер, а не установленный по умолчанию (Firefox), то вы можете скрыть браузер по умолчанию из интерфейса с помощью следующих команд:

$ sudo mkdir -p /usr/local/share/applications
$ sudo cp /usr/share/applications/org.mozilla.firefox.desktop /usr/local/share/applications/
$ sudo sed -i "2a\\NotShowIn=GNOME;KDE" /usr/local/share/applications/org.mozilla.firefox.desktop
$ sudo update-desktop-database /usr/local/share/applications/

Повторное включение браузера по умолчанию (Firefox)

Если вы хотите снова сделать браузер по умолчанию (Firefox) видимым после скрытия, вы можете выполнить следующие шаги:

$ sudo rm -f /usr/local/share/applications/org.mozilla.firefox.desktop
$ sudo update-desktop-database /usr/local/share/applications

Альтернативный метод

Если вы используете sway или хотите скрыть браузер по умолчанию только для своего пользователя, вы можете сделать это с помощью следующих команд:

$ mkdir -p ~/.local/share/applications
$ cp /usr/share/applications/org.mozilla.firefox.desktop ~/.local/share/applications/
$ sed -i "2a\\NotShowIn=GNOME;KDE;sway" ~/.local/share/applications/org.mozilla.firefox.desktop
$ update-desktop-database ~/.local/share/applications

и для повторного включения:

$ rm -f ~/.local/share/applications/org.mozilla.firefox.desktop
$ update-desktop-database ~/.local/share/applications

Включение репозиториев RPM Fusion

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

Пользователи могут захотеть воспользоваться несвободным ПО, доступным через репозитории RPM Fusion, чтобы использовать проприетарные драйверы NVIDIA, мультимедийные кодеки или другое ПО, не распространяемое в составе Fedora.

Первая установка

При первой установке репозиториев RPM Fusion вам необходимо установить RPM с привязкой к версии:

$ sudo rpm-ostree install \
    https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm \
    https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
$ reboot

Затем перейдите к следующему разделу, чтобы подготовить систему к основным обновлениям Fedora.

Основные обновления Fedora

После перезагрузки в новое развёртывание вы можете выполнить следующую команду, чтобы снять «блокировку» с пакетов, привязанных к версии, которые были установлены ранее. Это позволит автоматически обновлять репозитории RPM Fusion и правильно привязывать их к версиям при обновлениях основных версий Fedora:

$ sudo rpm-ostree update \
    --uninstall rpmfusion-free-release \
    --uninstall rpmfusion-nonfree-release \
    --install rpmfusion-free-release \
    --install rpmfusion-nonfree-release
$ reboot

Дополнительную информацию см. в этой теме на Fedora Discussion.

Работа с Toolbx

Определение, находитесь ли вы в контейнере Toolbx

Если вы часто используете Toolbx для выполнения различных задач и работаете с несколькими контейнерами Toolbx, может быть сложно отслеживать, выполняете ли вы команды на хосте или в контейнере Toolbx. Кроме того, в настоящее время нет команды, которая бы сообщала, в каком контейнере Toolbx вы работаете.

Чтобы облегчить эту задачу, вы можете добавить следующий псевдоним оболочки в конец вашего ~/.bashrc:

alias istoolbx='[ -f "/run/.toolboxenv" ] && grep -oP "(?<=name=\")[^\";]+" /run/.containerenv'

Когда вы откроете новую оболочку, у вас будет доступ к новой команде istoolbx. Она будет вести себя следующим образом:

  • При запуске с хоста возвращает код выхода 1.

  • При запуске из контейнера Toolbx возвращает код выхода 0 и выводит на консоль имя текущего контейнера Toolbx.

Если вы предпочитаете более автоматизированное решение, добавьте следующее в ваш ~/.bashrc, чтобы изменить приглашение bash, включив в него "[toolbox <имя>]":

function is_toolbox() {
    if [ -f "/run/.toolboxenv" ]
    then
        TOOLBOX_NAME=$(cat /run/.containerenv | grep -oP "(?<=name=\")[^\";]+")
        echo "[${HOSTNAME} ${TOOLBOX_NAME}]"
    fi
}

Теперь вы можете включить is_toolbox в переменную PS1, и вам не нужно будет выполнять дополнительные команды, чтобы узнать, находитесь ли вы в toolbox или в оболочке хоста.

Пример:
export PS1="\[\e[31m\]\`is_toolbox\`\]\e[m\]\[\e[32m\]\\$ \[\e[m\]\[\e[37m\]❱\[\e[m\] "

В результате приглашение выглядит так, когда вы не в toolbox: $ ❱

Однако при работе в toolbox с именем "default" оно выглядит так: [toolbox default]$ ❱

Запуск приложений изнутри Toolbx на хосте

Это может быть необходимо, если вы хотите взаимодействовать с инструментами, доступными с хоста, например podman, nmcli или rpm-ostree, не покидая контейнер Toolbx. Для этого вы можете использовать flatpak-spawn, включённый в базовую установку:

$ flatpak-spawn --host podman --help

Если приложение, которое вы хотите вызвать, требует доступа sudo, то необходимо передать sudo опцию -S, как показано ниже:

$ flatpak-spawn --host sudo -S rpm-ostree status

Если вы часто используете подобные команды для доступа, например, к команде flatpak изнутри контейнера Toolbx, вы можете создать для себя небольшой пользовательский скрипт-обёртку (внутри контейнера Toolbx). Для этого выполните следующие шаги:

  1. Определите псевдоним istoolbx (для удобства), выполнив упомянутую выше команду в вашем терминале.

  2. Убедитесь, что вы находитесь в контейнере Toolbx. Если следующая команда не выводит никаких данных, вы, скорее всего, всё ещё работаете на хосте!

    [toolbx]$ istoolbx
    <имя контейнера Toolbx>
  3. Убедившись, что вы находитесь в контейнере Toolbx, выполните следующую команду:

    [toolbx]$ echo -e '#!/bin/sh\nexec /usr/bin/flatpak-spawn --host flatpak "$@"' | \
      sudo tee /usr/local/bin/flatpak 1>/dev/null && sudo chmod +x /usr/local/bin/flatpak

Теперь у вас есть команда flatpak, которая позволяет вам взаимодействовать с flatpak так, как если бы вы выполняли команду на хосте.

Работа с ostree/rpm-ostree

Отслеживание изменений в базовой ОС

Некоторые каталоги в операционных системах на основе ostree доступны для записи пользователю, например /etc. Вы можете получить быстрый обзор изменённых файлов в /etc с помощью следующей команды:

$ sudo ostree admin config-diff

Чтобы получить более подробную разницу, вы можете использовать что-то вроде этого:

$ sudo diff -yrW200 --suppress-common-lines --color=always /usr/etc /etc 2>/dev/null

Это работает, потому что ostree хранит неизменённую копию каталога /etc в /usr/etc. Все ваши изменения идут непосредственно в /etc.

Работа с приложениями Flatpak

Прямой доступ к приложениям Flatpak из командной строки

Наиболее заметное изменение при использовании приложений Flatpak вместо обычных установок заключается в том, что приложения больше нельзя вызывать непосредственно из командной строки, например:

$ evince
bash: команда не найдена: evince

Вместо этого их можно вызывать так:

$ flatpak run org.gnome.Evince

Кроме того, большинство приложений Flatpak экспортируют свои внутренние двоичные файлы в зависящее от установки место:

  • Для приложений Flatpak, установленных из удалённых репозиториев system, их можно найти в /var/lib/flatpak/exports/bin/.

  • Для приложений Flatpak, установленных из удалённых репозиториев user, их можно найти в $HOME/.local/share/flatpak/exports/bin/.

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

$ flatpak list --app --columns=name,installation

Затем вы можете либо добавить эти каталоги в ваш $PATH:

$ org.gnome.Evince

или настроить псевдонимы оболочки по мере необходимости, чтобы сделать их доступными в командной строке, например:

$ alias evince="flatpak run org.gnome.Evince"
### или:
alias evince="org.gnome.Evince"
$ evince