From d168492462106282aef2e9d75aff87b3212e8c60 Mon Sep 17 00:00:00 2001 From: Bananymous Date: Thu, 2 Apr 2026 15:24:02 +0300 Subject: [PATCH] WindowServer: bind volume up/down to volume control --- userspace/programs/WindowServer/WindowServer.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/userspace/programs/WindowServer/WindowServer.cpp b/userspace/programs/WindowServer/WindowServer.cpp index b2ab1dda..19217e2e 100644 --- a/userspace/programs/WindowServer/WindowServer.cpp +++ b/userspace/programs/WindowServer/WindowServer.cpp @@ -418,11 +418,23 @@ void WindowServer::on_window_set_cursor(int fd, const LibGUI::WindowPacket::Wind invalidate(cursor_area().get_bounding_box(old_cursor)); } +static void update_volume(const char* new_volume) +{ + char command[128]; + sprintf(command, "audioctl --volume %s && kill -USR1 TaskBar", new_volume); + system(command); +} + void WindowServer::on_key_event(LibInput::KeyEvent event) { if (event.key == LibInput::Key::Super) m_is_mod_key_held = event.pressed(); + if (event.pressed() && event.key == LibInput::Key::VolumeDown) + update_volume("-5"); + if (event.pressed() && event.key == LibInput::Key::VolumeUp) + update_volume("+5"); + // Stop WindowServer with mod+shift+E if (m_is_mod_key_held && event.pressed() && event.shift() && event.key == LibInput::Key::E) {