FrameYap native-only release. No ASR runtime or model is included.

Original FrameYap code: MIT. System Vulkan/Wayland/FreeType/libstdc++/glibc are not bundled.

This software is based in part on the work of the FreeType Team. FreeType is a system dynamic library, not bundled in this native-only stage.

Bundled libraries: Valve OpenVR and unmodified SDL3; font license included below.

This package does not include Kestrel or provide a functioning ASR environment.


--- FrameYap ---

MIT License

Copyright (c) 2026 FrameYap contributors

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.


--- OpenVR ---

Copyright (c) 2015, Valve Corporation
All rights reserved.

Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation and/or
other materials provided with the distribution.

3. Neither the name of the copyright holder nor the names of its contributors
may be used to endorse or promote products derived from this software without
specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


--- SDL3 ---

Copyright (C) 1997-2025 Sam Lantinga <slouken@libsdl.org>
  
This software is provided 'as-is', without any express or implied
warranty.  In no event will the authors be held liable for any damages
arising from the use of this software.

Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
  
1. The origin of this software must not be misrepresented; you must not
   claim that you wrote the original software. If you use this software
   in a product, an acknowledgment in the product documentation would be
   appreciated but is not required. 
2. Altered source versions must be plainly marked as such, and must not be
   misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.



--- Font ---

Copyright 2006 The Inconsolata Project Authors

This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
https://openfontlicense.org


-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------

PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.

The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.

DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.

"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).

"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).

"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.

"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.

PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:

1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.

2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.

3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.

4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.

5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.

TERMINATION
This license becomes null and void if any of the above conditions are
not met.

DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.


--- Gamescope protocol: embedded copyright/license ---

<?xml version="1.0" encoding="UTF-8"?>
<protocol name="gamescope_input_method">

  <copyright>
    Copyright © 2008-2011 Kristian Høgsberg
    Copyright © 2010-2011 Intel Corporation
    Copyright © 2012-2013 Collabora, Ltd.
    Copyright © 2012, 2013 Intel Corporation
    Copyright © 2015, 2016 Jan Arne Petersen
    Copyright © 2017, 2018 Red Hat, Inc.
    Copyright © 2018       Purism SPC
    Copyright © 2021       Valve Corporation

    Permission is hereby granted, free of charge, to any person obtaining a
    copy of this software and associated documentation files (the "Software"),
    to deal in the Software without restriction, including without limitation
    the rights to use, copy, modify, merge, publish, distribute, sublicense,
    and/or sell copies of the Software, and to permit persons to whom the
    Software is furnished to do so, subject to the following conditions:

    The above copyright notice and this permission notice (including the next
    paragraph) shall be included in all copies or substantial portions of the
    Software.

    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
    THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
    FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
    DEALINGS IN THE SOFTWARE.
  </copyright>

  <description summary="Protocol for creating input methods">
    This protocol allows applications to act as input methods for compositors.

    An input method context is used to manage the state of the input method.

    Text strings are UTF-8 encoded, their indices and lengths are in bytes.

    This iteration of the protocol is a subset of this work-in-progress proposal:
    https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/112

    This is a private Gamescope protocol. Regular Wayland clients must not use
    it.
  </description>

  <interface name="gamescope_input_method_manager" version="3">
    <description summary="input method manager">
      The input method manager allows the client to become the input method on
      a chosen seat.

      No more than one input method must be associated with any seat at any
      given time.
    </description>

    <request name="destroy" type="destructor">
      <description summary="destroy the input method manager">
        Destroys the gamescope_input_method_manager object.

        The gamescope_input_method objects originating from it remain valid.
      </description>
    </request>

    <request name="create_input_method">
      <description summary="create an input method object">
        Create a new gamescope_input_method object associated with a given
        seat.
      </description>
      <arg name="seat" type="object" interface="wl_seat"/>
      <arg name="input_method" type="new_id" interface="gamescope_input_method"/>
    </request>
  </interface>

  <interface name="gamescope_input_method" version="3">
    <description summary="input method">
      An input method object allows for clients to compose text.

      The objects connects the client to a text input in an application, and
      lets the client to serve as an input method for a seat.

      There must be no more than one input method object per seat.
    </description>

    <event name="unavailable">
      <description summary="input method unavailable">
        The input method ceased to be available.

        The compositor must issue this event as the only event on the object if
        there was another input_method object associated with the same seat at
        the time of its creation.

        The compositor must issue this request when the object is no longer
        useable, e.g. due to seat removal.

        The input method context becomes inert and should be destroyed. Any
        further requests and events except for the destroy request must be
        ignored.
      </description>
    </event>

    <event name="done">
      <description summary="compositor state change notification">
        Notify the client that the compositor state has changed.

        The serial is used to synchronize compositor state changes and client
        state changes. The serial allows the compositor to ignore requests
        meant for a previous text input.

        In the future, will be used to atomically apply compositor state
        changes sent to the client (but currently there's no such state).
      </description>
      <arg name="serial" type="uint"/>
    </event>

    <request name="destroy" type="destructor">
      <description summary="destroy the text input">
        Destroys the gamescope_text_input object.
      </description>
    </request>

    <request name="commit">
      <description summary="apply state">
        Apply state changes from set_string and set_action requests.

        The state relating to these events is double-buffered, and each one
        modifies the pending state. This request replaces the current state
        with the pending state.

        The client must set the serial to the last received serial in the done
        event.
      </description>
      <arg name="serial" type="uint" summary="last received serial"/>
    </request>

    <request name="set_string">
      <description summary="set string to be committed">
        Send the string text for insertion to the application.

        Inserts a string at current cursor position (see commit event
        sequence). The string to commit could be either just a single character
        after a key press or the result of some composing.

        Values set with this event are double-buffered. They must be applied
        and reset to initial on the next gamescope_text_input.commit request.

        The initial value of text is an empty string.
      </description>
      <arg name="text" type="string" summary="text to insert"/>
    </request>

    <enum name="action">
      <description summary="action">
        A possible action to perform on a text input.

        The backspace and delete actions should be handled in a similar manner
        to backpace and delete keys being pressed on a keyboard.
      </description>
      <entry name="none" value="0" summary="no action"/>
      <entry name="submit" value="1" summary="submit"/>
      <entry name="delete_left" value="2" summary="delete one unit before the cursor"/>
      <entry name="delete_right" value="3" summary="delete one unit after the cursor"/>
      <entry name="move_left" value="4" summary="move the cursor to the left by one unit"/>
      <entry name="move_right" value="5" summary="move the cursor to the right by one unit"/>
      <entry name="move_up" value="6" since="2" summary="move the cursor up by one unit"/>
      <entry name="move_down" value="7" since="2" summary="move the cursor down by one unit"/>
    </enum>

    <request name="set_action">
      <description summary="perform an action">
        Set the action to be performed on commit.

        Values set with this event are double-buffered. They must be applied
        and reset to initial on the next gamescope_text_input.commit request.
      </description>
      <arg name="action" type="uint" enum="action" summary="action performed"/>
    </request>

    <!-- Collection of pointer/button related things for Steam Input. -->

    <enum name="button_state" since="3">
      <description summary="physical button state">
	Describes the physical state of a button that produced the button
	event.
      </description>
      <entry name="released" value="0" summary="the button is not pressed"/>
      <entry name="pressed" value="1" summary="the button is pressed"/>
    </enum>

    <request name="pointer_motion" since="3">
      <description summary="move the cursor!"/>
      <arg name="dx" type="fixed" summary="delta x"/>
      <arg name="dy" type="fixed" summary="delta y"/>
    </request>

    <request name="pointer_warp" since="3">
      <description summary="warp the cursor!"/>
      <arg name="x" type="fixed" summary="x pos"/>
      <arg name="y" type="fixed" summary="y pos"/>
    </request>

    <request name="pointer_wheel" since="3">
      <description summary="scroll the cursor! Uses the 120 scaling mechanism."/>
      <arg name="x" type="int" summary="x * 120 -> 120 = 1.0"/>
      <arg name="y" type="int" summary="y * 120 -> 120 = 1.0"/>
    </request>

    <request name="pointer_button" since="3">
      <description summary="click the cursor!"/>
      <arg name="button" type="uint" summary="Linux button code, eg. BTN_LEFT"/>
      <arg name="state" type="uint" enum="button_state" summary="wl_pointer_button_state" />
    </request>
  </interface>
</protocol>
