Compare commits

...

82 Commits

Author SHA1 Message Date
Simon Schneegans 1a1e952804 📝 Set release date
Deploy / Extension Bundle (push) Has been cancelled
2022-04-06 07:30:45 +02:00
Heimen Stoffels de5ddc8622 🌐 Translated using Weblate (Dutch) 2022-04-05 21:40:11 +02:00
Simon Schneegans 08ffdef229 🌐 Translated using Weblate (German) 2022-04-05 21:40:11 +02:00
Hosted Weblate d7e56483c0 🌐 Update translation files 2022-04-05 21:40:11 +02:00
Simon Schneegans 6a2f72f406 🔧 Update test references 2022-04-05 20:55:36 +02:00
Simon Schneegans 9809d7b0d6 🔧 Update test reference files 2022-04-05 19:46:00 +02:00
Simon Schneegans 359f61e1f4 🌐 Update translation template 2022-04-05 19:45:23 +02:00
Simon Schneegans 74a3cc281d 📝 Add hexagon effect to README 2022-04-05 19:45:07 +02:00
Simon Schneegans 26ac1dce6c 📝 Add changelog entry 2022-04-05 19:44:52 +02:00
Simon Schneegans 82be8aa32f 🎉 Add hexagon effect 2022-04-05 19:44:39 +02:00
Simon Schneegans bebe7d95b0 🔧 Support alpha values for snap color 2022-04-05 19:44:02 +02:00
Simon Schneegans 1b3d76d35e 📝 Add Snap of Disintegration to README.md 2022-04-03 13:18:26 +02:00
Simon Schneegans 2282f44dfa 🔧 Update reference images 2022-04-03 13:10:17 +02:00
Simon Schneegans dc849112b8 🔧 Improve optics of Snap of Disintegration 2022-04-03 13:06:09 +02:00
Simon Schneegans b6a419a0d7 🔧 Tweak Apparition defaults 2022-04-02 13:52:19 +02:00
Simon Schneegans e802f41d44 🔧 Apparition is not available on GNOME 3.36 2022-04-02 13:49:07 +02:00
Simon Schneegans b29598643d 📝 Add Apparition to README 2022-04-02 13:48:41 +02:00
Егор Ермаков eb4b6d72e3 🌐 Translated using Weblate (Russian) 2022-04-01 21:24:16 +02:00
Simon Schneegans d38e6b6e7a 🔧 Update reference images 2022-04-01 21:18:56 +02:00
Simon Schneegans ba52acebc9 📝 Update gif creation note 2022-04-01 21:17:04 +02:00
Simon Schneegans b6a3e5d941 🎉 Add Apparition effect 2022-04-01 21:10:02 +02:00
Simon Schneegans f11d36d295 📝 Add changelog entry 2022-03-31 21:40:17 +02:00
Simon Schneegans cf1721bae1 🔀 Merge pull request #121 from Schneegans/feature/thanos 2022-03-31 21:39:06 +02:00
Simon Schneegans 0603540315 🔧 Update references 2022-03-31 21:33:48 +02:00
Simon Schneegans 4de12d426c 🔧 Obey test mode 2022-03-31 21:25:32 +02:00
Simon Schneegans c8cf476501 🪲 Fix animation time settings for TV effect 2022-03-31 21:08:12 +02:00
Simon Schneegans a7aef913fc 📝 Add changelog entry 2022-03-31 21:07:42 +02:00
Simon Schneegans 7d0a75cd59 🪲 Fix shatter-from-pointer-when-openeing-windows 2022-03-31 21:07:33 +02:00
Simon Schneegans a166072168 🔧 Finalize Thanos effect 2022-03-31 21:04:01 +02:00
Simon Schneegans 47f8222349 Merge branch 'main' into feature/thanos 2022-03-31 08:35:07 +02:00
Simon Schneegans 4942418120 🎉 Bump version number 2022-03-29 20:29:32 +02:00
ANIGO R. (AR) a0d087be33 🌐 Translated using Weblate (Russian)
Deploy / Extension Bundle (push) Has been cancelled
2022-03-29 20:28:04 +02:00
ANIGO R. (AR) dd80db09e9 🌐 Added translation using Weblate (Russian) 2022-03-29 20:28:04 +02:00
Simon Schneegans 653d680347 💞 Update credits 2022-03-29 20:26:41 +02:00
Simon Schneegans ee584ab15e 📝 Add changelog entry 2022-03-29 20:26:25 +02:00
Simon Schneegans 82e2738f33 💞 Add new sponsor 2022-03-29 17:02:49 +02:00
Simon Schneegans 45d52842cf 📝 Add changelog entries 2022-03-29 11:57:28 +02:00
Simon Schneegans f738f648d8 🔧 Resolve #115 2022-03-29 11:54:39 +02:00
Simon Schneegans 0cf53c5a5d 🪲 Fix #118 (again) 2022-03-29 11:53:54 +02:00
Simon Schneegans 6f5bcc6681 🎉 Bump version number 2022-03-27 13:49:39 +02:00
Simon Schneegans 1a84ad337d 🔥 Undo commit
Deploy / Extension Bundle (push) Has been cancelled
2022-03-27 13:48:08 +02:00
Simon Schneegans 6a003f8bfb 📝 Add changelog entry 2022-03-27 13:45:07 +02:00
Simon Schneegans adc906006b 💞 Update credits 2022-03-27 13:44:17 +02:00
Simon Schneegans 9b46b9b009 📝 Set release date 2022-03-27 13:38:08 +02:00
Simon Schneegans d24dc6030d 📝 Add changelog entry 2022-03-27 13:23:23 +02:00
Simon Schneegans 26e4a32fe4 🪲 Fix version check 2022-03-27 13:23:12 +02:00
Simon Schneegans 376a3899e9 🔥 Remove liberapay donation option 2022-03-27 07:32:46 +02:00
Simon Schneegans 486f6b4c74 🔧 Use new version of dynamic badges action 2022-03-27 06:56:10 +02:00
Muha Aliss c43579974d 🌐 Translated using Weblate (Turkish) 2022-03-21 07:25:53 +01:00
Muha Aliss fbd02bb22c 🌐 Added translation using Weblate (Turkish) 2022-03-21 07:25:53 +01:00
Adolfo Jayme Barrientos beddd689c7 🌐 Translated using Weblate (Spanish) 2022-03-16 10:54:50 +01:00
Simon Schneegans 77310f9e65 ✨ Tweak clang-format style 2022-03-04 20:39:12 +01:00
刘韬 28c1cb6d72 🌐 Translated using Weblate (Chinese (Simplified)) 2022-03-04 05:04:22 +01:00
刘韬 9bdcea1dea 🌐 Translated using Weblate (Chinese (Simplified)) 2022-03-04 05:04:22 +01:00
刘韬 5e737ffd3a 🌐 Added translation using Weblate (Chinese (Simplified)) 2022-03-04 05:04:22 +01:00
Simon Schneegans 474f6cff25 🔀 Merge pull request #113 from Schneegans/feature/advanced-ci 2022-03-04 04:53:36 +01:00
Simon Schneegans 35c91cf925 🔧 Fix shellcheck issue [run-ci] 2022-03-03 21:31:51 +01:00
Simon Schneegans 0facae304b 🔧 Use imagemagick for comparisons [run-ci] 2022-03-03 21:25:47 +01:00
Simon Schneegans 31fa0f54bd 📝 Fix comment 2022-03-03 21:25:25 +01:00
Simon Schneegans 6c2f9d1553 🎉 Add reference generator script [run-ci] 2022-03-03 20:20:57 +01:00
Simon Schneegans 81a0e18c79 🔧 Tweak fuzzyness 2022-03-03 20:20:38 +01:00
Simon Schneegans 3caf2a176d 🎉 Add advanced CI tests [run-ci] 2022-03-03 20:01:37 +01:00
Simon Schneegans b48b6bb39b 📝 Add changelog entry 2022-03-03 20:00:36 +01:00
Simon Schneegans 69aadfd643 🎉 Add test mode 2022-03-03 20:00:24 +01:00
Simon Schneegans 59c01999b2 🔧 Update action version 2022-03-01 20:45:55 +01:00
Simon Schneegans c431437c34 🔧 Use more generic makefile 2022-03-01 16:05:09 +01:00
Simon Schneegans 312be215a0 🎉 Run tests on GNOME 42 as well 2022-02-28 21:21:33 +01:00
albanobattistella e1fcfb5d25 🌐 Translated using Weblate (Italian) 2022-02-28 20:04:14 +01:00
Simon Schneegans 4410aeac3b 📝 Add video teaser 2022-02-27 21:31:17 +01:00
Simon Schneegans f77aeded5e 🎨 Add teaser image 2022-02-27 21:30:55 +01:00
Heimen Stoffels 1d0dd3e8da 🌐 Translated using Weblate (Dutch) 2022-02-23 07:44:05 +01:00
Ulices cc916886c5 🌐 Translated using Weblate (Spanish) 2022-02-23 07:44:05 +01:00
albanobattistella 41648f2496 🌐 Translated using Weblate (Italian) 2022-02-23 07:44:05 +01:00
Nathan 8b79995723 🌐 Translated using Weblate (French) 2022-02-23 07:44:05 +01:00
Simon Schneegans f35cda20a8 📝 Set release date 2022-02-19 13:20:16 +01:00
Simon Schneegans 73c237aaa4 🎉 Bump version number 2022-02-19 13:19:40 +01:00
Simon Schneegans 638613a190 🔧 Tweak effect 2022-01-24 11:15:17 +01:00
Simon Schneegans 9b59dd942c 🔧 Tweak alpha blending 2022-01-23 20:56:27 +01:00
Simon Schneegans 20dce532ae 🔧 Port to newest version 2022-01-23 16:47:31 +01:00
Simon Schneegans 8e53dc6117 Merge branch 'main' into feature/thanos 2022-01-23 16:45:05 +01:00
Simon Schneegans 4e29c751ed 🎉 Add initial version of a thanos snap 2022-01-22 20:09:56 +01:00
Simon Schneegans 58a8213233 🎨 Add dust texture 2022-01-22 20:09:21 +01:00
251 changed files with 59668 additions and 534 deletions
+2
View File
@@ -1,4 +1,6 @@
BasedOnStyle: Google
AlignConsecutiveAssignments: true
AlignAfterOpenBracket: Align
ContinuationIndentWidth: 2
KeepEmptyLinesAtTheStartOfBlocks: true
ColumnLimit: 90
+1 -1
View File
@@ -6,7 +6,7 @@ open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: Schneegans
liberapay: # Schneegans
issuehunt: # Replace with a single IssueHunt username
otechie: # Replace with a single Otechie username
custom: ['https://www.paypal.com/donate/?hosted_button_id=3F7UFL8KLVPXE']
+2 -2
View File
@@ -19,7 +19,7 @@ jobs:
echo "CODE_LINES=$(scripts/cloc.sh --loc)" >> $GITHUB_ENV
echo "COMMENT_LINES=$(scripts/cloc.sh --percentage)%" >> $GITHUB_ENV
- name: Create Lines-of-Code-Badge
uses: schneegans/dynamic-badges-action@v1.1.0
uses: schneegans/dynamic-badges-action@v1.2.0
with:
auth: ${{ secrets.GIST_SECRET }}
gistID: 8cf45f23253ff09b21196e7271378762
@@ -29,7 +29,7 @@ jobs:
color: lightgrey
labelColor: 303030
- name: Create Comments-Badge
uses: schneegans/dynamic-badges-action@v1.1.0
uses: schneegans/dynamic-badges-action@v1.2.0
with:
auth: ${{ secrets.GIST_SECRET }}
gistID: 8cf45f23253ff09b21196e7271378762
+1
View File
@@ -84,6 +84,7 @@ jobs:
- '33'
- '34'
- '35'
- '36'
session:
- 'gnome-xsession'
- 'gnome-wayland-nested'
+2 -3
View File
@@ -6,7 +6,7 @@ on:
- '**'
jobs:
source_code:
extension_bundle:
name: Extension Bundle
runs-on: ubuntu-latest
steps:
@@ -20,10 +20,9 @@ jobs:
run: |
make zip
- name: Upload Release
uses: svenstaro/upload-release-action@v1-release
uses: svenstaro/upload-release-action@2.2.1
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: burn-my-windows@schneegans.github.com.zip
asset_name: burn-my-windows@schneegans.github.com.zip
tag: ${{ github.ref }}
overwrite: true
+86 -49
View File
@@ -1,74 +1,111 @@
SHELL := /bin/bash
JS_FILES = $(shell find -type f -and \( -name "*.js" \))
UI_FILES = $(shell find -type f -and \( -name "*.ui" \))
# We define these here to make the makefile easier to port to another extension.
NAME := burn-my-windows
DOMAIN := schneegans.github.com
ZIP_NAME := $(NAME)@$(DOMAIN).zip
# Some of the recipes below depend on some of these files.
JS_FILES = $(shell find -type f -and \( -name "*.js" \))
UI_FILES = $(shell find -type f -and \( -name "*.ui" \))
RESOURCE_FILES = $(shell find resources -mindepth 2 -type f)
LOCALES_PO = $(wildcard po/*.po)
LOCALES_MO = $(patsubst po/%.po,locale/%/LC_MESSAGES/$(NAME).mo,$(LOCALES_PO))
LOCALES_PO = $(wildcard po/*.po)
LOCALES_MO = $(patsubst po/%.po,locale/%/LC_MESSAGES/burn-my-windows.mo,$(LOCALES_PO))
# These files will be included in the extension zip file.
ZIP_CONTENT = $(JS_FILES) $(LOCALES_MO) resources/$(NAME).gresource \
schemas/gschemas.compiled metadata.json LICENSE
.PHONY: zip install uninstall all-po pot clean
# These seven recipes can be invoked by the user.
.PHONY: zip install uninstall pot clean test references
zip: burn-my-windows@schneegans.github.com.zip
# The zip recipes only bundles the extension without installing it.
zip: $(ZIP_NAME)
install: burn-my-windows@schneegans.github.com.zip
gnome-extensions install "burn-my-windows@schneegans.github.com.zip" --force
# The install recipes creates the extension zip and installs it.
install: $(ZIP_NAME)
gnome-extensions install "$(ZIP_NAME)" --force
@echo "Extension installed successfully! Now restart the Shell ('Alt'+'F2', then 'r')."
# This uninstalls the previously installed extension.
uninstall:
gnome-extensions uninstall "burn-my-windows@schneegans.github.com"
all-po: $(LOCALES_PO)
gnome-extensions uninstall "$(NAME)@$(DOMAIN)"
# Use gettext to generate a translation template file.
pot: $(JS_FILES) $(UI_FILES)
@echo "Generating 'burn-my-windows.pot'..."
@echo "Generating '$(NAME).pot'..."
@xgettext --from-code=UTF-8 \
--add-comments=Translators \
--copyright-holder="Simon Schneegans" \
--package-name="Burn-My-Windows" \
--output=po/burn-my-windows.pot \
$(JS_FILES) $(UI_FILES)
--add-comments=Translators \
--copyright-holder="Simon Schneegans" \
--package-name="$(NAME)" \
--output=po/$(NAME).pot \
$(JS_FILES) $(UI_FILES)
# This runs several tests in containerized versions of GNOME Shell.
test:
@ for version in 32 33 34 35 36 ; do \
for session in "gnome-xsession" "gnome-wayland-nested" ; do \
echo ; \
echo "Running Tests on Fedora $$version ($$session)." ; \
echo ; \
./tests/run-test.sh -s $$session -v $$version ; \
done \
done
# This re-generates all reference images required by the tests.
references:
@ for version in 32 33 34 35 36 ; do \
for session in "gnome-xsession" "gnome-wayland-nested" ; do \
echo ; \
echo "Generating References for Fedora $$version ($$session)." ; \
echo ; \
./tests/generate-references.sh -s $$session -v $$version ; \
done \
done
# This removes all temporary files created with the other recipes.
clean:
rm -rf \
burn-my-windows@schneegans.github.com.zip \
resources/burn-my-windows.gresource \
resources/burn-my-windows.gresource.xml \
schemas/gschemas.compiled \
locale \
ui/*.ui~ \
po/*.po~
rm -rf $(ZIP_NAME) \
resources/$(NAME).gresource \
resources/$(NAME).gresource.xml \
schemas/gschemas.compiled \
locale
burn-my-windows@schneegans.github.com.zip: schemas/gschemas.compiled resources/burn-my-windows.gresource $(JS_FILES) $(LOCALES_MO)
# This bundles the extension and checks whether it is small enough to be uploaded to
# extensions.gnome.org. We do not use "gnome-extensions pack" for this, as this is not
# readily available on the GitHub runners.
$(ZIP_NAME): $(ZIP_CONTENT)
@echo "Packing zip file..."
@rm --force burn-my-windows@schneegans.github.com.zip
@zip -r burn-my-windows@schneegans.github.com.zip -- *.js src/*.js resources/burn-my-windows.gresource schemas/gschemas.compiled $(LOCALES_MO) metadata.json LICENSE
@rm --force $(ZIP_NAME)
@zip $(ZIP_NAME) -- $(ZIP_CONTENT)
@#Check if the zip size is too big to be uploaded
@if [[ "$$(stat -c %s burn-my-windows@schneegans.github.com.zip)" -gt 4096000 ]]; then \
echo "ERROR! The extension is too big to be uploaded to the extensions website, keep it smaller than 4096 KB!"; exit 1; \
fi
@SIZE=$$(unzip -Zt $(ZIP_NAME) | awk '{print $$3}') ; \
if [[ $$SIZE -gt 5242880 ]]; then \
echo "ERROR! The extension is too big to be uploaded to" \
"the extensions website, keep it smaller than 5 MB!"; \
exit 1; \
fi
resources/burn-my-windows.gresource: resources/burn-my-windows.gresource.xml
@echo "Compiling resources..."
@glib-compile-resources --sourcedir="resources" --generate resources/burn-my-windows.gresource.xml
resources/burn-my-windows.gresource.xml: $(RESOURCE_FILES)
@echo "Creating resources xml..."
@FILES=$$(find "resources" -mindepth 2 -type f -printf "%P\n" | xargs -i echo "<file>{}</file>") ; \
echo "<?xml version='1.0' encoding='UTF-8'?><gresources><gresource> $$FILES </gresource></gresources>" > resources/burn-my-windows.gresource.xml
schemas/gschemas.compiled: schemas/org.gnome.shell.extensions.burn-my-windows.gschema.xml
# Compiles the gschemas.compiled file from the gschema.xml file.
schemas/gschemas.compiled: schemas/org.gnome.shell.extensions.$(NAME).gschema.xml
@echo "Compiling schemas..."
@glib-compile-schemas schemas
locale/%/LC_MESSAGES/burn-my-windows.mo: po/%.po
# Compiles the gresource file from the gresources.xml.
resources/$(NAME).gresource: resources/$(NAME).gresource.xml
@echo "Compiling resources..."
@glib-compile-resources --sourcedir="resources" --generate resources/$(NAME).gresource.xml
# Generates the gresources.xml based on all files in the resources subdirectory.
resources/$(NAME).gresource.xml: $(RESOURCE_FILES)
@echo "Creating resources xml..."
@FILES=$$(find "resources" -mindepth 2 -type f -printf "%P\n" | xargs -i echo "<file>{}</file>") ; \
echo "<?xml version='1.0' encoding='UTF-8'?><gresources><gresource> $$FILES </gresource></gresources>" \
> resources/$(NAME).gresource.xml
# Compiles all *.po files to *.mo files.
locale/%/LC_MESSAGES/$(NAME).mo: po/%.po
@echo "Compiling $@"
@mkdir -p locale/$*/LC_MESSAGES
@msgfmt -c -o $@ $<
po/%.po:
@echo "Updating $@"
msgmerge --previous --update $@ po/burn-my-windows.pot
@# Output translation progress
@msgfmt --check --verbose --output-file=/dev/null $@
+8
View File
@@ -1,3 +1,7 @@
<p align="center">
<a href="https://www.youtube.com/watch?v=L2aaNF_rPHo"><img src ="docs/pics/teaser.jpg" /></a>
</p>
<h1 align="center">🔥 Set GNOME Shell on Fire!</h1>
<p align="center">
@@ -17,11 +21,14 @@ For a list of things changed in previous releases, you can have a look at the [c
Effect | Preview
-----|--------
**Apparition** <br> This effect hides your windows by violently sucking them into the void of magic! <br><br> _Only available in GNOME Shell 3.38+_ | <img src ="docs/pics/apparition.gif" />
**Broken Glass** <br> Shatter your windows into a shower sharp shards! This effect can be configured so that the shards fly away from your mouse pointer position! <br><br> _Only available in GNOME Shell 40+_ | <img src ="docs/pics/glass.gif" />
**Energize A** <br> Beam your windows away! | <img src ="docs/pics/energizeA.gif" />
**Energize B** <br> Using different transporter technology results in an alternative visual effect. | <img src ="docs/pics/energizeB.gif" />
**Fire** <br> The classic effect inspired by Compiz. However, this is implemented using a GLSL shader and not with a particle system like in the old days. | <img src ="docs/pics/fire.gif" />
**Hexagon** <br> With glowing lines and hexagon-shaped tiles, this effect looks very sci-fi. | <img src ="docs/pics/hexagon.gif" />
**Matrix** <br> Turn your windows into a shower of green letters! The color is actually configurable. <br><br> _Only available in GNOME Shell 40+_ | <img src ="docs/pics/matrix.gif" />
**Snap of Disintegration** <br> Dissolve your windows into a cloud of dust. <br><br> _Only available in GNOME Shell 40+_ | <img src ="docs/pics/snap.gif" />
**T-Rex Attack** <br> Destroy your windows with a series of violent slashes! <br><br> _Only available in GNOME Shell 40+_ | <img src ="docs/pics/trex.gif" />
**TV-Effect** <br> This is a very simple effect to demonstrate that this extension could also be used in a more professional environment. | <img src ="docs/pics/tv.gif" />
**Wisps** <br> Let your windows be carried away to the realm of dreams by these little fairies! | <img src ="docs/pics/wisps.gif" />
@@ -51,6 +58,7 @@ While [coding new features](docs/how-to-create-new-effects.md) or [translating t
<h3 align="center">🏅 Previous Sponsors and One-Time Donators</h3>
<p align="center">
<a href="https://github.com/MrTomRod">@MrTomRod</a><br>
Pouhiou<br>
DAPREMONT Christophe<br>
<a href="https://github.com/manero6">@manero6</a><br>
BIN
View File
Binary file not shown.
+54986
View File
File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 4.1 MiB

+58 -13
View File
@@ -1,8 +1,53 @@
# Changelog of the Burn-My-Windows Extension
## [Burn My Window 12](https://github.com/schneegans/Burn-My-Windows/releases/tag/v12)
## [Burn My Windows 15](https://github.com/schneegans/Burn-My-Windows/releases/tag/v15)
**Release Date:** TBD
**Release Date:** 2022-04-06
#### New Features
* **New Effect: Apparition.** This effect hides the window by violently sucking it into the void of magic. This is available only for GNOME Shell 3.38 and newer.
* **New Effect: Hexagon.** With glowing lines and hexagon-shaped tiles, this effect looks very sci-fi. This is available for GNOME Shell 3.36 and newer.
* **New Effect: Snap of Disintegration.** This was requested quite frequently! Dissolve your windows into a cloud of dust. This is available only for GNOME Shell 40 and newer.
#### Bug Fixes
* Disabled the buggy "Shatter from pointer" option of the Broken Glass effect when opening windows (it only makes sense for closing windows).
## [Burn My Windows 14](https://github.com/schneegans/Burn-My-Windows/releases/tag/v14)
**Release Date:** 2022-03-29
#### Enhancements
* Reduced the lower animation time limits for all effects to 100 ms. This should now allow for very snappy animations!
* A completely new Russian translation. Thank you, ANIGO R.!
#### Bug Fixes
* Fixed the version check for GNOME Shell `42.rc` (before it only worked on `42.alpha` and `42.beta`)
## [Burn My Windows 13](https://github.com/schneegans/Burn-My-Windows/releases/tag/v13)
**Release Date:** 2022-03-27
#### Enhancements
* The continuous integration tests have been significantly enhanced. Now, all window-open and window-close animations are visually tested on all supported GNOME versions and on X11 / Wayland (summing up to a total of 136 test cases).
* Many translation updates, including a completely new Turkish and Chinese translation. A BIG THANKS to all translators!
#### Other Changes
* Removed the Liberapay donation option as it does not work properly.
#### Bug Fixes
* Fixed the version check for GNOME Shell 42.
## [Burn My Windows 12](https://github.com/schneegans/Burn-My-Windows/releases/tag/v12)
**Release Date:** 2022-02-19
#### New Features
@@ -13,7 +58,7 @@
* Added [Liberapay](https://liberapay.com/Schneegans) to the sponsorship options.
## [Burn My Window 11](https://github.com/schneegans/Burn-My-Windows/releases/tag/v11)
## [Burn My Windows 11](https://github.com/schneegans/Burn-My-Windows/releases/tag/v11)
**Release Date:** 2022-02-03
@@ -38,7 +83,7 @@
* Fixed an issue which caused corrupted windows when trying to maximize windows while the window-open animation was still running (#82, #86, #91).
## [Burn My Window 10](https://github.com/schneegans/Burn-My-Windows/releases/tag/v10)
## [Burn My Windows 10](https://github.com/schneegans/Burn-My-Windows/releases/tag/v10)
**Release Date:** 2022-01-31
@@ -59,7 +104,7 @@
* The README now shows the current lines of code and the current comment percentage using my [dynamic-badges-action](https://github.com/Schneegans/dynamic-badges-action).
* **Add advanced CI tests:** For each commit to `main`, it is now tested whether the extension can be installed and if the preferences dialog can be shown on GNOME Shell 3.36, 3.38, 40, and 41. Both, X11 and Wayland are checked.
## [Burn My Window 9](https://github.com/schneegans/Burn-My-Windows/releases/tag/v9)
## [Burn My Windows 9](https://github.com/schneegans/Burn-My-Windows/releases/tag/v9)
**Release Date:** 2022-01-18
@@ -68,7 +113,7 @@
* Improved compatibility with [Show Application View When Workspace Empty ](https://extensions.gnome.org/extension/2036/show-application-view-when-workspace-empty/) (#54).
* Fixed a crash which happened when the window-close icon in the overview was clicked twice (#49).
## [Burn My Window 8](https://github.com/schneegans/Burn-My-Windows/releases/tag/v8)
## [Burn My Windows 8](https://github.com/schneegans/Burn-My-Windows/releases/tag/v8)
**Release Date:** 2022-01-17
@@ -94,7 +139,7 @@
* The extension now works even if GNOME Shell's animations are disabled globally.
## [Burn My Window 7](https://github.com/schneegans/Burn-My-Windows/releases/tag/v7)
## [Burn My Windows 7](https://github.com/schneegans/Burn-My-Windows/releases/tag/v7)
**Release Date:** 2022-01-03
@@ -108,7 +153,7 @@
* Resolve copyright issues by using a MIT-licensed noise implementation.
## [Burn My Window 6](https://github.com/schneegans/Burn-My-Windows/releases/tag/v6)
## [Burn My Windows 6](https://github.com/schneegans/Burn-My-Windows/releases/tag/v6)
**Release Date:** 2022-01-02
@@ -116,7 +161,7 @@
* Removed a debug log message.
## [Burn My Window 5](https://github.com/schneegans/Burn-My-Windows/releases/tag/v5)
## [Burn My Windows 5](https://github.com/schneegans/Burn-My-Windows/releases/tag/v5)
**Release Date:** 2022-01-02
@@ -134,7 +179,7 @@
* Fixed a bug which messed up the overview of GNOME Shell 3.36.
## [Burn My Window 4](https://github.com/schneegans/Burn-My-Windows/releases/tag/v4)
## [Burn My Windows 4](https://github.com/schneegans/Burn-My-Windows/releases/tag/v4)
**Release Date:** 2021-12-25
@@ -148,7 +193,7 @@
* Refactored the code a lot to make it easier to add new shader effects in the future.
* Tweaked timing of the fire shader. Previously, the fire became invisible quite quickly. Due to this new animation timing, the default animation time has been reduced to 1500 ms.
## [Burn My Window 3](https://github.com/schneegans/Burn-My-Windows/releases/tag/v3)
## [Burn My Windows 3](https://github.com/schneegans/Burn-My-Windows/releases/tag/v3)
**Release Date:** 2021-12-20
@@ -156,7 +201,7 @@
* Add support for GNOME 3.36 and GNOME 3.38.
## [Burn My Window 2](https://github.com/schneegans/Burn-My-Windows/releases/tag/v2)
## [Burn My Windows 2](https://github.com/schneegans/Burn-My-Windows/releases/tag/v2)
**Release Date:** 2021-12-16
@@ -166,7 +211,7 @@
* Added the possibility to adjust flame speed and scale.
* Added some fire presets.
## [Burn My Window 1](https://github.com/schneegans/Burn-My-Windows/releases/tag/v1)
## [Burn My Windows 1](https://github.com/schneegans/Burn-My-Windows/releases/tag/v1)
**Release Date:** 2021-12-14
+1 -1
View File
@@ -1,6 +1,6 @@
# Preview GIFs
The preview GIFs are recorded with OBS Studio and converted to a GIF with the following command:
The preview GIFs are recorded with OBS Studio at 1920x1080, cut to a length of exactly two seconds and converted to a GIF with the following command:
```bash
gifski --fps 30 -W 400 -H 225 -o effect.gif effect.mp4
Binary file not shown.

After

Width:  |  Height:  |  Size: 415 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 615 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 928 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 136 KiB

+38 -28
View File
@@ -33,11 +33,14 @@ const utils = Me.imports.src.utils;
// New effects must be registered here and in prefs.js.
const ALL_EFFECTS = [
Me.imports.src.Apparition.Apparition,
Me.imports.src.BrokenGlass.BrokenGlass,
Me.imports.src.EnergizeA.EnergizeA,
Me.imports.src.EnergizeB.EnergizeB,
Me.imports.src.Fire.Fire,
Me.imports.src.Hexagon.Hexagon,
Me.imports.src.Matrix.Matrix,
Me.imports.src.BrokenGlass.BrokenGlass,
Me.imports.src.SnapOfDisintegration.SnapOfDisintegration,
Me.imports.src.TRexAttack.TRexAttack,
Me.imports.src.TVEffect.TVEffect,
Me.imports.src.Wisps.Wisps,
@@ -101,26 +104,26 @@ class Extension {
// anyways, we override the actors ease() method once - the next time it will be
// called by the _mapWindow(), we will intercept it!
this._windowCreatedConnection =
global.display.connect('window-created', (d, metaWin) => {
let actor = metaWin.get_compositor_private();
global.display.connect('window-created', (d, metaWin) => {
let actor = metaWin.get_compositor_private();
const orig = actor.ease;
actor.ease = function(...params) {
orig.apply(actor, params);
actor.ease = orig;
const orig = actor.ease;
actor.ease = function(...params) {
orig.apply(actor, params);
actor.ease = orig;
// There are cases where the ease() is called prior to mapping the actor. If
// the actor is not yet mapped, we defer the effect creation.
if (actor.mapped) {
// There are cases where the ease() is called prior to mapping the actor. If
// the actor is not yet mapped, we defer the effect creation.
if (actor.mapped) {
extensionThis._setupEffect(actor, true);
} else {
const connectionID = actor.connect('notify::mapped', () => {
extensionThis._setupEffect(actor, true);
} else {
const connectionID = actor.connect('notify::mapped', () => {
extensionThis._setupEffect(actor, true);
actor.disconnect(connectionID);
});
}
};
});
actor.disconnect(connectionID);
});
}
};
});
// Some of the effects require that the window's actor is enlarged to provide a bigger
// canvas to draw the effects. Outside the overview we can simply increase the scale
@@ -324,8 +327,8 @@ class Extension {
// Only add effects to normal windows and dialog windows.
const isNormalWindow = actor.meta_window.window_type == Meta.WindowType.NORMAL;
const isDialogWindow =
actor.meta_window.window_type == Meta.WindowType.MODAL_DIALOG ||
actor.meta_window.window_type == Meta.WindowType.DIALOG;
actor.meta_window.window_type == Meta.WindowType.MODAL_DIALOG ||
actor.meta_window.window_type == Meta.WindowType.DIALOG;
if (!isNormalWindow && !isDialogWindow) {
return;
@@ -381,12 +384,17 @@ class Extension {
// ----------------------------------------------------------- tweak actor transitions
// If we are currently performing integration test, all animations are set to a fixed
// duration and show a fixed frame from the middle of the animation.
const testMode = this._settings.get_boolean('test-mode');
// The following is used to tweak the ongoing transitions of a window actor. Usually
// windows are faded in / out scaled up / down slightly by GNOME Shell. Here, we allow
// modifications to this behavior by the effects.
const config = this._currentEffect.tweakTransition(actor, this._settings, forOpening);
const duration =
this._settings.get_int(this._currentEffect.getNick() + '-animation-time');
const duration = testMode ?
5000 :
this._settings.get_int(this._currentEffect.getNick() + '-animation-time');
// All animations are relative to the window's center.
actor.set_pivot_point(0.5, 0.5);
@@ -416,9 +424,10 @@ class Extension {
// Tweak the transition according to the config object. For some reason, there are
// rare cases, where no transition is set up. This happens from time to time...
if (transition) {
const middle = (config[property].to + config[property].from) / 2;
transition.set_duration(duration);
transition.set_to(config[property].to);
transition.set_from(config[property].from);
transition.set_to(testMode ? middle : config[property].to);
transition.set_from(testMode ? middle : config[property].from);
transition.set_progress_mode(config[property].mode);
}
}
@@ -454,8 +463,9 @@ class Extension {
// Update uniforms at each frame.
transition.connect('new-frame', (t) => {
shader.set_uniform_value('uProgress', t.get_progress());
shader.set_uniform_value('uTime', 0.001 * t.get_elapsed_time());
shader.set_uniform_value('uProgress', testMode ? 0.5 : t.get_progress());
shader.set_uniform_value('uTime',
testMode ? duration / 2 : 0.001 * t.get_elapsed_time());
shader.set_uniform_value('uSizeX', actor.width);
shader.set_uniform_value('uSizeY', actor.height);
});
@@ -484,10 +494,10 @@ class Extension {
if (!forOpening) {
if (isDialogWindow) {
imports.ui.windowManager.DIALOG_DESTROY_WINDOW_ANIMATION_TIME =
duration != null ? duration : this._origDialogTime;
duration != null ? duration : this._origDialogTime;
} else {
imports.ui.windowManager.DESTROY_WINDOW_ANIMATION_TIME =
duration != null ? duration : this._origWindowTime;
duration != null ? duration : this._origWindowTime;
}
}
}
+2 -2
View File
@@ -12,5 +12,5 @@
"42"
],
"url": "https://github.com/Schneegans/Burn-My-Windows",
"version": 12
}
"version": 15
}
+91 -29
View File
@@ -1,14 +1,14 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR Simon Schneegans
# This file is distributed under the same license as the Burn-My-Windows package.
# This file is distributed under the same license as the burn-my-windows package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Burn-My-Windows\n"
"Project-Id-Version: burn-my-windows\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-02-18 20:33+0100\n"
"POT-Creation-Date: 2022-04-05 09:22+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,15 +17,15 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
#: prefs.js:111
#: prefs.js:112
msgid "Effect Options"
msgstr ""
#: prefs.js:139
#: prefs.js:140
msgid "Go Back"
msgstr ""
#: prefs.js:181
#: prefs.js:182
msgid "General Options"
msgstr ""
@@ -46,12 +46,12 @@ msgid "Past Sponsors"
msgstr ""
#. Translators: %s will be replaced by the effect's name.
#: prefs.js:512
#: prefs.js:510
#, javascript-format
msgid "Preview for %s"
msgstr ""
#: prefs.js:534
#: prefs.js:532
msgid "Close this Window to Preview the Effect!"
msgstr ""
@@ -67,6 +67,10 @@ msgstr ""
msgid "T-Rex Attack"
msgstr ""
#: src/SnapOfDisintegration.js:60
msgid "Snap of Disintegration"
msgstr ""
#: src/Wisps.js:55
msgid "Wisps"
msgstr ""
@@ -95,10 +99,18 @@ msgstr ""
msgid "Santa is Coming"
msgstr ""
#: src/Hexagon.js:53
msgid "Hexagon"
msgstr ""
#: src/EnergizeA.js:54
msgid "Energize A"
msgstr ""
#: src/Apparition.js:57
msgid "Apparition"
msgstr ""
#: src/EnergizeB.js:54
msgid "Energize B"
msgstr ""
@@ -131,17 +143,20 @@ msgstr ""
msgid "Donate"
msgstr ""
#: resources/ui/common/main-menu.ui:45
#: resources/ui/common/main-menu.ui:41
msgid "About Burn-My-Windows"
msgstr ""
#: resources/ui/gtk4/Matrix.ui:24 resources/ui/gtk4/BrokenGlass.ui:24
#: resources/ui/gtk4/Wisps.ui:24 resources/ui/gtk4/Fire.ui:49
#: resources/ui/gtk4/SnapOfDisintegration.ui:24
#: resources/ui/gtk4/TRexAttack.ui:24 resources/ui/gtk4/TVEffect.ui:24
#: resources/ui/gtk4/EnergizeA.ui:24 resources/ui/gtk4/EnergizeB.ui:24
#: resources/ui/gtk4/EnergizeA.ui:24 resources/ui/gtk4/Hexagon.ui:24
#: resources/ui/gtk4/EnergizeB.ui:24 resources/ui/gtk4/Apparition.ui:24
#: resources/ui/gtk3/Wisps.ui:42 resources/ui/gtk3/Fire.ui:93
#: resources/ui/gtk3/TVEffect.ui:35 resources/ui/gtk3/EnergizeA.ui:42
#: resources/ui/gtk3/EnergizeB.ui:42
#: resources/ui/gtk3/Hexagon.ui:49 resources/ui/gtk3/EnergizeB.ui:42
#: resources/ui/gtk3/Apparition.ui:63
msgid "Animation Time [ms]"
msgstr ""
@@ -159,29 +174,43 @@ msgstr ""
#: resources/ui/gtk4/TRexAttack.ui:190 resources/ui/gtk4/TRexAttack.ui:224
#: resources/ui/gtk4/TVEffect.ui:52 resources/ui/gtk4/TVEffect.ui:86
#: resources/ui/gtk4/EnergizeA.ui:52 resources/ui/gtk4/EnergizeA.ui:98
#: resources/ui/gtk4/EnergizeA.ui:132 resources/ui/gtk4/EnergizeB.ui:52
#: resources/ui/gtk4/EnergizeA.ui:132 resources/ui/gtk4/Hexagon.ui:52
#: resources/ui/gtk4/Hexagon.ui:98 resources/ui/gtk4/Hexagon.ui:144
#: resources/ui/gtk4/Hexagon.ui:178 resources/ui/gtk4/Hexagon.ui:212
#: resources/ui/gtk4/Hexagon.ui:265 resources/ui/gtk4/EnergizeB.ui:52
#: resources/ui/gtk4/EnergizeB.ui:98 resources/ui/gtk4/EnergizeB.ui:132
#: resources/ui/gtk4/prefs.ui:166 resources/ui/gtk3/Wisps.ui:68
#: resources/ui/gtk3/Wisps.ui:117 resources/ui/gtk3/Wisps.ui:160
#: resources/ui/gtk3/Fire.ui:119 resources/ui/gtk3/Fire.ui:167
#: resources/ui/gtk3/Fire.ui:215 resources/ui/gtk3/Fire.ui:277
#: resources/ui/gtk3/Fire.ui:345 resources/ui/gtk3/TVEffect.ui:61
#: resources/ui/gtk3/TVEffect.ui:104 resources/ui/gtk3/EnergizeA.ui:68
#: resources/ui/gtk3/EnergizeA.ui:117 resources/ui/gtk3/EnergizeA.ui:160
#: resources/ui/gtk3/EnergizeB.ui:68 resources/ui/gtk3/EnergizeB.ui:117
#: resources/ui/gtk3/EnergizeB.ui:160 resources/ui/gtk3/prefs.ui:219
#: resources/ui/gtk4/prefs.ui:166 resources/ui/gtk4/Apparition.ui:52
#: resources/ui/gtk4/Apparition.ui:98 resources/ui/gtk4/Apparition.ui:144
#: resources/ui/gtk4/Apparition.ui:190 resources/ui/gtk4/Apparition.ui:236
#: resources/ui/gtk3/Wisps.ui:68 resources/ui/gtk3/Wisps.ui:117
#: resources/ui/gtk3/Wisps.ui:160 resources/ui/gtk3/Fire.ui:119
#: resources/ui/gtk3/Fire.ui:167 resources/ui/gtk3/Fire.ui:215
#: resources/ui/gtk3/Fire.ui:277 resources/ui/gtk3/Fire.ui:345
#: resources/ui/gtk3/TVEffect.ui:61 resources/ui/gtk3/TVEffect.ui:104
#: resources/ui/gtk3/EnergizeA.ui:68 resources/ui/gtk3/EnergizeA.ui:117
#: resources/ui/gtk3/EnergizeA.ui:160 resources/ui/gtk3/Hexagon.ui:75
#: resources/ui/gtk3/Hexagon.ui:124 resources/ui/gtk3/Hexagon.ui:173
#: resources/ui/gtk3/Hexagon.ui:216 resources/ui/gtk3/Hexagon.ui:259
#: resources/ui/gtk3/Hexagon.ui:321 resources/ui/gtk3/EnergizeB.ui:68
#: resources/ui/gtk3/EnergizeB.ui:117 resources/ui/gtk3/EnergizeB.ui:160
#: resources/ui/gtk3/prefs.ui:219 resources/ui/gtk3/Apparition.ui:89
#: resources/ui/gtk3/Apparition.ui:138 resources/ui/gtk3/Apparition.ui:187
#: resources/ui/gtk3/Apparition.ui:236 resources/ui/gtk3/Apparition.ui:285
msgid "Reset to Default Value"
msgstr ""
#: resources/ui/gtk4/Matrix.ui:70 resources/ui/gtk4/BrokenGlass.ui:70
#: resources/ui/gtk4/Wisps.ui:70 resources/ui/gtk4/Fire.ui:95
#: resources/ui/gtk4/EnergizeA.ui:70 resources/ui/gtk4/EnergizeB.ui:70
#: resources/ui/gtk3/Wisps.ui:91 resources/ui/gtk3/Fire.ui:141
#: resources/ui/gtk3/EnergizeA.ui:91 resources/ui/gtk3/EnergizeB.ui:91
#: resources/ui/gtk4/SnapOfDisintegration.ui:70
#: resources/ui/gtk4/EnergizeA.ui:70 resources/ui/gtk4/Hexagon.ui:70
#: resources/ui/gtk4/EnergizeB.ui:70 resources/ui/gtk3/Wisps.ui:91
#: resources/ui/gtk3/Fire.ui:141 resources/ui/gtk3/EnergizeA.ui:91
#: resources/ui/gtk3/Hexagon.ui:98 resources/ui/gtk3/EnergizeB.ui:91
msgid "Scale"
msgstr ""
#: resources/ui/gtk4/Matrix.ui:116
#: resources/ui/gtk4/Matrix.ui:116 resources/ui/gtk4/Apparition.ui:70
#: resources/ui/gtk3/Apparition.ui:112
msgid "Randomness"
msgstr ""
@@ -215,10 +244,11 @@ msgid ""
"window."
msgstr ""
#: resources/ui/gtk4/Wisps.ui:116 resources/ui/gtk4/TVEffect.ui:70
#: resources/ui/gtk4/EnergizeA.ui:116 resources/ui/gtk4/EnergizeB.ui:116
#: resources/ui/gtk3/Wisps.ui:139 resources/ui/gtk3/TVEffect.ui:83
#: resources/ui/gtk3/EnergizeA.ui:139 resources/ui/gtk3/EnergizeB.ui:139
#: resources/ui/gtk4/Wisps.ui:116 resources/ui/gtk4/SnapOfDisintegration.ui:116
#: resources/ui/gtk4/TVEffect.ui:70 resources/ui/gtk4/EnergizeA.ui:116
#: resources/ui/gtk4/EnergizeB.ui:116 resources/ui/gtk3/Wisps.ui:139
#: resources/ui/gtk3/TVEffect.ui:83 resources/ui/gtk3/EnergizeA.ui:139
#: resources/ui/gtk3/EnergizeB.ui:139
msgid "Color"
msgstr ""
@@ -262,6 +292,26 @@ msgstr ""
msgid "Preview this Effect"
msgstr ""
#: resources/ui/gtk4/Hexagon.ui:116 resources/ui/gtk3/Hexagon.ui:147
msgid "Mesh Line Width"
msgstr ""
#: resources/ui/gtk4/Hexagon.ui:162 resources/ui/gtk3/Hexagon.ui:195
msgid "Line Color"
msgstr ""
#: resources/ui/gtk4/Hexagon.ui:196 resources/ui/gtk3/Hexagon.ui:238
msgid "Glow Color"
msgstr ""
#: resources/ui/gtk4/Hexagon.ui:234 resources/ui/gtk3/Hexagon.ui:285
msgid "Additive Blending"
msgstr ""
#: resources/ui/gtk4/Hexagon.ui:243 resources/ui/gtk3/Hexagon.ui:294
msgid "You may want to enable this for dark window themes."
msgstr ""
#: resources/ui/gtk4/prefs.ui:28 resources/ui/gtk3/prefs.ui:35
msgid "Welcome to Burn-My-Windows!"
msgstr ""
@@ -292,6 +342,18 @@ msgstr ""
msgid "Also Add Effects to Dialogs"
msgstr ""
#: resources/ui/gtk4/Apparition.ui:116 resources/ui/gtk3/Apparition.ui:161
msgid "Twirl Intensity"
msgstr ""
#: resources/ui/gtk4/Apparition.ui:162 resources/ui/gtk3/Apparition.ui:210
msgid "Shake Intensity"
msgstr ""
#: resources/ui/gtk4/Apparition.ui:208 resources/ui/gtk3/Apparition.ui:259
msgid "Suction Intensity"
msgstr ""
#: resources/ui/gtk3/Fire.ui:63
msgid "Choose a Preset"
msgstr ""
+89 -27
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Burn-My-Windows\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-02-18 20:33+0100\n"
"POT-Creation-Date: 2022-04-05 09:22+0200\n"
"PO-Revision-Date: 2022-02-02 19:55+0000\n"
"Last-Translator: Jiří Doubravský <jiri.doubravsky@gmail.com>\n"
"Language-Team: Czech <https://hosted.weblate.org/projects/burn-my-windows/"
@@ -19,15 +19,15 @@ msgstr ""
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
"X-Generator: Weblate 4.11-dev\n"
#: prefs.js:111
#: prefs.js:112
msgid "Effect Options"
msgstr ""
#: prefs.js:139
#: prefs.js:140
msgid "Go Back"
msgstr ""
#: prefs.js:181
#: prefs.js:182
msgid "General Options"
msgstr "Obecné možnosti"
@@ -48,12 +48,12 @@ msgid "Past Sponsors"
msgstr ""
#. Translators: %s will be replaced by the effect's name.
#: prefs.js:512
#: prefs.js:510
#, javascript-format
msgid "Preview for %s"
msgstr "Náhled %s"
#: prefs.js:534
#: prefs.js:532
msgid "Close this Window to Preview the Effect!"
msgstr "Zavřete toto okno, pokud chcete vidět efekt!"
@@ -69,6 +69,10 @@ msgstr "Televize"
msgid "T-Rex Attack"
msgstr "Tyrannosaurus"
#: src/SnapOfDisintegration.js:60
msgid "Snap of Disintegration"
msgstr ""
#: src/Wisps.js:55
msgid "Wisps"
msgstr "Obláčky"
@@ -97,10 +101,18 @@ msgstr "Studený vánek"
msgid "Santa is Coming"
msgstr "Santa přichází"
#: src/Hexagon.js:53
msgid "Hexagon"
msgstr ""
#: src/EnergizeA.js:54
msgid "Energize A"
msgstr "Energizovat A"
#: src/Apparition.js:57
msgid "Apparition"
msgstr ""
#: src/EnergizeB.js:54
msgid "Energize B"
msgstr "Energizovat B"
@@ -133,17 +145,20 @@ msgstr "Přeložit"
msgid "Donate"
msgstr "Přispět"
#: resources/ui/common/main-menu.ui:45
#: resources/ui/common/main-menu.ui:41
msgid "About Burn-My-Windows"
msgstr ""
#: resources/ui/gtk4/Matrix.ui:24 resources/ui/gtk4/BrokenGlass.ui:24
#: resources/ui/gtk4/Wisps.ui:24 resources/ui/gtk4/Fire.ui:49
#: resources/ui/gtk4/SnapOfDisintegration.ui:24
#: resources/ui/gtk4/TRexAttack.ui:24 resources/ui/gtk4/TVEffect.ui:24
#: resources/ui/gtk4/EnergizeA.ui:24 resources/ui/gtk4/EnergizeB.ui:24
#: resources/ui/gtk4/EnergizeA.ui:24 resources/ui/gtk4/Hexagon.ui:24
#: resources/ui/gtk4/EnergizeB.ui:24 resources/ui/gtk4/Apparition.ui:24
#: resources/ui/gtk3/Wisps.ui:42 resources/ui/gtk3/Fire.ui:93
#: resources/ui/gtk3/TVEffect.ui:35 resources/ui/gtk3/EnergizeA.ui:42
#: resources/ui/gtk3/EnergizeB.ui:42
#: resources/ui/gtk3/Hexagon.ui:49 resources/ui/gtk3/EnergizeB.ui:42
#: resources/ui/gtk3/Apparition.ui:63
msgid "Animation Time [ms]"
msgstr "Délka animace [ms]"
@@ -161,29 +176,43 @@ msgstr "Délka animace [ms]"
#: resources/ui/gtk4/TRexAttack.ui:190 resources/ui/gtk4/TRexAttack.ui:224
#: resources/ui/gtk4/TVEffect.ui:52 resources/ui/gtk4/TVEffect.ui:86
#: resources/ui/gtk4/EnergizeA.ui:52 resources/ui/gtk4/EnergizeA.ui:98
#: resources/ui/gtk4/EnergizeA.ui:132 resources/ui/gtk4/EnergizeB.ui:52
#: resources/ui/gtk4/EnergizeA.ui:132 resources/ui/gtk4/Hexagon.ui:52
#: resources/ui/gtk4/Hexagon.ui:98 resources/ui/gtk4/Hexagon.ui:144
#: resources/ui/gtk4/Hexagon.ui:178 resources/ui/gtk4/Hexagon.ui:212
#: resources/ui/gtk4/Hexagon.ui:265 resources/ui/gtk4/EnergizeB.ui:52
#: resources/ui/gtk4/EnergizeB.ui:98 resources/ui/gtk4/EnergizeB.ui:132
#: resources/ui/gtk4/prefs.ui:166 resources/ui/gtk3/Wisps.ui:68
#: resources/ui/gtk3/Wisps.ui:117 resources/ui/gtk3/Wisps.ui:160
#: resources/ui/gtk3/Fire.ui:119 resources/ui/gtk3/Fire.ui:167
#: resources/ui/gtk3/Fire.ui:215 resources/ui/gtk3/Fire.ui:277
#: resources/ui/gtk3/Fire.ui:345 resources/ui/gtk3/TVEffect.ui:61
#: resources/ui/gtk3/TVEffect.ui:104 resources/ui/gtk3/EnergizeA.ui:68
#: resources/ui/gtk3/EnergizeA.ui:117 resources/ui/gtk3/EnergizeA.ui:160
#: resources/ui/gtk3/EnergizeB.ui:68 resources/ui/gtk3/EnergizeB.ui:117
#: resources/ui/gtk3/EnergizeB.ui:160 resources/ui/gtk3/prefs.ui:219
#: resources/ui/gtk4/prefs.ui:166 resources/ui/gtk4/Apparition.ui:52
#: resources/ui/gtk4/Apparition.ui:98 resources/ui/gtk4/Apparition.ui:144
#: resources/ui/gtk4/Apparition.ui:190 resources/ui/gtk4/Apparition.ui:236
#: resources/ui/gtk3/Wisps.ui:68 resources/ui/gtk3/Wisps.ui:117
#: resources/ui/gtk3/Wisps.ui:160 resources/ui/gtk3/Fire.ui:119
#: resources/ui/gtk3/Fire.ui:167 resources/ui/gtk3/Fire.ui:215
#: resources/ui/gtk3/Fire.ui:277 resources/ui/gtk3/Fire.ui:345
#: resources/ui/gtk3/TVEffect.ui:61 resources/ui/gtk3/TVEffect.ui:104
#: resources/ui/gtk3/EnergizeA.ui:68 resources/ui/gtk3/EnergizeA.ui:117
#: resources/ui/gtk3/EnergizeA.ui:160 resources/ui/gtk3/Hexagon.ui:75
#: resources/ui/gtk3/Hexagon.ui:124 resources/ui/gtk3/Hexagon.ui:173
#: resources/ui/gtk3/Hexagon.ui:216 resources/ui/gtk3/Hexagon.ui:259
#: resources/ui/gtk3/Hexagon.ui:321 resources/ui/gtk3/EnergizeB.ui:68
#: resources/ui/gtk3/EnergizeB.ui:117 resources/ui/gtk3/EnergizeB.ui:160
#: resources/ui/gtk3/prefs.ui:219 resources/ui/gtk3/Apparition.ui:89
#: resources/ui/gtk3/Apparition.ui:138 resources/ui/gtk3/Apparition.ui:187
#: resources/ui/gtk3/Apparition.ui:236 resources/ui/gtk3/Apparition.ui:285
msgid "Reset to Default Value"
msgstr "Obnovit výchozí hodnoty"
#: resources/ui/gtk4/Matrix.ui:70 resources/ui/gtk4/BrokenGlass.ui:70
#: resources/ui/gtk4/Wisps.ui:70 resources/ui/gtk4/Fire.ui:95
#: resources/ui/gtk4/EnergizeA.ui:70 resources/ui/gtk4/EnergizeB.ui:70
#: resources/ui/gtk3/Wisps.ui:91 resources/ui/gtk3/Fire.ui:141
#: resources/ui/gtk3/EnergizeA.ui:91 resources/ui/gtk3/EnergizeB.ui:91
#: resources/ui/gtk4/SnapOfDisintegration.ui:70
#: resources/ui/gtk4/EnergizeA.ui:70 resources/ui/gtk4/Hexagon.ui:70
#: resources/ui/gtk4/EnergizeB.ui:70 resources/ui/gtk3/Wisps.ui:91
#: resources/ui/gtk3/Fire.ui:141 resources/ui/gtk3/EnergizeA.ui:91
#: resources/ui/gtk3/Hexagon.ui:98 resources/ui/gtk3/EnergizeB.ui:91
msgid "Scale"
msgstr "Měřítko"
#: resources/ui/gtk4/Matrix.ui:116
#: resources/ui/gtk4/Matrix.ui:116 resources/ui/gtk4/Apparition.ui:70
#: resources/ui/gtk3/Apparition.ui:112
msgid "Randomness"
msgstr "Nahodilost"
@@ -218,10 +247,11 @@ msgid ""
"window."
msgstr "Střepy odletí z místa, kde byl ukazatel myši při zavírání okna."
#: resources/ui/gtk4/Wisps.ui:116 resources/ui/gtk4/TVEffect.ui:70
#: resources/ui/gtk4/EnergizeA.ui:116 resources/ui/gtk4/EnergizeB.ui:116
#: resources/ui/gtk3/Wisps.ui:139 resources/ui/gtk3/TVEffect.ui:83
#: resources/ui/gtk3/EnergizeA.ui:139 resources/ui/gtk3/EnergizeB.ui:139
#: resources/ui/gtk4/Wisps.ui:116 resources/ui/gtk4/SnapOfDisintegration.ui:116
#: resources/ui/gtk4/TVEffect.ui:70 resources/ui/gtk4/EnergizeA.ui:116
#: resources/ui/gtk4/EnergizeB.ui:116 resources/ui/gtk3/Wisps.ui:139
#: resources/ui/gtk3/TVEffect.ui:83 resources/ui/gtk3/EnergizeA.ui:139
#: resources/ui/gtk3/EnergizeB.ui:139
msgid "Color"
msgstr "Barva"
@@ -265,6 +295,26 @@ msgstr "Barva blesku"
msgid "Preview this Effect"
msgstr "Náhled efektu"
#: resources/ui/gtk4/Hexagon.ui:116 resources/ui/gtk3/Hexagon.ui:147
msgid "Mesh Line Width"
msgstr ""
#: resources/ui/gtk4/Hexagon.ui:162 resources/ui/gtk3/Hexagon.ui:195
msgid "Line Color"
msgstr ""
#: resources/ui/gtk4/Hexagon.ui:196 resources/ui/gtk3/Hexagon.ui:238
msgid "Glow Color"
msgstr ""
#: resources/ui/gtk4/Hexagon.ui:234 resources/ui/gtk3/Hexagon.ui:285
msgid "Additive Blending"
msgstr ""
#: resources/ui/gtk4/Hexagon.ui:243 resources/ui/gtk3/Hexagon.ui:294
msgid "You may want to enable this for dark window themes."
msgstr ""
#: resources/ui/gtk4/prefs.ui:28 resources/ui/gtk3/prefs.ui:35
msgid "Welcome to Burn-My-Windows!"
msgstr "Vítá Vás Burn-My-Windows!"
@@ -295,6 +345,18 @@ msgstr "Animace při zavírání okna"
msgid "Also Add Effects to Dialogs"
msgstr "Použít efekt i na dialogová okna"
#: resources/ui/gtk4/Apparition.ui:116 resources/ui/gtk3/Apparition.ui:161
msgid "Twirl Intensity"
msgstr ""
#: resources/ui/gtk4/Apparition.ui:162 resources/ui/gtk3/Apparition.ui:210
msgid "Shake Intensity"
msgstr ""
#: resources/ui/gtk4/Apparition.ui:208 resources/ui/gtk3/Apparition.ui:259
msgid "Suction Intensity"
msgstr ""
#: resources/ui/gtk3/Fire.ui:63
msgid "Choose a Preset"
msgstr "Vyberte předvolbu"
+91 -29
View File
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Burn-My-Windows\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-02-18 20:33+0100\n"
"PO-Revision-Date: 2022-02-18 19:40+0000\n"
"POT-Creation-Date: 2022-04-05 09:22+0200\n"
"PO-Revision-Date: 2022-04-05 18:37+0000\n"
"Last-Translator: Simon Schneegans <code@simonschneegans.de>\n"
"Language-Team: German <https://hosted.weblate.org/projects/burn-my-windows/"
"core/de/>\n"
@@ -17,17 +17,17 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.11-dev\n"
"X-Generator: Weblate 4.12-dev\n"
#: prefs.js:111
#: prefs.js:112
msgid "Effect Options"
msgstr "Effektoptionen"
#: prefs.js:139
#: prefs.js:140
msgid "Go Back"
msgstr "Zurück"
#: prefs.js:181
#: prefs.js:182
msgid "General Options"
msgstr "Allgemeine Optionen"
@@ -48,12 +48,12 @@ msgid "Past Sponsors"
msgstr "Ehemalige Sponsoren"
#. Translators: %s will be replaced by the effect's name.
#: prefs.js:512
#: prefs.js:510
#, javascript-format
msgid "Preview for %s"
msgstr "Vorschau für %s"
#: prefs.js:534
#: prefs.js:532
msgid "Close this Window to Preview the Effect!"
msgstr "Schließen Sie dieses Fenster, um eine Vorschau des Effekts anzuzeigen!"
@@ -69,6 +69,10 @@ msgstr "TV-Effekt"
msgid "T-Rex Attack"
msgstr "T-Rex-Angriff"
#: src/SnapOfDisintegration.js:60
msgid "Snap of Disintegration"
msgstr "Fingerschnippen des Zerfalls"
#: src/Wisps.js:55
msgid "Wisps"
msgstr "Irrlichter"
@@ -97,10 +101,18 @@ msgstr "Kalte Brise"
msgid "Santa is Coming"
msgstr "Weihnachtsgrüße"
#: src/Hexagon.js:53
msgid "Hexagon"
msgstr "Hexagon"
#: src/EnergizeA.js:54
msgid "Energize A"
msgstr "Energie A"
#: src/Apparition.js:57
msgid "Apparition"
msgstr "Apparieren"
#: src/EnergizeB.js:54
msgid "Energize B"
msgstr "Energie B"
@@ -133,17 +145,20 @@ msgstr "Übersetzen"
msgid "Donate"
msgstr "Spenden"
#: resources/ui/common/main-menu.ui:45
#: resources/ui/common/main-menu.ui:41
msgid "About Burn-My-Windows"
msgstr "Über Burn-My-Windows"
#: resources/ui/gtk4/Matrix.ui:24 resources/ui/gtk4/BrokenGlass.ui:24
#: resources/ui/gtk4/Wisps.ui:24 resources/ui/gtk4/Fire.ui:49
#: resources/ui/gtk4/SnapOfDisintegration.ui:24
#: resources/ui/gtk4/TRexAttack.ui:24 resources/ui/gtk4/TVEffect.ui:24
#: resources/ui/gtk4/EnergizeA.ui:24 resources/ui/gtk4/EnergizeB.ui:24
#: resources/ui/gtk4/EnergizeA.ui:24 resources/ui/gtk4/Hexagon.ui:24
#: resources/ui/gtk4/EnergizeB.ui:24 resources/ui/gtk4/Apparition.ui:24
#: resources/ui/gtk3/Wisps.ui:42 resources/ui/gtk3/Fire.ui:93
#: resources/ui/gtk3/TVEffect.ui:35 resources/ui/gtk3/EnergizeA.ui:42
#: resources/ui/gtk3/EnergizeB.ui:42
#: resources/ui/gtk3/Hexagon.ui:49 resources/ui/gtk3/EnergizeB.ui:42
#: resources/ui/gtk3/Apparition.ui:63
msgid "Animation Time [ms]"
msgstr "Animationszeit [ms]"
@@ -161,29 +176,43 @@ msgstr "Animationszeit [ms]"
#: resources/ui/gtk4/TRexAttack.ui:190 resources/ui/gtk4/TRexAttack.ui:224
#: resources/ui/gtk4/TVEffect.ui:52 resources/ui/gtk4/TVEffect.ui:86
#: resources/ui/gtk4/EnergizeA.ui:52 resources/ui/gtk4/EnergizeA.ui:98
#: resources/ui/gtk4/EnergizeA.ui:132 resources/ui/gtk4/EnergizeB.ui:52
#: resources/ui/gtk4/EnergizeA.ui:132 resources/ui/gtk4/Hexagon.ui:52
#: resources/ui/gtk4/Hexagon.ui:98 resources/ui/gtk4/Hexagon.ui:144
#: resources/ui/gtk4/Hexagon.ui:178 resources/ui/gtk4/Hexagon.ui:212
#: resources/ui/gtk4/Hexagon.ui:265 resources/ui/gtk4/EnergizeB.ui:52
#: resources/ui/gtk4/EnergizeB.ui:98 resources/ui/gtk4/EnergizeB.ui:132
#: resources/ui/gtk4/prefs.ui:166 resources/ui/gtk3/Wisps.ui:68
#: resources/ui/gtk3/Wisps.ui:117 resources/ui/gtk3/Wisps.ui:160
#: resources/ui/gtk3/Fire.ui:119 resources/ui/gtk3/Fire.ui:167
#: resources/ui/gtk3/Fire.ui:215 resources/ui/gtk3/Fire.ui:277
#: resources/ui/gtk3/Fire.ui:345 resources/ui/gtk3/TVEffect.ui:61
#: resources/ui/gtk3/TVEffect.ui:104 resources/ui/gtk3/EnergizeA.ui:68
#: resources/ui/gtk3/EnergizeA.ui:117 resources/ui/gtk3/EnergizeA.ui:160
#: resources/ui/gtk3/EnergizeB.ui:68 resources/ui/gtk3/EnergizeB.ui:117
#: resources/ui/gtk3/EnergizeB.ui:160 resources/ui/gtk3/prefs.ui:219
#: resources/ui/gtk4/prefs.ui:166 resources/ui/gtk4/Apparition.ui:52
#: resources/ui/gtk4/Apparition.ui:98 resources/ui/gtk4/Apparition.ui:144
#: resources/ui/gtk4/Apparition.ui:190 resources/ui/gtk4/Apparition.ui:236
#: resources/ui/gtk3/Wisps.ui:68 resources/ui/gtk3/Wisps.ui:117
#: resources/ui/gtk3/Wisps.ui:160 resources/ui/gtk3/Fire.ui:119
#: resources/ui/gtk3/Fire.ui:167 resources/ui/gtk3/Fire.ui:215
#: resources/ui/gtk3/Fire.ui:277 resources/ui/gtk3/Fire.ui:345
#: resources/ui/gtk3/TVEffect.ui:61 resources/ui/gtk3/TVEffect.ui:104
#: resources/ui/gtk3/EnergizeA.ui:68 resources/ui/gtk3/EnergizeA.ui:117
#: resources/ui/gtk3/EnergizeA.ui:160 resources/ui/gtk3/Hexagon.ui:75
#: resources/ui/gtk3/Hexagon.ui:124 resources/ui/gtk3/Hexagon.ui:173
#: resources/ui/gtk3/Hexagon.ui:216 resources/ui/gtk3/Hexagon.ui:259
#: resources/ui/gtk3/Hexagon.ui:321 resources/ui/gtk3/EnergizeB.ui:68
#: resources/ui/gtk3/EnergizeB.ui:117 resources/ui/gtk3/EnergizeB.ui:160
#: resources/ui/gtk3/prefs.ui:219 resources/ui/gtk3/Apparition.ui:89
#: resources/ui/gtk3/Apparition.ui:138 resources/ui/gtk3/Apparition.ui:187
#: resources/ui/gtk3/Apparition.ui:236 resources/ui/gtk3/Apparition.ui:285
msgid "Reset to Default Value"
msgstr "Auf Standardwert zurücksetzen"
#: resources/ui/gtk4/Matrix.ui:70 resources/ui/gtk4/BrokenGlass.ui:70
#: resources/ui/gtk4/Wisps.ui:70 resources/ui/gtk4/Fire.ui:95
#: resources/ui/gtk4/EnergizeA.ui:70 resources/ui/gtk4/EnergizeB.ui:70
#: resources/ui/gtk3/Wisps.ui:91 resources/ui/gtk3/Fire.ui:141
#: resources/ui/gtk3/EnergizeA.ui:91 resources/ui/gtk3/EnergizeB.ui:91
#: resources/ui/gtk4/SnapOfDisintegration.ui:70
#: resources/ui/gtk4/EnergizeA.ui:70 resources/ui/gtk4/Hexagon.ui:70
#: resources/ui/gtk4/EnergizeB.ui:70 resources/ui/gtk3/Wisps.ui:91
#: resources/ui/gtk3/Fire.ui:141 resources/ui/gtk3/EnergizeA.ui:91
#: resources/ui/gtk3/Hexagon.ui:98 resources/ui/gtk3/EnergizeB.ui:91
msgid "Scale"
msgstr "Größe"
#: resources/ui/gtk4/Matrix.ui:116
#: resources/ui/gtk4/Matrix.ui:116 resources/ui/gtk4/Apparition.ui:70
#: resources/ui/gtk3/Apparition.ui:112
msgid "Randomness"
msgstr "Zufälligkeit"
@@ -219,10 +248,11 @@ msgstr ""
"Die Scherben fliegen von der Stelle weg, an der sich Ihr Mauszeiger beim "
"Schließen des Fensters befand."
#: resources/ui/gtk4/Wisps.ui:116 resources/ui/gtk4/TVEffect.ui:70
#: resources/ui/gtk4/EnergizeA.ui:116 resources/ui/gtk4/EnergizeB.ui:116
#: resources/ui/gtk3/Wisps.ui:139 resources/ui/gtk3/TVEffect.ui:83
#: resources/ui/gtk3/EnergizeA.ui:139 resources/ui/gtk3/EnergizeB.ui:139
#: resources/ui/gtk4/Wisps.ui:116 resources/ui/gtk4/SnapOfDisintegration.ui:116
#: resources/ui/gtk4/TVEffect.ui:70 resources/ui/gtk4/EnergizeA.ui:116
#: resources/ui/gtk4/EnergizeB.ui:116 resources/ui/gtk3/Wisps.ui:139
#: resources/ui/gtk3/TVEffect.ui:83 resources/ui/gtk3/EnergizeA.ui:139
#: resources/ui/gtk3/EnergizeB.ui:139
msgid "Color"
msgstr "Farbe"
@@ -266,6 +296,26 @@ msgstr "Blitzfarbe"
msgid "Preview this Effect"
msgstr "Vorschau dieses Effekts"
#: resources/ui/gtk4/Hexagon.ui:116 resources/ui/gtk3/Hexagon.ui:147
msgid "Mesh Line Width"
msgstr "Gitterlinienstärke"
#: resources/ui/gtk4/Hexagon.ui:162 resources/ui/gtk3/Hexagon.ui:195
msgid "Line Color"
msgstr "Linienfarbe"
#: resources/ui/gtk4/Hexagon.ui:196 resources/ui/gtk3/Hexagon.ui:238
msgid "Glow Color"
msgstr "Leuchtfarbe"
#: resources/ui/gtk4/Hexagon.ui:234 resources/ui/gtk3/Hexagon.ui:285
msgid "Additive Blending"
msgstr "Additives Mischen"
#: resources/ui/gtk4/Hexagon.ui:243 resources/ui/gtk3/Hexagon.ui:294
msgid "You may want to enable this for dark window themes."
msgstr "Für dunkle Fensterthemen sollten Sie diese Option aktivieren."
#: resources/ui/gtk4/prefs.ui:28 resources/ui/gtk3/prefs.ui:35
msgid "Welcome to Burn-My-Windows!"
msgstr "Willkommen bei Burn-My-Windows!"
@@ -296,6 +346,18 @@ msgstr "Fenster-Schließen-Animation"
msgid "Also Add Effects to Dialogs"
msgstr "Effekte auch zu Dialogen hinzufügen"
#: resources/ui/gtk4/Apparition.ui:116 resources/ui/gtk3/Apparition.ui:161
msgid "Twirl Intensity"
msgstr "Wirbelintensität"
#: resources/ui/gtk4/Apparition.ui:162 resources/ui/gtk3/Apparition.ui:210
msgid "Shake Intensity"
msgstr "Wackelintensität"
#: resources/ui/gtk4/Apparition.ui:208 resources/ui/gtk3/Apparition.ui:259
msgid "Suction Intensity"
msgstr "Saugintensität"
#: resources/ui/gtk3/Fire.ui:63
msgid "Choose a Preset"
msgstr "Wählen Sie eine Voreinstellung"
+104 -42
View File
@@ -7,9 +7,9 @@ msgid ""
msgstr ""
"Project-Id-Version: Burn-My-Windows\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-02-18 20:33+0100\n"
"PO-Revision-Date: 2022-02-09 18:53+0000\n"
"Last-Translator: Ulices <ulicesah@gmail.com>\n"
"POT-Creation-Date: 2022-04-05 09:22+0200\n"
"PO-Revision-Date: 2022-03-15 06:54+0000\n"
"Last-Translator: Adolfo Jayme Barrientos <fitojb@ubuntu.com>\n"
"Language-Team: Spanish <https://hosted.weblate.org/projects/burn-my-windows/"
"core/es/>\n"
"Language: es\n"
@@ -17,17 +17,17 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.11-dev\n"
"X-Generator: Weblate 4.12-dev\n"
#: prefs.js:111
#: prefs.js:112
msgid "Effect Options"
msgstr ""
msgstr "Opciones de efecto"
#: prefs.js:139
#: prefs.js:140
msgid "Go Back"
msgstr ""
msgstr "Volver"
#: prefs.js:181
#: prefs.js:182
msgid "General Options"
msgstr "Opciones generales"
@@ -48,12 +48,12 @@ msgid "Past Sponsors"
msgstr "Patrocinadores anteriores"
#. Translators: %s will be replaced by the effect's name.
#: prefs.js:512
#: prefs.js:510
#, javascript-format
msgid "Preview for %s"
msgstr "Vista previa de %s"
msgstr "Previsualización de %s"
#: prefs.js:534
#: prefs.js:532
msgid "Close this Window to Preview the Effect!"
msgstr "¡Cierre esta ventana para ver el efecto!"
@@ -63,12 +63,16 @@ msgstr "Cristales rotos"
#: src/TVEffect.js:56
msgid "TV Effect"
msgstr "Efecto TV"
msgstr "Efecto televisor"
#: src/TRexAttack.js:56
msgid "T-Rex Attack"
msgstr "Ataque de T-Rex"
#: src/SnapOfDisintegration.js:60
msgid "Snap of Disintegration"
msgstr ""
#: src/Wisps.js:55
msgid "Wisps"
msgstr "Chispas"
@@ -83,11 +87,11 @@ msgstr "Fuego predeterminado"
#: src/Fire.js:140
msgid "Hell Fire"
msgstr "Fuego del infierno"
msgstr "Fuego infernal"
#: src/Fire.js:150
msgid "Dark and Smutty"
msgstr "Oscuro y obscuro"
msgstr "Oscuro y obsceno"
#: src/Fire.js:160
msgid "Cold Breeze"
@@ -97,10 +101,18 @@ msgstr "Brisa fría"
msgid "Santa is Coming"
msgstr "Viene Papá Noel"
#: src/Hexagon.js:53
msgid "Hexagon"
msgstr ""
#: src/EnergizeA.js:54
msgid "Energize A"
msgstr "Energizar A"
#: src/Apparition.js:57
msgid "Apparition"
msgstr ""
#: src/EnergizeB.js:54
msgid "Energize B"
msgstr "Energizar B"
@@ -133,17 +145,20 @@ msgstr "Traducir"
msgid "Donate"
msgstr "Donar"
#: resources/ui/common/main-menu.ui:45
#: resources/ui/common/main-menu.ui:41
msgid "About Burn-My-Windows"
msgstr "Acerca de Burn-My-Windows"
#: resources/ui/gtk4/Matrix.ui:24 resources/ui/gtk4/BrokenGlass.ui:24
#: resources/ui/gtk4/Wisps.ui:24 resources/ui/gtk4/Fire.ui:49
#: resources/ui/gtk4/SnapOfDisintegration.ui:24
#: resources/ui/gtk4/TRexAttack.ui:24 resources/ui/gtk4/TVEffect.ui:24
#: resources/ui/gtk4/EnergizeA.ui:24 resources/ui/gtk4/EnergizeB.ui:24
#: resources/ui/gtk4/EnergizeA.ui:24 resources/ui/gtk4/Hexagon.ui:24
#: resources/ui/gtk4/EnergizeB.ui:24 resources/ui/gtk4/Apparition.ui:24
#: resources/ui/gtk3/Wisps.ui:42 resources/ui/gtk3/Fire.ui:93
#: resources/ui/gtk3/TVEffect.ui:35 resources/ui/gtk3/EnergizeA.ui:42
#: resources/ui/gtk3/EnergizeB.ui:42
#: resources/ui/gtk3/Hexagon.ui:49 resources/ui/gtk3/EnergizeB.ui:42
#: resources/ui/gtk3/Apparition.ui:63
msgid "Animation Time [ms]"
msgstr "Tiempo de animación [ms]"
@@ -161,29 +176,43 @@ msgstr "Tiempo de animación [ms]"
#: resources/ui/gtk4/TRexAttack.ui:190 resources/ui/gtk4/TRexAttack.ui:224
#: resources/ui/gtk4/TVEffect.ui:52 resources/ui/gtk4/TVEffect.ui:86
#: resources/ui/gtk4/EnergizeA.ui:52 resources/ui/gtk4/EnergizeA.ui:98
#: resources/ui/gtk4/EnergizeA.ui:132 resources/ui/gtk4/EnergizeB.ui:52
#: resources/ui/gtk4/EnergizeA.ui:132 resources/ui/gtk4/Hexagon.ui:52
#: resources/ui/gtk4/Hexagon.ui:98 resources/ui/gtk4/Hexagon.ui:144
#: resources/ui/gtk4/Hexagon.ui:178 resources/ui/gtk4/Hexagon.ui:212
#: resources/ui/gtk4/Hexagon.ui:265 resources/ui/gtk4/EnergizeB.ui:52
#: resources/ui/gtk4/EnergizeB.ui:98 resources/ui/gtk4/EnergizeB.ui:132
#: resources/ui/gtk4/prefs.ui:166 resources/ui/gtk3/Wisps.ui:68
#: resources/ui/gtk3/Wisps.ui:117 resources/ui/gtk3/Wisps.ui:160
#: resources/ui/gtk3/Fire.ui:119 resources/ui/gtk3/Fire.ui:167
#: resources/ui/gtk3/Fire.ui:215 resources/ui/gtk3/Fire.ui:277
#: resources/ui/gtk3/Fire.ui:345 resources/ui/gtk3/TVEffect.ui:61
#: resources/ui/gtk3/TVEffect.ui:104 resources/ui/gtk3/EnergizeA.ui:68
#: resources/ui/gtk3/EnergizeA.ui:117 resources/ui/gtk3/EnergizeA.ui:160
#: resources/ui/gtk3/EnergizeB.ui:68 resources/ui/gtk3/EnergizeB.ui:117
#: resources/ui/gtk3/EnergizeB.ui:160 resources/ui/gtk3/prefs.ui:219
#: resources/ui/gtk4/prefs.ui:166 resources/ui/gtk4/Apparition.ui:52
#: resources/ui/gtk4/Apparition.ui:98 resources/ui/gtk4/Apparition.ui:144
#: resources/ui/gtk4/Apparition.ui:190 resources/ui/gtk4/Apparition.ui:236
#: resources/ui/gtk3/Wisps.ui:68 resources/ui/gtk3/Wisps.ui:117
#: resources/ui/gtk3/Wisps.ui:160 resources/ui/gtk3/Fire.ui:119
#: resources/ui/gtk3/Fire.ui:167 resources/ui/gtk3/Fire.ui:215
#: resources/ui/gtk3/Fire.ui:277 resources/ui/gtk3/Fire.ui:345
#: resources/ui/gtk3/TVEffect.ui:61 resources/ui/gtk3/TVEffect.ui:104
#: resources/ui/gtk3/EnergizeA.ui:68 resources/ui/gtk3/EnergizeA.ui:117
#: resources/ui/gtk3/EnergizeA.ui:160 resources/ui/gtk3/Hexagon.ui:75
#: resources/ui/gtk3/Hexagon.ui:124 resources/ui/gtk3/Hexagon.ui:173
#: resources/ui/gtk3/Hexagon.ui:216 resources/ui/gtk3/Hexagon.ui:259
#: resources/ui/gtk3/Hexagon.ui:321 resources/ui/gtk3/EnergizeB.ui:68
#: resources/ui/gtk3/EnergizeB.ui:117 resources/ui/gtk3/EnergizeB.ui:160
#: resources/ui/gtk3/prefs.ui:219 resources/ui/gtk3/Apparition.ui:89
#: resources/ui/gtk3/Apparition.ui:138 resources/ui/gtk3/Apparition.ui:187
#: resources/ui/gtk3/Apparition.ui:236 resources/ui/gtk3/Apparition.ui:285
msgid "Reset to Default Value"
msgstr "Restablecer al valor predeterminado"
#: resources/ui/gtk4/Matrix.ui:70 resources/ui/gtk4/BrokenGlass.ui:70
#: resources/ui/gtk4/Wisps.ui:70 resources/ui/gtk4/Fire.ui:95
#: resources/ui/gtk4/EnergizeA.ui:70 resources/ui/gtk4/EnergizeB.ui:70
#: resources/ui/gtk3/Wisps.ui:91 resources/ui/gtk3/Fire.ui:141
#: resources/ui/gtk3/EnergizeA.ui:91 resources/ui/gtk3/EnergizeB.ui:91
#: resources/ui/gtk4/SnapOfDisintegration.ui:70
#: resources/ui/gtk4/EnergizeA.ui:70 resources/ui/gtk4/Hexagon.ui:70
#: resources/ui/gtk4/EnergizeB.ui:70 resources/ui/gtk3/Wisps.ui:91
#: resources/ui/gtk3/Fire.ui:141 resources/ui/gtk3/EnergizeA.ui:91
#: resources/ui/gtk3/Hexagon.ui:98 resources/ui/gtk3/EnergizeB.ui:91
msgid "Scale"
msgstr "Escala"
#: resources/ui/gtk4/Matrix.ui:116
#: resources/ui/gtk4/Matrix.ui:116 resources/ui/gtk4/Apparition.ui:70
#: resources/ui/gtk3/Apparition.ui:112
msgid "Randomness"
msgstr "Aleatoriedad"
@@ -219,16 +248,17 @@ msgstr ""
"Los fragmentos saldrán volando desde donde estaba el puntero del ratón al "
"cerrar la ventana."
#: resources/ui/gtk4/Wisps.ui:116 resources/ui/gtk4/TVEffect.ui:70
#: resources/ui/gtk4/EnergizeA.ui:116 resources/ui/gtk4/EnergizeB.ui:116
#: resources/ui/gtk3/Wisps.ui:139 resources/ui/gtk3/TVEffect.ui:83
#: resources/ui/gtk3/EnergizeA.ui:139 resources/ui/gtk3/EnergizeB.ui:139
#: resources/ui/gtk4/Wisps.ui:116 resources/ui/gtk4/SnapOfDisintegration.ui:116
#: resources/ui/gtk4/TVEffect.ui:70 resources/ui/gtk4/EnergizeA.ui:116
#: resources/ui/gtk4/EnergizeB.ui:116 resources/ui/gtk3/Wisps.ui:139
#: resources/ui/gtk3/TVEffect.ui:83 resources/ui/gtk3/EnergizeA.ui:139
#: resources/ui/gtk3/EnergizeB.ui:139
msgid "Color"
msgstr "Color"
#: resources/ui/gtk4/Fire.ui:25 resources/ui/gtk3/Fire.ui:49
msgid "Presets"
msgstr "Plantillas"
msgstr "Preselecciones"
#: resources/ui/gtk4/Fire.ui:141 resources/ui/gtk3/Fire.ui:189
msgid "Speed"
@@ -244,7 +274,7 @@ msgstr "Crea un fuego más dinámico pero requiere más potencia de la GPU."
#: resources/ui/gtk4/Fire.ui:240 resources/ui/gtk3/Fire.ui:300
msgid "Gradient"
msgstr "Gradiente"
msgstr "Degradado"
#: resources/ui/gtk4/TRexAttack.ui:70
msgid "Claw Scratch Scale"
@@ -264,15 +294,35 @@ msgstr "Color del flash"
#: resources/ui/gtk4/effectPage.ui:37 resources/ui/gtk3/effectPage.ui:37
msgid "Preview this Effect"
msgstr "Vista previa del efecto"
msgstr "Previsualizar este efecto"
#: resources/ui/gtk4/Hexagon.ui:116 resources/ui/gtk3/Hexagon.ui:147
msgid "Mesh Line Width"
msgstr ""
#: resources/ui/gtk4/Hexagon.ui:162 resources/ui/gtk3/Hexagon.ui:195
msgid "Line Color"
msgstr ""
#: resources/ui/gtk4/Hexagon.ui:196 resources/ui/gtk3/Hexagon.ui:238
msgid "Glow Color"
msgstr ""
#: resources/ui/gtk4/Hexagon.ui:234 resources/ui/gtk3/Hexagon.ui:285
msgid "Additive Blending"
msgstr ""
#: resources/ui/gtk4/Hexagon.ui:243 resources/ui/gtk3/Hexagon.ui:294
msgid "You may want to enable this for dark window themes."
msgstr ""
#: resources/ui/gtk4/prefs.ui:28 resources/ui/gtk3/prefs.ui:35
msgid "Welcome to Burn-My-Windows!"
msgstr "¡Bienvenido/a a Burn-My-Windows!"
msgstr "Le damos la bienvenida a Burn-My-Windows."
#: resources/ui/gtk4/prefs.ui:39 resources/ui/gtk3/prefs.ui:46
msgid "If you like this extension, recommend it to your friends :)"
msgstr "Si le gusta esta extensión, recomiéndela a sus amigos :)"
msgstr "Si le gusta esta extensión, recomiéndela a sus amistades :)"
#: resources/ui/gtk4/prefs.ui:66 resources/ui/gtk3/prefs.ui:74
msgid "Open Window Animation"
@@ -296,9 +346,21 @@ msgstr "Animación al cerrar la ventana"
msgid "Also Add Effects to Dialogs"
msgstr "Añadir también efectos a los diálogos"
#: resources/ui/gtk4/Apparition.ui:116 resources/ui/gtk3/Apparition.ui:161
msgid "Twirl Intensity"
msgstr ""
#: resources/ui/gtk4/Apparition.ui:162 resources/ui/gtk3/Apparition.ui:210
msgid "Shake Intensity"
msgstr ""
#: resources/ui/gtk4/Apparition.ui:208 resources/ui/gtk3/Apparition.ui:259
msgid "Suction Intensity"
msgstr ""
#: resources/ui/gtk3/Fire.ui:63
msgid "Choose a Preset"
msgstr "Elegir una plantilla"
msgstr "Elija una preselección"
#~ msgid "Via PayPal"
#~ msgstr "Vía PayPal"
+93 -31
View File
@@ -7,9 +7,9 @@ msgid ""
msgstr ""
"Project-Id-Version: Burn-My-Windows\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-02-18 20:33+0100\n"
"PO-Revision-Date: 2022-02-05 12:53+0000\n"
"Last-Translator: Reda <redxxiii@zaclys.net>\n"
"POT-Creation-Date: 2022-04-05 09:22+0200\n"
"PO-Revision-Date: 2022-02-21 11:58+0000\n"
"Last-Translator: Nathan <bonnemainsnathan@gmail.com>\n"
"Language-Team: French <https://hosted.weblate.org/projects/burn-my-windows/"
"core/fr/>\n"
"Language: fr\n"
@@ -19,15 +19,15 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 4.11-dev\n"
#: prefs.js:111
#: prefs.js:112
msgid "Effect Options"
msgstr ""
msgstr "Options de l'effet"
#: prefs.js:139
#: prefs.js:140
msgid "Go Back"
msgstr ""
msgstr "Retour"
#: prefs.js:181
#: prefs.js:182
msgid "General Options"
msgstr "Options générales"
@@ -48,12 +48,12 @@ msgid "Past Sponsors"
msgstr "Anciens Sponsors"
#. Translators: %s will be replaced by the effect's name.
#: prefs.js:512
#: prefs.js:510
#, javascript-format
msgid "Preview for %s"
msgstr "Aperçu pour %s"
#: prefs.js:534
#: prefs.js:532
msgid "Close this Window to Preview the Effect!"
msgstr "Fermez cette fenêtre pour un aperçu de l'effet !"
@@ -69,6 +69,10 @@ msgstr "Effet TV"
msgid "T-Rex Attack"
msgstr "Attaque de T-Rex"
#: src/SnapOfDisintegration.js:60
msgid "Snap of Disintegration"
msgstr ""
#: src/Wisps.js:55
msgid "Wisps"
msgstr "Volutes"
@@ -97,10 +101,18 @@ msgstr "Brise froide"
msgid "Santa is Coming"
msgstr "Le Père Noël arrive"
#: src/Hexagon.js:53
msgid "Hexagon"
msgstr ""
#: src/EnergizeA.js:54
msgid "Energize A"
msgstr "Énergie A"
#: src/Apparition.js:57
msgid "Apparition"
msgstr ""
#: src/EnergizeB.js:54
msgid "Energize B"
msgstr "Énergie B"
@@ -133,17 +145,20 @@ msgstr "Traduire"
msgid "Donate"
msgstr "Faire un don"
#: resources/ui/common/main-menu.ui:45
#: resources/ui/common/main-menu.ui:41
msgid "About Burn-My-Windows"
msgstr "À propos de Burn-My-Windows"
#: resources/ui/gtk4/Matrix.ui:24 resources/ui/gtk4/BrokenGlass.ui:24
#: resources/ui/gtk4/Wisps.ui:24 resources/ui/gtk4/Fire.ui:49
#: resources/ui/gtk4/SnapOfDisintegration.ui:24
#: resources/ui/gtk4/TRexAttack.ui:24 resources/ui/gtk4/TVEffect.ui:24
#: resources/ui/gtk4/EnergizeA.ui:24 resources/ui/gtk4/EnergizeB.ui:24
#: resources/ui/gtk4/EnergizeA.ui:24 resources/ui/gtk4/Hexagon.ui:24
#: resources/ui/gtk4/EnergizeB.ui:24 resources/ui/gtk4/Apparition.ui:24
#: resources/ui/gtk3/Wisps.ui:42 resources/ui/gtk3/Fire.ui:93
#: resources/ui/gtk3/TVEffect.ui:35 resources/ui/gtk3/EnergizeA.ui:42
#: resources/ui/gtk3/EnergizeB.ui:42
#: resources/ui/gtk3/Hexagon.ui:49 resources/ui/gtk3/EnergizeB.ui:42
#: resources/ui/gtk3/Apparition.ui:63
msgid "Animation Time [ms]"
msgstr "Durée de l'animation (ms)"
@@ -161,29 +176,43 @@ msgstr "Durée de l'animation (ms)"
#: resources/ui/gtk4/TRexAttack.ui:190 resources/ui/gtk4/TRexAttack.ui:224
#: resources/ui/gtk4/TVEffect.ui:52 resources/ui/gtk4/TVEffect.ui:86
#: resources/ui/gtk4/EnergizeA.ui:52 resources/ui/gtk4/EnergizeA.ui:98
#: resources/ui/gtk4/EnergizeA.ui:132 resources/ui/gtk4/EnergizeB.ui:52
#: resources/ui/gtk4/EnergizeA.ui:132 resources/ui/gtk4/Hexagon.ui:52
#: resources/ui/gtk4/Hexagon.ui:98 resources/ui/gtk4/Hexagon.ui:144
#: resources/ui/gtk4/Hexagon.ui:178 resources/ui/gtk4/Hexagon.ui:212
#: resources/ui/gtk4/Hexagon.ui:265 resources/ui/gtk4/EnergizeB.ui:52
#: resources/ui/gtk4/EnergizeB.ui:98 resources/ui/gtk4/EnergizeB.ui:132
#: resources/ui/gtk4/prefs.ui:166 resources/ui/gtk3/Wisps.ui:68
#: resources/ui/gtk3/Wisps.ui:117 resources/ui/gtk3/Wisps.ui:160
#: resources/ui/gtk3/Fire.ui:119 resources/ui/gtk3/Fire.ui:167
#: resources/ui/gtk3/Fire.ui:215 resources/ui/gtk3/Fire.ui:277
#: resources/ui/gtk3/Fire.ui:345 resources/ui/gtk3/TVEffect.ui:61
#: resources/ui/gtk3/TVEffect.ui:104 resources/ui/gtk3/EnergizeA.ui:68
#: resources/ui/gtk3/EnergizeA.ui:117 resources/ui/gtk3/EnergizeA.ui:160
#: resources/ui/gtk3/EnergizeB.ui:68 resources/ui/gtk3/EnergizeB.ui:117
#: resources/ui/gtk3/EnergizeB.ui:160 resources/ui/gtk3/prefs.ui:219
#: resources/ui/gtk4/prefs.ui:166 resources/ui/gtk4/Apparition.ui:52
#: resources/ui/gtk4/Apparition.ui:98 resources/ui/gtk4/Apparition.ui:144
#: resources/ui/gtk4/Apparition.ui:190 resources/ui/gtk4/Apparition.ui:236
#: resources/ui/gtk3/Wisps.ui:68 resources/ui/gtk3/Wisps.ui:117
#: resources/ui/gtk3/Wisps.ui:160 resources/ui/gtk3/Fire.ui:119
#: resources/ui/gtk3/Fire.ui:167 resources/ui/gtk3/Fire.ui:215
#: resources/ui/gtk3/Fire.ui:277 resources/ui/gtk3/Fire.ui:345
#: resources/ui/gtk3/TVEffect.ui:61 resources/ui/gtk3/TVEffect.ui:104
#: resources/ui/gtk3/EnergizeA.ui:68 resources/ui/gtk3/EnergizeA.ui:117
#: resources/ui/gtk3/EnergizeA.ui:160 resources/ui/gtk3/Hexagon.ui:75
#: resources/ui/gtk3/Hexagon.ui:124 resources/ui/gtk3/Hexagon.ui:173
#: resources/ui/gtk3/Hexagon.ui:216 resources/ui/gtk3/Hexagon.ui:259
#: resources/ui/gtk3/Hexagon.ui:321 resources/ui/gtk3/EnergizeB.ui:68
#: resources/ui/gtk3/EnergizeB.ui:117 resources/ui/gtk3/EnergizeB.ui:160
#: resources/ui/gtk3/prefs.ui:219 resources/ui/gtk3/Apparition.ui:89
#: resources/ui/gtk3/Apparition.ui:138 resources/ui/gtk3/Apparition.ui:187
#: resources/ui/gtk3/Apparition.ui:236 resources/ui/gtk3/Apparition.ui:285
msgid "Reset to Default Value"
msgstr "Réinitialiser à la valeur par défaut"
#: resources/ui/gtk4/Matrix.ui:70 resources/ui/gtk4/BrokenGlass.ui:70
#: resources/ui/gtk4/Wisps.ui:70 resources/ui/gtk4/Fire.ui:95
#: resources/ui/gtk4/EnergizeA.ui:70 resources/ui/gtk4/EnergizeB.ui:70
#: resources/ui/gtk3/Wisps.ui:91 resources/ui/gtk3/Fire.ui:141
#: resources/ui/gtk3/EnergizeA.ui:91 resources/ui/gtk3/EnergizeB.ui:91
#: resources/ui/gtk4/SnapOfDisintegration.ui:70
#: resources/ui/gtk4/EnergizeA.ui:70 resources/ui/gtk4/Hexagon.ui:70
#: resources/ui/gtk4/EnergizeB.ui:70 resources/ui/gtk3/Wisps.ui:91
#: resources/ui/gtk3/Fire.ui:141 resources/ui/gtk3/EnergizeA.ui:91
#: resources/ui/gtk3/Hexagon.ui:98 resources/ui/gtk3/EnergizeB.ui:91
msgid "Scale"
msgstr "Échelle"
#: resources/ui/gtk4/Matrix.ui:116
#: resources/ui/gtk4/Matrix.ui:116 resources/ui/gtk4/Apparition.ui:70
#: resources/ui/gtk3/Apparition.ui:112
msgid "Randomness"
msgstr "Aléatoire"
@@ -219,10 +248,11 @@ msgstr ""
"Les éclats s'envoleront de l'endroit où se trouvait le pointeur de votre "
"souris lorsque vous fermez la fenêtre."
#: resources/ui/gtk4/Wisps.ui:116 resources/ui/gtk4/TVEffect.ui:70
#: resources/ui/gtk4/EnergizeA.ui:116 resources/ui/gtk4/EnergizeB.ui:116
#: resources/ui/gtk3/Wisps.ui:139 resources/ui/gtk3/TVEffect.ui:83
#: resources/ui/gtk3/EnergizeA.ui:139 resources/ui/gtk3/EnergizeB.ui:139
#: resources/ui/gtk4/Wisps.ui:116 resources/ui/gtk4/SnapOfDisintegration.ui:116
#: resources/ui/gtk4/TVEffect.ui:70 resources/ui/gtk4/EnergizeA.ui:116
#: resources/ui/gtk4/EnergizeB.ui:116 resources/ui/gtk3/Wisps.ui:139
#: resources/ui/gtk3/TVEffect.ui:83 resources/ui/gtk3/EnergizeA.ui:139
#: resources/ui/gtk3/EnergizeB.ui:139
msgid "Color"
msgstr "Couleur"
@@ -268,6 +298,26 @@ msgstr "Couleur du flash"
msgid "Preview this Effect"
msgstr "Voir l'aperçu de cet effet"
#: resources/ui/gtk4/Hexagon.ui:116 resources/ui/gtk3/Hexagon.ui:147
msgid "Mesh Line Width"
msgstr ""
#: resources/ui/gtk4/Hexagon.ui:162 resources/ui/gtk3/Hexagon.ui:195
msgid "Line Color"
msgstr ""
#: resources/ui/gtk4/Hexagon.ui:196 resources/ui/gtk3/Hexagon.ui:238
msgid "Glow Color"
msgstr ""
#: resources/ui/gtk4/Hexagon.ui:234 resources/ui/gtk3/Hexagon.ui:285
msgid "Additive Blending"
msgstr ""
#: resources/ui/gtk4/Hexagon.ui:243 resources/ui/gtk3/Hexagon.ui:294
msgid "You may want to enable this for dark window themes."
msgstr ""
#: resources/ui/gtk4/prefs.ui:28 resources/ui/gtk3/prefs.ui:35
msgid "Welcome to Burn-My-Windows!"
msgstr "Bienvenue dans Burn-My-Windows !"
@@ -298,6 +348,18 @@ msgstr "Animation de fermeture de fenêtre"
msgid "Also Add Effects to Dialogs"
msgstr "Appliquer également les effets aux boîtes de dialogue"
#: resources/ui/gtk4/Apparition.ui:116 resources/ui/gtk3/Apparition.ui:161
msgid "Twirl Intensity"
msgstr ""
#: resources/ui/gtk4/Apparition.ui:162 resources/ui/gtk3/Apparition.ui:210
msgid "Shake Intensity"
msgstr ""
#: resources/ui/gtk4/Apparition.ui:208 resources/ui/gtk3/Apparition.ui:259
msgid "Suction Intensity"
msgstr ""
#: resources/ui/gtk3/Fire.ui:63
msgid "Choose a Preset"
msgstr "Sélectionner un préréglage"
+96 -34
View File
@@ -7,9 +7,9 @@ msgid ""
msgstr ""
"Project-Id-Version: Burn-My-Windows\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-02-18 20:33+0100\n"
"PO-Revision-Date: 2022-02-13 14:57+0000\n"
"Last-Translator: Mario <mario03@gmail.com>\n"
"POT-Creation-Date: 2022-04-05 09:22+0200\n"
"PO-Revision-Date: 2022-02-28 12:56+0000\n"
"Last-Translator: albanobattistella <albano_battistella@hotmail.com>\n"
"Language-Team: Italian <https://hosted.weblate.org/projects/burn-my-windows/"
"core/it/>\n"
"Language: it\n"
@@ -17,17 +17,17 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.11-dev\n"
"X-Generator: Weblate 4.11.1-dev\n"
#: prefs.js:111
#: prefs.js:112
msgid "Effect Options"
msgstr ""
msgstr "Opzioni effetto"
#: prefs.js:139
#: prefs.js:140
msgid "Go Back"
msgstr ""
msgstr "Indietro"
#: prefs.js:181
#: prefs.js:182
msgid "General Options"
msgstr "Opzioni generali"
@@ -48,12 +48,12 @@ msgid "Past Sponsors"
msgstr "Sponsor passati"
#. Translators: %s will be replaced by the effect's name.
#: prefs.js:512
#: prefs.js:510
#, javascript-format
msgid "Preview for %s"
msgstr "Anteprima per %s"
#: prefs.js:534
#: prefs.js:532
msgid "Close this Window to Preview the Effect!"
msgstr "Chiudi questa finestra per visualizzare in anteprima l'effetto!"
@@ -69,6 +69,10 @@ msgstr "Effetto TV"
msgid "T-Rex Attack"
msgstr "Attacco T-Rex"
#: src/SnapOfDisintegration.js:60
msgid "Snap of Disintegration"
msgstr ""
#: src/Wisps.js:55
msgid "Wisps"
msgstr "Scintille"
@@ -97,13 +101,21 @@ msgstr "Brezza Fredda"
msgid "Santa is Coming"
msgstr "Babbo Natale sta arrivando"
#: src/Hexagon.js:53
msgid "Hexagon"
msgstr ""
#: src/EnergizeA.js:54
msgid "Energize A"
msgstr "Energizzare A"
msgstr "Energia A"
#: src/Apparition.js:57
msgid "Apparition"
msgstr ""
#: src/EnergizeB.js:54
msgid "Energize B"
msgstr "Energizzare B"
msgstr "Energia B"
#: src/Matrix.js:58
msgid "Matrix"
@@ -133,17 +145,20 @@ msgstr "Traduci"
msgid "Donate"
msgstr "Donare"
#: resources/ui/common/main-menu.ui:45
#: resources/ui/common/main-menu.ui:41
msgid "About Burn-My-Windows"
msgstr "Informazioni su Burn-My-Windows"
#: resources/ui/gtk4/Matrix.ui:24 resources/ui/gtk4/BrokenGlass.ui:24
#: resources/ui/gtk4/Wisps.ui:24 resources/ui/gtk4/Fire.ui:49
#: resources/ui/gtk4/SnapOfDisintegration.ui:24
#: resources/ui/gtk4/TRexAttack.ui:24 resources/ui/gtk4/TVEffect.ui:24
#: resources/ui/gtk4/EnergizeA.ui:24 resources/ui/gtk4/EnergizeB.ui:24
#: resources/ui/gtk4/EnergizeA.ui:24 resources/ui/gtk4/Hexagon.ui:24
#: resources/ui/gtk4/EnergizeB.ui:24 resources/ui/gtk4/Apparition.ui:24
#: resources/ui/gtk3/Wisps.ui:42 resources/ui/gtk3/Fire.ui:93
#: resources/ui/gtk3/TVEffect.ui:35 resources/ui/gtk3/EnergizeA.ui:42
#: resources/ui/gtk3/EnergizeB.ui:42
#: resources/ui/gtk3/Hexagon.ui:49 resources/ui/gtk3/EnergizeB.ui:42
#: resources/ui/gtk3/Apparition.ui:63
msgid "Animation Time [ms]"
msgstr "Tempo animazione [ms]"
@@ -161,29 +176,43 @@ msgstr "Tempo animazione [ms]"
#: resources/ui/gtk4/TRexAttack.ui:190 resources/ui/gtk4/TRexAttack.ui:224
#: resources/ui/gtk4/TVEffect.ui:52 resources/ui/gtk4/TVEffect.ui:86
#: resources/ui/gtk4/EnergizeA.ui:52 resources/ui/gtk4/EnergizeA.ui:98
#: resources/ui/gtk4/EnergizeA.ui:132 resources/ui/gtk4/EnergizeB.ui:52
#: resources/ui/gtk4/EnergizeA.ui:132 resources/ui/gtk4/Hexagon.ui:52
#: resources/ui/gtk4/Hexagon.ui:98 resources/ui/gtk4/Hexagon.ui:144
#: resources/ui/gtk4/Hexagon.ui:178 resources/ui/gtk4/Hexagon.ui:212
#: resources/ui/gtk4/Hexagon.ui:265 resources/ui/gtk4/EnergizeB.ui:52
#: resources/ui/gtk4/EnergizeB.ui:98 resources/ui/gtk4/EnergizeB.ui:132
#: resources/ui/gtk4/prefs.ui:166 resources/ui/gtk3/Wisps.ui:68
#: resources/ui/gtk3/Wisps.ui:117 resources/ui/gtk3/Wisps.ui:160
#: resources/ui/gtk3/Fire.ui:119 resources/ui/gtk3/Fire.ui:167
#: resources/ui/gtk3/Fire.ui:215 resources/ui/gtk3/Fire.ui:277
#: resources/ui/gtk3/Fire.ui:345 resources/ui/gtk3/TVEffect.ui:61
#: resources/ui/gtk3/TVEffect.ui:104 resources/ui/gtk3/EnergizeA.ui:68
#: resources/ui/gtk3/EnergizeA.ui:117 resources/ui/gtk3/EnergizeA.ui:160
#: resources/ui/gtk3/EnergizeB.ui:68 resources/ui/gtk3/EnergizeB.ui:117
#: resources/ui/gtk3/EnergizeB.ui:160 resources/ui/gtk3/prefs.ui:219
#: resources/ui/gtk4/prefs.ui:166 resources/ui/gtk4/Apparition.ui:52
#: resources/ui/gtk4/Apparition.ui:98 resources/ui/gtk4/Apparition.ui:144
#: resources/ui/gtk4/Apparition.ui:190 resources/ui/gtk4/Apparition.ui:236
#: resources/ui/gtk3/Wisps.ui:68 resources/ui/gtk3/Wisps.ui:117
#: resources/ui/gtk3/Wisps.ui:160 resources/ui/gtk3/Fire.ui:119
#: resources/ui/gtk3/Fire.ui:167 resources/ui/gtk3/Fire.ui:215
#: resources/ui/gtk3/Fire.ui:277 resources/ui/gtk3/Fire.ui:345
#: resources/ui/gtk3/TVEffect.ui:61 resources/ui/gtk3/TVEffect.ui:104
#: resources/ui/gtk3/EnergizeA.ui:68 resources/ui/gtk3/EnergizeA.ui:117
#: resources/ui/gtk3/EnergizeA.ui:160 resources/ui/gtk3/Hexagon.ui:75
#: resources/ui/gtk3/Hexagon.ui:124 resources/ui/gtk3/Hexagon.ui:173
#: resources/ui/gtk3/Hexagon.ui:216 resources/ui/gtk3/Hexagon.ui:259
#: resources/ui/gtk3/Hexagon.ui:321 resources/ui/gtk3/EnergizeB.ui:68
#: resources/ui/gtk3/EnergizeB.ui:117 resources/ui/gtk3/EnergizeB.ui:160
#: resources/ui/gtk3/prefs.ui:219 resources/ui/gtk3/Apparition.ui:89
#: resources/ui/gtk3/Apparition.ui:138 resources/ui/gtk3/Apparition.ui:187
#: resources/ui/gtk3/Apparition.ui:236 resources/ui/gtk3/Apparition.ui:285
msgid "Reset to Default Value"
msgstr "Ripristina valore predefinito"
#: resources/ui/gtk4/Matrix.ui:70 resources/ui/gtk4/BrokenGlass.ui:70
#: resources/ui/gtk4/Wisps.ui:70 resources/ui/gtk4/Fire.ui:95
#: resources/ui/gtk4/EnergizeA.ui:70 resources/ui/gtk4/EnergizeB.ui:70
#: resources/ui/gtk3/Wisps.ui:91 resources/ui/gtk3/Fire.ui:141
#: resources/ui/gtk3/EnergizeA.ui:91 resources/ui/gtk3/EnergizeB.ui:91
#: resources/ui/gtk4/SnapOfDisintegration.ui:70
#: resources/ui/gtk4/EnergizeA.ui:70 resources/ui/gtk4/Hexagon.ui:70
#: resources/ui/gtk4/EnergizeB.ui:70 resources/ui/gtk3/Wisps.ui:91
#: resources/ui/gtk3/Fire.ui:141 resources/ui/gtk3/EnergizeA.ui:91
#: resources/ui/gtk3/Hexagon.ui:98 resources/ui/gtk3/EnergizeB.ui:91
msgid "Scale"
msgstr "Scala"
#: resources/ui/gtk4/Matrix.ui:116
#: resources/ui/gtk4/Matrix.ui:116 resources/ui/gtk4/Apparition.ui:70
#: resources/ui/gtk3/Apparition.ui:112
msgid "Randomness"
msgstr "Casuale"
@@ -219,10 +248,11 @@ msgstr ""
"I frammenti voleranno fuori dal punto in cui si trovava il puntatore del "
"mouse quando chiudi la finestra."
#: resources/ui/gtk4/Wisps.ui:116 resources/ui/gtk4/TVEffect.ui:70
#: resources/ui/gtk4/EnergizeA.ui:116 resources/ui/gtk4/EnergizeB.ui:116
#: resources/ui/gtk3/Wisps.ui:139 resources/ui/gtk3/TVEffect.ui:83
#: resources/ui/gtk3/EnergizeA.ui:139 resources/ui/gtk3/EnergizeB.ui:139
#: resources/ui/gtk4/Wisps.ui:116 resources/ui/gtk4/SnapOfDisintegration.ui:116
#: resources/ui/gtk4/TVEffect.ui:70 resources/ui/gtk4/EnergizeA.ui:116
#: resources/ui/gtk4/EnergizeB.ui:116 resources/ui/gtk3/Wisps.ui:139
#: resources/ui/gtk3/TVEffect.ui:83 resources/ui/gtk3/EnergizeA.ui:139
#: resources/ui/gtk3/EnergizeB.ui:139
msgid "Color"
msgstr "Colore"
@@ -266,6 +296,26 @@ msgstr "Colore Flash"
msgid "Preview this Effect"
msgstr "Anteprima di questo effetto"
#: resources/ui/gtk4/Hexagon.ui:116 resources/ui/gtk3/Hexagon.ui:147
msgid "Mesh Line Width"
msgstr ""
#: resources/ui/gtk4/Hexagon.ui:162 resources/ui/gtk3/Hexagon.ui:195
msgid "Line Color"
msgstr ""
#: resources/ui/gtk4/Hexagon.ui:196 resources/ui/gtk3/Hexagon.ui:238
msgid "Glow Color"
msgstr ""
#: resources/ui/gtk4/Hexagon.ui:234 resources/ui/gtk3/Hexagon.ui:285
msgid "Additive Blending"
msgstr ""
#: resources/ui/gtk4/Hexagon.ui:243 resources/ui/gtk3/Hexagon.ui:294
msgid "You may want to enable this for dark window themes."
msgstr ""
#: resources/ui/gtk4/prefs.ui:28 resources/ui/gtk3/prefs.ui:35
msgid "Welcome to Burn-My-Windows!"
msgstr "Benvenuto in Burn-My-Windows!"
@@ -296,6 +346,18 @@ msgstr "Animazione alla chiusura della finestra"
msgid "Also Add Effects to Dialogs"
msgstr "Aggiungi anche effetti ai dialoghi"
#: resources/ui/gtk4/Apparition.ui:116 resources/ui/gtk3/Apparition.ui:161
msgid "Twirl Intensity"
msgstr ""
#: resources/ui/gtk4/Apparition.ui:162 resources/ui/gtk3/Apparition.ui:210
msgid "Shake Intensity"
msgstr ""
#: resources/ui/gtk4/Apparition.ui:208 resources/ui/gtk3/Apparition.ui:259
msgid "Suction Intensity"
msgstr ""
#: resources/ui/gtk3/Fire.ui:63
msgid "Choose a Preset"
msgstr "Scegli un predefinito"
+89 -27
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Burn-My-Windows\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-02-18 20:33+0100\n"
"POT-Creation-Date: 2022-04-05 09:22+0200\n"
"PO-Revision-Date: 2022-01-29 12:30+0000\n"
"Last-Translator: Allan Nordhøy <epost@anotheragency.no>\n"
"Language-Team: Norwegian Bokmål <https://hosted.weblate.org/projects/burn-my-"
@@ -19,15 +19,15 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.11-dev\n"
#: prefs.js:111
#: prefs.js:112
msgid "Effect Options"
msgstr ""
#: prefs.js:139
#: prefs.js:140
msgid "Go Back"
msgstr ""
#: prefs.js:181
#: prefs.js:182
msgid "General Options"
msgstr ""
@@ -48,12 +48,12 @@ msgid "Past Sponsors"
msgstr ""
#. Translators: %s will be replaced by the effect's name.
#: prefs.js:512
#: prefs.js:510
#, javascript-format
msgid "Preview for %s"
msgstr ""
#: prefs.js:534
#: prefs.js:532
msgid "Close this Window to Preview the Effect!"
msgstr ""
@@ -69,6 +69,10 @@ msgstr ""
msgid "T-Rex Attack"
msgstr ""
#: src/SnapOfDisintegration.js:60
msgid "Snap of Disintegration"
msgstr ""
#: src/Wisps.js:55
msgid "Wisps"
msgstr ""
@@ -97,10 +101,18 @@ msgstr ""
msgid "Santa is Coming"
msgstr ""
#: src/Hexagon.js:53
msgid "Hexagon"
msgstr ""
#: src/EnergizeA.js:54
msgid "Energize A"
msgstr ""
#: src/Apparition.js:57
msgid "Apparition"
msgstr ""
#: src/EnergizeB.js:54
msgid "Energize B"
msgstr ""
@@ -133,17 +145,20 @@ msgstr "Oversett"
msgid "Donate"
msgstr "Doner"
#: resources/ui/common/main-menu.ui:45
#: resources/ui/common/main-menu.ui:41
msgid "About Burn-My-Windows"
msgstr ""
#: resources/ui/gtk4/Matrix.ui:24 resources/ui/gtk4/BrokenGlass.ui:24
#: resources/ui/gtk4/Wisps.ui:24 resources/ui/gtk4/Fire.ui:49
#: resources/ui/gtk4/SnapOfDisintegration.ui:24
#: resources/ui/gtk4/TRexAttack.ui:24 resources/ui/gtk4/TVEffect.ui:24
#: resources/ui/gtk4/EnergizeA.ui:24 resources/ui/gtk4/EnergizeB.ui:24
#: resources/ui/gtk4/EnergizeA.ui:24 resources/ui/gtk4/Hexagon.ui:24
#: resources/ui/gtk4/EnergizeB.ui:24 resources/ui/gtk4/Apparition.ui:24
#: resources/ui/gtk3/Wisps.ui:42 resources/ui/gtk3/Fire.ui:93
#: resources/ui/gtk3/TVEffect.ui:35 resources/ui/gtk3/EnergizeA.ui:42
#: resources/ui/gtk3/EnergizeB.ui:42
#: resources/ui/gtk3/Hexagon.ui:49 resources/ui/gtk3/EnergizeB.ui:42
#: resources/ui/gtk3/Apparition.ui:63
msgid "Animation Time [ms]"
msgstr "Animasjonstid [ms]"
@@ -161,29 +176,43 @@ msgstr "Animasjonstid [ms]"
#: resources/ui/gtk4/TRexAttack.ui:190 resources/ui/gtk4/TRexAttack.ui:224
#: resources/ui/gtk4/TVEffect.ui:52 resources/ui/gtk4/TVEffect.ui:86
#: resources/ui/gtk4/EnergizeA.ui:52 resources/ui/gtk4/EnergizeA.ui:98
#: resources/ui/gtk4/EnergizeA.ui:132 resources/ui/gtk4/EnergizeB.ui:52
#: resources/ui/gtk4/EnergizeA.ui:132 resources/ui/gtk4/Hexagon.ui:52
#: resources/ui/gtk4/Hexagon.ui:98 resources/ui/gtk4/Hexagon.ui:144
#: resources/ui/gtk4/Hexagon.ui:178 resources/ui/gtk4/Hexagon.ui:212
#: resources/ui/gtk4/Hexagon.ui:265 resources/ui/gtk4/EnergizeB.ui:52
#: resources/ui/gtk4/EnergizeB.ui:98 resources/ui/gtk4/EnergizeB.ui:132
#: resources/ui/gtk4/prefs.ui:166 resources/ui/gtk3/Wisps.ui:68
#: resources/ui/gtk3/Wisps.ui:117 resources/ui/gtk3/Wisps.ui:160
#: resources/ui/gtk3/Fire.ui:119 resources/ui/gtk3/Fire.ui:167
#: resources/ui/gtk3/Fire.ui:215 resources/ui/gtk3/Fire.ui:277
#: resources/ui/gtk3/Fire.ui:345 resources/ui/gtk3/TVEffect.ui:61
#: resources/ui/gtk3/TVEffect.ui:104 resources/ui/gtk3/EnergizeA.ui:68
#: resources/ui/gtk3/EnergizeA.ui:117 resources/ui/gtk3/EnergizeA.ui:160
#: resources/ui/gtk3/EnergizeB.ui:68 resources/ui/gtk3/EnergizeB.ui:117
#: resources/ui/gtk3/EnergizeB.ui:160 resources/ui/gtk3/prefs.ui:219
#: resources/ui/gtk4/prefs.ui:166 resources/ui/gtk4/Apparition.ui:52
#: resources/ui/gtk4/Apparition.ui:98 resources/ui/gtk4/Apparition.ui:144
#: resources/ui/gtk4/Apparition.ui:190 resources/ui/gtk4/Apparition.ui:236
#: resources/ui/gtk3/Wisps.ui:68 resources/ui/gtk3/Wisps.ui:117
#: resources/ui/gtk3/Wisps.ui:160 resources/ui/gtk3/Fire.ui:119
#: resources/ui/gtk3/Fire.ui:167 resources/ui/gtk3/Fire.ui:215
#: resources/ui/gtk3/Fire.ui:277 resources/ui/gtk3/Fire.ui:345
#: resources/ui/gtk3/TVEffect.ui:61 resources/ui/gtk3/TVEffect.ui:104
#: resources/ui/gtk3/EnergizeA.ui:68 resources/ui/gtk3/EnergizeA.ui:117
#: resources/ui/gtk3/EnergizeA.ui:160 resources/ui/gtk3/Hexagon.ui:75
#: resources/ui/gtk3/Hexagon.ui:124 resources/ui/gtk3/Hexagon.ui:173
#: resources/ui/gtk3/Hexagon.ui:216 resources/ui/gtk3/Hexagon.ui:259
#: resources/ui/gtk3/Hexagon.ui:321 resources/ui/gtk3/EnergizeB.ui:68
#: resources/ui/gtk3/EnergizeB.ui:117 resources/ui/gtk3/EnergizeB.ui:160
#: resources/ui/gtk3/prefs.ui:219 resources/ui/gtk3/Apparition.ui:89
#: resources/ui/gtk3/Apparition.ui:138 resources/ui/gtk3/Apparition.ui:187
#: resources/ui/gtk3/Apparition.ui:236 resources/ui/gtk3/Apparition.ui:285
msgid "Reset to Default Value"
msgstr ""
#: resources/ui/gtk4/Matrix.ui:70 resources/ui/gtk4/BrokenGlass.ui:70
#: resources/ui/gtk4/Wisps.ui:70 resources/ui/gtk4/Fire.ui:95
#: resources/ui/gtk4/EnergizeA.ui:70 resources/ui/gtk4/EnergizeB.ui:70
#: resources/ui/gtk3/Wisps.ui:91 resources/ui/gtk3/Fire.ui:141
#: resources/ui/gtk3/EnergizeA.ui:91 resources/ui/gtk3/EnergizeB.ui:91
#: resources/ui/gtk4/SnapOfDisintegration.ui:70
#: resources/ui/gtk4/EnergizeA.ui:70 resources/ui/gtk4/Hexagon.ui:70
#: resources/ui/gtk4/EnergizeB.ui:70 resources/ui/gtk3/Wisps.ui:91
#: resources/ui/gtk3/Fire.ui:141 resources/ui/gtk3/EnergizeA.ui:91
#: resources/ui/gtk3/Hexagon.ui:98 resources/ui/gtk3/EnergizeB.ui:91
msgid "Scale"
msgstr ""
#: resources/ui/gtk4/Matrix.ui:116
#: resources/ui/gtk4/Matrix.ui:116 resources/ui/gtk4/Apparition.ui:70
#: resources/ui/gtk3/Apparition.ui:112
msgid "Randomness"
msgstr ""
@@ -217,10 +246,11 @@ msgid ""
"window."
msgstr ""
#: resources/ui/gtk4/Wisps.ui:116 resources/ui/gtk4/TVEffect.ui:70
#: resources/ui/gtk4/EnergizeA.ui:116 resources/ui/gtk4/EnergizeB.ui:116
#: resources/ui/gtk3/Wisps.ui:139 resources/ui/gtk3/TVEffect.ui:83
#: resources/ui/gtk3/EnergizeA.ui:139 resources/ui/gtk3/EnergizeB.ui:139
#: resources/ui/gtk4/Wisps.ui:116 resources/ui/gtk4/SnapOfDisintegration.ui:116
#: resources/ui/gtk4/TVEffect.ui:70 resources/ui/gtk4/EnergizeA.ui:116
#: resources/ui/gtk4/EnergizeB.ui:116 resources/ui/gtk3/Wisps.ui:139
#: resources/ui/gtk3/TVEffect.ui:83 resources/ui/gtk3/EnergizeA.ui:139
#: resources/ui/gtk3/EnergizeB.ui:139
msgid "Color"
msgstr ""
@@ -264,6 +294,26 @@ msgstr ""
msgid "Preview this Effect"
msgstr ""
#: resources/ui/gtk4/Hexagon.ui:116 resources/ui/gtk3/Hexagon.ui:147
msgid "Mesh Line Width"
msgstr ""
#: resources/ui/gtk4/Hexagon.ui:162 resources/ui/gtk3/Hexagon.ui:195
msgid "Line Color"
msgstr ""
#: resources/ui/gtk4/Hexagon.ui:196 resources/ui/gtk3/Hexagon.ui:238
msgid "Glow Color"
msgstr ""
#: resources/ui/gtk4/Hexagon.ui:234 resources/ui/gtk3/Hexagon.ui:285
msgid "Additive Blending"
msgstr ""
#: resources/ui/gtk4/Hexagon.ui:243 resources/ui/gtk3/Hexagon.ui:294
msgid "You may want to enable this for dark window themes."
msgstr ""
#: resources/ui/gtk4/prefs.ui:28 resources/ui/gtk3/prefs.ui:35
msgid "Welcome to Burn-My-Windows!"
msgstr ""
@@ -294,6 +344,18 @@ msgstr ""
msgid "Also Add Effects to Dialogs"
msgstr ""
#: resources/ui/gtk4/Apparition.ui:116 resources/ui/gtk3/Apparition.ui:161
msgid "Twirl Intensity"
msgstr ""
#: resources/ui/gtk4/Apparition.ui:162 resources/ui/gtk3/Apparition.ui:210
msgid "Shake Intensity"
msgstr ""
#: resources/ui/gtk4/Apparition.ui:208 resources/ui/gtk3/Apparition.ui:259
msgid "Suction Intensity"
msgstr ""
#: resources/ui/gtk3/Fire.ui:63
msgid "Choose a Preset"
msgstr ""
+93 -31
View File
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Burn-My-Windows\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-02-18 20:33+0100\n"
"PO-Revision-Date: 2022-02-05 12:53+0000\n"
"POT-Creation-Date: 2022-04-05 09:22+0200\n"
"PO-Revision-Date: 2022-04-05 18:37+0000\n"
"Last-Translator: Heimen Stoffels <vistausss@fastmail.com>\n"
"Language-Team: Dutch <https://hosted.weblate.org/projects/burn-my-windows/"
"core/nl/>\n"
@@ -17,17 +17,17 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.11-dev\n"
"X-Generator: Weblate 4.12-dev\n"
#: prefs.js:111
#: prefs.js:112
msgid "Effect Options"
msgstr ""
msgstr "Effectvoorkeuren"
#: prefs.js:139
#: prefs.js:140
msgid "Go Back"
msgstr ""
msgstr "Scherm sluiten"
#: prefs.js:181
#: prefs.js:182
msgid "General Options"
msgstr "Algemene voorkeuren"
@@ -48,12 +48,12 @@ msgid "Past Sponsors"
msgstr "Voormalige sponsoren"
#. Translators: %s will be replaced by the effect's name.
#: prefs.js:512
#: prefs.js:510
#, javascript-format
msgid "Preview for %s"
msgstr "%s-voorvertoning"
#: prefs.js:534
#: prefs.js:532
msgid "Close this Window to Preview the Effect!"
msgstr "Sluit dit venster om het effect voor te vertonen."
@@ -69,6 +69,10 @@ msgstr "Tv-effect"
msgid "T-Rex Attack"
msgstr "T-Rex-aanval"
#: src/SnapOfDisintegration.js:60
msgid "Snap of Disintegration"
msgstr "Uiteenvallen"
#: src/Wisps.js:55
msgid "Wisps"
msgstr "Dwaallicht"
@@ -97,10 +101,18 @@ msgstr "Koude wind"
msgid "Santa is Coming"
msgstr "Kerstmanvuur"
#: src/Hexagon.js:53
msgid "Hexagon"
msgstr "Hexagon"
#: src/EnergizeA.js:54
msgid "Energize A"
msgstr "Stimulatie A"
#: src/Apparition.js:57
msgid "Apparition"
msgstr "Verschijning"
#: src/EnergizeB.js:54
msgid "Energize B"
msgstr "Stimulatie B"
@@ -133,17 +145,20 @@ msgstr "Vertalen"
msgid "Donate"
msgstr "Doneren"
#: resources/ui/common/main-menu.ui:45
#: resources/ui/common/main-menu.ui:41
msgid "About Burn-My-Windows"
msgstr "Over Burn-My-Windows"
#: resources/ui/gtk4/Matrix.ui:24 resources/ui/gtk4/BrokenGlass.ui:24
#: resources/ui/gtk4/Wisps.ui:24 resources/ui/gtk4/Fire.ui:49
#: resources/ui/gtk4/SnapOfDisintegration.ui:24
#: resources/ui/gtk4/TRexAttack.ui:24 resources/ui/gtk4/TVEffect.ui:24
#: resources/ui/gtk4/EnergizeA.ui:24 resources/ui/gtk4/EnergizeB.ui:24
#: resources/ui/gtk4/EnergizeA.ui:24 resources/ui/gtk4/Hexagon.ui:24
#: resources/ui/gtk4/EnergizeB.ui:24 resources/ui/gtk4/Apparition.ui:24
#: resources/ui/gtk3/Wisps.ui:42 resources/ui/gtk3/Fire.ui:93
#: resources/ui/gtk3/TVEffect.ui:35 resources/ui/gtk3/EnergizeA.ui:42
#: resources/ui/gtk3/EnergizeB.ui:42
#: resources/ui/gtk3/Hexagon.ui:49 resources/ui/gtk3/EnergizeB.ui:42
#: resources/ui/gtk3/Apparition.ui:63
msgid "Animation Time [ms]"
msgstr "Animatieduur [in ms]"
@@ -161,29 +176,43 @@ msgstr "Animatieduur [in ms]"
#: resources/ui/gtk4/TRexAttack.ui:190 resources/ui/gtk4/TRexAttack.ui:224
#: resources/ui/gtk4/TVEffect.ui:52 resources/ui/gtk4/TVEffect.ui:86
#: resources/ui/gtk4/EnergizeA.ui:52 resources/ui/gtk4/EnergizeA.ui:98
#: resources/ui/gtk4/EnergizeA.ui:132 resources/ui/gtk4/EnergizeB.ui:52
#: resources/ui/gtk4/EnergizeA.ui:132 resources/ui/gtk4/Hexagon.ui:52
#: resources/ui/gtk4/Hexagon.ui:98 resources/ui/gtk4/Hexagon.ui:144
#: resources/ui/gtk4/Hexagon.ui:178 resources/ui/gtk4/Hexagon.ui:212
#: resources/ui/gtk4/Hexagon.ui:265 resources/ui/gtk4/EnergizeB.ui:52
#: resources/ui/gtk4/EnergizeB.ui:98 resources/ui/gtk4/EnergizeB.ui:132
#: resources/ui/gtk4/prefs.ui:166 resources/ui/gtk3/Wisps.ui:68
#: resources/ui/gtk3/Wisps.ui:117 resources/ui/gtk3/Wisps.ui:160
#: resources/ui/gtk3/Fire.ui:119 resources/ui/gtk3/Fire.ui:167
#: resources/ui/gtk3/Fire.ui:215 resources/ui/gtk3/Fire.ui:277
#: resources/ui/gtk3/Fire.ui:345 resources/ui/gtk3/TVEffect.ui:61
#: resources/ui/gtk3/TVEffect.ui:104 resources/ui/gtk3/EnergizeA.ui:68
#: resources/ui/gtk3/EnergizeA.ui:117 resources/ui/gtk3/EnergizeA.ui:160
#: resources/ui/gtk3/EnergizeB.ui:68 resources/ui/gtk3/EnergizeB.ui:117
#: resources/ui/gtk3/EnergizeB.ui:160 resources/ui/gtk3/prefs.ui:219
#: resources/ui/gtk4/prefs.ui:166 resources/ui/gtk4/Apparition.ui:52
#: resources/ui/gtk4/Apparition.ui:98 resources/ui/gtk4/Apparition.ui:144
#: resources/ui/gtk4/Apparition.ui:190 resources/ui/gtk4/Apparition.ui:236
#: resources/ui/gtk3/Wisps.ui:68 resources/ui/gtk3/Wisps.ui:117
#: resources/ui/gtk3/Wisps.ui:160 resources/ui/gtk3/Fire.ui:119
#: resources/ui/gtk3/Fire.ui:167 resources/ui/gtk3/Fire.ui:215
#: resources/ui/gtk3/Fire.ui:277 resources/ui/gtk3/Fire.ui:345
#: resources/ui/gtk3/TVEffect.ui:61 resources/ui/gtk3/TVEffect.ui:104
#: resources/ui/gtk3/EnergizeA.ui:68 resources/ui/gtk3/EnergizeA.ui:117
#: resources/ui/gtk3/EnergizeA.ui:160 resources/ui/gtk3/Hexagon.ui:75
#: resources/ui/gtk3/Hexagon.ui:124 resources/ui/gtk3/Hexagon.ui:173
#: resources/ui/gtk3/Hexagon.ui:216 resources/ui/gtk3/Hexagon.ui:259
#: resources/ui/gtk3/Hexagon.ui:321 resources/ui/gtk3/EnergizeB.ui:68
#: resources/ui/gtk3/EnergizeB.ui:117 resources/ui/gtk3/EnergizeB.ui:160
#: resources/ui/gtk3/prefs.ui:219 resources/ui/gtk3/Apparition.ui:89
#: resources/ui/gtk3/Apparition.ui:138 resources/ui/gtk3/Apparition.ui:187
#: resources/ui/gtk3/Apparition.ui:236 resources/ui/gtk3/Apparition.ui:285
msgid "Reset to Default Value"
msgstr "Standaardwaarde herstellen"
#: resources/ui/gtk4/Matrix.ui:70 resources/ui/gtk4/BrokenGlass.ui:70
#: resources/ui/gtk4/Wisps.ui:70 resources/ui/gtk4/Fire.ui:95
#: resources/ui/gtk4/EnergizeA.ui:70 resources/ui/gtk4/EnergizeB.ui:70
#: resources/ui/gtk3/Wisps.ui:91 resources/ui/gtk3/Fire.ui:141
#: resources/ui/gtk3/EnergizeA.ui:91 resources/ui/gtk3/EnergizeB.ui:91
#: resources/ui/gtk4/SnapOfDisintegration.ui:70
#: resources/ui/gtk4/EnergizeA.ui:70 resources/ui/gtk4/Hexagon.ui:70
#: resources/ui/gtk4/EnergizeB.ui:70 resources/ui/gtk3/Wisps.ui:91
#: resources/ui/gtk3/Fire.ui:141 resources/ui/gtk3/EnergizeA.ui:91
#: resources/ui/gtk3/Hexagon.ui:98 resources/ui/gtk3/EnergizeB.ui:91
msgid "Scale"
msgstr "Schaal"
#: resources/ui/gtk4/Matrix.ui:116
#: resources/ui/gtk4/Matrix.ui:116 resources/ui/gtk4/Apparition.ui:70
#: resources/ui/gtk3/Apparition.ui:112
msgid "Randomness"
msgstr "Willekeurigheid"
@@ -218,10 +247,11 @@ msgid ""
msgstr ""
"De stukken vliegen weg vanaf de cursorpositie na het sluiten van een venster."
#: resources/ui/gtk4/Wisps.ui:116 resources/ui/gtk4/TVEffect.ui:70
#: resources/ui/gtk4/EnergizeA.ui:116 resources/ui/gtk4/EnergizeB.ui:116
#: resources/ui/gtk3/Wisps.ui:139 resources/ui/gtk3/TVEffect.ui:83
#: resources/ui/gtk3/EnergizeA.ui:139 resources/ui/gtk3/EnergizeB.ui:139
#: resources/ui/gtk4/Wisps.ui:116 resources/ui/gtk4/SnapOfDisintegration.ui:116
#: resources/ui/gtk4/TVEffect.ui:70 resources/ui/gtk4/EnergizeA.ui:116
#: resources/ui/gtk4/EnergizeB.ui:116 resources/ui/gtk3/Wisps.ui:139
#: resources/ui/gtk3/TVEffect.ui:83 resources/ui/gtk3/EnergizeA.ui:139
#: resources/ui/gtk3/EnergizeB.ui:139
msgid "Color"
msgstr "Kleur"
@@ -265,6 +295,26 @@ msgstr "Flitskleur"
msgid "Preview this Effect"
msgstr "Voorvertonen"
#: resources/ui/gtk4/Hexagon.ui:116 resources/ui/gtk3/Hexagon.ui:147
msgid "Mesh Line Width"
msgstr "Gaaslijnbreedte"
#: resources/ui/gtk4/Hexagon.ui:162 resources/ui/gtk3/Hexagon.ui:195
msgid "Line Color"
msgstr "Lijnkleur"
#: resources/ui/gtk4/Hexagon.ui:196 resources/ui/gtk3/Hexagon.ui:238
msgid "Glow Color"
msgstr "Gloeikleur"
#: resources/ui/gtk4/Hexagon.ui:234 resources/ui/gtk3/Hexagon.ui:285
msgid "Additive Blending"
msgstr "Overvloeien"
#: resources/ui/gtk4/Hexagon.ui:243 resources/ui/gtk3/Hexagon.ui:294
msgid "You may want to enable this for dark window themes."
msgstr "Dit is mogelijk nuttig bij het gebruik van donkere thema's."
#: resources/ui/gtk4/prefs.ui:28 resources/ui/gtk3/prefs.ui:35
msgid "Welcome to Burn-My-Windows!"
msgstr "Welkom bij ‘Burn-My-Windows’!"
@@ -297,6 +347,18 @@ msgstr "Animatie bij sluiten van vensters"
msgid "Also Add Effects to Dialogs"
msgstr "Dialoogvensters ook voorzien van effecten"
#: resources/ui/gtk4/Apparition.ui:116 resources/ui/gtk3/Apparition.ui:161
msgid "Twirl Intensity"
msgstr "Wervelintensiteit"
#: resources/ui/gtk4/Apparition.ui:162 resources/ui/gtk3/Apparition.ui:210
msgid "Shake Intensity"
msgstr "Schudintensiteit"
#: resources/ui/gtk4/Apparition.ui:208 resources/ui/gtk3/Apparition.ui:259
msgid "Suction Intensity"
msgstr "Zuigintensiteit"
#: resources/ui/gtk3/Fire.ui:63
msgid "Choose a Preset"
msgstr "Kies een voorinstelling"
+364
View File
@@ -0,0 +1,364 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR Simon Schneegans
# This file is distributed under the same license as the Burn-My-Windows package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: Burn-My-Windows\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-04-05 09:22+0200\n"
"PO-Revision-Date: 2022-03-31 11:07+0000\n"
"Last-Translator: Егор Ермаков <eg.ermakov2016@gmail.com>\n"
"Language-Team: Russian <https://hosted.weblate.org/projects/burn-my-windows/"
"core/ru/>\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Weblate 4.12-dev\n"
#: prefs.js:112
msgid "Effect Options"
msgstr "Параметры эффекта"
#: prefs.js:140
msgid "Go Back"
msgstr "Назад"
#: prefs.js:182
msgid "General Options"
msgstr "Общие настройки"
#: prefs.js:276
msgid "Gold Sponsors"
msgstr "Золотые спонсоры"
#: prefs.js:279
msgid "Silver Sponsors"
msgstr "Серебряные спонсоры"
#: prefs.js:282
msgid "Bronze Sponsors"
msgstr "Бронзовые спонсоры"
#: prefs.js:285
msgid "Past Sponsors"
msgstr "Прошлые спонсоры"
#. Translators: %s will be replaced by the effect's name.
#: prefs.js:510
#, javascript-format
msgid "Preview for %s"
msgstr "Предпросмотр %s"
#: prefs.js:532
msgid "Close this Window to Preview the Effect!"
msgstr "Закройте это окно для предпросмотра эффекта!"
#: src/BrokenGlass.js:57
msgid "Broken Glass"
msgstr "Разбитое стекло"
#: src/TVEffect.js:56
msgid "TV Effect"
msgstr "Эффект ЭЛТ"
#: src/TRexAttack.js:56
msgid "T-Rex Attack"
msgstr "Атака тираннозавра"
#: src/SnapOfDisintegration.js:60
msgid "Snap of Disintegration"
msgstr ""
#: src/Wisps.js:55
msgid "Wisps"
msgstr "Огоньки"
#: src/Fire.js:58
msgid "Fire"
msgstr "Огонь"
#: src/Fire.js:130
msgid "Default Fire"
msgstr "Обычный огонь"
#: src/Fire.js:140
msgid "Hell Fire"
msgstr "Адское пламя"
#: src/Fire.js:150
msgid "Dark and Smutty"
msgstr "Тёмный и грязный"
#: src/Fire.js:160
msgid "Cold Breeze"
msgstr "Холодный бриз"
#: src/Fire.js:170
msgid "Santa is Coming"
msgstr "Дед Мороз идёт"
#: src/Hexagon.js:53
msgid "Hexagon"
msgstr ""
#: src/EnergizeA.js:54
msgid "Energize A"
msgstr "Энергия A"
#: src/Apparition.js:57
msgid "Apparition"
msgstr ""
#: src/EnergizeB.js:54
msgid "Energize B"
msgstr "Энергия B"
#: src/Matrix.js:58
msgid "Matrix"
msgstr "Матрица"
#: resources/ui/common/main-menu.ui:6
msgid "Visit Homepage"
msgstr "Посетить страницу проекта"
#: resources/ui/common/main-menu.ui:10
msgid "View Changelog"
msgstr "Просмотреть список изменений"
#: resources/ui/common/main-menu.ui:16
msgid "Report a Bug"
msgstr "Сообщить об ошибке"
#: resources/ui/common/main-menu.ui:20
msgid "Create an Effect"
msgstr "Создать эффект"
#: resources/ui/common/main-menu.ui:24
msgid "Translate"
msgstr "Перевести"
#: resources/ui/common/main-menu.ui:28
msgid "Donate"
msgstr "Пожертвовать"
#: resources/ui/common/main-menu.ui:41
msgid "About Burn-My-Windows"
msgstr "О Burn-My-Windows"
#: resources/ui/gtk4/Matrix.ui:24 resources/ui/gtk4/BrokenGlass.ui:24
#: resources/ui/gtk4/Wisps.ui:24 resources/ui/gtk4/Fire.ui:49
#: resources/ui/gtk4/SnapOfDisintegration.ui:24
#: resources/ui/gtk4/TRexAttack.ui:24 resources/ui/gtk4/TVEffect.ui:24
#: resources/ui/gtk4/EnergizeA.ui:24 resources/ui/gtk4/Hexagon.ui:24
#: resources/ui/gtk4/EnergizeB.ui:24 resources/ui/gtk4/Apparition.ui:24
#: resources/ui/gtk3/Wisps.ui:42 resources/ui/gtk3/Fire.ui:93
#: resources/ui/gtk3/TVEffect.ui:35 resources/ui/gtk3/EnergizeA.ui:42
#: resources/ui/gtk3/Hexagon.ui:49 resources/ui/gtk3/EnergizeB.ui:42
#: resources/ui/gtk3/Apparition.ui:63
msgid "Animation Time [ms]"
msgstr "Время анимации (мс)"
#: resources/ui/gtk4/Matrix.ui:52 resources/ui/gtk4/Matrix.ui:98
#: resources/ui/gtk4/Matrix.ui:144 resources/ui/gtk4/Matrix.ui:190
#: resources/ui/gtk4/Matrix.ui:224 resources/ui/gtk4/Matrix.ui:258
#: resources/ui/gtk4/BrokenGlass.ui:52 resources/ui/gtk4/BrokenGlass.ui:98
#: resources/ui/gtk4/BrokenGlass.ui:144 resources/ui/gtk4/BrokenGlass.ui:190
#: resources/ui/gtk4/BrokenGlass.ui:244 resources/ui/gtk4/Wisps.ui:52
#: resources/ui/gtk4/Wisps.ui:98 resources/ui/gtk4/Wisps.ui:132
#: resources/ui/gtk4/Fire.ui:77 resources/ui/gtk4/Fire.ui:123
#: resources/ui/gtk4/Fire.ui:169 resources/ui/gtk4/Fire.ui:222
#: resources/ui/gtk4/Fire.ui:280 resources/ui/gtk4/TRexAttack.ui:52
#: resources/ui/gtk4/TRexAttack.ui:98 resources/ui/gtk4/TRexAttack.ui:144
#: resources/ui/gtk4/TRexAttack.ui:190 resources/ui/gtk4/TRexAttack.ui:224
#: resources/ui/gtk4/TVEffect.ui:52 resources/ui/gtk4/TVEffect.ui:86
#: resources/ui/gtk4/EnergizeA.ui:52 resources/ui/gtk4/EnergizeA.ui:98
#: resources/ui/gtk4/EnergizeA.ui:132 resources/ui/gtk4/Hexagon.ui:52
#: resources/ui/gtk4/Hexagon.ui:98 resources/ui/gtk4/Hexagon.ui:144
#: resources/ui/gtk4/Hexagon.ui:178 resources/ui/gtk4/Hexagon.ui:212
#: resources/ui/gtk4/Hexagon.ui:265 resources/ui/gtk4/EnergizeB.ui:52
#: resources/ui/gtk4/EnergizeB.ui:98 resources/ui/gtk4/EnergizeB.ui:132
#: resources/ui/gtk4/prefs.ui:166 resources/ui/gtk4/Apparition.ui:52
#: resources/ui/gtk4/Apparition.ui:98 resources/ui/gtk4/Apparition.ui:144
#: resources/ui/gtk4/Apparition.ui:190 resources/ui/gtk4/Apparition.ui:236
#: resources/ui/gtk3/Wisps.ui:68 resources/ui/gtk3/Wisps.ui:117
#: resources/ui/gtk3/Wisps.ui:160 resources/ui/gtk3/Fire.ui:119
#: resources/ui/gtk3/Fire.ui:167 resources/ui/gtk3/Fire.ui:215
#: resources/ui/gtk3/Fire.ui:277 resources/ui/gtk3/Fire.ui:345
#: resources/ui/gtk3/TVEffect.ui:61 resources/ui/gtk3/TVEffect.ui:104
#: resources/ui/gtk3/EnergizeA.ui:68 resources/ui/gtk3/EnergizeA.ui:117
#: resources/ui/gtk3/EnergizeA.ui:160 resources/ui/gtk3/Hexagon.ui:75
#: resources/ui/gtk3/Hexagon.ui:124 resources/ui/gtk3/Hexagon.ui:173
#: resources/ui/gtk3/Hexagon.ui:216 resources/ui/gtk3/Hexagon.ui:259
#: resources/ui/gtk3/Hexagon.ui:321 resources/ui/gtk3/EnergizeB.ui:68
#: resources/ui/gtk3/EnergizeB.ui:117 resources/ui/gtk3/EnergizeB.ui:160
#: resources/ui/gtk3/prefs.ui:219 resources/ui/gtk3/Apparition.ui:89
#: resources/ui/gtk3/Apparition.ui:138 resources/ui/gtk3/Apparition.ui:187
#: resources/ui/gtk3/Apparition.ui:236 resources/ui/gtk3/Apparition.ui:285
msgid "Reset to Default Value"
msgstr "Сброс на значение по умолчанию"
#: resources/ui/gtk4/Matrix.ui:70 resources/ui/gtk4/BrokenGlass.ui:70
#: resources/ui/gtk4/Wisps.ui:70 resources/ui/gtk4/Fire.ui:95
#: resources/ui/gtk4/SnapOfDisintegration.ui:70
#: resources/ui/gtk4/EnergizeA.ui:70 resources/ui/gtk4/Hexagon.ui:70
#: resources/ui/gtk4/EnergizeB.ui:70 resources/ui/gtk3/Wisps.ui:91
#: resources/ui/gtk3/Fire.ui:141 resources/ui/gtk3/EnergizeA.ui:91
#: resources/ui/gtk3/Hexagon.ui:98 resources/ui/gtk3/EnergizeB.ui:91
msgid "Scale"
msgstr "Масштаб"
#: resources/ui/gtk4/Matrix.ui:116 resources/ui/gtk4/Apparition.ui:70
#: resources/ui/gtk3/Apparition.ui:112
msgid "Randomness"
msgstr "Случайность"
#: resources/ui/gtk4/Matrix.ui:162
msgid "Vertical Overshooting"
msgstr "Вертикальное превышение"
#: resources/ui/gtk4/Matrix.ui:208
msgid "Trail Color"
msgstr "Цвет следа"
#: resources/ui/gtk4/Matrix.ui:242
msgid "Tip Color"
msgstr "Цвет наконечника"
#: resources/ui/gtk4/BrokenGlass.ui:116
msgid "Gravity"
msgstr "Гравитация"
#: resources/ui/gtk4/BrokenGlass.ui:162
msgid "Blow Force"
msgstr "Сила удара"
#: resources/ui/gtk4/BrokenGlass.ui:212
msgid "Shatter From Pointer Location"
msgstr "Разбить от положения курсора"
#: resources/ui/gtk4/BrokenGlass.ui:221
msgid ""
"The shards will fly away from where your mouse pointer was when closing the "
"window."
msgstr ""
"Осколки разлетятся в стороны от того места, где находился курсор мыши при "
"закрытии окна."
#: resources/ui/gtk4/Wisps.ui:116 resources/ui/gtk4/SnapOfDisintegration.ui:116
#: resources/ui/gtk4/TVEffect.ui:70 resources/ui/gtk4/EnergizeA.ui:116
#: resources/ui/gtk4/EnergizeB.ui:116 resources/ui/gtk3/Wisps.ui:139
#: resources/ui/gtk3/TVEffect.ui:83 resources/ui/gtk3/EnergizeA.ui:139
#: resources/ui/gtk3/EnergizeB.ui:139
msgid "Color"
msgstr "Цвет"
#: resources/ui/gtk4/Fire.ui:25 resources/ui/gtk3/Fire.ui:49
msgid "Presets"
msgstr "Пресеты"
#: resources/ui/gtk4/Fire.ui:141 resources/ui/gtk3/Fire.ui:189
msgid "Speed"
msgstr "Скорость"
#: resources/ui/gtk4/Fire.ui:191 resources/ui/gtk3/Fire.ui:241
msgid "3D Noise"
msgstr "3D Шум"
#: resources/ui/gtk4/Fire.ui:200 resources/ui/gtk3/Fire.ui:250
msgid "Creates a more dynamic fire but requires more GPU power."
msgstr "Создает более динамичный огонь, но требует большей мощности GPU."
#: resources/ui/gtk4/Fire.ui:240 resources/ui/gtk3/Fire.ui:300
msgid "Gradient"
msgstr "Градиент"
#: resources/ui/gtk4/TRexAttack.ui:70
msgid "Claw Scratch Scale"
msgstr "Масштаб царапин"
#: resources/ui/gtk4/TRexAttack.ui:116
msgid "Claw Scratch Count"
msgstr "Количество царапин"
#: resources/ui/gtk4/TRexAttack.ui:162
msgid "Warp Effect"
msgstr "Эффект искривления"
#: resources/ui/gtk4/TRexAttack.ui:208
msgid "Flash Color"
msgstr "Цвет вспышки"
#: resources/ui/gtk4/effectPage.ui:37 resources/ui/gtk3/effectPage.ui:37
msgid "Preview this Effect"
msgstr "Предпросмотр этого эффекта"
#: resources/ui/gtk4/Hexagon.ui:116 resources/ui/gtk3/Hexagon.ui:147
msgid "Mesh Line Width"
msgstr ""
#: resources/ui/gtk4/Hexagon.ui:162 resources/ui/gtk3/Hexagon.ui:195
msgid "Line Color"
msgstr ""
#: resources/ui/gtk4/Hexagon.ui:196 resources/ui/gtk3/Hexagon.ui:238
msgid "Glow Color"
msgstr ""
#: resources/ui/gtk4/Hexagon.ui:234 resources/ui/gtk3/Hexagon.ui:285
msgid "Additive Blending"
msgstr ""
#: resources/ui/gtk4/Hexagon.ui:243 resources/ui/gtk3/Hexagon.ui:294
msgid "You may want to enable this for dark window themes."
msgstr ""
#: resources/ui/gtk4/prefs.ui:28 resources/ui/gtk3/prefs.ui:35
msgid "Welcome to Burn-My-Windows!"
msgstr "Добро пожаловать в Burn-My-Windows!"
#: resources/ui/gtk4/prefs.ui:39 resources/ui/gtk3/prefs.ui:46
msgid "If you like this extension, recommend it to your friends :)"
msgstr "Если вам нравится это расширение, порекомендуйте его своим друзьям :)"
#: resources/ui/gtk4/prefs.ui:66 resources/ui/gtk3/prefs.ui:74
msgid "Open Window Animation"
msgstr "Анимация открытия окна"
#: resources/ui/gtk4/prefs.ui:75 resources/ui/gtk4/prefs.ui:119
#: resources/ui/gtk3/prefs.ui:83 resources/ui/gtk3/prefs.ui:147
msgid "If multiple are selected, one is chosen randomly."
msgstr "Если выбрано несколько, то один выбирается случайным образом."
#: resources/ui/gtk4/prefs.ui:90 resources/ui/gtk4/prefs.ui:134
#: resources/ui/gtk3/prefs.ui:104 resources/ui/gtk3/prefs.ui:168
msgid "Choose Effects"
msgstr "Выберите эффекты"
#: resources/ui/gtk4/prefs.ui:110 resources/ui/gtk3/prefs.ui:138
msgid "Close Window Animation"
msgstr "Анимация закрытия окна"
#: resources/ui/gtk4/prefs.ui:150 resources/ui/gtk3/prefs.ui:198
msgid "Also Add Effects to Dialogs"
msgstr "Также добавить эффекты к диалогам"
#: resources/ui/gtk4/Apparition.ui:116 resources/ui/gtk3/Apparition.ui:161
msgid "Twirl Intensity"
msgstr ""
#: resources/ui/gtk4/Apparition.ui:162 resources/ui/gtk3/Apparition.ui:210
msgid "Shake Intensity"
msgstr ""
#: resources/ui/gtk4/Apparition.ui:208 resources/ui/gtk3/Apparition.ui:259
msgid "Suction Intensity"
msgstr ""
#: resources/ui/gtk3/Fire.ui:63
msgid "Choose a Preset"
msgstr "Выберите пресет"
+363
View File
@@ -0,0 +1,363 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR Simon Schneegans
# This file is distributed under the same license as the Burn-My-Windows package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: Burn-My-Windows\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-04-05 09:22+0200\n"
"PO-Revision-Date: 2022-03-21 05:57+0000\n"
"Last-Translator: Muha Aliss <muhaaliss@pm.me>\n"
"Language-Team: Turkish <https://hosted.weblate.org/projects/burn-my-windows/"
"core/tr/>\n"
"Language: tr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.12-dev\n"
#: prefs.js:112
msgid "Effect Options"
msgstr "Efekt Seçenekleri"
#: prefs.js:140
msgid "Go Back"
msgstr "Geri Dön"
#: prefs.js:182
msgid "General Options"
msgstr "Genel Ayarlar"
#: prefs.js:276
msgid "Gold Sponsors"
msgstr "Altın Sponsorlar"
#: prefs.js:279
msgid "Silver Sponsors"
msgstr "Gümüş Sponsorlar"
#: prefs.js:282
msgid "Bronze Sponsors"
msgstr "Bronz Sponsorlar"
#: prefs.js:285
msgid "Past Sponsors"
msgstr "Eski Sponsorlar"
#. Translators: %s will be replaced by the effect's name.
#: prefs.js:510
#, javascript-format
msgid "Preview for %s"
msgstr "%s ön izleme"
#: prefs.js:532
msgid "Close this Window to Preview the Effect!"
msgstr "Efekti Ön izlemek İçin Bu Pencereyi Kapatın!"
#: src/BrokenGlass.js:57
msgid "Broken Glass"
msgstr "Kırılan Cam"
#: src/TVEffect.js:56
msgid "TV Effect"
msgstr "TV Efekti"
#: src/TRexAttack.js:56
msgid "T-Rex Attack"
msgstr "T-Rex Saldırısı"
#: src/SnapOfDisintegration.js:60
msgid "Snap of Disintegration"
msgstr ""
#: src/Wisps.js:55
msgid "Wisps"
msgstr ""
#: src/Fire.js:58
msgid "Fire"
msgstr "Ateş"
#: src/Fire.js:130
msgid "Default Fire"
msgstr "Varsayılan Ateş"
#: src/Fire.js:140
msgid "Hell Fire"
msgstr "Cehennem Ateşi"
#: src/Fire.js:150
msgid "Dark and Smutty"
msgstr "Karanlık ve Sürmeli"
#: src/Fire.js:160
msgid "Cold Breeze"
msgstr "Soğuk Esinti"
#: src/Fire.js:170
msgid "Santa is Coming"
msgstr "Noel Baba Geliyor"
#: src/Hexagon.js:53
msgid "Hexagon"
msgstr ""
#: src/EnergizeA.js:54
msgid "Energize A"
msgstr "Enerji A"
#: src/Apparition.js:57
msgid "Apparition"
msgstr ""
#: src/EnergizeB.js:54
msgid "Energize B"
msgstr "Enerji B"
#: src/Matrix.js:58
msgid "Matrix"
msgstr "Matrix"
#: resources/ui/common/main-menu.ui:6
msgid "Visit Homepage"
msgstr "Ana Sayfaya Git"
#: resources/ui/common/main-menu.ui:10
msgid "View Changelog"
msgstr "Değişim Günlüğü"
#: resources/ui/common/main-menu.ui:16
msgid "Report a Bug"
msgstr "Hata Bildir"
#: resources/ui/common/main-menu.ui:20
msgid "Create an Effect"
msgstr "Efekt Oluştur"
#: resources/ui/common/main-menu.ui:24
msgid "Translate"
msgstr "Çevir"
#: resources/ui/common/main-menu.ui:28
msgid "Donate"
msgstr "Bağış"
#: resources/ui/common/main-menu.ui:41
msgid "About Burn-My-Windows"
msgstr "Burn-My-Windows Hakkında"
#: resources/ui/gtk4/Matrix.ui:24 resources/ui/gtk4/BrokenGlass.ui:24
#: resources/ui/gtk4/Wisps.ui:24 resources/ui/gtk4/Fire.ui:49
#: resources/ui/gtk4/SnapOfDisintegration.ui:24
#: resources/ui/gtk4/TRexAttack.ui:24 resources/ui/gtk4/TVEffect.ui:24
#: resources/ui/gtk4/EnergizeA.ui:24 resources/ui/gtk4/Hexagon.ui:24
#: resources/ui/gtk4/EnergizeB.ui:24 resources/ui/gtk4/Apparition.ui:24
#: resources/ui/gtk3/Wisps.ui:42 resources/ui/gtk3/Fire.ui:93
#: resources/ui/gtk3/TVEffect.ui:35 resources/ui/gtk3/EnergizeA.ui:42
#: resources/ui/gtk3/Hexagon.ui:49 resources/ui/gtk3/EnergizeB.ui:42
#: resources/ui/gtk3/Apparition.ui:63
msgid "Animation Time [ms]"
msgstr "Animasyon Süresi [ms]"
#: resources/ui/gtk4/Matrix.ui:52 resources/ui/gtk4/Matrix.ui:98
#: resources/ui/gtk4/Matrix.ui:144 resources/ui/gtk4/Matrix.ui:190
#: resources/ui/gtk4/Matrix.ui:224 resources/ui/gtk4/Matrix.ui:258
#: resources/ui/gtk4/BrokenGlass.ui:52 resources/ui/gtk4/BrokenGlass.ui:98
#: resources/ui/gtk4/BrokenGlass.ui:144 resources/ui/gtk4/BrokenGlass.ui:190
#: resources/ui/gtk4/BrokenGlass.ui:244 resources/ui/gtk4/Wisps.ui:52
#: resources/ui/gtk4/Wisps.ui:98 resources/ui/gtk4/Wisps.ui:132
#: resources/ui/gtk4/Fire.ui:77 resources/ui/gtk4/Fire.ui:123
#: resources/ui/gtk4/Fire.ui:169 resources/ui/gtk4/Fire.ui:222
#: resources/ui/gtk4/Fire.ui:280 resources/ui/gtk4/TRexAttack.ui:52
#: resources/ui/gtk4/TRexAttack.ui:98 resources/ui/gtk4/TRexAttack.ui:144
#: resources/ui/gtk4/TRexAttack.ui:190 resources/ui/gtk4/TRexAttack.ui:224
#: resources/ui/gtk4/TVEffect.ui:52 resources/ui/gtk4/TVEffect.ui:86
#: resources/ui/gtk4/EnergizeA.ui:52 resources/ui/gtk4/EnergizeA.ui:98
#: resources/ui/gtk4/EnergizeA.ui:132 resources/ui/gtk4/Hexagon.ui:52
#: resources/ui/gtk4/Hexagon.ui:98 resources/ui/gtk4/Hexagon.ui:144
#: resources/ui/gtk4/Hexagon.ui:178 resources/ui/gtk4/Hexagon.ui:212
#: resources/ui/gtk4/Hexagon.ui:265 resources/ui/gtk4/EnergizeB.ui:52
#: resources/ui/gtk4/EnergizeB.ui:98 resources/ui/gtk4/EnergizeB.ui:132
#: resources/ui/gtk4/prefs.ui:166 resources/ui/gtk4/Apparition.ui:52
#: resources/ui/gtk4/Apparition.ui:98 resources/ui/gtk4/Apparition.ui:144
#: resources/ui/gtk4/Apparition.ui:190 resources/ui/gtk4/Apparition.ui:236
#: resources/ui/gtk3/Wisps.ui:68 resources/ui/gtk3/Wisps.ui:117
#: resources/ui/gtk3/Wisps.ui:160 resources/ui/gtk3/Fire.ui:119
#: resources/ui/gtk3/Fire.ui:167 resources/ui/gtk3/Fire.ui:215
#: resources/ui/gtk3/Fire.ui:277 resources/ui/gtk3/Fire.ui:345
#: resources/ui/gtk3/TVEffect.ui:61 resources/ui/gtk3/TVEffect.ui:104
#: resources/ui/gtk3/EnergizeA.ui:68 resources/ui/gtk3/EnergizeA.ui:117
#: resources/ui/gtk3/EnergizeA.ui:160 resources/ui/gtk3/Hexagon.ui:75
#: resources/ui/gtk3/Hexagon.ui:124 resources/ui/gtk3/Hexagon.ui:173
#: resources/ui/gtk3/Hexagon.ui:216 resources/ui/gtk3/Hexagon.ui:259
#: resources/ui/gtk3/Hexagon.ui:321 resources/ui/gtk3/EnergizeB.ui:68
#: resources/ui/gtk3/EnergizeB.ui:117 resources/ui/gtk3/EnergizeB.ui:160
#: resources/ui/gtk3/prefs.ui:219 resources/ui/gtk3/Apparition.ui:89
#: resources/ui/gtk3/Apparition.ui:138 resources/ui/gtk3/Apparition.ui:187
#: resources/ui/gtk3/Apparition.ui:236 resources/ui/gtk3/Apparition.ui:285
msgid "Reset to Default Value"
msgstr "Varsayılan Değere Sıfırla"
#: resources/ui/gtk4/Matrix.ui:70 resources/ui/gtk4/BrokenGlass.ui:70
#: resources/ui/gtk4/Wisps.ui:70 resources/ui/gtk4/Fire.ui:95
#: resources/ui/gtk4/SnapOfDisintegration.ui:70
#: resources/ui/gtk4/EnergizeA.ui:70 resources/ui/gtk4/Hexagon.ui:70
#: resources/ui/gtk4/EnergizeB.ui:70 resources/ui/gtk3/Wisps.ui:91
#: resources/ui/gtk3/Fire.ui:141 resources/ui/gtk3/EnergizeA.ui:91
#: resources/ui/gtk3/Hexagon.ui:98 resources/ui/gtk3/EnergizeB.ui:91
msgid "Scale"
msgstr "Ölçek"
#: resources/ui/gtk4/Matrix.ui:116 resources/ui/gtk4/Apparition.ui:70
#: resources/ui/gtk3/Apparition.ui:112
msgid "Randomness"
msgstr "Rastgelelik"
#: resources/ui/gtk4/Matrix.ui:162
msgid "Vertical Overshooting"
msgstr "Dikey Taşma"
#: resources/ui/gtk4/Matrix.ui:208
msgid "Trail Color"
msgstr "İz Rengi"
#: resources/ui/gtk4/Matrix.ui:242
msgid "Tip Color"
msgstr "Yazı Rengi"
#: resources/ui/gtk4/BrokenGlass.ui:116
msgid "Gravity"
msgstr "Yer Çekimi"
#: resources/ui/gtk4/BrokenGlass.ui:162
msgid "Blow Force"
msgstr "Darbe Kuvveti"
#: resources/ui/gtk4/BrokenGlass.ui:212
msgid "Shatter From Pointer Location"
msgstr "İşaretçi Konumundan Parçalanma"
#: resources/ui/gtk4/BrokenGlass.ui:221
msgid ""
"The shards will fly away from where your mouse pointer was when closing the "
"window."
msgstr ""
"Parçalar, pencereyi kapatırken fare işaretçinizin bulunduğu yerden uzağa "
"uçacaktır."
#: resources/ui/gtk4/Wisps.ui:116 resources/ui/gtk4/SnapOfDisintegration.ui:116
#: resources/ui/gtk4/TVEffect.ui:70 resources/ui/gtk4/EnergizeA.ui:116
#: resources/ui/gtk4/EnergizeB.ui:116 resources/ui/gtk3/Wisps.ui:139
#: resources/ui/gtk3/TVEffect.ui:83 resources/ui/gtk3/EnergizeA.ui:139
#: resources/ui/gtk3/EnergizeB.ui:139
msgid "Color"
msgstr "Renk"
#: resources/ui/gtk4/Fire.ui:25 resources/ui/gtk3/Fire.ui:49
msgid "Presets"
msgstr "Şablon"
#: resources/ui/gtk4/Fire.ui:141 resources/ui/gtk3/Fire.ui:189
msgid "Speed"
msgstr "Hız"
#: resources/ui/gtk4/Fire.ui:191 resources/ui/gtk3/Fire.ui:241
msgid "3D Noise"
msgstr ""
#: resources/ui/gtk4/Fire.ui:200 resources/ui/gtk3/Fire.ui:250
msgid "Creates a more dynamic fire but requires more GPU power."
msgstr "Daha dinamik bir ateş oluşturur ancak daha fazla GPU gücü gerektirir."
#: resources/ui/gtk4/Fire.ui:240 resources/ui/gtk3/Fire.ui:300
msgid "Gradient"
msgstr "Gradyan"
#: resources/ui/gtk4/TRexAttack.ui:70
msgid "Claw Scratch Scale"
msgstr "Pençe Çizik Ölçeği"
#: resources/ui/gtk4/TRexAttack.ui:116
msgid "Claw Scratch Count"
msgstr "Pençe Çizik Sayısı"
#: resources/ui/gtk4/TRexAttack.ui:162
msgid "Warp Effect"
msgstr ""
#: resources/ui/gtk4/TRexAttack.ui:208
msgid "Flash Color"
msgstr "Flaş Rengi"
#: resources/ui/gtk4/effectPage.ui:37 resources/ui/gtk3/effectPage.ui:37
msgid "Preview this Effect"
msgstr "Bu Efekti Önizle"
#: resources/ui/gtk4/Hexagon.ui:116 resources/ui/gtk3/Hexagon.ui:147
msgid "Mesh Line Width"
msgstr ""
#: resources/ui/gtk4/Hexagon.ui:162 resources/ui/gtk3/Hexagon.ui:195
msgid "Line Color"
msgstr ""
#: resources/ui/gtk4/Hexagon.ui:196 resources/ui/gtk3/Hexagon.ui:238
msgid "Glow Color"
msgstr ""
#: resources/ui/gtk4/Hexagon.ui:234 resources/ui/gtk3/Hexagon.ui:285
msgid "Additive Blending"
msgstr ""
#: resources/ui/gtk4/Hexagon.ui:243 resources/ui/gtk3/Hexagon.ui:294
msgid "You may want to enable this for dark window themes."
msgstr ""
#: resources/ui/gtk4/prefs.ui:28 resources/ui/gtk3/prefs.ui:35
msgid "Welcome to Burn-My-Windows!"
msgstr "Burn-My-Windows'a Hoş Geldiniz!"
#: resources/ui/gtk4/prefs.ui:39 resources/ui/gtk3/prefs.ui:46
msgid "If you like this extension, recommend it to your friends :)"
msgstr "Bu uzantıyı beğendiyseniz, arkadaşlarınıza tavsiye edin :)"
#: resources/ui/gtk4/prefs.ui:66 resources/ui/gtk3/prefs.ui:74
msgid "Open Window Animation"
msgstr "Pencere Animasyonunu Aç"
#: resources/ui/gtk4/prefs.ui:75 resources/ui/gtk4/prefs.ui:119
#: resources/ui/gtk3/prefs.ui:83 resources/ui/gtk3/prefs.ui:147
msgid "If multiple are selected, one is chosen randomly."
msgstr "Birden fazla seçilirse, rastgele biri uygulanır."
#: resources/ui/gtk4/prefs.ui:90 resources/ui/gtk4/prefs.ui:134
#: resources/ui/gtk3/prefs.ui:104 resources/ui/gtk3/prefs.ui:168
msgid "Choose Effects"
msgstr "Efektleri Seçin"
#: resources/ui/gtk4/prefs.ui:110 resources/ui/gtk3/prefs.ui:138
msgid "Close Window Animation"
msgstr "Pencere Animasyonunu Kapat"
#: resources/ui/gtk4/prefs.ui:150 resources/ui/gtk3/prefs.ui:198
msgid "Also Add Effects to Dialogs"
msgstr "Ayrıca Diyaloglara Efektler Ekle"
#: resources/ui/gtk4/Apparition.ui:116 resources/ui/gtk3/Apparition.ui:161
msgid "Twirl Intensity"
msgstr ""
#: resources/ui/gtk4/Apparition.ui:162 resources/ui/gtk3/Apparition.ui:210
msgid "Shake Intensity"
msgstr ""
#: resources/ui/gtk4/Apparition.ui:208 resources/ui/gtk3/Apparition.ui:259
msgid "Suction Intensity"
msgstr ""
#: resources/ui/gtk3/Fire.ui:63
msgid "Choose a Preset"
msgstr "Bir Şablon Seçin"
+384
View File
@@ -0,0 +1,384 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR Simon Schneegans
# This file is distributed under the same license as the Burn-My-Windows package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: Burn-My-Windows\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-04-05 09:22+0200\n"
"PO-Revision-Date: 2022-03-01 15:05+0000\n"
"Last-Translator: 刘韬 <lyuutau@outlook.com>\n"
"Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/"
"burn-my-windows/core/zh_Hans/>\n"
"Language: zh_Hans\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 4.11.1-dev\n"
#: prefs.js:112
#, fuzzy
msgid "Effect Options"
msgstr "效果选项"
#: prefs.js:140
msgid "Go Back"
msgstr ""
#: prefs.js:182
#, fuzzy
msgid "General Options"
msgstr "一般选项"
#: prefs.js:276
#, fuzzy
msgid "Gold Sponsors"
msgstr "金牌赞助商"
#: prefs.js:279
#, fuzzy
msgid "Silver Sponsors"
msgstr "银牌赞助商"
#: prefs.js:282
#, fuzzy
msgid "Bronze Sponsors"
msgstr "铜牌赞助商"
#: prefs.js:285
#, fuzzy
msgid "Past Sponsors"
msgstr "往届赞助商"
#. Translators: %s will be replaced by the effect's name.
#: prefs.js:510
#, fuzzy, javascript-format
msgid "Preview for %s"
msgstr "%s 的预览"
#: prefs.js:532
#, fuzzy
msgid "Close this Window to Preview the Effect!"
msgstr "关闭此窗口,预览效果!"
#: src/BrokenGlass.js:57
#, fuzzy
msgid "Broken Glass"
msgstr "破碎的玻璃"
#: src/TVEffect.js:56
#, fuzzy
msgid "TV Effect"
msgstr "电视效果"
#: src/TRexAttack.js:56
#, fuzzy
msgid "T-Rex Attack"
msgstr "霸王龙攻击"
#: src/SnapOfDisintegration.js:60
msgid "Snap of Disintegration"
msgstr ""
#: src/Wisps.js:55
msgid "Wisps"
msgstr ""
#: src/Fire.js:58
msgid "Fire"
msgstr ""
#: src/Fire.js:130
msgid "Default Fire"
msgstr ""
#: src/Fire.js:140
#, fuzzy
msgid "Hell Fire"
msgstr "地狱之火"
#: src/Fire.js:150
#, fuzzy
msgid "Dark and Smutty"
msgstr "黑暗和污秽"
#: src/Fire.js:160
#, fuzzy
msgid "Cold Breeze"
msgstr "寒风"
#: src/Fire.js:170
#, fuzzy
msgid "Santa is Coming"
msgstr "圣诞老人来了"
#: src/Hexagon.js:53
msgid "Hexagon"
msgstr ""
#: src/EnergizeA.js:54
msgid "Energize A"
msgstr ""
#: src/Apparition.js:57
msgid "Apparition"
msgstr ""
#: src/EnergizeB.js:54
msgid "Energize B"
msgstr ""
#: src/Matrix.js:58
msgid "Matrix"
msgstr "矩阵"
#: resources/ui/common/main-menu.ui:6
msgid "Visit Homepage"
msgstr "访问主页"
#: resources/ui/common/main-menu.ui:10
msgid "View Changelog"
msgstr "查看更新日志"
#: resources/ui/common/main-menu.ui:16
msgid "Report a Bug"
msgstr "报告错误"
#: resources/ui/common/main-menu.ui:20
#, fuzzy
msgid "Create an Effect"
msgstr "创建效果"
#: resources/ui/common/main-menu.ui:24
msgid "Translate"
msgstr "翻译"
#: resources/ui/common/main-menu.ui:28
msgid "Donate"
msgstr "捐赠"
#: resources/ui/common/main-menu.ui:41
msgid "About Burn-My-Windows"
msgstr "关于 Burn-My-Windows"
#: resources/ui/gtk4/Matrix.ui:24 resources/ui/gtk4/BrokenGlass.ui:24
#: resources/ui/gtk4/Wisps.ui:24 resources/ui/gtk4/Fire.ui:49
#: resources/ui/gtk4/SnapOfDisintegration.ui:24
#: resources/ui/gtk4/TRexAttack.ui:24 resources/ui/gtk4/TVEffect.ui:24
#: resources/ui/gtk4/EnergizeA.ui:24 resources/ui/gtk4/Hexagon.ui:24
#: resources/ui/gtk4/EnergizeB.ui:24 resources/ui/gtk4/Apparition.ui:24
#: resources/ui/gtk3/Wisps.ui:42 resources/ui/gtk3/Fire.ui:93
#: resources/ui/gtk3/TVEffect.ui:35 resources/ui/gtk3/EnergizeA.ui:42
#: resources/ui/gtk3/Hexagon.ui:49 resources/ui/gtk3/EnergizeB.ui:42
#: resources/ui/gtk3/Apparition.ui:63
#, fuzzy
msgid "Animation Time [ms]"
msgstr "动画时间 [毫秒]"
#: resources/ui/gtk4/Matrix.ui:52 resources/ui/gtk4/Matrix.ui:98
#: resources/ui/gtk4/Matrix.ui:144 resources/ui/gtk4/Matrix.ui:190
#: resources/ui/gtk4/Matrix.ui:224 resources/ui/gtk4/Matrix.ui:258
#: resources/ui/gtk4/BrokenGlass.ui:52 resources/ui/gtk4/BrokenGlass.ui:98
#: resources/ui/gtk4/BrokenGlass.ui:144 resources/ui/gtk4/BrokenGlass.ui:190
#: resources/ui/gtk4/BrokenGlass.ui:244 resources/ui/gtk4/Wisps.ui:52
#: resources/ui/gtk4/Wisps.ui:98 resources/ui/gtk4/Wisps.ui:132
#: resources/ui/gtk4/Fire.ui:77 resources/ui/gtk4/Fire.ui:123
#: resources/ui/gtk4/Fire.ui:169 resources/ui/gtk4/Fire.ui:222
#: resources/ui/gtk4/Fire.ui:280 resources/ui/gtk4/TRexAttack.ui:52
#: resources/ui/gtk4/TRexAttack.ui:98 resources/ui/gtk4/TRexAttack.ui:144
#: resources/ui/gtk4/TRexAttack.ui:190 resources/ui/gtk4/TRexAttack.ui:224
#: resources/ui/gtk4/TVEffect.ui:52 resources/ui/gtk4/TVEffect.ui:86
#: resources/ui/gtk4/EnergizeA.ui:52 resources/ui/gtk4/EnergizeA.ui:98
#: resources/ui/gtk4/EnergizeA.ui:132 resources/ui/gtk4/Hexagon.ui:52
#: resources/ui/gtk4/Hexagon.ui:98 resources/ui/gtk4/Hexagon.ui:144
#: resources/ui/gtk4/Hexagon.ui:178 resources/ui/gtk4/Hexagon.ui:212
#: resources/ui/gtk4/Hexagon.ui:265 resources/ui/gtk4/EnergizeB.ui:52
#: resources/ui/gtk4/EnergizeB.ui:98 resources/ui/gtk4/EnergizeB.ui:132
#: resources/ui/gtk4/prefs.ui:166 resources/ui/gtk4/Apparition.ui:52
#: resources/ui/gtk4/Apparition.ui:98 resources/ui/gtk4/Apparition.ui:144
#: resources/ui/gtk4/Apparition.ui:190 resources/ui/gtk4/Apparition.ui:236
#: resources/ui/gtk3/Wisps.ui:68 resources/ui/gtk3/Wisps.ui:117
#: resources/ui/gtk3/Wisps.ui:160 resources/ui/gtk3/Fire.ui:119
#: resources/ui/gtk3/Fire.ui:167 resources/ui/gtk3/Fire.ui:215
#: resources/ui/gtk3/Fire.ui:277 resources/ui/gtk3/Fire.ui:345
#: resources/ui/gtk3/TVEffect.ui:61 resources/ui/gtk3/TVEffect.ui:104
#: resources/ui/gtk3/EnergizeA.ui:68 resources/ui/gtk3/EnergizeA.ui:117
#: resources/ui/gtk3/EnergizeA.ui:160 resources/ui/gtk3/Hexagon.ui:75
#: resources/ui/gtk3/Hexagon.ui:124 resources/ui/gtk3/Hexagon.ui:173
#: resources/ui/gtk3/Hexagon.ui:216 resources/ui/gtk3/Hexagon.ui:259
#: resources/ui/gtk3/Hexagon.ui:321 resources/ui/gtk3/EnergizeB.ui:68
#: resources/ui/gtk3/EnergizeB.ui:117 resources/ui/gtk3/EnergizeB.ui:160
#: resources/ui/gtk3/prefs.ui:219 resources/ui/gtk3/Apparition.ui:89
#: resources/ui/gtk3/Apparition.ui:138 resources/ui/gtk3/Apparition.ui:187
#: resources/ui/gtk3/Apparition.ui:236 resources/ui/gtk3/Apparition.ui:285
msgid "Reset to Default Value"
msgstr "重置为默认值"
#: resources/ui/gtk4/Matrix.ui:70 resources/ui/gtk4/BrokenGlass.ui:70
#: resources/ui/gtk4/Wisps.ui:70 resources/ui/gtk4/Fire.ui:95
#: resources/ui/gtk4/SnapOfDisintegration.ui:70
#: resources/ui/gtk4/EnergizeA.ui:70 resources/ui/gtk4/Hexagon.ui:70
#: resources/ui/gtk4/EnergizeB.ui:70 resources/ui/gtk3/Wisps.ui:91
#: resources/ui/gtk3/Fire.ui:141 resources/ui/gtk3/EnergizeA.ui:91
#: resources/ui/gtk3/Hexagon.ui:98 resources/ui/gtk3/EnergizeB.ui:91
#, fuzzy
msgid "Scale"
msgstr "规模"
#: resources/ui/gtk4/Matrix.ui:116 resources/ui/gtk4/Apparition.ui:70
#: resources/ui/gtk3/Apparition.ui:112
#, fuzzy
msgid "Randomness"
msgstr "随机性"
#: resources/ui/gtk4/Matrix.ui:162
#, fuzzy
msgid "Vertical Overshooting"
msgstr "垂直过冲"
#: resources/ui/gtk4/Matrix.ui:208
#, fuzzy
msgid "Trail Color"
msgstr "尾迹颜色"
#: resources/ui/gtk4/Matrix.ui:242
#, fuzzy
msgid "Tip Color"
msgstr "提示颜色"
#: resources/ui/gtk4/BrokenGlass.ui:116
msgid "Gravity"
msgstr "重力"
#: resources/ui/gtk4/BrokenGlass.ui:162
#, fuzzy
msgid "Blow Force"
msgstr "吹力"
#: resources/ui/gtk4/BrokenGlass.ui:212
msgid "Shatter From Pointer Location"
msgstr ""
#: resources/ui/gtk4/BrokenGlass.ui:221
msgid ""
"The shards will fly away from where your mouse pointer was when closing the "
"window."
msgstr ""
#: resources/ui/gtk4/Wisps.ui:116 resources/ui/gtk4/SnapOfDisintegration.ui:116
#: resources/ui/gtk4/TVEffect.ui:70 resources/ui/gtk4/EnergizeA.ui:116
#: resources/ui/gtk4/EnergizeB.ui:116 resources/ui/gtk3/Wisps.ui:139
#: resources/ui/gtk3/TVEffect.ui:83 resources/ui/gtk3/EnergizeA.ui:139
#: resources/ui/gtk3/EnergizeB.ui:139
msgid "Color"
msgstr "颜色"
#: resources/ui/gtk4/Fire.ui:25 resources/ui/gtk3/Fire.ui:49
msgid "Presets"
msgstr "预设"
#: resources/ui/gtk4/Fire.ui:141 resources/ui/gtk3/Fire.ui:189
msgid "Speed"
msgstr "速度"
#: resources/ui/gtk4/Fire.ui:191 resources/ui/gtk3/Fire.ui:241
#, fuzzy
msgid "3D Noise"
msgstr "3D 噪点"
#: resources/ui/gtk4/Fire.ui:200 resources/ui/gtk3/Fire.ui:250
msgid "Creates a more dynamic fire but requires more GPU power."
msgstr ""
#: resources/ui/gtk4/Fire.ui:240 resources/ui/gtk3/Fire.ui:300
msgid "Gradient"
msgstr ""
#: resources/ui/gtk4/TRexAttack.ui:70
msgid "Claw Scratch Scale"
msgstr ""
#: resources/ui/gtk4/TRexAttack.ui:116
msgid "Claw Scratch Count"
msgstr ""
#: resources/ui/gtk4/TRexAttack.ui:162
msgid "Warp Effect"
msgstr ""
#: resources/ui/gtk4/TRexAttack.ui:208
msgid "Flash Color"
msgstr ""
#: resources/ui/gtk4/effectPage.ui:37 resources/ui/gtk3/effectPage.ui:37
msgid "Preview this Effect"
msgstr ""
#: resources/ui/gtk4/Hexagon.ui:116 resources/ui/gtk3/Hexagon.ui:147
msgid "Mesh Line Width"
msgstr ""
#: resources/ui/gtk4/Hexagon.ui:162 resources/ui/gtk3/Hexagon.ui:195
msgid "Line Color"
msgstr ""
#: resources/ui/gtk4/Hexagon.ui:196 resources/ui/gtk3/Hexagon.ui:238
msgid "Glow Color"
msgstr ""
#: resources/ui/gtk4/Hexagon.ui:234 resources/ui/gtk3/Hexagon.ui:285
msgid "Additive Blending"
msgstr ""
#: resources/ui/gtk4/Hexagon.ui:243 resources/ui/gtk3/Hexagon.ui:294
msgid "You may want to enable this for dark window themes."
msgstr ""
#: resources/ui/gtk4/prefs.ui:28 resources/ui/gtk3/prefs.ui:35
msgid "Welcome to Burn-My-Windows!"
msgstr ""
#: resources/ui/gtk4/prefs.ui:39 resources/ui/gtk3/prefs.ui:46
msgid "If you like this extension, recommend it to your friends :)"
msgstr ""
#: resources/ui/gtk4/prefs.ui:66 resources/ui/gtk3/prefs.ui:74
msgid "Open Window Animation"
msgstr ""
#: resources/ui/gtk4/prefs.ui:75 resources/ui/gtk4/prefs.ui:119
#: resources/ui/gtk3/prefs.ui:83 resources/ui/gtk3/prefs.ui:147
msgid "If multiple are selected, one is chosen randomly."
msgstr ""
#: resources/ui/gtk4/prefs.ui:90 resources/ui/gtk4/prefs.ui:134
#: resources/ui/gtk3/prefs.ui:104 resources/ui/gtk3/prefs.ui:168
msgid "Choose Effects"
msgstr ""
#: resources/ui/gtk4/prefs.ui:110 resources/ui/gtk3/prefs.ui:138
msgid "Close Window Animation"
msgstr ""
#: resources/ui/gtk4/prefs.ui:150 resources/ui/gtk3/prefs.ui:198
msgid "Also Add Effects to Dialogs"
msgstr ""
#: resources/ui/gtk4/Apparition.ui:116 resources/ui/gtk3/Apparition.ui:161
msgid "Twirl Intensity"
msgstr ""
#: resources/ui/gtk4/Apparition.ui:162 resources/ui/gtk3/Apparition.ui:210
msgid "Shake Intensity"
msgstr ""
#: resources/ui/gtk4/Apparition.ui:208 resources/ui/gtk3/Apparition.ui:259
msgid "Suction Intensity"
msgstr ""
#: resources/ui/gtk3/Fire.ui:63
msgid "Choose a Preset"
msgstr ""
+79 -82
View File
@@ -32,11 +32,14 @@ const utils = Me.imports.src.utils;
// New effects must be registered here and in extension.js.
const ALL_EFFECTS = [
Me.imports.src.Apparition.Apparition,
Me.imports.src.BrokenGlass.BrokenGlass,
Me.imports.src.EnergizeA.EnergizeA,
Me.imports.src.EnergizeB.EnergizeB,
Me.imports.src.Fire.Fire,
Me.imports.src.Hexagon.Hexagon,
Me.imports.src.Matrix.Matrix,
Me.imports.src.BrokenGlass.BrokenGlass,
Me.imports.src.SnapOfDisintegration.SnapOfDisintegration,
Me.imports.src.TRexAttack.TRexAttack,
Me.imports.src.TVEffect.TVEffect,
Me.imports.src.Wisps.Wisps,
@@ -64,13 +67,11 @@ var PreferencesDialog = class PreferencesDialog {
const styleProvider = Gtk.CssProvider.new();
styleProvider.load_from_resource('/css/gtk.css');
if (utils.isGTK4()) {
Gtk.StyleContext.add_provider_for_display(
Gdk.Display.get_default(), styleProvider,
Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
Gtk.StyleContext.add_provider_for_display(Gdk.Display.get_default(), styleProvider,
Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
} else {
Gtk.StyleContext.add_provider_for_screen(
Gdk.Screen.get_default(), styleProvider,
Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
Gtk.StyleContext.add_provider_for_screen(Gdk.Screen.get_default(), styleProvider,
Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
}
// Make sure custom icons are found.
@@ -241,14 +242,13 @@ var PreferencesDialog = class PreferencesDialog {
};
// clang-format off
addURIAction('homepage', 'https://github.com/Schneegans/Burn-My-Windows');
addURIAction('changelog', 'https://github.com/Schneegans/Burn-My-Windows/blob/main/docs/changelog.md');
addURIAction('bugs', 'https://github.com/Schneegans/Burn-My-Windows/issues');
addURIAction('new-effect', 'https://github.com/Schneegans/Burn-My-Windows/blob/main/docs/how-to-create-new-effects.md');
addURIAction('translate', 'https://hosted.weblate.org/engage/burn-my-windows/');
addURIAction('donate-paypal', 'https://www.paypal.com/donate/?hosted_button_id=3F7UFL8KLVPXE');
addURIAction('donate-github', 'https://github.com/sponsors/Schneegans');
addURIAction('donate-liberapay', 'https://liberapay.com/Schneegans');
addURIAction('homepage', 'https://github.com/Schneegans/Burn-My-Windows');
addURIAction('changelog', 'https://github.com/Schneegans/Burn-My-Windows/blob/main/docs/changelog.md');
addURIAction('bugs', 'https://github.com/Schneegans/Burn-My-Windows/issues');
addURIAction('new-effect', 'https://github.com/Schneegans/Burn-My-Windows/blob/main/docs/how-to-create-new-effects.md');
addURIAction('translate', 'https://hosted.weblate.org/engage/burn-my-windows/');
addURIAction('donate-paypal', 'https://www.paypal.com/donate/?hosted_button_id=3F7UFL8KLVPXE');
addURIAction('donate-github', 'https://github.com/sponsors/Schneegans');
// clang-format on
// Add the about dialog.
@@ -481,80 +481,77 @@ var PreferencesDialog = class PreferencesDialog {
// Each effect page is based on a template widget. This template contains the title
// and the preview button.
// clang-format off
if (GObject.type_from_name('BurnMyWindowsEffectPage') == null) {
BurnMyWindowsEffectPage =
GObject.registerClass({
GTypeName: 'BurnMyWindowsEffectPage',
Template: `resource:///ui/${utils.getGTKString()}/effectPage.ui`,
InternalChildren: ['label', 'button'],
},
class BurnMyWindowsEffectPage extends Gtk.Box {
_init(Effect, dialog) {
super._init();
BurnMyWindowsEffectPage = GObject.registerClass(
{
GTypeName: 'BurnMyWindowsEffectPage',
Template: `resource:///ui/${utils.getGTKString()}/effectPage.ui`,
InternalChildren: ['label', 'button'],
},
class BurnMyWindowsEffectPage extends Gtk.Box { // ------------------------------
_init(Effect, dialog) {
super._init();
// Set the effect's name as label.
this._label.label = Effect.getLabel();
// Set the effect's name as label.
this._label.label = Effect.getLabel();
// Open the preview window once the preview button is clicked.
this._button.connect('clicked', () => {
// Open the preview window once the preview button is clicked.
this._button.connect('clicked', () => {
// Set the to-be-previewed effect.
dialog.getSettings().set_string('open-preview-effect', Effect.getNick());
dialog.getSettings().set_string('close-preview-effect', Effect.getNick());
// Set the to-be-previewed effect.
dialog.getSettings().set_string('open-preview-effect', Effect.getNick());
dialog.getSettings().set_string('close-preview-effect', Effect.getNick());
// Make sure that the window.show() firther below "sees" this change.
Gio.Settings.sync();
// Make sure that the window.show() firther below "sees" this change.
Gio.Settings.sync();
// Create the preview-window.
const window = new Gtk.Window({
// Translators: %s will be replaced by the effect's name.
title: _('Preview for %s').replace('%s', Effect.getLabel()),
default_width: 800,
default_height: 450,
modal: true,
transient_for: utils.isGTK4() ? this._button.get_root() :
this._button.get_toplevel()
});
// Create the preview-window.
const window = new Gtk.Window({
// Translators: %s will be replaced by the effect's name.
title: _('Preview for %s').replace("%s", Effect.getLabel()),
default_width: 800,
default_height: 450,
modal: true,
transient_for: utils.isGTK4() ? this._button.get_root() :
this._button.get_toplevel()
// Add a header bar to the window.
if (utils.isGTK4()) {
const header = Gtk.HeaderBar.new();
window.set_titlebar(header);
}
const box = new Gtk.Box({
orientation: Gtk.Orientation.VERTICAL,
valign: Gtk.Align.CENTER,
spacing: 10,
margin_start: 50,
margin_end: 50
});
const label = Gtk.Label.new(_('Close this Window to Preview the Effect!'));
label.wrap = true;
label.justify = Gtk.Justification.CENTER;
label.get_style_context().add_class('large-title');
const image = new Gtk.Image({
icon_name: 'burn-my-windows-symbolic',
pixel_size: 128,
});
dialog.gtkBoxAppend(box, image);
dialog.gtkBoxAppend(box, label);
if (utils.isGTK4()) {
window.set_child(box);
window.show();
} else {
window.add(box);
window.show_all();
}
});
// Add a header bar to the window.
if (utils.isGTK4()) {
const header = Gtk.HeaderBar.new();
window.set_titlebar(header);
}
const box = new Gtk.Box({
orientation: Gtk.Orientation.VERTICAL,
valign: Gtk.Align.CENTER,
spacing: 10,
margin_start:50,
margin_end:50
});
const label = Gtk.Label.new(_('Close this Window to Preview the Effect!'));
label.wrap = true;
label.justify = Gtk.Justification.CENTER;
label.get_style_context().add_class('large-title');
const image = new Gtk.Image({
icon_name: 'burn-my-windows-symbolic',
pixel_size: 128,
});
dialog.gtkBoxAppend(box, image);
dialog.gtkBoxAppend(box, label);
if (utils.isGTK4()) {
window.set_child(box);
window.show();
} else {
window.add(box);
window.show_all();
}
});
}
});
// clang-format on
}
});
}
}
}
+1
View File
@@ -11,6 +11,7 @@
"<a href='https://github.com/danielheadbang'>@danielheadbang</a>"
],
"past": [
"<a href='https://github.com/MrTomRod'>@MrTomRod</a>",
"Pouhiou",
"DAPREMONT Christophe",
"<a href='https://github.com/manero6'>@manero6</a>",
+35 -3
View File
@@ -17,6 +17,15 @@
]
]
},
{
"Russian": [
[
"franigoyt@gmail.com",
"ANIGO R. (AR)",
59
]
]
},
{
"Czech": [
[
@@ -26,6 +35,15 @@
]
]
},
{
"Turkish": [
[
"muhaaliss@pm.me",
"Muha Aliss",
57
]
]
},
{
"Italian": [
[
@@ -36,7 +54,16 @@
[
"albano_battistella@hotmail.com",
"albanobattistella",
59
63
]
]
},
{
"Chinese (Simplified)": [
[
"lyuutau@outlook.com",
"\u5218\u97ec",
36
]
]
},
@@ -64,7 +91,7 @@
[
"bonnemainsnathan@gmail.com",
"Nathan",
40
42
]
]
},
@@ -73,7 +100,12 @@
[
"ulicesah@gmail.com",
"Ulices",
5
7
],
[
"fitojb@ubuntu.com",
"Adolfo Jayme Barrientos",
11
],
[
"oscfdezdz@tuta.io",
Binary file not shown.

After

Width:  |  Height:  |  Size: 434 KiB

-4
View File
@@ -34,10 +34,6 @@
<attribute name="label">GitHub</attribute>
<attribute name="action">prefs.donate-github</attribute>
</item>
<item>
<attribute name="label">Liberapay</attribute>
<attribute name="action">prefs.donate-liberapay</attribute>
</item>
</submenu>
</section>
<section>
+304
View File
@@ -0,0 +1,304 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface domain="burn-my-windows">
<object class="GtkAdjustment" id="apparition-animation-time">
<property name="upper">2000</property>
<property name="lower">100</property>
<property name="step-increment">10</property>
<property name="page-increment">100</property>
</object>
<object class="GtkAdjustment" id="apparition-randomness">
<property name="upper">1</property>
<property name="lower">0</property>
<property name="step-increment">0.01</property>
<property name="page-increment">0.1</property>
</object>
<object class="GtkAdjustment" id="apparition-twirl-intensity">
<property name="upper">10</property>
<property name="lower">-10</property>
<property name="step-increment">0.1</property>
<property name="page-increment">1</property>
</object>
<object class="GtkAdjustment" id="apparition-shake-intensity">
<property name="upper">10</property>
<property name="lower">0</property>
<property name="step-increment">0.1</property>
<property name="page-increment">1</property>
</object>
<object class="GtkAdjustment" id="apparition-suction-intensity">
<property name="upper">1</property>
<property name="lower">0</property>
<property name="step-increment">0.01</property>
<property name="page-increment">0.1</property>
</object>
<object class="GtkBox" id="apparition-prefs">
<property name="orientation">vertical</property>
<child>
<object class="GtkFrame">
<child>
<object class="GtkListBox">
<property name="selection-mode">none</property>
<style>
<class name="rich-list" />
</style>
<child>
<object class="GtkListBoxRow">
<property name="margin-start">10</property>
<property name="margin-end">10</property>
<property name="margin-top">10</property>
<property name="margin-bottom">10</property>
<property name="activatable">0</property>
<child>
<object class="GtkBox">
<property name="spacing">8</property>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Animation Time [ms]</property>
<property name="xalign">0</property>
<property name="halign">start</property>
<property name="valign">center</property>
<property name="hexpand">1</property>
</object>
</child>
<child>
<object class="GtkScale">
<property name="halign">end</property>
<property name="valign">center</property>
<property name="draw-value">1</property>
<property name="digits">0</property>
<property name="value-pos">left</property>
<property name="width-request">300</property>
<property name="adjustment">apparition-animation-time</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-apparition-animation-time">
<child>
<object class="GtkImage">
<property name="icon-name">edit-clear-symbolic</property>
<property name="icon-size">1</property>
</object>
</child>
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
<style>
<class name="flat" />
</style>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkListBoxRow">
<property name="margin-start">10</property>
<property name="margin-end">10</property>
<property name="margin-top">10</property>
<property name="margin-bottom">10</property>
<property name="activatable">0</property>
<child>
<object class="GtkBox">
<property name="spacing">8</property>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Randomness</property>
<property name="xalign">0</property>
<property name="halign">start</property>
<property name="valign">center</property>
<property name="hexpand">1</property>
</object>
</child>
<child>
<object class="GtkScale">
<property name="halign">end</property>
<property name="valign">center</property>
<property name="draw-value">1</property>
<property name="digits">2</property>
<property name="value-pos">left</property>
<property name="width-request">300</property>
<property name="adjustment">apparition-randomness</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-apparition-randomness">
<child>
<object class="GtkImage">
<property name="icon-name">edit-clear-symbolic</property>
<property name="icon-size">1</property>
</object>
</child>
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
<style>
<class name="flat" />
</style>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkListBoxRow">
<property name="margin-start">10</property>
<property name="margin-end">10</property>
<property name="margin-top">10</property>
<property name="margin-bottom">10</property>
<property name="activatable">0</property>
<child>
<object class="GtkBox">
<property name="spacing">8</property>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Twirl Intensity</property>
<property name="xalign">0</property>
<property name="halign">start</property>
<property name="valign">center</property>
<property name="hexpand">1</property>
</object>
</child>
<child>
<object class="GtkScale">
<property name="halign">end</property>
<property name="valign">center</property>
<property name="draw-value">1</property>
<property name="digits">1</property>
<property name="value-pos">left</property>
<property name="width-request">300</property>
<property name="adjustment">apparition-twirl-intensity</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-apparition-twirl-intensity">
<child>
<object class="GtkImage">
<property name="icon-name">edit-clear-symbolic</property>
<property name="icon-size">1</property>
</object>
</child>
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
<style>
<class name="flat" />
</style>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkListBoxRow">
<property name="margin-start">10</property>
<property name="margin-end">10</property>
<property name="margin-top">10</property>
<property name="margin-bottom">10</property>
<property name="activatable">0</property>
<child>
<object class="GtkBox">
<property name="spacing">8</property>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Shake Intensity</property>
<property name="xalign">0</property>
<property name="halign">start</property>
<property name="valign">center</property>
<property name="hexpand">1</property>
</object>
</child>
<child>
<object class="GtkScale">
<property name="halign">end</property>
<property name="valign">center</property>
<property name="draw-value">1</property>
<property name="digits">1</property>
<property name="value-pos">left</property>
<property name="width-request">300</property>
<property name="adjustment">apparition-shake-intensity</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-apparition-shake-intensity">
<child>
<object class="GtkImage">
<property name="icon-name">edit-clear-symbolic</property>
<property name="icon-size">1</property>
</object>
</child>
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
<style>
<class name="flat" />
</style>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkListBoxRow">
<property name="margin-start">10</property>
<property name="margin-end">10</property>
<property name="margin-top">10</property>
<property name="margin-bottom">10</property>
<property name="activatable">0</property>
<child>
<object class="GtkBox">
<property name="spacing">8</property>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Suction Intensity</property>
<property name="xalign">0</property>
<property name="halign">start</property>
<property name="valign">center</property>
<property name="hexpand">1</property>
</object>
</child>
<child>
<object class="GtkScale">
<property name="halign">end</property>
<property name="valign">center</property>
<property name="draw-value">1</property>
<property name="digits">2</property>
<property name="value-pos">left</property>
<property name="width-request">300</property>
<property name="adjustment">apparition-suction-intensity</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-apparition-suction-intensity">
<child>
<object class="GtkImage">
<property name="icon-name">edit-clear-symbolic</property>
<property name="icon-size">1</property>
</object>
</child>
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
<style>
<class name="flat" />
</style>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</interface>
+2 -2
View File
@@ -3,8 +3,8 @@
<object class="GtkAdjustment" id="energize-a-animation-time">
<property name="upper">10000</property>
<property name="lower">500</property>
<property name="step-increment">10</property>
<property name="lower">100</property>
<property name="step-increment">1</property>
<property name="page-increment">100</property>
</object>
+2 -2
View File
@@ -3,8 +3,8 @@
<object class="GtkAdjustment" id="energize-b-animation-time">
<property name="upper">10000</property>
<property name="lower">500</property>
<property name="step-increment">10</property>
<property name="lower">100</property>
<property name="step-increment">1</property>
<property name="page-increment">100</property>
</object>
+2 -2
View File
@@ -3,8 +3,8 @@
<object class="GtkAdjustment" id="fire-animation-time">
<property name="upper">10000</property>
<property name="lower">500</property>
<property name="step-increment">10</property>
<property name="lower">100</property>
<property name="step-increment">1</property>
<property name="page-increment">100</property>
</object>
+340
View File
@@ -0,0 +1,340 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface domain="burn-my-windows">
<object class="GtkAdjustment" id="hexagon-animation-time">
<property name="upper">10000</property>
<property name="lower">100</property>
<property name="step-increment">1</property>
<property name="page-increment">100</property>
</object>
<object class="GtkAdjustment" id="hexagon-scale">
<property name="upper">10</property>
<property name="lower">0.1</property>
<property name="step-increment">0.01</property>
<property name="page-increment">0.1</property>
</object>
<object class="GtkAdjustment" id="hexagon-line-width">
<property name="upper">10</property>
<property name="lower">0</property>
<property name="step-increment">0.1</property>
<property name="page-increment">1</property>
</object>
<object class="GtkBox" id="hexagon-prefs">
<property name="orientation">vertical</property>
<child>
<object class="GtkFrame">
<child>
<object class="GtkListBox">
<property name="selection-mode">none</property>
<style>
<class name="rich-list" />
</style>
<child>
<object class="GtkListBoxRow">
<property name="margin-start">10</property>
<property name="margin-end">10</property>
<property name="margin-top">10</property>
<property name="margin-bottom">10</property>
<property name="activatable">0</property>
<child>
<object class="GtkBox">
<property name="spacing">8</property>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Animation Time [ms]</property>
<property name="xalign">0</property>
<property name="halign">start</property>
<property name="valign">center</property>
<property name="hexpand">1</property>
</object>
</child>
<child>
<object class="GtkScale">
<property name="halign">end</property>
<property name="valign">center</property>
<property name="draw-value">1</property>
<property name="digits">0</property>
<property name="value-pos">left</property>
<property name="width-request">300</property>
<property name="adjustment">hexagon-animation-time</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-hexagon-animation-time">
<child>
<object class="GtkImage">
<property name="icon-name">edit-clear-symbolic</property>
<property name="icon-size">1</property>
</object>
</child>
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
<style>
<class name="flat" />
</style>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkListBoxRow">
<property name="margin-start">10</property>
<property name="margin-end">10</property>
<property name="margin-top">10</property>
<property name="margin-bottom">10</property>
<property name="activatable">0</property>
<child>
<object class="GtkBox">
<property name="spacing">8</property>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Scale</property>
<property name="xalign">0</property>
<property name="halign">start</property>
<property name="valign">center</property>
<property name="hexpand">1</property>
</object>
</child>
<child>
<object class="GtkScale">
<property name="halign">end</property>
<property name="valign">center</property>
<property name="draw-value">1</property>
<property name="digits">2</property>
<property name="value-pos">left</property>
<property name="width-request">300</property>
<property name="adjustment">hexagon-scale</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-hexagon-scale">
<child>
<object class="GtkImage">
<property name="icon-name">edit-clear-symbolic</property>
<property name="icon-size">1</property>
</object>
</child>
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
<style>
<class name="flat" />
</style>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkListBoxRow">
<property name="margin-start">10</property>
<property name="margin-end">10</property>
<property name="margin-top">10</property>
<property name="margin-bottom">10</property>
<property name="activatable">0</property>
<child>
<object class="GtkBox">
<property name="spacing">8</property>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Mesh Line Width</property>
<property name="xalign">0</property>
<property name="halign">start</property>
<property name="valign">center</property>
<property name="hexpand">1</property>
</object>
</child>
<child>
<object class="GtkScale">
<property name="halign">end</property>
<property name="valign">center</property>
<property name="draw-value">1</property>
<property name="digits">1</property>
<property name="value-pos">left</property>
<property name="width-request">300</property>
<property name="adjustment">hexagon-line-width</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-hexagon-line-width">
<child>
<object class="GtkImage">
<property name="icon-name">edit-clear-symbolic</property>
<property name="icon-size">1</property>
</object>
</child>
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
<style>
<class name="flat" />
</style>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkListBoxRow">
<property name="margin-start">10</property>
<property name="margin-end">10</property>
<property name="margin-top">10</property>
<property name="margin-bottom">10</property>
<property name="activatable">0</property>
<child>
<object class="GtkBox">
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Line Color</property>
<property name="xalign">0</property>
<property name="halign">start</property>
<property name="valign">center</property>
<property name="hexpand">1</property>
</object>
</child>
<child>
<object class="GtkColorButton" id="hexagon-line-color">
<property name="use_alpha">1</property>
<property name="show_editor">1</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-hexagon-line-color">
<child>
<object class="GtkImage">
<property name="icon-name">edit-clear-symbolic</property>
<property name="icon-size">1</property>
</object>
</child>
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
<style>
<class name="flat" />
</style>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkListBoxRow">
<property name="margin-start">10</property>
<property name="margin-end">10</property>
<property name="margin-top">10</property>
<property name="margin-bottom">10</property>
<property name="activatable">0</property>
<child>
<object class="GtkBox">
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Glow Color</property>
<property name="xalign">0</property>
<property name="halign">start</property>
<property name="valign">center</property>
<property name="hexpand">1</property>
</object>
</child>
<child>
<object class="GtkColorButton" id="hexagon-glow-color">
<property name="use_alpha">1</property>
<property name="show_editor">1</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-hexagon-glow-color">
<child>
<object class="GtkImage">
<property name="icon-name">edit-clear-symbolic</property>
<property name="icon-size">1</property>
</object>
</child>
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
<style>
<class name="flat" />
</style>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkListBoxRow">
<property name="margin-start">10</property>
<property name="margin-end">10</property>
<property name="margin-top">10</property>
<property name="margin-bottom">10</property>
<property name="activatable">0</property>
<child>
<object class="GtkBox">
<child>
<object class="GtkBox">
<property name="orientation">vertical</property>
<property name="spacing">3</property>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Additive Blending</property>
<property name="xalign">0</property>
<property name="halign">start</property>
<property name="valign">center</property>
<property name="hexpand">1</property>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">You may want to enable this for dark window themes.</property>
<property name="xalign">0</property>
<property name="halign">start</property>
<property name="valign">center</property>
<property name="hexpand">1</property>
<style>
<class name="dim-label" />
<class name="caption" />
</style>
</object>
</child>
</object>
</child>
<child>
<object class="GtkSwitch" id="hexagon-additive-blending">
<property name="halign">end</property>
<property name="valign">center</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-hexagon-additive-blending">
<child>
<object class="GtkImage">
<property name="icon-name">edit-clear-symbolic</property>
<property name="icon-size">1</property>
</object>
</child>
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
<style>
<class name="flat" />
</style>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</interface>
+2 -2
View File
@@ -2,9 +2,9 @@
<interface domain="burn-my-windows">
<object class="GtkAdjustment" id="tv-animation-time">
<property name="upper">5000</property>
<property name="upper">10000</property>
<property name="lower">100</property>
<property name="step-increment">10</property>
<property name="step-increment">1</property>
<property name="page-increment">100</property>
</object>
+2 -2
View File
@@ -3,8 +3,8 @@
<object class="GtkAdjustment" id="wisps-animation-time">
<property name="upper">10000</property>
<property name="lower">500</property>
<property name="step-increment">10</property>
<property name="lower">100</property>
<property name="step-increment">1</property>
<property name="page-increment">100</property>
</object>
+255
View File
@@ -0,0 +1,255 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface domain="burn-my-windows">
<object class="GtkBox" id="apparition-prefs">
<property name="orientation">vertical</property>
<child>
<object class="GtkFrame">
<child>
<object class="GtkListBox">
<property name="selection-mode">none</property>
<property name="show-separators">1</property>
<style>
<class name="rich-list" />
</style>
<child>
<object class="GtkListBoxRow">
<property name="activatable">0</property>
<child>
<object class="GtkBox">
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Animation Time [ms]</property>
<property name="xalign">0</property>
<property name="halign">start</property>
<property name="valign">center</property>
<property name="hexpand">1</property>
</object>
</child>
<child>
<object class="GtkScale">
<property name="halign">end</property>
<property name="valign">center</property>
<property name="draw-value">1</property>
<property name="digits">0</property>
<property name="value-pos">left</property>
<property name="width-request">300</property>
<property name="adjustment">
<object class="GtkAdjustment" id="apparition-animation-time">
<property name="upper">2000</property>
<property name="lower">100</property>
<property name="step-increment">10</property>
<property name="page-increment">100</property>
</object>
</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-apparition-animation-time">
<property name="icon-name">edit-clear-symbolic</property>
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
<style>
<class name="flat" />
</style>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkListBoxRow">
<property name="activatable">0</property>
<child>
<object class="GtkBox">
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Randomness</property>
<property name="xalign">0</property>
<property name="halign">start</property>
<property name="valign">center</property>
<property name="hexpand">1</property>
</object>
</child>
<child>
<object class="GtkScale">
<property name="halign">end</property>
<property name="valign">center</property>
<property name="draw-value">1</property>
<property name="digits">2</property>
<property name="value-pos">left</property>
<property name="width-request">300</property>
<property name="adjustment">
<object class="GtkAdjustment" id="apparition-randomness">
<property name="upper">1</property>
<property name="lower">0</property>
<property name="step-increment">0.01</property>
<property name="page-increment">0.1</property>
</object>
</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-apparition-randomness">
<property name="icon-name">edit-clear-symbolic</property>
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
<style>
<class name="flat" />
</style>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkListBoxRow">
<property name="activatable">0</property>
<child>
<object class="GtkBox">
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Twirl Intensity</property>
<property name="xalign">0</property>
<property name="halign">start</property>
<property name="valign">center</property>
<property name="hexpand">1</property>
</object>
</child>
<child>
<object class="GtkScale">
<property name="halign">end</property>
<property name="valign">center</property>
<property name="draw-value">1</property>
<property name="digits">1</property>
<property name="value-pos">left</property>
<property name="width-request">300</property>
<property name="adjustment">
<object class="GtkAdjustment" id="apparition-twirl-intensity">
<property name="upper">10</property>
<property name="lower">-10</property>
<property name="step-increment">0.1</property>
<property name="page-increment">1</property>
</object>
</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-apparition-twirl-intensity">
<property name="icon-name">edit-clear-symbolic</property>
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
<style>
<class name="flat" />
</style>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkListBoxRow">
<property name="activatable">0</property>
<child>
<object class="GtkBox">
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Shake Intensity</property>
<property name="xalign">0</property>
<property name="halign">start</property>
<property name="valign">center</property>
<property name="hexpand">1</property>
</object>
</child>
<child>
<object class="GtkScale">
<property name="halign">end</property>
<property name="valign">center</property>
<property name="draw-value">1</property>
<property name="digits">1</property>
<property name="value-pos">left</property>
<property name="width-request">300</property>
<property name="adjustment">
<object class="GtkAdjustment" id="apparition-shake-intensity">
<property name="upper">10</property>
<property name="lower">0</property>
<property name="step-increment">0.1</property>
<property name="page-increment">1</property>
</object>
</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-apparition-shake-intensity">
<property name="icon-name">edit-clear-symbolic</property>
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
<style>
<class name="flat" />
</style>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkListBoxRow">
<property name="activatable">0</property>
<child>
<object class="GtkBox">
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Suction Intensity</property>
<property name="xalign">0</property>
<property name="halign">start</property>
<property name="valign">center</property>
<property name="hexpand">1</property>
</object>
</child>
<child>
<object class="GtkScale">
<property name="halign">end</property>
<property name="valign">center</property>
<property name="draw-value">1</property>
<property name="digits">2</property>
<property name="value-pos">left</property>
<property name="width-request">300</property>
<property name="adjustment">
<object class="GtkAdjustment" id="apparition-suction-intensity">
<property name="upper">1</property>
<property name="lower">0</property>
<property name="step-increment">0.01</property>
<property name="page-increment">0.1</property>
</object>
</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-apparition-suction-intensity">
<property name="icon-name">edit-clear-symbolic</property>
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
<style>
<class name="flat" />
</style>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</interface>
+2 -2
View File
@@ -39,8 +39,8 @@
<property name="adjustment">
<object class="GtkAdjustment" id="broken-glass-animation-time">
<property name="upper">10000</property>
<property name="lower">500</property>
<property name="step-increment">10</property>
<property name="lower">100</property>
<property name="step-increment">1</property>
<property name="page-increment">100</property>
</object>
</property>
+2 -2
View File
@@ -39,8 +39,8 @@
<property name="adjustment">
<object class="GtkAdjustment" id="energize-a-animation-time">
<property name="upper">10000</property>
<property name="lower">500</property>
<property name="step-increment">10</property>
<property name="lower">100</property>
<property name="step-increment">1</property>
<property name="page-increment">100</property>
</object>
</property>
+2 -2
View File
@@ -39,8 +39,8 @@
<property name="adjustment">
<object class="GtkAdjustment" id="energize-b-animation-time">
<property name="upper">10000</property>
<property name="lower">500</property>
<property name="step-increment">10</property>
<property name="lower">100</property>
<property name="step-increment">1</property>
<property name="page-increment">100</property>
</object>
</property>
+2 -2
View File
@@ -64,8 +64,8 @@
<property name="adjustment">
<object class="GtkAdjustment" id="fire-animation-time">
<property name="upper">10000</property>
<property name="lower">500</property>
<property name="step-increment">10</property>
<property name="lower">100</property>
<property name="step-increment">1</property>
<property name="page-increment">100</property>
</object>
</property>
+284
View File
@@ -0,0 +1,284 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface domain="burn-my-windows">
<object class="GtkBox" id="hexagon-prefs">
<property name="orientation">vertical</property>
<child>
<object class="GtkFrame">
<child>
<object class="GtkListBox">
<property name="selection-mode">none</property>
<property name="show-separators">1</property>
<style>
<class name="rich-list" />
</style>
<child>
<object class="GtkListBoxRow">
<property name="activatable">0</property>
<child>
<object class="GtkBox">
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Animation Time [ms]</property>
<property name="xalign">0</property>
<property name="halign">start</property>
<property name="valign">center</property>
<property name="hexpand">1</property>
</object>
</child>
<child>
<object class="GtkScale">
<property name="halign">end</property>
<property name="valign">center</property>
<property name="draw-value">1</property>
<property name="digits">0</property>
<property name="value-pos">left</property>
<property name="width-request">300</property>
<property name="adjustment">
<object class="GtkAdjustment" id="hexagon-animation-time">
<property name="upper">10000</property>
<property name="lower">100</property>
<property name="step-increment">1</property>
<property name="page-increment">100</property>
</object>
</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-hexagon-animation-time">
<property name="icon-name">edit-clear-symbolic</property>
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
<style>
<class name="flat" />
</style>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkListBoxRow">
<property name="activatable">0</property>
<child>
<object class="GtkBox">
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Scale</property>
<property name="xalign">0</property>
<property name="halign">start</property>
<property name="valign">center</property>
<property name="hexpand">1</property>
</object>
</child>
<child>
<object class="GtkScale">
<property name="halign">end</property>
<property name="valign">center</property>
<property name="draw-value">1</property>
<property name="digits">2</property>
<property name="value-pos">left</property>
<property name="width-request">300</property>
<property name="adjustment">
<object class="GtkAdjustment" id="hexagon-scale">
<property name="upper">10</property>
<property name="lower">0.1</property>
<property name="step-increment">0.01</property>
<property name="page-increment">0.1</property>
</object>
</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-hexagon-scale">
<property name="icon-name">edit-clear-symbolic</property>
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
<style>
<class name="flat" />
</style>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkListBoxRow">
<property name="activatable">0</property>
<child>
<object class="GtkBox">
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Mesh Line Width</property>
<property name="xalign">0</property>
<property name="halign">start</property>
<property name="valign">center</property>
<property name="hexpand">1</property>
</object>
</child>
<child>
<object class="GtkScale">
<property name="halign">end</property>
<property name="valign">center</property>
<property name="draw-value">1</property>
<property name="digits">1</property>
<property name="value-pos">left</property>
<property name="width-request">300</property>
<property name="adjustment">
<object class="GtkAdjustment" id="hexagon-line-width">
<property name="upper">10</property>
<property name="lower">0</property>
<property name="step-increment">0.1</property>
<property name="page-increment">1</property>
</object>
</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-hexagon-line-width">
<property name="icon-name">edit-clear-symbolic</property>
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
<style>
<class name="flat" />
</style>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkListBoxRow">
<property name="activatable">0</property>
<child>
<object class="GtkBox">
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Line Color</property>
<property name="xalign">0</property>
<property name="halign">start</property>
<property name="valign">center</property>
<property name="hexpand">1</property>
</object>
</child>
<child>
<object class="GtkColorButton" id="hexagon-line-color">
<property name="use_alpha">1</property>
<property name="show_editor">1</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-hexagon-line-color">
<property name="icon-name">edit-clear-symbolic</property>
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
<style>
<class name="flat" />
</style>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkListBoxRow">
<property name="activatable">0</property>
<child>
<object class="GtkBox">
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Glow Color</property>
<property name="xalign">0</property>
<property name="halign">start</property>
<property name="valign">center</property>
<property name="hexpand">1</property>
</object>
</child>
<child>
<object class="GtkColorButton" id="hexagon-glow-color">
<property name="use_alpha">1</property>
<property name="show_editor">1</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-hexagon-glow-color">
<property name="icon-name">edit-clear-symbolic</property>
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
<style>
<class name="flat" />
</style>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkListBoxRow">
<property name="activatable">0</property>
<child>
<object class="GtkBox">
<child>
<object class="GtkBox">
<property name="orientation">vertical</property>
<property name="spacing">3</property>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Additive Blending</property>
<property name="xalign">0</property>
<property name="halign">start</property>
<property name="valign">center</property>
<property name="hexpand">1</property>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">You may want to enable this for dark window themes.</property>
<property name="xalign">0</property>
<property name="halign">start</property>
<property name="valign">center</property>
<property name="hexpand">1</property>
<style>
<class name="dim-label" />
<class name="caption" />
</style>
</object>
</child>
</object>
</child>
<child>
<object class="GtkSwitch" id="hexagon-additive-blending">
<property name="halign">end</property>
<property name="valign">center</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-hexagon-additive-blending">
<property name="icon-name">edit-clear-symbolic</property>
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
<style>
<class name="flat" />
</style>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</interface>
+2 -2
View File
@@ -39,8 +39,8 @@
<property name="adjustment">
<object class="GtkAdjustment" id="matrix-animation-time">
<property name="upper">10000</property>
<property name="lower">500</property>
<property name="step-increment">10</property>
<property name="lower">100</property>
<property name="step-increment">1</property>
<property name="page-increment">100</property>
</object>
</property>
+151
View File
@@ -0,0 +1,151 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<object class="GtkBox" id="snap-prefs">
<property name="orientation">vertical</property>
<child>
<object class="GtkFrame">
<child>
<object class="GtkListBox">
<property name="selection-mode">none</property>
<property name="show-separators">1</property>
<style>
<class name="rich-list" />
</style>
<child>
<object class="GtkListBoxRow">
<property name="activatable">0</property>
<child>
<object class="GtkBox">
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Animation Time [ms]</property>
<property name="xalign">0</property>
<property name="halign">start</property>
<property name="valign">center</property>
<property name="hexpand">1</property>
</object>
</child>
<child>
<object class="GtkScale">
<property name="halign">end</property>
<property name="valign">center</property>
<property name="draw-value">1</property>
<property name="digits">0</property>
<property name="value-pos">left</property>
<property name="width-request">300</property>
<property name="adjustment">
<object class="GtkAdjustment" id="snap-animation-time">
<property name="upper">10000</property>
<property name="lower">500</property>
<property name="step-increment">10</property>
<property name="page-increment">100</property>
</object>
</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-snap-animation-time">
<property name="icon-name">edit-clear-symbolic</property>
<property name="tooltip-text">Reset to Default Value</property>
<style>
<class name="flat" />
</style>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkListBoxRow">
<property name="activatable">0</property>
<child>
<object class="GtkBox">
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Scale</property>
<property name="xalign">0</property>
<property name="halign">start</property>
<property name="valign">center</property>
<property name="hexpand">1</property>
</object>
</child>
<child>
<object class="GtkScale">
<property name="halign">end</property>
<property name="valign">center</property>
<property name="draw-value">1</property>
<property name="digits">2</property>
<property name="value-pos">left</property>
<property name="width-request">300</property>
<property name="adjustment">
<object class="GtkAdjustment" id="snap-scale">
<property name="upper">20</property>
<property name="lower">0.1</property>
<property name="step-increment">0.01</property>
<property name="page-increment">0.1</property>
</object>
</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-snap-scale">
<property name="icon-name">edit-clear-symbolic</property>
<property name="tooltip-text">Reset to Default Value</property>
<style>
<class name="flat" />
</style>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkListBoxRow">
<property name="activatable">0</property>
<child>
<object class="GtkBox">
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Color</property>
<property name="xalign">0</property>
<property name="halign">start</property>
<property name="valign">center</property>
<property name="hexpand">1</property>
</object>
</child>
<child>
<object class="GtkColorButton" id="snap-color">
<property name="use_alpha">1</property>
<property name="show_editor">1</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-snap-color">
<property name="icon-name">edit-clear-symbolic</property>
<property name="tooltip-text">Reset to Default Value</property>
<style>
<class name="flat" />
</style>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</interface>
+2 -2
View File
@@ -39,8 +39,8 @@
<property name="adjustment">
<object class="GtkAdjustment" id="trex-animation-time">
<property name="upper">10000</property>
<property name="lower">500</property>
<property name="step-increment">10</property>
<property name="lower">100</property>
<property name="step-increment">1</property>
<property name="page-increment">100</property>
</object>
</property>
+2 -2
View File
@@ -38,9 +38,9 @@
<property name="width-request">300</property>
<property name="adjustment">
<object class="GtkAdjustment" id="tv-animation-time">
<property name="upper">5000</property>
<property name="upper">10000</property>
<property name="lower">100</property>
<property name="step-increment">10</property>
<property name="step-increment">1</property>
<property name="page-increment">100</property>
</object>
</property>
+2 -2
View File
@@ -39,8 +39,8 @@
<property name="adjustment">
<object class="GtkAdjustment" id="wisps-animation-time">
<property name="upper">10000</property>
<property name="lower">500</property>
<property name="step-increment">10</property>
<property name="lower">100</property>
<property name="step-increment">1</property>
<property name="page-increment">100</property>
</object>
</property>
@@ -25,6 +25,58 @@
<description>The effect with this nick will be used for the next window-open animation.</description>
</key>
<key name="test-mode" type="b">
<default>false</default>
<summary>Test Mode</summary>
<description>If set to true, all animations will show only one still frame to allow for continuous integration tests.</description>
</key>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Apparition Effect Options -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<key name="apparition-open-effect" type="b">
<default>false</default>
<summary>Apparition Open Effect</summary>
<description>Use the apparition effect for window openeing.</description>
</key>
<key name="apparition-close-effect" type="b">
<default>false</default>
<summary>Apparition Close Effect</summary>
<description>Use the apparition effect for window closing.</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>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Fire Options -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
@@ -221,6 +273,58 @@
<description>Number of claw scratches drawn on top of each other.</description>
</key>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Hexagon Options -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<key name="hexagon-close-effect" type="b">
<default>false</default>
<summary>Hexagon Close Effect</summary>
<description>Use the Hexagon effect for window closing.</description>
</key>
<key name="hexagon-open-effect" type="b">
<default>false</default>
<summary>Hexagon Open Effect</summary>
<description>Use the Hexagon effect for window opening.</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>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Energize A Options -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
@@ -369,6 +473,40 @@
<description>Use the pointer location for the broken glass effect.</description>
</key>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Snap of Disintegration Effect Options -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<key name="snap-open-effect" type="b">
<default>false</default>
<summary>Snap Open Effect</summary>
<description>Use the snap effect for window openeing.</description>
</key>
<key name="snap-close-effect" type="b">
<default>false</default>
<summary>Snap Close Effect</summary>
<description>Use the snap effect for window closing.</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>
+172
View File
@@ -0,0 +1,172 @@
//////////////////////////////////////////////////////////////////////////////////////////
// ) ( //
// ( /( ( ( ) ( ( ( ( )\ ) ( ( //
// )\()) ))\ )( ( ( )\ ) )\))( )\ ( (()/( ( )\))( ( //
// ((_)\ /((_|()\ )\ ) )\ '(()/( ((_)()((_) )\ ) ((_)))\((_)()\ )\ //
// | |(_|_))( ((_)_(_/( _((_)) )(_)) _(()((_|_)_(_/( _| |((_)(()((_|(_) //
// | '_ \ || | '_| ' \)) | ' \()| || | \ V V / | ' \)) _` / _ \ V V (_-< //
// |_.__/\_,_|_| |_||_| |_|_|_| \_, | \_/\_/|_|_||_|\__,_\___/\_/\_//__/ //
// |__/ //
// Copyright (c) 2021 Simon Schneegans //
// Released under the GPLv3 or later. See LICENSE file for details. //
//////////////////////////////////////////////////////////////////////////////////////////
'use strict';
const GObject = imports.gi.GObject;
const _ = imports.gettext.domain('burn-my-windows').gettext;
const ExtensionUtils = imports.misc.extensionUtils;
const Me = imports.misc.extensionUtils.getCurrentExtension();
const utils = Me.imports.src.utils;
//////////////////////////////////////////////////////////////////////////////////////////
// This effect hides the actor by violently sucking it into the void of magic. //
// towards the middle and then hiding the resulting line from left and right towards //
// the center. //
//////////////////////////////////////////////////////////////////////////////////////////
// The shader class for this effect is registered further down in this file.
let Shader = null;
// The effect class is completely static. It can be used to get some metadata (like the
// effect's name or supported GNOME Shell versions), to initialize the respective page of
// the settings dialog, as well as to create the actual shader for the effect.
var Apparition = class Apparition {
// ---------------------------------------------------------------------------- metadata
// The effect is not available on GNOME Shell 3.36 as it requires scaling of the window
// actor.
static getMinShellVersion() {
return [3, 38];
}
// This will be called in various places where a unique identifier for this effect is
// required. It should match the prefix of the settings keys which store whether the
// effect is enabled currently (e.g. '*-close-effect'), and its animation time
// (e.g. '*-animation-time').
static getNick() {
return 'apparition';
}
// This will be shown in the sidebar of the preferences dialog as well as in the
// drop-down menus where the user can choose the effect.
static getLabel() {
return _('Apparition');
}
// -------------------------------------------------------------------- API for prefs.js
// This is called by the preferences dialog. It loads the settings page for this effect,
// binds all properties to the settings and appends the page to the main stack of the
// preferences dialog.
static getPreferences(dialog) {
// Add the settings page to the builder.
dialog.getBuilder().add_from_resource(`/ui/${utils.getGTKString()}/Apparition.ui`);
// Bind all properties.
dialog.bindAdjustment('apparition-randomness');
dialog.bindAdjustment('apparition-animation-time');
dialog.bindAdjustment('apparition-twirl-intensity');
dialog.bindAdjustment('apparition-shake-intensity');
dialog.bindAdjustment('apparition-suction-intensity');
// Finally, return the new settings page.
return dialog.getBuilder().get_object('apparition-prefs');
}
// ---------------------------------------------------------------- API for extension.js
// This is called from extension.js whenever a window is closed with this effect.
static createShader(actor, settings, forOpening) {
return new Shader(actor, settings, forOpening);
}
// The tweakTransition() is called from extension.js to tweak a window's open / close
// transitions - usually windows are faded in / out and scaled up / down by GNOME Shell.
// The parameter 'forOpening' is set to true if this is called for a window-open
// transition, for a window-close transition it is set to false. The modes can be set to
// any value from here: https://gjs-docs.gnome.org/clutter8~8_api/clutter.animationmode.
// The only required property is 'opacity', even if it transitions from 1.0 to 1.0. The
// current value of the opacity transition is passed as uProgress to the shader.
// Tweaking the actor's scale during the transition only works properly for GNOME 3.38+.
// For this effect, windows are set to twice their original size, so that we have
// some space to draw the animation. We also set the animation mode to "Linear".
static tweakTransition(actor, settings, forOpening) {
return {
'opacity': {from: 255, to: 255, mode: 1},
'scale-x': {from: 2.0, to: 2.0, mode: 1},
'scale-y': {from: 2.0, to: 2.0, mode: 1}
};
}
}
//////////////////////////////////////////////////////////////////////////////////////////
// The shader class for this effect will only be registered in GNOME Shell's process //
// (not in the preferences process). It's done this way as Clutter may not be installed //
// on the system and therefore the preferences would crash. //
//////////////////////////////////////////////////////////////////////////////////////////
if (utils.isInShellProcess()) {
const Clutter = imports.gi.Clutter;
const shaderSnippets = Me.imports.src.shaderSnippets;
Shader = GObject.registerClass({}, class Shader extends Clutter.ShaderEffect {
_init(actor, settings, forOpening) {
super._init({shader_type: Clutter.ShaderType.FRAGMENT_SHADER});
// If we are currently performing integration test, the animation uses a fixed seed.
const testMode = settings.get_boolean('test-mode');
// The math for the whirling is inspired by this post:
// http://www.geeks3d.com/20110428/shader-library-swirl-post-processing-filter-in-glsl
this.set_shader_source(`
// Inject some common shader snippets.
${shaderSnippets.standardUniforms()}
const vec2 SEED = vec2(${testMode ? 0 : Math.random()},
${testMode ? 0 : Math.random()});
const float SHAKE = ${settings.get_double('apparition-shake-intensity')};
const float TWIRL = ${settings.get_double('apparition-twirl-intensity')};
const float SUCTION = ${settings.get_double('apparition-suction-intensity')};
const float RANDOMNESS = ${settings.get_double('apparition-randomness')};
const float ACTOR_SCALE = 2.0;
const float PADDING = ACTOR_SCALE / 2.0 - 0.5;
void main() {
// We simply inverse the progress for opening windows.
float progress = ${forOpening ? '1.0-uProgress' : 'uProgress'};
// Choose a random suction center.
vec2 center = SEED * RANDOMNESS + 0.5 * (1.0 - RANDOMNESS);
vec2 coords = cogl_tex_coord_in[0].st * ACTOR_SCALE - PADDING - center;
// Add some shaking.
coords.x += progress * 0.05 * SHAKE * sin((progress + SEED.x) * (1.0 + SEED.x) * SHAKE);
coords.y += progress * 0.05 * SHAKE * cos((progress + SEED.y) * (1.0 + SEED.y) * SHAKE);
// "Suck" the texture into the center.
float dist = length(coords) / sqrt(2);
coords += progress * coords / dist * 0.5 * SUCTION;
// Apply some whirling.
float angle = pow(1.0 - dist, 2.0) * TWIRL * progress;
float s = sin(angle);
float c = cos(angle);
coords = vec2(dot(coords, vec2(c, -s)), dot(coords, vec2(s, c)));
// Fade out the window texture.
cogl_color_out = texture2D(uTexture, coords + center) * (1.0 - progress);
}
`);
};
});
}
+15 -9
View File
@@ -134,22 +134,27 @@ if (utils.isInShellProcess()) {
// this texture is also re-created each time. This could be improved in the future!
const shardData = GdkPixbuf.Pixbuf.new_from_resource('/img/shards.png');
this._shardTexture = new Clutter.Image();
this._shardTexture.set_data(
shardData.get_pixels(), Cogl.PixelFormat.RGB_888, shardData.width,
shardData.height, shardData.rowstride);
this._shardTexture.set_data(shardData.get_pixels(), Cogl.PixelFormat.RGB_888,
shardData.width, shardData.height, shardData.rowstride);
// Usually, the shards fly away from the center of the window.
let epicenterX = 0.5;
let epicenterY = 0.5;
// However, if this option is set, we use the mouse pointer position.
if (settings.get_boolean('broken-glass-use-pointer')) {
if (!forOpening && settings.get_boolean('broken-glass-use-pointer')) {
const [x, y] = global.get_pointer();
const [ok, localX, localY] = actor.transform_stage_point(x, y);
epicenterX = localX / actor.width;
epicenterY = localY / actor.height;
if (ok) {
epicenterX = localX / actor.width;
epicenterY = localY / actor.height;
}
}
// If we are currently performing integration test, the animation uses a fixed seed.
const testMode = settings.get_boolean('test-mode');
this.set_shader_source(`
// Inject some common shader snippets.
@@ -157,7 +162,8 @@ if (utils.isInShellProcess()) {
uniform sampler2D uShardTexture;
const vec2 SEED = vec2(${Math.random()}, ${Math.random()});
const vec2 SEED = vec2(${testMode ? 0 : Math.random()},
${testMode ? 0 : Math.random()});
const float SHARD_SCALE = ${settings.get_double('broken-glass-scale')};
const float SHARD_LAYERS = 5;
const float BLOW_FORCE = ${settings.get_double('broken-glass-blow-force')};
@@ -228,8 +234,8 @@ if (utils.isInShellProcess()) {
const pipeline = this.get_pipeline();
// Use linear filtering for the window texture.
pipeline.set_layer_filters(
0, Cogl.PipelineFilter.LINEAR, Cogl.PipelineFilter.LINEAR);
pipeline.set_layer_filters(0, Cogl.PipelineFilter.LINEAR,
Cogl.PipelineFilter.LINEAR);
// Bind the shard texture.
pipeline.set_layer_texture(1, this._shardTexture.get_texture());
+5 -1
View File
@@ -117,6 +117,9 @@ if (utils.isInShellProcess()) {
const color = Clutter.Color.from_string(settings.get_string('energize-a-color'))[1];
// If we are currently performing integration test, the animation uses a fixed seed.
const testMode = settings.get_boolean('test-mode');
this.set_shader_source(`
// Inject some common shader snippets.
@@ -124,7 +127,8 @@ if (utils.isInShellProcess()) {
${shaderSnippets.noise()}
${shaderSnippets.edgeMask()}
const vec2 SEED = vec2(${Math.random()}, ${Math.random()});
const vec2 SEED = vec2(${testMode ? 0 : Math.random()},
${testMode ? 0 : Math.random()});
const float FADE_IN_TIME = 0.3;
const float FADE_OUT_TIME = 0.6;
const float HEART_FADE_TIME = 0.3;
+5 -1
View File
@@ -117,6 +117,9 @@ if (utils.isInShellProcess()) {
const color = Clutter.Color.from_string(settings.get_string('energize-b-color'))[1];
// If we are currently performing integration test, the animation uses a fixed seed.
const testMode = settings.get_boolean('test-mode');
this.set_shader_source(`
// Inject some common shader snippets.
@@ -124,7 +127,8 @@ if (utils.isInShellProcess()) {
${shaderSnippets.noise()}
${shaderSnippets.edgeMask()}
const vec2 SEED = vec2(${Math.random()}, ${Math.random()});
const vec2 SEED = vec2(${testMode ? 0 : Math.random()},
${testMode ? 0 : Math.random()});
const float SHOWER_TIME = 0.3;
const float SHOWER_WIDTH = 0.3;
const float STREAK_TIME = 0.6;
+2 -2
View File
@@ -233,9 +233,9 @@ if (utils.isInShellProcess()) {
const gradient = [];
for (let i = 1; i <= 5; i++) {
const color =
Clutter.Color.from_string(settings.get_string('fire-color-' + i))[1];
Clutter.Color.from_string(settings.get_string('fire-color-' + i))[1];
gradient.push(`vec4(${color.red / 255}, ${color.green / 255}, ${
color.blue / 255}, ${color.alpha / 255})`);
color.blue / 255}, ${color.alpha / 255})`);
}
this.set_shader_source(`
+250
View File
@@ -0,0 +1,250 @@
//////////////////////////////////////////////////////////////////////////////////////////
// ) ( //
// ( /( ( ( ) ( ( ( ( )\ ) ( ( //
// )\()) ))\ )( ( ( )\ ) )\))( )\ ( (()/( ( )\))( ( //
// ((_)\ /((_|()\ )\ ) )\ '(()/( ((_)()((_) )\ ) ((_)))\((_)()\ )\ //
// | |(_|_))( ((_)_(_/( _((_)) )(_)) _(()((_|_)_(_/( _| |((_)(()((_|(_) //
// | '_ \ || | '_| ' \)) | ' \()| || | \ V V / | ' \)) _` / _ \ V V (_-< //
// |_.__/\_,_|_| |_||_| |_|_|_| \_, | \_/\_/|_|_||_|\__,_\___/\_/\_//__/ //
// |__/ //
// Copyright (c) 2021 Simon Schneegans //
// Released under the GPLv3 or later. See LICENSE file for details. //
//////////////////////////////////////////////////////////////////////////////////////////
'use strict';
const GObject = imports.gi.GObject;
const _ = imports.gettext.domain('burn-my-windows').gettext;
const ExtensionUtils = imports.misc.extensionUtils;
const Me = imports.misc.extensionUtils.getCurrentExtension();
const utils = Me.imports.src.utils;
//////////////////////////////////////////////////////////////////////////////////////////
// This effect overlays a glowing hexagonal grid over the window. The grid cells then //
// gradually shrink until the window is fully dissolved. //
//////////////////////////////////////////////////////////////////////////////////////////
// The shader class for this effect is registered further down in this file.
let Shader = null;
// The effect class is completely static. It can be used to get some metadata (like the
// effect's name or supported GNOME Shell versions), to initialize the respective page of
// the settings dialog, as well as to create the actual shader for the effect.
var Hexagon = class Hexagon {
// ---------------------------------------------------------------------------- metadata
// The effect is available on all GNOME Shell versions supported by this extension.
static getMinShellVersion() {
return [3, 36];
}
// This will be called in various places where a unique identifier for this effect is
// required. It should match the prefix of the settings keys which store whether the
// effect is enabled currently (e.g. '*-close-effect'), and its animation time
// (e.g. '*-animation-time').
static getNick() {
return 'hexagon';
}
// This will be shown in the sidebar of the preferences dialog as well as in the
// drop-down menus where the user can choose the effect.
static getLabel() {
return _('Hexagon');
}
// -------------------------------------------------------------------- API for prefs.js
// This is called by the preferences dialog. It loads the settings page for this effect,
// binds all properties to the settings and appends the page to the main stack of the
// preferences dialog.
static getPreferences(dialog) {
// Add the settings page to the builder.
dialog.getBuilder().add_from_resource(`/ui/${utils.getGTKString()}/Hexagon.ui`);
// Bind all properties.
dialog.bindAdjustment('hexagon-animation-time');
dialog.bindAdjustment('hexagon-scale');
dialog.bindAdjustment('hexagon-line-width');
dialog.bindColorButton('hexagon-line-color');
dialog.bindColorButton('hexagon-glow-color');
dialog.bindSwitch('hexagon-additive-blending');
// Finally, return the new settings page.
return dialog.getBuilder().get_object('hexagon-prefs');
}
// ---------------------------------------------------------------- API for extension.js
// This is called from extension.js whenever a window is closed with this effect.
static createShader(actor, settings, forOpening) {
return new Shader(settings, forOpening);
}
// The tweakTransition() is called from extension.js to tweak a window's open / close
// transitions - usually windows are faded in / out and scaled up / down by GNOME Shell.
// The parameter 'forOpening' is set to true if this is called for a window-open
// transition, for a window-close transition it is set to false. The modes can be set to
// any value from here: https://gjs-docs.gnome.org/clutter8~8_api/clutter.animationmode.
// The only required property is 'opacity', even if it transitions from 1.0 to 1.0. The
// current value of the opacity transition is passed as uProgress to the shader.
// Tweaking the actor's scale during the transition only works properly for GNOME 3.38+.
// For this effect, windows should neither be scaled nor faded.
static tweakTransition(actor, settings, forOpening) {
return {
'opacity': {from: 255, to: 255, mode: 1},
'scale-x': {from: 1.0, to: 1.0, mode: 1},
'scale-y': {from: 1.0, to: 1.0, mode: 1}
};
}
}
//////////////////////////////////////////////////////////////////////////////////////////
// The shader class for this effect will only be registered in GNOME Shell's process //
// (not in the preferences process). It's done this way as Clutter may not be installed //
// on the system and therefore the preferences would crash. //
//////////////////////////////////////////////////////////////////////////////////////////
if (utils.isInShellProcess()) {
const Clutter = imports.gi.Clutter;
const shaderSnippets = Me.imports.src.shaderSnippets;
Shader = GObject.registerClass({}, class Shader extends Clutter.ShaderEffect {
_init(settings, forOpening) {
super._init({shader_type: Clutter.ShaderType.FRAGMENT_SHADER});
// Get the two configurable colors. They are directly injected into the shader code
// below.
const glowColor =
Clutter.Color.from_string(settings.get_string('hexagon-glow-color'))[1];
const lineColor =
Clutter.Color.from_string(settings.get_string('hexagon-line-color'))[1];
// If we are currently performing integration test, the animation uses a fixed seed.
const testMode = settings.get_boolean('test-mode');
// Feel free to read the inline comments below to learn how this shader works.
this.set_shader_source(`
// Inject some common shader snippets.
${shaderSnippets.standardUniforms()}
${shaderSnippets.noise()}
const vec2 SEED = vec2(${testMode ? 0 : Math.random()},
${testMode ? 0 : Math.random()});
const float SCALE = 10.0 * ${settings.get_double('hexagon-scale')};
const float LINE_WIDTH = 0.02 * ${settings.get_double('hexagon-line-width')};
// This methods generates a procedural hexagonal pattern. It returns four values:
// result.xy: This contains cell-relative coordinates for the given point.
// [0, 0] is in the center of a cell, [0, 1] at the upper edge,
// [sqrt(4.0 / 3.0), 0] at the right tip and so on.
// result.z: This is the distance to the closest edge. This is used for shrinking
// of the tiles and the sharp overlay lines.
// result.w: This is the distance to the closest cell center. This is used for
// the glow effect.
vec4 getHexagons(vec2 p) {
// Length of a cell's edge.
const float edgeLength = sqrt(4.0 / 3.0);
// The hexgrid repeats after this distance.
const vec2 scale = vec2(3.0 * edgeLength, 2.0);
// This is a repeating grid of scale-sized cells. Y-values are in the
// interval [-1...1], X-value in [-1.5*edgeLength...1.5*edgeLength].
vec2 a = mod(p, scale) - scale * 0.5;
vec2 aAbs = abs(a);
// This is the same as above, but offset by half scale.
vec2 b = mod(p + scale * 0.5, scale) - scale * 0.5;
vec2 bAbs = abs(b);
// Distance to closer edge, diagonally or horizontally.
// Once for cell set A and once for cell set B.
float distA = max(aAbs.x / edgeLength + aAbs.y * 0.5, aAbs.y);
float distB = max(bAbs.x / edgeLength + bAbs.y * 0.5, bAbs.y);
// Minimum of both is distance to closest edge.
float dist = 1.0 - min(distA, distB);
// We use the radial distance to the center for glow.
float glow = min(dot(a, a), dot(b, b)) / 1.5;
// Take cell-relative coordinates from the closer cell.
vec2 cellCoords = distA < distB ? a : b;
return vec4(cellCoords, dist, glow);
}
void main() {
// We simply inverse the progress for opening windows.
float progress = ${forOpening ? '1.0-uProgress' : 'uProgress'};
// Add some smooth noise to the progress so that not every tile behaves the
// same.
float noise = simplex2D(cogl_tex_coord_in[0].st + SEED);
progress = clamp(mix(noise - 1.0, noise + 1.0, progress), 0.0, 1.0);
// glowProgress fades in in the first half of the animation, tileProgress fades
// in in the second half.
float glowProgress = smoothstep(0, 1, clamp(progress / 0.5, 0, 1));
float tileProgress = smoothstep(0, 1, clamp((progress - 0.5) / 0.5, 0, 1));
vec2 texScale = vec2(uSizeX, uSizeY) / SCALE;
vec4 hex = getHexagons(cogl_tex_coord_in[0].st * texScale);
if (tileProgress > hex.z) {
// Crop outer parts of the shrinking tiles.
cogl_color_out *= vec4(0.0);
} else {
// Make the tiles shrink by offsetting the texture lookup towards the edge
// of the cell.
vec2 lookupOffset = tileProgress * hex.xy / texScale / (1.0 - tileProgress);
cogl_color_out = texture2D(uTexture, cogl_tex_coord_in[0].st + lookupOffset);
vec4 glow = vec4(${glowColor.red / 255}, ${glowColor.green / 255},
${glowColor.blue / 255}, ${glowColor.alpha / 255});
vec4 line = vec4(${lineColor.red / 255}, ${lineColor.green / 255},
${lineColor.blue / 255}, ${lineColor.alpha / 255});
// For the glow, we accumulate a few exponentially scaled versions of hex.w.
glow.a *= pow(hex.w, 20.0) * 10.0 +
pow(hex.w, 10.0) * 5.0 +
pow(hex.w, 2.0) * 0.5;
// Using step(LINE_WIDTH, hex.z) would be simpler, but the below creates some
// fake antialiasing.
line.a *= 1.0 - smoothstep(LINE_WIDTH*0.5, LINE_WIDTH, hex.z);
// Fade in the glowing lines.
glow.a *= glowProgress;
line.a *= glowProgress;
// Do not add the hexagon lines onto transparent parts of the window.
glow *= cogl_color_out.a;
line *= cogl_color_out.a;
if (${settings.get_boolean('hexagon-additive-blending')}) {
cogl_color_out.rgb += glow.rgb * glow.a;
cogl_color_out.rgb += line.rgb * line.a;
} else {
cogl_color_out.rgb = mix(cogl_color_out.rgb, glow.rgb, glow.a);
cogl_color_out.rgb = mix(cogl_color_out.rgb, line.rgb, line.a);
}
}
}
`);
};
});
}
+5 -5
View File
@@ -129,14 +129,14 @@ if (utils.isInShellProcess()) {
const fontData = GdkPixbuf.Pixbuf.new_from_resource('/img/matrixFont.png');
this._fontTexture = new Clutter.Image();
this._fontTexture.set_data(
fontData.get_pixels(),
fontData.has_alpha ? Cogl.PixelFormat.RGBA_8888 : Cogl.PixelFormat.RGB_888,
fontData.width, fontData.height, fontData.rowstride);
fontData.get_pixels(),
fontData.has_alpha ? Cogl.PixelFormat.RGBA_8888 : Cogl.PixelFormat.RGB_888,
fontData.width, fontData.height, fontData.rowstride);
const trailColor =
Clutter.Color.from_string(settings.get_string('matrix-trail-color'))[1];
Clutter.Color.from_string(settings.get_string('matrix-trail-color'))[1];
const tipColor =
Clutter.Color.from_string(settings.get_string('matrix-tip-color'))[1];
Clutter.Color.from_string(settings.get_string('matrix-tip-color'))[1];
// The technique for this effect was inspired by
// https://www.shadertoy.com/view/ldccW4, however the implementation is quite
+243
View File
@@ -0,0 +1,243 @@
//////////////////////////////////////////////////////////////////////////////////////////
// ) ( //
// ( /( ( ( ) ( ( ( ( )\ ) ( ( //
// )\()) ))\ )( ( ( )\ ) )\))( )\ ( (()/( ( )\))( ( //
// ((_)\ /((_|()\ )\ ) )\ '(()/( ((_)()((_) )\ ) ((_)))\((_)()\ )\ //
// | |(_|_))( ((_)_(_/( _((_)) )(_)) _(()((_|_)_(_/( _| |((_)(()((_|(_) //
// | '_ \ || | '_| ' \)) | ' \()| || | \ V V / | ' \)) _` / _ \ V V (_-< //
// |_.__/\_,_|_| |_||_| |_|_|_| \_, | \_/\_/|_|_||_|\__,_\___/\_/\_//__/ //
// |__/ //
// Copyright (c) 2021 Simon Schneegans //
// Released under the GPLv3 or later. See LICENSE file for details. //
//////////////////////////////////////////////////////////////////////////////////////////
'use strict';
const GObject = imports.gi.GObject;
const _ = imports.gettext.domain('burn-my-windows').gettext;
const ExtensionUtils = imports.misc.extensionUtils;
const Me = imports.misc.extensionUtils.getCurrentExtension();
const utils = Me.imports.src.utils;
//////////////////////////////////////////////////////////////////////////////////////////
// This effects dissolves your windows into a cloud of dust. For this, it uses an //
// approach similar to the Broken Glass effect. A dust texture is used to segment the //
// window texture into a set of layers. Each layer is then moved, sheared and scaled //
// randomly. Just a few layers are sufficient to create the illusion of many individual //
// dust particles. //
// This effect is not available on GNOME 3.3x, due to the limitation described in the //
// documentation of vfunc_paint_target further down in this file. //
//////////////////////////////////////////////////////////////////////////////////////////
// The shader class for this effect is registered further down in this file.
let Shader = null;
// The effect class is completely static. It can be used to get some metadata (like the
// effect's name or supported GNOME Shell versions), to initialize the respective page of
// the settings dialog, as well as to create the actual shader for the effect.
var SnapOfDisintegration = class SnapOfDisintegration {
// ---------------------------------------------------------------------------- metadata
// This effect is only available on GNOME Shell 40+.
static getMinShellVersion() {
return [40, 0];
}
// This will be called in various places where a unique identifier for this effect is
// required. It should match the prefix of the settings keys which store whether the
// effect is enabled currently (e.g. '*-close-effect'), and its animation time
// (e.g. '*-animation-time').
static getNick() {
return 'snap';
}
// This will be shown in the sidebar of the preferences dialog as well as in the
// drop-down menus where the user can choose the effect.
static getLabel() {
return _('Snap of Disintegration');
}
// -------------------------------------------------------------------- API for prefs.js
// This is called by the preferences dialog. It loads the settings page for this effect,
// binds all properties to the settings and appends the page to the main stack of the
// preferences dialog.
static getPreferences(dialog) {
// Add the settings page to the builder.
dialog.getBuilder().add_from_resource('/ui/gtk4/SnapOfDisintegration.ui');
// Bind all properties.
dialog.bindAdjustment('snap-animation-time');
dialog.bindAdjustment('snap-scale');
dialog.bindColorButton('snap-color');
// Finally, return the new settings page.
return dialog.getBuilder().get_object('snap-prefs');
}
// ---------------------------------------------------------------- API for extension.js
// This is called from extension.js whenever a window is closed with this effect.
static createShader(actor, settings, forOpening) {
return new Shader(actor, settings, forOpening);
}
// The tweakTransition() is called from extension.js to tweak a window's open / close
// transitions - usually windows are faded in / out and scaled up / down by GNOME Shell.
// The parameter 'forOpening' is set to true if this is called for a window-open
// transition, for a window-close transition it is set to false. The modes can be set to
// any value from here: https://gjs-docs.gnome.org/clutter8~8_api/clutter.animationmode.
// The only required property is 'opacity', even if it transitions from 1.0 to 1.0. The
// current value of the opacity transition is passed as uProgress to the shader.
// Tweaking the actor's scale during the transition only works properly for GNOME 3.38+.
// For this effect, windows are set to 1.2 times their original size, so that we have
// some space to draw the dust particles. We also set the animation mode to "Linear".
static tweakTransition(actor, settings, forOpening) {
return {
'opacity': {from: 255, to: 255, mode: 1},
'scale-x': {from: 1.2, to: 1.2, mode: 1},
'scale-y': {from: 1.2, to: 1.2, mode: 1}
};
}
}
//////////////////////////////////////////////////////////////////////////////////////////
// The shader class for this effect will only be registered in GNOME Shell's process //
// (not in the preferences process). It's done this way as Clutter may not be installed //
// on the system and therefore the preferences would crash. //
//////////////////////////////////////////////////////////////////////////////////////////
if (utils.isInShellProcess()) {
const {Clutter, GdkPixbuf, Cogl} = imports.gi;
const shaderSnippets = Me.imports.src.shaderSnippets;
Shader = GObject.registerClass({}, class Shader extends Clutter.ShaderEffect {
_init(actor, settings, forOpening) {
super._init({shader_type: Clutter.ShaderType.FRAGMENT_SHADER});
// Load the dust texture. As the shader is re-created for each window animation,
// this texture is also re-created each time. This could be improved in the future!
const dustData = GdkPixbuf.Pixbuf.new_from_resource('/img/dust.png');
this._dustTexture = new Clutter.Image();
this._dustTexture.set_data(dustData.get_pixels(), Cogl.PixelFormat.RGB_888,
dustData.width, dustData.height, dustData.rowstride);
// The dust particles will fade to this color over time.
const color = Clutter.Color.from_string(settings.get_string('snap-color'))[1];
// If we are currently performing integration test, the animation uses a fixed seed.
const testMode = settings.get_boolean('test-mode');
this.set_shader_source(`
// Inject some common shader snippets.
${shaderSnippets.standardUniforms()}
${shaderSnippets.noise()}
${shaderSnippets.math2D()}
uniform sampler2D uDustTexture;
const vec2 SEED = vec2(${testMode ? 0 : Math.random()},
${testMode ? 0 : Math.random()});
const float DUST_SCALE = ${settings.get_double('snap-scale')};
const float DUST_LAYERS = 4;
const float GROW_INTENSITY = 0.05;
const float SHRINK_INTENSITY = 0.05;
const float WIND_INTENSITY = 0.05;
const float ACTOR_SCALE = 1.2;
const float PADDING = ACTOR_SCALE / 2.0 - 0.5;
const vec4 DUST_COLOR = vec4(${color.red / 255}, ${color.green / 255},
${color.blue / 255}, ${color.alpha / 255});
void main() {
// We simply inverse the progress for opening windows.
float progress = ${forOpening ? 'uProgress' : '1.0 - uProgress'};
float gradient = cogl_tex_coord_in[0].t * ACTOR_SCALE - PADDING;
progress = 2.0 - gradient - 2.0 * progress;
progress = progress + 0.25 - 0.5 * simplex2D((cogl_tex_coord_in[0].st + SEED) * 2.0);
progress = pow(max(0, progress), 2.0);
// This may help you to understand how this effect works.
// cogl_color_out = vec4(progress, 0, 0, 0);
// return;
cogl_color_out = vec4(0, 0, 0, 0);
for (float i=0; i<DUST_LAYERS; ++i) {
// Create a random direction.
float factor = DUST_LAYERS == 1 ? 0 : i/(DUST_LAYERS-1);
float angle = 123.123 * (SEED.x + factor);
vec2 direction = vec2(1.0, 0.0);
direction = rotate(direction, angle);
// Flip direction for one side of the window.
vec2 coords = cogl_tex_coord_in[0].st * ACTOR_SCALE - PADDING - 0.5;
if (getWinding(direction, coords) > 0) {
direction *= -1;
}
// Flip direction for half the layers.
if (factor > 0.5) {
direction *= -1;
}
// We grow the layer along the random direction, shrink it orthogonally to it
// and scale it up slightly.
float dist = distToLine(vec2(0.0), direction, coords);
vec2 grow = direction * dist * mix(0, GROW_INTENSITY, progress);
vec2 shrink = vec2(direction.y, -direction.x) * dist * mix(0, SHRINK_INTENSITY, progress);
float scale = mix(1.0, 1.05, factor * progress);
coords = (coords + grow + shrink) / scale;
// Add some wind.
coords.x = coords.x ${forOpening ? ' + ' : ' - '} progress * WIND_INTENSITY;
// Now check wether there is actually something in the current dust layer at
// the coords position.
vec2 dustCoords = (coords + SEED) * vec2(uSizeX, uSizeY) / DUST_SCALE / 100.0;
vec2 dustMap = texture2D(uDustTexture, dustCoords).rg;
float dustGroup = floor(dustMap.g * DUST_LAYERS * 0.999);
if (dustGroup == i) {
// Fade the window color to DUST_COLOR.
vec4 windowColor = texture2D(uTexture, coords + 0.5);
vec3 dustColor = mix(windowColor.rgb, DUST_COLOR.rgb, DUST_COLOR.a);
windowColor.rgb = mix(windowColor.rgb, dustColor*windowColor.a, progress);
// Dissolve the dust particles.
float dissolve = (dustMap.x - progress) > 0 ? 1 : 0;
windowColor *= dissolve;
// Blend the layers.
cogl_color_out = mix(cogl_color_out, windowColor, windowColor.a);
}
}
}
`);
};
// This is overridden to bind the dust texture for drawing. Sadly, this seems to be
// impossible under GNOME 3.3x as this.get_pipeline() is not available. It was called
// get_target() back then but this is not wrapped in GJS.
// https://gitlab.gnome.org/GNOME/mutter/-/blob/gnome-3-36/clutter/clutter/clutter-offscreen-effect.c#L598
vfunc_paint_target(node, paint_context) {
const pipeline = this.get_pipeline();
pipeline.set_layer_filters(0, Cogl.PipelineFilter.LINEAR,
Cogl.PipelineFilter.LINEAR);
pipeline.set_layer_texture(1, this._dustTexture.get_texture());
pipeline.set_layer_wrap_mode(1, Cogl.PipelineWrapMode.REPEAT);
this.set_uniform_value('uDustTexture', 1);
super.vfunc_paint_target(node, paint_context);
}
});
}
+8 -5
View File
@@ -125,12 +125,14 @@ if (utils.isInShellProcess()) {
// See assets/README.md for how this texture was created.
const clawData = GdkPixbuf.Pixbuf.new_from_resource('/img/claws.png');
this._clawTexture = new Clutter.Image();
this._clawTexture.set_data(
clawData.get_pixels(), Cogl.PixelFormat.RGB_888, clawData.width,
clawData.height, clawData.rowstride);
this._clawTexture.set_data(clawData.get_pixels(), Cogl.PixelFormat.RGB_888,
clawData.width, clawData.height, clawData.rowstride);
const color =
Clutter.Color.from_string(settings.get_string('claw-scratch-color'))[1];
Clutter.Color.from_string(settings.get_string('claw-scratch-color'))[1];
// If we are currently performing integration test, the animation uses a fixed seed.
const testMode = settings.get_boolean('test-mode');
this.set_shader_source(`
@@ -141,7 +143,8 @@ if (utils.isInShellProcess()) {
// See assets/README.md for how this texture was created.
uniform sampler2D uClawTexture;
const vec2 SEED = vec2(${Math.random()}, ${Math.random()});
const vec2 SEED = vec2(${testMode ? 0 : Math.random()},
${testMode ? 0 : Math.random()});
const float CLAW_SIZE = ${settings.get_double('claw-scratch-scale')};
const float NUM_CLAWS = ${settings.get_int('claw-scratch-count')};
const float WARP_INTENSITY = 1.0 + ${settings.get_double('claw-scratch-warp')};
+5 -1
View File
@@ -118,6 +118,9 @@ if (utils.isInShellProcess()) {
const color = Clutter.Color.from_string(settings.get_string('wisps-color'))[1];
// If we are currently performing integration test, the animation uses a fixed seed.
const testMode = settings.get_boolean('test-mode');
this.set_shader_source(`
// Inject some common shader snippets.
@@ -125,7 +128,8 @@ if (utils.isInShellProcess()) {
${shaderSnippets.noise()}
${shaderSnippets.edgeMask()}
const vec2 SEED = vec2(${Math.random()}, ${Math.random()});
const vec2 SEED = vec2(${testMode ? 0 : Math.random()},
${testMode ? 0 : Math.random()});
const float WISPS_RADIUS = 20.0;
const float WISPS_SPEED = 10.0;
const float WISPS_SPACING = 40 + WISPS_RADIUS;
+18
View File
@@ -33,6 +33,24 @@ function standardUniforms() {
`;
}
function math2D() {
return `
float distToLine(vec2 origin, vec2 direction, vec2 point) {
vec2 perpendicular = vec2(direction.y, -direction.x);
return abs(dot(normalize(perpendicular), origin - point));
}
float getWinding(vec2 a, vec2 b) {
return cross(vec3(a, 0.0), vec3(b, 0.0)).z;
}
vec2 rotate(vec2 a, float angle) {
return vec2(a.x * cos(angle) - a.y * sin(angle),
a.x * sin(angle) + a.y * cos(angle));
}
`;
}
// This method returns a mask which smoothly transitions towards zero when approaching
// the window's borders. There is a variant which takes the transition area width in
// pixels and one which takes this as a percentage.
+18 -8
View File
@@ -15,8 +15,22 @@
const {Gtk} = imports.gi;
// Returns the given argument, except for "alpha", "beta", and "rc". In these cases -3,
// -2, and -1 are returned respectively.
function toNumericVersion(x) {
switch (x) {
case 'alpha':
return -3;
case 'beta':
return -2;
case 'rc':
return -1;
}
return x;
}
const Config = imports.misc.config;
const [GS_MAJOR, GS_MINOR] = Config.PACKAGE_VERSION.split('.');
const [GS_MAJOR, GS_MINOR] = Config.PACKAGE_VERSION.split('.').map(toNumericVersion);
const ExtensionUtils = imports.misc.extensionUtils;
const Me = imports.misc.extensionUtils.getCurrentExtension();
@@ -60,22 +74,18 @@ function isInShellProcess() {
// This method returns true if the current GNOME Shell version matches the given
// arguments.
function shellVersionIs(major, minor) {
return GS_MAJOR == major && GS_MINOR == minor;
return GS_MAJOR == major && GS_MINOR == toNumericVersion(minor);
}
// This method returns true if the current GNOME Shell version is at least as high as the
// given arguments.
// given arguments. Supports "alpha" and "beta" for the minor version number.
function shellVersionIsAtLeast(major, minor) {
if (GS_MAJOR > major) {
return true;
}
if (GS_MAJOR == major) {
if (minor == 'alpha') return true;
if (minor == 'beta' && GS_MINOR == 'alpha') return false;
if (minor == 'beta' && GS_MINOR == 'beta') return true;
return GS_MINOR >= minor;
return GS_MINOR >= toNumericVersion(minor);
}
return false;
+189
View File
@@ -0,0 +1,189 @@
#!/bin/bash
# -------------------------------------------------------------------------------------- #
# ) ( #
# ( /( ( ( ) ( ( ( ( )\ ) ( ( #
# )\()) ))\ )( ( ( )\ ) )\))( )\ ( (()/( ( )\))( ( #
# ((_)\ /((_|()\ )\ ) )\ '(()/( ((_)()((_) )\ ) ((_)))\((_)()\ )\ #
# | |(_|_))( ((_)_(_/( _((_)) )(_)) _(()((_|_)_(_/( _| |((_)(()((_|(_) #
# | '_ \ || | '_| ' \)) | ' \()| || | \ V V / | ' \)) _` / _ \ V V (_-< #
# |_.__/\_,_|_| |_||_| |_|_|_| \_, | \_/\_/|_|_||_|\__,_\___/\_/\_//__/ #
# |__/ #
# Copyright (c) 2021 Simon Schneegans #
# Released under the GPLv3 or later. See LICENSE file for details. #
# -------------------------------------------------------------------------------------- #
# This script is used to generate the reference images required for the run-tests.sh
# script. To do this, it installs the extension in a fedora-based container running GNOME
# Shell on xvfb. It requires the burn-my-windows@schneegans.github.com.zip file which is
# expected to be present in the repository root. Therefore you have to call "make" before
# this script.
#
# The scripts supports two arguments:
#
# -v fedora_version: This determines the version of GNOME Shell to test agains.
# -v 32: GNOME Shell 3.36
# -v 33: GNOME Shell 3.38
# -v 34: GNOME Shell 40
# -v 35: GNOME Shell 41
# -s session: This can either be "gnome-xsession" or "gnome-wayland-nested".
# Exit on error.
set -e
usage() {
echo "Usage: $0 -v fedora_version -s session" >&2
}
FEDORA_VERSION=33
SESSION="gnome-xsession"
while getopts "v:s:h" opt; do
case $opt in
v) FEDORA_VERSION="${OPTARG}";;
s) SESSION="${OPTARG}";;
h) usage; exit 0;;
*) usage; exit 1;;
esac
done
# Go to the repo root.
cd "$( cd "$( dirname "$0" )" && pwd )/.." || \
{ echo "ERROR: Could not find the repo root."; exit 1; }
IMAGE="ghcr.io/schneegans/gnome-shell-pod-${FEDORA_VERSION}"
EXTENSION="burn-my-windows@schneegans.github.com"
# All references images of the effects are captured at & cropped to this region
# in the center of the screen. This is kind of arbitrary, but has been choosen so that
# something is visible from each effect.
CROP="100x100+910+480"
# Run the container. For more info, visit https://github.com/Schneegans/gnome-shell-pod.
POD=$(podman run --rm --cap-add=SYS_NICE --cap-add=IPC_LOCK -td "${IMAGE}")
# Properly shutdown podman when this script is exited.
quit() {
podman kill "${POD}"
wait
}
trap quit INT TERM EXIT
# -------------------------------------------------------------------------------- methods
# This function is used below to execute any shell command inside the running container.
do_in_pod() {
podman exec --user gnomeshell --workdir /home/gnomeshell "${POD}" set-env.sh "$@"
}
# This simulates the given keystroke in the container. Simply calling "xdotool key $1"
# sometimes fails to be recognized. Maybe the default 12ms between key-down and key-up
# are too short for xvfb...
send_keystroke() {
do_in_pod xdotool keydown "${1}"
sleep 0.5
do_in_pod xdotool keyup "${1}"
}
# This can be used to set a gsettings key of the extension.
set_setting() {
do_in_pod gsettings --schemadir /home/gnomeshell/.local/share/gnome-shell/extensions/burn-my-windows@schneegans.github.com/schemas \
set org.gnome.shell.extensions.burn-my-windows "${1}" "${2}"
}
# This makes a screen capture (cropped to $CROP) inside the container and stores it
# on the host relative to this script with the given file name.
capture() {
do_in_pod import -window root -crop $CROP out.png
podman cp "${POD}":/home/gnomeshell/out.png "${1}"
}
# This opens the extensions preferences dialog and captures two images: One during the
# window-open animation, and one during the window-close animation. The sleeps are a bit
# excessive, but it's difficult to get consistent results with shorter sleeps. The
# animations are shown for five seconds, so we also have to make sure that one animation
# is finished before starting the next one.
capture_effect() {
echo "Capturing ${1} effect."
set_setting "open-preview-effect" "${1}"
set_setting "close-preview-effect" "${1}"
sleep 2
do_in_pod gnome-extensions prefs "${EXTENSION}"
sleep 2
capture "tests/references/${1}-open-${SESSION}-${FEDORA_VERSION}.png"
send_keystroke "Alt+F4"
sleep 2
capture "tests/references/${1}-close-${SESSION}-${FEDORA_VERSION}.png"
sleep 2
}
# ----------------------------------------------------- wait for the container to start up
echo "Waiting for D-Bus."
do_in_pod wait-user-bus.sh > /dev/null 2>&1
# ----------------------------------------------------- install the to-be-tested extension
echo "Installing extension."
podman cp "tests/references" "${POD}:/home/gnomeshell/references"
podman cp "${EXTENSION}.zip" "${POD}:/home/gnomeshell"
do_in_pod gnome-extensions install "${EXTENSION}.zip"
# ---------------------------------------------------------------------- start GNOME Shell
# Starting with GNOME 40, there is a "Welcome Tour" dialog popping up at first launch.
# We disable this beforehand.
if [[ "${FEDORA_VERSION}" -gt 33 ]]; then
echo "Disabling welcome tour."
do_in_pod gsettings set org.gnome.shell welcome-dialog-last-shown-version "999" || true
fi
echo "Starting $(do_in_pod gnome-shell --version)."
do_in_pod systemctl --user start "${SESSION}@:99"
sleep 10
# Enable the extension.
do_in_pod gnome-extensions enable "${EXTENSION}"
# Starting with GNOME 40, the overview is the default mode. We close this here by hitting
# the super key.
if [[ "${FEDORA_VERSION}" -gt 33 ]]; then
echo "Closing Overview."
send_keystroke "super"
fi
# Wait until the extension is enabled and the overview closed.
sleep 3
# --------------------------------------------------------------------- capture the images
# The test mode ensures that the animations are "frozen" and do not change in time.
echo "Entering test mode."
set_setting "test-mode" true
do_in_pod gsettings set org.gnome.mutter center-new-windows true
capture_effect "energize-a"
capture_effect "energize-b"
capture_effect "fire"
capture_effect "hexagon"
capture_effect "tv"
capture_effect "wisps"
if [[ "${FEDORA_VERSION}" -gt 32 ]]; then
capture_effect "apparition"
fi
if [[ "${FEDORA_VERSION}" -gt 33 ]]; then
capture_effect "trex"
capture_effect "broken-glass"
capture_effect "matrix"
capture_effect "snap"
fi
echo "All reference images generated successfully."
Binary file not shown.

After

Width:  |  Height:  |  Size: 815 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 967 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 815 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 685 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 685 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1021 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 815 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 967 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 815 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 685 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 685 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1021 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 752 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 767 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 721 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 724 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Some files were not shown because too many files have changed in this diff Show More