Вопрос или проблема
На моем экране разрешением 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 находится на правильном месте и правильного размера.
Ответ или решение
Почему разрешение фонового изображения Feh не соответствует i3 на Ubuntu
Проблема, которую вы описали, является довольно распространенной среди пользователей, работающих с менеджерами окон, такими как i3, особенно в средах с высоким разрешением, таких как 5120×1440. Давайте рассмотрим возможные причины и решения проблемы нестыковки разрешения фонового изображения на вашем экране.
1. Понимание проблемы
Сначала необходимо понять, почему Feh неправильно отображает фоновое изображение при первой загрузке сессии. При первом подключении системы возможно, что настройки разрешения не были корректно применены до того, как Feh запустился, что приводит к тому, что программа использует одно разрешение (в вашем случае 3840×1080) для установки фона. После перезагрузки i3 (с использованием сочетания клавиш Mod+Shift+R), i3 правильно применяет настройки, и Feh обновляет фоновое изображение с корректными параметрами.
2. Приоритет xrandr
Вы упомянули использование xrandr для установки разрешения экрана. Это важный шаг, так как xrandr гарантирует, что ваше устройство отображает правильное разрешение. Однако, важно удостовериться, что команда для xrandr выполняется до запуска Feh в вашем 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
Так как команды exec_always
выполняются параллельно, это может привести к тому, что Feh будет запущен до того, как настройки xrandr применятся корректно.
3. Решение проблемы
Чтобы решить вашу проблему с разрешением, рассмотрите следующие шаги:
-
Изменение порядка команд: Убедитесь, что Feh запускается только после того, как xrandr установит правильное разрешение. Измените ваш конфигурационный файл, как показано ниже:
exec_always --no-startup-id xrandr --output DP-4 --mode 5120x1440 --rate 60 exec_always --no-startup-id feh --bg-max ~/Pictures/wallpapers/space_01.jpg exec_always --no-startup-id $HOME/.config/polybar/launch.sh --forest
-
Добавление задержки (опционально): Если проблема всё равно сохраняется, попробуйте добавлять небольшую задержку (например, с помощью
sleep
), чтобы убедиться, что xrandr завершил свои действия до запуска Feh:exec_always --no-startup-id xrandr --output DP-4 --mode 5120x1440 --rate 60 exec_always --no-startup-id sleep 1 && feh --bg-max ~/Pictures/wallpapers/space_01.jpg exec_always --no-startup-id $HOME/.config/polybar/launch.sh --forest
4. Тестирование и устранение ошибок
После внесения изменений обязательно протестируйте вашу конфигурацию. Выйдите из сеанса и войдите снова, чтобы убедиться, что Feh теперь корректно отображает фоновое изображение без необходимости перезагрузки i3.
Заключение
Надеюсь, предложенные вами решения помогут вам устранить несоответствие между разрешением фона Feh и разрешением дисплея в i3 на Ubuntu. Правильная последовательность запуска команд может существенно повлиять на функционирование вашей графической среды и улучшить пользовательский опыт. Если у вас возникнут дополнительные вопросы или проблемы, не стесняйтесь обращаться за помощью.