My開発メモ

brightness-controllerの修正 (Xubuntu 26.04)

Xubuntu を 26.04 にアップグレードして、
ウィンドウ・マネージャー を xfce(wayland) に変更したりして
遊んでいたら、brightness-controller が起動しなくなってしまった。

xfce(wayland) を起動するために labwc をインストールしたのだが、

$ sudo apt install labwc

そのせいだろうか?

xfce(wayland) から xubuntu に戻ったら、起動しなくなっていた。

(1) エラーを調べる

直接起動してみたら、エラーが出た

brightness-controller は 以下のようにして起動できる。

$ /usr/share/brightness-controller/init.py

すると、次のようなエラーが出た。

Traceback (most recent call last):
  File "/usr/share/brightness-controller/./init.py", line 715, in <module>
    WINDOW = MyApplication()
  File "/usr/share/brightness-controller/./init.py", line 84, in __init__
    self.connect_handlers()
    ~~~~~~~~~~~~~~~~~~~~~^^
  File "/usr/share/brightness-controller/./init.py", line 232, in connect_handlers
    self.ui.comboBox.activated[str].connect(self.combo_activated)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^
KeyError: 'there is no matching overloaded signal'

chatGPTによると、このパッケージは、Ubuntu 22.04 向けのもので、
現在の Ubuntu 26.04 では Qt 6.10.2 が使われており、互換性に問題が
生じているということである。

そして、以下のコードに問題があるとのこと。

init.py
232 self.ui.comboBox.activated[str].connect(self.combo_activated)

233 self.ui.primary_combobox.activated[str].connect(self.primary_source_combo_activated)

234 self.ui.secondary_combo.activated[str].connect(self.secondary_source_combo_activated)

activated[str] という指定が 現在の Qt環境ではエラーになっている。

これを修正すればいいのだが、接続先の関数がどうなっているかを調べる必要がある。

$ grep -n -A 15 -E \
'def (combo_activated|primary_source_combo_activated|secondary_source_combo_activated)' \
/usr/share/brightness-controller/init.py

この結果をみると、3つの関数とも、文字列の値を受け取っている。

def secondary_source_combo_activated(self, text):
    self.display2 = text

def primary_source_combo_activated(self, text):
    self.display1 = text

def combo_activated(self, text):
    self.temperature = text

(2) 修正する

したがって、以下のように修正する。

$ cd /usr/share/brightness-controller
$ sudo cp init.py init.py.bak
$ sudo vi init.py
init.py
232 self.ui.comboBox.currentTextChanged.connect(
    self.combo_activated)

233 self.ui.primary_combobox.currentTextChanged.connect(
    self.primary_source_combo_activated)

234 self.ui.secondary_combo.currentTextChanged.connect(
    self.secondary_source_combo_activated)

これで、brightness-controller が起動するようになった。

参考

輝度調整ができなくなったので、Brightness-Controllerをインストールした(Ubuntu 22.04)

カテゴリー: memo, Ubuntu

タグ: brightness-controller, Qt6

カウント: 19