Skip to content
Commits on Source (40)
include:
- project: "gnome/citemplates"
file: "flatpak/flatpak_ci_initiative.yml"
flatpak:
image: "registry.gitlab.gnome.org/gnome/gnome-runtime-images/gnome:master"
variables:
MANIFEST_PATH: "org.gnome.SoundRecorder.json"
BUNDLE: "sound-recorder-dev.flatpak"
FLATPAK_MODULE: "gnome-sound-recorder"
RUNTIME_REPO: "https://nightly.gnome.org/gnome-nightly.flatpakrepo"
APP_ID: "org.gnome.SoundRecorderDevel"
extends: .flatpak
nightly:
extends: ".publish_nightly"
eslint:
image: registry.gitlab.gnome.org/gnome/gnome-shell/fedora/33:2020-11-17.0
variables:
LINT_LOG: "eslint-report.txt"
script:
- eslint -o $LINT_LOG --no-color src || { cat $LINT_LOG; false; }
artifacts:
paths:
- ${LINT_LOG}
when: on_failure
# Description of the bug
Detail the issue that you're facing as much as possible. Put as much
information as you can, potentially with images showing the issue.
Sound Recorder version:
Operating system:
Steps to reproduce:
1. Open Sound Recorder
2. Change X to something else
3. ...
Expected result:
Actual result:
# Description
Please describe your feature with details.
Add screenshots, design images or other files which would help for
understanding the feature or for implementation.
Also add links when needed, for instance for implementation standards
or other relevant resources.
Proposed Mockups:
## Design Tasks
* [ ] design tasks
## Development Tasks
* [ ] development tasks
## QA Tasks
* [ ] qa (quality assurance) tasks
42.0
======
Translations updates
42.beta
======
Port to GTK4 / libadwaita
Proper dark theme support
Translations updates
40.0
======
Translations updates
......
metainfo_conf = configuration_data()
metainfo_conf.set('app-id', application_id)
metainfo_conf.set('gettext-package', gettext_package)
metainfo_file = i18n.merge_file(
'metainfo-file',
input: configure_file(
input: 'org.gnome.SoundRecorder.metainfo.xml.in.in',
output: '@BASENAME@',
configuration: metainfo_conf
),
output: '@0@.metainfo.xml'.format(application_id),
po_dir: po_dir,
install: true,
install_dir: sound_recorder_datadir / 'metainfo'
)
appstream_util = find_program('appstream-util', required: false)
if appstream_util.found()
test(
'validate-metainfo', appstream_util,
args: [
'validate-relax', '--nonet', metainfo_file.full_path()
]
)
endif
.recorder-time-label {
font-size: 32pt;
font-weight: 300
}
@keyframes clocks-blink {
0% { color: @theme_text_color; }
100% { color: #FF0000; }
}
.recorder-time-label.paused {
color: #FF0000;
animation-name: clocks-blink;
animation-iteration-count: infinite;
animation-timing-function: cubic-bezier(1.0,0,0,1.0);
animation-duration: 1s;
}
button.rounded-button {
padding: 4px;
border-radius: 9999px;
-gtk-outline-radius: 9999px;
min-width: 24px;
min-height: 24px;
}
button.large {
padding: 12px;
}
list row label.title {
font-weight: bold;
}
list row label.subtitle {
font-size: smaller;
}
list row {
margin-top: 0;
margin-bottom: 0;
border-radius: 0;
}
list row:first-child {
border-top-left-radius: 8px;
border-top-right-radius: 8px;
}
list row:last-child {
border-bottom-left-radius: 8px;
border-bottom-right-radius: 8px;
}
list row.expanded {
margin-top: 10px;
margin-bottom: 10px;
border-radius: 8px;
border-bottom-width: 1px;
transition: 250ms all linear;
}
list row.expanded-before {
border-bottom-width: 1px;
border-bottom-right-radius: 8px;
border-bottom-left-radius: 8px;
transition: 250ms all linear;
}
list row.expanded-after {
border-top-right-radius: 8px;
border-top-left-radius: 8px;
transition: 250ms all linear;
}
list row:first-child.expanded {
margin-top:0;
}
list row:last-child.expanded {
margin-bottom: 0;
}
......@@ -14,7 +14,6 @@ install_data(
desktop_conf = configuration_data()
desktop_conf.set('app-id', application_id)
desktop_file = i18n.merge_file(
'desktop',
input: configure_file(
input: 'org.gnome.SoundRecorder.desktop.in.in',
output: '@BASENAME@',
......@@ -56,4 +55,28 @@ data_res = gnome.compile_resources(
install: true
)
subdir('appdata')
metainfo_conf = configuration_data()
metainfo_conf.set('app-id', application_id)
metainfo_conf.set('gettext-package', gettext_package)
metainfo_file = i18n.merge_file(
input: configure_file(
input: 'org.gnome.SoundRecorder.metainfo.xml.in.in',
output: '@BASENAME@',
configuration: metainfo_conf
),
output: '@0@.metainfo.xml'.format(application_id),
po_dir: po_dir,
install: true,
install_dir: sound_recorder_datadir / 'metainfo'
)
appstream_util = find_program('appstream-util', required: false)
if appstream_util.found()
test(
'validate-metainfo', appstream_util,
args: [
'validate-relax', '--nonet', metainfo_file.full_path()
]
)
endif
<?xml version="1.0" encoding="UTF-8"?>
<gresources>
<gresource prefix="/org/gnome/SoundRecorder">
<file>application.css</file>
<file>style.css</file>
<file>style-hc.css</file>
<file>ui/recorder.ui</file>
<file>ui/row.ui</file>
<file>ui/window.ui</file>
<file alias="gtk/help-overlay.ui">ui/help-overlay.ui</file>
<file compressed="true" preprocess="xml-stripblanks">icons/skip-back-symbolic.svg</file>
<file compressed="true" preprocess="xml-stripblanks">icons/skip-forward-symbolic.svg</file>
</gresource>
<gresource prefix="/org/gnome/SoundRecorder/icons/16x16/actions/">
<file compressed="true" preprocess="xml-stripblanks" alias="skip-back-symbolic.svg">icons/skip-back-symbolic.svg</file>
<file compressed="true" preprocess="xml-stripblanks" alias="skip-forward-symbolic.svg">icons/skip-forward-symbolic.svg</file>
</gresource>
</gresources>
......@@ -35,6 +35,16 @@
</kudos>
<content_rating type="oars-1.0" />
<releases>
<release version="42.0" date="2022-03-19">
<description>
<p>42.0 is out!</p>
<ul>
<li>Port to GTK4 / libadwaita</li>
<li>Proper dark theme support</li>
<li>Translations updates</li>
</ul>
</description>
</release>
<release version="40.0" date="2021-03-23" />
<release version="3.38.1" date="2021-01-25">
<description>
......@@ -99,4 +109,4 @@
<value key="Purism::form_factor">workstation</value>
<value key="Purism::form_factor">mobile</value>
</custom>
</component>
</component>
\ No newline at end of file
@define-color dimmed_color alpha(currentColor, .9);
@define-color dimmed_color alpha(currentColor, .55);
.recorder-time-label {
font-size: 32pt;
font-weight: 300;
}
@keyframes clocks-blink {
0% { color: @dimmed_color; }
100% { color: @destructive_color; }
}
.recorder-time-label {
color: @dimmed_color;
}
.recorder-time-label.paused {
color: @destructive_color;
animation-name: clocks-blink;
animation-iteration-count: infinite;
animation-timing-function: cubic-bezier(1.0,0,0,1.0);
animation-duration: 1s;
}
button.large {
padding: 12px;
}
.recording-row {
padding: 0;
}
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<!-- interface-requires gtk+ 3.17 -->
<object class="GtkShortcutsWindow" id="help_overlay">
<property name="modal">1</property>
<property name="modal">True</property>
<child>
<object class="GtkShortcutsSection">
<property name="visible">1</property>
<property name="section-name">shortcuts</property>
<property name="max-height">10</property>
<child>
<object class="GtkShortcutsGroup">
<property name="visible">1</property>
<property name="title" translatable="yes" context="shortcut window">General</property>
<child>
<object class="GtkShortcutsShortcut">
<property name="visible">1</property>
<property name="accelerator">&lt;ctrl&gt;R</property>
<property name="title" translatable="yes" context="shortcut window">Record</property>
</object>
</child>
<child>
<object class="GtkShortcutsShortcut">
<property name="visible">1</property>
<property name="accelerator">S</property>
<property name="title" translatable="yes" context="shortcut window">Stop Recording</property>
</object>
</child>
<child>
<object class="GtkShortcutsShortcut">
<property name="visible">1</property>
<property name="accelerator">space</property>
<property name="title" translatable="yes" context="shortcut window">Play / Pause / Resume</property>
</object>
......@@ -37,28 +30,24 @@
<child>
<object class="GtkShortcutsShortcut">
<property name="visible">1</property>
<property name="accelerator">Delete</property>
<property name="title" translatable="yes" context="shortcut window">Delete</property>
</object>
</child>
<child>
<object class="GtkShortcutsShortcut">
<property name="visible">1</property>
<property name="accelerator">F10</property>
<property name="title" translatable="yes" context="shortcut window">Open menu</property>
</object>
</child>
<child>
<object class="GtkShortcutsShortcut">
<property name="visible">1</property>
<property name="accelerator">&lt;ctrl&gt;question</property>
<property name="title" translatable="yes" context="shortcut window">Keyboard shortcuts</property>
</object>
</child>
<child>
<object class="GtkShortcutsShortcut">
<property name="visible">1</property>
<property name="accelerator">&lt;ctrl&gt;Q</property>
<property name="title" translatable="yes" context="shortcut window">Quit</property>
</object>
......@@ -67,32 +56,27 @@
</child>
<child>
<object class="GtkShortcutsGroup">
<property name="visible">1</property>
<property name="title" translatable="yes" context="shortcut window">Recording</property>
<child>
<object class="GtkShortcutsShortcut">
<property name="visible">1</property>
<property name="accelerator">B</property>
<property name="title" translatable="yes" context="shortcut window">Seek Backward</property>
</object>
</child>
<child>
<object class="GtkShortcutsShortcut">
<property name="visible">1</property>
<property name="accelerator">N</property>
<property name="title" translatable="yes" context="shortcut window">Seek Forward</property>
</object>
</child>
<child>
<object class="GtkShortcutsShortcut">
<property name="visible">1</property>
<property name="accelerator">F2</property>
<property name="title" translatable="yes" context="shortcut window">Rename</property>
</object>
</child>
<child>
<object class="GtkShortcutsShortcut">
<property name="visible">1</property>
<property name="accelerator">&lt;ctrl&gt;s</property>
<property name="title" translatable="yes" context="shortcut window">Export</property>
</object>
......
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.36.0 -->
<interface>
<requires lib="gtk+" version="3.22"/>
<requires lib="libhandy" version="1.0"/>
<template class="Gjs_RecorderWidget" parent="GtkBin">
<property name="visible">True</property>
<property name="can_focus">False</property>
<template class="Gjs_RecorderWidget" parent="GtkBox">
<child>
<object class="HdyWindowHandle">
<property name="visible">True</property>
<property name="can_focus">False</property>
<object class="GtkWindowHandle">
<property name="hexpand">True</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="margin_top">24</property>
<property name="margin_bottom">24</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkBox" id="recorderBox">
<property name="height_request">230</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="valign">center</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel" id="recorderTime">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="margin_top">18</property>
<property name="use_markup">True</property>
<attributes>
<attribute name="font-features" value="tnum=1"/>
</attributes>
<style>
<class name="dim-label"/>
<class name="numeric"/>
<class name="recorder-time-label"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="pack_type">end</property>
<property name="position">0</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="halign">center</property>
<property name="valign">center</property>
<property name="margin_top">8</property>
<property name="spacing">18</property>
<child>
<object class="GtkStack" id="playbackStack">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkButton" id="resumeBtn">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="tooltip_text" translatable="yes">Resume Recording</property>
<property name="halign">center</property>
<property name="valign">center</property>
<property name="action_name">recorder.resume</property>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can_focus">False</property>
<object class="GtkStackPage">
<property name="name">recorder-start</property>
<property name="child">
<object class="GtkButton" id="resumeBtn">
<property name="receives_default">True</property>
<property name="tooltip_text" translatable="yes">Resume Recording</property>
<property name="halign">center</property>
<property name="valign">center</property>
<property name="action_name">recorder.resume</property>
<property name="icon_name">media-playback-start-symbolic</property>
<style>
<class name="circular"/>
</style>
</object>
</child>
<style>
<class name="rounded-button"/>
</style>
</property>
</object>
<packing>
<property name="name">recorder-start</property>
</packing>
</child>
<child>
<object class="GtkButton" id="pauseBtn">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="tooltip_text" translatable="yes">Pause Recording</property>
<property name="halign">center</property>
<property name="valign">center</property>
<property name="action_name">recorder.pause</property>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can_focus">False</property>
<object class="GtkStackPage">
<property name="name">recorder-pause</property>
<property name="child">
<object class="GtkButton" id="pauseBtn">
<property name="receives_default">True</property>
<property name="tooltip_text" translatable="yes">Pause Recording</property>
<property name="halign">center</property>
<property name="valign">center</property>
<property name="action_name">recorder.pause</property>
<property name="icon_name">media-playback-pause-symbolic</property>
<style>
<class name="circular"/>
</style>
</object>
</child>
<style>
<class name="rounded-button"/>
</style>
</property>
</object>
<packing>
<property name="name">recorder-pause</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="GtkButton">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="tooltip_text" translatable="yes">Stop Recording</property>
<property name="halign">center</property>
......@@ -131,57 +81,31 @@
<property name="action_name">recorder.stop</property>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">media-playback-stop-symbolic</property>
<property name="icon_size">3</property>
<property name="pixel_size">24</property>
</object>
</child>
<style>
<class name="destructive-action"/>
<class name="rounded-button"/>
<class name="circular"/>
<class name="large"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkButton">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="tooltip_text" translatable="yes">Delete Recording</property>
<property name="halign">center</property>
<property name="valign">center</property>
<property name="action_name">recorder.cancel</property>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">user-trash-symbolic</property>
</object>
</child>
<property name="icon_name">user-trash-symbolic</property>
<style>
<class name="rounded-button"/>
<class name="circular"/>
</style>
</object>
<packing>
<property name="expand">False</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="pack_type">end</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
......
This diff is collapsed.
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.36.0 -->
<interface>
<requires lib="gtk+" version="3.20"/>
<requires lib="libhandy" version="0.0"/>
<template class="Gjs_Window" parent="HdyApplicationWindow">
<template class="Gjs_Window" parent="AdwApplicationWindow">
<property name="width_request">350</property>
<property name="height_request">480</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="default_width">780</property>
<property name="default_height">480</property>
<property name="title" translatable="yes">Sound Recorder</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkRevealer" id="headerRevealer">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="reveal_child">True</property>
<child>
<object class="HdyHeaderBar">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="title" translatable="yes">Sound Recorder</property>
<property name="show_close_button">True</property>
<object class="AdwHeaderBar">
<child>
<object class="GtkButton">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="halign">center</property>
<property name="valign">center</property>
<property name="action_name">recorder.start</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="spacing">4</property>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">media-record-symbolic</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="margin_end">4</property>
<property name="label" translatable="yes">Record</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<object class="AdwButtonContent">
<property name="icon_name">media-record-symbolic</property>
<property name="label" translatable="yes">Record</property>
</object>
</child>
<style>
......@@ -72,159 +33,62 @@
</style>
</object>
</child>
<child>
<child type="end">
<object class="GtkMenuButton">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="action_name">win.open-primary-menu</property>
<property name="menu_model">primaryMenu</property>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">open-menu-symbolic</property>
</object>
</child>
<property name="icon_name">open-menu-symbolic</property>
<style>
<class name="image-button"/>
</style>
</object>
<packing>
<property name="pack_type">end</property>
<property name="position">1</property>
</packing>
</child>
<style>
<class name="titlebar"/>
</style>
</object>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkOverlay">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="AdwToastOverlay" id="toastOverlay">
<property name="child">
<object class="GtkStack" id="mainStack">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<child>
<object class="HdyStatusPage" id="emptyPage">
<property name="visible">True</property>
<property name="title" translatable="yes">Add Recordings</property>
<property name="description" translatable="yes">Use the &lt;b&gt;Record&lt;/b&gt; button to make sound recordings</property>
</object>
<packing>
<object class="GtkStackPage">
<property name="name">empty</property>
</packing>
</child>
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="hscrollbar_policy">never</property>
<child>
<object class="HdyClamp" id="column">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="maximum_size">650</property>
<property name="child">
<object class="AdwStatusPage" id="emptyPage">
<property name="title" translatable="yes">Add Recordings</property>
<property name="description" translatable="yes">Use the &lt;b&gt;Record&lt;/b&gt; button to make sound recordings</property>
</object>
</child>
</property>
</object>
<packing>
<property name="name">recordings</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="index">-1</property>
</packing>
</child>
<child type="overlay">
<object class="GtkRevealer" id="notificationRevealer">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">center</property>
<property name="valign">start</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkLabel" id="notificationMessage">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="wrap">True</property>
<property name="ellipsize">end</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>
<object class="GtkButton" id="notificationUndoBtn">
<property name="label" translatable="yes">Undo</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="margin_start">12</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="notificationCloseBtn">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="tooltip_text" translatable="yes">Close</property>
<property name="margin_start">8</property>
<property name="relief">none</property>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">window-close-symbolic</property>
<object class="GtkStackPage">
<property name="name">recordings</property>
<property name="child">
<object class="GtkScrolledWindow">
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="hscrollbar_policy">never</property>
<property name="child">
<object class="GtkViewport">
<property name="scroll_to_focus">True</property>
<property name="child">
<object class="AdwClamp" id="column">
<property name="maximum_size">650</property>
</object>
</property>
</object>
</child>
</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
<style>
<class name="app-notification"/>
</style>
</property>
</object>
</child>
</object>
</child>
</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
......
project(
'gnome-sound-recorder',
version: '40.0',
version: '42.0',
license: 'GPL2+',
meson_version: '>= 0.50.0'
)
......@@ -37,10 +37,12 @@ gjs_console = gjs_dep.get_pkgconfig_variable('gjs_console')
# Lets check whether the dependencies exist
dependency('gio-2.0', version: '>= 2.43.4')
dependency('glib-2.0', version: '>= 2.39.3')
dependency('gtk+-3.0', version: '>= 3.13.2')
dependency('gtk4', version: '>= 4.4.0')
dependency('gstreamer-player-1.0', version: '>= 1.12')
dependency('libhandy-1', version: '>= 1.1.90')
dependency('libadwaita-1', version: '>= 1.0.0')
dependency('gobject-introspection-1.0', version: '>= 1.31.6')
dependency('gstreamer-1.0')
dependency('gstreamer-pbutils-1.0')
gnome = import('gnome')
i18n = import('i18n')
......
......@@ -13,29 +13,10 @@
"--socket=fallback-x11",
"--socket=wayland",
"--socket=pulseaudio",
"--filesystem=~/Recordings"
"--filesystem=~/Recordings",
"--talk-name=org.a11y.Bus"
],
"modules" : [
{
"name" : "libhandy",
"buildsystem" : "meson",
"config-opts" : [
"-Dprofiling=false",
"-Dintrospection=enabled",
"-Dgtk_doc=false",
"-Dtests=false",
"-Dexamples=false",
"-Dvapi=false",
"-Dglade_catalog=disabled"
],
"sources" : [
{
"type" : "git",
"url" : "https://gitlab.gnome.org/GNOME/libhandy.git",
"tag" : "1.1.90"
}
]
},
{
"name" : "gnome-sound-recorder",
"buildsystem": "meson",
......