Вопрос или проблема
На моем экране с разрешением 5120×1440 у меня есть следующая странная проблема. Я использую i3 на Ubuntu.
При начальной загрузке (после входа в систему) мой фон с помощью Feh, кажется, думает, что экран имеет разрешение 3840×1080 и отображает мой обои в тайловом режиме.
Однако, как только я перезагружаю i3 (Mod+Shift+R), всё устанавливается на свои места, как показано на изображении.
Вот как выглядит мой конфигурационный файл 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 все устраивается. Давайте разберем причины данной проблемы и пути ее решения.
Причины проблемы
-
Порядок выполнения команды: Команды, указанные в конфигурационном файле i3, выполняются последовательно при запуске сессии. Возможно, команда
xrandr
еще не успевает примениться к моменту запуска Feh, из-за чего Feh видит неправильное разрешение. -
Кэширование и инициализация: Система графики может иметь кэширование параметров дисплея. При начальной загрузке некоторые программы могут считывать старые настройки, что приводит к неверному отображению фона.
-
Время инициализации: Ваша система может не успевать инициализировать новое разрешение дисплея до того, как 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 работает с корректными настройками дисплея, что обеспечит верное отображение фона при загрузке системы. Если у вас остались вопросы или возникли новые проблемы, обязательно обращайтесь за помощью.