i3 – Несоответствие разрешения фонового изображения Feh

Вопрос или проблема

На моем экране с разрешением 5120×1440 у меня есть следующая странная проблема. Я использую i3 на Ubuntu.

При начальной загрузке (после входа в систему) мой фон с помощью Feh, кажется, думает, что экран имеет разрешение 3840×1080 и отображает мой обои в тайловом режиме.

Начальная загрузка

Однако, как только я перезагружаю i3 (Mod+Shift+R), всё устанавливается на свои места, как показано на изображении.

После перезагрузки i3

Вот как выглядит мой конфигурационный файл i3

exec_always --no-startup-id xrandr --output DP-4 --mode 5120x1440 --rate 60
exec_always --no-startup-id $HOME/.config/polybar/launch.sh --forest
exec_always --no-startup-id feh --bg-max ~/Pictures/wallpapers/space_01.jpg

Я не уверен, является ли это проблемой xrandr или чем-то другим, потому что остальная часть экрана в порядке и всё в корректном разрешении/настройках. Как видите, даже Polybar на правильном месте и в правильном размере.

Ответ или решение

Проблема несовпадения разрешения фона в i3 с использованием Feh

Введение

Использование оконных менеджеров, таких как i3, может иногда вызывать неожиданные проблемы, связанные с настройками дисплея и установкой фона. В вашей ситуации наблюдается нестыковка разрешения фона на экране с разрешением 5120×1440, где при первой загрузке ваш фон отображается в формате 3840×1080 и только после перезагрузки i3 все устраивается. Давайте разберем причины данной проблемы и пути ее решения.

Причины проблемы

  1. Порядок выполнения команды: Команды, указанные в конфигурационном файле i3, выполняются последовательно при запуске сессии. Возможно, команда xrandr еще не успевает примениться к моменту запуска Feh, из-за чего Feh видит неправильное разрешение.

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

  3. Время инициализации: Ваша система может не успевать инициализировать новое разрешение дисплея до того, как Feh установит фон. Это может происходить в результате медленной загрузки драйверов или конфигураций.

Рекомендации по решению проблемы

Изменение порядка выполнения команд

Попробуйте изменить порядок выполнения команд в вашем конфигурационном файле i3, переместив команду запуска Feh вниз, чтобы убедиться, что разрешение уже установлено:

exec_always --no-startup-id xrandr --output DP-4 --mode 5120x1440 --rate 60
exec_always --no-startup-id $HOME/.config/polybar/launch.sh --forest
exec_always --no-startup-id sleep 1 && feh --bg-max ~/Pictures/wallpapers/space_01.jpg

Здесь добавлен sleep 1, который дает системе достаточно времени для применения изменений разрешения перед выполнением команды Feh.

Использование для инициализации

Если проблема продолжается, рекомендую создать простую скрипт, который сначала выполнит команду xrandr и через короткую задержку установит фон. Например, создайте скрипт set_background.sh:

#!/bin/bash
xrandr --output DP-4 --mode 5120x1440 --rate 60
sleep 1
feh --bg-max ~/Pictures/wallpapers/space_01.jpg

Не забудьте сделать скрипт исполняемым:

chmod +x ~/path/to/set_background.sh

И измените конфигурацию i3 на:

exec_always --no-startup-id ~/path/to/set_background.sh
exec_always --no-startup-id $HOME/.config/polybar/launch.sh --forest

Проверка настроек дисплея

Убедитесь, что ваш вывод xrandr действительно отображает параметры, которые вы ожидаете. Запустите команду xrandr в терминале и проверьте текущее состояние графической конфигурации.

Заключение

Устранение проблемы с несовпадением разрешения фона в i3 требует аккуратного подхода к порядку выполнения команд и возможной настройки времени инициализации. Применяя предложенные шаги, вы сможете гарантировать, что Feh работает с корректными настройками дисплея, что обеспечит верное отображение фона при загрузке системы. Если у вас остались вопросы или возникли новые проблемы, обязательно обращайтесь за помощью.

Оцените материал
Добавить комментарий

Капча загружается...