🔧 Add some initial code to load profiles

This commit is contained in:
Simon Schneegans
2023-01-20 20:07:07 +01:00
parent b45480991a
commit 7b5ef70b4d
7 changed files with 923 additions and 787 deletions
+11 -18
View File
@@ -378,28 +378,21 @@ class Extension {
return;
}
// We do nothing if a dialog got closed and we should not burn them.
const shouldDestroyDialogs = this._settings.get_boolean('destroy-dialogs');
// If an effect is to be previewed, we have to affect dialogs es well. This is
// because the preview window is a dialog window...
const previewNick = this._settings.get_string('preview-effect');
if (isDialogWindow && !shouldDestroyDialogs && previewNick == '') {
this._fixAnimationTimes(isDialogWindow, forOpening, null);
return;
}
// TODO!.
// We may have to do nothing if running on battery power or if in power-save mode.
let disableOnBattery =
this._settings.get_boolean('disable-on-battery') && this._upowerProxy.OnBattery;
let disableOnPowerSave = this._settings.get_boolean('disable-on-power-save') &&
this._powerProfilesProxy && this._powerProfilesProxy.ActiveProfile == 'power-saver';
// let disableOnBattery =
// this._settings.get_boolean('disable-on-battery') && this._upowerProxy.OnBattery;
// let disableOnPowerSave = this._settings.get_boolean('disable-on-power-save') &&
// this._powerProfilesProxy && this._powerProfilesProxy.ActiveProfile ==
// 'power-saver';
// if (!skip! && previewNick == '') {
// this._fixAnimationTimes(isDialogWindow, forOpening, null);
// return;
// }
if ((disableOnBattery || disableOnPowerSave) && previewNick == '') {
this._fixAnimationTimes(isDialogWindow, forOpening, null);
return;
}
// There is the weird case where an animation is already ongoing. This happens when a
// window is closed which has been created before the session was started (e.g. when
+68 -16
View File
@@ -96,6 +96,13 @@ var PreferencesDialog = class PreferencesDialog {
// Store a reference to the settings object.
this._settings = ExtensionUtils.getSettings();
let profiles = utils.listProfiles();
if (profiles.length == 0) {
profiles = [utils.createProfile()];
}
this._profileSettings = utils.getProfileSettings(profiles[0]);
// Load the general user interface files.
this._builder = new Gtk.Builder();
this._builder.add_from_resource(`/ui/common/menus.ui`);
@@ -115,7 +122,7 @@ var PreferencesDialog = class PreferencesDialog {
// Maybe the service is masked...
}
this._builder.get_object('disable-on-power-save-row').set_visible(hasPowerProfiles);
this._builder.get_object('profile-power-profile').set_visible(hasPowerProfiles);
// Starting with GNOME Shell 42, the settings dialog uses libadwaita (at least most of
// the time - it seems that pop!_OS does not support libadwaita even on GNOME 42). We
@@ -386,11 +393,55 @@ var PreferencesDialog = class PreferencesDialog {
// Bind all the profile-related actions.
{
this.bindComboRow('profile-animation-type');
this.bindComboRow('profile-window-type');
this.bindComboRow('profile-desktop-style');
this.bindComboRow('profile-power-mode');
this.bindComboRow('profile-power-profile');
const updateProfileName = () => {
let items = [];
const addItems = (settingsKey, options) => {
const option = this._profileSettings.get_int(settingsKey);
if (option > 0) {
items.push(options[option - 1]);
}
};
// clang-format off
addItems('profile-animation-type', [_('Opening Windows'),
_('Closing Windows')]);
addItems('profile-window-type', [_('Normal Windows'),
_('Dialog Windows')]);
addItems('profile-desktop-style', [_('Bright Mode'),
_('Dark Mode')]);
addItems('profile-power-mode', [_('On Battery'),
_('Plugged In')]);
addItems('profile-power-profile', [_('Power-Saver Mode'),
_('Balanced Mode'),
_('Performance Mode'),
_('Power Saver or Balanced'),
_('Balanced or Performance')]);
// clang-format on
let label = '';
if (items.length == 0) {
label = _('Default Profile');
} else {
label = items.join(' · ');
}
this._builder.get_object('choose-profile-button').label = label;
};
const setupProfileOption = (settingsKey) => {
this.bindComboRow(settingsKey);
this._profileSettings.connect('changed::' + settingsKey, updateProfileName);
};
setupProfileOption('profile-animation-type');
setupProfileOption('profile-window-type');
setupProfileOption('profile-desktop-style');
setupProfileOption('profile-power-mode');
setupProfileOption('profile-power-profile');
updateProfileName();
}
// Populate the enabled-effects drop-down menu.
@@ -399,7 +450,7 @@ var PreferencesDialog = class PreferencesDialog {
const [minMajor, minMinor] = effect.getMinShellVersion();
if (utils.shellVersionIsAtLeast(minMajor, minMinor)) {
const actionName = effect.getNick() + '-enable-effect';
const action = this._settings.create_action(actionName);
const action = this._profileSettings.create_action(actionName);
group.add_action(action);
// The menu only exists if not using libadwaita. With libadwaita, individual
@@ -435,9 +486,9 @@ var PreferencesDialog = class PreferencesDialog {
return this._builder;
}
// Returns a Gio.Settings object for this extension.
getSettings() {
return this._settings;
// Returns a Gio.Settings object for the current effect profile.
getProfileSettings() {
return this._profileSettings;
}
// Returns the widget used for the settings of this extension.
@@ -474,17 +525,17 @@ var PreferencesDialog = class PreferencesDialog {
// Update the settings when the color is modified.
button.connect('color-set', () => {
this._settings.set_string(settingsKey, button.get_rgba().to_string());
this._profileSettings.set_string(settingsKey, button.get_rgba().to_string());
});
// Update the button state when the settings change.
const settingSignalHandler = () => {
const rgba = new Gdk.RGBA();
rgba.parse(this._settings.get_string(settingsKey));
rgba.parse(this._profileSettings.get_string(settingsKey));
button.rgba = rgba;
};
this._settings.connect('changed::' + settingsKey, settingSignalHandler);
this._profileSettings.connect('changed::' + settingsKey, settingSignalHandler);
// Initialize the button with the state in the settings.
settingSignalHandler();
@@ -512,7 +563,7 @@ var PreferencesDialog = class PreferencesDialog {
const resetButton = this._builder.get_object('reset-' + settingsKey);
if (resetButton) {
resetButton.connect('clicked', () => {
this._settings.reset(settingsKey);
this._profileSettings.reset(settingsKey);
});
}
}
@@ -523,7 +574,8 @@ var PreferencesDialog = class PreferencesDialog {
const object = this._builder.get_object(settingsKey);
if (object) {
this._settings.bind(settingsKey, object, property, Gio.SettingsBindFlags.DEFAULT);
this._profileSettings.bind(settingsKey, object, property,
Gio.SettingsBindFlags.DEFAULT);
}
this._bindResetButton(settingsKey);
@@ -552,7 +604,7 @@ var PreferencesDialog = class PreferencesDialog {
_previewEffect(effect) {
// Set the to-be-previewed effect.
this.getSettings().set_string('preview-effect', effect.getNick());
this._settings.set_string('preview-effect', effect.getNick());
// Make sure that the window.show() firther below "sees" this change.
Gio.Settings.sync();
+15 -15
View File
@@ -11,8 +11,7 @@ SPDX-License-Identifier: GPL-3.0-or-later
<object class="GtkBox" id="profile-button">
<property name="halign">center</property>
<child>
<object class="GtkMenuButton">
<property name="label">Default Profile</property>
<object class="GtkMenuButton" id="choose-profile-button">
<property name="menu-model">profile-menu</property>
</object>
</child>
@@ -26,12 +25,6 @@ SPDX-License-Identifier: GPL-3.0-or-later
</binding>
</object>
</child>
<child>
<object class="GtkButton">
<property name="icon-name">user-trash-symbolic</property>
<property name="valign">center</property>
</object>
</child>
<style>
<class name="linked" />
</style>
@@ -57,7 +50,7 @@ SPDX-License-Identifier: GPL-3.0-or-later
<property name="margin-top">20</property>
<property name="margin-bottom">20</property>
<property name="margin-start">20</property>
<property name="margin-start">20</property>
<property name="margin-end">20</property>
<property name="spacing">20</property>
<child>
@@ -84,8 +77,8 @@ SPDX-License-Identifier: GPL-3.0-or-later
<object class="GtkStringList">
<items>
<item translatable="yes">Any</item>
<item translatable="yes">Open Windows</item>
<item translatable="yes">Close Windows</item>
<item translatable="yes">Opening Windows</item>
<item translatable="yes">Closing Windows</item>
</items>
</object>
</property>
@@ -100,7 +93,7 @@ SPDX-License-Identifier: GPL-3.0-or-later
<items>
<item translatable="yes">Any</item>
<item translatable="yes">Normal Windows</item>
<item translatable="yes">Dialogs</item>
<item translatable="yes">Dialog Windows</item>
</items>
</object>
</property>
@@ -114,7 +107,7 @@ SPDX-License-Identifier: GPL-3.0-or-later
<object class="GtkStringList">
<items>
<item translatable="yes">Any</item>
<item translatable="yes">Default Mode</item>
<item translatable="yes">Bright Mode</item>
<item translatable="yes">Dark Mode</item>
</items>
</object>
@@ -158,6 +151,14 @@ SPDX-License-Identifier: GPL-3.0-or-later
</object>
</child>
<child>
<object class="GtkButton">
<property name="icon-name">user-trash-symbolic</property>
<property name="label" translatable="yes">Delete this Profile...</property>
<property name="halign">start</property>
</object>
</child>
</object>
</property>
</object>
@@ -181,14 +182,13 @@ SPDX-License-Identifier: GPL-3.0-or-later
<child type="header-suffix">
<object class="GtkBox">
<property name="valign">center</property>
<style>
<class name="linked" />
</style>
<child>
<object class="GtkButton">
<property name="icon-name">edit-paste-symbolic</property>
</object>
</child>
@@ -0,0 +1,738 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
SPDX-License-Identifier: CC0-1.0
-->
<schemalist>
<schema path="/org/gnome/shell/extensions/burn-my-windows-profile/" id="org.gnome.shell.extensions.burn-my-windows-profile">
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Profile Options -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<key name="profile-animation-type" type="i">
<default>0</default>
<range min="0" max="2" />
<summary>Profile Animation Type</summary>
<description>The animation types for which the current effect settings should be used.</description>
</key>
<key name="profile-window-type" type="i">
<default>0</default>
<range min="0" max="2" />
<summary>Profile Window Type</summary>
<description>The window types for which the current effect settings should be used.</description>
</key>
<key name="profile-desktop-style" type="i">
<default>0</default>
<range min="0" max="2" />
<summary>Profile Desktop Style</summary>
<description>The desktop styles for which the current effect settings should be used.</description>
</key>
<key name="profile-power-mode" type="i">
<default>0</default>
<range min="0" max="2" />
<summary>Profile Power Mode</summary>
<description>The power mode for which the current effect settings should be used.</description>
</key>
<key name="profile-power-profile" type="i">
<default>0</default>
<range min="0" max="5" />
<summary>Profile Power Profile</summary>
<description>The power profiles in which the current effect settings should be used.</description>
</key>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Apparition Effect Options -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<key name="apparition-enable-effect" type="b">
<default>false</default>
<summary>Apparition Enable Effect</summary>
<description>Use the apparition effect.</description>
</key>
<key name="apparition-animation-time" type="i">
<default>300</default>
<summary>Apparition Animation Time</summary>
<description>The time the apparition effect takes.</description>
</key>
<key name="apparition-randomness" type="d">
<default>0.5</default>
<summary>Apparition Randomness</summary>
<description>The amount of randomness of the apparition effect.</description>
</key>
<key name="apparition-twirl-intensity" type="d">
<default>5.0</default>
<summary>Apparition Twirl Intensity</summary>
<description>The amount of twirling of the apparition effect.</description>
</key>
<key name="apparition-shake-intensity" type="d">
<default>3.0</default>
<summary>Apparition Shake Intensity</summary>
<description>The amount of shaking of the apparition effect.</description>
</key>
<key name="apparition-suction-intensity" type="d">
<default>0.75</default>
<summary>Apparition Suction Intensity</summary>
<description>The amount of suction of the apparition effect.</description>
</key>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Pixelate Options -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<key name="pixelate-enable-effect" type="b">
<default>false</default>
<summary>Pixelate Enable Effect</summary>
<description>Use the Pixelate effect.</description>
</key>
<key name="pixelate-animation-time" type="i">
<default>500</default>
<summary>Pixelate Animation Time</summary>
<description>The time the Pixelate effect takes.</description>
</key>
<key name="pixelate-noise" type="d">
<default>40</default>
<summary>Pixelate Noise</summary>
<description>The noise of the effect.</description>
</key>
<key name="pixelate-pixel-size" type="i">
<default>10</default>
<summary>Pixelate Pixel Size</summary>
<description>The size of the maximum pixelation.</description>
</key>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Pixel Wipe Options -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<key name="pixel-wipe-enable-effect" type="b">
<default>false</default>
<summary>Pixel Wipe Enable Effect</summary>
<description>Use the Pixel Wipe effect.</description>
</key>
<key name="pixel-wipe-animation-time" type="i">
<default>1000</default>
<summary>Pixel Wipe Animation Time</summary>
<description>The time the Pixel Wipe effect takes.</description>
</key>
<key name="pixel-wipe-pixel-size" type="i">
<default>10</default>
<summary>Pixel Wipe Pixel Size</summary>
<description>The size of the maximum pixelation.</description>
</key>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Pixel Wheel Options -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<key name="pixel-wheel-enable-effect" type="b">
<default>false</default>
<summary>Pixel Wheel Enable Effect</summary>
<description>Use the Pixel Wheel effect.</description>
</key>
<key name="pixel-wheel-animation-time" type="i">
<default>300</default>
<summary>Pixel Wheel Animation Time</summary>
<description>The time the Pixel Wheel effect takes.</description>
</key>
<key name="pixel-wheel-spoke-count" type="i">
<default>12</default>
<summary>Pixel Wheel Spoke Count</summary>
<description>The number of sections in the wheel.</description>
</key>
<key name="pixel-wheel-pixel-size" type="d">
<default>10</default>
<summary>Pixel Wheel Pixel Size</summary>
<description>The size of the maximum pixelation.</description>
</key>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Doom Options -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<key name="doom-enable-effect" type="b">
<default>false</default>
<summary>Doom Enable Effect</summary>
<description>Use the Doom effect.</description>
</key>
<key name="doom-animation-time" type="i">
<default>1000</default>
<summary>Doom Animation Time</summary>
<description>The time the Doom effect takes.</description>
</key>
<key name="doom-horizontal-scale" type="d">
<default>10.0</default>
<summary>Doom Horizontal Scale</summary>
<description>The X scale of the effect.</description>
</key>
<key name="doom-vertical-scale" type="d">
<default>10.0</default>
<summary>Doom Vertical Scale</summary>
<description>The Y scale of the effect.</description>
</key>
<key name="doom-pixel-size" type="i">
<default>10</default>
<summary>Doom Pixel Size</summary>
<description>The size of the maximum pixelation.</description>
</key>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Fire Options -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<key name="fire-enable-effect" type="b">
<default>true</default>
<summary>Fire Enable Effect</summary>
<description>Use the fire effect.</description>
</key>
<key name="fire-animation-time" type="i">
<default>1500</default>
<summary>Fire Animation Time</summary>
<description>The time the fire effect takes.</description>
</key>
<key name="flame-movement-speed" type="d">
<default>0.5</default>
<summary>Fire Movement Speed</summary>
<description>The speed at which the fire moves.</description>
</key>
<key name="flame-scale" type="d">
<default>1.0</default>
<summary>Fire Scale</summary>
<description>The size of the fire.</description>
</key>
<key name="flame-3d-noise" type="b">
<default>false</default>
<summary>Fire 3D Noise</summary>
<description>Use a 3D noise for the fire.</description>
</key>
<key name="fire-color-1" type="s">
<default>"rgba(76, 51, 25, 0.0)"</default>
<summary>Fire Color 1</summary>
<description>The first color of the fire gradient.</description>
</key>
<key name="fire-color-2" type="s">
<default>"rgba(180, 55, 30, 0.7)"</default>
<summary>Fire Color 2</summary>
<description>The second color of the fire gradient.</description>
</key>
<key name="fire-color-3" type="s">
<default>"rgba(255, 76, 38, 0.9)"</default>
<summary>Fire Color 3</summary>
<description>The third color of the fire gradient.</description>
</key>
<key name="fire-color-4" type="s">
<default>"rgba(255, 166, 25, 1)"</default>
<summary>Fire Color 4</summary>
<description>The fourth color of the fire gradient.</description>
</key>
<key name="fire-color-5" type="s">
<default>"rgba(255, 255, 255, 1)"</default>
<summary>Fire Color 5</summary>
<description>The fifth color of the fire gradient.</description>
</key>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Glide Options -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<key name="glide-enable-effect" type="b">
<default>false</default>
<summary>Glide Enable Effect</summary>
<description>Use the glide effect.</description>
</key>
<key name="glide-animation-time" type="i">
<default>250</default>
<summary>Glide Animation Time</summary>
<description>The time the glide effect takes.</description>
</key>
<key name="glide-scale" type="d">
<default>0.95</default>
<summary>Glide Scale</summary>
<description>The scale of the window.</description>
</key>
<key name="glide-squish" type="d">
<default>0.15</default>
<summary>Glide Squish</summary>
<description>The amount of squishing.</description>
</key>
<key name="glide-tilt" type="d">
<default>-0.3</default>
<summary>Glide Tilt</summary>
<description>The amount of tilting.</description>
</key>
<key name="glide-shift" type="d">
<default>-0.05</default>
<summary>Glide Shift</summary>
<description>The amount of shifting.</description>
</key>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Matrix Options -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<key name="matrix-enable-effect" type="b">
<default>false</default>
<summary>Matrix Enable Effect</summary>
<description>Use the matrix effect.</description>
</key>
<key name="matrix-animation-time" type="i">
<default>1500</default>
<summary>Matrix Animation Time</summary>
<description>The time the matrix effect takes.</description>
</key>
<key name="matrix-scale" type="i">
<default>20</default>
<summary>Matrix Scale</summary>
<description>The size of the matrix letters.</description>
</key>
<key name="matrix-randomness" type="d">
<default>1.0</default>
<summary>Matrix Randomness</summary>
<description>The randomness of the matrix effect.</description>
</key>
<key name="matrix-tip-color" type="s">
<default>"rgb(255, 255, 255)"</default>
<summary>Matrix Tip Color</summary>
<description>The color of the matrix trail tips.</description>
</key>
<key name="matrix-trail-color" type="s">
<default>"rgb(25, 255, 89)"</default>
<summary>Matrix Trail Color</summary>
<description>The color matrix trails.</description>
</key>
<key name="matrix-overshoot" type="d">
<default>0.25</default>
<summary>Matrix Overshoot</summary>
<description>The vertical overshooting of the matrix effect.</description>
</key>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- TV Effect Options -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<key name="tv-enable-effect" type="b">
<default>false</default>
<summary>TV Enable Effect</summary>
<description>Use the tv effect.</description>
</key>
<key name="tv-animation-time" type="i">
<default>400</default>
<summary>TV Animation Time</summary>
<description>The time the tv effect takes.</description>
</key>
<key name="tv-effect-color" type="s">
<default>"rgb(255, 255, 255)"</default>
<summary>TV Effect Color</summary>
<description>The color of the TV effect.</description>
</key>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- T-Rex Attack Options -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<key name="trex-enable-effect" type="b">
<default>false</default>
<summary>T-Rex Enable Effect</summary>
<description>Use the trex effect.</description>
</key>
<key name="trex-animation-time" type="i">
<default>1000</default>
<summary>T-Rex Animation Time</summary>
<description>The time the trex effect takes.</description>
</key>
<key name="claw-scratch-color" type="s">
<default>"rgb(170, 0, 0)"</default>
<summary>Claw Scratch Color</summary>
<description>The color of the claw scratches.</description>
</key>
<key name="claw-scratch-scale" type="d">
<default>1.0</default>
<summary>Claw Scratch Scale</summary>
<description>Size of the claw scratches.</description>
</key>
<key name="claw-scratch-warp" type="d">
<default>0.15</default>
<summary>Claw Scratch Warp</summary>
<description>Intensity of the claw scratch warp effect.</description>
</key>
<key name="claw-scratch-count" type="i">
<default>5</default>
<summary>Claw Scratch Count</summary>
<description>Number of claw scratches drawn on top of each other.</description>
</key>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Hexagon Options -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<key name="hexagon-enable-effect" type="b">
<default>false</default>
<summary>Hexagon Enable Effect</summary>
<description>Use the Hexagon effect.</description>
</key>
<key name="hexagon-animation-time" type="i">
<default>1500</default>
<summary>Hexagon Animation Time</summary>
<description>The time the Hexagon effect takes.</description>
</key>
<key name="hexagon-scale" type="d">
<default>3.0</default>
<summary>Hexagon Scale</summary>
<description>The size of the effect.</description>
</key>
<key name="hexagon-line-width" type="d">
<default>2.0</default>
<summary>Hexagon Line Width</summary>
<description>The width of the lines.</description>
</key>
<key name="hexagon-line-color" type="s">
<default>"rgba(200, 255, 255, 0.5)"</default>
<summary>Hexagon Line Color</summary>
<description>The color of the lines.</description>
</key>
<key name="hexagon-glow-color" type="s">
<default>"rgba(20, 80, 255, 0.5)"</default>
<summary>Hexagon Glow Color</summary>
<description>The color of the glow effect.</description>
</key>
<key name="hexagon-additive-blending" type="b">
<default>true</default>
<summary>Hexagon Additive Blending</summary>
<description>Use additive blending for the line and the glow.</description>
</key>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Incinerate Options -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<key name="incinerate-enable-effect" type="b">
<default>false</default>
<summary>Incinerate Enable Effect</summary>
<description>Use the Incinerate effect.</description>
</key>
<key name="incinerate-animation-time" type="i">
<default>2000</default>
<summary>Incinerate Animation Time</summary>
<description>The time the Incinerate effect takes.</description>
</key>
<key name="incinerate-scale" type="d">
<default>1.0</default>
<summary>Incinerate Scale</summary>
<description>The scale of the effect.</description>
</key>
<key name="incinerate-turbulence" type="d">
<default>0.3</default>
<summary>Incinerate Turbulence</summary>
<description>The turbulence of the effect.</description>
</key>
<key name="incinerate-color" type="s">
<default>"rgb(255, 180, 127)"</default>
<summary>Incinerate Color</summary>
<description>The color of the effect.</description>
</key>
<key name="incinerate-use-pointer" type="b">
<default>true</default>
<summary>Incinerate Use Pointer</summary>
<description>Use the pointer location for the incinerate effect.</description>
</key>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Energize A Options -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<key name="energize-a-enable-effect" type="b">
<default>false</default>
<summary>Energize A Enable Effect</summary>
<description>Use the Energize A effect.</description>
</key>
<key name="energize-a-animation-time" type="i">
<default>2000</default>
<summary>Energize A Animation Time</summary>
<description>The time the Energize A effect takes.</description>
</key>
<key name="energize-a-scale" type="d">
<default>1.0</default>
<summary>Energize A Scale</summary>
<description>The size of the effect.</description>
</key>
<key name="energize-a-color" type="s">
<default>"rgb(255, 200, 50)"</default>
<summary>Energize A Color</summary>
<description>The color of the effect.</description>
</key>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Energize B Options -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<key name="energize-b-enable-effect" type="b">
<default>false</default>
<summary>Energize B Enable Effect</summary>
<description>Use the Energize B effect.</description>
</key>
<key name="energize-b-animation-time" type="i">
<default>1000</default>
<summary>Energize B Animation Time</summary>
<description>The time the Energize B effect takes.</description>
</key>
<key name="energize-b-scale" type="d">
<default>1.0</default>
<summary>Energize B Scale</summary>
<description>The size of the effect.</description>
</key>
<key name="energize-b-color" type="s">
<default>"rgb(160, 180, 255)"</default>
<summary>Energize B Color</summary>
<description>The color of the effect.</description>
</key>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Glitch Options -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<key name="glitch-enable-effect" type="b">
<default>false</default>
<summary>Glitch Enable Effect</summary>
<description>Use the Glitch effect.</description>
</key>
<key name="glitch-animation-time" type="i">
<default>750</default>
<summary>Glitch Animation Time</summary>
<description>The time the Glitch effect takes.</description>
</key>
<key name="glitch-scale" type="d">
<default>1.0</default>
<summary>Glitch Scale</summary>
<description>The size of the effect.</description>
</key>
<key name="glitch-strength" type="d">
<default>2.0</default>
<summary>Glitch Strength</summary>
<description>The intensity of the effect.</description>
</key>
<key name="glitch-speed" type="d">
<default>2.0</default>
<summary>Glitch Speed</summary>
<description>The speed of the effect.</description>
</key>
<key name="glitch-color" type="s">
<default>"rgb(100, 160, 255)"</default>
<summary>Glitch Color</summary>
<description>The color of the effect.</description>
</key>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Wisps Effect Options -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<key name="wisps-enable-effect" type="b">
<default>false</default>
<summary>Wisps Enable Effect</summary>
<description>Use the wisps effect.</description>
</key>
<key name="wisps-animation-time" type="i">
<default>1500</default>
<summary>Wisps Animation Time</summary>
<description>The time the wisps effect takes.</description>
</key>
<key name="wisps-scale" type="d">
<default>1.0</default>
<summary>Wisps Scale</summary>
<description>The size of the wisps.</description>
</key>
<key name="wisps-color" type="s">
<default>"rgb(255, 100, 200)"</default>
<summary>Wisps Effect Color</summary>
<description>The color of the wisps effect.</description>
</key>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Broken Glass Effect Options -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<key name="broken-glass-enable-effect" type="b">
<default>false</default>
<summary>Broken Glass Enable Effect</summary>
<description>Use the broken glass effect.</description>
</key>
<key name="broken-glass-animation-time" type="i">
<default>1000</default>
<summary>Broken Glass Animation Time</summary>
<description>The time the broken glass effect takes.</description>
</key>
<key name="broken-glass-scale" type="d">
<default>1.0</default>
<summary>Broken Glass Scale</summary>
<description>The size of the broken glass effect.</description>
</key>
<key name="broken-glass-gravity" type="d">
<default>-1.0</default>
<summary>Broken Glass Gravity</summary>
<description>The gravity of the broken glass effect.</description>
</key>
<key name="broken-glass-blow-force" type="d">
<default>0.5</default>
<summary>Broken Glass Blow Force</summary>
<description>The blow force of the broken glass effect.</description>
</key>
<key name="broken-glass-use-pointer" type="b">
<default>false</default>
<summary>Broken Glass Use Pointer</summary>
<description>Use the pointer location for the broken glass effect.</description>
</key>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Portal Options -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<key name="portal-enable-effect" type="b">
<default>false</default>
<summary>Portal Enable Effect</summary>
<description>Use the Portal effect.</description>
</key>
<key name="portal-animation-time" type="i">
<default>1250</default>
<summary>Portal Animation Time</summary>
<description>The time the Portal effect takes.</description>
</key>
<key name="portal-color" type="s">
<default>"rgb(121, 233, 24)"</default>
<summary>Portal Color</summary>
<description>The color of the effect.</description>
</key>
<key name="portal-rotation-speed" type="d">
<default>0.3</default>
<summary>Portal Rotation Speed</summary>
<description>The angular speed of the portal.</description>
</key>
<key name="portal-whirling" type="d">
<default>1.0</default>
<summary>Portal Whirling</summary>
<description>The amount of distortion.</description>
</key>
<key name="portal-details" type="d">
<default>15.0</default>
<summary>Portal Details</summary>
<description>The amount of details in the portal.</description>
</key>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Snap of Disintegration Effect Options -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<key name="snap-enable-effect" type="b">
<default>false</default>
<summary>Snap Enable Effect</summary>
<description>Use the snap effect.</description>
</key>
<key name="snap-animation-time" type="i">
<default>1500</default>
<summary>Snap Animation Time</summary>
<description>The time the snap effect takes.</description>
</key>
<key name="snap-scale" type="d">
<default>3.0</default>
<summary>Snap Scale</summary>
<description>The size of the snap effect.</description>
</key>
<key name="snap-color" type="s">
<default>"rgb(50, 40, 35)"</default>
<summary>Snap Effect Color</summary>
<description>The color of the dust.</description>
</key>
</schema>
</schemalist>
@@ -13,6 +13,12 @@ SPDX-License-Identifier: CC0-1.0
<!-- General Options -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<key name="active-profile" type="s">
<default>""</default>
<summary>Active Profile</summary>
<description>The currently active effect profile.</description>
</key>
<key name="preview-effect" type="s">
<default>""</default>
<summary>Preview Effect</summary>
@@ -25,730 +31,6 @@ SPDX-License-Identifier: CC0-1.0
<description>If set to true, all animations will show only one still frame to allow for continuous integration tests.</description>
</key>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Profile Options -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<key name="profile-animation-type" type="i">
<default>0</default>
<range min="0" max="2" />
<summary>Profile Animation Type</summary>
<description>The animation types for which the current effect settings should be used.</description>
</key>
<key name="profile-window-type" type="i">
<default>0</default>
<range min="0" max="2" />
<summary>Profile Window Type</summary>
<description>The window types for which the current effect settings should be used.</description>
</key>
<key name="profile-desktop-style" type="i">
<default>0</default>
<range min="0" max="2" />
<summary>Profile Desktop Style</summary>
<description>The desktop styles for which the current effect settings should be used.</description>
</key>
<key name="profile-power-mode" type="i">
<default>0</default>
<range min="0" max="2" />
<summary>Profile Power Mode</summary>
<description>The power mode for which the current effect settings should be used.</description>
</key>
<key name="profile-power-profile" type="i">
<default>0</default>
<range min="0" max="5" />
<summary>Profile Power Profile</summary>
<description>The power profiles in which the current effect settings should be used.</description>
</key>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Apparition Effect Options -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<key name="apparition-enable-effect" type="b">
<default>false</default>
<summary>Apparition Enable Effect</summary>
<description>Use the apparition effect.</description>
</key>
<key name="apparition-animation-time" type="i">
<default>300</default>
<summary>Apparition Animation Time</summary>
<description>The time the apparition effect takes.</description>
</key>
<key name="apparition-randomness" type="d">
<default>0.5</default>
<summary>Apparition Randomness</summary>
<description>The amount of randomness of the apparition effect.</description>
</key>
<key name="apparition-twirl-intensity" type="d">
<default>5.0</default>
<summary>Apparition Twirl Intensity</summary>
<description>The amount of twirling of the apparition effect.</description>
</key>
<key name="apparition-shake-intensity" type="d">
<default>3.0</default>
<summary>Apparition Shake Intensity</summary>
<description>The amount of shaking of the apparition effect.</description>
</key>
<key name="apparition-suction-intensity" type="d">
<default>0.75</default>
<summary>Apparition Suction Intensity</summary>
<description>The amount of suction of the apparition effect.</description>
</key>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Pixelate Options -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<key name="pixelate-enable-effect" type="b">
<default>false</default>
<summary>Pixelate Enable Effect</summary>
<description>Use the Pixelate effect.</description>
</key>
<key name="pixelate-animation-time" type="i">
<default>500</default>
<summary>Pixelate Animation Time</summary>
<description>The time the Pixelate effect takes.</description>
</key>
<key name="pixelate-noise" type="d">
<default>40</default>
<summary>Pixelate Noise</summary>
<description>The noise of the effect.</description>
</key>
<key name="pixelate-pixel-size" type="i">
<default>10</default>
<summary>Pixelate Pixel Size</summary>
<description>The size of the maximum pixelation.</description>
</key>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Pixel Wipe Options -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<key name="pixel-wipe-enable-effect" type="b">
<default>false</default>
<summary>Pixel Wipe Enable Effect</summary>
<description>Use the Pixel Wipe effect.</description>
</key>
<key name="pixel-wipe-animation-time" type="i">
<default>1000</default>
<summary>Pixel Wipe Animation Time</summary>
<description>The time the Pixel Wipe effect takes.</description>
</key>
<key name="pixel-wipe-pixel-size" type="i">
<default>10</default>
<summary>Pixel Wipe Pixel Size</summary>
<description>The size of the maximum pixelation.</description>
</key>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Pixel Wheel Options -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<key name="pixel-wheel-enable-effect" type="b">
<default>false</default>
<summary>Pixel Wheel Enable Effect</summary>
<description>Use the Pixel Wheel effect.</description>
</key>
<key name="pixel-wheel-animation-time" type="i">
<default>300</default>
<summary>Pixel Wheel Animation Time</summary>
<description>The time the Pixel Wheel effect takes.</description>
</key>
<key name="pixel-wheel-spoke-count" type="i">
<default>12</default>
<summary>Pixel Wheel Spoke Count</summary>
<description>The number of sections in the wheel.</description>
</key>
<key name="pixel-wheel-pixel-size" type="d">
<default>10</default>
<summary>Pixel Wheel Pixel Size</summary>
<description>The size of the maximum pixelation.</description>
</key>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Doom Options -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<key name="doom-enable-effect" type="b">
<default>false</default>
<summary>Doom Enable Effect</summary>
<description>Use the Doom effect.</description>
</key>
<key name="doom-animation-time" type="i">
<default>1000</default>
<summary>Doom Animation Time</summary>
<description>The time the Doom effect takes.</description>
</key>
<key name="doom-horizontal-scale" type="d">
<default>10.0</default>
<summary>Doom Horizontal Scale</summary>
<description>The X scale of the effect.</description>
</key>
<key name="doom-vertical-scale" type="d">
<default>10.0</default>
<summary>Doom Vertical Scale</summary>
<description>The Y scale of the effect.</description>
</key>
<key name="doom-pixel-size" type="i">
<default>10</default>
<summary>Doom Pixel Size</summary>
<description>The size of the maximum pixelation.</description>
</key>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Fire Options -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<key name="fire-enable-effect" type="b">
<default>true</default>
<summary>Fire Enable Effect</summary>
<description>Use the fire effect.</description>
</key>
<key name="fire-animation-time" type="i">
<default>1500</default>
<summary>Fire Animation Time</summary>
<description>The time the fire effect takes.</description>
</key>
<key name="flame-movement-speed" type="d">
<default>0.5</default>
<summary>Fire Movement Speed</summary>
<description>The speed at which the fire moves.</description>
</key>
<key name="flame-scale" type="d">
<default>1.0</default>
<summary>Fire Scale</summary>
<description>The size of the fire.</description>
</key>
<key name="flame-3d-noise" type="b">
<default>false</default>
<summary>Fire 3D Noise</summary>
<description>Use a 3D noise for the fire.</description>
</key>
<key name="fire-color-1" type="s">
<default>"rgba(76, 51, 25, 0.0)"</default>
<summary>Fire Color 1</summary>
<description>The first color of the fire gradient.</description>
</key>
<key name="fire-color-2" type="s">
<default>"rgba(180, 55, 30, 0.7)"</default>
<summary>Fire Color 2</summary>
<description>The second color of the fire gradient.</description>
</key>
<key name="fire-color-3" type="s">
<default>"rgba(255, 76, 38, 0.9)"</default>
<summary>Fire Color 3</summary>
<description>The third color of the fire gradient.</description>
</key>
<key name="fire-color-4" type="s">
<default>"rgba(255, 166, 25, 1)"</default>
<summary>Fire Color 4</summary>
<description>The fourth color of the fire gradient.</description>
</key>
<key name="fire-color-5" type="s">
<default>"rgba(255, 255, 255, 1)"</default>
<summary>Fire Color 5</summary>
<description>The fifth color of the fire gradient.</description>
</key>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Glide Options -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<key name="glide-enable-effect" type="b">
<default>false</default>
<summary>Glide Enable Effect</summary>
<description>Use the glide effect.</description>
</key>
<key name="glide-animation-time" type="i">
<default>250</default>
<summary>Glide Animation Time</summary>
<description>The time the glide effect takes.</description>
</key>
<key name="glide-scale" type="d">
<default>0.95</default>
<summary>Glide Scale</summary>
<description>The scale of the window.</description>
</key>
<key name="glide-squish" type="d">
<default>0.15</default>
<summary>Glide Squish</summary>
<description>The amount of squishing.</description>
</key>
<key name="glide-tilt" type="d">
<default>-0.3</default>
<summary>Glide Tilt</summary>
<description>The amount of tilting.</description>
</key>
<key name="glide-shift" type="d">
<default>-0.05</default>
<summary>Glide Shift</summary>
<description>The amount of shifting.</description>
</key>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Matrix Options -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<key name="matrix-enable-effect" type="b">
<default>false</default>
<summary>Matrix Enable Effect</summary>
<description>Use the matrix effect.</description>
</key>
<key name="matrix-animation-time" type="i">
<default>1500</default>
<summary>Matrix Animation Time</summary>
<description>The time the matrix effect takes.</description>
</key>
<key name="matrix-scale" type="i">
<default>20</default>
<summary>Matrix Scale</summary>
<description>The size of the matrix letters.</description>
</key>
<key name="matrix-randomness" type="d">
<default>1.0</default>
<summary>Matrix Randomness</summary>
<description>The randomness of the matrix effect.</description>
</key>
<key name="matrix-tip-color" type="s">
<default>"rgb(255, 255, 255)"</default>
<summary>Matrix Tip Color</summary>
<description>The color of the matrix trail tips.</description>
</key>
<key name="matrix-trail-color" type="s">
<default>"rgb(25, 255, 89)"</default>
<summary>Matrix Trail Color</summary>
<description>The color matrix trails.</description>
</key>
<key name="matrix-overshoot" type="d">
<default>0.25</default>
<summary>Matrix Overshoot</summary>
<description>The vertical overshooting of the matrix effect.</description>
</key>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- TV Effect Options -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<key name="tv-enable-effect" type="b">
<default>false</default>
<summary>TV Enable Effect</summary>
<description>Use the tv effect.</description>
</key>
<key name="tv-animation-time" type="i">
<default>400</default>
<summary>TV Animation Time</summary>
<description>The time the tv effect takes.</description>
</key>
<key name="tv-effect-color" type="s">
<default>"rgb(255, 255, 255)"</default>
<summary>TV Effect Color</summary>
<description>The color of the TV effect.</description>
</key>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- T-Rex Attack Options -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<key name="trex-enable-effect" type="b">
<default>false</default>
<summary>T-Rex Enable Effect</summary>
<description>Use the trex effect.</description>
</key>
<key name="trex-animation-time" type="i">
<default>1000</default>
<summary>T-Rex Animation Time</summary>
<description>The time the trex effect takes.</description>
</key>
<key name="claw-scratch-color" type="s">
<default>"rgb(170, 0, 0)"</default>
<summary>Claw Scratch Color</summary>
<description>The color of the claw scratches.</description>
</key>
<key name="claw-scratch-scale" type="d">
<default>1.0</default>
<summary>Claw Scratch Scale</summary>
<description>Size of the claw scratches.</description>
</key>
<key name="claw-scratch-warp" type="d">
<default>0.15</default>
<summary>Claw Scratch Warp</summary>
<description>Intensity of the claw scratch warp effect.</description>
</key>
<key name="claw-scratch-count" type="i">
<default>5</default>
<summary>Claw Scratch Count</summary>
<description>Number of claw scratches drawn on top of each other.</description>
</key>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Hexagon Options -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<key name="hexagon-enable-effect" type="b">
<default>false</default>
<summary>Hexagon Enable Effect</summary>
<description>Use the Hexagon effect.</description>
</key>
<key name="hexagon-animation-time" type="i">
<default>1500</default>
<summary>Hexagon Animation Time</summary>
<description>The time the Hexagon effect takes.</description>
</key>
<key name="hexagon-scale" type="d">
<default>3.0</default>
<summary>Hexagon Scale</summary>
<description>The size of the effect.</description>
</key>
<key name="hexagon-line-width" type="d">
<default>2.0</default>
<summary>Hexagon Line Width</summary>
<description>The width of the lines.</description>
</key>
<key name="hexagon-line-color" type="s">
<default>"rgba(200, 255, 255, 0.5)"</default>
<summary>Hexagon Line Color</summary>
<description>The color of the lines.</description>
</key>
<key name="hexagon-glow-color" type="s">
<default>"rgba(20, 80, 255, 0.5)"</default>
<summary>Hexagon Glow Color</summary>
<description>The color of the glow effect.</description>
</key>
<key name="hexagon-additive-blending" type="b">
<default>true</default>
<summary>Hexagon Additive Blending</summary>
<description>Use additive blending for the line and the glow.</description>
</key>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Incinerate Options -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<key name="incinerate-enable-effect" type="b">
<default>false</default>
<summary>Incinerate Enable Effect</summary>
<description>Use the Incinerate effect.</description>
</key>
<key name="incinerate-animation-time" type="i">
<default>2000</default>
<summary>Incinerate Animation Time</summary>
<description>The time the Incinerate effect takes.</description>
</key>
<key name="incinerate-scale" type="d">
<default>1.0</default>
<summary>Incinerate Scale</summary>
<description>The scale of the effect.</description>
</key>
<key name="incinerate-turbulence" type="d">
<default>0.3</default>
<summary>Incinerate Turbulence</summary>
<description>The turbulence of the effect.</description>
</key>
<key name="incinerate-color" type="s">
<default>"rgb(255, 180, 127)"</default>
<summary>Incinerate Color</summary>
<description>The color of the effect.</description>
</key>
<key name="incinerate-use-pointer" type="b">
<default>true</default>
<summary>Incinerate Use Pointer</summary>
<description>Use the pointer location for the incinerate effect.</description>
</key>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Energize A Options -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<key name="energize-a-enable-effect" type="b">
<default>false</default>
<summary>Energize A Enable Effect</summary>
<description>Use the Energize A effect.</description>
</key>
<key name="energize-a-animation-time" type="i">
<default>2000</default>
<summary>Energize A Animation Time</summary>
<description>The time the Energize A effect takes.</description>
</key>
<key name="energize-a-scale" type="d">
<default>1.0</default>
<summary>Energize A Scale</summary>
<description>The size of the effect.</description>
</key>
<key name="energize-a-color" type="s">
<default>"rgb(255, 200, 50)"</default>
<summary>Energize A Color</summary>
<description>The color of the effect.</description>
</key>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Energize B Options -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<key name="energize-b-enable-effect" type="b">
<default>false</default>
<summary>Energize B Enable Effect</summary>
<description>Use the Energize B effect.</description>
</key>
<key name="energize-b-animation-time" type="i">
<default>1000</default>
<summary>Energize B Animation Time</summary>
<description>The time the Energize B effect takes.</description>
</key>
<key name="energize-b-scale" type="d">
<default>1.0</default>
<summary>Energize B Scale</summary>
<description>The size of the effect.</description>
</key>
<key name="energize-b-color" type="s">
<default>"rgb(160, 180, 255)"</default>
<summary>Energize B Color</summary>
<description>The color of the effect.</description>
</key>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Glitch Options -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<key name="glitch-enable-effect" type="b">
<default>false</default>
<summary>Glitch Enable Effect</summary>
<description>Use the Glitch effect.</description>
</key>
<key name="glitch-animation-time" type="i">
<default>750</default>
<summary>Glitch Animation Time</summary>
<description>The time the Glitch effect takes.</description>
</key>
<key name="glitch-scale" type="d">
<default>1.0</default>
<summary>Glitch Scale</summary>
<description>The size of the effect.</description>
</key>
<key name="glitch-strength" type="d">
<default>2.0</default>
<summary>Glitch Strength</summary>
<description>The intensity of the effect.</description>
</key>
<key name="glitch-speed" type="d">
<default>2.0</default>
<summary>Glitch Speed</summary>
<description>The speed of the effect.</description>
</key>
<key name="glitch-color" type="s">
<default>"rgb(100, 160, 255)"</default>
<summary>Glitch Color</summary>
<description>The color of the effect.</description>
</key>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Wisps Effect Options -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<key name="wisps-enable-effect" type="b">
<default>false</default>
<summary>Wisps Enable Effect</summary>
<description>Use the wisps effect.</description>
</key>
<key name="wisps-animation-time" type="i">
<default>1500</default>
<summary>Wisps Animation Time</summary>
<description>The time the wisps effect takes.</description>
</key>
<key name="wisps-scale" type="d">
<default>1.0</default>
<summary>Wisps Scale</summary>
<description>The size of the wisps.</description>
</key>
<key name="wisps-color" type="s">
<default>"rgb(255, 100, 200)"</default>
<summary>Wisps Effect Color</summary>
<description>The color of the wisps effect.</description>
</key>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Broken Glass Effect Options -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<key name="broken-glass-enable-effect" type="b">
<default>false</default>
<summary>Broken Glass Enable Effect</summary>
<description>Use the broken glass effect.</description>
</key>
<key name="broken-glass-animation-time" type="i">
<default>1000</default>
<summary>Broken Glass Animation Time</summary>
<description>The time the broken glass effect takes.</description>
</key>
<key name="broken-glass-scale" type="d">
<default>1.0</default>
<summary>Broken Glass Scale</summary>
<description>The size of the broken glass effect.</description>
</key>
<key name="broken-glass-gravity" type="d">
<default>-1.0</default>
<summary>Broken Glass Gravity</summary>
<description>The gravity of the broken glass effect.</description>
</key>
<key name="broken-glass-blow-force" type="d">
<default>0.5</default>
<summary>Broken Glass Blow Force</summary>
<description>The blow force of the broken glass effect.</description>
</key>
<key name="broken-glass-use-pointer" type="b">
<default>false</default>
<summary>Broken Glass Use Pointer</summary>
<description>Use the pointer location for the broken glass effect.</description>
</key>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Portal Options -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<key name="portal-enable-effect" type="b">
<default>false</default>
<summary>Portal Enable Effect</summary>
<description>Use the Portal effect.</description>
</key>
<key name="portal-animation-time" type="i">
<default>1250</default>
<summary>Portal Animation Time</summary>
<description>The time the Portal effect takes.</description>
</key>
<key name="portal-color" type="s">
<default>"rgb(121, 233, 24)"</default>
<summary>Portal Color</summary>
<description>The color of the effect.</description>
</key>
<key name="portal-rotation-speed" type="d">
<default>0.3</default>
<summary>Portal Rotation Speed</summary>
<description>The angular speed of the portal.</description>
</key>
<key name="portal-whirling" type="d">
<default>1.0</default>
<summary>Portal Whirling</summary>
<description>The amount of distortion.</description>
</key>
<key name="portal-details" type="d">
<default>15.0</default>
<summary>Portal Details</summary>
<description>The amount of details in the portal.</description>
</key>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Snap of Disintegration Effect Options -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<key name="snap-enable-effect" type="b">
<default>false</default>
<summary>Snap Enable Effect</summary>
<description>Use the snap effect.</description>
</key>
<key name="snap-animation-time" type="i">
<default>1500</default>
<summary>Snap Animation Time</summary>
<description>The time the snap effect takes.</description>
</key>
<key name="snap-scale" type="d">
<default>3.0</default>
<summary>Snap Scale</summary>
<description>The size of the snap effect.</description>
</key>
<key name="snap-color" type="s">
<default>"rgb(50, 40, 35)"</default>
<summary>Snap Effect Color</summary>
<description>The color of the dust.</description>
</key>
</schema>
</schemalist>
+12 -12
View File
@@ -122,11 +122,11 @@ var Fire = class {
// The fire-gradient-reset button needs to be bound explicitly.
dialog.getBuilder().get_object('reset-fire-colors').connect('clicked', () => {
dialog.getSettings().reset('fire-color-1');
dialog.getSettings().reset('fire-color-2');
dialog.getSettings().reset('fire-color-3');
dialog.getSettings().reset('fire-color-4');
dialog.getSettings().reset('fire-color-5');
dialog.getProfileSettings().reset('fire-color-1');
dialog.getProfileSettings().reset('fire-color-2');
dialog.getProfileSettings().reset('fire-color-3');
dialog.getProfileSettings().reset('fire-color-4');
dialog.getProfileSettings().reset('fire-color-5');
});
// Initialize the fire-preset dropdown.
@@ -215,13 +215,13 @@ var Fire = class {
// Load the preset on activation.
action.connect('activate', () => {
dialog.getSettings().set_double('flame-movement-speed', preset.speed);
dialog.getSettings().set_double('flame-scale', preset.scale);
dialog.getSettings().set_string('fire-color-1', preset.color1);
dialog.getSettings().set_string('fire-color-2', preset.color2);
dialog.getSettings().set_string('fire-color-3', preset.color3);
dialog.getSettings().set_string('fire-color-4', preset.color4);
dialog.getSettings().set_string('fire-color-5', preset.color5);
dialog.getProfileSettings().set_double('flame-movement-speed', preset.speed);
dialog.getProfileSettings().set_double('flame-scale', preset.scale);
dialog.getProfileSettings().set_string('fire-color-1', preset.color1);
dialog.getProfileSettings().set_string('fire-color-2', preset.color2);
dialog.getProfileSettings().set_string('fire-color-3', preset.color3);
dialog.getProfileSettings().set_string('fire-color-4', preset.color4);
dialog.getProfileSettings().set_string('fire-color-5', preset.color5);
});
group.add_action(action);
+73 -2
View File
@@ -14,8 +14,8 @@
'use strict';
const {Gtk, Gio} = imports.gi;
const ByteArray = imports.byteArray;
const {Gtk, Gio, GLib} = imports.gi;
const ByteArray = imports.byteArray;
// libadwaita is available starting with GNOME Shell 42.
let Adw = null;
@@ -107,4 +107,75 @@ function shellVersionIsAtLeast(major, minor) {
function getStringResource(path) {
const data = Gio.resources_lookup_data(path, 0);
return ByteArray.toString(ByteArray.fromGBytes(data));
}
function createProfile() {
const path =
GLib.get_user_config_dir() + `/burn-my-windows/profiles/${GLib.get_real_time()}.conf`;
const file = Gio.File.new_for_path(path);
if (!file.get_parent().query_exists(null)) {
file.get_parent().make_directory_with_parents(null);
}
file.create(Gio.FileCreateFlags.NONE, null);
return path;
}
function listProfiles() {
const profileDir =
Gio.File.new_for_path(GLib.get_user_config_dir() + '/burn-my-windows/profiles');
if (!profileDir.query_exists(null)) {
return [];
}
const files =
profileDir.enumerate_children('standard::*', Gio.FileQueryInfoFlags.NONE, null);
let profiles = [];
while (true) {
const presetInfo = files.next_file(null);
if (presetInfo == null) {
break;
}
if (presetInfo.get_file_type() == Gio.FileType.REGULAR) {
const suffixPos = presetInfo.get_display_name().indexOf('.conf');
if (suffixPos > 0) {
profiles.push(profileDir.get_child(presetInfo.get_name()).get_path());
}
}
}
return profiles;
}
// Based on
// https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/main/js/misc/extensionUtils.js#L213
function getProfileSettings(profilePath) {
// Expect USER extensions to have a schemas/ subfolder, otherwise assume a
// SYSTEM extension that has been installed in the same prefix as the shell
const schemaDir = Me.dir.get_child('schemas');
let source;
if (schemaDir.query_exists(null)) {
source = Gio.SettingsSchemaSource.new_from_directory(
schemaDir.get_path(), Gio.SettingsSchemaSource.get_default(), false);
} else {
source = Gio.SettingsSchemaSource.get_default();
}
const schema =
source.lookup('org.gnome.shell.extensions.burn-my-windows-profile', true);
const backend =
Gio.keyfile_settings_backend_new(profilePath, '/org/gnome/shell/extensions/', null);
return new Gio.Settings({settings_schema: schema, backend: backend});
}