{"id":5546,"date":"2026-07-30T07:16:22","date_gmt":"2026-07-29T22:16:22","guid":{"rendered":"https:\/\/matoken.org\/blog\/?p=5546"},"modified":"2026-07-30T07:16:24","modified_gmt":"2026-07-29T22:16:24","slug":"space-key-no-longer-works-in-mcomix","status":"publish","type":"post","link":"https:\/\/matoken.org\/blog\/2026\/07\/30\/space-key-no-longer-works-in-mcomix\/","title":{"rendered":"MComix\u3067Space key\u304c\u4f7f\u3048\u306a\u304f\u306a\u3063\u305f"},"content":{"rendered":"<div id=\"preamble\">\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>\u6700\u8fd1Debian sid amd64\u74b0\u5883\u306eMComix\u3067\u30b9\u30da\u30fc\u30b9\u30ad\u30fc\u3067\u30da\u30fc\u30b8\u9001\u308a\u304c\u3067\u304d\u306a\u304f\u306a\u308a\u307e\u3057\u305f\uff0e<br \/>\nPgUp\u3067\u4ee3\u66ff\u306f\u3067\u304d\u307e\u3059\u304c\u6163\u308c\u307e\u305b\u3093\uff0eShift + Space\u3067\u30da\u30fc\u30b8\u623b\u308a\u306f\u52b9\u304f\u3057\u5225\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3067\u306fSpace\u306f\u52b9\u304d\u307e\u3059\uff0e<br \/>\n\u30ad\u30fc\u30dc\u30fc\u30c9\u30fb\u30b7\u30e7\u30fc\u30c8\u30ab\u30c3\u30c8\u306e\u8a2d\u5b9a\u753b\u9762\u3067Space\u3092\u8a2d\u5b9a\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u308b\u306e\u3067Space\u81ea\u4f53\u306f\u30a2\u30d7\u30ea\u306b\u6e21\u3063\u3066\u3044\u305d\u3046\uff0e<\/p>\n<\/div>\n<p><!--more--><\/p>\n<div class=\"paragraph\">\n<p>\u30ad\u30fc\u30dc\u30fc\u30c9\u30b7\u30e7\u30fc\u30c8\u30ab\u30c3\u30c8\u3092\u30ea\u30bb\u30c3\u30c8\u3057\u305f\u308a\uff0c\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u81ea\u4f53\u3092\u5168\u90e8\u6d88\u3057\u3066\u307f\u305f\u308a\u3082\u3057\u307e\u3057\u305f\u304c\u52d5\u4f5c\u306f\u5909\u308f\u308a\u307e\u305b\u3093\uff0e<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>MComix\u306eTicket\u306b\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u3082\u306e\u304c\uff0eWayland\u3067\u30ad\u30fc\u30d0\u30a4\u30f3\u30c9\u304c\u58ca\u308c\u3066\u3044\u3066\uff0ccommit 274e95\u3067\u4fee\u6b63\u3055\u308c\u3066\u3044\u305d\u3046\u3067\u3059\uff0e<\/p>\n<\/div>\n<div class=\"ulist\">\n<ul>\n<li>\n<p><a href=\"https:\/\/sourceforge.net\/p\/mcomix\/bugs\/157\/\">MComix \/ Bugs \/ #157 Keybinds are broken on Wayland (stable release 3.1.1)<\/a><\/p>\n<\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph\">\n<p>\u4ee5\u4e0b\u304c\u305d\u306ecommit\uff0e<\/p>\n<\/div>\n<div class=\"ulist\">\n<ul>\n<li>\n<p><a href=\"https:\/\/sourceforge.net\/p\/mcomix\/git\/ci\/274e95ecbcf1cdac6e26341bd7241dd86b70b417\/\">MComix \/ Git \/ Commit [274e95]<\/a><\/p>\n<\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph\">\n<p>Debian package\u306eMComix\u306e\u30d5\u30a1\u30a4\u30eb\u306f\u4ee5\u4e0b\u306e\u3088\u3046\uff0e<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre>$ dpkg -L mcomix | grep keybindings.py\n\/usr\/lib\/python3\/dist-packages\/mcomix\/keybindings.py<\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3068\u3044\u3046\u3053\u3068\u3067\u3053\u3093\u306a\u611f\u3058\u306b\u4fee\u6b63\uff0e<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre>$ diff -u \/usr\/lib\/python3\/dist-packages\/mcomix\/keybindings.py \/usr\/lib\/python3\/dist-packages\/mcomix\/keybindings.py.org\n--- \/usr\/lib\/python3\/dist-packages\/mcomix\/keybindings.py\t2026-07-30 06:50:54.227287451 +0900\n+++ \/usr\/lib\/python3\/dist-packages\/mcomix\/keybindings.py.org\t2025-09-28 11:56:17.000000000 +0900\n@@ -176,7 +176,7 @@\n         # Load stored keybindings, or fall back to passed arguments\n         keycodes = self._action_to_bindings[name]\n         if keycodes == []:\n-            keycodes = [tuple(Gtk.accelerator_parse(binding)) for binding in bindings]\n+            keycodes = [Gtk.accelerator_parse(binding) for binding in bindings ]\n\n         for keycode in keycodes:\n             if keycode in list(self._binding_to_action.keys()):\n@@ -207,7 +207,7 @@\n         \"\"\"\n         assert name in BINDING_INFO, \"'%s' isn't a valid keyboard action.\" % name\n\n-        nb = tuple(Gtk.accelerator_parse(new_binding))\n+        nb = Gtk.accelerator_parse(new_binding)\n         old_action_with_nb = self._binding_to_action.get(nb)\n         if old_action_with_nb is not None:\n             # The new key is already bound to an action, erase the action\n@@ -216,7 +216,7 @@\n\n         if old_binding and name != old_action_with_nb:\n             # The action already had a key that is now being replaced\n-            ob = tuple(Gtk.accelerator_parse(old_binding))\n+            ob = Gtk.accelerator_parse(old_binding)\n             self._binding_to_action[nb] = name\n\n             # Remove action bound to the key.\n@@ -238,7 +238,7 @@\n         \"\"\" Remove binding for an action \"\"\"\n         assert name in BINDING_INFO, \"'%s' isn't a valid keyboard action.\" % name\n\n-        ob = tuple(Gtk.accelerator_parse(binding))\n+        ob = Gtk.accelerator_parse(binding)\n         self._action_to_bindings[name].remove(ob)\n         self._binding_to_action.pop(ob)\n\n@@ -299,7 +299,7 @@\n         for action in BINDING_INFO.keys():\n             if action in stored_action_bindings:\n                 bindings = [\n-                    tuple(Gtk.accelerator_parse(keyname))\n+                    Gtk.accelerator_parse(keyname)\n                     for keyname in stored_action_bindings[action] ]\n                 self._action_to_bindings[action] = bindings\n                 for binding in bindings:<\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u554f\u984c\u306a\u304f\u52d5\u4f5c\u3059\u308b\u3088\u3046\u306b\u306a\u3063\u3066\u3044\u305d\u3046\u3067\u3059\uff0e<br \/>\n\u3053\u306e\u307e\u307e\u3060\u3068\u30d1\u30c3\u30b1\u30fc\u30b8\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u3067\u4e0a\u66f8\u304d\u3055\u308c\u3066\u3057\u307e\u3044\u307e\u3059\u304c\uff0c\u672c\u5bb6\u3068\u540c\u3058\u30d0\u30fc\u30b8\u30e7\u30f3\u3060\u3057\u6050\u3089\u304f\u6b21\u306e\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u3067\u3053\u306e\u4fee\u6b63\u306f\u5165\u308b\u3068\u601d\u3044\u307e\u3059\uff0e<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u6700\u8fd1Python\u306e\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u304c\u3042\u3063\u305f\u306e\u3067\u305d\u306e\u8fba\u308a\u3067\u58ca\u308c\u305f\u306e\u304b\u3082\u3057\u308c\u307e\u305b\u3093\uff0e<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre>$ apt history-list | grep -i python | grep 2026\n284  install libhsa-runtime64-1 python...2026-01-06  05:18:29  I,U,R    5\n356  install python3-tables              2026-02-25  05:31:49  I,U,R    5\n533  install python3-poetry              2026-06-08  21:04:04  Install  11\n628  install python3                     2026-07-23  18:03:44  I,U,R    66<\/pre>\n<\/div>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"title\">\u74b0\u5883<\/div>\n<div class=\"content\">\n<pre>$ mcomix --version\nMComix 3.1.1\n$ dpkg-query -W mcomix python3-cairo python3-gi python3-pil python3 gir1.2-gtk-3.0 python3-gi-cairo\ngir1.2-gtk-3.0:amd64    3.24.52-1\nmcomix  3.1.1-2\npython3 3.14.6-1\npython3-cairo   1.27.0-3\npython3-gi      3.56.3-2\npython3-gi-cairo        3.56.3-2\npython3-pil:amd64       12.3.0-1\n$ lsb_release -dr\nDescription:    Debian GNU\/Linux forky\/sid\nRelease:        n\/a\n$ arch\nx86_64<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u6700\u8fd1Debian sid amd64\u74b0\u5883\u306eMComix\u3067\u30b9\u30da\u30fc\u30b9\u30ad\u30fc\u3067\u30da\u30fc\u30b8\u9001\u308a\u304c\u3067\u304d\u306a\u304f\u306a\u308a\u307e\u3057\u305f\uff0e PgUp\u3067\u4ee3\u66ff\u306f\u3067\u304d\u307e\u3059\u304c\u6163\u308c\u307e\u305b\u3093\uff0eShift + Space\u3067\u30da\u30fc\u30b8\u623b\u308a\u306f\u52b9\u304f\u3057\u5225\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3067\u306fSpac [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"webmentions_disabled_pings":false,"webmentions_disabled":false,"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":4,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"federated","footnotes":""},"categories":[7,6,199],"tags":[484],"class_list":["post-5546","post","type-post","status-publish","format-standard","hentry","category-debian-linux","category-linux","category-sid","tag-mcomix"],"_links":{"self":[{"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/posts\/5546","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/comments?post=5546"}],"version-history":[{"count":1,"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/posts\/5546\/revisions"}],"predecessor-version":[{"id":5547,"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/posts\/5546\/revisions\/5547"}],"wp:attachment":[{"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/media?parent=5546"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/categories?post=5546"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/tags?post=5546"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}