Compare commits

...

142 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 2cc1c9655e 💞 Update credits
Deploy / Extension Bundle (push) Has been cancelled
2022-02-19 12:58:51 +01:00
Simon Schneegans e47c85e365 🌐 Translated using Weblate (German) 2022-02-18 20:40:36 +01:00
Hosted Weblate b8a0a158d8 🌐 Update translation files 2022-02-18 20:40:36 +01:00
Simon Schneegans 29ea1de206 🌐 Update translation template 2022-02-18 20:34:38 +01:00
Simon Schneegans 2637390557 📝 Add changelog entry 2022-02-18 20:32:48 +01:00
Simon Schneegans 9b513f7e2b 🔀 Merge pull request #104 from Schneegans/feature/gnome-42
GNOME Shell 42
2022-02-18 20:31:17 +01:00
Simon Schneegans 97fe06a98f 📝 Add changelog entry 2022-02-18 20:23:25 +01:00
Simon Schneegans 1a3568e80d 💄 Fix margin 2022-02-18 20:21:10 +01:00
Simon Schneegans 62363d7bd9 Merge branch 'main' into feature/gnome-42 2022-02-18 20:18:10 +01:00
Simon Schneegans ecdb6d605f 🔧 Add liberapay link 2022-02-18 20:17:51 +01:00
Simon Schneegans 41fcaf04ff 🔧 Use libadwaita for the settings dialog 2022-02-18 17:43:40 +01:00
Simon Schneegans 0886007e98 🔧 Support alpha and beta versions in version check 2022-02-18 17:24:10 +01:00
Simon Schneegans 4a82e7f580 🔧 Add liberapay funding method 2022-02-17 13:58:33 +01:00
Mario 78d30e82c6 🌐 Translated using Weblate (Italian) 2022-02-14 13:05:55 +01:00
Simon Schneegans 664bd3b5dc 💞 Add new sponsor 2022-02-14 13:02:38 +01:00
Ulices 737e88a23b 🌐 Translated using Weblate (Spanish) 2022-02-09 20:03:30 +01:00
Heimen Stoffels 6d10c6f031 🌐 Translated using Weblate (Dutch) 2022-02-05 13:55:25 +01:00
albanobattistella 1fb5e8584a 🌐 Translated using Weblate (Italian) 2022-02-05 13:55:25 +01:00
Reda 563d72531e 🌐 Translated using Weblate (French) 2022-02-05 13:55:25 +01:00
Simon Schneegans 39baed1b29 💞 Add new sponsor 2022-02-04 20:42:02 +01:00
Simon Schneegans 318558240c 🔀 Merge pull request #96 from shemgp/patch-1 2022-02-04 14:09:46 +01:00
Shem Pasamba bda68175a0 Add version 42 since it works there 2022-02-04 13:55:35 +08:00
Simon Schneegans 3a37aa3dce 🎉 Bump version number 2022-02-03 13:20:36 +01:00
Simon Schneegans ef2bef9f87 📝 Set release date
Deploy / Extension Bundle (push) Has been cancelled
2022-02-03 13:16:38 +01:00
Simon Schneegans c99ea6617e 🌐 Translated using Weblate (German) 2022-02-03 13:14:27 +01:00
Hosted Weblate c7c4f18af6 🌐 Update translation files 2022-02-03 13:14:27 +01:00
Simon Schneegans ff1490f8c6 🌐 Update translation template 2022-02-03 13:11:47 +01:00
Simon Schneegans 0be73d8b2f 💄 Remove tagline 2022-02-03 13:11:36 +01:00
Simon Schneegans 9266655493 🔀 Merge pull request #94 from Schneegans/feature/better-templates 2022-02-03 13:06:12 +01:00
Simon Schneegans 513bbd8b85 📝 Add changelog entry 2022-02-03 12:56:23 +01:00
Simon Schneegans 6c891a60e7 📝 Add new-effect template 2022-02-03 12:56:12 +01:00
Simon Schneegans 2115c31359 📝 Improve feature request template 2022-02-03 12:46:02 +01:00
Simon Schneegans 855f8870e3 📝 Improve bug report template 2022-02-03 12:42:08 +01:00
Ulices 16d7e3c195 🌐 Translated using Weblate (Spanish) 2022-02-03 09:56:29 +01:00
Heimen Stoffels 5133f82041 🌐 Translated using Weblate (Dutch) 2022-02-03 09:56:29 +01:00
Jiří Doubravský 91a60e9813 🌐 Translated using Weblate (Czech) 2022-02-03 09:56:29 +01:00
Óscar Fernández Díaz 511e447f24 🌐 Translated using Weblate (Spanish) 2022-02-03 09:56:29 +01:00
albanobattistella 31e8cf9405 🌐 Translated using Weblate (Italian) 2022-02-03 09:56:29 +01:00
Reda 0fd8832b36 🌐 Translated using Weblate (French) 2022-02-03 09:56:29 +01:00
Simon Schneegans f111a6c3bb 💞 Add new sponsor 2022-02-02 15:53:51 +01:00
Simon Schneegans eb1d8f6ac6 📝 Add changelog entry 2022-02-02 14:43:47 +01:00
Simon Schneegans d05635b9c2 Merge branch 'main' of github.com:Schneegans/Burn-My-Windows 2022-02-02 14:42:57 +01:00
Simon Schneegans dad19c5505 🔀 Merge pull request #87 from Schneegans/fix/#86 2022-02-02 14:42:36 +01:00
Simon Schneegans 5406c88a7b 🔧 Add about dialog 2022-02-02 14:40:38 +01:00
Simon Schneegans 39f79507ac 🔧 Tweak tagline 2022-02-02 14:39:08 +01:00
Simon Schneegans 78ff080dce 💞 Add credits files 2022-02-02 14:38:54 +01:00
Simon Schneegans 6d85ce893b 📝 Add changelog entry 2022-02-02 13:13:29 +01:00
Simon Schneegans f9b82c6086 🪲 Try fixing #86 2022-02-02 13:13:16 +01:00
Heimen Stoffels 432a0a7998 🌐 Added translation using Weblate (Dutch) 2022-02-02 13:08:23 +01:00
Simon Schneegans e22eb79ccd 📝 Add trailer link 2022-02-01 16:06:41 +01:00
Jiří Doubravský d92183eff4 🌐 Added translation using Weblate (Czech) 2022-02-01 15:58:36 +01:00
Nathan 92fe4d0179 🌐 Translated using Weblate (French) 2022-02-01 15:58:36 +01:00
Reda 6e1a643e22 🌐 Translated using Weblate (French) 2022-02-01 15:58:36 +01:00
Óscar Fernández Díaz 207d79c66c 🌐 Added translation using Weblate (Spanish) 2022-02-01 15:58:36 +01:00
Théo Remon 88c9dacb31 🌐 Translated using Weblate (French) 2022-02-01 15:58:36 +01:00
Nathan a9493a6765 🌐 Translated using Weblate (French) 2022-02-01 15:58:36 +01:00
Théo Remon fdea3cd148 🌐 Translated using Weblate (French) 2022-02-01 15:58:36 +01:00
Nathan 79851e9eca 🌐 Translated using Weblate (French) 2022-02-01 15:58:36 +01:00
Théo Remon c993e02447 🌐 Translated using Weblate (French) 2022-02-01 15:58:36 +01:00
Simon Schneegans ee12f50d85 🎉 Bump version number 2022-01-31 05:59:55 +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
261 changed files with 65248 additions and 974 deletions
+2
View File
@@ -1,4 +1,6 @@
BasedOnStyle: Google BasedOnStyle: Google
AlignConsecutiveAssignments: true AlignConsecutiveAssignments: true
AlignAfterOpenBracket: Align
ContinuationIndentWidth: 2
KeepEmptyLinesAtTheStartOfBlocks: true KeepEmptyLinesAtTheStartOfBlocks: true
ColumnLimit: 90 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 ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel 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 community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username liberapay: # Schneegans
issuehunt: # Replace with a single IssueHunt username issuehunt: # Replace with a single IssueHunt username
otechie: # Replace with a single Otechie username otechie: # Replace with a single Otechie username
custom: ['https://www.paypal.com/donate/?hosted_button_id=3F7UFL8KLVPXE'] custom: ['https://www.paypal.com/donate/?hosted_button_id=3F7UFL8KLVPXE']
+3 -4
View File
@@ -17,14 +17,13 @@ Steps to reproduce the behavior:
4. See error 4. See error
You may also check the output of GNOME Shell for any error messages. You may also check the output of GNOME Shell for any error messages.
This can be done with the following terminal command: This can be done with the following terminal command.
Execute this in a terminal and observe the output while reproducing the bug.
```bash
journalctl -f -o cat | grep -E 'burn-my-windows|' journalctl -f -o cat | grep -E 'burn-my-windows|'
``` ```
## Expected Behavior
A clear and concise description of what you expected to happen.
## System ## System
_Please complete the following information:_ _Please complete the following information:_
- Linux distribution [e.g. Ubuntu 21.04] - Linux distribution [e.g. Ubuntu 21.04]
+6 -8
View File
@@ -1,16 +1,14 @@
--- ---
name: Feature Request name: General Feature Request
about: Suggest an idea for the Burn-My-Windows Extension. about: Suggest an idea for the Burn-My-Windows Extension.
title: '' title: ''
labels: enhancement labels: 'feature request'
assignees: '' assignees: ''
--- ---
## The Motivation ## The Idea
A clear and concise description of use-case. A clear and concise description of your idea.
If applicable, feel free to add screenshots or mock-ups to illustrate your idea!
## The Solution
A clear and concise description of what you want to happen.
## The Alternatives ## The Alternatives
A clear and concise description of any alternative solutions or features you've considered. Are there alternative solutions or features you've considered?
+17
View File
@@ -0,0 +1,17 @@
---
name: New Effect
about: Suggest a new effect for the Burn-My-Windows Extension.
title: ''
labels: 'new effect'
assignees: ''
---
## The Idea
Please describe your idea as detailed as possible.
It would be great if you could add a drawing or any other kind of mock-up to illustrate your idea!
## Window Closing vs. Window Opening
Make sure to describe how the effect could be reversed, so how should a window disappear and how should it appear.
## References
It would be great if you could provide some video references (e.g. YouTube links) if your idea is based on something which - for example - exists in movies.
+2 -2
View File
@@ -19,7 +19,7 @@ jobs:
echo "CODE_LINES=$(scripts/cloc.sh --loc)" >> $GITHUB_ENV echo "CODE_LINES=$(scripts/cloc.sh --loc)" >> $GITHUB_ENV
echo "COMMENT_LINES=$(scripts/cloc.sh --percentage)%" >> $GITHUB_ENV echo "COMMENT_LINES=$(scripts/cloc.sh --percentage)%" >> $GITHUB_ENV
- name: Create Lines-of-Code-Badge - name: Create Lines-of-Code-Badge
uses: schneegans/dynamic-badges-action@v1.1.0 uses: schneegans/dynamic-badges-action@v1.2.0
with: with:
auth: ${{ secrets.GIST_SECRET }} auth: ${{ secrets.GIST_SECRET }}
gistID: 8cf45f23253ff09b21196e7271378762 gistID: 8cf45f23253ff09b21196e7271378762
@@ -29,7 +29,7 @@ jobs:
color: lightgrey color: lightgrey
labelColor: 303030 labelColor: 303030
- name: Create Comments-Badge - name: Create Comments-Badge
uses: schneegans/dynamic-badges-action@v1.1.0 uses: schneegans/dynamic-badges-action@v1.2.0
with: with:
auth: ${{ secrets.GIST_SECRET }} auth: ${{ secrets.GIST_SECRET }}
gistID: 8cf45f23253ff09b21196e7271378762 gistID: 8cf45f23253ff09b21196e7271378762
+1
View File
@@ -84,6 +84,7 @@ jobs:
- '33' - '33'
- '34' - '34'
- '35' - '35'
- '36'
session: session:
- 'gnome-xsession' - 'gnome-xsession'
- 'gnome-wayland-nested' - 'gnome-wayland-nested'
+2 -3
View File
@@ -6,7 +6,7 @@ on:
- '**' - '**'
jobs: jobs:
source_code: extension_bundle:
name: Extension Bundle name: Extension Bundle
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
@@ -20,10 +20,9 @@ jobs:
run: | run: |
make zip make zip
- name: Upload Release - name: Upload Release
uses: svenstaro/upload-release-action@v1-release uses: svenstaro/upload-release-action@2.2.1
with: with:
repo_token: ${{ secrets.GITHUB_TOKEN }} repo_token: ${{ secrets.GITHUB_TOKEN }}
file: burn-my-windows@schneegans.github.com.zip file: burn-my-windows@schneegans.github.com.zip
asset_name: burn-my-windows@schneegans.github.com.zip
tag: ${{ github.ref }} tag: ${{ github.ref }}
overwrite: true overwrite: true
+85 -48
View File
@@ -1,74 +1,111 @@
SHELL := /bin/bash SHELL := /bin/bash
JS_FILES = $(shell find -type f -and \( -name "*.js" \)) # We define these here to make the makefile easier to port to another extension.
UI_FILES = $(shell find -type f -and \( -name "*.ui" \)) 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) 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) # These files will be included in the extension zip file.
LOCALES_MO = $(patsubst po/%.po,locale/%/LC_MESSAGES/burn-my-windows.mo,$(LOCALES_PO)) 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 # The install recipes creates the extension zip and installs it.
gnome-extensions install "burn-my-windows@schneegans.github.com.zip" --force install: $(ZIP_NAME)
gnome-extensions install "$(ZIP_NAME)" --force
@echo "Extension installed successfully! Now restart the Shell ('Alt'+'F2', then 'r')." @echo "Extension installed successfully! Now restart the Shell ('Alt'+'F2', then 'r')."
# This uninstalls the previously installed extension.
uninstall: uninstall:
gnome-extensions uninstall "burn-my-windows@schneegans.github.com" gnome-extensions uninstall "$(NAME)@$(DOMAIN)"
all-po: $(LOCALES_PO)
# Use gettext to generate a translation template file.
pot: $(JS_FILES) $(UI_FILES) pot: $(JS_FILES) $(UI_FILES)
@echo "Generating 'burn-my-windows.pot'..." @echo "Generating '$(NAME).pot'..."
@xgettext --from-code=UTF-8 \ @xgettext --from-code=UTF-8 \
--add-comments=Translators \ --add-comments=Translators \
--copyright-holder="Simon Schneegans" \ --copyright-holder="Simon Schneegans" \
--package-name="Burn-My-Windows" \ --package-name="$(NAME)" \
--output=po/burn-my-windows.pot \ --output=po/$(NAME).pot \
$(JS_FILES) $(UI_FILES) $(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: clean:
rm -rf \ rm -rf $(ZIP_NAME) \
burn-my-windows@schneegans.github.com.zip \ resources/$(NAME).gresource \
resources/burn-my-windows.gresource \ resources/$(NAME).gresource.xml \
resources/burn-my-windows.gresource.xml \ schemas/gschemas.compiled \
schemas/gschemas.compiled \ locale
locale \
ui/*.ui~ \
po/*.po~
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..." @echo "Packing zip file..."
@rm --force burn-my-windows@schneegans.github.com.zip @rm --force $(ZIP_NAME)
@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 @zip $(ZIP_NAME) -- $(ZIP_CONTENT)
@#Check if the zip size is too big to be uploaded @#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 \ @SIZE=$$(unzip -Zt $(ZIP_NAME) | awk '{print $$3}') ; \
echo "ERROR! The extension is too big to be uploaded to the extensions website, keep it smaller than 4096 KB!"; exit 1; \ if [[ $$SIZE -gt 5242880 ]]; then \
fi 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 # Compiles the gschemas.compiled file from the gschema.xml file.
@echo "Compiling resources..." schemas/gschemas.compiled: schemas/org.gnome.shell.extensions.$(NAME).gschema.xml
@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
@echo "Compiling schemas..." @echo "Compiling schemas..."
@glib-compile-schemas 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 $@" @echo "Compiling $@"
@mkdir -p locale/$*/LC_MESSAGES @mkdir -p locale/$*/LC_MESSAGES
@msgfmt -c -o $@ $< @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 $@
+11 -1
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> <h1 align="center">🔥 Set GNOME Shell on Fire!</h1>
<p align="center"> <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 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" /> **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 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" /> **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" /> **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" /> **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" /> **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" /> **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" /> **Wisps** <br> Let your windows be carried away to the realm of dreams by these little fairies! | <img src ="docs/pics/wisps.gif" />
@@ -39,17 +46,20 @@ While [coding new features](docs/how-to-create-new-effects.md) or [translating t
<h3 align="center">🥈 Current Silver Sponsors</h3> <h3 align="center">🥈 Current Silver Sponsors</h3>
<p align="center"> <p align="center">
<a href="https://twitter.com/tjiiik">tj3k</a><br>
<a href="https://github.com/MRR-dev">@MRR-dev</a><br> <a href="https://github.com/MRR-dev">@MRR-dev</a><br>
<a href="https://github.com/castrojo">Jorge Castro</a><br> <a href="https://github.com/castrojo">Jorge Castro</a><br>
</p> </p>
<h3 align="center">🥉 Current Bronze Sponsors</h3> <h3 align="center">🥉 Current Bronze Sponsors</h3>
<p align="center"> <p align="center">
<a href="https://github.com/sponsors/Schneegans">Be the first!</a> <a href="https://github.com/danielheadbang">@danielheadbang</a><br>
</p> </p>
<h3 align="center">🏅 Previous Sponsors and One-Time Donators</h3> <h3 align="center">🏅 Previous Sponsors and One-Time Donators</h3>
<p align="center"> <p align="center">
<a href="https://github.com/MrTomRod">@MrTomRod</a><br>
Pouhiou<br>
DAPREMONT Christophe<br> DAPREMONT Christophe<br>
<a href="https://github.com/manero6">@manero6</a><br> <a href="https://github.com/manero6">@manero6</a><br>
<a href="https://github.com/RickStanley">@RickStanley</a><br> <a href="https://github.com/RickStanley">@RickStanley</a><br>
+3795
View File
File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 968 KiB

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

+95 -10
View File
@@ -1,11 +1,96 @@
# Changelog of the Burn-My-Windows Extension # Changelog of the Burn-My-Windows Extension
## [Burn My Window 10](https://github.com/schneegans/Burn-My-Windows/releases/tag/v10) ## [Burn My Windows 15](https://github.com/schneegans/Burn-My-Windows/releases/tag/v15)
**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
* Added initial support for GNOME Shell 42.
* The preferences dialog now uses libadwaita on GNOME Shell 42.
#### Enhancements
* Added [Liberapay](https://liberapay.com/Schneegans) to the sponsorship options.
## [Burn My Windows 11](https://github.com/schneegans/Burn-My-Windows/releases/tag/v11)
**Release Date:** 2022-02-03
#### New Features
* Added an about-dialog which shows all translators and sponsors.
#### Enhancements
* There are several new translations! Thanks a lot to all the translators! We now have translations for:
* German
* English
* Czech
* Dutch
* French
* Italian
* Norwegian Bokmål
* Spanish
* A new issue template for suggesting new effects has been added.
#### Fixes
* 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 Windows 10](https://github.com/schneegans/Burn-My-Windows/releases/tag/v10)
**Release Date:** 2022-01-31 **Release Date:** 2022-01-31
#### New Features #### New Features
<a href="https://youtu.be/L2aaNF_rPHo"><img align="right" src ="pics/bmw10.jpg" /></a>
* **Effects for Window Opening.** You can now select effects which are applied on newly opened windows! I expect that there are some bugs left, so please [report any issue you find](https://github.com/Schneegans/Burn-My-Windows/issues)! * **Effects for Window Opening.** You can now select effects which are applied on newly opened windows! I expect that there are some bugs left, so please [report any issue you find](https://github.com/Schneegans/Burn-My-Windows/issues)!
* **New Effect: Broken Glass.** Shatter your windows into a shower sharp shards! This effect can be configured so that the shards fly away from your mouse pointer position! * **New Effect: Broken Glass.** Shatter your windows into a shower sharp shards! This effect can be configured so that the shards fly away from your mouse pointer position!
* **Preview Buttons** have been added to the effect-configuration pages of the preferences dialog. These can be used to, well, preview the current settings (without having to enable the effect first). * **Preview Buttons** have been added to the effect-configuration pages of the preferences dialog. These can be used to, well, preview the current settings (without having to enable the effect first).
@@ -19,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). * 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. * **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 **Release Date:** 2022-01-18
@@ -28,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). * 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). * 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 **Release Date:** 2022-01-17
@@ -54,7 +139,7 @@
* The extension now works even if GNOME Shell's animations are disabled globally. * 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 **Release Date:** 2022-01-03
@@ -68,7 +153,7 @@
* Resolve copyright issues by using a MIT-licensed noise implementation. * 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 **Release Date:** 2022-01-02
@@ -76,7 +161,7 @@
* Removed a debug log message. * 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 **Release Date:** 2022-01-02
@@ -94,7 +179,7 @@
* Fixed a bug which messed up the overview of GNOME Shell 3.36. * 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 **Release Date:** 2021-12-25
@@ -108,7 +193,7 @@
* Refactored the code a lot to make it easier to add new shader effects in the future. * 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. * 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 **Release Date:** 2021-12-20
@@ -116,7 +201,7 @@
* Add support for GNOME 3.36 and GNOME 3.38. * 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 **Release Date:** 2021-12-16
@@ -126,7 +211,7 @@
* Added the possibility to adjust flame speed and scale. * Added the possibility to adjust flame speed and scale.
* Added some fire presets. * 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 **Release Date:** 2021-12-14
+1 -1
View File
@@ -1,6 +1,6 @@
# Preview GIFs # 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 ```bash
gifski --fps 30 -W 400 -H 225 -o effect.gif effect.mp4 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: 15 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

+44 -31
View File
@@ -33,11 +33,14 @@ const utils = Me.imports.src.utils;
// New effects must be registered here and in prefs.js. // New effects must be registered here and in prefs.js.
const ALL_EFFECTS = [ const ALL_EFFECTS = [
Me.imports.src.Apparition.Apparition,
Me.imports.src.BrokenGlass.BrokenGlass,
Me.imports.src.EnergizeA.EnergizeA, Me.imports.src.EnergizeA.EnergizeA,
Me.imports.src.EnergizeB.EnergizeB, Me.imports.src.EnergizeB.EnergizeB,
Me.imports.src.Fire.Fire, Me.imports.src.Fire.Fire,
Me.imports.src.Hexagon.Hexagon,
Me.imports.src.Matrix.Matrix, Me.imports.src.Matrix.Matrix,
Me.imports.src.BrokenGlass.BrokenGlass, Me.imports.src.SnapOfDisintegration.SnapOfDisintegration,
Me.imports.src.TRexAttack.TRexAttack, Me.imports.src.TRexAttack.TRexAttack,
Me.imports.src.TVEffect.TVEffect, Me.imports.src.TVEffect.TVEffect,
Me.imports.src.Wisps.Wisps, 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 // anyways, we override the actors ease() method once - the next time it will be
// called by the _mapWindow(), we will intercept it! // called by the _mapWindow(), we will intercept it!
this._windowCreatedConnection = this._windowCreatedConnection =
global.display.connect('window-created', (d, metaWin) => { global.display.connect('window-created', (d, metaWin) => {
let actor = metaWin.get_compositor_private(); let actor = metaWin.get_compositor_private();
const orig = actor.ease; const orig = actor.ease;
actor.ease = function(...params) { actor.ease = function(...params) {
orig.apply(actor, params); orig.apply(actor, params);
actor.ease = orig; actor.ease = orig;
// There are cases where the ease() is called prior to mapping the actor. If // 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. // the actor is not yet mapped, we defer the effect creation.
if (actor.mapped) { if (actor.mapped) {
extensionThis._setupEffect(actor, true);
} else {
const connectionID = actor.connect('notify::mapped', () => {
extensionThis._setupEffect(actor, true); extensionThis._setupEffect(actor, true);
} else { actor.disconnect(connectionID);
const connectionID = actor.connect('notify::mapped', () => { });
extensionThis._setupEffect(actor, true); }
actor.disconnect(connectionID); };
}); });
}
};
});
// Some of the effects require that the window's actor is enlarged to provide a bigger // 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 // 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. // Only add effects to normal windows and dialog windows.
const isNormalWindow = actor.meta_window.window_type == Meta.WindowType.NORMAL; const isNormalWindow = actor.meta_window.window_type == Meta.WindowType.NORMAL;
const isDialogWindow = const isDialogWindow =
actor.meta_window.window_type == Meta.WindowType.MODAL_DIALOG || actor.meta_window.window_type == Meta.WindowType.MODAL_DIALOG ||
actor.meta_window.window_type == Meta.WindowType.DIALOG; actor.meta_window.window_type == Meta.WindowType.DIALOG;
if (!isNormalWindow && !isDialogWindow) { if (!isNormalWindow && !isDialogWindow) {
return; return;
@@ -381,12 +384,17 @@ class Extension {
// ----------------------------------------------------------- tweak actor transitions // ----------------------------------------------------------- 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 // 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 // windows are faded in / out scaled up / down slightly by GNOME Shell. Here, we allow
// modifications to this behavior by the effects. // modifications to this behavior by the effects.
const config = this._currentEffect.tweakTransition(actor, this._settings, forOpening); const config = this._currentEffect.tweakTransition(actor, this._settings, forOpening);
const duration = const duration = testMode ?
this._settings.get_int(this._currentEffect.getNick() + '-animation-time'); 5000 :
this._settings.get_int(this._currentEffect.getNick() + '-animation-time');
// All animations are relative to the window's center. // All animations are relative to the window's center.
actor.set_pivot_point(0.5, 0.5); 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 // 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... // rare cases, where no transition is set up. This happens from time to time...
if (transition) { if (transition) {
const middle = (config[property].to + config[property].from) / 2;
transition.set_duration(duration); transition.set_duration(duration);
transition.set_to(config[property].to); transition.set_to(testMode ? middle : config[property].to);
transition.set_from(config[property].from); transition.set_from(testMode ? middle : config[property].from);
transition.set_progress_mode(config[property].mode); transition.set_progress_mode(config[property].mode);
} }
} }
@@ -454,15 +463,19 @@ class Extension {
// Update uniforms at each frame. // Update uniforms at each frame.
transition.connect('new-frame', (t) => { transition.connect('new-frame', (t) => {
shader.set_uniform_value('uProgress', t.get_progress()); shader.set_uniform_value('uProgress', testMode ? 0.5 : t.get_progress());
shader.set_uniform_value('uTime', 0.001 * t.get_elapsed_time()); 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('uSizeX', actor.width);
shader.set_uniform_value('uSizeY', actor.height); shader.set_uniform_value('uSizeY', actor.height);
}); });
transition.connect('completed', () => { // Remove the effect if the animation finished or was interrupted.
actor.remove_effect_by_name(`burn-my-windows-effect`); if (forOpening) {
}); transition.connect('stopped', () => {
actor.remove_effect_by_name(`burn-my-windows-effect`);
});
}
} }
// Finally, ensure that all animation times are set properly so that other extensions // Finally, ensure that all animation times are set properly so that other extensions
@@ -481,10 +494,10 @@ class Extension {
if (!forOpening) { if (!forOpening) {
if (isDialogWindow) { if (isDialogWindow) {
imports.ui.windowManager.DIALOG_DESTROY_WINDOW_ANIMATION_TIME = imports.ui.windowManager.DIALOG_DESTROY_WINDOW_ANIMATION_TIME =
duration != null ? duration : this._origDialogTime; duration != null ? duration : this._origDialogTime;
} else { } else {
imports.ui.windowManager.DESTROY_WINDOW_ANIMATION_TIME = imports.ui.windowManager.DESTROY_WINDOW_ANIMATION_TIME =
duration != null ? duration : this._origWindowTime; duration != null ? duration : this._origWindowTime;
} }
} }
} }
+4 -3
View File
@@ -1,6 +1,6 @@
{ {
"uuid": "burn-my-windows@schneegans.github.com", "uuid": "burn-my-windows@schneegans.github.com",
"description": "Disintegrate your apps with style.", "description": "Disintegrate your windows with style.",
"name": "Burn My Windows", "name": "Burn My Windows",
"gettext-domain": "burn-my-windows", "gettext-domain": "burn-my-windows",
"settings-schema": "org.gnome.shell.extensions.burn-my-windows", "settings-schema": "org.gnome.shell.extensions.burn-my-windows",
@@ -8,8 +8,9 @@
"3.36", "3.36",
"3.38", "3.38",
"40", "40",
"41" "41",
"42"
], ],
"url": "https://github.com/Schneegans/Burn-My-Windows", "url": "https://github.com/Schneegans/Burn-My-Windows",
"version": 10 "version": 15
} }
+125 -43
View File
@@ -1,14 +1,14 @@
# SOME DESCRIPTIVE TITLE. # SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR Simon Schneegans # 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. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
# #
#, fuzzy #, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Burn-My-Windows\n" "Project-Id-Version: burn-my-windows\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-01-29 05:40+0100\n" "POT-Creation-Date: 2022-04-05 09:22+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,13 +17,41 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n" "Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\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. #. Translators: %s will be replaced by the effect's name.
#: prefs.js:337 #: prefs.js:510
#, javascript-format #, javascript-format
msgid "Preview for %s" msgid "Preview for %s"
msgstr "" msgstr ""
#: prefs.js:359 #: prefs.js:532
msgid "Close this Window to Preview the Effect!" msgid "Close this Window to Preview the Effect!"
msgstr "" msgstr ""
@@ -39,6 +67,10 @@ msgstr ""
msgid "T-Rex Attack" msgid "T-Rex Attack"
msgstr "" msgstr ""
#: src/SnapOfDisintegration.js:60
msgid "Snap of Disintegration"
msgstr ""
#: src/Wisps.js:55 #: src/Wisps.js:55
msgid "Wisps" msgid "Wisps"
msgstr "" msgstr ""
@@ -67,10 +99,18 @@ msgstr ""
msgid "Santa is Coming" msgid "Santa is Coming"
msgstr "" msgstr ""
#: src/Hexagon.js:53
msgid "Hexagon"
msgstr ""
#: src/EnergizeA.js:54 #: src/EnergizeA.js:54
msgid "Energize A" msgid "Energize A"
msgstr "" msgstr ""
#: src/Apparition.js:57
msgid "Apparition"
msgstr ""
#: src/EnergizeB.js:54 #: src/EnergizeB.js:54
msgid "Energize B" msgid "Energize B"
msgstr "" msgstr ""
@@ -103,21 +143,20 @@ msgstr ""
msgid "Donate" msgid "Donate"
msgstr "" msgstr ""
#: resources/ui/common/main-menu.ui:30 #: resources/ui/common/main-menu.ui:41
msgid "Via PayPal" msgid "About Burn-My-Windows"
msgstr ""
#: resources/ui/common/main-menu.ui:34
msgid "Via GitHub"
msgstr "" msgstr ""
#: resources/ui/gtk4/Matrix.ui:24 resources/ui/gtk4/BrokenGlass.ui:24 #: 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/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/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/Wisps.ui:42 resources/ui/gtk3/Fire.ui:93
#: resources/ui/gtk3/TVEffect.ui:35 resources/ui/gtk3/EnergizeA.ui:42 #: 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]" msgid "Animation Time [ms]"
msgstr "" msgstr ""
@@ -135,29 +174,43 @@ msgstr ""
#: resources/ui/gtk4/TRexAttack.ui:190 resources/ui/gtk4/TRexAttack.ui:224 #: 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/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: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/EnergizeB.ui:98 resources/ui/gtk4/EnergizeB.ui:132
#: resources/ui/gtk4/prefs.ui:185 resources/ui/gtk3/Wisps.ui:68 #: resources/ui/gtk4/prefs.ui:166 resources/ui/gtk4/Apparition.ui:52
#: resources/ui/gtk3/Wisps.ui:117 resources/ui/gtk3/Wisps.ui:160 #: resources/ui/gtk4/Apparition.ui:98 resources/ui/gtk4/Apparition.ui:144
#: resources/ui/gtk3/Fire.ui:119 resources/ui/gtk3/Fire.ui:167 #: resources/ui/gtk4/Apparition.ui:190 resources/ui/gtk4/Apparition.ui:236
#: resources/ui/gtk3/Fire.ui:215 resources/ui/gtk3/Fire.ui:277 #: resources/ui/gtk3/Wisps.ui:68 resources/ui/gtk3/Wisps.ui:117
#: resources/ui/gtk3/Fire.ui:345 resources/ui/gtk3/TVEffect.ui:61 #: resources/ui/gtk3/Wisps.ui:160 resources/ui/gtk3/Fire.ui:119
#: resources/ui/gtk3/TVEffect.ui:104 resources/ui/gtk3/EnergizeA.ui:68 #: resources/ui/gtk3/Fire.ui:167 resources/ui/gtk3/Fire.ui:215
#: resources/ui/gtk3/EnergizeA.ui:117 resources/ui/gtk3/EnergizeA.ui:160 #: resources/ui/gtk3/Fire.ui:277 resources/ui/gtk3/Fire.ui:345
#: resources/ui/gtk3/EnergizeB.ui:68 resources/ui/gtk3/EnergizeB.ui:117 #: resources/ui/gtk3/TVEffect.ui:61 resources/ui/gtk3/TVEffect.ui:104
#: resources/ui/gtk3/EnergizeB.ui:160 resources/ui/gtk3/prefs.ui:233 #: 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" msgid "Reset to Default Value"
msgstr "" msgstr ""
#: resources/ui/gtk4/Matrix.ui:70 resources/ui/gtk4/BrokenGlass.ui:70 #: 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/Wisps.ui:70 resources/ui/gtk4/Fire.ui:95
#: resources/ui/gtk4/EnergizeA.ui:70 resources/ui/gtk4/EnergizeB.ui:70 #: resources/ui/gtk4/SnapOfDisintegration.ui:70
#: resources/ui/gtk3/Wisps.ui:91 resources/ui/gtk3/Fire.ui:141 #: resources/ui/gtk4/EnergizeA.ui:70 resources/ui/gtk4/Hexagon.ui:70
#: resources/ui/gtk3/EnergizeA.ui:91 resources/ui/gtk3/EnergizeB.ui:91 #: 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" msgid "Scale"
msgstr "" 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" msgid "Randomness"
msgstr "" msgstr ""
@@ -191,10 +244,11 @@ msgid ""
"window." "window."
msgstr "" msgstr ""
#: resources/ui/gtk4/Wisps.ui:116 resources/ui/gtk4/TVEffect.ui:70 #: resources/ui/gtk4/Wisps.ui:116 resources/ui/gtk4/SnapOfDisintegration.ui:116
#: resources/ui/gtk4/EnergizeA.ui:116 resources/ui/gtk4/EnergizeB.ui:116 #: resources/ui/gtk4/TVEffect.ui:70 resources/ui/gtk4/EnergizeA.ui:116
#: resources/ui/gtk3/Wisps.ui:139 resources/ui/gtk3/TVEffect.ui:83 #: resources/ui/gtk4/EnergizeB.ui:116 resources/ui/gtk3/Wisps.ui:139
#: resources/ui/gtk3/EnergizeA.ui:139 resources/ui/gtk3/EnergizeB.ui:139 #: resources/ui/gtk3/TVEffect.ui:83 resources/ui/gtk3/EnergizeA.ui:139
#: resources/ui/gtk3/EnergizeB.ui:139
msgid "Color" msgid "Color"
msgstr "" msgstr ""
@@ -234,44 +288,72 @@ msgstr ""
msgid "Flash Color" msgid "Flash Color"
msgstr "" msgstr ""
#: resources/ui/gtk4/effectPage.ui:41 resources/ui/gtk3/effectPage.ui:41 #: resources/ui/gtk4/effectPage.ui:37 resources/ui/gtk3/effectPage.ui:37
msgid "Preview this Effect" msgid "Preview this Effect"
msgstr "" msgstr ""
#: resources/ui/gtk4/prefs.ui:27 resources/ui/gtk3/prefs.ui:251 #: resources/ui/gtk4/Hexagon.ui:116 resources/ui/gtk3/Hexagon.ui:147
msgid "General Options" msgid "Mesh Line Width"
msgstr "" msgstr ""
#: resources/ui/gtk4/prefs.ui:47 resources/ui/gtk3/prefs.ui:49 #: 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!" msgid "Welcome to Burn-My-Windows!"
msgstr "" msgstr ""
#: resources/ui/gtk4/prefs.ui:58 resources/ui/gtk3/prefs.ui:60 #: resources/ui/gtk4/prefs.ui:39 resources/ui/gtk3/prefs.ui:46
msgid "If you like this extension, recommend it to your friends :)" msgid "If you like this extension, recommend it to your friends :)"
msgstr "" msgstr ""
#: resources/ui/gtk4/prefs.ui:85 resources/ui/gtk3/prefs.ui:88 #: resources/ui/gtk4/prefs.ui:66 resources/ui/gtk3/prefs.ui:74
msgid "Open Window Animation" msgid "Open Window Animation"
msgstr "" msgstr ""
#: resources/ui/gtk4/prefs.ui:94 resources/ui/gtk4/prefs.ui:138 #: resources/ui/gtk4/prefs.ui:75 resources/ui/gtk4/prefs.ui:119
#: resources/ui/gtk3/prefs.ui:97 resources/ui/gtk3/prefs.ui:161 #: resources/ui/gtk3/prefs.ui:83 resources/ui/gtk3/prefs.ui:147
msgid "If multiple are selected, one is chosen randomly." msgid "If multiple are selected, one is chosen randomly."
msgstr "" msgstr ""
#: resources/ui/gtk4/prefs.ui:109 resources/ui/gtk4/prefs.ui:153 #: resources/ui/gtk4/prefs.ui:90 resources/ui/gtk4/prefs.ui:134
#: resources/ui/gtk3/prefs.ui:118 resources/ui/gtk3/prefs.ui:182 #: resources/ui/gtk3/prefs.ui:104 resources/ui/gtk3/prefs.ui:168
msgid "Choose Effects" msgid "Choose Effects"
msgstr "" msgstr ""
#: resources/ui/gtk4/prefs.ui:129 resources/ui/gtk3/prefs.ui:152 #: resources/ui/gtk4/prefs.ui:110 resources/ui/gtk3/prefs.ui:138
msgid "Close Window Animation" msgid "Close Window Animation"
msgstr "" msgstr ""
#: resources/ui/gtk4/prefs.ui:169 resources/ui/gtk3/prefs.ui:212 #: resources/ui/gtk4/prefs.ui:150 resources/ui/gtk3/prefs.ui:198
msgid "Also Add Effects to Dialogs" msgid "Also Add Effects to Dialogs"
msgstr "" 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 #: resources/ui/gtk3/Fire.ui:63
msgid "Choose a Preset" msgid "Choose a Preset"
msgstr "" msgstr ""
+368
View File
@@ -0,0 +1,368 @@
# 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-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/"
"core/cs/>\n"
"Language: cs\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==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
"X-Generator: Weblate 4.11-dev\n"
#: prefs.js:112
msgid "Effect Options"
msgstr ""
#: prefs.js:140
msgid "Go Back"
msgstr ""
#: prefs.js:182
msgid "General Options"
msgstr "Obecné možnosti"
#: 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 "Náhled %s"
#: prefs.js:532
msgid "Close this Window to Preview the Effect!"
msgstr "Zavřete toto okno, pokud chcete vidět efekt!"
#: src/BrokenGlass.js:57
msgid "Broken Glass"
msgstr "Střepy"
#: src/TVEffect.js:56
msgid "TV Effect"
msgstr "Televize"
#: src/TRexAttack.js:56
msgid "T-Rex Attack"
msgstr "Tyrannosaurus"
#: src/SnapOfDisintegration.js:60
msgid "Snap of Disintegration"
msgstr ""
#: src/Wisps.js:55
msgid "Wisps"
msgstr "Obláčky"
#: src/Fire.js:58
msgid "Fire"
msgstr "Oheň"
#: src/Fire.js:130
msgid "Default Fire"
msgstr "Výchozí oheň"
#: src/Fire.js:140
msgid "Hell Fire"
msgstr "Pekelný oheň"
#: src/Fire.js:150
msgid "Dark and Smutty"
msgstr "Temný"
#: src/Fire.js:160
msgid "Cold Breeze"
msgstr "Studený vánek"
#: src/Fire.js:170
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"
#: src/Matrix.js:58
msgid "Matrix"
msgstr "Matrix"
#: resources/ui/common/main-menu.ui:6
msgid "Visit Homepage"
msgstr "Navštívit web"
#: resources/ui/common/main-menu.ui:10
msgid "View Changelog"
msgstr "Zobrazit historii změn"
#: resources/ui/common/main-menu.ui:16
msgid "Report a Bug"
msgstr "Ohlásit chybu"
#: resources/ui/common/main-menu.ui:20
msgid "Create an Effect"
msgstr "Vytvořit efekt"
#: resources/ui/common/main-menu.ui:24
msgid "Translate"
msgstr "Přeložit"
#: resources/ui/common/main-menu.ui:28
msgid "Donate"
msgstr "Přispět"
#: 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/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 "Délka animace [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 "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/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/Apparition.ui:70
#: resources/ui/gtk3/Apparition.ui:112
msgid "Randomness"
msgstr "Nahodilost"
#: resources/ui/gtk4/Matrix.ui:162
#, fuzzy
msgid "Vertical Overshooting"
msgstr "Vertikální přestřelení"
#: resources/ui/gtk4/Matrix.ui:208
msgid "Trail Color"
msgstr "Barva ohonu"
#: resources/ui/gtk4/Matrix.ui:242
msgid "Tip Color"
msgstr "Barva hrotu"
#: resources/ui/gtk4/BrokenGlass.ui:116
msgid "Gravity"
msgstr "Gravitace"
#: resources/ui/gtk4/BrokenGlass.ui:162
msgid "Blow Force"
msgstr "Síla úderu"
#: resources/ui/gtk4/BrokenGlass.ui:212
msgid "Shatter From Pointer Location"
msgstr "Roztříštění od místa ukazatele"
#: resources/ui/gtk4/BrokenGlass.ui:221
msgid ""
"The shards will fly away from where your mouse pointer was when closing the "
"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/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"
#: resources/ui/gtk4/Fire.ui:25 resources/ui/gtk3/Fire.ui:49
msgid "Presets"
msgstr "Předvolby"
#: resources/ui/gtk4/Fire.ui:141 resources/ui/gtk3/Fire.ui:189
msgid "Speed"
msgstr "Rychlost"
#: resources/ui/gtk4/Fire.ui:191 resources/ui/gtk3/Fire.ui:241
msgid "3D Noise"
msgstr "3D šum"
#: resources/ui/gtk4/Fire.ui:200 resources/ui/gtk3/Fire.ui:250
msgid "Creates a more dynamic fire but requires more GPU power."
msgstr "Vytvoří dynamičtejší efekt, ale potřebuje k tomu silnější GPU"
#: resources/ui/gtk4/Fire.ui:240 resources/ui/gtk3/Fire.ui:300
msgid "Gradient"
msgstr "Přechod"
#: resources/ui/gtk4/TRexAttack.ui:70
msgid "Claw Scratch Scale"
msgstr "Velikost škrábanců od drápů"
#: resources/ui/gtk4/TRexAttack.ui:116
msgid "Claw Scratch Count"
msgstr "Počet škrábanců"
#: resources/ui/gtk4/TRexAttack.ui:162
msgid "Warp Effect"
msgstr "Efekt zakřivení"
#: resources/ui/gtk4/TRexAttack.ui:208
msgid "Flash Color"
msgstr "Barva blesku"
#: resources/ui/gtk4/effectPage.ui:37 resources/ui/gtk3/effectPage.ui:37
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!"
#: resources/ui/gtk4/prefs.ui:39 resources/ui/gtk3/prefs.ui:46
msgid "If you like this extension, recommend it to your friends :)"
msgstr "Pokud se vám líbí tento doplňek, doporučte jej přátelům :-)"
#: resources/ui/gtk4/prefs.ui:66 resources/ui/gtk3/prefs.ui:74
msgid "Open Window Animation"
msgstr "Animace při otevírání okna"
#: 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 "Pokud vyberete více, budou se střídat náhodně."
#: 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 "Vyberte efekty"
#: resources/ui/gtk4/prefs.ui:110 resources/ui/gtk3/prefs.ui:138
msgid "Close Window Animation"
msgstr "Animace při zavírání okna"
#: resources/ui/gtk4/prefs.ui:150 resources/ui/gtk3/prefs.ui:198
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"
#~ msgid "Via PayPal"
#~ msgstr "skrze PayPal"
#~ msgid "Via GitHub"
#~ msgstr "skrze GitHub"
+133 -45
View File
@@ -7,8 +7,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Burn-My-Windows\n" "Project-Id-Version: Burn-My-Windows\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-01-29 05:40+0100\n" "POT-Creation-Date: 2022-04-05 09:22+0200\n"
"PO-Revision-Date: 2022-01-29 04:43+0000\n" "PO-Revision-Date: 2022-04-05 18:37+0000\n"
"Last-Translator: Simon Schneegans <code@simonschneegans.de>\n" "Last-Translator: Simon Schneegans <code@simonschneegans.de>\n"
"Language-Team: German <https://hosted.weblate.org/projects/burn-my-windows/" "Language-Team: German <https://hosted.weblate.org/projects/burn-my-windows/"
"core/de/>\n" "core/de/>\n"
@@ -17,15 +17,43 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\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:112
msgid "Effect Options"
msgstr "Effektoptionen"
#: prefs.js:140
msgid "Go Back"
msgstr "Zurück"
#: prefs.js:182
msgid "General Options"
msgstr "Allgemeine Optionen"
#: prefs.js:276
msgid "Gold Sponsors"
msgstr "Gold-Sponsoren"
#: prefs.js:279
msgid "Silver Sponsors"
msgstr "Silber-Sponsoren"
#: prefs.js:282
msgid "Bronze Sponsors"
msgstr "Bronze-Sponsoren"
#: prefs.js:285
msgid "Past Sponsors"
msgstr "Ehemalige Sponsoren"
#. Translators: %s will be replaced by the effect's name. #. Translators: %s will be replaced by the effect's name.
#: prefs.js:337 #: prefs.js:510
#, javascript-format #, javascript-format
msgid "Preview for %s" msgid "Preview for %s"
msgstr "Vorschau für %s" msgstr "Vorschau für %s"
#: prefs.js:359 #: prefs.js:532
msgid "Close this Window to Preview the Effect!" msgid "Close this Window to Preview the Effect!"
msgstr "Schließen Sie dieses Fenster, um eine Vorschau des Effekts anzuzeigen!" msgstr "Schließen Sie dieses Fenster, um eine Vorschau des Effekts anzuzeigen!"
@@ -41,6 +69,10 @@ msgstr "TV-Effekt"
msgid "T-Rex Attack" msgid "T-Rex Attack"
msgstr "T-Rex-Angriff" msgstr "T-Rex-Angriff"
#: src/SnapOfDisintegration.js:60
msgid "Snap of Disintegration"
msgstr "Fingerschnippen des Zerfalls"
#: src/Wisps.js:55 #: src/Wisps.js:55
msgid "Wisps" msgid "Wisps"
msgstr "Irrlichter" msgstr "Irrlichter"
@@ -69,10 +101,18 @@ msgstr "Kalte Brise"
msgid "Santa is Coming" msgid "Santa is Coming"
msgstr "Weihnachtsgrüße" msgstr "Weihnachtsgrüße"
#: src/Hexagon.js:53
msgid "Hexagon"
msgstr "Hexagon"
#: src/EnergizeA.js:54 #: src/EnergizeA.js:54
msgid "Energize A" msgid "Energize A"
msgstr "Energie A" msgstr "Energie A"
#: src/Apparition.js:57
msgid "Apparition"
msgstr "Apparieren"
#: src/EnergizeB.js:54 #: src/EnergizeB.js:54
msgid "Energize B" msgid "Energize B"
msgstr "Energie B" msgstr "Energie B"
@@ -105,21 +145,20 @@ msgstr "Übersetzen"
msgid "Donate" msgid "Donate"
msgstr "Spenden" msgstr "Spenden"
#: resources/ui/common/main-menu.ui:30 #: resources/ui/common/main-menu.ui:41
msgid "Via PayPal" msgid "About Burn-My-Windows"
msgstr "Mit PayPal" msgstr "Über Burn-My-Windows"
#: resources/ui/common/main-menu.ui:34
msgid "Via GitHub"
msgstr "Mit GitHub"
#: resources/ui/gtk4/Matrix.ui:24 resources/ui/gtk4/BrokenGlass.ui:24 #: 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/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/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/Wisps.ui:42 resources/ui/gtk3/Fire.ui:93
#: resources/ui/gtk3/TVEffect.ui:35 resources/ui/gtk3/EnergizeA.ui:42 #: 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]" msgid "Animation Time [ms]"
msgstr "Animationszeit [ms]" msgstr "Animationszeit [ms]"
@@ -137,29 +176,43 @@ msgstr "Animationszeit [ms]"
#: resources/ui/gtk4/TRexAttack.ui:190 resources/ui/gtk4/TRexAttack.ui:224 #: 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/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: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/EnergizeB.ui:98 resources/ui/gtk4/EnergizeB.ui:132
#: resources/ui/gtk4/prefs.ui:185 resources/ui/gtk3/Wisps.ui:68 #: resources/ui/gtk4/prefs.ui:166 resources/ui/gtk4/Apparition.ui:52
#: resources/ui/gtk3/Wisps.ui:117 resources/ui/gtk3/Wisps.ui:160 #: resources/ui/gtk4/Apparition.ui:98 resources/ui/gtk4/Apparition.ui:144
#: resources/ui/gtk3/Fire.ui:119 resources/ui/gtk3/Fire.ui:167 #: resources/ui/gtk4/Apparition.ui:190 resources/ui/gtk4/Apparition.ui:236
#: resources/ui/gtk3/Fire.ui:215 resources/ui/gtk3/Fire.ui:277 #: resources/ui/gtk3/Wisps.ui:68 resources/ui/gtk3/Wisps.ui:117
#: resources/ui/gtk3/Fire.ui:345 resources/ui/gtk3/TVEffect.ui:61 #: resources/ui/gtk3/Wisps.ui:160 resources/ui/gtk3/Fire.ui:119
#: resources/ui/gtk3/TVEffect.ui:104 resources/ui/gtk3/EnergizeA.ui:68 #: resources/ui/gtk3/Fire.ui:167 resources/ui/gtk3/Fire.ui:215
#: resources/ui/gtk3/EnergizeA.ui:117 resources/ui/gtk3/EnergizeA.ui:160 #: resources/ui/gtk3/Fire.ui:277 resources/ui/gtk3/Fire.ui:345
#: resources/ui/gtk3/EnergizeB.ui:68 resources/ui/gtk3/EnergizeB.ui:117 #: resources/ui/gtk3/TVEffect.ui:61 resources/ui/gtk3/TVEffect.ui:104
#: resources/ui/gtk3/EnergizeB.ui:160 resources/ui/gtk3/prefs.ui:233 #: 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" msgid "Reset to Default Value"
msgstr "Auf Standardwert zurücksetzen" msgstr "Auf Standardwert zurücksetzen"
#: resources/ui/gtk4/Matrix.ui:70 resources/ui/gtk4/BrokenGlass.ui:70 #: 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/Wisps.ui:70 resources/ui/gtk4/Fire.ui:95
#: resources/ui/gtk4/EnergizeA.ui:70 resources/ui/gtk4/EnergizeB.ui:70 #: resources/ui/gtk4/SnapOfDisintegration.ui:70
#: resources/ui/gtk3/Wisps.ui:91 resources/ui/gtk3/Fire.ui:141 #: resources/ui/gtk4/EnergizeA.ui:70 resources/ui/gtk4/Hexagon.ui:70
#: resources/ui/gtk3/EnergizeA.ui:91 resources/ui/gtk3/EnergizeB.ui:91 #: 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" msgid "Scale"
msgstr "Größe" 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" msgid "Randomness"
msgstr "Zufälligkeit" msgstr "Zufälligkeit"
@@ -195,10 +248,11 @@ msgstr ""
"Die Scherben fliegen von der Stelle weg, an der sich Ihr Mauszeiger beim " "Die Scherben fliegen von der Stelle weg, an der sich Ihr Mauszeiger beim "
"Schließen des Fensters befand." "Schließen des Fensters befand."
#: resources/ui/gtk4/Wisps.ui:116 resources/ui/gtk4/TVEffect.ui:70 #: resources/ui/gtk4/Wisps.ui:116 resources/ui/gtk4/SnapOfDisintegration.ui:116
#: resources/ui/gtk4/EnergizeA.ui:116 resources/ui/gtk4/EnergizeB.ui:116 #: resources/ui/gtk4/TVEffect.ui:70 resources/ui/gtk4/EnergizeA.ui:116
#: resources/ui/gtk3/Wisps.ui:139 resources/ui/gtk3/TVEffect.ui:83 #: resources/ui/gtk4/EnergizeB.ui:116 resources/ui/gtk3/Wisps.ui:139
#: resources/ui/gtk3/EnergizeA.ui:139 resources/ui/gtk3/EnergizeB.ui:139 #: resources/ui/gtk3/TVEffect.ui:83 resources/ui/gtk3/EnergizeA.ui:139
#: resources/ui/gtk3/EnergizeB.ui:139
msgid "Color" msgid "Color"
msgstr "Farbe" msgstr "Farbe"
@@ -238,47 +292,81 @@ msgstr "Warp-Effekt"
msgid "Flash Color" msgid "Flash Color"
msgstr "Blitzfarbe" msgstr "Blitzfarbe"
#: resources/ui/gtk4/effectPage.ui:41 resources/ui/gtk3/effectPage.ui:41 #: resources/ui/gtk4/effectPage.ui:37 resources/ui/gtk3/effectPage.ui:37
msgid "Preview this Effect" msgid "Preview this Effect"
msgstr "Vorschau dieses Effekts" msgstr "Vorschau dieses Effekts"
#: resources/ui/gtk4/prefs.ui:27 resources/ui/gtk3/prefs.ui:251 #: resources/ui/gtk4/Hexagon.ui:116 resources/ui/gtk3/Hexagon.ui:147
msgid "General Options" msgid "Mesh Line Width"
msgstr "Allgemeine Optionen" msgstr "Gitterlinienstärke"
#: resources/ui/gtk4/prefs.ui:47 resources/ui/gtk3/prefs.ui:49 #: 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!" msgid "Welcome to Burn-My-Windows!"
msgstr "Willkommen bei Burn-My-Windows!" msgstr "Willkommen bei Burn-My-Windows!"
#: resources/ui/gtk4/prefs.ui:58 resources/ui/gtk3/prefs.ui:60 #: resources/ui/gtk4/prefs.ui:39 resources/ui/gtk3/prefs.ui:46
msgid "If you like this extension, recommend it to your friends :)" msgid "If you like this extension, recommend it to your friends :)"
msgstr "Wenn Sie diese Erweiterung mögen, empfehlen Sie sie Ihren Freunden :)" msgstr "Wenn Sie diese Erweiterung mögen, empfehlen Sie sie Ihren Freunden :)"
#: resources/ui/gtk4/prefs.ui:85 resources/ui/gtk3/prefs.ui:88 #: resources/ui/gtk4/prefs.ui:66 resources/ui/gtk3/prefs.ui:74
msgid "Open Window Animation" msgid "Open Window Animation"
msgstr "Fenster-Öffnen-Animation" msgstr "Fenster-Öffnen-Animation"
#: resources/ui/gtk4/prefs.ui:94 resources/ui/gtk4/prefs.ui:138 #: resources/ui/gtk4/prefs.ui:75 resources/ui/gtk4/prefs.ui:119
#: resources/ui/gtk3/prefs.ui:97 resources/ui/gtk3/prefs.ui:161 #: resources/ui/gtk3/prefs.ui:83 resources/ui/gtk3/prefs.ui:147
msgid "If multiple are selected, one is chosen randomly." msgid "If multiple are selected, one is chosen randomly."
msgstr "Wenn mehrere ausgewählt sind, wird eine zufällig ausgewählt." msgstr "Wenn mehrere ausgewählt sind, wird eine zufällig ausgewählt."
#: resources/ui/gtk4/prefs.ui:109 resources/ui/gtk4/prefs.ui:153 #: resources/ui/gtk4/prefs.ui:90 resources/ui/gtk4/prefs.ui:134
#: resources/ui/gtk3/prefs.ui:118 resources/ui/gtk3/prefs.ui:182 #: resources/ui/gtk3/prefs.ui:104 resources/ui/gtk3/prefs.ui:168
msgid "Choose Effects" msgid "Choose Effects"
msgstr "Effekte auswählen" msgstr "Effekte auswählen"
#: resources/ui/gtk4/prefs.ui:129 resources/ui/gtk3/prefs.ui:152 #: resources/ui/gtk4/prefs.ui:110 resources/ui/gtk3/prefs.ui:138
msgid "Close Window Animation" msgid "Close Window Animation"
msgstr "Fenster-Schließen-Animation" msgstr "Fenster-Schließen-Animation"
#: resources/ui/gtk4/prefs.ui:169 resources/ui/gtk3/prefs.ui:212 #: resources/ui/gtk4/prefs.ui:150 resources/ui/gtk3/prefs.ui:198
msgid "Also Add Effects to Dialogs" msgid "Also Add Effects to Dialogs"
msgstr "Effekte auch zu Dialogen hinzufügen" 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 #: resources/ui/gtk3/Fire.ui:63
msgid "Choose a Preset" msgid "Choose a Preset"
msgstr "Wählen Sie eine Voreinstellung" msgstr "Wählen Sie eine Voreinstellung"
#~ msgid "Via PayPal"
#~ msgstr "Mit PayPal"
#~ msgid "Via GitHub"
#~ msgstr "Mit GitHub"
#~ msgid "Create a Custom Effect" #~ msgid "Create a Custom Effect"
#~ msgstr "Einen neuen Effekt erstellen" #~ msgstr "Einen neuen Effekt erstellen"
+369
View File
@@ -0,0 +1,369 @@
# 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-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"
"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 "Opciones de efecto"
#: prefs.js:140
msgid "Go Back"
msgstr "Volver"
#: prefs.js:182
msgid "General Options"
msgstr "Opciones generales"
#: prefs.js:276
msgid "Gold Sponsors"
msgstr "Patrocinadores de oro"
#: prefs.js:279
msgid "Silver Sponsors"
msgstr "Patrocinadores de plata"
#: prefs.js:282
msgid "Bronze Sponsors"
msgstr "Patrocinadores de bronce"
#: prefs.js:285
msgid "Past Sponsors"
msgstr "Patrocinadores anteriores"
#. Translators: %s will be replaced by the effect's name.
#: prefs.js:510
#, javascript-format
msgid "Preview for %s"
msgstr "Previsualización de %s"
#: prefs.js:532
msgid "Close this Window to Preview the Effect!"
msgstr "¡Cierre esta ventana para ver el efecto!"
#: src/BrokenGlass.js:57
msgid "Broken Glass"
msgstr "Cristales rotos"
#: src/TVEffect.js:56
msgid "TV Effect"
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"
#: src/Fire.js:58
msgid "Fire"
msgstr "Fuego"
#: src/Fire.js:130
msgid "Default Fire"
msgstr "Fuego predeterminado"
#: src/Fire.js:140
msgid "Hell Fire"
msgstr "Fuego infernal"
#: src/Fire.js:150
msgid "Dark and Smutty"
msgstr "Oscuro y obsceno"
#: src/Fire.js:160
msgid "Cold Breeze"
msgstr "Brisa fría"
#: src/Fire.js:170
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"
#: src/Matrix.js:58
msgid "Matrix"
msgstr "Matrix"
#: resources/ui/common/main-menu.ui:6
msgid "Visit Homepage"
msgstr "Visitar la página web"
#: resources/ui/common/main-menu.ui:10
msgid "View Changelog"
msgstr "Ver registro de cambios"
#: resources/ui/common/main-menu.ui:16
msgid "Report a Bug"
msgstr "Informar de un error"
#: resources/ui/common/main-menu.ui:20
msgid "Create an Effect"
msgstr "Crear un efecto"
#: resources/ui/common/main-menu.ui:24
msgid "Translate"
msgstr "Traducir"
#: resources/ui/common/main-menu.ui:28
msgid "Donate"
msgstr "Donar"
#: 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/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 "Tiempo de animación [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 "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/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/Apparition.ui:70
#: resources/ui/gtk3/Apparition.ui:112
msgid "Randomness"
msgstr "Aleatoriedad"
#: resources/ui/gtk4/Matrix.ui:162
msgid "Vertical Overshooting"
msgstr "Superposición vertical"
#: resources/ui/gtk4/Matrix.ui:208
msgid "Trail Color"
msgstr "Color de la estela"
#: resources/ui/gtk4/Matrix.ui:242
msgid "Tip Color"
msgstr "Color de la punta"
#: resources/ui/gtk4/BrokenGlass.ui:116
msgid "Gravity"
msgstr "Gravedad"
#: resources/ui/gtk4/BrokenGlass.ui:162
msgid "Blow Force"
msgstr "Fuerza del golpe"
#: resources/ui/gtk4/BrokenGlass.ui:212
msgid "Shatter From Pointer Location"
msgstr "Fragmentar desde la ubicación del puntero"
#: resources/ui/gtk4/BrokenGlass.ui:221
msgid ""
"The shards will fly away from where your mouse pointer was when closing the "
"window."
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/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 "Preselecciones"
#: resources/ui/gtk4/Fire.ui:141 resources/ui/gtk3/Fire.ui:189
msgid "Speed"
msgstr "Velocidad"
#: resources/ui/gtk4/Fire.ui:191 resources/ui/gtk3/Fire.ui:241
msgid "3D Noise"
msgstr "Ruido 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 "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 "Degradado"
#: resources/ui/gtk4/TRexAttack.ui:70
msgid "Claw Scratch Scale"
msgstr "Escala de arañazos de garras"
#: resources/ui/gtk4/TRexAttack.ui:116
msgid "Claw Scratch Count"
msgstr "Número de arañazos de garras"
#: resources/ui/gtk4/TRexAttack.ui:162
msgid "Warp Effect"
msgstr "Efecto distorsión"
#: resources/ui/gtk4/TRexAttack.ui:208
msgid "Flash Color"
msgstr "Color del flash"
#: resources/ui/gtk4/effectPage.ui:37 resources/ui/gtk3/effectPage.ui:37
msgid "Preview this Effect"
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 "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 amistades :)"
#: resources/ui/gtk4/prefs.ui:66 resources/ui/gtk3/prefs.ui:74
msgid "Open Window Animation"
msgstr "Animación al abrir la ventana"
#: 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 "Si se seleccionan varios, se elige uno al azar."
#: 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 "Elegir efectos"
#: resources/ui/gtk4/prefs.ui:110 resources/ui/gtk3/prefs.ui:138
msgid "Close Window Animation"
msgstr "Animación al cerrar la ventana"
#: resources/ui/gtk4/prefs.ui:150 resources/ui/gtk3/prefs.ui:198
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 "Elija una preselección"
#~ msgid "Via PayPal"
#~ msgstr "Vía PayPal"
#~ msgid "Via GitHub"
#~ msgstr "Vía GitHub"
+184 -89
View File
@@ -7,118 +7,160 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Burn-My-Windows\n" "Project-Id-Version: Burn-My-Windows\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-01-29 05:40+0100\n" "POT-Creation-Date: 2022-04-05 09:22+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: 2022-02-21 11:58+0000\n"
"Last-Translator: Automatically generated\n" "Last-Translator: Nathan <bonnemainsnathan@gmail.com>\n"
"Language-Team: none\n" "Language-Team: French <https://hosted.weblate.org/projects/burn-my-windows/"
"core/fr/>\n"
"Language: fr\n" "Language: fr\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 4.11-dev\n"
#: prefs.js:112
msgid "Effect Options"
msgstr "Options de l'effet"
#: prefs.js:140
msgid "Go Back"
msgstr "Retour"
#: prefs.js:182
msgid "General Options"
msgstr "Options générales"
#: prefs.js:276
msgid "Gold Sponsors"
msgstr "Sponsors Or"
#: prefs.js:279
msgid "Silver Sponsors"
msgstr "Sponsors Argent"
#: prefs.js:282
msgid "Bronze Sponsors"
msgstr "Sponsors Bronze"
#: prefs.js:285
msgid "Past Sponsors"
msgstr "Anciens Sponsors"
#. Translators: %s will be replaced by the effect's name. #. Translators: %s will be replaced by the effect's name.
#: prefs.js:337 #: prefs.js:510
#, javascript-format #, javascript-format
msgid "Preview for %s" msgid "Preview for %s"
msgstr "" msgstr "Aperçu pour %s"
#: prefs.js:359 #: prefs.js:532
msgid "Close this Window to Preview the Effect!" msgid "Close this Window to Preview the Effect!"
msgstr "" msgstr "Fermez cette fenêtre pour un aperçu de l'effet !"
#: src/BrokenGlass.js:57 #: src/BrokenGlass.js:57
msgid "Broken Glass" msgid "Broken Glass"
msgstr "" msgstr "Verre brisé"
#: src/TVEffect.js:56 #: src/TVEffect.js:56
msgid "TV Effect" msgid "TV Effect"
msgstr "" msgstr "Effet TV"
#: src/TRexAttack.js:56 #: src/TRexAttack.js:56
msgid "T-Rex Attack" msgid "T-Rex Attack"
msgstr "Attaque de T-Rex"
#: src/SnapOfDisintegration.js:60
msgid "Snap of Disintegration"
msgstr "" msgstr ""
#: src/Wisps.js:55 #: src/Wisps.js:55
msgid "Wisps" msgid "Wisps"
msgstr "" msgstr "Volutes"
#: src/Fire.js:58 #: src/Fire.js:58
msgid "Fire" msgid "Fire"
msgstr "" msgstr "Feu"
#: src/Fire.js:130 #: src/Fire.js:130
msgid "Default Fire" msgid "Default Fire"
msgstr "" msgstr "Feu par défaut"
#: src/Fire.js:140 #: src/Fire.js:140
msgid "Hell Fire" msgid "Hell Fire"
msgstr "" msgstr "Feu de l'enfer"
#: src/Fire.js:150 #: src/Fire.js:150
msgid "Dark and Smutty" msgid "Dark and Smutty"
msgstr "" msgstr "Sombre et ténébreux"
#: src/Fire.js:160 #: src/Fire.js:160
msgid "Cold Breeze" msgid "Cold Breeze"
msgstr "" msgstr "Brise froide"
#: src/Fire.js:170 #: src/Fire.js:170
msgid "Santa is Coming" msgid "Santa is Coming"
msgstr "Le Père Noël arrive"
#: src/Hexagon.js:53
msgid "Hexagon"
msgstr "" msgstr ""
#: src/EnergizeA.js:54 #: src/EnergizeA.js:54
msgid "Energize A" msgid "Energize A"
msgstr "Énergie A"
#: src/Apparition.js:57
msgid "Apparition"
msgstr "" msgstr ""
#: src/EnergizeB.js:54 #: src/EnergizeB.js:54
msgid "Energize B" msgid "Energize B"
msgstr "" msgstr "Énergie B"
#: src/Matrix.js:58 #: src/Matrix.js:58
msgid "Matrix" msgid "Matrix"
msgstr "" msgstr "Matrix"
#: resources/ui/common/main-menu.ui:6 #: resources/ui/common/main-menu.ui:6
msgid "Visit Homepage" msgid "Visit Homepage"
msgstr "" msgstr "Visiter la page d'accueil"
#: resources/ui/common/main-menu.ui:10 #: resources/ui/common/main-menu.ui:10
msgid "View Changelog" msgid "View Changelog"
msgstr "" msgstr "Voir le journal des modifications"
#: resources/ui/common/main-menu.ui:16 #: resources/ui/common/main-menu.ui:16
msgid "Report a Bug" msgid "Report a Bug"
msgstr "" msgstr "Signaler un bug"
#: resources/ui/common/main-menu.ui:20 #: resources/ui/common/main-menu.ui:20
msgid "Create an Effect" msgid "Create an Effect"
msgstr "" msgstr "Créer un effet"
#: resources/ui/common/main-menu.ui:24 #: resources/ui/common/main-menu.ui:24
msgid "Translate" msgid "Translate"
msgstr "" msgstr "Traduire"
#: resources/ui/common/main-menu.ui:28 #: resources/ui/common/main-menu.ui:28
msgid "Donate" msgid "Donate"
msgstr "" msgstr "Faire un don"
#: resources/ui/common/main-menu.ui:30 #: resources/ui/common/main-menu.ui:41
msgid "Via PayPal" msgid "About Burn-My-Windows"
msgstr "" msgstr "À propos de Burn-My-Windows"
#: resources/ui/common/main-menu.ui:34
msgid "Via GitHub"
msgstr ""
#: resources/ui/gtk4/Matrix.ui:24 resources/ui/gtk4/BrokenGlass.ui:24 #: 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/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/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/Wisps.ui:42 resources/ui/gtk3/Fire.ui:93
#: resources/ui/gtk3/TVEffect.ui:35 resources/ui/gtk3/EnergizeA.ui:42 #: 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]" msgid "Animation Time [ms]"
msgstr "" msgstr "Durée de l'animation (ms)"
#: resources/ui/gtk4/Matrix.ui:52 resources/ui/gtk4/Matrix.ui:98 #: 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:144 resources/ui/gtk4/Matrix.ui:190
@@ -134,143 +176,196 @@ msgstr ""
#: resources/ui/gtk4/TRexAttack.ui:190 resources/ui/gtk4/TRexAttack.ui:224 #: 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/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: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/EnergizeB.ui:98 resources/ui/gtk4/EnergizeB.ui:132
#: resources/ui/gtk4/prefs.ui:185 resources/ui/gtk3/Wisps.ui:68 #: resources/ui/gtk4/prefs.ui:166 resources/ui/gtk4/Apparition.ui:52
#: resources/ui/gtk3/Wisps.ui:117 resources/ui/gtk3/Wisps.ui:160 #: resources/ui/gtk4/Apparition.ui:98 resources/ui/gtk4/Apparition.ui:144
#: resources/ui/gtk3/Fire.ui:119 resources/ui/gtk3/Fire.ui:167 #: resources/ui/gtk4/Apparition.ui:190 resources/ui/gtk4/Apparition.ui:236
#: resources/ui/gtk3/Fire.ui:215 resources/ui/gtk3/Fire.ui:277 #: resources/ui/gtk3/Wisps.ui:68 resources/ui/gtk3/Wisps.ui:117
#: resources/ui/gtk3/Fire.ui:345 resources/ui/gtk3/TVEffect.ui:61 #: resources/ui/gtk3/Wisps.ui:160 resources/ui/gtk3/Fire.ui:119
#: resources/ui/gtk3/TVEffect.ui:104 resources/ui/gtk3/EnergizeA.ui:68 #: resources/ui/gtk3/Fire.ui:167 resources/ui/gtk3/Fire.ui:215
#: resources/ui/gtk3/EnergizeA.ui:117 resources/ui/gtk3/EnergizeA.ui:160 #: resources/ui/gtk3/Fire.ui:277 resources/ui/gtk3/Fire.ui:345
#: resources/ui/gtk3/EnergizeB.ui:68 resources/ui/gtk3/EnergizeB.ui:117 #: resources/ui/gtk3/TVEffect.ui:61 resources/ui/gtk3/TVEffect.ui:104
#: resources/ui/gtk3/EnergizeB.ui:160 resources/ui/gtk3/prefs.ui:233 #: 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" msgid "Reset to Default Value"
msgstr "" msgstr "Réinitialiser à la valeur par défaut"
#: resources/ui/gtk4/Matrix.ui:70 resources/ui/gtk4/BrokenGlass.ui:70 #: 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/Wisps.ui:70 resources/ui/gtk4/Fire.ui:95
#: resources/ui/gtk4/EnergizeA.ui:70 resources/ui/gtk4/EnergizeB.ui:70 #: resources/ui/gtk4/SnapOfDisintegration.ui:70
#: resources/ui/gtk3/Wisps.ui:91 resources/ui/gtk3/Fire.ui:141 #: resources/ui/gtk4/EnergizeA.ui:70 resources/ui/gtk4/Hexagon.ui:70
#: resources/ui/gtk3/EnergizeA.ui:91 resources/ui/gtk3/EnergizeB.ui:91 #: 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" msgid "Scale"
msgstr "" 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" msgid "Randomness"
msgstr "" msgstr "Aléatoire"
#: resources/ui/gtk4/Matrix.ui:162 #: resources/ui/gtk4/Matrix.ui:162
msgid "Vertical Overshooting" msgid "Vertical Overshooting"
msgstr "" msgstr "Dépassement vertical"
#: resources/ui/gtk4/Matrix.ui:208 #: resources/ui/gtk4/Matrix.ui:208
msgid "Trail Color" msgid "Trail Color"
msgstr "" msgstr "Couleur de la traîne"
#: resources/ui/gtk4/Matrix.ui:242 #: resources/ui/gtk4/Matrix.ui:242
msgid "Tip Color" msgid "Tip Color"
msgstr "" msgstr "Couleur de la pointe"
#: resources/ui/gtk4/BrokenGlass.ui:116 #: resources/ui/gtk4/BrokenGlass.ui:116
msgid "Gravity" msgid "Gravity"
msgstr "" msgstr "Gravité"
#: resources/ui/gtk4/BrokenGlass.ui:162 #: resources/ui/gtk4/BrokenGlass.ui:162
msgid "Blow Force" msgid "Blow Force"
msgstr "" msgstr "Force d'explosion"
#: resources/ui/gtk4/BrokenGlass.ui:212 #: resources/ui/gtk4/BrokenGlass.ui:212
msgid "Shatter From Pointer Location" msgid "Shatter From Pointer Location"
msgstr "" msgstr "Briser à partir de la position du curseur"
#: resources/ui/gtk4/BrokenGlass.ui:221 #: resources/ui/gtk4/BrokenGlass.ui:221
msgid "" msgid ""
"The shards will fly away from where your mouse pointer was when closing the " "The shards will fly away from where your mouse pointer was when closing the "
"window." "window."
msgstr "" 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/Wisps.ui:116 resources/ui/gtk4/SnapOfDisintegration.ui:116
#: resources/ui/gtk4/EnergizeA.ui:116 resources/ui/gtk4/EnergizeB.ui:116 #: resources/ui/gtk4/TVEffect.ui:70 resources/ui/gtk4/EnergizeA.ui:116
#: resources/ui/gtk3/Wisps.ui:139 resources/ui/gtk3/TVEffect.ui:83 #: resources/ui/gtk4/EnergizeB.ui:116 resources/ui/gtk3/Wisps.ui:139
#: resources/ui/gtk3/EnergizeA.ui:139 resources/ui/gtk3/EnergizeB.ui:139 #: resources/ui/gtk3/TVEffect.ui:83 resources/ui/gtk3/EnergizeA.ui:139
#: resources/ui/gtk3/EnergizeB.ui:139
msgid "Color" msgid "Color"
msgstr "" msgstr "Couleur"
#: resources/ui/gtk4/Fire.ui:25 resources/ui/gtk3/Fire.ui:49 #: resources/ui/gtk4/Fire.ui:25 resources/ui/gtk3/Fire.ui:49
msgid "Presets" msgid "Presets"
msgstr "" msgstr "Préréglages"
#: resources/ui/gtk4/Fire.ui:141 resources/ui/gtk3/Fire.ui:189 #: resources/ui/gtk4/Fire.ui:141 resources/ui/gtk3/Fire.ui:189
msgid "Speed" msgid "Speed"
msgstr "" msgstr "Vitesse"
#: resources/ui/gtk4/Fire.ui:191 resources/ui/gtk3/Fire.ui:241 #: resources/ui/gtk4/Fire.ui:191 resources/ui/gtk3/Fire.ui:241
msgid "3D Noise" msgid "3D Noise"
msgstr "" msgstr "Bruit 3D"
#: resources/ui/gtk4/Fire.ui:200 resources/ui/gtk3/Fire.ui:250 #: resources/ui/gtk4/Fire.ui:200 resources/ui/gtk3/Fire.ui:250
msgid "Creates a more dynamic fire but requires more GPU power." msgid "Creates a more dynamic fire but requires more GPU power."
msgstr "" msgstr ""
"Crée un feu plus dynamique mais demande plus de puissance de la carte "
"graphique."
#: resources/ui/gtk4/Fire.ui:240 resources/ui/gtk3/Fire.ui:300 #: resources/ui/gtk4/Fire.ui:240 resources/ui/gtk3/Fire.ui:300
msgid "Gradient" msgid "Gradient"
msgstr "" msgstr "Gradient"
#: resources/ui/gtk4/TRexAttack.ui:70 #: resources/ui/gtk4/TRexAttack.ui:70
msgid "Claw Scratch Scale" msgid "Claw Scratch Scale"
msgstr "" msgstr "Échelle de griffe"
#: resources/ui/gtk4/TRexAttack.ui:116 #: resources/ui/gtk4/TRexAttack.ui:116
msgid "Claw Scratch Count" msgid "Claw Scratch Count"
msgstr "" msgstr "Nombre de coups"
#: resources/ui/gtk4/TRexAttack.ui:162 #: resources/ui/gtk4/TRexAttack.ui:162
msgid "Warp Effect" msgid "Warp Effect"
msgstr "" msgstr "Effet de distorsion"
#: resources/ui/gtk4/TRexAttack.ui:208 #: resources/ui/gtk4/TRexAttack.ui:208
msgid "Flash Color" msgid "Flash Color"
msgstr "" msgstr "Couleur du flash"
#: resources/ui/gtk4/effectPage.ui:41 resources/ui/gtk3/effectPage.ui:41 #: resources/ui/gtk4/effectPage.ui:37 resources/ui/gtk3/effectPage.ui:37
msgid "Preview this Effect" 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 "" msgstr ""
#: resources/ui/gtk4/prefs.ui:27 resources/ui/gtk3/prefs.ui:251 #: resources/ui/gtk4/Hexagon.ui:162 resources/ui/gtk3/Hexagon.ui:195
msgid "General Options" msgid "Line Color"
msgstr "" msgstr ""
#: resources/ui/gtk4/prefs.ui:47 resources/ui/gtk3/prefs.ui:49 #: 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!" msgid "Welcome to Burn-My-Windows!"
msgstr "" msgstr "Bienvenue dans Burn-My-Windows !"
#: resources/ui/gtk4/prefs.ui:58 resources/ui/gtk3/prefs.ui:60 #: resources/ui/gtk4/prefs.ui:39 resources/ui/gtk3/prefs.ui:46
msgid "If you like this extension, recommend it to your friends :)" msgid "If you like this extension, recommend it to your friends :)"
msgstr "" msgstr "Si vous aimez cette extension, recommandez-la à vos amis :)"
#: resources/ui/gtk4/prefs.ui:85 resources/ui/gtk3/prefs.ui:88 #: resources/ui/gtk4/prefs.ui:66 resources/ui/gtk3/prefs.ui:74
msgid "Open Window Animation" msgid "Open Window Animation"
msgstr "" msgstr "Animation d'ouverture de fenêtre"
#: resources/ui/gtk4/prefs.ui:94 resources/ui/gtk4/prefs.ui:138 #: resources/ui/gtk4/prefs.ui:75 resources/ui/gtk4/prefs.ui:119
#: resources/ui/gtk3/prefs.ui:97 resources/ui/gtk3/prefs.ui:161 #: resources/ui/gtk3/prefs.ui:83 resources/ui/gtk3/prefs.ui:147
msgid "If multiple are selected, one is chosen randomly." msgid "If multiple are selected, one is chosen randomly."
msgstr "" msgstr "Si plusieurs sont sélectionnés, un est choisi au hasard."
#: resources/ui/gtk4/prefs.ui:109 resources/ui/gtk4/prefs.ui:153 #: resources/ui/gtk4/prefs.ui:90 resources/ui/gtk4/prefs.ui:134
#: resources/ui/gtk3/prefs.ui:118 resources/ui/gtk3/prefs.ui:182 #: resources/ui/gtk3/prefs.ui:104 resources/ui/gtk3/prefs.ui:168
msgid "Choose Effects" msgid "Choose Effects"
msgstr "" msgstr "Choisir les effets"
#: resources/ui/gtk4/prefs.ui:129 resources/ui/gtk3/prefs.ui:152 #: resources/ui/gtk4/prefs.ui:110 resources/ui/gtk3/prefs.ui:138
msgid "Close Window Animation" msgid "Close Window Animation"
msgstr "Animation de fermeture de fenêtre"
#: resources/ui/gtk4/prefs.ui:150 resources/ui/gtk3/prefs.ui:198
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 "" msgstr ""
#: resources/ui/gtk4/prefs.ui:169 resources/ui/gtk3/prefs.ui:212 #: resources/ui/gtk4/Apparition.ui:162 resources/ui/gtk3/Apparition.ui:210
msgid "Also Add Effects to Dialogs" msgid "Shake Intensity"
msgstr ""
#: resources/ui/gtk4/Apparition.ui:208 resources/ui/gtk3/Apparition.ui:259
msgid "Suction Intensity"
msgstr "" msgstr ""
#: resources/ui/gtk3/Fire.ui:63 #: resources/ui/gtk3/Fire.ui:63
msgid "Choose a Preset" msgid "Choose a Preset"
msgstr "" msgstr "Sélectionner un préréglage"
#~ msgid "Via PayPal"
#~ msgstr "Via PayPal"
#~ msgid "Via GitHub"
#~ msgstr "Via GitHub"
+152 -62
View File
@@ -7,8 +7,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Burn-My-Windows\n" "Project-Id-Version: Burn-My-Windows\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-01-29 05:40+0100\n" "POT-Creation-Date: 2022-04-05 09:22+0200\n"
"PO-Revision-Date: 2022-01-31 04:48+0000\n" "PO-Revision-Date: 2022-02-28 12:56+0000\n"
"Last-Translator: albanobattistella <albano_battistella@hotmail.com>\n" "Last-Translator: albanobattistella <albano_battistella@hotmail.com>\n"
"Language-Team: Italian <https://hosted.weblate.org/projects/burn-my-windows/" "Language-Team: Italian <https://hosted.weblate.org/projects/burn-my-windows/"
"core/it/>\n" "core/it/>\n"
@@ -17,15 +17,43 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\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:112
msgid "Effect Options"
msgstr "Opzioni effetto"
#: prefs.js:140
msgid "Go Back"
msgstr "Indietro"
#: prefs.js:182
msgid "General Options"
msgstr "Opzioni generali"
#: prefs.js:276
msgid "Gold Sponsors"
msgstr "Sponsor d'oro"
#: prefs.js:279
msgid "Silver Sponsors"
msgstr "Sponsor d'argento"
#: prefs.js:282
msgid "Bronze Sponsors"
msgstr "Sponsor di bronzo"
#: prefs.js:285
msgid "Past Sponsors"
msgstr "Sponsor passati"
#. Translators: %s will be replaced by the effect's name. #. Translators: %s will be replaced by the effect's name.
#: prefs.js:337 #: prefs.js:510
#, javascript-format #, javascript-format
msgid "Preview for %s" msgid "Preview for %s"
msgstr "Anteprima per %s" msgstr "Anteprima per %s"
#: prefs.js:359 #: prefs.js:532
msgid "Close this Window to Preview the Effect!" msgid "Close this Window to Preview the Effect!"
msgstr "Chiudi questa finestra per visualizzare in anteprima l'effetto!" msgstr "Chiudi questa finestra per visualizzare in anteprima l'effetto!"
@@ -39,11 +67,15 @@ msgstr "Effetto TV"
#: src/TRexAttack.js:56 #: src/TRexAttack.js:56
msgid "T-Rex Attack" msgid "T-Rex Attack"
msgstr "Attacco T-Rex"
#: src/SnapOfDisintegration.js:60
msgid "Snap of Disintegration"
msgstr "" msgstr ""
#: src/Wisps.js:55 #: src/Wisps.js:55
msgid "Wisps" msgid "Wisps"
msgstr "" msgstr "Scintille"
#: src/Fire.js:58 #: src/Fire.js:58
msgid "Fire" msgid "Fire"
@@ -59,23 +91,31 @@ msgstr "Fuoco Infernale"
#: src/Fire.js:150 #: src/Fire.js:150
msgid "Dark and Smutty" msgid "Dark and Smutty"
msgstr "" msgstr "Scuro e Tenebroso"
#: src/Fire.js:160 #: src/Fire.js:160
msgid "Cold Breeze" msgid "Cold Breeze"
msgstr "" msgstr "Brezza Fredda"
#: src/Fire.js:170 #: src/Fire.js:170
msgid "Santa is Coming" msgid "Santa is Coming"
msgstr "Babbo Natale sta arrivando" msgstr "Babbo Natale sta arrivando"
#: src/Hexagon.js:53
msgid "Hexagon"
msgstr ""
#: src/EnergizeA.js:54 #: src/EnergizeA.js:54
msgid "Energize A" msgid "Energize A"
msgstr "Energia A"
#: src/Apparition.js:57
msgid "Apparition"
msgstr "" msgstr ""
#: src/EnergizeB.js:54 #: src/EnergizeB.js:54
msgid "Energize B" msgid "Energize B"
msgstr "" msgstr "Energia B"
#: src/Matrix.js:58 #: src/Matrix.js:58
msgid "Matrix" msgid "Matrix"
@@ -105,21 +145,20 @@ msgstr "Traduci"
msgid "Donate" msgid "Donate"
msgstr "Donare" msgstr "Donare"
#: resources/ui/common/main-menu.ui:30 #: resources/ui/common/main-menu.ui:41
msgid "Via PayPal" msgid "About Burn-My-Windows"
msgstr "Via PayPal" msgstr "Informazioni su Burn-My-Windows"
#: resources/ui/common/main-menu.ui:34
msgid "Via GitHub"
msgstr "Via GitHub"
#: resources/ui/gtk4/Matrix.ui:24 resources/ui/gtk4/BrokenGlass.ui:24 #: 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/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/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/Wisps.ui:42 resources/ui/gtk3/Fire.ui:93
#: resources/ui/gtk3/TVEffect.ui:35 resources/ui/gtk3/EnergizeA.ui:42 #: 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]" msgid "Animation Time [ms]"
msgstr "Tempo animazione [ms]" msgstr "Tempo animazione [ms]"
@@ -137,66 +176,83 @@ msgstr "Tempo animazione [ms]"
#: resources/ui/gtk4/TRexAttack.ui:190 resources/ui/gtk4/TRexAttack.ui:224 #: 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/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: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/EnergizeB.ui:98 resources/ui/gtk4/EnergizeB.ui:132
#: resources/ui/gtk4/prefs.ui:185 resources/ui/gtk3/Wisps.ui:68 #: resources/ui/gtk4/prefs.ui:166 resources/ui/gtk4/Apparition.ui:52
#: resources/ui/gtk3/Wisps.ui:117 resources/ui/gtk3/Wisps.ui:160 #: resources/ui/gtk4/Apparition.ui:98 resources/ui/gtk4/Apparition.ui:144
#: resources/ui/gtk3/Fire.ui:119 resources/ui/gtk3/Fire.ui:167 #: resources/ui/gtk4/Apparition.ui:190 resources/ui/gtk4/Apparition.ui:236
#: resources/ui/gtk3/Fire.ui:215 resources/ui/gtk3/Fire.ui:277 #: resources/ui/gtk3/Wisps.ui:68 resources/ui/gtk3/Wisps.ui:117
#: resources/ui/gtk3/Fire.ui:345 resources/ui/gtk3/TVEffect.ui:61 #: resources/ui/gtk3/Wisps.ui:160 resources/ui/gtk3/Fire.ui:119
#: resources/ui/gtk3/TVEffect.ui:104 resources/ui/gtk3/EnergizeA.ui:68 #: resources/ui/gtk3/Fire.ui:167 resources/ui/gtk3/Fire.ui:215
#: resources/ui/gtk3/EnergizeA.ui:117 resources/ui/gtk3/EnergizeA.ui:160 #: resources/ui/gtk3/Fire.ui:277 resources/ui/gtk3/Fire.ui:345
#: resources/ui/gtk3/EnergizeB.ui:68 resources/ui/gtk3/EnergizeB.ui:117 #: resources/ui/gtk3/TVEffect.ui:61 resources/ui/gtk3/TVEffect.ui:104
#: resources/ui/gtk3/EnergizeB.ui:160 resources/ui/gtk3/prefs.ui:233 #: 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" msgid "Reset to Default Value"
msgstr "Ripristina valore predefinito" msgstr "Ripristina valore predefinito"
#: resources/ui/gtk4/Matrix.ui:70 resources/ui/gtk4/BrokenGlass.ui:70 #: 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/Wisps.ui:70 resources/ui/gtk4/Fire.ui:95
#: resources/ui/gtk4/EnergizeA.ui:70 resources/ui/gtk4/EnergizeB.ui:70 #: resources/ui/gtk4/SnapOfDisintegration.ui:70
#: resources/ui/gtk3/Wisps.ui:91 resources/ui/gtk3/Fire.ui:141 #: resources/ui/gtk4/EnergizeA.ui:70 resources/ui/gtk4/Hexagon.ui:70
#: resources/ui/gtk3/EnergizeA.ui:91 resources/ui/gtk3/EnergizeB.ui:91 #: 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" msgid "Scale"
msgstr "Scala" 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" msgid "Randomness"
msgstr "Casuale" msgstr "Casuale"
#: resources/ui/gtk4/Matrix.ui:162 #: resources/ui/gtk4/Matrix.ui:162
msgid "Vertical Overshooting" msgid "Vertical Overshooting"
msgstr "" msgstr "Sovrapposizione Verticale"
#: resources/ui/gtk4/Matrix.ui:208 #: resources/ui/gtk4/Matrix.ui:208
msgid "Trail Color" msgid "Trail Color"
msgstr "" msgstr "Colore della pista"
#: resources/ui/gtk4/Matrix.ui:242 #: resources/ui/gtk4/Matrix.ui:242
msgid "Tip Color" msgid "Tip Color"
msgstr "" msgstr "Colore della Punta"
#: resources/ui/gtk4/BrokenGlass.ui:116 #: resources/ui/gtk4/BrokenGlass.ui:116
msgid "Gravity" msgid "Gravity"
msgstr "" msgstr "Gravità"
#: resources/ui/gtk4/BrokenGlass.ui:162 #: resources/ui/gtk4/BrokenGlass.ui:162
msgid "Blow Force" msgid "Blow Force"
msgstr "" msgstr "Forza Esplosiva"
#: resources/ui/gtk4/BrokenGlass.ui:212 #: resources/ui/gtk4/BrokenGlass.ui:212
msgid "Shatter From Pointer Location" msgid "Shatter From Pointer Location"
msgstr "" msgstr "Frammento dalla posizione del puntatore"
#: resources/ui/gtk4/BrokenGlass.ui:221 #: resources/ui/gtk4/BrokenGlass.ui:221
msgid "" msgid ""
"The shards will fly away from where your mouse pointer was when closing the " "The shards will fly away from where your mouse pointer was when closing the "
"window." "window."
msgstr "" 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/Wisps.ui:116 resources/ui/gtk4/SnapOfDisintegration.ui:116
#: resources/ui/gtk4/EnergizeA.ui:116 resources/ui/gtk4/EnergizeB.ui:116 #: resources/ui/gtk4/TVEffect.ui:70 resources/ui/gtk4/EnergizeA.ui:116
#: resources/ui/gtk3/Wisps.ui:139 resources/ui/gtk3/TVEffect.ui:83 #: resources/ui/gtk4/EnergizeB.ui:116 resources/ui/gtk3/Wisps.ui:139
#: resources/ui/gtk3/EnergizeA.ui:139 resources/ui/gtk3/EnergizeB.ui:139 #: resources/ui/gtk3/TVEffect.ui:83 resources/ui/gtk3/EnergizeA.ui:139
#: resources/ui/gtk3/EnergizeB.ui:139
msgid "Color" msgid "Color"
msgstr "Colore" msgstr "Colore"
@@ -210,7 +266,7 @@ msgstr "Velocità"
#: resources/ui/gtk4/Fire.ui:191 resources/ui/gtk3/Fire.ui:241 #: resources/ui/gtk4/Fire.ui:191 resources/ui/gtk3/Fire.ui:241
msgid "3D Noise" msgid "3D Noise"
msgstr "" msgstr "Rumore 3D"
#: resources/ui/gtk4/Fire.ui:200 resources/ui/gtk3/Fire.ui:250 #: resources/ui/gtk4/Fire.ui:200 resources/ui/gtk3/Fire.ui:250
msgid "Creates a more dynamic fire but requires more GPU power." msgid "Creates a more dynamic fire but requires more GPU power."
@@ -222,58 +278,92 @@ msgstr "Gradiente"
#: resources/ui/gtk4/TRexAttack.ui:70 #: resources/ui/gtk4/TRexAttack.ui:70
msgid "Claw Scratch Scale" msgid "Claw Scratch Scale"
msgstr "" msgstr "Scala ad Artiglio"
#: resources/ui/gtk4/TRexAttack.ui:116 #: resources/ui/gtk4/TRexAttack.ui:116
msgid "Claw Scratch Count" msgid "Claw Scratch Count"
msgstr "" msgstr "Numero di colpi"
#: resources/ui/gtk4/TRexAttack.ui:162 #: resources/ui/gtk4/TRexAttack.ui:162
msgid "Warp Effect" msgid "Warp Effect"
msgstr "" msgstr "Effetto Distorsione"
#: resources/ui/gtk4/TRexAttack.ui:208 #: resources/ui/gtk4/TRexAttack.ui:208
msgid "Flash Color" msgid "Flash Color"
msgstr "" msgstr "Colore Flash"
#: resources/ui/gtk4/effectPage.ui:41 resources/ui/gtk3/effectPage.ui:41 #: resources/ui/gtk4/effectPage.ui:37 resources/ui/gtk3/effectPage.ui:37
msgid "Preview this Effect" msgid "Preview this Effect"
msgstr "Anteprima di questo effetto" msgstr "Anteprima di questo effetto"
#: resources/ui/gtk4/prefs.ui:27 resources/ui/gtk3/prefs.ui:251 #: resources/ui/gtk4/Hexagon.ui:116 resources/ui/gtk3/Hexagon.ui:147
msgid "General Options" msgid "Mesh Line Width"
msgstr "Opzioni generali" msgstr ""
#: resources/ui/gtk4/prefs.ui:47 resources/ui/gtk3/prefs.ui:49 #: 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!" msgid "Welcome to Burn-My-Windows!"
msgstr "Benvenuto in Burn-My-Windows!" msgstr "Benvenuto in Burn-My-Windows!"
#: resources/ui/gtk4/prefs.ui:58 resources/ui/gtk3/prefs.ui:60 #: resources/ui/gtk4/prefs.ui:39 resources/ui/gtk3/prefs.ui:46
msgid "If you like this extension, recommend it to your friends :)" msgid "If you like this extension, recommend it to your friends :)"
msgstr "Se ti piace questa estensione, consigliala ai tuoi amici :)" msgstr "Se ti piace questa estensione, consigliala ai tuoi amici :)"
#: resources/ui/gtk4/prefs.ui:85 resources/ui/gtk3/prefs.ui:88 #: resources/ui/gtk4/prefs.ui:66 resources/ui/gtk3/prefs.ui:74
msgid "Open Window Animation" msgid "Open Window Animation"
msgstr "" msgstr "Animazione all'apertura della finestra"
#: resources/ui/gtk4/prefs.ui:94 resources/ui/gtk4/prefs.ui:138 #: resources/ui/gtk4/prefs.ui:75 resources/ui/gtk4/prefs.ui:119
#: resources/ui/gtk3/prefs.ui:97 resources/ui/gtk3/prefs.ui:161 #: resources/ui/gtk3/prefs.ui:83 resources/ui/gtk3/prefs.ui:147
msgid "If multiple are selected, one is chosen randomly." msgid "If multiple are selected, one is chosen randomly."
msgstr "Se ne vengono selezionati multipli, uno viene scelto a caso." msgstr "Se ne vengono selezionati multipli, uno viene scelto a caso."
#: resources/ui/gtk4/prefs.ui:109 resources/ui/gtk4/prefs.ui:153 #: resources/ui/gtk4/prefs.ui:90 resources/ui/gtk4/prefs.ui:134
#: resources/ui/gtk3/prefs.ui:118 resources/ui/gtk3/prefs.ui:182 #: resources/ui/gtk3/prefs.ui:104 resources/ui/gtk3/prefs.ui:168
msgid "Choose Effects" msgid "Choose Effects"
msgstr "Scegli Effetti" msgstr "Scegli Effetti"
#: resources/ui/gtk4/prefs.ui:129 resources/ui/gtk3/prefs.ui:152 #: resources/ui/gtk4/prefs.ui:110 resources/ui/gtk3/prefs.ui:138
msgid "Close Window Animation" msgid "Close Window Animation"
msgstr "" msgstr "Animazione alla chiusura della finestra"
#: resources/ui/gtk4/prefs.ui:169 resources/ui/gtk3/prefs.ui:212 #: resources/ui/gtk4/prefs.ui:150 resources/ui/gtk3/prefs.ui:198
msgid "Also Add Effects to Dialogs" msgid "Also Add Effects to Dialogs"
msgstr "Aggiungi anche effetti ai dialoghi" 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 #: resources/ui/gtk3/Fire.ui:63
msgid "Choose a Preset" msgid "Choose a Preset"
msgstr "Scegli un predefinito" msgstr "Scegli un predefinito"
#~ msgid "Via PayPal"
#~ msgstr "Tramite PayPal"
#~ msgid "Via GitHub"
#~ msgstr "Tramite GitHub"
+132 -44
View File
@@ -7,11 +7,11 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Burn-My-Windows\n" "Project-Id-Version: Burn-My-Windows\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-01-29 05:40+0100\n" "POT-Creation-Date: 2022-04-05 09:22+0200\n"
"PO-Revision-Date: 2022-01-29 12:30+0000\n" "PO-Revision-Date: 2022-01-29 12:30+0000\n"
"Last-Translator: Allan Nordhøy <epost@anotheragency.no>\n" "Last-Translator: Allan Nordhøy <epost@anotheragency.no>\n"
"Language-Team: Norwegian Bokmål <https://hosted.weblate.org/projects/" "Language-Team: Norwegian Bokmål <https://hosted.weblate.org/projects/burn-my-"
"burn-my-windows/core/nb_NO/>\n" "windows/core/nb_NO/>\n"
"Language: nb_NO\n" "Language: nb_NO\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@@ -19,13 +19,41 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n" "Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.11-dev\n" "X-Generator: Weblate 4.11-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. #. Translators: %s will be replaced by the effect's name.
#: prefs.js:337 #: prefs.js:510
#, javascript-format #, javascript-format
msgid "Preview for %s" msgid "Preview for %s"
msgstr "" msgstr ""
#: prefs.js:359 #: prefs.js:532
msgid "Close this Window to Preview the Effect!" msgid "Close this Window to Preview the Effect!"
msgstr "" msgstr ""
@@ -41,6 +69,10 @@ msgstr ""
msgid "T-Rex Attack" msgid "T-Rex Attack"
msgstr "" msgstr ""
#: src/SnapOfDisintegration.js:60
msgid "Snap of Disintegration"
msgstr ""
#: src/Wisps.js:55 #: src/Wisps.js:55
msgid "Wisps" msgid "Wisps"
msgstr "" msgstr ""
@@ -69,10 +101,18 @@ msgstr ""
msgid "Santa is Coming" msgid "Santa is Coming"
msgstr "" msgstr ""
#: src/Hexagon.js:53
msgid "Hexagon"
msgstr ""
#: src/EnergizeA.js:54 #: src/EnergizeA.js:54
msgid "Energize A" msgid "Energize A"
msgstr "" msgstr ""
#: src/Apparition.js:57
msgid "Apparition"
msgstr ""
#: src/EnergizeB.js:54 #: src/EnergizeB.js:54
msgid "Energize B" msgid "Energize B"
msgstr "" msgstr ""
@@ -105,21 +145,20 @@ msgstr "Oversett"
msgid "Donate" msgid "Donate"
msgstr "Doner" msgstr "Doner"
#: resources/ui/common/main-menu.ui:30 #: resources/ui/common/main-menu.ui:41
msgid "Via PayPal" msgid "About Burn-My-Windows"
msgstr "med PayPal" msgstr ""
#: resources/ui/common/main-menu.ui:34
msgid "Via GitHub"
msgstr "på GitHub"
#: resources/ui/gtk4/Matrix.ui:24 resources/ui/gtk4/BrokenGlass.ui:24 #: 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/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/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/Wisps.ui:42 resources/ui/gtk3/Fire.ui:93
#: resources/ui/gtk3/TVEffect.ui:35 resources/ui/gtk3/EnergizeA.ui:42 #: 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]" msgid "Animation Time [ms]"
msgstr "Animasjonstid [ms]" msgstr "Animasjonstid [ms]"
@@ -137,29 +176,43 @@ msgstr "Animasjonstid [ms]"
#: resources/ui/gtk4/TRexAttack.ui:190 resources/ui/gtk4/TRexAttack.ui:224 #: 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/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: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/EnergizeB.ui:98 resources/ui/gtk4/EnergizeB.ui:132
#: resources/ui/gtk4/prefs.ui:185 resources/ui/gtk3/Wisps.ui:68 #: resources/ui/gtk4/prefs.ui:166 resources/ui/gtk4/Apparition.ui:52
#: resources/ui/gtk3/Wisps.ui:117 resources/ui/gtk3/Wisps.ui:160 #: resources/ui/gtk4/Apparition.ui:98 resources/ui/gtk4/Apparition.ui:144
#: resources/ui/gtk3/Fire.ui:119 resources/ui/gtk3/Fire.ui:167 #: resources/ui/gtk4/Apparition.ui:190 resources/ui/gtk4/Apparition.ui:236
#: resources/ui/gtk3/Fire.ui:215 resources/ui/gtk3/Fire.ui:277 #: resources/ui/gtk3/Wisps.ui:68 resources/ui/gtk3/Wisps.ui:117
#: resources/ui/gtk3/Fire.ui:345 resources/ui/gtk3/TVEffect.ui:61 #: resources/ui/gtk3/Wisps.ui:160 resources/ui/gtk3/Fire.ui:119
#: resources/ui/gtk3/TVEffect.ui:104 resources/ui/gtk3/EnergizeA.ui:68 #: resources/ui/gtk3/Fire.ui:167 resources/ui/gtk3/Fire.ui:215
#: resources/ui/gtk3/EnergizeA.ui:117 resources/ui/gtk3/EnergizeA.ui:160 #: resources/ui/gtk3/Fire.ui:277 resources/ui/gtk3/Fire.ui:345
#: resources/ui/gtk3/EnergizeB.ui:68 resources/ui/gtk3/EnergizeB.ui:117 #: resources/ui/gtk3/TVEffect.ui:61 resources/ui/gtk3/TVEffect.ui:104
#: resources/ui/gtk3/EnergizeB.ui:160 resources/ui/gtk3/prefs.ui:233 #: 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" msgid "Reset to Default Value"
msgstr "" msgstr ""
#: resources/ui/gtk4/Matrix.ui:70 resources/ui/gtk4/BrokenGlass.ui:70 #: 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/Wisps.ui:70 resources/ui/gtk4/Fire.ui:95
#: resources/ui/gtk4/EnergizeA.ui:70 resources/ui/gtk4/EnergizeB.ui:70 #: resources/ui/gtk4/SnapOfDisintegration.ui:70
#: resources/ui/gtk3/Wisps.ui:91 resources/ui/gtk3/Fire.ui:141 #: resources/ui/gtk4/EnergizeA.ui:70 resources/ui/gtk4/Hexagon.ui:70
#: resources/ui/gtk3/EnergizeA.ui:91 resources/ui/gtk3/EnergizeB.ui:91 #: 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" msgid "Scale"
msgstr "" 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" msgid "Randomness"
msgstr "" msgstr ""
@@ -193,10 +246,11 @@ msgid ""
"window." "window."
msgstr "" msgstr ""
#: resources/ui/gtk4/Wisps.ui:116 resources/ui/gtk4/TVEffect.ui:70 #: resources/ui/gtk4/Wisps.ui:116 resources/ui/gtk4/SnapOfDisintegration.ui:116
#: resources/ui/gtk4/EnergizeA.ui:116 resources/ui/gtk4/EnergizeB.ui:116 #: resources/ui/gtk4/TVEffect.ui:70 resources/ui/gtk4/EnergizeA.ui:116
#: resources/ui/gtk3/Wisps.ui:139 resources/ui/gtk3/TVEffect.ui:83 #: resources/ui/gtk4/EnergizeB.ui:116 resources/ui/gtk3/Wisps.ui:139
#: resources/ui/gtk3/EnergizeA.ui:139 resources/ui/gtk3/EnergizeB.ui:139 #: resources/ui/gtk3/TVEffect.ui:83 resources/ui/gtk3/EnergizeA.ui:139
#: resources/ui/gtk3/EnergizeB.ui:139
msgid "Color" msgid "Color"
msgstr "" msgstr ""
@@ -236,44 +290,78 @@ msgstr ""
msgid "Flash Color" msgid "Flash Color"
msgstr "" msgstr ""
#: resources/ui/gtk4/effectPage.ui:41 resources/ui/gtk3/effectPage.ui:41 #: resources/ui/gtk4/effectPage.ui:37 resources/ui/gtk3/effectPage.ui:37
msgid "Preview this Effect" msgid "Preview this Effect"
msgstr "" msgstr ""
#: resources/ui/gtk4/prefs.ui:27 resources/ui/gtk3/prefs.ui:251 #: resources/ui/gtk4/Hexagon.ui:116 resources/ui/gtk3/Hexagon.ui:147
msgid "General Options" msgid "Mesh Line Width"
msgstr "" msgstr ""
#: resources/ui/gtk4/prefs.ui:47 resources/ui/gtk3/prefs.ui:49 #: 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!" msgid "Welcome to Burn-My-Windows!"
msgstr "" msgstr ""
#: resources/ui/gtk4/prefs.ui:58 resources/ui/gtk3/prefs.ui:60 #: resources/ui/gtk4/prefs.ui:39 resources/ui/gtk3/prefs.ui:46
msgid "If you like this extension, recommend it to your friends :)" msgid "If you like this extension, recommend it to your friends :)"
msgstr "" msgstr ""
#: resources/ui/gtk4/prefs.ui:85 resources/ui/gtk3/prefs.ui:88 #: resources/ui/gtk4/prefs.ui:66 resources/ui/gtk3/prefs.ui:74
msgid "Open Window Animation" msgid "Open Window Animation"
msgstr "" msgstr ""
#: resources/ui/gtk4/prefs.ui:94 resources/ui/gtk4/prefs.ui:138 #: resources/ui/gtk4/prefs.ui:75 resources/ui/gtk4/prefs.ui:119
#: resources/ui/gtk3/prefs.ui:97 resources/ui/gtk3/prefs.ui:161 #: resources/ui/gtk3/prefs.ui:83 resources/ui/gtk3/prefs.ui:147
msgid "If multiple are selected, one is chosen randomly." msgid "If multiple are selected, one is chosen randomly."
msgstr "" msgstr ""
#: resources/ui/gtk4/prefs.ui:109 resources/ui/gtk4/prefs.ui:153 #: resources/ui/gtk4/prefs.ui:90 resources/ui/gtk4/prefs.ui:134
#: resources/ui/gtk3/prefs.ui:118 resources/ui/gtk3/prefs.ui:182 #: resources/ui/gtk3/prefs.ui:104 resources/ui/gtk3/prefs.ui:168
msgid "Choose Effects" msgid "Choose Effects"
msgstr "" msgstr ""
#: resources/ui/gtk4/prefs.ui:129 resources/ui/gtk3/prefs.ui:152 #: resources/ui/gtk4/prefs.ui:110 resources/ui/gtk3/prefs.ui:138
msgid "Close Window Animation" msgid "Close Window Animation"
msgstr "" msgstr ""
#: resources/ui/gtk4/prefs.ui:169 resources/ui/gtk3/prefs.ui:212 #: resources/ui/gtk4/prefs.ui:150 resources/ui/gtk3/prefs.ui:198
msgid "Also Add Effects to Dialogs" msgid "Also Add Effects to Dialogs"
msgstr "" 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 #: resources/ui/gtk3/Fire.ui:63
msgid "Choose a Preset" msgid "Choose a Preset"
msgstr "" msgstr ""
#~ msgid "Via PayPal"
#~ msgstr "med PayPal"
#~ msgid "Via GitHub"
#~ msgstr "på GitHub"
+370
View File
@@ -0,0 +1,370 @@
# 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-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"
"Language: nl\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 "Effectvoorkeuren"
#: prefs.js:140
msgid "Go Back"
msgstr "Scherm sluiten"
#: prefs.js:182
msgid "General Options"
msgstr "Algemene voorkeuren"
#: prefs.js:276
msgid "Gold Sponsors"
msgstr "Gouden sponsoren"
#: prefs.js:279
msgid "Silver Sponsors"
msgstr "Zilveren sponsoren"
#: prefs.js:282
msgid "Bronze Sponsors"
msgstr "Bronzen sponsoren"
#: prefs.js:285
msgid "Past Sponsors"
msgstr "Voormalige sponsoren"
#. Translators: %s will be replaced by the effect's name.
#: prefs.js:510
#, javascript-format
msgid "Preview for %s"
msgstr "%s-voorvertoning"
#: prefs.js:532
msgid "Close this Window to Preview the Effect!"
msgstr "Sluit dit venster om het effect voor te vertonen."
#: src/BrokenGlass.js:57
msgid "Broken Glass"
msgstr "Gebroken glas"
#: src/TVEffect.js:56
msgid "TV Effect"
msgstr "Tv-effect"
#: src/TRexAttack.js:56
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"
#: src/Fire.js:58
msgid "Fire"
msgstr "Vuur"
#: src/Fire.js:130
msgid "Default Fire"
msgstr "Normaal vuur"
#: src/Fire.js:140
msgid "Hell Fire"
msgstr "Hellevuur"
#: src/Fire.js:150
msgid "Dark and Smutty"
msgstr "Donker en zwart"
#: src/Fire.js:160
msgid "Cold Breeze"
msgstr "Koude wind"
#: src/Fire.js:170
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"
#: src/Matrix.js:58
msgid "Matrix"
msgstr "Matrix"
#: resources/ui/common/main-menu.ui:6
msgid "Visit Homepage"
msgstr "Website openen"
#: resources/ui/common/main-menu.ui:10
msgid "View Changelog"
msgstr "Wijzigingslog bekijken"
#: resources/ui/common/main-menu.ui:16
msgid "Report a Bug"
msgstr "Bug melden"
#: resources/ui/common/main-menu.ui:20
msgid "Create an Effect"
msgstr "Effect creëren"
#: resources/ui/common/main-menu.ui:24
msgid "Translate"
msgstr "Vertalen"
#: resources/ui/common/main-menu.ui:28
msgid "Donate"
msgstr "Doneren"
#: 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/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 "Animatieduur [in 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 "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/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/Apparition.ui:70
#: resources/ui/gtk3/Apparition.ui:112
msgid "Randomness"
msgstr "Willekeurigheid"
#: resources/ui/gtk4/Matrix.ui:162
msgid "Vertical Overshooting"
msgstr "Verticale verspringing"
#: resources/ui/gtk4/Matrix.ui:208
msgid "Trail Color"
msgstr "Sleepspoorkleur"
#: resources/ui/gtk4/Matrix.ui:242
msgid "Tip Color"
msgstr "Piekkleur"
#: resources/ui/gtk4/BrokenGlass.ui:116
msgid "Gravity"
msgstr "Zwaartekracht"
#: resources/ui/gtk4/BrokenGlass.ui:162
msgid "Blow Force"
msgstr "Windkracht"
#: resources/ui/gtk4/BrokenGlass.ui:212
msgid "Shatter From Pointer Location"
msgstr "Uiteenvallen bij cursorpositie"
#: resources/ui/gtk4/BrokenGlass.ui:221
msgid ""
"The shards will fly away from where your mouse pointer was when closing the "
"window."
msgstr ""
"De stukken vliegen weg vanaf de cursorpositie na het sluiten van een venster."
#: 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"
#: resources/ui/gtk4/Fire.ui:25 resources/ui/gtk3/Fire.ui:49
msgid "Presets"
msgstr "Voorinstellingen"
#: resources/ui/gtk4/Fire.ui:141 resources/ui/gtk3/Fire.ui:189
msgid "Speed"
msgstr "Snelheid"
#: resources/ui/gtk4/Fire.ui:191 resources/ui/gtk3/Fire.ui:241
msgid "3D Noise"
msgstr "3D-ruis"
#: resources/ui/gtk4/Fire.ui:200 resources/ui/gtk3/Fire.ui:250
msgid "Creates a more dynamic fire but requires more GPU power."
msgstr "Zorgt voor een speels vuur, maar vereist meer computerkracht."
#: resources/ui/gtk4/Fire.ui:240 resources/ui/gtk3/Fire.ui:300
msgid "Gradient"
msgstr "Verloop"
#: resources/ui/gtk4/TRexAttack.ui:70
msgid "Claw Scratch Scale"
msgstr "Schaal van pootkrabben"
#: resources/ui/gtk4/TRexAttack.ui:116
msgid "Claw Scratch Count"
msgstr "Aantal pootkrabben"
#: resources/ui/gtk4/TRexAttack.ui:162
msgid "Warp Effect"
msgstr "Vervormingseffect"
#: resources/ui/gtk4/TRexAttack.ui:208
msgid "Flash Color"
msgstr "Flitskleur"
#: resources/ui/gtk4/effectPage.ui:37 resources/ui/gtk3/effectPage.ui:37
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’!"
#: resources/ui/gtk4/prefs.ui:39 resources/ui/gtk3/prefs.ui:46
msgid "If you like this extension, recommend it to your friends :)"
msgstr ""
"Als u deze uitbreiding leuk vindt, deel hem dan met vrienden en kennissen. :)"
#: resources/ui/gtk4/prefs.ui:66 resources/ui/gtk3/prefs.ui:74
msgid "Open Window Animation"
msgstr "Animatie bij openen van vensters"
#: 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 ""
"Als er meerdere effecten zijn geselecteerd, dan wordt er willekeurig gekozen."
#: 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 "Kies de effecten"
#: resources/ui/gtk4/prefs.ui:110 resources/ui/gtk3/prefs.ui:138
msgid "Close Window Animation"
msgstr "Animatie bij sluiten van vensters"
#: resources/ui/gtk4/prefs.ui:150 resources/ui/gtk3/prefs.ui:198
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"
#~ msgid "Via PayPal"
#~ msgstr "Via PayPal"
#~ msgid "Via GitHub"
#~ msgstr "Via GitHub"
+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 ""
+270 -98
View File
@@ -14,6 +14,15 @@
'use strict'; 'use strict';
const {Gio, Gtk, Gdk, GLib, GObject} = imports.gi; const {Gio, Gtk, Gdk, GLib, GObject} = imports.gi;
const ByteArray = imports.byteArray;
// libadwaita is available starting with GNOME Shell 42.
let Adw = null;
try {
Adw = imports.gi.Adw;
} catch (e) {
// Nothing to do.
}
const _ = imports.gettext.domain('burn-my-windows').gettext; const _ = imports.gettext.domain('burn-my-windows').gettext;
@@ -23,11 +32,14 @@ const utils = Me.imports.src.utils;
// New effects must be registered here and in extension.js. // New effects must be registered here and in extension.js.
const ALL_EFFECTS = [ const ALL_EFFECTS = [
Me.imports.src.Apparition.Apparition,
Me.imports.src.BrokenGlass.BrokenGlass,
Me.imports.src.EnergizeA.EnergizeA, Me.imports.src.EnergizeA.EnergizeA,
Me.imports.src.EnergizeB.EnergizeB, Me.imports.src.EnergizeB.EnergizeB,
Me.imports.src.Fire.Fire, Me.imports.src.Fire.Fire,
Me.imports.src.Hexagon.Hexagon,
Me.imports.src.Matrix.Matrix, Me.imports.src.Matrix.Matrix,
Me.imports.src.BrokenGlass.BrokenGlass, Me.imports.src.SnapOfDisintegration.SnapOfDisintegration,
Me.imports.src.TRexAttack.TRexAttack, Me.imports.src.TRexAttack.TRexAttack,
Me.imports.src.TVEffect.TVEffect, Me.imports.src.TVEffect.TVEffect,
Me.imports.src.Wisps.Wisps, Me.imports.src.Wisps.Wisps,
@@ -55,13 +67,11 @@ var PreferencesDialog = class PreferencesDialog {
const styleProvider = Gtk.CssProvider.new(); const styleProvider = Gtk.CssProvider.new();
styleProvider.load_from_resource('/css/gtk.css'); styleProvider.load_from_resource('/css/gtk.css');
if (utils.isGTK4()) { if (utils.isGTK4()) {
Gtk.StyleContext.add_provider_for_display( Gtk.StyleContext.add_provider_for_display(Gdk.Display.get_default(), styleProvider,
Gdk.Display.get_default(), styleProvider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
} else { } else {
Gtk.StyleContext.add_provider_for_screen( Gtk.StyleContext.add_provider_for_screen(Gdk.Screen.get_default(), styleProvider,
Gdk.Screen.get_default(), styleProvider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
} }
// Make sure custom icons are found. // Make sure custom icons are found.
@@ -85,26 +95,116 @@ var PreferencesDialog = class PreferencesDialog {
// Bind general options properties. // Bind general options properties.
this.bindSwitch('destroy-dialogs'); this.bindSwitch('destroy-dialogs');
// Add all other effect pages.
const stack = this._builder.get_object('main-stack');
ALL_EFFECTS.forEach(Effect => {
const [minMajor, minMinor] = Effect.getMinShellVersion();
if (utils.shellVersionIsAtLeast(minMajor, minMinor)) {
const page = new BurnMyWindowsEffectPage(Effect, this); // Starting with GNOME Shell 42, the settings dialog uses libadwaita. We have to use a
// different layout, as the stack sidebar looks pretty ugly with the included
// Adw.Clamp...
if (utils.shellVersionIsAtLeast(42, 'beta')) {
// Add the Effect's preferences (if any). // This is our top-level widget which we will return later.
const preferences = Effect.getPreferences(this); this._widget = new Gtk.Box({orientation: Gtk.Orientation.VERTICAL});
if (preferences) {
this.gtkBoxAppend(page, preferences); // Add the general options page to the settings dialog.
const generalPrefs = this._builder.get_object('general-prefs');
this.gtkBoxAppend(this._widget, generalPrefs);
// Then add a preferences group with action rows to open the effect subpages.
const group = new Adw.PreferencesGroup({title: _('Effect Options')});
this.gtkBoxAppend(this._widget, group);
ALL_EFFECTS.forEach(Effect => {
const [minMajor, minMinor] = Effect.getMinShellVersion();
if (utils.shellVersionIsAtLeast(minMajor, minMinor)) {
const row = new Adw.ActionRow({title: Effect.getLabel(), activatable: true});
row.add_suffix(new Gtk.Image({icon_name: 'go-next-symbolic'}));
// Open a subpage with the effect's settings.
row.connect('activated', () => {
const page = new BurnMyWindowsEffectPage(Effect, this);
page.valign = Gtk.Align.CENTER;
page.margin_top = 10;
page.margin_bottom = 10;
page.margin_start = 10;
page.margin_end = 10;
// Add the Effect's preferences (if any).
const preferences = Effect.getPreferences(this);
if (preferences) {
this.gtkBoxAppend(page, preferences);
}
// Add a button for back navigation.
const backButton = new Gtk.Button({
halign: Gtk.Align.CENTER,
label: _('Go Back'),
});
backButton.add_css_class('suggested-action');
backButton.add_css_class('pill-button');
backButton.connect('clicked', () => {
row.get_root().close_subpage();
});
this.gtkBoxAppend(page, backButton);
// Wrap the preferences group in an Adw.Clamp.
const clamp = new Adw.Clamp({
child: page,
maximum_size: 600,
tightening_threshold: 400,
});
// Open the subpage on click.
row.get_root().present_subpage(clamp);
});
group.add(row);
} }
});
stack.add_titled(page, Effect.getNick(), Effect.getLabel()); }
} // On older GNOME versions, we use a StackSidebar.
}); else {
// This is our top-level widget which we will return later. // This is our top-level widget which we will return later.
this._widget = this._builder.get_object('settings-widget'); this._widget = new Gtk.Box({
orientation: Gtk.Orientation.HORIZONTAL,
});
const stack = new Gtk.Stack({
transition_type: Gtk.StackTransitionType.SLIDE_UP_DOWN,
});
// Add the general options page.
const generalPage = this._builder.get_object('general-prefs');
generalPage.margin_start = 60;
generalPage.margin_end = 60;
stack.add_titled(generalPage, 'general', _('General Options'));
this.gtkBoxAppend(this._widget, new Gtk.StackSidebar({stack: stack}));
this.gtkBoxAppend(this._widget, stack);
// Add all other effect pages.
ALL_EFFECTS.forEach(Effect => {
const [minMajor, minMinor] = Effect.getMinShellVersion();
if (utils.shellVersionIsAtLeast(minMajor, minMinor)) {
const page = new BurnMyWindowsEffectPage(Effect, this);
page.margin_start = 60;
page.margin_end = 60;
page.margin_top = 60;
page.margin_bottom = 60;
// Add the Effect's preferences (if any).
const preferences = Effect.getPreferences(this);
if (preferences) {
this.gtkBoxAppend(page, preferences);
}
stack.add_titled(page, Effect.getNick(), Effect.getLabel());
}
});
}
// Some things can only be done once the widget is shown as we do not have access to // Some things can only be done once the widget is shown as we do not have access to
// the toplevel widget before. // the toplevel widget before.
@@ -118,27 +218,81 @@ var PreferencesDialog = class PreferencesDialog {
{ {
// Add the menu button to the title bar. // Add the menu button to the title bar.
const menu = this._builder.get_object('menu-button'); const menu = this._builder.get_object('menu-button');
window.get_titlebar().pack_end(menu);
// Starting with GNOME Shell 42, we have to hack our way through the widget tree
// of the Adw.PreferencesWindow...
if (utils.shellVersionIsAtLeast(42, 'beta')) {
const header = this._findWidgetByType(window.get_content(), Adw.HeaderBar);
header.pack_end(menu);
// Allow closing of the sub pages.
window.can_navigate_back = true;
} else {
window.get_titlebar().pack_end(menu);
}
// Populate the menu with actions. // Populate the menu with actions.
const group = Gio.SimpleActionGroup.new(); const group = Gio.SimpleActionGroup.new();
window.insert_action_group('prefs', group); window.insert_action_group('prefs', group);
const addAction = (name, uri) => { const addURIAction = (name, uri) => {
const action = Gio.SimpleAction.new(name, null); const action = Gio.SimpleAction.new(name, null);
action.connect('activate', () => Gtk.show_uri(null, uri, Gdk.CURRENT_TIME)); action.connect('activate', () => Gtk.show_uri(null, uri, Gdk.CURRENT_TIME));
group.add_action(action); group.add_action(action);
}; };
// clang-format off // clang-format off
addAction('homepage', 'https://github.com/Schneegans/Burn-My-Windows'); addURIAction('homepage', 'https://github.com/Schneegans/Burn-My-Windows');
addAction('changelog', 'https://github.com/Schneegans/Burn-My-Windows/blob/main/docs/changelog.md'); addURIAction('changelog', 'https://github.com/Schneegans/Burn-My-Windows/blob/main/docs/changelog.md');
addAction('bugs', 'https://github.com/Schneegans/Burn-My-Windows/issues'); addURIAction('bugs', 'https://github.com/Schneegans/Burn-My-Windows/issues');
addAction('new-effect', 'https://github.com/Schneegans/Burn-My-Windows/blob/main/docs/how-to-create-new-effects.md'); addURIAction('new-effect', 'https://github.com/Schneegans/Burn-My-Windows/blob/main/docs/how-to-create-new-effects.md');
addAction('translate', 'https://hosted.weblate.org/engage/burn-my-windows/'); addURIAction('translate', 'https://hosted.weblate.org/engage/burn-my-windows/');
addAction('donate-paypal', 'https://www.paypal.com/donate/?hosted_button_id=3F7UFL8KLVPXE'); addURIAction('donate-paypal', 'https://www.paypal.com/donate/?hosted_button_id=3F7UFL8KLVPXE');
addAction('donate-github', 'https://github.com/sponsors/Schneegans'); addURIAction('donate-github', 'https://github.com/sponsors/Schneegans');
// clang-format on // clang-format on
// Add the about dialog.
const aboutAction = Gio.SimpleAction.new('about', null);
aboutAction.connect('activate', () => {
// The JSON report format from weblate is a bit weird. Here we extract all
// unique names from the translation report.
const translators = new Set();
this._getJSONResource('/credits/translators.json').forEach(i => {
for (const j of Object.values(i)) {
j.forEach(k => translators.add(k[1]));
}
});
const sponsors = this._getJSONResource('/credits/sponsors.json');
const dialog = new Gtk.AboutDialog({transient_for: window, modal: true});
dialog.set_logo_icon_name('burn-my-windows-symbolic');
dialog.set_program_name(`Burn-My-Windows ${Me.metadata.version}`);
dialog.set_website('https://github.com/Schneegans/Burn-My-Windows');
dialog.set_authors(['Simon Schneegans']);
dialog.set_copyright('© 2022 Simon Schneegans');
dialog.set_translator_credits([...translators].join('\n'));
if (sponsors.gold.length > 0) {
dialog.add_credit_section(_('Gold Sponsors'), sponsors.gold);
}
if (sponsors.silver.length > 0) {
dialog.add_credit_section(_('Silver Sponsors'), sponsors.silver);
}
if (sponsors.bronze.length > 0) {
dialog.add_credit_section(_('Bronze Sponsors'), sponsors.bronze);
}
if (sponsors.past.length > 0) {
dialog.add_credit_section(_('Past Sponsors'), sponsors.past);
}
dialog.set_license_type(Gtk.License.GPL_3_0);
if (utils.isGTK4()) {
dialog.show();
} else {
dialog.show_all();
}
});
group.add_action(aboutAction);
} }
// Populate the open-effects drop-down menu. // Populate the open-effects drop-down menu.
@@ -301,85 +455,103 @@ var PreferencesDialog = class PreferencesDialog {
this._bindResetButton(settingsKey); this._bindResetButton(settingsKey);
} }
// Reads the contents of a JSON file contained in the global resources archive. The data
// is parsed and returned as a JavaScript object / array.
_getJSONResource(path) {
const data = Gio.resources_lookup_data(path, 0);
const string = ByteArray.toString(ByteArray.fromGBytes(data));
return JSON.parse(string);
}
// This traverses the widget tree below the given parent recursively and returns the
// first widget of the given type.
_findWidgetByType(parent, type) {
for (const child of [...parent]) {
if (child instanceof type) return child;
const match = this._findWidgetByType(child, type);
if (match) return match;
}
return null;
}
// Initializes template widgets used by the preferences dialog. // Initializes template widgets used by the preferences dialog.
_registerCustomClasses() { _registerCustomClasses() {
// Each effect page is based on a template widget. This template contains the title // Each effect page is based on a template widget. This template contains the title
// and the preview button. // and the preview button.
// clang-format off
if (GObject.type_from_name('BurnMyWindowsEffectPage') == null) { if (GObject.type_from_name('BurnMyWindowsEffectPage') == null) {
BurnMyWindowsEffectPage = BurnMyWindowsEffectPage = GObject.registerClass(
GObject.registerClass({ {
GTypeName: 'BurnMyWindowsEffectPage', GTypeName: 'BurnMyWindowsEffectPage',
Template: `resource:///ui/${utils.getGTKString()}/effectPage.ui`, Template: `resource:///ui/${utils.getGTKString()}/effectPage.ui`,
InternalChildren: ['label', 'button'], InternalChildren: ['label', 'button'],
}, },
class BurnMyWindowsEffectPage extends Gtk.Box { class BurnMyWindowsEffectPage extends Gtk.Box { // ------------------------------
_init(Effect, dialog) { _init(Effect, dialog) {
super._init(); super._init();
// Set the effect's name as label. // Set the effect's name as label.
this._label.label = Effect.getLabel(); this._label.label = Effect.getLabel();
// Open the preview window once the preview button is clicked. // Open the preview window once the preview button is clicked.
this._button.connect('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. // Make sure that the window.show() firther below "sees" this change.
dialog.getSettings().set_string('open-preview-effect', Effect.getNick()); Gio.Settings.sync();
dialog.getSettings().set_string('close-preview-effect', Effect.getNick());
// Make sure that the window.show() firther below "sees" this change. // Create the preview-window.
Gio.Settings.sync(); 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. // Add a header bar to the window.
const window = new Gtk.Window({ if (utils.isGTK4()) {
// Translators: %s will be replaced by the effect's name. const header = Gtk.HeaderBar.new();
title: _('Preview for %s').replace("%s", Effect.getLabel()), window.set_titlebar(header);
default_width: 800, }
default_height: 450,
modal: true, const box = new Gtk.Box({
transient_for: utils.isGTK4() ? this._button.get_root() : orientation: Gtk.Orientation.VERTICAL,
this._button.get_toplevel() 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
@@ -0,0 +1 @@
The `translators.json` file is directly exported from weblate.
+20
View File
@@ -0,0 +1,20 @@
{
"gold": [
"<a href='https://github.com/dennis1248'>Dennis ten Hoove</a>"
],
"silver": [
"<a href='https://twitter.com/tjiiik'>tj3k</a>",
"<a href='https://github.com/MRR-dev'>@MRR-dev</a>",
"<a href='https://github.com/castrojo'>Jorge Castro</a>"
],
"bronze": [
"<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>",
"<a href='https://github.com/RickStanley'>@RickStanley</a>"
]
}
+117
View File
@@ -0,0 +1,117 @@
[
{
"Norwegian Bokm\u00e5l": [
[
"epost@anotheragency.no",
"Allan Nordh\u00f8y",
3
]
]
},
{
"Dutch": [
[
"vistausss@fastmail.com",
"Heimen Stoffels",
65
]
]
},
{
"Russian": [
[
"franigoyt@gmail.com",
"ANIGO R. (AR)",
59
]
]
},
{
"Czech": [
[
"jiri.doubravsky@gmail.com",
"Ji\u0159\u00ed Doubravsk\u00fd",
70
]
]
},
{
"Turkish": [
[
"muhaaliss@pm.me",
"Muha Aliss",
57
]
]
},
{
"Italian": [
[
"mario03@gmail.com",
"Mario",
1
],
[
"albano_battistella@hotmail.com",
"albanobattistella",
63
]
]
},
{
"Chinese (Simplified)": [
[
"lyuutau@outlook.com",
"\u5218\u97ec",
36
]
]
},
{
"German": [
[
"code@simonschneegans.de",
"Simon Schneegans",
59
]
]
},
{
"French": [
[
"redxxiii@zaclys.net",
"Reda",
13
],
[
"theo.remon+weblate@uswery.eu",
"Th\u00e9o Remon",
24
],
[
"bonnemainsnathan@gmail.com",
"Nathan",
42
]
]
},
{
"Spanish": [
[
"ulicesah@gmail.com",
"Ulices",
7
],
[
"fitojb@ubuntu.com",
"Adolfo Jayme Barrientos",
11
],
[
"oscfdezdz@tuta.io",
"\u00d3scar Fern\u00e1ndez D\u00edaz",
55
]
]
}
]
Binary file not shown.

After

Width:  |  Height:  |  Size: 434 KiB

+8 -2
View File
@@ -27,14 +27,20 @@
<submenu> <submenu>
<attribute name="label" translatable="yes">Donate</attribute> <attribute name="label" translatable="yes">Donate</attribute>
<item> <item>
<attribute name="label" translatable="yes">Via PayPal</attribute> <attribute name="label">PayPal</attribute>
<attribute name="action">prefs.donate-paypal</attribute> <attribute name="action">prefs.donate-paypal</attribute>
</item> </item>
<item> <item>
<attribute name="label" translatable="yes">Via GitHub</attribute> <attribute name="label">GitHub</attribute>
<attribute name="action">prefs.donate-github</attribute> <attribute name="action">prefs.donate-github</attribute>
</item> </item>
</submenu> </submenu>
</section> </section>
<section>
<item>
<attribute name="label" translatable="yes">About Burn-My-Windows</attribute>
<attribute name="action">prefs.about</attribute>
</item>
</section>
</menu> </menu>
</interface> </interface>
+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"> <object class="GtkAdjustment" id="energize-a-animation-time">
<property name="upper">10000</property> <property name="upper">10000</property>
<property name="lower">500</property> <property name="lower">100</property>
<property name="step-increment">10</property> <property name="step-increment">1</property>
<property name="page-increment">100</property> <property name="page-increment">100</property>
</object> </object>
+2 -2
View File
@@ -3,8 +3,8 @@
<object class="GtkAdjustment" id="energize-b-animation-time"> <object class="GtkAdjustment" id="energize-b-animation-time">
<property name="upper">10000</property> <property name="upper">10000</property>
<property name="lower">500</property> <property name="lower">100</property>
<property name="step-increment">10</property> <property name="step-increment">1</property>
<property name="page-increment">100</property> <property name="page-increment">100</property>
</object> </object>
+2 -2
View File
@@ -3,8 +3,8 @@
<object class="GtkAdjustment" id="fire-animation-time"> <object class="GtkAdjustment" id="fire-animation-time">
<property name="upper">10000</property> <property name="upper">10000</property>
<property name="lower">500</property> <property name="lower">100</property>
<property name="step-increment">10</property> <property name="step-increment">1</property>
<property name="page-increment">100</property> <property name="page-increment">100</property>
</object> </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"> <interface domain="burn-my-windows">
<object class="GtkAdjustment" id="tv-animation-time"> <object class="GtkAdjustment" id="tv-animation-time">
<property name="upper">5000</property> <property name="upper">10000</property>
<property name="lower">100</property> <property name="lower">100</property>
<property name="step-increment">10</property> <property name="step-increment">1</property>
<property name="page-increment">100</property> <property name="page-increment">100</property>
</object> </object>
+2 -2
View File
@@ -3,8 +3,8 @@
<object class="GtkAdjustment" id="wisps-animation-time"> <object class="GtkAdjustment" id="wisps-animation-time">
<property name="upper">10000</property> <property name="upper">10000</property>
<property name="lower">500</property> <property name="lower">100</property>
<property name="step-increment">10</property> <property name="step-increment">1</property>
<property name="page-increment">100</property> <property name="page-increment">100</property>
</object> </object>
+1 -5
View File
@@ -4,10 +4,6 @@
<template class="BurnMyWindowsEffectPage" parent="GtkBox"> <template class="BurnMyWindowsEffectPage" parent="GtkBox">
<property name="orientation">vertical</property> <property name="orientation">vertical</property>
<property name="margin-top">60</property>
<property name="margin-bottom">60</property>
<property name="margin-start">60</property>
<property name="margin-end">60</property>
<property name="hexpand">1</property> <property name="hexpand">1</property>
<property name="spacing">10</property> <property name="spacing">10</property>
@@ -44,8 +40,8 @@
</object> </object>
</child> </child>
<style> <style>
<class name="suggested-action" />
<class name="pill-button" /> <class name="pill-button" />
<class name="flat" />
</style> </style>
</object> </object>
</child> </child>
+176 -203
View File
@@ -17,247 +17,220 @@
</child> </child>
</object> </object>
<object class="GtkBox" id="settings-widget"> <object class="GtkBox" id="general-prefs">
<property name="orientation">vertical</property>
<property name="margin-top">30</property>
<property name="margin-bottom">30</property>
<child> <child>
<object class="GtkStackSidebar"> <object class="GtkImage">
<property name="stack">main-stack</property> <property name="valign">center</property>
<property name="icon-name">burn-my-windows-symbolic</property>
<property name="pixel_size">128</property>
</object> </object>
</child> </child>
<child> <child>
<object class="GtkStack" id="main-stack"> <object class="GtkLabel">
<property name="transition-type">slide-up-down</property> <property name="label" translatable="yes">Welcome to Burn-My-Windows!</property>
<property name="hexpand">1</property> <property name="margin-top">8</property>
<property name="margin-bottom">6</property>
<style>
<class name="large-title" />
</style>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">If you like this extension, recommend it to your friends :)</property>
<property name="margin-bottom">36</property>
</object>
</child>
<child>
<object class="GtkFrame">
<child> <child>
<object class="GtkBox" id="general-prefs"> <object class="GtkListBox">
<property name="orientation">vertical</property> <property name="selection-mode">none</property>
<property name="margin-start">60</property>
<property name="margin-end">60</property>
<property name="margin-top">30</property>
<property name="margin-bottom">30</property>
<child> <child>
<object class="GtkImage"> <object class="GtkListBoxRow">
<property name="valign">center</property> <property name="margin-start">10</property>
<property name="icon-name">burn-my-windows-symbolic</property> <property name="margin-end">10</property>
<property name="pixel_size">128</property> <property name="margin-top">10</property>
</object> <property name="margin-bottom">10</property>
</child> <property name="activatable">0</property>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Welcome to Burn-My-Windows!</property>
<property name="margin-top">8</property>
<property name="margin-bottom">6</property>
<style>
<class name="large-title" />
</style>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">If you like this extension, recommend it to your friends :)</property>
<property name="margin-bottom">36</property>
</object>
</child>
<child>
<object class="GtkFrame">
<child> <child>
<object class="GtkListBox"> <object class="GtkBox">
<property name="selection-mode">none</property> <property name="spacing">8</property>
<child> <child>
<object class="GtkListBoxRow"> <object class="GtkBox">
<property name="margin-start">10</property> <property name="orientation">vertical</property>
<property name="margin-end">10</property> <property name="spacing">3</property>
<property name="margin-top">10</property>
<property name="margin-bottom">10</property>
<property name="activatable">0</property>
<child> <child>
<object class="GtkBox"> <object class="GtkLabel">
<property name="spacing">8</property> <property name="label" translatable="yes">Open Window Animation</property>
<child> <property name="xalign">0</property>
<object class="GtkBox"> <property name="halign">start</property>
<property name="orientation">vertical</property> <property name="valign">center</property>
<property name="spacing">3</property> <property name="hexpand">1</property>
<child> </object>
<object class="GtkLabel"> </child>
<property name="label" translatable="yes">Open Window Animation</property> <child>
<property name="xalign">0</property> <object class="GtkLabel">
<property name="halign">start</property> <property name="label" translatable="yes">If multiple are selected, one is chosen randomly.</property>
<property name="valign">center</property> <property name="xalign">0</property>
<property name="hexpand">1</property> <property name="halign">start</property>
</object> <property name="valign">center</property>
</child> <property name="hexpand">1</property>
<child> <style>
<object class="GtkLabel"> <class name="dim-label" />
<property name="label" translatable="yes">If multiple are selected, one is chosen randomly.</property> <class name="caption" />
<property name="xalign">0</property> </style>
<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="GtkMenuButton" id="open-effect-button">
<property name="menu-model">open-effect-menu</property>
<child>
<object class="GtkBox">
<property name="spacing">8</property>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Choose Effects</property>
</object>
</child>
<child>
<object class="GtkImage">
<property name="icon-name">pan-down-symbolic</property>
<property name="icon-size">1</property>
</object>
</child>
</object>
</child>
</object>
</child>
</object> </object>
</child> </child>
</object> </object>
</child> </child>
<child> <child>
<object class="GtkListBoxRow"> <object class="GtkMenuButton" id="open-effect-button">
<property name="margin-start">10</property> <property name="menu-model">open-effect-menu</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="GtkBox">
<property name="orientation">vertical</property>
<property name="spacing">3</property>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Close Window Animation</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">If multiple are selected, one is chosen randomly.</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="GtkMenuButton" id="close-effect-button">
<property name="menu-model">close-effect-menu</property>
<child>
<object class="GtkBox">
<property name="spacing">8</property>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Choose Effects</property>
</object>
</child>
<child>
<object class="GtkImage">
<property name="icon-name">pan-down-symbolic</property>
<property name="icon-size">1</property>
</object>
</child>
</object>
</child>
</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> <child>
<object class="GtkBox"> <object class="GtkBox">
<property name="spacing">8</property> <property name="spacing">8</property>
<child> <child>
<object class="GtkLabel"> <object class="GtkLabel">
<property name="label" translatable="yes">Also Add Effects to Dialogs</property> <property name="label" translatable="yes">Choose Effects</property>
<property name="xalign">0</property>
<property name="halign">start</property>
<property name="valign">center</property>
<property name="hexpand">1</property>
</object> </object>
</child> </child>
<child> <child>
<object class="GtkSwitch" id="destroy-dialogs"> <object class="GtkImage">
<property name="halign">end</property> <property name="icon-name">pan-down-symbolic</property>
<property name="valign">center</property> <property name="icon-size">1</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-destroy-dialogs">
<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> </object>
</child> </child>
</object> </object>
</child> </child>
</object> </object>
</child> </child>
</object> </object>
</child> </child>
</object> </object>
</child> </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="GtkBox">
<property name="orientation">vertical</property>
<property name="spacing">3</property>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Close Window Animation</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">If multiple are selected, one is chosen randomly.</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="GtkMenuButton" id="close-effect-button">
<property name="menu-model">close-effect-menu</property>
<child>
<object class="GtkBox">
<property name="spacing">8</property>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Choose Effects</property>
</object>
</child>
<child>
<object class="GtkImage">
<property name="icon-name">pan-down-symbolic</property>
<property name="icon-size">1</property>
</object>
</child>
</object>
</child>
</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">Also Add Effects to Dialogs</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="GtkSwitch" id="destroy-dialogs">
<property name="halign">end</property>
<property name="valign">center</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-destroy-dialogs">
<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> </object>
<packing>
<property name="name">general</property>
<property name="title" translatable="yes">General Options</property>
</packing>
</child> </child>
<!-- Stack pages are inserted here -->
</object> </object>
</child> </child>
</object> </object>
</interface> </interface>
+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"> <property name="adjustment">
<object class="GtkAdjustment" id="broken-glass-animation-time"> <object class="GtkAdjustment" id="broken-glass-animation-time">
<property name="upper">10000</property> <property name="upper">10000</property>
<property name="lower">500</property> <property name="lower">100</property>
<property name="step-increment">10</property> <property name="step-increment">1</property>
<property name="page-increment">100</property> <property name="page-increment">100</property>
</object> </object>
</property> </property>
+2 -2
View File
@@ -39,8 +39,8 @@
<property name="adjustment"> <property name="adjustment">
<object class="GtkAdjustment" id="energize-a-animation-time"> <object class="GtkAdjustment" id="energize-a-animation-time">
<property name="upper">10000</property> <property name="upper">10000</property>
<property name="lower">500</property> <property name="lower">100</property>
<property name="step-increment">10</property> <property name="step-increment">1</property>
<property name="page-increment">100</property> <property name="page-increment">100</property>
</object> </object>
</property> </property>
+2 -2
View File
@@ -39,8 +39,8 @@
<property name="adjustment"> <property name="adjustment">
<object class="GtkAdjustment" id="energize-b-animation-time"> <object class="GtkAdjustment" id="energize-b-animation-time">
<property name="upper">10000</property> <property name="upper">10000</property>
<property name="lower">500</property> <property name="lower">100</property>
<property name="step-increment">10</property> <property name="step-increment">1</property>
<property name="page-increment">100</property> <property name="page-increment">100</property>
</object> </object>
</property> </property>
+2 -2
View File
@@ -64,8 +64,8 @@
<property name="adjustment"> <property name="adjustment">
<object class="GtkAdjustment" id="fire-animation-time"> <object class="GtkAdjustment" id="fire-animation-time">
<property name="upper">10000</property> <property name="upper">10000</property>
<property name="lower">500</property> <property name="lower">100</property>
<property name="step-increment">10</property> <property name="step-increment">1</property>
<property name="page-increment">100</property> <property name="page-increment">100</property>
</object> </object>
</property> </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"> <property name="adjustment">
<object class="GtkAdjustment" id="matrix-animation-time"> <object class="GtkAdjustment" id="matrix-animation-time">
<property name="upper">10000</property> <property name="upper">10000</property>
<property name="lower">500</property> <property name="lower">100</property>
<property name="step-increment">10</property> <property name="step-increment">1</property>
<property name="page-increment">100</property> <property name="page-increment">100</property>
</object> </object>
</property> </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"> <property name="adjustment">
<object class="GtkAdjustment" id="trex-animation-time"> <object class="GtkAdjustment" id="trex-animation-time">
<property name="upper">10000</property> <property name="upper">10000</property>
<property name="lower">500</property> <property name="lower">100</property>
<property name="step-increment">10</property> <property name="step-increment">1</property>
<property name="page-increment">100</property> <property name="page-increment">100</property>
</object> </object>
</property> </property>
+2 -2
View File
@@ -38,9 +38,9 @@
<property name="width-request">300</property> <property name="width-request">300</property>
<property name="adjustment"> <property name="adjustment">
<object class="GtkAdjustment" id="tv-animation-time"> <object class="GtkAdjustment" id="tv-animation-time">
<property name="upper">5000</property> <property name="upper">10000</property>
<property name="lower">100</property> <property name="lower">100</property>
<property name="step-increment">10</property> <property name="step-increment">1</property>
<property name="page-increment">100</property> <property name="page-increment">100</property>
</object> </object>
</property> </property>
+2 -2
View File
@@ -39,8 +39,8 @@
<property name="adjustment"> <property name="adjustment">
<object class="GtkAdjustment" id="wisps-animation-time"> <object class="GtkAdjustment" id="wisps-animation-time">
<property name="upper">10000</property> <property name="upper">10000</property>
<property name="lower">500</property> <property name="lower">100</property>
<property name="step-increment">10</property> <property name="step-increment">1</property>
<property name="page-increment">100</property> <property name="page-increment">100</property>
</object> </object>
</property> </property>
+1 -5
View File
@@ -4,10 +4,6 @@
<template class="BurnMyWindowsEffectPage" parent="GtkBox"> <template class="BurnMyWindowsEffectPage" parent="GtkBox">
<property name="orientation">vertical</property> <property name="orientation">vertical</property>
<property name="margin-top">60</property>
<property name="margin-bottom">60</property>
<property name="margin-start">60</property>
<property name="margin-end">60</property>
<property name="hexpand">1</property> <property name="hexpand">1</property>
<property name="spacing">10</property> <property name="spacing">10</property>
@@ -44,8 +40,8 @@
</object> </object>
</property> </property>
<style> <style>
<class name="suggested-action" />
<class name="pill-button" /> <class name="pill-button" />
<class name="flat" />
</style> </style>
</object> </object>
</child> </child>
+144 -172
View File
@@ -10,203 +10,175 @@
<property name="icon-name">open-menu-symbolic</property> <property name="icon-name">open-menu-symbolic</property>
</object> </object>
<object class="GtkBox" id="settings-widget"> <object class="GtkBox" id="general-prefs">
<property name="orientation">vertical</property>
<property name="margin-top">60</property>
<property name="margin-bottom">60</property>
<child> <child>
<object class="GtkStackSidebar"> <object class="GtkImage">
<property name="stack">main-stack</property> <property name="valign">center</property>
<property name="icon-name">burn-my-windows-symbolic</property>
<property name="pixel_size">128</property>
</object> </object>
</child> </child>
<child> <child>
<object class="GtkStack" id="main-stack"> <object class="GtkLabel">
<property name="transition-type">slide-up-down</property> <property name="label" translatable="yes">Welcome to Burn-My-Windows!</property>
<property name="hexpand">1</property> <property name="margin-top">8</property>
<property name="margin-bottom">6</property>
<style>
<class name="large-title" />
</style>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">If you like this extension, recommend it to your friends :)</property>
<property name="margin-bottom">36</property>
</object>
</child>
<child>
<object class="GtkFrame">
<child> <child>
<object class="GtkStackPage"> <object class="GtkListBox">
<property name="name">general</property> <property name="selection-mode">none</property>
<property name="title" translatable="yes">General Options</property> <property name="show-separators">1</property>
<style>
<class name="rich-list" />
</style>
<property name="child">
<object class="GtkBox" id="general-prefs">
<property name="orientation">vertical</property>
<property name="margin-start">60</property>
<property name="margin-end">60</property>
<property name="margin-top">60</property>
<property name="margin-bottom">60</property>
<child>
<object class="GtkListBoxRow">
<property name="activatable">0</property>
<child> <child>
<object class="GtkImage"> <object class="GtkBox">
<property name="valign">center</property>
<property name="icon-name">burn-my-windows-symbolic</property>
<property name="pixel_size">128</property>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Welcome to Burn-My-Windows!</property>
<property name="margin-top">8</property>
<property name="margin-bottom">6</property>
<style>
<class name="large-title" />
</style>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">If you like this extension, recommend it to your friends :)</property>
<property name="margin-bottom">36</property>
</object>
</child>
<child>
<object class="GtkFrame">
<child> <child>
<object class="GtkListBox"> <object class="GtkBox">
<property name="selection-mode">none</property> <property name="orientation">vertical</property>
<property name="show-separators">1</property> <property name="spacing">3</property>
<style>
<class name="rich-list" />
</style>
<child> <child>
<object class="GtkListBoxRow"> <object class="GtkLabel">
<property name="activatable">0</property> <property name="label" translatable="yes">Open Window Animation</property>
<child> <property name="xalign">0</property>
<object class="GtkBox"> <property name="halign">start</property>
<child> <property name="valign">center</property>
<object class="GtkBox"> <property name="hexpand">1</property>
<property name="orientation">vertical</property>
<property name="spacing">3</property>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Open Window Animation</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">If multiple are selected, one is chosen randomly.</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="GtkMenuButton" id="open-effect-button">
<property name="label" translatable="yes">Choose Effects</property>
<property name="menu-model">open-effect-menu</property>
</object>
</child>
</object>
</child>
</object> </object>
</child> </child>
<child> <child>
<object class="GtkListBoxRow"> <object class="GtkLabel">
<property name="activatable">0</property> <property name="label" translatable="yes">If multiple are selected, one is chosen randomly.</property>
<child> <property name="xalign">0</property>
<object class="GtkBox"> <property name="halign">start</property>
<child> <property name="valign">center</property>
<object class="GtkBox"> <property name="hexpand">1</property>
<property name="orientation">vertical</property> <style>
<property name="spacing">3</property> <class name="dim-label" />
<child> <class name="caption" />
<object class="GtkLabel"> </style>
<property name="label" translatable="yes">Close Window Animation</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">If multiple are selected, one is chosen randomly.</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="GtkMenuButton" id="close-effect-button">
<property name="label" translatable="yes">Choose Effects</property>
<property name="menu-model">close-effect-menu</property>
</object>
</child>
</object>
</child>
</object> </object>
</child> </child>
</object>
<child> </child>
<object class="GtkListBoxRow"> <child>
<property name="activatable">0</property> <object class="GtkMenuButton" id="open-effect-button">
<child> <property name="label" translatable="yes">Choose Effects</property>
<object class="GtkBox"> <property name="menu-model">open-effect-menu</property>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Also Add Effects to Dialogs</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="GtkSwitch" id="destroy-dialogs">
<property name="halign">end</property>
<property name="valign">center</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-destroy-dialogs">
<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> </object>
</child> </child>
</object> </object>
</child> </child>
</object> </object>
</property> </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">Close Window Animation</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">If multiple are selected, one is chosen randomly.</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="GtkMenuButton" id="close-effect-button">
<property name="label" translatable="yes">Choose Effects</property>
<property name="menu-model">close-effect-menu</property>
</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">Also Add Effects to Dialogs</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="GtkSwitch" id="destroy-dialogs">
<property name="halign">end</property>
<property name="valign">center</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-destroy-dialogs">
<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> </object>
</child> </child>
<!-- Stack pages are inserted here -->
</object> </object>
</child> </child>
</object> </object>
</interface> </interface>
@@ -25,6 +25,58 @@
<description>The effect with this nick will be used for the next window-open animation.</description> <description>The effect with this nick will be used for the next window-open animation.</description>
</key> </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 --> <!-- Fire Options -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
@@ -221,6 +273,58 @@
<description>Number of claw scratches drawn on top of each other.</description> <description>Number of claw scratches drawn on top of each other.</description>
</key> </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 --> <!-- Energize A Options -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
@@ -369,6 +473,40 @@
<description>Use the pointer location for the broken glass effect.</description> <description>Use the pointer location for the broken glass effect.</description>
</key> </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> </schema>
</schemalist> </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! // 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'); const shardData = GdkPixbuf.Pixbuf.new_from_resource('/img/shards.png');
this._shardTexture = new Clutter.Image(); this._shardTexture = new Clutter.Image();
this._shardTexture.set_data( this._shardTexture.set_data(shardData.get_pixels(), Cogl.PixelFormat.RGB_888,
shardData.get_pixels(), Cogl.PixelFormat.RGB_888, shardData.width, shardData.width, shardData.height, shardData.rowstride);
shardData.height, shardData.rowstride);
// Usually, the shards fly away from the center of the window. // Usually, the shards fly away from the center of the window.
let epicenterX = 0.5; let epicenterX = 0.5;
let epicenterY = 0.5; let epicenterY = 0.5;
// However, if this option is set, we use the mouse pointer position. // 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 [x, y] = global.get_pointer();
const [ok, localX, localY] = actor.transform_stage_point(x, y); 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(` this.set_shader_source(`
// Inject some common shader snippets. // Inject some common shader snippets.
@@ -157,7 +162,8 @@ if (utils.isInShellProcess()) {
uniform sampler2D uShardTexture; 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_SCALE = ${settings.get_double('broken-glass-scale')};
const float SHARD_LAYERS = 5; const float SHARD_LAYERS = 5;
const float BLOW_FORCE = ${settings.get_double('broken-glass-blow-force')}; const float BLOW_FORCE = ${settings.get_double('broken-glass-blow-force')};
@@ -228,8 +234,8 @@ if (utils.isInShellProcess()) {
const pipeline = this.get_pipeline(); const pipeline = this.get_pipeline();
// Use linear filtering for the window texture. // Use linear filtering for the window texture.
pipeline.set_layer_filters( pipeline.set_layer_filters(0, Cogl.PipelineFilter.LINEAR,
0, Cogl.PipelineFilter.LINEAR, Cogl.PipelineFilter.LINEAR); Cogl.PipelineFilter.LINEAR);
// Bind the shard texture. // Bind the shard texture.
pipeline.set_layer_texture(1, this._shardTexture.get_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]; 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(` this.set_shader_source(`
// Inject some common shader snippets. // Inject some common shader snippets.
@@ -124,7 +127,8 @@ if (utils.isInShellProcess()) {
${shaderSnippets.noise()} ${shaderSnippets.noise()}
${shaderSnippets.edgeMask()} ${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_IN_TIME = 0.3;
const float FADE_OUT_TIME = 0.6; const float FADE_OUT_TIME = 0.6;
const float HEART_FADE_TIME = 0.3; 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]; 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(` this.set_shader_source(`
// Inject some common shader snippets. // Inject some common shader snippets.
@@ -124,7 +127,8 @@ if (utils.isInShellProcess()) {
${shaderSnippets.noise()} ${shaderSnippets.noise()}
${shaderSnippets.edgeMask()} ${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_TIME = 0.3;
const float SHOWER_WIDTH = 0.3; const float SHOWER_WIDTH = 0.3;
const float STREAK_TIME = 0.6; const float STREAK_TIME = 0.6;
+3 -3
View File
@@ -124,7 +124,7 @@ var Fire = class Fire {
// This populates the preset dropdown menu for the fire options. // This populates the preset dropdown menu for the fire options.
static _createFirePresets(dialog) { static _createFirePresets(dialog) {
dialog.getBuilder().get_object('settings-widget').connect('realize', (widget) => { dialog.getBuilder().get_object('fire-prefs').connect('realize', (widget) => {
const presets = [ const presets = [
{ {
name: _('Default Fire'), name: _('Default Fire'),
@@ -233,9 +233,9 @@ if (utils.isInShellProcess()) {
const gradient = []; const gradient = [];
for (let i = 1; i <= 5; i++) { for (let i = 1; i <= 5; i++) {
const color = 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}, ${ 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(` 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'); const fontData = GdkPixbuf.Pixbuf.new_from_resource('/img/matrixFont.png');
this._fontTexture = new Clutter.Image(); this._fontTexture = new Clutter.Image();
this._fontTexture.set_data( this._fontTexture.set_data(
fontData.get_pixels(), fontData.get_pixels(),
fontData.has_alpha ? Cogl.PixelFormat.RGBA_8888 : Cogl.PixelFormat.RGB_888, fontData.has_alpha ? Cogl.PixelFormat.RGBA_8888 : Cogl.PixelFormat.RGB_888,
fontData.width, fontData.height, fontData.rowstride); fontData.width, fontData.height, fontData.rowstride);
const trailColor = 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 = 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 // The technique for this effect was inspired by
// https://www.shadertoy.com/view/ldccW4, however the implementation is quite // 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. // See assets/README.md for how this texture was created.
const clawData = GdkPixbuf.Pixbuf.new_from_resource('/img/claws.png'); const clawData = GdkPixbuf.Pixbuf.new_from_resource('/img/claws.png');
this._clawTexture = new Clutter.Image(); this._clawTexture = new Clutter.Image();
this._clawTexture.set_data( this._clawTexture.set_data(clawData.get_pixels(), Cogl.PixelFormat.RGB_888,
clawData.get_pixels(), Cogl.PixelFormat.RGB_888, clawData.width, clawData.width, clawData.height, clawData.rowstride);
clawData.height, clawData.rowstride);
const color = 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(` this.set_shader_source(`
@@ -141,7 +143,8 @@ if (utils.isInShellProcess()) {
// See assets/README.md for how this texture was created. // See assets/README.md for how this texture was created.
uniform sampler2D uClawTexture; 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 CLAW_SIZE = ${settings.get_double('claw-scratch-scale')};
const float NUM_CLAWS = ${settings.get_int('claw-scratch-count')}; const float NUM_CLAWS = ${settings.get_int('claw-scratch-count')};
const float WARP_INTENSITY = 1.0 + ${settings.get_double('claw-scratch-warp')}; 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]; 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(` this.set_shader_source(`
// Inject some common shader snippets. // Inject some common shader snippets.
@@ -125,7 +128,8 @@ if (utils.isInShellProcess()) {
${shaderSnippets.noise()} ${shaderSnippets.noise()}
${shaderSnippets.edgeMask()} ${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_RADIUS = 20.0;
const float WISPS_SPEED = 10.0; const float WISPS_SPEED = 10.0;
const float WISPS_SPACING = 40 + WISPS_RADIUS; 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 // 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 // the window's borders. There is a variant which takes the transition area width in
// pixels and one which takes this as a percentage. // pixels and one which takes this as a percentage.
+18 -4
View File
@@ -15,8 +15,22 @@
const {Gtk} = imports.gi; 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 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 ExtensionUtils = imports.misc.extensionUtils;
const Me = imports.misc.extensionUtils.getCurrentExtension(); const Me = imports.misc.extensionUtils.getCurrentExtension();
@@ -60,18 +74,18 @@ function isInShellProcess() {
// This method returns true if the current GNOME Shell version matches the given // This method returns true if the current GNOME Shell version matches the given
// arguments. // arguments.
function shellVersionIs(major, minor) { 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 // 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) { function shellVersionIsAtLeast(major, minor) {
if (GS_MAJOR > major) { if (GS_MAJOR > major) {
return true; return true;
} }
if (GS_MAJOR == major) { if (GS_MAJOR == major) {
return GS_MINOR >= minor; return GS_MINOR >= toNumericVersion(minor);
} }
return false; 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

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