Menu

[DONE] Replace Mumble "Hot Keys" lost when Wayland Replaces X11

Wish List
bbosen
2025-04-16
2025-12-30
  • bbosen

    bbosen - 2025-04-16

    Players who replace the legacy "X11" display manager with the new "Wayland" version suffer from loss of all of mumble's keyboard shortcuts. We've implemented workarounds for nearly all of mumble's really important shortcuts as follows:

    "F1" Push-To-Talk shortcut: We've carefully tuned mumble's "Voice Activation" to replace "Push-To-Talk".
    Channel Selection Hot Keys: In flight, LAC will switch to your "TeamCast" channel when you press "F10", LAC will switch to your "MissionCast" channel when you press "F11", and LAC will switch to the "Root" channel when you press "0". (All of this is done through mumble's published API facilities, without using any mumble shortcuts.)
    "F2" Shout to Parent Channel and its sub-channels shortcut: We've enhanced our Mumble Server so voice conversations in each mission's "MissionCast" channel are now merged with it's two team-specific sub-channels for mission-wide conversations that transcend team boundaries (but conversations in either of the two team-specific sub-channels are isolated from each other, exactly as one would expect, permitting private team conversations).
    

    .
    But we still need to implement some workaround for mumble's very important "toggle microphone mute" function because it's essential for controlling acoustic feedback. Under X11, our tradition has been to use "F5" for that.

    We've learned that it should be possible for LAC to toggle mumble's "microphone mute" logic by issuing the following system command in flight:

    mumble rpc togglemute

    LAC should issue that command whenever the user presses "F5" in flight, restoring the ability to mute and unmute mumble's microphone in flight, without using any mumble shortcuts.

     

    Last edit: bbosen 2025-05-18
  • bbosen

    bbosen - 2025-04-16

    We are working on a new version of LAC, currently designated version 9.78, to compensate for loss of access to mumble's "Push To Talk" shortcut (normally mapped to the keyboard's "F1" key).

    The obvious compensation replaces mumble's "Push To Talk" facility with mumble's "Voice Activation". We recommend taking that step. In our experience, it works pretty well if you're in a quiet environment and if you take time to "tune" the acoustic volume sensitivity within mumble's "audio wizard". But Voice activation suffers from frequent, accidental transmission of noises (like acoustic feedback, pilot breathing, or explosions in combat) that may be irritating to other players. Under X11, our player community used mumble's "mute microphone" keyboard shortcut for this, mapping it to the keyboard's "F5"key. However, after switching from the X11 desktop manager to Wayland, access to all of mumble's keyboard shortcuts is removed, so we had to come up with some new way to mute mumble's microphone while in flight.

    Careful study of mumble's published API ("Application Program Interface") has revealed a new possibility that we can code into LAC's keyboard handler code. Accordingly, we expanded main.cpp's "event_MumblePtt ()" function with new logic that makes a new call into mumble's API if the "WAYLAND" compiler label is defined in "common.h" according to the same pattern that defines other compiler variables like "RASPBIAN" or "STEAMDECK". Here's that "event_MumblePtt ()" function after the expansion:

    void event_MumblePtt ()
        {
        //@
        //@ Get here when operator presses the same keyboard key that the external
        //@ "Mumble" voip application uses for "Push To Talk" transmission (as
        //@ configured within the "LacControls.txt" configuration file). When this
        //@ happens, we set the global "MumbleTransmissionRequested" flag, which
        //@ is always consulted from within "SendNetworkApiPacket()". When that
        //@ flag is detected within SendNetworkApiPacket(), the MSB (Most
        //@ Significant Bit) of the next OutPacket's "UdpObjPlayerId" field is
        //@ set, which signals all other players within the same mission that
        //@ this player has requested a Mumble voice transmission.
        //@
        MumbleTransmissionRequested = true; //@ This is a narrowcast, not a broadcast
        #ifdef WAYLAND
           {
           // Wayland's desktop manager prevents use of mumble hotkeys. Instead
           // of trying to use mumble's PTT hotkey shortcut, we must rely on
           // mumble's "Voice Activation", but we can tame that rather ill-behaved
           // tool by toggling mumble's "mute" status through their rpc API as
           // follows:
           }
        popen ("mumble mumble rpc togglemute", "r");
        display ((char *)"event_MumblePtt(): Issued mumble rpc togglemute command.", LOG_MOST);
        #endif
        event_CommsMacro11();
        }
    

    As you can see, if the "WAYLAND" compiler directive has been defined, the new logic invokes mumble with the following API argument:

    `"mumble rpc togglemute"`
    

    As a consequence of this enhancement, wayland users can press their keyboard's "F1" key to alternately mute and unmute mumble while in a mission.

    We recommend taking a moment at the beginning of each mission to mute your mumble
    microphone, only unmuting it for brief periods as you transmit your voice.

    With a little practice, we've found all of this to be a workable replacement for the "Push-To-Talk" mumble shortcut that is no longer available to players that replace X11 with Wayland.

    We expect to release this new version of LAC for beta testing sometime in April or May of 2025.

     
  • bbosen

    bbosen - 2025-06-19

    This is still under development. Later alpha-test versions have moved this new "Mute Microphone" function. By default, it is no longer invoked with the keyboard's F1 key. We now invoke it with F5 instead. This is consistent with our legacy versions and our published documentation, wherein F5 has long been used to toggle the "Microphone Mute" function of mumble. Our alpha testers report that this works nicely in flight. We expect to release this for beta testing sometime in June of 2025.

     
  • bbosen

    bbosen - 2025-06-19

    Another nice thing about this new approach for muting mumble's microphone is that it does NOT require a mumble shortcut. It's now built-in to LAC's flight logic. Our newest development (currently in alpha test) also has new logic to toggle the "deafen" facility within mumble. By default, this is mapped to the keyboard's F6 function key, which is consistent with our published legacy documentation. Where the "legacy" approach required a mumble shortcut for this, LAC's newest alpha-test version has this built into its flight logic.

     
  • bbosen

    bbosen - 2025-12-30

    All of these enhancements wer implented in LAC Version 9.83. Accordingly, I am marking this thread "DONE".

     

Log in to post a comment.

MongoDB Logo MongoDB