diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index d192377fc..9d5ab6fe1 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -19,10 +19,14 @@ jobs:
include:
- version: stable
mutter_pkg: libmutter-14-dev
+ panel_pkg: wingpanel-7
- version: unstable
mutter_pkg: libmutter-14-dev
+ panel_pkg: wingpanel-7
- version: development-target
mutter_pkg: libmutter-18-dev
+ panel_pkg: wingpanel-9
+
container:
image: ghcr.io/elementary/docker:${{ matrix.version }}
@@ -31,7 +35,7 @@ jobs:
- name: Install Dependencies
run: |
apt update
- apt install -y gettext gsettings-desktop-schemas-dev libatk-bridge2.0-dev libclutter-1.0-dev libgee-0.8-dev libglib2.0-dev libgnome-desktop-4-dev libgnome-bg-4-dev libgranite-dev libgtk-3-dev libibus-1.0-dev ${{ matrix.mutter_pkg }} libsoup-3.0-dev libsqlite3-dev meson systemd-dev valac valadoc
+ apt install -y gettext gsettings-desktop-schemas-dev libatk-bridge2.0-dev libclutter-1.0-dev libgee-0.8-dev libglib2.0-dev libgnome-desktop-4-dev libgnome-bg-4-dev libgranite-dev libgtk-3-dev libibus-1.0-dev ${{ matrix.mutter_pkg }} libsoup-3.0-dev libsqlite3-dev ${{ matrix.panel_pkg }} meson systemd-dev valac valadoc
- name: Build
env:
DESTDIR: out
diff --git a/data/gala.gschema.xml b/data/gala.gschema.xml
index ea079697a..3c43226f6 100644
--- a/data/gala.gschema.xml
+++ b/data/gala.gschema.xml
@@ -12,6 +12,7 @@
+
@@ -72,6 +73,11 @@
Panel main menu action
Sets the command to run when the panel-main-menu keybinding is pressed.
+
+ 'io.elementary.wingpanel --toggle-indicator=messages'
+ Panel notifications menu action
+ Sets the command to run when the panel-notifications-menu keybinding is pressed.
+
''
@@ -156,6 +162,10 @@
F2']]]>
Open the applications menu
+
+ N']]]>
+ Open the notifications menu
+
Take a screenshot
diff --git a/lib/CommonEnums.vala b/lib/CommonEnums.vala
index 242ff61c6..1cdee681f 100644
--- a/lib/CommonEnums.vala
+++ b/lib/CommonEnums.vala
@@ -11,6 +11,7 @@ namespace Gala {
MAXIMIZE_CURRENT,
HIDE_CURRENT,
OPEN_LAUNCHER,
+ OPEN_NOTIFICATIONS,
CUSTOM_COMMAND,
WINDOW_OVERVIEW,
WINDOW_OVERVIEW_ALL,
diff --git a/lib/WindowManager.vala b/lib/WindowManager.vala
index 1742bc65e..259efd5ee 100644
--- a/lib/WindowManager.vala
+++ b/lib/WindowManager.vala
@@ -20,6 +20,7 @@ namespace Gala {
public const string INTERACTIVE_SCREENSHOT_ACTION = "interactive-screenshot-action";
public const string OVERLAY_ACTION = "overlay-action";
public const string PANEL_MAIN_MENU_ACTION = "panel-main-menu-action";
+ public const string PANEL_NOTIFICATIONS_MENU_ACTION = "panel-notifications-menu-action";
public const string TOGGLE_RECORDING_ACTION = "toggle-recording-action";
}
diff --git a/meson.build b/meson.build
index c37cb6091..c55ff077e 100644
--- a/meson.build
+++ b/meson.build
@@ -82,6 +82,17 @@ endif
mutter_dep = []
libmutter_dep = []
+wingpanel_dep = []
+
+wingpanel7_dep = dependency('wingpanel-7', required: false)
+if wingpanel7_dep.found()
+ wingpanel_dep = wingpanel7_dep
+endif
+
+wingpanel9_dep = dependency('wingpanel-9', required: false)
+if wingpanel9_dep.found()
+ wingpanel_dep = wingpanel9_dep
+endif
vala_flags = []
diff --git a/src/WindowManager.vala b/src/WindowManager.vala
index 52b6af966..3e7d32cfd 100644
--- a/src/WindowManager.vala
+++ b/src/WindowManager.vala
@@ -31,7 +31,8 @@ namespace Gala {
}
private const string OPEN_MULTITASKING_VIEW = "dbus-send --session --dest=org.pantheon.gala --print-reply /org/pantheon/gala org.pantheon.gala.PerformAction int32:1";
- private const string OPEN_APPLICATIONS_MENU = "io.elementary.wingpanel --toggle-indicator=app-launcher";
+ private const string OPEN_APPLICATIONS_MENU = "io.elementary.wingpanel --toggle-indicator=" + Wingpanel.Indicator.APP_LAUNCHER;
+ private const string OPEN_NOTIFICATIONS_MENU = "io.elementary.wingpanel --toggle-indicator=" + Wingpanel.Indicator.MESSAGES;
/**
* {@inheritDoc}
@@ -230,6 +231,7 @@ namespace Gala {
display.add_keybinding ("cycle-workspaces-next", keybinding_settings, NONE, handle_cycle_workspaces);
display.add_keybinding ("cycle-workspaces-previous", keybinding_settings, NONE, handle_cycle_workspaces);
display.add_keybinding ("panel-main-menu", keybinding_settings, IGNORE_AUTOREPEAT, handle_applications_menu);
+ display.add_keybinding ("panel-notifications-menu", keybinding_settings, IGNORE_AUTOREPEAT, handle_notifications_menu);
display.add_keybinding ("toggle-multitasking-view", keybinding_settings, IGNORE_AUTOREPEAT, layout_manager.multitasking_view.toggle);
@@ -431,6 +433,11 @@ namespace Gala {
launch_action (ActionKeys.PANEL_MAIN_MENU_ACTION);
}
+ private void handle_notifications_menu (Meta.Display display, Meta.Window? window,
+ Clutter.KeyEvent? event, Meta.KeyBinding binding) {
+ launch_action (ActionKeys.PANEL_NOTIFICATIONS_MENU_ACTION);
+ }
+
/**
* {@inheritDoc}
*/
@@ -699,6 +706,9 @@ namespace Gala {
case ActionType.OPEN_LAUNCHER:
launch_action (ActionKeys.PANEL_MAIN_MENU_ACTION);
break;
+ case ActionType.OPEN_NOTIFICATIONS:
+ launch_action (ActionKeys.PANEL_NOTIFICATIONS_MENU_ACTION);
+ break;
case ActionType.WINDOW_OVERVIEW:
if (filter_action (WINDOW_OVERVIEW)) {
break;
diff --git a/src/meson.build b/src/meson.build
index 6b941f249..04f9a5da3 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -86,7 +86,7 @@ gala_bin = executable(
'gala',
gala_bin_sources,
config_header,
- dependencies: [gala_dep, gala_base_dep, pantheon_desktop_shell_dep],
+ dependencies: [gala_dep, gala_base_dep, pantheon_desktop_shell_dep, wingpanel_dep],
install_rpath: mutter_typelib_dir,
install: true,
)