diff --git a/io.github.revisto.drum-machine.json b/io.github.revisto.drum-machine.json
index b3c8b0b..a27eab8 100644
--- a/io.github.revisto.drum-machine.json
+++ b/io.github.revisto.drum-machine.json
@@ -1,7 +1,7 @@
{
"id" : "io.github.revisto.drum-machine",
"runtime" : "org.gnome.Platform",
- "runtime-version" : "48",
+ "runtime-version" : "49",
"sdk" : "org.gnome.Sdk",
"command" : "drum-machine",
"finish-args" : [
diff --git a/po/POTFILES.in b/po/POTFILES.in
index cc4d43b..8a24340 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -12,7 +12,7 @@ src/utils/name_utils.py
src/ui/drum_grid_builder.py
src/window.py
src/window.ui
-src/gtk/help-overlay.blp
+src/gtk/shortcuts-dialog.blp
src/gtk/save-changes-dialog.blp
src/gtk/audio-export-dialog.blp
src/gtk/reset-defaults-dialog.blp
diff --git a/python-dependencies.json b/python-dependencies.json
index cb78696..e47e861 100755
--- a/python-dependencies.json
+++ b/python-dependencies.json
@@ -83,13 +83,13 @@
"sources": [
{
"type": "file",
- "url": "https://files.pythonhosted.org/packages/59/ef/f96536f1df42c668cbacb727a8c6da7afc9c05ece6d558927fb1722693e1/numpy-2.3.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl",
- "sha256": "8145dd6d10df13c559d1e4314df29695613575183fa2e2d11fac4c208c8a1f73"
+ "url": "https://files.pythonhosted.org/packages/04/dc/46066ce18d01645541f0186877377b9371b8fa8017fa8262002b4ef22612/numpy-2.4.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl",
+ "sha256": "d0d9b7c93578baafcbc5f0b83eaf17b79d345c6f36917ba0c67f45226911d499"
},
{
"type": "file",
- "url": "https://files.pythonhosted.org/packages/91/ba/f4ebf257f08affa464fe6036e13f2bf9d4642a40228781dc1235da81be9f/numpy-2.3.2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl",
- "sha256": "572d5512df5470f50ada8d1972c5f1082d9a0b7aa5944db8084077570cf98370"
+ "url": "https://files.pythonhosted.org/packages/19/fb/cbfdbfa3057a10aea5422c558ac57538e6acc87ec1669e666d32ac198da7/numpy-2.4.2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl",
+ "sha256": "c3cd545784805de05aafe1dde61752ea49a359ccba9760c1e5d1c88a93bbf2b7"
}
]
}
diff --git a/src/drum-machine.gresource.xml b/src/drum-machine.gresource.xml
index a6ae914..03bb195 100644
--- a/src/drum-machine.gresource.xml
+++ b/src/drum-machine.gresource.xml
@@ -4,7 +4,7 @@
style.css
style-dark.css
window.ui
- gtk/help-overlay.ui
+ gtk/shortcuts-dialog.ui
gtk/save-changes-dialog.ui
gtk/audio-export-dialog.ui
gtk/reset-defaults-dialog.ui
diff --git a/src/gtk/help-overlay.blp b/src/gtk/help-overlay.blp
deleted file mode 100644
index b2d2d3c..0000000
--- a/src/gtk/help-overlay.blp
+++ /dev/null
@@ -1,119 +0,0 @@
-using Gtk 4.0;
-
-ShortcutsWindow help_overlay {
- modal: true;
-
- ShortcutsSection {
- section-name: "shortcuts";
- max-height: 12;
-
- ShortcutsGroup {
- title: C_("shortcut window", "General");
-
- ShortcutsShortcut {
- title: C_("shortcut window", "Show Shortcuts");
- action-name: "win.show-help-overlay";
- }
-
- ShortcutsShortcut {
- title: C_("shortcut window", "Quit");
- action-name: "win.quit";
- accelerator: "q";
- }
- }
-
- ShortcutsGroup {
- title: C_("shortcut window", "Playback Controls");
-
- ShortcutsShortcut {
- title: C_("shortcut window", "Play/Pause");
- action-name: "win.play_pause";
- accelerator: "space";
- }
-
- ShortcutsShortcut {
- title: C_("shortcut window", "Clear All");
- action-name: "win.clear_toggles";
- accelerator: "Delete";
- }
- }
-
- ShortcutsGroup {
- title: C_("shortcut window", "BPM & Volume Controls");
-
- ShortcutsShortcut {
- title: C_("shortcut window", "Increase BPM");
- action-name: "win.increase_bpm";
- accelerator: "plus equal";
- }
-
- ShortcutsShortcut {
- title: C_("shortcut window", "Decrease BPM");
- action-name: "win.decrease_bpm";
- accelerator: "minus";
- }
-
- ShortcutsShortcut {
- title: C_("shortcut window", "Increase Volume");
- action-name: "win.increase_volume";
- accelerator: "Up";
- }
-
- ShortcutsShortcut {
- title: C_("shortcut window", "Decrease Volume");
- action-name: "win.decrease_volume";
- accelerator: "Down";
- }
-
- ShortcutsShortcut {
- title: C_("shortcut window", "Mute");
- action-name: "win.mute";
- accelerator: "m";
- }
- }
-
- ShortcutsGroup {
- title: C_("shortcut window", "Pattern Management");
-
- ShortcutsShortcut {
- title: C_("shortcut window", "Load Pattern");
- action-name: "win.load_pattern";
- accelerator: "o";
- }
-
- ShortcutsShortcut {
- title: C_("shortcut window", "Save Pattern");
- action-name: "win.save_pattern";
- accelerator: "s";
- }
-
- ShortcutsShortcut {
- title: C_("shortcut window", "Export Audio");
- action-name: "win.export_audio";
- accelerator: "e";
- }
- }
-
- ShortcutsGroup {
- title: C_("shortcut window", "Navigation");
-
- ShortcutsShortcut {
- title: C_("shortcut window", "Go to Instrument");
- action-name: "win.go_to_instrument";
- accelerator: "i";
- }
-
- ShortcutsShortcut {
- title: C_("shortcut window", "Previous Page");
- action-name: "win.previous_page";
- accelerator: "Page_Up";
- }
-
- ShortcutsShortcut {
- title: C_("shortcut window", "Next Page");
- action-name: "win.next_page";
- accelerator: "Page_Down";
- }
- }
- }
-}
diff --git a/src/gtk/shortcuts-dialog.blp b/src/gtk/shortcuts-dialog.blp
new file mode 100644
index 0000000..ccad929
--- /dev/null
+++ b/src/gtk/shortcuts-dialog.blp
@@ -0,0 +1,121 @@
+using Gtk 4.0;
+using Adw 1;
+
+Adw.ShortcutsDialog shortcuts_dialog {
+ Adw.ShortcutsSection {
+ title: C_("shortcut window", "General");
+
+ Adw.ShortcutsItem {
+ title: C_("shortcut window", "Show Shortcuts");
+ action-name: "app.shortcuts";
+ }
+
+ Adw.ShortcutsItem {
+ title: C_("shortcut window", "Quit");
+ action-name: "win.quit";
+ accelerator: "q";
+ }
+ }
+
+ Adw.ShortcutsSection {
+ title: C_("shortcut window", "Playback Controls");
+
+ Adw.ShortcutsItem {
+ title: C_("shortcut window", "Play/Pause");
+ action-name: "win.play_pause";
+ accelerator: "space";
+ }
+
+ Adw.ShortcutsItem {
+ title: C_("shortcut window", "Clear All");
+ action-name: "win.clear_toggles";
+ accelerator: "Delete";
+ }
+ }
+
+ Adw.ShortcutsSection {
+ title: C_("shortcut window", "BPM & Volume Controls");
+
+ Adw.ShortcutsItem {
+ title: C_("shortcut window", "Increase BPM");
+ action-name: "win.increase_bpm";
+ accelerator: "plus equal";
+ }
+
+ Adw.ShortcutsItem {
+ title: C_("shortcut window", "Decrease BPM");
+ action-name: "win.decrease_bpm";
+ accelerator: "minus";
+ }
+ }
+
+ Adw.ShortcutsSection {
+ Adw.ShortcutsItem {
+ title: C_("shortcut window", "Increase Volume");
+ action-name: "win.increase_volume";
+ accelerator: "Up";
+ }
+
+ Adw.ShortcutsItem {
+ title: C_("shortcut window", "Decrease Volume");
+ action-name: "win.decrease_volume";
+ accelerator: "Down";
+ }
+ }
+
+ Adw.ShortcutsSection {
+ Adw.ShortcutsItem {
+ title: C_("shortcut window", "Mute");
+ action-name: "win.mute";
+ accelerator: "m";
+ }
+ }
+
+ Adw.ShortcutsSection {
+ title: C_("shortcut window", "Pattern Management");
+
+ Adw.ShortcutsItem {
+ title: C_("shortcut window", "Load Pattern");
+ action-name: "win.load_pattern";
+ accelerator: "o";
+ }
+
+ Adw.ShortcutsItem {
+ title: C_("shortcut window", "Save Pattern");
+ action-name: "win.save_pattern";
+ accelerator: "s";
+ }
+ }
+
+ Adw.ShortcutsSection {
+ Adw.ShortcutsItem {
+ title: C_("shortcut window", "Export Audio");
+ action-name: "win.export_audio";
+ accelerator: "e";
+ }
+ }
+
+ Adw.ShortcutsSection {
+ title: C_("shortcut window", "Navigation");
+
+ Adw.ShortcutsItem {
+ title: C_("shortcut window", "Go to Instrument");
+ action-name: "win.go_to_instrument";
+ accelerator: "i";
+ }
+ }
+
+ Adw.ShortcutsSection {
+ Adw.ShortcutsItem {
+ title: C_("shortcut window", "Previous Page");
+ action-name: "win.previous_page";
+ accelerator: "Page_Up";
+ }
+
+ Adw.ShortcutsItem {
+ title: C_("shortcut window", "Next Page");
+ action-name: "win.next_page";
+ accelerator: "Page_Down";
+ }
+ }
+}
diff --git a/src/handlers/window_actions.py b/src/handlers/window_actions.py
index 3424f3f..08229cd 100644
--- a/src/handlers/window_actions.py
+++ b/src/handlers/window_actions.py
@@ -38,7 +38,6 @@ def setup_actions(self) -> None:
"""Setup all window actions and keyboard shortcuts"""
actions = [
("open_menu", self.on_open_menu_action, ["F10"]),
- ("show-help-overlay", self.on_show_help_overlay, ["question"]),
("play_pause", self.handle_play_pause_action, ["space"]),
("clear_toggles", self.handle_clear_action, ["Delete"]),
("increase_bpm", self.increase_bpm_action, ["plus", "equal"]),
@@ -77,11 +76,6 @@ def on_open_menu_action(
) -> None:
self.window.menu_button.activate()
- def on_show_help_overlay(
- self, action: Gio.SimpleAction, param: Optional[object]
- ) -> None:
- self.window.get_help_overlay().present()
-
def handle_play_pause_action(
self, action: Gio.SimpleAction, param: Optional[object]
) -> None:
diff --git a/src/meson.build b/src/meson.build
index 48c5abf..8a970d0 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -5,7 +5,7 @@ gnome = import('gnome')
blueprint_compiler = find_program('blueprint-compiler', required: true)
blueprint_files = files(
- 'gtk/help-overlay.blp',
+ 'gtk/shortcuts-dialog.blp',
'gtk/audio-export-dialog.blp',
'gtk/save-changes-dialog.blp',
'gtk/reset-defaults-dialog.blp',
diff --git a/src/window.ui b/src/window.ui
index 8410df9..bdd5c47 100644
--- a/src/window.ui
+++ b/src/window.ui
@@ -240,7 +240,7 @@ audio-volume-medium-symbolic
-
_Keyboard Shortcuts
- win.show-help-overlay
+ app.shortcuts
-
_About Drum Machine