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, )