diff --git a/src/plugins/terminal/terminalsurface.cpp b/src/plugins/terminal/terminalsurface.cpp index 83749596c38..01b1f2c2aae 100644 --- a/src/plugins/terminal/terminalsurface.cpp +++ b/src/plugins/terminal/terminalsurface.cpp @@ -68,11 +68,15 @@ struct TerminalSurfacePrivate auto p = static_cast(user); return p->movecursor(pos, oldpos, visible); }; - m_vtermScreenCallbacks.sb_clear = [](void *user) { auto p = static_cast(user); return p->sb_clear(); }; + m_vtermScreenCallbacks.bell = [](void *user) { + auto p = static_cast(user); + emit p->q->bell(); + return 1; + }; vterm_screen_set_callbacks(m_vtermScreen, &m_vtermScreenCallbacks, this); vterm_screen_set_damage_merge(m_vtermScreen, VTERM_DAMAGE_SCROLL); diff --git a/src/plugins/terminal/terminalsurface.h b/src/plugins/terminal/terminalsurface.h index 01923fb538f..a6fc7425d48 100644 --- a/src/plugins/terminal/terminalsurface.h +++ b/src/plugins/terminal/terminalsurface.h @@ -102,6 +102,7 @@ signals: void cursorChanged(Cursor oldCursor, Cursor newCursor); void altscreenChanged(bool altScreen); void unscroll(); + void bell(); private: std::unique_ptr d; diff --git a/src/plugins/terminal/terminalwidget.cpp b/src/plugins/terminal/terminalwidget.cpp index 07080ea23f9..bb2f5e210ac 100644 --- a/src/plugins/terminal/terminalwidget.cpp +++ b/src/plugins/terminal/terminalwidget.cpp @@ -332,6 +332,7 @@ void TerminalWidget::setupSurface() connect(m_surface.get(), &Internal::TerminalSurface::unscroll, this, [this] { verticalScrollBar()->setValue(verticalScrollBar()->maximum()); }); + connect(m_surface.get(), &Internal::TerminalSurface::bell, this, [] { QApplication::beep(); }); if (m_shellIntegration) { connect(m_shellIntegration.get(), &ShellIntegration::commandChanged,