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
カウント: 18
My開発メモ