components: Remove the built-in recorder keybinding and component
The keybinding is now part of gnome-settings-daemon
This commit is contained in:
parent
310dc03e2a
commit
81bb7009ea
@ -74,7 +74,6 @@ value here is from the GsmPresenceStatus enumeration.</_summary>
|
|||||||
</_description>
|
</_description>
|
||||||
</key>
|
</key>
|
||||||
<child name="calendar" schema="org.gnome.shell.calendar"/>
|
<child name="calendar" schema="org.gnome.shell.calendar"/>
|
||||||
<child name="recorder" schema="org.gnome.shell.recorder"/>
|
|
||||||
<child name="keybindings" schema="org.gnome.shell.keybindings"/>
|
<child name="keybindings" schema="org.gnome.shell.keybindings"/>
|
||||||
<child name="keyboard" schema="org.gnome.shell.keyboard"/>
|
<child name="keyboard" schema="org.gnome.shell.keyboard"/>
|
||||||
</schema>
|
</schema>
|
||||||
@ -128,13 +127,6 @@ value here is from the GsmPresenceStatus enumeration.</_summary>
|
|||||||
Keybinding to focus the active notification.
|
Keybinding to focus the active notification.
|
||||||
</_description>
|
</_description>
|
||||||
</key>
|
</key>
|
||||||
<key name="toggle-recording" type="as">
|
|
||||||
<default><![CDATA[['<Control><Shift><Alt>r']]]></default>
|
|
||||||
<_summary>Keybinding to toggle the screen recorder</_summary>
|
|
||||||
<_description>
|
|
||||||
Keybinding to start/stop the builtin screen recorder.
|
|
||||||
</_description>
|
|
||||||
</key>
|
|
||||||
</schema>
|
</schema>
|
||||||
|
|
||||||
<schema id="org.gnome.shell.keyboard" path="/org/gnome/shell/keyboard/"
|
<schema id="org.gnome.shell.keyboard" path="/org/gnome/shell/keyboard/"
|
||||||
@ -148,44 +140,6 @@ value here is from the GsmPresenceStatus enumeration.</_summary>
|
|||||||
</key>
|
</key>
|
||||||
</schema>
|
</schema>
|
||||||
|
|
||||||
<schema id="org.gnome.shell.recorder" path="/org/gnome/shell/recorder/"
|
|
||||||
gettext-domain="@GETTEXT_PACKAGE@">
|
|
||||||
<key name="framerate" type="i">
|
|
||||||
<default>30</default>
|
|
||||||
<_summary>Framerate used for recording screencasts.</_summary>
|
|
||||||
<_description>
|
|
||||||
The framerate of the resulting screencast recordered
|
|
||||||
by GNOME Shell's screencast recorder in frames-per-second.
|
|
||||||
</_description>
|
|
||||||
</key>
|
|
||||||
<key name="pipeline" type="s">
|
|
||||||
<default>''</default>
|
|
||||||
<_summary>The gstreamer pipeline used to encode the screencast</_summary>
|
|
||||||
<_description>
|
|
||||||
Sets the GStreamer pipeline used to encode recordings.
|
|
||||||
It follows the syntax used for gst-launch. The pipeline should have
|
|
||||||
an unconnected sink pad where the recorded video is recorded. It will
|
|
||||||
normally have a unconnected source pad; output from that pad
|
|
||||||
will be written into the output file. However the pipeline can also
|
|
||||||
take care of its own output - this might be used to send the output
|
|
||||||
to an icecast server via shout2send or similar. When unset or set
|
|
||||||
to an empty value, the default pipeline will be used. This is currently
|
|
||||||
'vp8enc min_quantizer=13 max_quantizer=13 cpu-used=5 deadline=1000000 threads=%T ! queue ! webmmux'
|
|
||||||
and records to WEBM using the VP8 codec. %T is used as a placeholder
|
|
||||||
for a guess at the optimal thread count on the system.
|
|
||||||
</_description>
|
|
||||||
</key>
|
|
||||||
<key name="file-extension" type="s">
|
|
||||||
<default>'webm'</default>
|
|
||||||
<_summary>File extension used for storing the screencast</_summary>
|
|
||||||
<_description>
|
|
||||||
The filename for recorded screencasts will be a unique filename
|
|
||||||
based on the current date, and use this extension. It should be
|
|
||||||
changed when recording to a different container format.
|
|
||||||
</_description>
|
|
||||||
</key>
|
|
||||||
</schema>
|
|
||||||
|
|
||||||
<schema id="org.gnome.shell.app-switcher"
|
<schema id="org.gnome.shell.app-switcher"
|
||||||
path="/org/gnome/shell/app-switcher/"
|
path="/org/gnome/shell/app-switcher/"
|
||||||
gettext-domain="@GETTEXT_PACKAGE@">
|
gettext-domain="@GETTEXT_PACKAGE@">
|
||||||
|
@ -115,7 +115,6 @@ nobase_dist_js_DATA = \
|
|||||||
ui/components/automountManager.js \
|
ui/components/automountManager.js \
|
||||||
ui/components/networkAgent.js \
|
ui/components/networkAgent.js \
|
||||||
ui/components/polkitAgent.js \
|
ui/components/polkitAgent.js \
|
||||||
ui/components/recorder.js \
|
|
||||||
ui/components/telepathyClient.js \
|
ui/components/telepathyClient.js \
|
||||||
ui/components/keyring.js \
|
ui/components/keyring.js \
|
||||||
$(NULL)
|
$(NULL)
|
||||||
|
@ -1,61 +0,0 @@
|
|||||||
|
|
||||||
const Lang = imports.lang;
|
|
||||||
const Main = imports.ui.main;
|
|
||||||
|
|
||||||
const Gio = imports.gi.Gio;
|
|
||||||
const Meta = imports.gi.Meta;
|
|
||||||
const Shell = imports.gi.Shell;
|
|
||||||
|
|
||||||
const Recorder = new Lang.Class({
|
|
||||||
Name: 'Recorder',
|
|
||||||
|
|
||||||
_init: function() {
|
|
||||||
this._recorderSettings = new Gio.Settings({ schema: 'org.gnome.shell.recorder' });
|
|
||||||
this._desktopLockdownSettings = new Gio.Settings({ schema: 'org.gnome.desktop.lockdown' });
|
|
||||||
this._bindingSettings = new Gio.Settings({ schema: 'org.gnome.shell.keybindings' });
|
|
||||||
this._recorder = null;
|
|
||||||
},
|
|
||||||
|
|
||||||
enable: function() {
|
|
||||||
Main.wm.addKeybinding('toggle-recording',
|
|
||||||
this._bindingSettings,
|
|
||||||
Meta.KeyBindingFlags.NONE,
|
|
||||||
Shell.KeyBindingMode.ALL,
|
|
||||||
Lang.bind(this, this._toggleRecorder));
|
|
||||||
},
|
|
||||||
|
|
||||||
disable: function() {
|
|
||||||
Main.wm.removeKeybinding('toggle-recording');
|
|
||||||
},
|
|
||||||
|
|
||||||
_ensureRecorder: function() {
|
|
||||||
if (this._recorder == null)
|
|
||||||
this._recorder = new Shell.Recorder({ stage: global.stage });
|
|
||||||
return this._recorder;
|
|
||||||
},
|
|
||||||
|
|
||||||
_toggleRecorder: function() {
|
|
||||||
let recorder = this._ensureRecorder();
|
|
||||||
if (recorder.is_recording()) {
|
|
||||||
recorder.close();
|
|
||||||
Meta.enable_unredirect_for_screen(global.screen);
|
|
||||||
} else if (!this._desktopLockdownSettings.get_boolean('disable-save-to-disk')) {
|
|
||||||
// read the parameters from GSettings always in case they have changed
|
|
||||||
recorder.set_framerate(this._recorderSettings.get_int('framerate'));
|
|
||||||
/* Translators: this is a filename used for screencast recording */
|
|
||||||
// xgettext:no-c-format
|
|
||||||
recorder.set_file_template(_("Screencast from %d %t") + '.' + this._recorderSettings.get_string('file-extension'));
|
|
||||||
let pipeline = this._recorderSettings.get_string('pipeline');
|
|
||||||
|
|
||||||
if (!pipeline.match(/^\s*$/))
|
|
||||||
recorder.set_pipeline(pipeline);
|
|
||||||
else
|
|
||||||
recorder.set_pipeline(null);
|
|
||||||
|
|
||||||
Meta.disable_unredirect_for_screen(global.screen);
|
|
||||||
recorder.record();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
const Component = Recorder;
|
|
@ -21,6 +21,7 @@ const _modes = {
|
|||||||
showCalendarEvents: false,
|
showCalendarEvents: false,
|
||||||
allowSettings: false,
|
allowSettings: false,
|
||||||
allowExtensions: false,
|
allowExtensions: false,
|
||||||
|
allowScreencast: false,
|
||||||
enabledExtensions: [],
|
enabledExtensions: [],
|
||||||
hasRunDialog: false,
|
hasRunDialog: false,
|
||||||
hasWorkspaces: false,
|
hasWorkspaces: false,
|
||||||
@ -83,6 +84,7 @@ const _modes = {
|
|||||||
showCalendarEvents: true,
|
showCalendarEvents: true,
|
||||||
allowSettings: true,
|
allowSettings: true,
|
||||||
allowExtensions: true,
|
allowExtensions: true,
|
||||||
|
allowScreencast: true,
|
||||||
hasRunDialog: true,
|
hasRunDialog: true,
|
||||||
hasWorkspaces: true,
|
hasWorkspaces: true,
|
||||||
hasWindows: true,
|
hasWindows: true,
|
||||||
@ -91,7 +93,7 @@ const _modes = {
|
|||||||
isPrimary: true,
|
isPrimary: true,
|
||||||
unlockDialog: imports.ui.unlockDialog.UnlockDialog,
|
unlockDialog: imports.ui.unlockDialog.UnlockDialog,
|
||||||
components: ['networkAgent', 'polkitAgent', 'telepathyClient',
|
components: ['networkAgent', 'polkitAgent', 'telepathyClient',
|
||||||
'keyring', 'recorder', 'autorunManager', 'automountManager'],
|
'keyring', 'autorunManager', 'automountManager'],
|
||||||
panel: {
|
panel: {
|
||||||
left: ['activities', 'appMenu'],
|
left: ['activities', 'appMenu'],
|
||||||
center: ['dateMenu'],
|
center: ['dateMenu'],
|
||||||
@ -183,10 +185,6 @@ const SessionMode = new Lang.Class({
|
|||||||
return this._modeStack[this._modeStack.length - 1];
|
return this._modeStack[this._modeStack.length - 1];
|
||||||
},
|
},
|
||||||
|
|
||||||
get allowScreencast() {
|
|
||||||
return this.components.indexOf('recorder') != -1;
|
|
||||||
},
|
|
||||||
|
|
||||||
_sync: function() {
|
_sync: function() {
|
||||||
let params = this._modes[this.currentMode];
|
let params = this._modes[this.currentMode];
|
||||||
let defaults;
|
let defaults;
|
||||||
|
Loading…
Reference in New Issue
Block a user