最近Debian sid amd64環境のMComixでスペースキーでページ送りができなくなりました.
PgUpで代替はできますが慣れません.Shift + Spaceでページ戻りは効くし別のアプリケーションではSpaceは効きます.
キーボード・ショートカットの設定画面でSpaceを設定することもできるのでSpace自体はアプリに渡っていそう.
キーボードショートカットをリセットしたり,設定ファイル自体を全部消してみたりもしましたが動作は変わりません.
MComixのTicketに以下のようなものが.Waylandでキーバインドが壊れていて,commit 274e95で修正されていそうです.
以下がそのcommit.
Debian packageのMComixのファイルは以下のよう.
$ dpkg -L mcomix | grep keybindings.py /usr/lib/python3/dist-packages/mcomix/keybindings.py
ということでこんな感じに修正.
$ diff -u /usr/lib/python3/dist-packages/mcomix/keybindings.py /usr/lib/python3/dist-packages/mcomix/keybindings.py.org
--- /usr/lib/python3/dist-packages/mcomix/keybindings.py 2026-07-30 06:50:54.227287451 +0900
+++ /usr/lib/python3/dist-packages/mcomix/keybindings.py.org 2025-09-28 11:56:17.000000000 +0900
@@ -176,7 +176,7 @@
# Load stored keybindings, or fall back to passed arguments
keycodes = self._action_to_bindings[name]
if keycodes == []:
- keycodes = [tuple(Gtk.accelerator_parse(binding)) for binding in bindings]
+ keycodes = [Gtk.accelerator_parse(binding) for binding in bindings ]
for keycode in keycodes:
if keycode in list(self._binding_to_action.keys()):
@@ -207,7 +207,7 @@
"""
assert name in BINDING_INFO, "'%s' isn't a valid keyboard action." % name
- nb = tuple(Gtk.accelerator_parse(new_binding))
+ nb = Gtk.accelerator_parse(new_binding)
old_action_with_nb = self._binding_to_action.get(nb)
if old_action_with_nb is not None:
# The new key is already bound to an action, erase the action
@@ -216,7 +216,7 @@
if old_binding and name != old_action_with_nb:
# The action already had a key that is now being replaced
- ob = tuple(Gtk.accelerator_parse(old_binding))
+ ob = Gtk.accelerator_parse(old_binding)
self._binding_to_action[nb] = name
# Remove action bound to the key.
@@ -238,7 +238,7 @@
""" Remove binding for an action """
assert name in BINDING_INFO, "'%s' isn't a valid keyboard action." % name
- ob = tuple(Gtk.accelerator_parse(binding))
+ ob = Gtk.accelerator_parse(binding)
self._action_to_bindings[name].remove(ob)
self._binding_to_action.pop(ob)
@@ -299,7 +299,7 @@
for action in BINDING_INFO.keys():
if action in stored_action_bindings:
bindings = [
- tuple(Gtk.accelerator_parse(keyname))
+ Gtk.accelerator_parse(keyname)
for keyname in stored_action_bindings[action] ]
self._action_to_bindings[action] = bindings
for binding in bindings:問題なく動作するようになっていそうです.
このままだとパッケージアップデートで上書きされてしまいますが,本家と同じバージョンだし恐らく次のアップデートでこの修正は入ると思います.
最近Pythonのアップデートがあったのでその辺りで壊れたのかもしれません.
$ apt history-list | grep -i python | grep 2026 284 install libhsa-runtime64-1 python...2026-01-06 05:18:29 I,U,R 5 356 install python3-tables 2026-02-25 05:31:49 I,U,R 5 533 install python3-poetry 2026-06-08 21:04:04 Install 11 628 install python3 2026-07-23 18:03:44 I,U,R 66
環境
$ mcomix --version MComix 3.1.1 $ dpkg-query -W mcomix python3-cairo python3-gi python3-pil python3 gir1.2-gtk-3.0 python3-gi-cairo gir1.2-gtk-3.0:amd64 3.24.52-1 mcomix 3.1.1-2 python3 3.14.6-1 python3-cairo 1.27.0-3 python3-gi 3.56.3-2 python3-gi-cairo 3.56.3-2 python3-pil:amd64 12.3.0-1 $ lsb_release -dr Description: Debian GNU/Linux forky/sid Release: n/a $ arch x86_64