Ajoute la configuration des associations application/preset, le service de suivi du focus, l'intégration GUI et les fichiers d'installation nécessaires. Ajoute les tests unitaires ciblés des bindings, du service de focus, des migrations et des composants GUI associés. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1992 lines
106 KiB
XML
1992 lines
106 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!-- Generated with glade 3.40.0 -->
|
|
<interface>
|
|
<requires lib="gtk+" version="3.22"/>
|
|
<requires lib="gtksourceview" version="4.0"/>
|
|
<object class="GtkImage" id="about-icon">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="icon-name">help-about</property>
|
|
</object>
|
|
<object class="GtkImage" id="check-icon1">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="margin-right">2</property>
|
|
<property name="margin-end">2</property>
|
|
<property name="icon-name">media-playback-start</property>
|
|
</object>
|
|
<object class="GtkImage" id="copy-icon1">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="margin-right">2</property>
|
|
<property name="margin-end">2</property>
|
|
<property name="icon-name">edit-copy</property>
|
|
</object>
|
|
<object class="GtkAdjustment" id="deadzone-adjustment">
|
|
<property name="upper">1</property>
|
|
<property name="step-increment">0.01</property>
|
|
<property name="page-increment">0.01</property>
|
|
</object>
|
|
<object class="GtkImage" id="delete-icon1">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="margin-right">2</property>
|
|
<property name="margin-end">2</property>
|
|
<property name="icon-name">edit-delete</property>
|
|
</object>
|
|
<object class="GtkAdjustment" id="expo-adjustment">
|
|
<property name="lower">-1</property>
|
|
<property name="upper">1</property>
|
|
<property name="step-increment">0.05</property>
|
|
<property name="page-increment">0.05</property>
|
|
</object>
|
|
<object class="GtkAdjustment" id="gain-adjustment">
|
|
<property name="lower">-2</property>
|
|
<property name="upper">2</property>
|
|
<property name="step-increment">0.10</property>
|
|
<property name="page-increment">0.10</property>
|
|
</object>
|
|
<object class="GtkImage" id="gtk-redo-icon">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="margin-right">2</property>
|
|
<property name="margin-end">2</property>
|
|
<property name="icon-name">media-playback-stop</property>
|
|
</object>
|
|
<object class="GtkImage" id="gtk-redo-icon1">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="margin-right">2</property>
|
|
<property name="margin-end">2</property>
|
|
<property name="icon-name">media-playback-stop</property>
|
|
</object>
|
|
<object class="GtkImage" id="icon-delete-row">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="margin-right">2</property>
|
|
<property name="margin-end">2</property>
|
|
<property name="icon-name">edit-delete</property>
|
|
</object>
|
|
<object class="GtkImage" id="image1">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="icon-name">edit</property>
|
|
</object>
|
|
<object class="GtkImage" id="image2">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="icon-name">media-record</property>
|
|
</object>
|
|
<object class="GtkImage" id="image3">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="icon-name">list-add</property>
|
|
</object>
|
|
<object class="GtkImage" id="image4">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="icon-name">list-remove</property>
|
|
</object>
|
|
<object class="GtkImage" id="new-icon">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="margin-right">2</property>
|
|
<property name="margin-end">2</property>
|
|
<property name="icon-name">document-new</property>
|
|
</object>
|
|
<object class="GtkImage" id="save-icon1">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="icon-name">document-save</property>
|
|
</object>
|
|
<object class="GtkWindow" id="window">
|
|
<property name="width-request">1000</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="default-height">450</property>
|
|
<property name="icon">input-remapper.svg</property>
|
|
<signal name="delete-event" handler="on_gtk_close" swapped="no"/>
|
|
<child>
|
|
<object class="GtkBox" id="vertical-wrapper">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="orientation">vertical</property>
|
|
<child>
|
|
<object class="GtkStack" id="main_stack">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="transition-type">crossfade</property>
|
|
<child>
|
|
<object class="GtkScrolledWindow">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">True</property>
|
|
<child>
|
|
<object class="GtkViewport">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="shadow-type">none</property>
|
|
<child>
|
|
<object class="GtkFlowBox" id="device_selection">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="valign">start</property>
|
|
<property name="margin-start">18</property>
|
|
<property name="margin-end">18</property>
|
|
<property name="margin-top">18</property>
|
|
<property name="margin-bottom">18</property>
|
|
<property name="homogeneous">True</property>
|
|
<property name="column-spacing">18</property>
|
|
<property name="row-spacing">18</property>
|
|
<property name="max-children-per-line">99</property>
|
|
<property name="selection-mode">none</property>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="name">Devices</property>
|
|
<property name="title" translatable="yes">Devices</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkBox" id="preset_selection_box">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="orientation">vertical</property>
|
|
<child>
|
|
<object class="GtkLabel" id="selected_device_name">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="margin-top">18</property>
|
|
<property name="margin-bottom">18</property>
|
|
<property name="label" translatable="yes">Device Name</property>
|
|
<attributes>
|
|
<attribute name="weight" value="bold"/>
|
|
</attributes>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">0</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkBox">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="halign">center</property>
|
|
<property name="margin-start">18</property>
|
|
<property name="margin-end">18</property>
|
|
<property name="margin-bottom">27</property>
|
|
<property name="spacing">6</property>
|
|
<property name="homogeneous">True</property>
|
|
<child>
|
|
<object class="GtkButton" id="create_preset">
|
|
<property name="label" translatable="yes">New</property>
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">True</property>
|
|
<property name="receives-default">True</property>
|
|
<property name="tooltip-text" translatable="yes">Create a new preset</property>
|
|
<property name="image">new-icon</property>
|
|
<property name="always-show-image">True</property>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">0</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkButton" id="stop_injection_preset_page">
|
|
<property name="label" translatable="yes">Stop</property>
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">True</property>
|
|
<property name="receives-default">True</property>
|
|
<property name="tooltip-text" translatable="yes">Stops the Injection for the selected device,
|
|
gives your keys their original function back
|
|
Shortcut: ctrl + del</property>
|
|
<property name="image">gtk-redo-icon</property>
|
|
<property name="always-show-image">True</property>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">1</property>
|
|
</packing>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">1</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkSeparator">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">2</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkScrolledWindow">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">True</property>
|
|
<child>
|
|
<object class="GtkViewport">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="shadow-type">none</property>
|
|
<child>
|
|
<object class="GtkFlowBox" id="preset_selection">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="valign">start</property>
|
|
<property name="margin-start">18</property>
|
|
<property name="margin-end">18</property>
|
|
<property name="margin-top">18</property>
|
|
<property name="margin-bottom">18</property>
|
|
<property name="homogeneous">True</property>
|
|
<property name="column-spacing">18</property>
|
|
<property name="row-spacing">18</property>
|
|
<property name="max-children-per-line">99</property>
|
|
<property name="selection-mode">none</property>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">True</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">3</property>
|
|
</packing>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="name">Presets</property>
|
|
<property name="title" translatable="yes">Presets</property>
|
|
<property name="position">1</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkBox">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="orientation">vertical</property>
|
|
<child>
|
|
<object class="GtkLabel" id="selected_preset_name">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="margin-top">18</property>
|
|
<property name="margin-bottom">18</property>
|
|
<property name="label" translatable="yes">Preset Name</property>
|
|
<attributes>
|
|
<attribute name="weight" value="bold"/>
|
|
</attributes>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">0</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<!-- n-columns=2 n-rows=3 -->
|
|
<object class="GtkGrid">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="halign">center</property>
|
|
<property name="margin-right">106</property>
|
|
<property name="margin-end">112</property>
|
|
<property name="margin-bottom">27</property>
|
|
<property name="row-spacing">6</property>
|
|
<property name="column-spacing">12</property>
|
|
<child>
|
|
<object class="GtkBox">
|
|
<property name="width-request">463</property>
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="spacing">6</property>
|
|
<property name="homogeneous">True</property>
|
|
<child>
|
|
<object class="GtkButton" id="apply_preset">
|
|
<property name="label" translatable="yes">Apply</property>
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">True</property>
|
|
<property name="receives-default">True</property>
|
|
<property name="tooltip-text" translatable="yes">Start injecting. Don't hold down any keys while the injection starts</property>
|
|
<property name="image">check-icon1</property>
|
|
<property name="always-show-image">True</property>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">0</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkButton" id="stop_injection_editor_page">
|
|
<property name="label" translatable="yes">Stop</property>
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">True</property>
|
|
<property name="receives-default">True</property>
|
|
<property name="tooltip-text" translatable="yes">Stops the Injection for the selected device,
|
|
gives your keys their original function back
|
|
Shortcut: ctrl + del</property>
|
|
<property name="image">gtk-redo-icon1</property>
|
|
<property name="always-show-image">True</property>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">1</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkButton" id="copy_preset">
|
|
<property name="label" translatable="yes">Copy</property>
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">True</property>
|
|
<property name="receives-default">True</property>
|
|
<property name="tooltip-text" translatable="yes">Duplicate this preset</property>
|
|
<property name="image">copy-icon1</property>
|
|
<property name="always-show-image">True</property>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">2</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkButton" id="delete_preset">
|
|
<property name="label" translatable="yes">Delete</property>
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">True</property>
|
|
<property name="receives-default">True</property>
|
|
<property name="tooltip-text" translatable="yes">Delete this preset</property>
|
|
<property name="image">delete-icon1</property>
|
|
<property name="always-show-image">True</property>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">3</property>
|
|
</packing>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="left-attach">1</property>
|
|
<property name="top-attach">0</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkLabel">
|
|
<property name="width-request">100</property>
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="opacity">0.5</property>
|
|
<property name="label" translatable="yes">Rename</property>
|
|
<property name="width-chars">13</property>
|
|
<property name="xalign">1</property>
|
|
</object>
|
|
<packing>
|
|
<property name="left-attach">0</property>
|
|
<property name="top-attach">1</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkLabel">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="opacity">0.5</property>
|
|
<property name="margin-top">6</property>
|
|
<property name="margin-bottom">7</property>
|
|
<property name="label" translatable="yes">Autoload</property>
|
|
<property name="xalign">1</property>
|
|
</object>
|
|
<packing>
|
|
<property name="left-attach">0</property>
|
|
<property name="top-attach">2</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkSwitch" id="preset_autoload_switch">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">True</property>
|
|
<property name="tooltip-text" translatable="yes">Activate this to load the preset next time the device connects, or when the user logs in</property>
|
|
<property name="halign">start</property>
|
|
<property name="valign">center</property>
|
|
</object>
|
|
<packing>
|
|
<property name="left-attach">1</property>
|
|
<property name="top-attach">2</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkBox">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="spacing">6</property>
|
|
<child>
|
|
<object class="GtkEntry" id="preset_name_input">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">True</property>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">True</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">0</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkButton" id="rename-button">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">True</property>
|
|
<property name="receives-default">True</property>
|
|
<property name="tooltip-text" translatable="yes">Save the entered name</property>
|
|
<property name="halign">start</property>
|
|
<property name="image">save-icon1</property>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">1</property>
|
|
</packing>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="left-attach">1</property>
|
|
<property name="top-attach">1</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<placeholder/>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">1</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkSeparator">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">5</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkBox" id="editor">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="homogeneous">True</property>
|
|
<child>
|
|
<object class="GtkBox" id="input">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<child>
|
|
<object class="GtkBox">
|
|
<property name="width-request">200</property>
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="margin-top">18</property>
|
|
<property name="orientation">vertical</property>
|
|
<child>
|
|
<object class="GtkLabel">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="margin-bottom">18</property>
|
|
<property name="label" translatable="yes">Input</property>
|
|
<attributes>
|
|
<attribute name="weight" value="bold"/>
|
|
</attributes>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">0</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkBox">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="halign">center</property>
|
|
<property name="margin-bottom">18</property>
|
|
<child>
|
|
<object class="GtkLabel" id="combination-label">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="label" translatable="yes">no input configured</property>
|
|
<property name="wrap">True</property>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">0</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkLabel" id="recording_status">
|
|
<property name="can-focus">False</property>
|
|
<property name="opacity">0.5</property>
|
|
<property name="label" translatable="yes"> (recording ...)</property>
|
|
<attributes>
|
|
<attribute name="style" value="italic"/>
|
|
</attributes>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">1</property>
|
|
</packing>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">False</property>
|
|
<property name="position">1</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkBox">
|
|
<property name="width-request">463</property>
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="halign">center</property>
|
|
<property name="margin-start">18</property>
|
|
<property name="margin-end">18</property>
|
|
<property name="margin-bottom">18</property>
|
|
<property name="spacing">6</property>
|
|
<property name="homogeneous">True</property>
|
|
<child>
|
|
<object class="GtkButton" id="create_mapping_button">
|
|
<property name="label" translatable="yes">Add</property>
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">True</property>
|
|
<property name="receives-default">True</property>
|
|
<property name="image">image3</property>
|
|
<property name="always-show-image">True</property>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">1</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkToggleButton" id="key_recording_toggle">
|
|
<property name="label" translatable="yes">Record</property>
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">True</property>
|
|
<property name="receives-default">True</property>
|
|
<property name="tooltip-text" translatable="yes">Record a button of your device that should be remapped</property>
|
|
<property name="image">image2</property>
|
|
<property name="always-show-image">True</property>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">1</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkButton" id="edit-combination-btn">
|
|
<property name="label" translatable="yes">Advanced</property>
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">True</property>
|
|
<property name="receives-default">True</property>
|
|
<property name="image">image1</property>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">2</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkButton" id="delete-mapping">
|
|
<property name="label" translatable="yes">Delete</property>
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">True</property>
|
|
<property name="receives-default">True</property>
|
|
<property name="tooltip-text" translatable="yes">Delete this entry</property>
|
|
<property name="image">icon-delete-row</property>
|
|
<property name="always-show-image">True</property>
|
|
<style>
|
|
<class name="delete-mapping-button"/>
|
|
</style>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">4</property>
|
|
</packing>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">2</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkSeparator">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">3</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkScrolledWindow">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">True</property>
|
|
<child>
|
|
<object class="GtkViewport">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="shadow-type">none</property>
|
|
<child>
|
|
<object class="GtkListBox" id="selection_label_listbox">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<style>
|
|
<class name="editor-key-list"/>
|
|
</style>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">True</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">4</property>
|
|
</packing>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">True</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">0</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkSeparator">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">1</property>
|
|
</packing>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">0</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkBox" id="output">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="margin-start">18</property>
|
|
<property name="margin-end">18</property>
|
|
<property name="margin-top">18</property>
|
|
<property name="margin-bottom">18</property>
|
|
<property name="orientation">vertical</property>
|
|
<child>
|
|
<object class="GtkLabel">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="margin-bottom">18</property>
|
|
<property name="label" translatable="yes">Output</property>
|
|
<attributes>
|
|
<attribute name="weight" value="bold"/>
|
|
</attributes>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">0</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkBox">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="spacing">12</property>
|
|
<child>
|
|
<object class="GtkLabel">
|
|
<property name="width-request">100</property>
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="opacity">0.5</property>
|
|
<property name="label" translatable="yes">Type</property>
|
|
<property name="xalign">1</property>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">0</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkButtonBox">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="homogeneous">True</property>
|
|
<property name="layout-style">expand</property>
|
|
<child>
|
|
<object class="GtkToggleButton" id="key_macro_toggle_btn">
|
|
<property name="label" translatable="yes">Key or Macro</property>
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">True</property>
|
|
<property name="receives-default">True</property>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">True</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">0</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkToggleButton" id="analog_toggle_btn">
|
|
<property name="label" translatable="yes">Analog Axis</property>
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">True</property>
|
|
<property name="receives-default">True</property>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">True</property>
|
|
<property name="fill">True</property>
|
|
<property name="pack-type">end</property>
|
|
<property name="position">1</property>
|
|
</packing>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">True</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">1</property>
|
|
</packing>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">1</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkBox">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="tooltip-text" translatable="yes">The type of device this mapping is emulating.</property>
|
|
<property name="margin-top">6</property>
|
|
<property name="spacing">12</property>
|
|
<child>
|
|
<object class="GtkLabel">
|
|
<property name="width-request">100</property>
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="opacity">0.5</property>
|
|
<property name="label" translatable="yes">Target</property>
|
|
<property name="xalign">1</property>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">0</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkComboBox" id="target-selector">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">True</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">1</property>
|
|
</packing>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">2</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkStack" id="editor-stack">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="margin-top">6</property>
|
|
<child>
|
|
<object class="GtkBox">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="orientation">vertical</property>
|
|
<property name="spacing">6</property>
|
|
<child>
|
|
<object class="GtkBox">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="tooltip-text" translatable="yes">Available output axes are affected by the Target setting.</property>
|
|
<property name="spacing">12</property>
|
|
<child>
|
|
<object class="GtkLabel">
|
|
<property name="width-request">100</property>
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="opacity">0.5</property>
|
|
<property name="label" translatable="yes">Output axis</property>
|
|
<property name="xalign">1</property>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">0</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkComboBox" id="output-axis-selector">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">True</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">1</property>
|
|
</packing>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">0</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkBox">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<child>
|
|
<object class="GtkBox">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="orientation">vertical</property>
|
|
<property name="homogeneous">True</property>
|
|
<child>
|
|
<object class="GtkBox">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="spacing">12</property>
|
|
<child>
|
|
<object class="GtkScale" id="deadzone-scale">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">True</property>
|
|
<property name="adjustment">deadzone-adjustment</property>
|
|
<property name="round-digits">2</property>
|
|
<property name="digits">2</property>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">True</property>
|
|
<property name="fill">True</property>
|
|
<property name="pack-type">end</property>
|
|
<property name="position">0</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkLabel">
|
|
<property name="width-request">100</property>
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="opacity">0.5</property>
|
|
<property name="label" translatable="yes">Deadzone</property>
|
|
<property name="xalign">1</property>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">1</property>
|
|
</packing>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">0</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkBox">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="spacing">12</property>
|
|
<child>
|
|
<object class="GtkScale" id="gain-scale">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">True</property>
|
|
<property name="adjustment">gain-adjustment</property>
|
|
<property name="round-digits">2</property>
|
|
<property name="digits">2</property>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">True</property>
|
|
<property name="fill">True</property>
|
|
<property name="pack-type">end</property>
|
|
<property name="position">0</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkLabel">
|
|
<property name="width-request">100</property>
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="opacity">0.5</property>
|
|
<property name="label" translatable="yes">Gain</property>
|
|
<property name="xalign">1</property>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">1</property>
|
|
</packing>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">True</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">1</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkBox">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="spacing">12</property>
|
|
<child>
|
|
<object class="GtkScale" id="expo-scale">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">True</property>
|
|
<property name="adjustment">expo-adjustment</property>
|
|
<property name="round-digits">2</property>
|
|
<property name="digits">2</property>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">True</property>
|
|
<property name="fill">True</property>
|
|
<property name="pack-type">end</property>
|
|
<property name="position">0</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkLabel">
|
|
<property name="width-request">100</property>
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="opacity">0.5</property>
|
|
<property name="label" translatable="yes">Expo</property>
|
|
<property name="xalign">1</property>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">1</property>
|
|
</packing>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">True</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">2</property>
|
|
</packing>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">True</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">0</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkBox">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="margin-start">6</property>
|
|
<property name="orientation">vertical</property>
|
|
<child>
|
|
<object class="GtkDrawingArea" id="transformation-draw-area">
|
|
<property name="width-request">150</property>
|
|
<property name="height-request">150</property>
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="halign">center</property>
|
|
<property name="valign">center</property>
|
|
<property name="margin-start">12</property>
|
|
<property name="margin-end">12</property>
|
|
<property name="margin-top">12</property>
|
|
<property name="margin-bottom">12</property>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">0</property>
|
|
</packing>
|
|
</child>
|
|
<style>
|
|
<class name="transformation-draw-area"/>
|
|
</style>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">1</property>
|
|
</packing>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">1</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkBox">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="tooltip-text" translatable="yes">The Speed at which the Input is considered at maximum.
|
|
Only relevant when mapping relative inputs (e.g. mouse) to absolute outputs (e.g. gamepad)</property>
|
|
<property name="spacing">12</property>
|
|
<child>
|
|
<object class="GtkLabel">
|
|
<property name="width-request">100</property>
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="opacity">0.5</property>
|
|
<property name="label" translatable="yes">Input cutoff</property>
|
|
<property name="xalign">1</property>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">0</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkSpinButton" id="input-cutoff-spin-btn">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">True</property>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">True</property>
|
|
<property name="fill">True</property>
|
|
<property name="pack-type">end</property>
|
|
<property name="position">1</property>
|
|
</packing>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">4</property>
|
|
</packing>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="name">Analog Axis</property>
|
|
<property name="title" translatable="yes">Analog Axis</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkBox">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="orientation">vertical</property>
|
|
<child>
|
|
<object class="GtkScrolledWindow" id="code_editor_container">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">True</property>
|
|
<child>
|
|
<object class="GtkSourceView" id="code_editor">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">True</property>
|
|
<property name="tooltip-text" translatable="yes">What should be written. For example KEY_A</property>
|
|
<property name="valign">start</property>
|
|
<property name="resize-mode">immediate</property>
|
|
<property name="wrap-mode">word</property>
|
|
<property name="left-margin">10</property>
|
|
<property name="right-margin">10</property>
|
|
<property name="top-margin">10</property>
|
|
<property name="bottom-margin">10</property>
|
|
<property name="monospace">True</property>
|
|
<property name="tab-width">2</property>
|
|
<property name="auto-indent">True</property>
|
|
<style>
|
|
<class name="code-editor-text-view"/>
|
|
</style>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">True</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">0</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkLabel" id="gdk-event-recorder-label">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="tooltip-text" translatable="yes">You can copy this text into the output</property>
|
|
<property name="opacity">0.5</property>
|
|
<property name="margin-top">12</property>
|
|
<property name="selectable">True</property>
|
|
<property name="ellipsize">end</property>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="pack-type">end</property>
|
|
<property name="position">1</property>
|
|
</packing>
|
|
</child>
|
|
<style>
|
|
<class name="key-or-macro-box"/>
|
|
</style>
|
|
</object>
|
|
<packing>
|
|
<property name="name">Key or Macro</property>
|
|
<property name="title" translatable="yes">Key or Macro</property>
|
|
<property name="position">1</property>
|
|
</packing>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">False</property>
|
|
<property name="position">3</property>
|
|
</packing>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">1</property>
|
|
</packing>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">True</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">6</property>
|
|
</packing>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="name">Editor</property>
|
|
<property name="title" translatable="yes">Editor</property>
|
|
<property name="position">2</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkBox" id="app_bindings_page">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="orientation">vertical</property>
|
|
<property name="margin-start">18</property>
|
|
<property name="margin-end">18</property>
|
|
<property name="margin-top">18</property>
|
|
<property name="margin-bottom">18</property>
|
|
<property name="spacing">12</property>
|
|
<child>
|
|
<object class="GtkBox">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="spacing">12</property>
|
|
<child>
|
|
<object class="GtkLabel">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="hexpand">True</property>
|
|
<property name="halign">start</property>
|
|
<property name="label" translatable="yes">Enable application bindings</property>
|
|
<attributes>
|
|
<attribute name="weight" value="bold"/>
|
|
</attributes>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">True</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">0</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkSwitch" id="app_binding_enabled_switch">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">True</property>
|
|
<property name="valign">center</property>
|
|
<property name="tooltip-text" translatable="yes">Automatically apply presets based on the focused application</property>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">1</property>
|
|
</packing>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">0</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkLabel" id="app_binding_status_label">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="halign">start</property>
|
|
<property name="wrap">True</property>
|
|
<property name="label" translatable="yes"></property>
|
|
<property name="opacity">0.7</property>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">1</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkButton" id="app_binding_add_button">
|
|
<property name="label" translatable="yes">Add application</property>
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">True</property>
|
|
<property name="receives-default">True</property>
|
|
<property name="halign">start</property>
|
|
<property name="tooltip-text" translatable="yes">Add a new application binding</property>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">2</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkSeparator">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">3</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkScrolledWindow">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">True</property>
|
|
<child>
|
|
<object class="GtkViewport">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="shadow-type">none</property>
|
|
<child>
|
|
<object class="GtkListBox" id="app_bindings_listbox">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="valign">start</property>
|
|
<property name="selection-mode">none</property>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">True</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">4</property>
|
|
</packing>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="name">Applications</property>
|
|
<property name="title" translatable="yes">Applications</property>
|
|
<property name="position">3</property>
|
|
</packing>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">True</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">0</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkSeparator">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">1</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkBox" id="warnings">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="margin-end">18</property>
|
|
<child>
|
|
<object class="GtkImage" id="warning_status_icon">
|
|
<property name="can-focus">False</property>
|
|
<property name="margin-left">6</property>
|
|
<property name="margin-start">9</property>
|
|
<property name="icon-name">dialog-warning</property>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">0</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkImage" id="error_status_icon">
|
|
<property name="can-focus">False</property>
|
|
<property name="margin-left">6</property>
|
|
<property name="margin-start">9</property>
|
|
<property name="icon-name">dialog-error</property>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">1</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkStatusbar" id="status_bar">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="opacity">0.5</property>
|
|
<property name="margin-left">7</property>
|
|
<property name="margin-right">7</property>
|
|
<property name="margin-start">7</property>
|
|
<property name="margin-end">7</property>
|
|
<property name="margin-top">6</property>
|
|
<property name="margin-bottom">6</property>
|
|
<property name="orientation">vertical</property>
|
|
<style>
|
|
<class name="status_bar"/>
|
|
</style>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">True</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">2</property>
|
|
</packing>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">3</property>
|
|
</packing>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
<child type="titlebar">
|
|
<object class="GtkHeaderBar">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="title" translatable="yes">Input Remapper</property>
|
|
<property name="has-subtitle">False</property>
|
|
<property name="show-close-button">True</property>
|
|
<child>
|
|
<object class="GtkStackSwitcher">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="homogeneous">True</property>
|
|
<property name="stack">main_stack</property>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="GtkButton" id="about">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">True</property>
|
|
<property name="receives-default">True</property>
|
|
<property name="tooltip-text" translatable="yes">Help</property>
|
|
<property name="halign">end</property>
|
|
<property name="valign">center</property>
|
|
<property name="image">about-icon</property>
|
|
<property name="always-show-image">True</property>
|
|
<signal name="clicked" handler="on_gtk_about_clicked" swapped="no"/>
|
|
</object>
|
|
<packing>
|
|
<property name="pack-type">end</property>
|
|
<property name="position">1</property>
|
|
</packing>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
<object class="GtkWindow" id="about-dialog">
|
|
<property name="can-focus">False</property>
|
|
<property name="modal">True</property>
|
|
<property name="window-position">center-on-parent</property>
|
|
<property name="icon">input-remapper.svg</property>
|
|
<property name="type-hint">dialog</property>
|
|
<property name="urgency-hint">True</property>
|
|
<property name="transient-for">window</property>
|
|
<property name="attached-to">window</property>
|
|
<signal name="key-press-event" handler="on_gtk_about_key_press" swapped="no"/>
|
|
<child>
|
|
<object class="GtkStack" id="stack1">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<child>
|
|
<object class="GtkBox">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="valign">center</property>
|
|
<property name="margin-top">18</property>
|
|
<property name="margin-bottom">18</property>
|
|
<property name="orientation">vertical</property>
|
|
<property name="spacing">18</property>
|
|
<child>
|
|
<object class="GtkImage">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="pixbuf">input-remapper-large.png</property>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">0</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkLabel" id="version-label">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="label" translatable="yes">Version unknown</property>
|
|
<property name="justify">center</property>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">1</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkLabel" id="about-label1">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">True</property>
|
|
<property name="margin-left">6</property>
|
|
<property name="margin-right">6</property>
|
|
<property name="margin-start">6</property>
|
|
<property name="margin-end">6</property>
|
|
<property name="label" translatable="yes">You can find more information and report bugs at
|
|
<a href="https://github.com/sezanzeb/input-remapper">https://github.com/sezanzeb/input-remapper</a></property>
|
|
<property name="use-markup">True</property>
|
|
<property name="justify">center</property>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">2</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkLabel" id="about-label">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">True</property>
|
|
<property name="opacity">0.5</property>
|
|
<property name="margin-left">6</property>
|
|
<property name="margin-right">6</property>
|
|
<property name="margin-start">6</property>
|
|
<property name="margin-end">6</property>
|
|
<property name="label" translatable="yes">© 2025 Sezanzeb b8x45ygc9@mozmail.com
|
|
This program comes with absolutely no warranty.
|
|
See the <a href="https://www.gnu.org/licenses/gpl-3.0.html">GNU General Public License, version 3 or later</a> for details.</property>
|
|
<property name="use-markup">True</property>
|
|
<property name="justify">center</property>
|
|
<style>
|
|
<class name="copyright"/>
|
|
</style>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">3</property>
|
|
</packing>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="name">About</property>
|
|
<property name="title" translatable="yes">About</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkScrolledWindow">
|
|
<property name="width-request">500</property>
|
|
<property name="height-request">300</property>
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">True</property>
|
|
<child>
|
|
<object class="GtkViewport">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<child>
|
|
<object class="GtkBox">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="margin-left">5</property>
|
|
<property name="margin-right">5</property>
|
|
<property name="margin-start">5</property>
|
|
<property name="margin-end">5</property>
|
|
<property name="border-width">6</property>
|
|
<property name="orientation">vertical</property>
|
|
<property name="spacing">6</property>
|
|
<child>
|
|
<object class="GtkLabel">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="label" translatable="yes">See <a href="https://github.com/sezanzeb/input-remapper/blob/HEAD/readme/usage.md">usage.md</a> online on github for comprehensive information.
|
|
|
|
A "key + key + ... + key" syntax can be used to trigger key combinations. For example "Control_L + a".
|
|
|
|
Writing "disable" as a mapping disables a key.
|
|
|
|
Macros allow multiple characters to be written with a single key-press. Information about programming them is available online on github. See <a href="https://github.com/sezanzeb/input-remapper/blob/HEAD/readme/macros.md">macros.md</a> and <a href="https://github.com/sezanzeb/input-remapper/blob/HEAD/readme/examples.md">examples.md</a></property>
|
|
<property name="use-markup">True</property>
|
|
<property name="wrap">True</property>
|
|
<property name="xalign">0</property>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">0</property>
|
|
</packing>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="name">Usage</property>
|
|
<property name="title" translatable="yes">Usage</property>
|
|
<property name="position">1</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkBox">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="margin-left">5</property>
|
|
<property name="margin-right">5</property>
|
|
<property name="margin-start">5</property>
|
|
<property name="margin-end">5</property>
|
|
<property name="border-width">6</property>
|
|
<property name="orientation">vertical</property>
|
|
<property name="spacing">6</property>
|
|
<child>
|
|
<object class="GtkLabel">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="label" translatable="yes">Shortcuts only work while keys are not being recorded and the gui is in focus.</property>
|
|
<property name="wrap">True</property>
|
|
<property name="xalign">0</property>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">0</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<!-- n-columns=2 n-rows=3 -->
|
|
<object class="GtkGrid">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="column-spacing">18</property>
|
|
<child>
|
|
<object class="GtkLabel">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="label" translatable="yes">ctrl + del</property>
|
|
<property name="xalign">0</property>
|
|
</object>
|
|
<packing>
|
|
<property name="left-attach">0</property>
|
|
<property name="top-attach">0</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkLabel">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="label" translatable="yes">closes the application</property>
|
|
<property name="xalign">0</property>
|
|
</object>
|
|
<packing>
|
|
<property name="left-attach">1</property>
|
|
<property name="top-attach">1</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkLabel">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="label" translatable="yes">ctrl + q</property>
|
|
<property name="xalign">0</property>
|
|
</object>
|
|
<packing>
|
|
<property name="left-attach">0</property>
|
|
<property name="top-attach">1</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkLabel">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="label" translatable="yes">ctrl + r</property>
|
|
<property name="xalign">0</property>
|
|
</object>
|
|
<packing>
|
|
<property name="left-attach">0</property>
|
|
<property name="top-attach">2</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkLabel">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="label" translatable="yes">refreshes the device list</property>
|
|
<property name="xalign">0</property>
|
|
</object>
|
|
<packing>
|
|
<property name="left-attach">1</property>
|
|
<property name="top-attach">2</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkLabel">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="label" translatable="yes">stops the injection</property>
|
|
<property name="xalign">0</property>
|
|
</object>
|
|
<packing>
|
|
<property name="left-attach">1</property>
|
|
<property name="top-attach">0</property>
|
|
</packing>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">False</property>
|
|
<property name="position">3</property>
|
|
</packing>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="name">Shortcuts</property>
|
|
<property name="title" translatable="yes">Shortcuts</property>
|
|
<property name="position">2</property>
|
|
</packing>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
<child type="titlebar">
|
|
<object class="GtkHeaderBar">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="show-close-button">True</property>
|
|
<child type="title">
|
|
<object class="GtkStackSwitcher">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="stack">stack1</property>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<placeholder/>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
<object class="GtkWindow" id="combination-editor">
|
|
<property name="width-request">200</property>
|
|
<property name="height-request">200</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="title" translatable="yes">Advanced</property>
|
|
<property name="resizable">False</property>
|
|
<property name="modal">True</property>
|
|
<property name="window-position">center-on-parent</property>
|
|
<property name="urgency-hint">True</property>
|
|
<property name="transient-for">window</property>
|
|
<property name="attached-to">window</property>
|
|
<child>
|
|
<object class="GtkBox">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<child>
|
|
<object class="GtkScrolledWindow">
|
|
<property name="width-request">220</property>
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">True</property>
|
|
<child>
|
|
<object class="GtkViewport">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="shadow-type">none</property>
|
|
<child>
|
|
<object class="GtkListBox" id="combination-listbox">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="selection-mode">browse</property>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">0</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkSeparator">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">1</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<!-- n-columns=2 n-rows=8 -->
|
|
<object class="GtkGrid">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="valign">start</property>
|
|
<property name="margin-top">18</property>
|
|
<property name="margin-bottom">18</property>
|
|
<property name="row-spacing">6</property>
|
|
<property name="column-spacing">12</property>
|
|
<property name="row-homogeneous">True</property>
|
|
<child>
|
|
<object class="GtkLabel">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="opacity">0.5</property>
|
|
<property name="margin-start">18</property>
|
|
<property name="label" translatable="yes">Release timeout</property>
|
|
<property name="xalign">1</property>
|
|
</object>
|
|
<packing>
|
|
<property name="left-attach">0</property>
|
|
<property name="top-attach">2</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkSpinButton" id="release-timeout-spin-button">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">True</property>
|
|
<property name="margin-end">18</property>
|
|
<property name="width-chars">5</property>
|
|
<property name="digits">3</property>
|
|
</object>
|
|
<packing>
|
|
<property name="left-attach">1</property>
|
|
<property name="top-attach">2</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkLabel">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="tooltip-text" translatable="yes">Release all inputs which are part of the combination before the mapping is injected</property>
|
|
<property name="opacity">0.5</property>
|
|
<property name="margin-start">18</property>
|
|
<property name="label" translatable="yes">Release input</property>
|
|
<property name="xalign">1</property>
|
|
</object>
|
|
<packing>
|
|
<property name="left-attach">0</property>
|
|
<property name="top-attach">1</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkSwitch" id="release-combination-switch">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">True</property>
|
|
<property name="halign">start</property>
|
|
<property name="valign">center</property>
|
|
<property name="active">True</property>
|
|
</object>
|
|
<packing>
|
|
<property name="left-attach">1</property>
|
|
<property name="top-attach">1</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkLabel">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="label" translatable="yes">General</property>
|
|
</object>
|
|
<packing>
|
|
<property name="left-attach">0</property>
|
|
<property name="top-attach">0</property>
|
|
<property name="width">2</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkSeparator">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="valign">center</property>
|
|
<property name="margin-top">18</property>
|
|
<property name="margin-bottom">18</property>
|
|
</object>
|
|
<packing>
|
|
<property name="left-attach">0</property>
|
|
<property name="top-attach">3</property>
|
|
<property name="width">2</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkLabel">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="label" translatable="yes">Event Specific</property>
|
|
</object>
|
|
<packing>
|
|
<property name="left-attach">0</property>
|
|
<property name="top-attach">4</property>
|
|
<property name="width">2</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkLabel">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="opacity">0.5</property>
|
|
<property name="margin-start">18</property>
|
|
<property name="label" translatable="yes">Remove this input</property>
|
|
<property name="xalign">1</property>
|
|
</object>
|
|
<packing>
|
|
<property name="left-attach">0</property>
|
|
<property name="top-attach">5</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkButton" id="remove-event-btn">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">True</property>
|
|
<property name="receives-default">True</property>
|
|
<property name="halign">start</property>
|
|
<property name="image">image4</property>
|
|
</object>
|
|
<packing>
|
|
<property name="left-attach">1</property>
|
|
<property name="top-attach">5</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkLabel">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="tooltip-text" translatable="yes">Map this input to an Analog Axis. Only possible for analog inputs and mice.</property>
|
|
<property name="opacity">0.5</property>
|
|
<property name="margin-start">18</property>
|
|
<property name="hexpand">True</property>
|
|
<property name="label" translatable="yes">Use as analog</property>
|
|
<property name="xalign">1</property>
|
|
</object>
|
|
<packing>
|
|
<property name="left-attach">0</property>
|
|
<property name="top-attach">6</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkSwitch" id="analog-input-switch">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">True</property>
|
|
<property name="halign">start</property>
|
|
<property name="valign">center</property>
|
|
</object>
|
|
<packing>
|
|
<property name="left-attach">1</property>
|
|
<property name="top-attach">6</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkLabel">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">False</property>
|
|
<property name="opacity">0.5</property>
|
|
<property name="margin-start">18</property>
|
|
<property name="label" translatable="yes">Trigger threshold</property>
|
|
<property name="xalign">1</property>
|
|
</object>
|
|
<packing>
|
|
<property name="left-attach">0</property>
|
|
<property name="top-attach">7</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkSpinButton" id="trigger-threshold-spin-btn">
|
|
<property name="visible">True</property>
|
|
<property name="can-focus">True</property>
|
|
<property name="margin-end">18</property>
|
|
<property name="width-chars">5</property>
|
|
<property name="input-purpose">number</property>
|
|
<property name="climb-rate">1</property>
|
|
<property name="snap-to-ticks">True</property>
|
|
<property name="numeric">True</property>
|
|
</object>
|
|
<packing>
|
|
<property name="left-attach">1</property>
|
|
<property name="top-attach">7</property>
|
|
</packing>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">2</property>
|
|
</packing>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</interface>
|