[BUG] Waybar is started twice at login (autostart.lua + ml4w-wallpaper reload)

オープン 初心者向け
#1,904 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
2/5
見積もり時間
1〜3時間
初心者へのやさしさ
75/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
linux, lua
領域
desktop, devops

調査の方向性

dotfiles/.config/hypr/conf/autostart.luaをml4w-autostartと、run_matugenおよびreload_waybarを呼び出すml4w-wallpaperのコードとあわせて読みます。両方の起動経路を追い、既存のログやテストがあれば確認します。テーマ設定後にWaybarが一度だけ起動するようにし、Waybarのデフォルトのログイン時に2回目の再起動が記録されず、バーもちらつかないことを確認します。

索引モデルが issue の本文から書いたものです。

説明

Describe the bug

On every login Waybar is started twice. The first instance shows up with the previous colors and some modules not ready yet. It is then killed and a second instance is started a moment later, so the bar visibly disappears and comes back.

There are two launches:

  1. dotfiles/.config/hypr/conf/autostart.lua starts Waybar directly:
    -- Start waybar
    hl.exec_cmd(HOME .. "/.config/waybar/launch.sh")
    
  2. A few seconds later ml4w-autostart runs ml4w-wallpaper "<cache>" --skip-wallpaper, which calls run_matugen and then reload_waybar. That function does killall waybar and runs launch.sh again.

Looking at the history, this looks like an overlap between two changes made two days apart:

  • c470e824 (Jun 23) added the Waybar launch to autostart.lua. At that point ml4w-wallpaper was skipped entirely when the awww cache existed, so the bar had to be started from somewhere else.
  • a4a1bebd (Jun 25) changed ml4w-autostart to always run ml4w-wallpaper ... --skip-wallpaper for theming. Since then Waybar is also (re)started by reload_waybar, so the launch in autostart.lua is redundant.
  • 0d676f10 (Jul 14) changed reload_waybar from pkill -SIGUSR2 waybar to killall waybar, which makes the restart visible as a flicker.

The issue is present from 2.14.0 up to 2.17.

Steps to reproduce
  1. Use Waybar as the status bar (~/.config/ml4w/settings/statusbar = waybar) with the default autostart.
  2. Make sure the awww cache exists (any normal login after the first one).
  3. Log in to Hyprland.
  4. Waybar appears, disappears for a moment and then appears again. The autostart log in ~/.local/state/ml4w-os-hyprland/ shows Waybar is currently running. followed by Waybar restarted.
Expected behavior

Waybar should start only once at login, already themed by matugen.

A possible fix is to drop the launch from autostart.lua and let ml4w-wallpaper start Waybar after matugen. Another option is to keep it there and have reload_waybar skip the kill and relaunch when it is called from ml4w-autostart.

Distribution

Arch Linux

Additional context

ML4W dotfiles 2.17 (stable), Hyprland with Lua config, wallpaper-app = quickshell. The installed files are identical to the ones in the repo (no local changes).

主要言語
QML
スター
5.1k
フォーク
386
平均マージ
16時間 45分
マージ済み PR(30日)
14

環境構築

  • Dockerfile・Docker Compose ファイルなし
  • プルリクエストのテンプレートあり
  • コントリビューションガイドなし

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

mylinuxforwork/dotfiles のほかの issue

mylinuxforwork/dotfiles の issue をすべて見る

似ている issue

Desktop Dev の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。