Compare commits

...

532 Commits

Author SHA1 Message Date
Simon Schneegans 38f67dc8cd 🎉 Add dominat color extractor
Checks / Check Clang-Format (push) Has been cancelled
Checks / Check Comment Percentage (push) Has been cancelled
Checks / Run ShellCheck (push) Has been cancelled
Checks / Run Tests (gnome-wayland-nested, 32) (push) Has been cancelled
Checks / Run Tests (gnome-wayland-nested, 33) (push) Has been cancelled
Checks / Run Tests (gnome-wayland-nested, 34) (push) Has been cancelled
Checks / Run Tests (gnome-wayland-nested, 35) (push) Has been cancelled
Checks / Run Tests (gnome-wayland-nested, 36) (push) Has been cancelled
2022-05-21 11:08:50 +02:00
Simon Schneegans 703f990f7f ♻️ Remove redundant class names 2022-05-19 08:21:20 +02:00
fawaz006 8d8779130c 🌐 Translated using Weblate (Arabic) 2022-05-19 08:11:39 +02:00
fawaz006 83658510af 🌐 Added translation using Weblate (Arabic) 2022-05-19 08:11:39 +02:00
Simon Schneegans 76aa003d99 🔀 Merge pull request #149 from Schneegans/fix/#63 2022-05-16 07:50:16 +02:00
Simon Schneegans 1a14b8bd56 📝 Add changelog entry 2022-05-16 07:41:05 +02:00
Simon Schneegans de190b4fd9 🔧 Pass window padding to the shaders 2022-05-16 07:38:09 +02:00
Simon Schneegans 812fa6612a 🔀 Merge pull request #148 from Schneegans/refactor/base-classes 2022-05-16 05:30:07 +02:00
Simon Schneegans 18a43390b6 🔧 Temporarily disable X11 tests 2022-05-15 21:29:26 +02:00
Simon Schneegans 6af87f727d 🔧 PAss all arguments of vfunc 2022-05-15 21:23:30 +02:00
Simon Schneegans 8dbfa5fdb1 🔧 Add debug output 2022-05-15 21:12:28 +02:00
Simon Schneegans e0d9ed5677 🔧 Try tweaking test timings 2022-05-15 20:58:40 +02:00
Simon Schneegans 6e65f29bb3 🔧 Update test references 2022-05-15 14:17:34 +02:00
Simon Schneegans eb597cffbe 🔧 Fix test time 2022-05-15 14:17:25 +02:00
Simon Schneegans be88a682b9 🔧 Update test references 2022-05-15 13:31:42 +02:00
Simon Schneegans fa09a1f40a 🔧 Try fix CI 2022-05-15 12:55:30 +02:00
Simon Schneegans 1262089e82 📝 Update tutorial 2022-05-14 21:09:19 +02:00
Simon Schneegans 0da73cf675 ✨ Format code 2022-05-14 20:53:25 +02:00
Simon Schneegans a228dc7b2e 🔥 Remove obsolete class 2022-05-14 20:51:09 +02:00
Simon Schneegans e6a6a0d831 🔧 Update test references 2022-05-14 20:48:45 +02:00
Simon Schneegans 0fb05c66eb 🔧 Remove paint-target signal 2022-05-14 20:48:34 +02:00
Simon Schneegans e1017b7707 🔧 Use factory to create shaders 2022-05-14 13:58:28 +02:00
Simon Schneegans cb4b87811e ♻️ Add base classes for the effects and shaders 2022-05-13 20:39:45 +02:00
Simon Schneegans 1ccc34f766 🔀 Merge pull request #146 from Schneegans/refactor/shader-resources
Move shader code to GLSL files
2022-05-13 09:49:59 +02:00
Simon Schneegans 1fe20971f8 🔧 Replace replaceAll() by replace() 2022-05-13 09:36:24 +02:00
Simon Schneegans 7ee6e2c58c 🪲 Fix regex 2022-05-13 09:24:47 +02:00
Simon Schneegans 7b8d6e18b2 ♻️ Use a single GLSL files for each effect 2022-05-13 09:17:26 +02:00
Simon Schneegans 84d5ad9caf 🔀 Merge branch 'main' into refactor/shader-resources 2022-05-13 08:38:14 +02:00
Simon Schneegans 46cc997e2a 🚚 Move shader code to GLSL files 2022-05-13 08:27:09 +02:00
Simon Schneegans 829cc49e3c 🔀 Merge pull request #145 from Schneegans/refactor/transition-tweaking 2022-05-13 05:45:41 +02:00
Simon Schneegans a134449706 🔧 Update test references 2022-05-13 05:40:36 +02:00
Simon Schneegans 5b89db0c4b 📝 Add changelog entry 2022-05-12 21:14:25 +02:00
Simon Schneegans 351838b121 🔧 Update test references 2022-05-12 21:12:25 +02:00
Simon Schneegans f59d354729 🔧 Use clutter version of easing 2022-05-12 21:07:23 +02:00
Simon Schneegans 9d7d912261 ♻️ Simplify transition tweaking 2022-05-12 05:48:14 +02:00
obslsessed 77d5de7b8e 🌐 Translated using Weblate (Swedish) 2022-05-11 20:23:49 +02:00
Kristoffer Grundström 2238a744f3 🌐 Translated using Weblate (Swedish) 2022-05-11 20:23:49 +02:00
Muha Aliss 539fd59e9b 🌐 Translated using Weblate (Turkish) 2022-05-11 20:23:49 +02:00
Simon Schneegans a42e2736db 🔀 Merge pull request #143 from Schneegans/feature/refactor-common-uniforms 2022-05-11 05:51:17 +02:00
Simon Schneegans 2eca2c7374 🚚 Move uForOpening to standard uniforms 2022-05-11 05:44:36 +02:00
Simon Schneegans 2bd897fe0e 📝 Update tutorial 2022-05-11 05:33:37 +02:00
Simon Schneegans 1347fc4d11 🔧 Use vec2 for size uniform 2022-05-11 05:33:25 +02:00
Simon Schneegans afaeebd0ab 🔀 Merge pull request #139 from Schneegans/feature/reuse-shaders 2022-05-11 05:30:36 +02:00
Simon Schneegans 7e33e1ce4a 🔧 Update test reference files 2022-05-11 05:26:07 +02:00
Simon Schneegans 2f1c38afc2 🔧 Update test reference files 2022-05-11 05:19:14 +02:00
Simon Schneegans 295aa1e362 📝 Add changelog entry 2022-05-11 05:07:18 +02:00
Simon Schneegans d224d14db1 🔧 Convert window texture alpha from premultiplied to straight 2022-05-11 04:59:58 +02:00
Simon Schneegans 478ba77288 📝 Update tutorial 2022-05-11 04:57:19 +02:00
Simon Schneegans 3175c289b5 🔧 Remove old shader if a new one is to be applied 2022-05-11 04:57:07 +02:00
Simon Schneegans 78679ef139 🔧 Fix straight alpha 2022-05-08 20:49:29 +02:00
Simon Schneegans fa8e3a17c1 🔧 Add compositing snippet 2022-05-08 14:15:54 +02:00
Simon Schneegans 88a56998d6 🔧 Fix straight alpha 2022-05-08 14:15:43 +02:00
Simon Schneegans 6555a8f02c 🔧 Fix straight alpha 2022-05-08 13:56:21 +02:00
Simon Schneegans a28e406da4 🔧 Fix straight alpha 2022-05-08 13:52:16 +02:00
Simon Schneegans 317eaa2969 🔧 Fix memory leaks of more effects 2022-05-08 13:09:02 +02:00
Simon Schneegans 61bea04018 🔧 Fix memory leaks of more effects 2022-05-08 12:31:20 +02:00
Simon Schneegans 6ebc975a20 📝 Add changelog entry 2022-05-07 21:09:19 +02:00
Simon Schneegans 9f8f2afead 🪲 Fix close-animation of windows which were opened before the session was started 2022-05-07 21:07:50 +02:00
Simon Schneegans 472317612c ♻️ Rename some variables 2022-05-07 20:52:07 +02:00
Simon Schneegans e9b82d0b78 🔧 Prevent non-fatal error message 2022-05-07 20:45:20 +02:00
Simon Schneegans 07929e1775 🔧 Use float for window size uniforms 2022-05-07 12:35:52 +02:00
Simon Schneegans e20bcd46d7 🔧 Use an array of effect instances 2022-05-05 21:17:03 +02:00
Simon Schneegans 3b0be6236c ♻️ Make it possible to reuse the hexagon shader 2022-05-04 21:32:21 +02:00
Simon Schneegans 27d2a43c99 ♻️ Make it possible to reuse the fire shader 2022-05-04 21:10:04 +02:00
matb 06aa705f43 🌐 Translated using Weblate (French) 2022-05-02 15:44:54 +02:00
Simon Schneegans fa9941ce5b 🔧 Set uniforms only once 2022-05-01 13:25:37 +02:00
Simon Schneegans c0b1115b23 💞 Add new sponsor 2022-04-29 20:02:25 +02:00
Muha Aliss 2ba7b181da 🌐 Translated using Weblate (Turkish) 2022-04-23 12:57:06 +02:00
matb e2e3425720 🌐 Translated using Weblate (French) 2022-04-23 12:57:06 +02:00
Simon Schneegans b7d72d35ed 🔧 Use tagged version of dynamic-badges-action 2022-04-18 14:00:34 +02:00
Simon Schneegans 256e6db158 🔧 Use new color range feature of dynamic-badges-action 2022-04-18 13:41:28 +02:00
albanobattistella e0aebca055 🌐 Translated using Weblate (Italian) 2022-04-16 13:15:32 +02:00
Егор Ермаков cde4e73645 🌐 Translated using Weblate (Russian) 2022-04-16 13:15:32 +02:00
Simon Schneegans 83b583dd13 📝 Update links in source code 2022-04-16 13:14:40 +02:00
Simon Schneegans c459d06f53 💞 Update sponsors 2022-04-13 21:17:10 +02:00
Kristoffer Grundström c49615a504 🌐 Translated using Weblate (Swedish) 2022-04-11 20:48:04 +02:00
Allan Nordhøy 6605fd0cae 🌐 Translated using Weblate (Norwegian Bokmål) 2022-04-11 20:48:04 +02:00
Kristoffer Grundström 6bf5970b90 🌐 Added translation using Weblate (Swedish) 2022-04-10 07:11:21 +02:00
Simon Schneegans 57e8e0384b 📝 Fix typo 2022-04-09 13:48:40 +02:00
Simon Schneegans c82f5dabd8 📝 Add changelog entry 2022-04-09 13:15:39 +02:00
Simon Schneegans 7cecc9e160 🪲 Ceck for presence of libadwaita 2022-04-09 13:13:39 +02:00
Jiri Grönroos 9b2e57cba0 🌐 Translated using Weblate (Finnish) 2022-04-09 12:54:07 +02:00
merelymyself 2dac407959 🌐 Translated using Weblate (Chinese (Simplified)) 2022-04-09 12:54:07 +02:00
Óscar Fernández Díaz 9c1139b3af 🌐 Translated using Weblate (Spanish) 2022-04-09 12:54:07 +02:00
Théo Remon ab990b1a05 🌐 Translated using Weblate (French) 2022-04-09 12:54:07 +02:00
Nathan d0f624ab5f 🌐 Translated using Weblate (French) 2022-04-09 12:54:07 +02:00
Andres Segarra b2a4aec1c3 🌐 Translated using Weblate (Spanish) 2022-04-06 20:09:12 +02:00
Jiri Grönroos 999b6800a9 🌐 Added translation using Weblate (Finnish) 2022-04-06 13:13:37 +02:00
Simon Schneegans 77505c5aa9 🎉 Bump version number 2022-04-06 07:40:42 +02:00
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 784e2f3d9e 📝 Tweak changelog
Deploy / Extension Bundle (push) Has been cancelled
2022-01-31 05:58:04 +01:00
Simon Schneegans 1128370b83 Merge branch 'main' of github.com:Schneegans/Burn-My-Windows 2022-01-31 05:56:26 +01:00
Simon Schneegans 289bf81046 📝 Set release date 2022-01-31 05:56:21 +01:00
albanobattistella 11030d4552 🌐 Translated using Weblate (Italian) 2022-01-31 05:49:22 +01:00
albanobattistella 013d2fbcdf 🌐 Added translation using Weblate (Italian) 2022-01-31 05:41:48 +01:00
Simon Schneegans 98724af986 📝 Rephrase some changelog entries 2022-01-30 05:43:20 +01:00
Simon Schneegans bd05a3c6b6 📝 Update guide 2022-01-30 05:40:14 +01:00
Allan Nordhøy 28916e4901 🌐 Translated using Weblate (Norwegian Bokmål) 2022-01-30 05:21:32 +01:00
Allan Nordhøy 3ad2ddd516 🌐 Added translation using Weblate (Norwegian Bokmål) 2022-01-30 05:21:32 +01:00
Simon Schneegans 3f41dd0f94 🎉 Add advanced CI tests 2022-01-29 13:52:27 +01:00
Simon Schneegans fa6c7b566a 🔧 Attempt to fix occasionally corrupted windows 2022-01-29 13:30:34 +01:00
Simon Schneegans 531dfdb162 📝 Fix typo 2022-01-29 06:07:31 +01:00
Simon Schneegans 571af02170 📝 Show loc badges in README 2022-01-29 06:05:08 +01:00
Simon Schneegans 4aaf6a1823 Merge branch 'main' of github.com:Schneegans/Burn-My-Windows 2022-01-29 05:59:44 +01:00
Simon Schneegans 086f17f8b6 🎉 Add badges workflow 2022-01-29 05:59:39 +01:00
Simon Schneegans 7d1e175f54 🌐 Translated using Weblate (German) 2022-01-29 05:43:59 +01:00
Hosted Weblate 321df91031 🌐 Update translation files 2022-01-29 05:43:59 +01:00
Simon Schneegans e9e34c4984 🌐 Update translation template 2022-01-29 05:41:11 +01:00
Simon Schneegans d627048146 Merge branch 'feature/locales' 2022-01-29 05:40:35 +01:00
Simon Schneegans e56a56d11c 🔧 Add translation link to menu 2022-01-29 05:40:07 +01:00
Simon Schneegans 5a858b3270 🔀 Merge pull request #76 from Schneegans/feature/locales 2022-01-29 05:32:28 +01:00
Simon Schneegans 58a97d03a3 📝 Add some README links 2022-01-29 05:30:16 +01:00
Simon Schneegans 87b6fb7bd2 📝 Add changelog entry 2022-01-29 05:28:32 +01:00
Simon Schneegans 47580a5935 📝 Add weblate badge 2022-01-29 05:27:21 +01:00
Simon Schneegans 50c86229c0 🪲 Fix CI 2022-01-29 05:23:43 +01:00
Simon Schneegans 805680b4e5 🌐 Translated using Weblate (German) 2022-01-28 21:28:37 +01:00
Hosted Weblate 4e0c7a312d 🌐 Update translation files 2022-01-28 21:28:37 +01:00
Simon Schneegans c3949f961d 🌐 Update translation template 2022-01-28 21:26:24 +01:00
Simon Schneegans 3b164d5128 🔧 Make more strings translatable 2022-01-28 21:26:13 +01:00
Simon Schneegans 27305238df 🌐 Translated using Weblate (German) 2022-01-28 21:20:06 +01:00
Hosted Weblate 3894e4c97a 🌐 Update translation files 2022-01-28 21:20:06 +01:00
Hosted Weblate 0c4ed02e26 🌐 Update translation files 2022-01-28 21:20:06 +01:00
Simon Schneegans 95d7e4932b 🌐 Update translation template 2022-01-28 20:54:56 +01:00
Simon Schneegans 1dadccd9b5 🔧 Make fire preset names translatable 2022-01-28 20:54:36 +01:00
Simon Schneegans 57960ef0c8 🌐 Update translation template 2022-01-28 20:41:07 +01:00
Simon Schneegans fea441000d 🔧 MAke effect names translatable 2022-01-28 20:40:46 +01:00
Simon Schneegans 65969ce7a6 🔧 Add translation domains 2022-01-28 20:29:38 +01:00
Simon Schneegans e92ab9fe18 💄 Improve appearance of preview window 2022-01-28 20:26:28 +01:00
Simon Schneegans b92c4613c1 🌐 Translated using Weblate (German) 2022-01-28 20:11:11 +01:00
Hosted Weblate 59cf2f89ca 🌐 Update translation files 2022-01-28 20:11:11 +01:00
Hosted Weblate 58244cfbb4 🌐 Update translation files 2022-01-28 20:11:11 +01:00
J. Lavoie 9d324bfff3 🌐 Added translation using Weblate (French) 2022-01-28 20:11:11 +01:00
Simon Schneegans 357c506370 🔧 Add another translatable string 2022-01-28 20:09:19 +01:00
Simon Schneegans b95fbac409 🌐 Translated using Weblate (German) 2022-01-28 15:08:05 +01:00
Simon Schneegans a3fa8254f7 🌐 Added translation using Weblate (German) 2022-01-28 15:08:05 +01:00
Simon Schneegans f9b6f1ffbc 🔧 Load translations 2022-01-28 15:00:35 +01:00
Simon Schneegans fc902f2a73 🌐 Update translation template 2022-01-28 15:00:22 +01:00
Simon Schneegans 1692be778c 🌐 Add initial translation template 2022-01-28 14:35:23 +01:00
Simon Schneegans d014ec2841 🔧 Compile locales 2022-01-28 14:35:04 +01:00
Simon Schneegans 6ff16dc693 🔀 Merge pull request #71 from Schneegans/feature/fixes 2022-01-28 14:05:45 +01:00
Simon Schneegans c41bef6413 🪲 Fix occasional empty window 2022-01-28 14:04:40 +01:00
Simon Schneegans bcb7619d37 🔧 Disconnect from transitions-completed 2022-01-28 07:54:20 +01:00
Simon Schneegans f87a0a649b 🔧 Use opacity transition for uProgress 2022-01-28 07:50:10 +01:00
Simon Schneegans 51ba0d06ab 📝 Improve comments 2022-01-28 07:49:48 +01:00
Simon Schneegans dcaa28c200 🔧 Improve timing of energize b 2022-01-27 21:43:55 +01:00
Simon Schneegans 765cf6d54c 🔧 Improve timing of tv effect 2022-01-27 21:40:58 +01:00
Simon Schneegans 7b7b5cbb46 🔧 Improve timing of trex attack 2022-01-27 21:34:11 +01:00
Simon Schneegans bc2f39fac8 🔧 Improve timing of energize b 2022-01-27 21:33:53 +01:00
Simon Schneegans c9000fcad7 🪲 Fix blending of fire shader 2022-01-27 21:33:33 +01:00
Simon Schneegans 6914771bb5 🔀 Merge pull request #69 from Schneegans/feature/reverse 2022-01-27 21:01:10 +01:00
Simon Schneegans e2d9015490 📝 Add plenty of comments 2022-01-27 20:59:02 +01:00
Simon Schneegans acff1da6c2 🪲 Prevent registering the same type twice 2022-01-27 06:53:30 +01:00
Simon Schneegans 68712fb842 📝 Add changelog entry 2022-01-27 06:16:07 +01:00
Simon Schneegans 5ff2632499 🔧 Reduce default energize b time 2022-01-27 06:09:18 +01:00
Simon Schneegans 1b79cd4aa4 🔧 Remove debug print 2022-01-27 05:53:13 +01:00
Simon Schneegans a8d75de4c9 💄 Only add headerbar on GTK4 2022-01-27 05:52:49 +01:00
Simon Schneegans 38458e4a4c 🪲 Fix some GNOME 3.36 and 3.38 issues 2022-01-27 05:47:59 +01:00
Simon Schneegans c107083cde 🪲 Fix some GNOME 3.36 issues 2022-01-27 05:46:10 +01:00
Simon Schneegans f5e58b100f 🪲 Fix some GNOME 3.36 issues 2022-01-27 05:31:38 +01:00
Simon Schneegans bf95e349da 🪲 Fix some GNOME 3.36 issues 2022-01-27 05:24:32 +01:00
Simon Schneegans f1b764062b 🪲 Fix some GNOME 3.36 issues 2022-01-27 05:21:15 +01:00
Simon Schneegans 6b218d049f 🔨 Initial attempt on window-opening animation 2022-01-27 05:07:30 +01:00
Simon Schneegans b6cb78330d 💄 Add headerbar to preview windows 2022-01-27 05:07:00 +01:00
Simon Schneegans 28754a93c2 🔧 Reduce default animation time of some effects 2022-01-24 20:36:23 +01:00
Simon Schneegans ba79b5b611 🎉 Make it possible to select window open effects 2022-01-24 20:34:50 +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 7875060375 🔀 Merge pull request #68 from Schneegans/feature/fix-35 2022-01-23 16:43:25 +01:00
Simon Schneegans 14ba603f22 🎉 Add matrix overshooting option 2022-01-23 16:42:02 +01:00
Simon Schneegans 982a2c76c3 🔀 Merge pull request #67 from Schneegans/feature/preview 2022-01-23 13:49:56 +01:00
Simon Schneegans 799e1e6b24 📝 Add changelog entry 2022-01-23 13:48:30 +01:00
Simon Schneegans 3c046bd2ef 🪲 Fix dialog handling 2022-01-23 13:44:19 +01:00
Simon Schneegans 0f9103d1f0 💄 Tweak preview button 2022-01-23 13:43:51 +01:00
Simon Schneegans 783f5c695d 🔧 GTK3 fixes 2022-01-23 13:19:18 +01:00
Simon Schneegans 8475ae29ba 🔧 Use more robust preview logic 2022-01-23 13:13:55 +01:00
Simon Schneegans 242625ee9f 🎉 Add a preview button to each effect page 2022-01-23 06:44:28 +01:00
Simon Schneegans b2f11f494d 🔧 Add custom gtk style sheet 2022-01-23 06:34:37 +01:00
Simon Schneegans fd5871b924 💄 Add new menu entry 2022-01-23 06:33:39 +01:00
Simon Schneegans a5f7769e58 ♻️ Refactor how preferences pages are set up 2022-01-22 20:24:38 +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
Simon Schneegans 55727f7c2b 🔀 Merge pull request #64 from Schneegans/feature/broken-glass 2022-01-22 12:45:03 +01:00
Simon Schneegans 33ac6fa80c 🔧 Use 'unmanged' signal to adjust window clone transitions 2022-01-22 12:38:14 +01:00
Simon Schneegans 07cbe89ffd 💞 Add new sponsor 2022-01-21 21:38:43 +01:00
Simon Schneegans 61fbdcbc49 🪲 Try fix accessing deleted window previews 2022-01-21 21:36:56 +01:00
Simon Schneegans 8bdfb822a1 📝 Add version disclaimer 2022-01-21 21:13:55 +01:00
Simon Schneegans ff97d7292c 📝 Add new effect 2022-01-21 21:09:07 +01:00
Simon Schneegans c998896cc1 🔧 Tweak defaults 2022-01-21 21:00:09 +01:00
Simon Schneegans 98fc36d039 📝 Add changelog entry 2022-01-21 20:57:41 +01:00
Simon Schneegans cf0b268019 💄 Tweak label 2022-01-21 20:55:05 +01:00
Simon Schneegans e2153bece1 🪲 Fix error message 2022-01-21 20:54:53 +01:00
Simon Schneegans c7001de666 📝 Add comments 2022-01-21 20:46:36 +01:00
Simon Schneegans 3985697573 🎉 Add broken glass effect 2022-01-21 20:18:11 +01:00
Simon Schneegans 8f8f4dc7c0 🎉 Allow setting actor transitions in overview 2022-01-21 20:17:24 +01:00
Simon Schneegans 156cefcd1d 🔧 Ignore temporary blender files 2022-01-21 19:29:45 +01:00
Simon Schneegans 0b9c2a252f 🔧 Pass actor to shader creation method 2022-01-21 19:29:26 +01:00
Simon Schneegans 627b1c5bfe 🎨 Add shards texture 2022-01-21 19:27:44 +01:00
Simon Schneegans 4409337cc3 💞 Add new sponsor 2022-01-19 21:02:35 +01:00
Simon Schneegans c91a1203fb 🎉 Bump version number 2022-01-18 20:38:13 +01:00
Simon Schneegans 458731e391 📝 Set release date
Deploy / Extension Bundle (push) Has been cancelled
2022-01-18 20:37:42 +01:00
Simon Schneegans 5c0d6afddc 🔀 Merge pull request #57 from Schneegans/feature/tryfix_54 2022-01-18 20:30:55 +01:00
Simon Schneegans 69bec85d76 📝 Update changelog 2022-01-18 20:20:35 +01:00
Simon Schneegans 3d9b0b7560 🔧 Set animation time even if we do not use it 2022-01-18 20:15:49 +01:00
Simon Schneegans e0f1e13e9c 🔀 Merge pull request #51 from Schneegans/feature/fryfix_49 2022-01-17 21:34:00 +01:00
Simon Schneegans b8db5daa12 🔧 Use try/catch for more robust import 2022-01-17 21:30:54 +01:00
Simon Schneegans c21313dd34 🔧 Do not try to fix #49 on GS 3.36 2022-01-17 21:23:03 +01:00
Simon Schneegans 0c0547f4dd 🪲 Fix crash when clicking the close buttons in the overview twice 2022-01-17 21:11:06 +01:00
Simon Schneegans 6c73574edc 🎉 Bump version number 2022-01-17 17:30:16 +01:00
Simon Schneegans afae41694c 📝 Set release date 2022-01-17 17:30:01 +01:00
Simon Schneegans 70ce055b0c 🔧 GTK3 fixes
Deploy / Extension Bundle (push) Has been cancelled
2022-01-17 17:13:27 +01:00
Simon Schneegans 8fae06ea14 🚚 Rename settings ui files 2022-01-17 16:58:51 +01:00
Simon Schneegans 333b60bf4e 📝 Add note on preview GIFs 2022-01-17 16:47:21 +01:00
Simon Schneegans 07220fa2b9 🔀 Merge pull request #48 from Schneegans/feature/transporter 2022-01-17 16:40:13 +01:00
Simon Schneegans 8714de6269 📝 Add changelog entries 2022-01-17 16:06:01 +01:00
Simon Schneegans 8effb279a6 📝 Add energize effects to the README.md 2022-01-17 15:36:51 +01:00
Simon Schneegans 6b90b944bc 🔧 Tweak energize A effect 2022-01-17 15:36:28 +01:00
Simon Schneegans c01d775289 🔧 Add energize settings 2022-01-17 15:36:08 +01:00
Simon Schneegans 4cc2d4b68f 🔧 Add wisps scale 2022-01-17 15:35:37 +01:00
Simon Schneegans 06e0d5340d 🔧 Add wisps scale 2022-01-17 15:35:21 +01:00
Simon Schneegans 85629bb55e 📝 Fix typo 2022-01-16 19:35:37 +01:00
Simon Schneegans c4a1d7a113 📝 Fix settings descriptions 2022-01-16 19:35:18 +01:00
Simon Schneegans 87b765c60f 🔧 Tweak Energize B effect 2022-01-16 13:47:54 +01:00
Simon Schneegans f363ec4b41 🚚 Use simpler effect class names 2022-01-16 05:48:30 +01:00
Simon Schneegans 382097f7e6 Merge branch 'main' into feature/transporter 2022-01-16 05:47:31 +01:00
Simon Schneegans ee37015d6d 🚚 Use simpler effect class names 2022-01-16 05:46:22 +01:00
Simon Schneegans 5244ac65f3 🚚 Rename transporter effects 2022-01-16 05:37:40 +01:00
Simon Schneegans b873772419 Merge branch 'main' into feature/transporter 2022-01-16 05:32:22 +01:00
Simon Schneegans 5287ac2614 ♻️ Move edge mask to snippets 2022-01-16 05:31:00 +01:00
Simon Schneegans 6b2e67a9ec 🔧 Update shader 2022-01-16 05:14:50 +01:00
Simon Schneegans 5a800c14a7 Merge branch 'main' into feature/transporter 2022-01-16 05:04:42 +01:00
Simon Schneegans bb9f57fe83 📝 Add custom effect image 2022-01-15 21:33:05 +01:00
Simon Schneegans e48da54b82 🔀 Merge pull request #47 from Schneegans/feature/wisps 2022-01-15 21:20:12 +01:00
Simon Schneegans c55b3712a4 🔧 Increase default matrix animation time 2022-01-15 21:18:27 +01:00
Simon Schneegans d2de984354 🔧 Tweak effect 2022-01-15 21:16:24 +01:00
Simon Schneegans 7271141623 📝 Add new effect 2022-01-15 20:47:06 +01:00
Simon Schneegans e273b309f1 🔧 Tweak effect 2022-01-15 20:46:50 +01:00
Simon Schneegans d75a3a0881 🔧 Tweak wisps effect 2022-01-15 14:15:32 +01:00
Simon Schneegans 4349a3246a 🎉 Add wisps effect 2022-01-15 14:06:43 +01:00
Simon Schneegans b6fc32ee0d 🔧 Use alternative noise 2022-01-15 12:42:57 +01:00
Simon Schneegans de67afb711 Merge branch 'main' into feature/transporter 2022-01-14 09:28:53 +01:00
Simon Schneegans c478a0f6c6 📝 Add breaking-change disclaimer 2022-01-14 08:43:27 +01:00
Simon Schneegans 5bade13636 📝 Add changelog entry 2022-01-14 08:33:43 +01:00
Simon Schneegans 76c79ea0f3 💄 Add drop-down arrow on GTK3 2022-01-14 08:31:46 +01:00
Simon Schneegans 0beea22d20 🔧 Tweak effect 2022-01-14 08:29:40 +01:00
Simon Schneegans c78a21d2b9 🎉 Add initial attempt on a second transporter effect 2022-01-14 08:29:29 +01:00
Simon Schneegans c7c28184eb Merge branch 'main' into feature/transporter 2022-01-13 16:30:54 +01:00
Simon Schneegans 04b8d1060a 📝 Fix typo 2022-01-13 16:19:29 +01:00
Simon Schneegans 264ed8e720 📝 Add another link to the guide 2022-01-13 16:18:48 +01:00
Simon Schneegans 4baf45c2b1 🔀 Merge pull request #46 from Schneegans/feature/contribution-guide 2022-01-13 16:14:36 +01:00
Simon Schneegans 82a55211e8 📝 Some guide fixes 2022-01-13 16:12:31 +01:00
Simon Schneegans eeca6cb06e 📝 Some guide fixes 2022-01-13 16:07:54 +01:00
Simon Schneegans adacc616a0 📝 Use separate GTK3 example code 2022-01-13 16:04:42 +01:00
Simon Schneegans 3cf99ec2bb 📝 Link to tutorial 2022-01-13 15:39:41 +01:00
Simon Schneegans e545ba11a7 📝 Add tutorial 2022-01-13 15:39:28 +01:00
Simon Schneegans 5358e8907a 💄 Tweak spacing 2022-01-13 04:55:47 +01:00
Simon Schneegans 5c79220504 🎨 Tweak icon 2022-01-13 04:55:34 +01:00
Simon Schneegans b3d26649a6 🔧 Fix indentation 2022-01-13 04:49:59 +01:00
Simon Schneegans 3228106ddf 🎉 Add initial attempt on a transporter effect 2022-01-13 04:49:28 +01:00
Simon Schneegans 286b47e69c 🔀 Merge pull request #45 from Schneegans/feature/welcome-page 2022-01-11 19:50:37 +01:00
Simon Schneegans 8a240766ed 🎉 Add welcome message 2022-01-11 19:47:46 +01:00
Simon Schneegans 314090e0d0 ♻️ Use unified shader names 2022-01-11 19:43:47 +01:00
Simon Schneegans 466365fcc7 💞 Add new sponsor 2022-01-10 19:59:33 +01:00
Simon Schneegans 0772dfab90 🔧 Improve T-Rex effect 2022-01-10 17:21:24 +01:00
Simon Schneegans 5782aded97 🔧 Revert wrong commit 2022-01-10 17:16:20 +01:00
Simon Schneegans b74f307fa9 Merge branch 'main' of github.com:Schneegans/Burn-My-Windows 2022-01-10 17:09:40 +01:00
Simon Schneegans f3b2417496 📝 Add changelog entry 2022-01-10 17:09:19 +01:00
Simon Schneegans 70a15dec53 📝 Add changelog entry 2022-01-10 17:07:22 +01:00
Simon Schneegans 5b588aa9e0 🔀 Merge pull request #43 from Schneegans/feature/improve-modularity 2022-01-10 16:22:05 +01:00
Simon Schneegans 7e1e1e2e67 📝 Add some more comments 2022-01-10 16:19:20 +01:00
Simon Schneegans 9c07f4ef3d 📝 Add changelog entries 2022-01-10 16:19:00 +01:00
Simon Schneegans 458a382f16 📝 Add even more comments 2022-01-10 06:02:21 +01:00
Simon Schneegans 63515a3d8d ♻️ Introduce utils.getGTKString() 2022-01-10 05:53:09 +01:00
Simon Schneegans 67186eb37d 📝 Add even more comments 2022-01-10 05:51:22 +01:00
Simon Schneegans 871cb8489f 📝 Add some more comments 2022-01-10 05:41:10 +01:00
Simon Schneegans 3e61368087 ♻️ Move shader code to bottom of file 2022-01-10 05:28:03 +01:00
Simon Schneegans 03c10308f9 📝 Add some comments 2022-01-10 05:21:50 +01:00
Simon Schneegans f04295b32b 🔧 Add transiation tweaking 2022-01-09 21:18:01 +01:00
Simon Schneegans 9cd43a9c56 🔧 Increase default tv effect time 2022-01-09 21:17:29 +01:00
Simon Schneegans 46887df950 ♻️ Merge prefs and extension classes 2022-01-09 20:41:02 +01:00
Simon Schneegans b726064e65 🔧 Make effect classes static 2022-01-09 13:49:03 +01:00
Simon Schneegans f8b17eadea 💄 Add relieft to preset button 2022-01-09 13:24:57 +01:00
Simon Schneegans 578063f8f8 🪲 Fix version test 2022-01-09 13:20:43 +01:00
Simon Schneegans 9e230d4df7 🔧 Change animation duration directly 2022-01-09 13:19:49 +01:00
Simon Schneegans a99b682bf9 🔧 Revert fire settings names 2022-01-09 13:13:34 +01:00
Simon Schneegans 7ec9609d7a 🔧 Add close-effects menu 2022-01-09 13:05:34 +01:00
Simon Schneegans e3f0288eaf 🔧 Add shell version check 2022-01-08 21:41:10 +01:00
Simon Schneegans c81316bfe9 🔨 Split prefs in separate classes 2022-01-08 21:30:12 +01:00
Simon Schneegans d6fed235c2 🔧 Gtk3 fixes 2022-01-08 13:56:38 +01:00
Simon Schneegans 875ef391a7 🔧 Gtk3 fixes 2022-01-08 13:54:16 +01:00
Simon Schneegans 1af87cd5e3 🔧 Gtk3 fixes 2022-01-08 13:51:59 +01:00
Simon Schneegans 93bdd8c1a1 🔧 Gtk3 fixes 2022-01-08 13:48:10 +01:00
Simon Schneegans 088290f8ba 🔧 Gtk3 fixes 2022-01-08 13:44:58 +01:00
Simon Schneegans db80b34fad 🔧 Gtk3 fixes 2022-01-08 13:42:53 +01:00
Simon Schneegans 8c1157f808 🔧 Gtk3 fixes 2022-01-08 13:41:26 +01:00
Simon Schneegans 5396e1f18d 🔧 Port to Gtk3 2022-01-08 13:38:57 +01:00
Simon Schneegans c154115192 ♻️ Move main menu to separate file 2022-01-08 13:34:28 +01:00
Simon Schneegans 91daabd791 ♻️ Split settings to separate ui files 2022-01-08 13:24:54 +01:00
Simon Schneegans a3571e3879 💄 Use GtkStackSidebar for settings (Gtk3 port still pending) 2022-01-08 13:05:17 +01:00
Simon Schneegans 3dd5ff1b36 💞 Add new sponsor 2022-01-07 08:21:38 +01:00
Simon Schneegans 564ba8ed28 💞 Add sponsors 2022-01-07 05:48:29 +01:00
Simon Schneegans 3c582755f3 📝 Add changelog link 2022-01-05 13:20:43 +01:00
Simon Schneegans fddbaffeb3 📝 Tweak README 2022-01-05 13:16:27 +01:00
Simon Schneegans 8dd1d70f86 📝 Use h3's 2022-01-05 08:39:48 +01:00
Simon Schneegans 2e9cb26086 💞 Add list of sponsors 2022-01-05 08:17:20 +01:00
Simon Schneegans b5f911802d 📝 Update comments 2022-01-04 21:51:07 +01:00
Simon Schneegans 935e922707 🎉 Bump version number 2022-01-03 20:52:23 +01:00
Simon Schneegans aeec220a5e Merge branch 'feature/3d-noise'
Deploy / Extension Bundle (push) Has been cancelled
2022-01-03 20:50:35 +01:00
Simon Schneegans 17fae262c5 💄 Tweak labels 2022-01-03 20:50:17 +01:00
Simon Schneegans a331736eb3 🔀 Merge pull request #21 from Schneegans/feature/3d-noise 2022-01-03 20:40:06 +01:00
Simon Schneegans c439727ddd 📝 Add changelog entry 2022-01-03 20:28:59 +01:00
Simon Schneegans 2b073d34bd 🎉 Add 3D noise option 2022-01-03 20:27:00 +01:00
Simon Schneegans 15b0237e54 🔧 Use different noise implementation 2022-01-03 20:13:42 +01:00
Simon Schneegans 466d449dc4 📝 Add changelog entries 2022-01-03 13:56:45 +01:00
Simon Schneegans f92b8d058a 🎉 Add changelog entry to menu 2022-01-03 13:54:29 +01:00
Simon Schneegans 0a9e04ce09 ♻️ Resolve license issues 2022-01-03 13:50:56 +01:00
Simon Schneegans 022fc8f77e 🎨 Add icon 2022-01-03 13:43:15 +01:00
Simon Schneegans 820b3f75ea 🎉 Bump version number 2022-01-02 21:09:53 +01:00
Simon Schneegans d5f20f32ca 🔧 Lower the version number again...
Deploy / Extension Bundle (push) Has been cancelled
2022-01-02 21:07:29 +01:00
Simon Schneegans 2ffb9c9717 🎉 Bump version number 2022-01-02 21:03:57 +01:00
Simon Schneegans 719540d020 📝 Add changelog entry 2022-01-02 21:03:16 +01:00
Simon Schneegans e479b86664 🔧 Remove debug output 2022-01-02 21:01:58 +01:00
Simon Schneegans 6b68fd6715 🎉 Bump version number 2022-01-02 19:41:27 +01:00
Simon Schneegans 27fec7adea ♻️ Rename method
Deploy / Extension Bundle (push) Has been cancelled
2022-01-02 14:00:18 +01:00
Simon Schneegans 3630e461a9 📝 Tweak README 2022-01-02 13:35:40 +01:00
Simon Schneegans d14e9750cf 📝 Add list of included effects 2022-01-02 13:32:17 +01:00
Simon Schneegans d44f021348 🔀 Merge pull request #19 from Schneegans/feature/menu-button 2022-01-02 12:51:13 +01:00
Simon Schneegans 681afb4793 📝 Add changelog entry 2022-01-02 12:49:59 +01:00
Simon Schneegans 5682a5cdf8 🪲 Fix GTK3 2022-01-02 12:48:47 +01:00
Simon Schneegans 8c7e3abbeb 🎉 Add a menu button 2022-01-02 12:37:51 +01:00
Simon Schneegans 7e05588682 🔧 Tweak motto 2022-01-02 12:34:13 +01:00
Simon Schneegans 13d02da36b 🔀 Merge pull request #18 from Schneegans/feature/fix-14 2022-01-02 12:32:58 +01:00
Simon Schneegans 552dc3b0c7 📝 Fix changelog 2022-01-02 12:31:15 +01:00
Simon Schneegans 976533ccc8 🎉 Support ovierview animations in GNOME 3.36 2022-01-02 07:58:35 +01:00
Simon Schneegans 403fac3367 📝 Add changelog entry 2022-01-01 21:57:57 +01:00
Simon Schneegans b916f9677e 🔧 Do not attempt to animate window closing in the overview of GNOME 3.36 2022-01-01 21:49:31 +01:00
Simon Schneegans 4965ca8735 🔀 Merge pull request #16 from Schneegans/feature/claws 2022-01-01 21:23:12 +01:00
Simon Schneegans c9bfdc4bf9 📝 Add comment 2022-01-01 21:21:56 +01:00
Simon Schneegans 54fa765766 📝 Add changelog entry 2022-01-01 21:19:30 +01:00
Simon Schneegans 37cd1fb7cc 📝 Add plenty of comments 2022-01-01 21:18:49 +01:00
Simon Schneegans 5d845e09c1 🎨 Add claws source file 2022-01-01 20:59:21 +01:00
Simon Schneegans f758f4db82 🔧 Tweak defaults 2022-01-01 20:55:12 +01:00
Simon Schneegans b410536fc2 🎉 Make T-Rex effect configurable 2022-01-01 20:47:59 +01:00
Simon Schneegans db636a7cfe Merge branch 'main' into feature/claws 2022-01-01 20:17:51 +01:00
Simon Schneegans 8c6c1bc7bd 🪲 Fix GTK3 2022-01-01 20:16:59 +01:00
Simon Schneegans 976e713a2b 🎉 Make TV Effect color configurable 2022-01-01 20:12:41 +01:00
Simon Schneegans 7dea28a145 🔧 Reduce scaling 2022-01-01 19:51:26 +01:00
Simon Schneegans 918a12060c 🎉 Add initial T-Rex shader 2022-01-01 19:48:24 +01:00
Simon Schneegans 11a3562533 🔀 Merge pull request #15 from Schneegans/feature/tv-effect 2021-12-31 20:36:56 +01:00
Simon Schneegans 68c851c9e0 📝 Add changelog entry 2021-12-31 20:35:37 +01:00
Simon Schneegans 03db97fdda 📝 Add comments 2021-12-31 20:34:50 +01:00
Simon Schneegans 0ee171aae0 Merge branch 'main' into feature/tv-effect 2021-12-30 13:51:54 +01:00
Simon Schneegans 9c9b9657e8 🎉 Improve fire appearance 2021-12-30 13:51:14 +01:00
Simon Schneegans fdd21a44b8 🎉 Add TV Effect shader 2021-12-30 13:42:41 +01:00
Simon Schneegans cd3b91a191 🎉 Bump version number 2021-12-25 20:39:28 +01:00
Simon Schneegans 333195559d 📝 Update changelog
Deploy / Extension Bundle (push) Has been cancelled
2021-12-25 20:38:38 +01:00
Simon Schneegans b5fe644782 📝 Update changelog 2021-12-25 20:33:31 +01:00
Simon Schneegans 13201620de 🔧 Do not enable the animation for dialogs per default 2021-12-25 20:32:40 +01:00
Simon Schneegans a3711e8606 🔧 Tweak fire animation fading even more 2021-12-25 20:30:40 +01:00
Simon Schneegans 3c83f7c5bc 🔀 Merge pull request #11 from Schneegans/feature/matrix 2021-12-25 13:47:36 +01:00
Simon Schneegans cb2224ca56 🔀 Merge branch 'main' into feature/matrix 2021-12-25 13:44:18 +01:00
Simon Schneegans 49ec9d8de2 🔀 Merge pull request #10 from Schneegans/feature/dialogs 2021-12-25 13:39:18 +01:00
Simon Schneegans 9b2ef55871 🎉 Add option to also destroy dialogs 2021-12-25 13:32:15 +01:00
Simon Schneegans b0aaf402f6 💄 Tweak labels 2021-12-25 13:13:25 +01:00
Simon Schneegans aa33667cae 📝 Add note why the matrix effect is not available on GNOME 3.3x 2021-12-25 13:03:03 +01:00
Simon Schneegans c5aa8b9268 🔧 Disable matrix animation on GNOME 3.3x 2021-12-25 12:56:14 +01:00
Simon Schneegans a994a3e80d 📝 Update changelog 2021-12-24 21:16:07 +01:00
Simon Schneegans c160bb92bd 🔧 Tweak fire timing 2021-12-24 21:12:26 +01:00
Simon Schneegans d91fb2f1b4 🔧 Reduce default animation time 2021-12-24 21:11:57 +01:00
Simon Schneegans 404db45ba9 🔧 GTK3 fixes 2021-12-24 13:52:00 +01:00
Simon Schneegans 46a2f3310d 🔧 Port settings to GTK3 2021-12-24 13:22:08 +01:00
Simon Schneegans 5628545c00 📝 Add some comments 2021-12-24 13:13:56 +01:00
Simon Schneegans 9e374d04d0 🔧 Make animation type configurable 2021-12-24 13:08:45 +01:00
Simon Schneegans 32a57cc523 🎉 Make matrix effect configurable 2021-12-24 12:25:17 +01:00
Simon Schneegans ca024872db 🔧 Tweak matrix shader 2021-12-23 20:56:54 +01:00
Simon Schneegans 547db3a2b8 🎉 Add initial matrix shader 2021-12-22 21:34:03 +01:00
Simon Schneegans 75b803d523 🪲 Fix preferences dialog 2021-12-22 12:30:04 +01:00
Simon Schneegans 9f27626c72 📝 Update changelog 2021-12-22 05:56:32 +01:00
Simon Schneegans a338a2f1b2 📝 Add some comments 2021-12-22 05:54:58 +01:00
Simon Schneegans 3149371a04 🚚 Move fire shader to its own file 2021-12-22 05:40:42 +01:00
Simon Schneegans e32b11a010 🎉 Bump version number 2021-12-20 20:34:55 +01:00
Simon Schneegans 8265010650 📝 Update changelog
Deploy / Extension Bundle (push) Has been cancelled
2021-12-20 20:32:10 +01:00
Simon Schneegans d4ced0b5fe 🪲 Fix support for GNOME 3.36 2021-12-20 20:24:29 +01:00
Simon Schneegans 42ccf20704 🎉 Add support for older GNOME versions 2021-12-20 20:11:39 +01:00
Simon Schneegans 570a0146b6 📝 Fix typo 2021-12-17 06:25:11 +01:00
Simon Schneegans 0480dda3ee 🎉 Bump version number 2021-12-16 20:32:41 +01:00
Simon Schneegans 5350fc9314 📝 Add some comments
Deploy / Extension Bundle (push) Has been cancelled
2021-12-16 20:20:31 +01:00
Simon Schneegans a12944108e 🔧 Add default preset 2021-12-16 20:16:12 +01:00
Simon Schneegans a1680f0bba 📝 Update changelog 2021-12-16 19:58:41 +01:00
Simon Schneegans fe132275c8 🎉 Add presets 2021-12-16 19:55:26 +01:00
Simon Schneegans d632a438f4 🎉 Add flame scale option 2021-12-15 21:49:42 +01:00
Simon Schneegans a925afb69e 🎉 Add movment speed option 2021-12-15 21:45:12 +01:00
Simon Schneegans 7d1de4dce8 🎉 Make fire color configurable 2021-12-15 21:39:11 +01:00
Simon Schneegans c22af5bbcf 🎉 Bump version number 2021-12-15 21:38:51 +01:00
Simon Schneegans 6201d765b1 📝 Tweak readme 2021-12-15 09:49:06 +01:00
Simon Schneegans 48b11cd5a2 📝 Update README 2021-12-14 21:23:03 +01:00
306 changed files with 77457 additions and 389 deletions
+3
View File
@@ -1,4 +1,7 @@
BasedOnStyle: Google
AlignConsecutiveAssignments: true
AlignAfterOpenBracket: Align
ContinuationIndentWidth: 2
KeepEmptyLinesAtTheStartOfBlocks: true
SortIncludes: false
ColumnLimit: 90
+1 -1
View File
@@ -6,7 +6,7 @@ open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
liberapay: # Schneegans
issuehunt: # Replace with a single IssueHunt username
otechie: # Replace with a single Otechie username
custom: ['https://www.paypal.com/donate/?hosted_button_id=3F7UFL8KLVPXE']
+3 -4
View File
@@ -17,14 +17,13 @@ Steps to reproduce the behavior:
4. See error
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|'
```
## Expected Behavior
A clear and concise description of what you expected to happen.
## System
_Please complete the following information:_
- 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.
title: ''
labels: enhancement
labels: 'feature request'
assignees: ''
---
## The Motivation
A clear and concise description of use-case.
## The Solution
A clear and concise description of what you want to happen.
## The Idea
A clear and concise description of your idea.
If applicable, feel free to add screenshots or mock-ups to illustrate your idea!
## 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.
+42
View File
@@ -0,0 +1,42 @@
name: Badges
on:
push:
branches:
- main
jobs:
update-badges:
name: Update Badges
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v2
- name: Download cloc
run: sudo apt-get update -y && sudo apt-get install -y cloc
- name: Get the Numbers
run: |
echo "CODE_LINES=$(scripts/cloc.sh --loc)" >> $GITHUB_ENV
echo "COMMENT_LINES=$(scripts/cloc.sh --percentage)" >> $GITHUB_ENV
- name: Create Lines-of-Code-Badge
uses: schneegans/dynamic-badges-action@v1.3.0
with:
auth: ${{ secrets.GIST_SECRET }}
gistID: 8cf45f23253ff09b21196e7271378762
filename: loc.json
label: Lines of Code
message: ${{ env.CODE_LINES }}
color: lightgrey
labelColor: 303030
- name: Create Comments-Badge
uses: schneegans/dynamic-badges-action@v1.3.0
with:
auth: ${{ secrets.GIST_SECRET }}
gistID: 8cf45f23253ff09b21196e7271378762
filename: comments.json
label: Comments
message: ${{ env.COMMENT_LINES }}%
valColorRange: ${{ env.COMMENT_LINES }}
maxColorRange: 50
minColorRange: 0
labelColor: 303030
+28
View File
@@ -76,7 +76,35 @@ jobs:
( contains(github.ref, 'main') && !contains(github.event.head_commit.message, '[no-ci]') ) ||
( contains(github.ref, 'develop') && !contains(github.event.head_commit.message, '[no-ci]') ) ||
contains(github.event.head_commit.message, '[run-ci]')
strategy:
fail-fast: false
matrix:
version:
- '32'
- '33'
- '34'
- '35'
- '36'
session:
#- 'gnome-xsession' Disabled for now as it miraculously fails on GitHub. Locally, all tests pass...
- 'gnome-wayland-nested'
steps:
- uses: actions/checkout@v2
- name: Download Dependencies
run: |
sudo apt update -qq
sudo apt install gettext -qq
- name: Build Burn-My-Windows
run: make
- name: Test Burn-My-Windows
run: sudo $GITHUB_WORKSPACE/tests/run-test.sh -v ${{ matrix.version }} -s ${{ matrix.session }}
- uses: actions/upload-artifact@v2
if: failure()
with:
name: log_${{ matrix.version }}_${{ matrix.session }}
path: fail.log
- uses: actions/upload-artifact@v2
if: failure()
with:
name: screen_${{ matrix.version }}_${{ matrix.session }}
path: fail.png
+2 -3
View File
@@ -6,7 +6,7 @@ on:
- '**'
jobs:
source_code:
extension_bundle:
name: Extension Bundle
runs-on: ubuntu-latest
steps:
@@ -20,10 +20,9 @@ jobs:
run: |
make zip
- name: Upload Release
uses: svenstaro/upload-release-action@v1-release
uses: svenstaro/upload-release-action@2.2.1
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: burn-my-windows@schneegans.github.com.zip
asset_name: burn-my-windows@schneegans.github.com.zip
tag: ${{ github.ref }}
overwrite: true
+4
View File
@@ -1,5 +1,9 @@
*~
*.zip
*.blend1
*.blend2
*.blend3
/locale
/schemas/gschemas.compiled
/resources/burn-my-windows.gresource
/resources/burn-my-windows.gresource.xml
+91 -31
View File
@@ -1,51 +1,111 @@
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.
NAME := burn-my-windows
DOMAIN := schneegans.github.com
ZIP_NAME := $(NAME)@$(DOMAIN).zip
# Some of the recipes below depend on some of these files.
JS_FILES = $(shell find -type f -and \( -name "*.js" \))
UI_FILES = $(shell find -type f -and \( -name "*.ui" \))
RESOURCE_FILES = $(shell find resources -mindepth 2 -type f)
LOCALES_PO = $(wildcard po/*.po)
LOCALES_MO = $(patsubst po/%.po,locale/%/LC_MESSAGES/$(NAME).mo,$(LOCALES_PO))
.PHONY: zip install uninstall clean
# These files will be included in the extension zip file.
ZIP_CONTENT = $(JS_FILES) $(LOCALES_MO) resources/$(NAME).gresource \
schemas/gschemas.compiled metadata.json LICENSE
zip: burn-my-windows@schneegans.github.com.zip
# These seven recipes can be invoked by the user.
.PHONY: zip install uninstall pot clean test references
install: burn-my-windows@schneegans.github.com.zip
gnome-extensions install "burn-my-windows@schneegans.github.com.zip" --force
# The zip recipes only bundles the extension without installing it.
zip: $(ZIP_NAME)
# The install recipes creates the extension zip and installs it.
install: $(ZIP_NAME)
gnome-extensions install "$(ZIP_NAME)" --force
@echo "Extension installed successfully! Now restart the Shell ('Alt'+'F2', then 'r')."
# This uninstalls the previously installed extension.
uninstall:
gnome-extensions uninstall "burn-my-windows@schneegans.github.com"
gnome-extensions uninstall "$(NAME)@$(DOMAIN)"
# Use gettext to generate a translation template file.
pot: $(JS_FILES) $(UI_FILES)
@echo "Generating '$(NAME).pot'..."
@xgettext --from-code=UTF-8 \
--add-comments=Translators \
--copyright-holder="Simon Schneegans" \
--package-name="$(NAME)" \
--output=po/$(NAME).pot \
$(JS_FILES) $(UI_FILES)
# This runs several tests in containerized versions of GNOME Shell.
test:
@ for version in 32 33 34 35 36 ; do \
for session in "gnome-xsession" "gnome-wayland-nested" ; do \
echo ; \
echo "Running Tests on Fedora $$version ($$session)." ; \
echo ; \
./tests/run-test.sh -s $$session -v $$version ; \
done \
done
# This re-generates all reference images required by the tests.
references:
@ for version in 32 33 34 35 36 ; do \
for session in "gnome-xsession" "gnome-wayland-nested" ; do \
echo ; \
echo "Generating References for Fedora $$version ($$session)." ; \
echo ; \
./tests/generate-references.sh -s $$session -v $$version ; \
done \
done
# This removes all temporary files created with the other recipes.
clean:
rm -rf \
burn-my-windows@schneegans.github.com.zip \
resources/burn-my-windows.gresource \
resources/burn-my-windows.gresource.xml \
schemas/gschemas.compiled
rm -rf $(ZIP_NAME) \
resources/$(NAME).gresource \
resources/$(NAME).gresource.xml \
schemas/gschemas.compiled \
locale
burn-my-windows@schneegans.github.com.zip: schemas/gschemas.compiled resources/burn-my-windows.gresource $(JS_FILES)
@# Check if the VERSION variable was passed and set version to it
@if [[ "$(VERSION)" != "" ]]; then \
sed -i "s| \"version\":.*| \"version\": $(VERSION)|g" metadata.json; \
fi
@# TODO Maybe echo version number of the release that was built, in order to facilitate double-checking before publishing it?
# This bundles the extension and checks whether it is small enough to be uploaded to
# extensions.gnome.org. We do not use "gnome-extensions pack" for this, as this is not
# readily available on the GitHub runners.
$(ZIP_NAME): $(ZIP_CONTENT)
@echo "Packing zip file..."
@rm --force burn-my-windows@schneegans.github.com.zip
@zip -r burn-my-windows@schneegans.github.com.zip -- *.js resources/burn-my-windows.gresource schemas/gschemas.compiled metadata.json LICENSE
@rm --force $(ZIP_NAME)
@zip $(ZIP_NAME) -- $(ZIP_CONTENT)
@#Check if the zip size is too big to be uploaded
@if [[ "$$(stat -c %s burn-my-windows@schneegans.github.com.zip)" -gt 4096000 ]]; then \
echo "ERROR! The extension is too big to be uploaded to the extensions website, keep it smaller than 4096 KB!"; exit 1; \
fi
@SIZE=$$(unzip -Zt $(ZIP_NAME) | awk '{print $$3}') ; \
if [[ $$SIZE -gt 5242880 ]]; then \
echo "ERROR! The extension is too big to be uploaded to" \
"the extensions website, keep it smaller than 5 MB!"; \
exit 1; \
fi
resources/burn-my-windows.gresource: resources/burn-my-windows.gresource.xml
# Compiles the gschemas.compiled file from the gschema.xml file.
schemas/gschemas.compiled: schemas/org.gnome.shell.extensions.$(NAME).gschema.xml
@echo "Compiling schemas..."
@glib-compile-schemas schemas
# 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/burn-my-windows.gresource.xml
@glib-compile-resources --sourcedir="resources" --generate resources/$(NAME).gresource.xml
resources/burn-my-windows.gresource.xml: $(RESOURCE_FILES)
# 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/burn-my-windows.gresource.xml
echo "<?xml version='1.0' encoding='UTF-8'?><gresources><gresource> $$FILES </gresource></gresources>" \
> resources/$(NAME).gresource.xml
schemas/gschemas.compiled: schemas/org.gnome.shell.extensions.burn-my-windows.gschema.xml
@echo "Compiling schemas..."
@glib-compile-schemas schemas
# Compiles all *.po files to *.mo files.
locale/%/LC_MESSAGES/$(NAME).mo: po/%.po
@echo "Compiling $@"
@mkdir -p locale/$*/LC_MESSAGES
@msgfmt -c -o $@ $<
+153 -3
View File
@@ -1,7 +1,157 @@
# Set your Windows on Fire!
<p align="center">
<a href="https://www.youtube.com/watch?v=L2aaNF_rPHo"><img src ="docs/pics/teaser.jpg" /></a>
</p>
<h1 align="center">🔥 Set GNOME Shell on Fire!</h1>
<p align="center">
<a href="https://extensions.gnome.org/extension/4679/burn-my-windows/"><img src="https://img.shields.io/badge/Download-extensions.gnome.org-e67f4d.svg?logo=gnome&logoColor=lightgrey&labelColor=303030" /></a><br/>
<a href="https://github.com/Schneegans/Burn-My-Windows/actions"><img src="https://github.com/Schneegans/Burn-My-Windows/workflows/Checks/badge.svg?branch=main" /></a>
<a href="LICENSE"><img src="https://img.shields.io/badge/License-GPLv3-blue.svg?labelColor=303030" /></a>
<!-- <a href="https://extensions.gnome.org/extension/4648/burn-my-windows/"><img src="https://img.shields.io/badge/Download-extensions.gnome.org-e67f4d.svg?logo=gnome&logoColor=lightgrey&labelColor=303030" /></a> -->
<a href="https://hosted.weblate.org/engage/burn-my-windows/"><img src="https://img.shields.io/weblate/progress/burn-my-windows?label=Translated&logo=weblate&logoColor=lightgray&labelColor=303030" /></a>
<a href="scripts/cloc.sh"><img src="https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/Schneegans/8cf45f23253ff09b21196e7271378762/raw/loc.json" /></a>
<a href="scripts/cloc.sh"><img src="https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/Schneegans/8cf45f23253ff09b21196e7271378762/raw/comments.json" /></a>
</p>
## :construction: This is under Construction :construction:
When I released the [Desktop Cube Extension](https://github.com/Schneegans/Desktop-Cube/), many people requested to revive one of the most useless features of Linux desktop history: Setting windows on fire!
This extension is not only more useless than the cube, but it is also much more hacky. So I expect some bug! [Let's incinerate them all](https://github.com/Schneegans/Burn-My-Windows/issues)!
For a list of things changed in previous releases, you can have a look at the [changelog](docs/changelog.md)!
Effect | Preview
-----|--------
**Apparition** <br> This effect hides your windows by violently sucking them into the void of magic! <br><br> _Only available in GNOME Shell 3.38+_ | <img src ="docs/pics/apparition.gif" />
**Broken Glass** <br> Shatter your windows into a shower sharp shards! This effect can be configured so that the shards fly away from your mouse pointer position! <br><br> _Only available in GNOME Shell 40+_ | <img src ="docs/pics/glass.gif" />
**Energize A** <br> Beam your windows away! | <img src ="docs/pics/energizeA.gif" />
**Energize B** <br> Using different transporter technology results in an alternative visual effect. | <img src ="docs/pics/energizeB.gif" />
**Fire** <br> The classic effect inspired by Compiz. However, this is implemented using a GLSL shader and not with a particle system like in the old days. | <img src ="docs/pics/fire.gif" />
**Hexagon** <br> With glowing lines and hexagon-shaped tiles, this effect looks very sci-fi. | <img src ="docs/pics/hexagon.gif" />
**Matrix** <br> Turn your windows into a shower of green letters! The color is actually configurable. <br><br> _Only available in GNOME Shell 40+_ | <img src ="docs/pics/matrix.gif" />
**Snap of Disintegration** <br> Dissolve your windows into a cloud of dust. <br><br> _Only available in GNOME Shell 40+_ | <img src ="docs/pics/snap.gif" />
**T-Rex Attack** <br> Destroy your windows with a series of violent slashes! <br><br> _Only available in GNOME Shell 40+_ | <img src ="docs/pics/trex.gif" />
**TV-Effect** <br> This is a very simple effect to demonstrate that this extension could also be used in a more professional environment. | <img src ="docs/pics/tv.gif" />
**Wisps** <br> Let your windows be carried away to the realm of dreams by these little fairies! | <img src ="docs/pics/wisps.gif" />
**Your Effect!** <br> The extension is very modular and with a bit of creativity and GLSL knowledge, [you can easily create your own effects](docs/how-to-create-new-effects.md). | [![Create your own effects](docs/pics/custom.jpg)](docs/how-to-create-new-effects.md)
## 💞 These People _love_ this Extension
While [coding new features](docs/how-to-create-new-effects.md) or [translating the extension](https://hosted.weblate.org/engage/burn-my-windows/) are the most awesome ways to contribute, providing financial support will help me stay motivated to invest my spare time to keep the project alive in the future.
<h3 align="center">🥇 Current Gold Sponsors</h3>
<p align="center">
<a href="https://github.com/dennis1248">Dennis ten Hoove</a><br>
</p>
<h3 align="center">🥈 Current Silver Sponsors</h3>
<p align="center">
<a href="https://github.com/danielheadbang">@danielheadbang</a><br>
<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/castrojo">Jorge Castro</a><br>
</p>
<h3 align="center">🥉 Current Bronze Sponsors</h3>
<p align="center">
<a href='https://github.com/AngelBrielez'>Angel Brielez</a>
</p>
<h3 align="center">🏅 Previous Sponsors and One-Time Donators</h3>
<p align="center">
<a href="https://github.com/MrTomRod">@MrTomRod</a><br>
Pouhiou<br>
DAPREMONT Christophe<br>
<a href="https://github.com/manero6">@manero6</a><br>
<a href="https://github.com/RickStanley">@RickStanley</a><br>
</p>
Do you want to show that you love it too? You may <a href="https://github.com/sponsors/Schneegans">become a sponsor for as little as 1$ / month</a>!
If you like this extension, you may also want to try one of my other extensions: [🧊 Desktop-Cube](https://github.com/Schneegans/Desktop-Cube) or [🍰 Fly-Pie](https://github.com/Schneegans/Fly-Pie/)!
## ⬇️ Installation
You can either install the Burn-My-Windows extension from extensions.gnome.org (a), download a stable release
from GitHub (b) or clone the latest version directly with `git` (c).
### a) Installing from extensions.gnome.org
This is the easiest way to install the Burn-My-Windows extension. Just head over to
[extensions.gnome.org](https://extensions.gnome.org/extension/4679/burn-my-windows/) and flip the switch!
If you want to use a more up-to-date version, you can try one of the methods listed below.
### b) Downloading a Stable Release
Execute this command to download the latest stable release:
```bash
wget https://github.com/Schneegans/Burn-My-Windows/releases/latest/download/burn-my-windows@schneegans.github.com.zip
```
Install it by executing the following command. If you have the Burn-My-Windows extension already installed and want to upgrade to
the latest version, append the `--force` flag in order to overwrite existing installs of the Burn-My-Windows extension.
```bash
gnome-extensions install burn-my-windows@schneegans.github.com.zip
```
Then restart GNOME Shell with <kbd>Alt</kbd> + <kbd>F2</kbd>, <kbd>r</kbd> + <kbd>Enter</kbd>.
Or logout / login if you are on Wayland.
Then you can enable the extension with the *Gnome Tweak Tool*, the *Extensions* application or with this command:
```bash
gnome-extensions enable burn-my-windows@schneegans.github.com
```
### c) Cloning the Latest Version with `git`
You should **not** clone the Burn-My-Windows extension directly to the `~/.local/share/gnome-shell/extensions` directory as this may get overridden occasionally!
Execute the clone command below where you want to have the source code of the extension.
```bash
git clone https://github.com/Schneegans/Burn-My-Windows.git
cd Burn-My-Windows
```
Now you will have to install the extension.
The `make` command below compiles the locales, schemas and resources, creates a zip file of the extension and finally installs it with the `gnome-extensions` tool.
```bash
make install
```
Then restart GNOME Shell with <kbd>Alt</kbd> + <kbd>F2</kbd>, <kbd>r</kbd> + <kbd>Enter</kbd>.
Or logout / login if you are on Wayland.
Then you can enable the extension with the *Gnome Tweak Tool*, the *Extensions* application or with this command:
```bash
gnome-extensions enable burn-my-windows@schneegans.github.com
```
## :octocat: I want to contribute!
That's great!
Most likely, you want to [create a new effect](docs/how-to-create-new-effects.md) or to [translate the extension](https://hosted.weblate.org/engage/burn-my-windows/)?
Here are some basic rules to get you started:
Commits should start with a Capital letter and should be written in present tense (e.g. __:tada: Add cool new feature__ instead of __:tada: Added cool new feature__).
You should also start your commit message with **one** applicable emoji.
This does not only look great but also makes you rethink what to add to a commit. Make many but small commits!
Emoji | Description
------|------------
:tada: `:tada:` | When you added a cool new feature.
:wrench: `:wrench:` | When you added a piece of code.
:recycle: `:recycle:` | When you refactored a part of the code.
:sparkles: `:sparkles:` | When you applied clang-format.
:globe_with_meridians: `:globe_with_meridians:` | When you worked on translations.
:art: `:art:` | When you improved / added assets like themes.
:lipstick: `:lipstick:` | When you worked on the UI of the preferences dialog.
:rocket: `:rocket:` | When you improved performance.
:memo: `:memo:` | When you wrote documentation.
:beetle: `:beetle:` | When you fixed a bug.
:revolving_hearts: `:revolving_hearts:` | When a new sponsor is added or credits are updated.
:heavy_check_mark: `:heavy_check_mark:` | When you worked on checks or adjusted the code to be compliant with them.
:twisted_rightwards_arrows: `:twisted_rightwards_arrows:` | When you merged a branch.
:fire: `:fire:` | When you removed something.
:truck: `:truck:` | When you moved / renamed something.
+7
View File
@@ -0,0 +1,7 @@
# Notes for `claws.blend`
This is the source file for `resources/img/claws.png`. To generate the image, the animation in `claws.blend` is rendered to 256 PNG files and then combined using this command:
```bash
convert *.png -average claws.png
```
+3795
View File
File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 968 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.
BIN
View File
Binary file not shown.
+374
View File
@@ -0,0 +1,374 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="512"
height="512"
viewBox="0 0 135.46666 135.46667"
version="1.1"
id="svg5"
inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)"
sodipodi:docname="matrixFont.svg"
inkscape:export-filename="/home/simon/Linux-Projects/Burn-My-Windows/resources/img/matrixFont.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#000000"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="1"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="true"
units="px"
inkscape:zoom="3.2650549"
inkscape:cx="194.33058"
inkscape:cy="126.49098"
inkscape:window-width="1920"
inkscape:window-height="1131"
inkscape:window-x="0"
inkscape:window-y="32"
inkscape:window-maximized="1"
inkscape:current-layer="layer1">
<inkscape:grid
type="xygrid"
id="grid8183"
empspacing="2"
spacingx="4.2333333"
spacingy="4.2333333"
color="#cbcbff"
opacity="0.1254902"
empcolor="#ffffff"
empopacity="0.25098039" />
</sodipodi:namedview>
<defs
id="defs2">
<filter
inkscape:collect="always"
style="color-interpolation-filters:sRGB"
id="filter972"
x="-0.014295474"
y="-0.01399304"
width="1.0285909"
height="1.0279861">
<feGaussianBlur
inkscape:collect="always"
stdDeviation="0.78384108"
id="feGaussianBlur970" />
</filter>
<filter
inkscape:collect="always"
style="color-interpolation-filters:sRGB"
id="filter974"
x="-0.024387008"
y="-0.023871079"
width="1.048774"
height="1.0477422">
<feGaussianBlur
inkscape:collect="always"
stdDeviation="1.3371742"
id="feGaussianBlur976" />
</filter>
</defs>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-weight:300;font-size:7.60522px;line-height:1.112;font-family:'Open Sans';-inkscape-font-specification:'Open Sans Light';letter-spacing:3.89202px;opacity:1;mix-blend-mode:normal;stroke-width:0.190131;filter:url(#filter972)"
x="1.7241572"
y="6.4795361"
id="text968"
inkscape:export-filename="/home/simon/Linux-Projects/Burn-My-Windows/resources/img/text3003.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
x="1.7241572"
y="6.4795361"
id="tspan934">ABCDEFGHIJKLMNOP</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
x="1.7241572"
y="14.946301"
id="tspan936">QRSTUVWXYZabcdef</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
x="1.7241572"
y="23.413067"
id="tspan938">ghijklmnopqrstuv</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
x="1.7241572"
y="31.879831"
id="tspan940">wxyzÀÁÂÃÄÅÆÇÈÉÊË</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
x="1.7241572"
y="40.346596"
id="tspan942">ÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜ</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
x="1.7241572"
y="48.813362"
id="tspan944">ÝÞßàáâãäåæçèéêëì</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
x="1.7241572"
y="57.280125"
id="tspan946">íîïðΑαΒβΓγΔδΕεΖζ</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
x="1.7241572"
y="65.746887"
id="tspan948">ΗηΘθΙιΚκΛλΜμΝνΞξ</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
x="1.7241572"
y="74.213654"
id="tspan950">ΟοΠπΡρΣσΤτΥυΦφΧχ</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
x="1.7241572"
y="82.68042"
id="tspan952">ΨψΩω1234567890Аа</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
x="1.7241572"
y="91.147186"
id="tspan954">БбВвГгДдЕеЖжЗзИи</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
x="1.7241572"
y="99.613953"
id="tspan956">ЙйКкЛлМмНнОоПпРр</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
x="1.7241572"
y="108.08072"
id="tspan958">СсТтУуФфХхЦцЧчШш</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
x="1.7241572"
y="116.54748"
id="tspan960">ЩщЬьЭэЮюЯя!&quot;#$%&amp;</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
x="1.7241572"
y="125.01424"
id="tspan962">()*+,-/:;&lt;=&gt;?@©§</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
x="1.7241572"
y="133.48102"
id="tspan964">[\]{|}~ªº¿®¬½¼¡¶</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
x="1.7241572"
y="141.94777"
id="tspan966" /></text>
<text
xml:space="preserve"
style="font-weight:300;font-size:7.60522px;line-height:1.112;font-family:'Open Sans';-inkscape-font-specification:'Open Sans Light';letter-spacing:3.89202px;opacity:1;stroke-width:0.190131"
x="1.7241572"
y="6.4795361"
id="text94444"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
x="1.7241572"
y="6.4795361"
id="tspan94410">ABCDEFGHIJKLMNOP</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
x="1.7241572"
y="14.946301"
id="tspan94412">QRSTUVWXYZabcdef</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
x="1.7241572"
y="23.413067"
id="tspan94414">ghijklmnopqrstuv</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
x="1.7241572"
y="31.879831"
id="tspan94416">wxyzÀÁÂÃÄÅÆÇÈÉÊË</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
x="1.7241572"
y="40.346596"
id="tspan94418">ÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜ</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
x="1.7241572"
y="48.813362"
id="tspan94420">ÝÞßàáâãäåæçèéêëì</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
x="1.7241572"
y="57.280125"
id="tspan94422">íîïðΑαΒβΓγΔδΕεΖζ</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
x="1.7241572"
y="65.746887"
id="tspan94424">ΗηΘθΙιΚκΛλΜμΝνΞξ</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
x="1.7241572"
y="74.213654"
id="tspan94426">ΟοΠπΡρΣσΤτΥυΦφΧχ</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
x="1.7241572"
y="82.68042"
id="tspan94428">ΨψΩω1234567890Аа</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
x="1.7241572"
y="91.147186"
id="tspan94430">БбВвГгДдЕеЖжЗзИи</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
x="1.7241572"
y="99.613953"
id="tspan94432">ЙйКкЛлМмНнОоПпРр</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
x="1.7241572"
y="108.08072"
id="tspan94434">СсТтУуФфХхЦцЧчШш</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
x="1.7241572"
y="116.54748"
id="tspan94436">ЩщЬьЭэЮюЯя!&quot;#$%&amp;</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
x="1.7241572"
y="125.01424"
id="tspan94438">()*+,-/:;&lt;=&gt;?@©§</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
x="1.7241572"
y="133.48102"
id="tspan94440">[\]{|}~ªº¿®¬½¼¡¶</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
x="1.7241572"
y="141.94777"
id="tspan94442" /></text>
<text
xml:space="preserve"
style="font-weight:300;font-size:7.60522px;line-height:1.112;font-family:'Open Sans';-inkscape-font-specification:'Open Sans Light';letter-spacing:3.89202px;opacity:1;mix-blend-mode:normal;stroke-width:0.190131;filter:url(#filter974)"
x="1.7241572"
y="6.4795361"
id="text3003"
inkscape:export-filename="/home/simon/Linux-Projects/Burn-My-Windows/resources/img/text3003.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
x="1.7241572"
y="6.4795361"
id="tspan30643">ABCDEFGHIJKLMNOP</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
x="1.7241572"
y="14.946301"
id="tspan40072">QRSTUVWXYZabcdef</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
x="1.7241572"
y="23.413067"
id="tspan42210">ghijklmnopqrstuv</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
x="1.7241572"
y="31.879831"
id="tspan43166">wxyzÀÁÂÃÄÅÆÇÈÉÊË</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
x="1.7241572"
y="40.346596"
id="tspan43762">ÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜ</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
x="1.7241572"
y="48.813362"
id="tspan44946">ÝÞßàáâãäåæçèéêëì</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
x="1.7241572"
y="57.280125"
id="tspan48062">íîïðΑαΒβΓγΔδΕεΖζ</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
x="1.7241572"
y="65.746887"
id="tspan56533">ΗηΘθΙιΚκΛλΜμΝνΞξ</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
x="1.7241572"
y="74.213654"
id="tspan58635">ΟοΠπΡρΣσΤτΥυΦφΧχ</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
x="1.7241572"
y="82.68042"
id="tspan61169">ΨψΩω1234567890Аа</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
x="1.7241572"
y="91.147186"
id="tspan67243">БбВвГгДдЕеЖжЗзИи</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
x="1.7241572"
y="99.613953"
id="tspan69399">ЙйКкЛлМмНнОоПпРр</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
x="1.7241572"
y="108.08072"
id="tspan70763">СсТтУуФфХхЦцЧчШш</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
x="1.7241572"
y="116.54748"
id="tspan72709">ЩщЬьЭэЮюЯя!&quot;#$%&amp;</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
x="1.7241572"
y="125.01424"
id="tspan77955">()*+,-/:;&lt;=&gt;?@©§</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
x="1.7241572"
y="133.48102"
id="tspan77957">[\]{|}~ªº¿®¬½¼¡¶</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
x="1.7241572"
y="141.94777"
id="tspan75487" /></text>
<text
xml:space="preserve"
style="font-weight:300;font-size:10.5833px;line-height:1.25;font-family:'Open Sans';-inkscape-font-specification:'Open Sans Light';stroke-width:0.264583"
x="169.33333"
y="29.009251"
id="text17385"><tspan
sodipodi:role="line"
id="tspan17383"
style="stroke-width:0.264583"
x="169.33333"
y="29.009251" /></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 21 KiB

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

+228 -1
View File
@@ -1,7 +1,234 @@
# Changelog of the Burn-My-Windows Extension
## [Burn My Window 1](https://github.com/schneegans/Burn-My-Windows/releases/tag/v1)
## [Burn My Windows 16](https://github.com/schneegans/Burn-My-Windows/releases/tag/v16)
**Release Date:** TBD
#### Enhancements
* The standard uniforms of all shaders have been updated: The window size is now passed as a `vec2` and there is a new `bool uForOpening` which is set to `true` if a window-open animation is ongoing, to `false` otherwise.
* Refactored how the size and opacity transitions of the window actors are set up. Effects can now only specify a desired actor scale which will not change during the animation. All dynamic scaling and fading must be implemented in the shaders now.
* The shaders are now aware of the actual window size (e.g. excluding the area where the shadow is drawn). For instance, this fixes the drawing of the effects outside the window bounds for `libadwaita` apps.
#### Bug Fixes
* **Fixed a major memory leak**. Now, shaders are not re-created anymore whenever a window is opened or closed. Instead, previously created shaders are re-used as often as possible. This requires that all settings are set as uniform values (previously they were injected into the shader source) which in turn requires that `Shell.GLSLEffect` is used instead of `Clutter.ShaderEffect`. This change also requires that all shaders now work with straight instead of premultiplied alpha. Anyways, a lot needed to be refactored for this fix and I hope that it did not bring too many visual changes.
* Fixed the window-close animation of windows which were opened before the session was started (e.g. before GNOME Shell has been restarted).
* There seem to be cases were `libadwaita` is not available on GNOME 42 (e.g. Pop!_OS 22.04 beta). The preferences dialog now tries to fallback to the GTK4-only variant if `libadwaita` is not available.
## [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
#### 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)!
* **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).
* **Translations!** It is now possible to [translate the preferences dialog](https://hosted.weblate.org/engage/burn-my-windows/). There is already a finished German translation, and in-progress translations to Italian and Norwegian Bokmål.
* **A "Vertical Overshooting" option** was added to the Matrix Effect: This can add some vertical variation to the start and end position of the letter drops.
#### Other Enhancements
* Added a menu entry with a link to the guide for creating new effect types.
* Thanks to improved timing, the default animation time of several effects could be reduced.
* The README now shows the current lines of code and the current comment percentage using my [dynamic-badges-action](https://github.com/Schneegans/dynamic-badges-action).
* **Add advanced CI tests:** For each commit to `main`, it is now tested whether the extension can be installed and if the preferences dialog can be shown on GNOME Shell 3.36, 3.38, 40, and 41. Both, X11 and Wayland are checked.
## [Burn My Windows 9](https://github.com/schneegans/Burn-My-Windows/releases/tag/v9)
**Release Date:** 2022-01-18
#### Fixes
* Improved compatibility with [Show Application View When Workspace Empty ](https://extensions.gnome.org/extension/2036/show-application-view-when-workspace-empty/) (#54).
* Fixed a crash which happened when the window-close icon in the overview was clicked twice (#49).
## [Burn My Windows 8](https://github.com/schneegans/Burn-My-Windows/releases/tag/v8)
**Release Date:** 2022-01-17
#### New Features
* **Random effects!** You can now select a set of effects of which one will be chosen randomly whenever you close a window. **This changes how effects are selected, so you will have to re-select your desired effect(s)**.
* **New Effect: Energize A.** Beam your windows away!
* **New Effect: Energize B.** Using different transporter technology results in an alternative visual effect.
* **New Effect: Wisps.** These little fairies carry your windows to the realm of dreams!
* Each effect has its own "Animation Time" setting now. The global animation time has been replaced by those, so **you may have to adjust the sliders to match your previous settings**.
#### Other Enhancements
* A [guide for creating new effects](how-to-create-new-effects.md) has been added.
* The source code has received a **major refactoring**. This will make the addition of new effects much easier in the future.
* The **layout of the settings dialog** has been reworked to make it easier to expand it in the future.
* The lower limit of the **animation time of the TV Effect** has been reduced.
* The T-Rex-Attack effect is not shown in fully transparent regions of a window any more.
* The shaders now use a different noise implementation which produces better 3D noise.
#### Fixes
* The extension now works even if GNOME Shell's animations are disabled globally.
## [Burn My Windows 7](https://github.com/schneegans/Burn-My-Windows/releases/tag/v7)
**Release Date:** 2022-01-03
#### New Features
* An option to use a 3D noise for the fire shader has been added. This will add some more temporal variation to the flames at the cost of slightly decreased rendering performance.
* A changelog entry has been added to the menu of the preferences dialog.
#### Fixes
* Resolve copyright issues by using a MIT-licensed noise implementation.
## [Burn My Windows 6](https://github.com/schneegans/Burn-My-Windows/releases/tag/v6)
**Release Date:** 2022-01-02
#### Fixes
* Removed a debug log message.
## [Burn My Windows 5](https://github.com/schneegans/Burn-My-Windows/releases/tag/v5)
**Release Date:** 2022-01-02
#### New Features
* Added a new ridiculous close-animation: the T-Rex-Attack!
* Added a new simple close-animation: the TV-Effect!
* Added a menu to the preferences dialog with links for bug reporting and donations.
#### Other Enhancements
* The fire shader now uses a `smoothstep` to make it less blocky.
#### Bug Fixes
* Fixed a bug which messed up the overview of GNOME Shell 3.36.
## [Burn My Windows 4](https://github.com/schneegans/Burn-My-Windows/releases/tag/v4)
**Release Date:** 2021-12-25
#### New Features
* Added a new Matrix shader which dissolves your windows in a shower of green letters. You can switch between the fire and the matrix shader in the settings. Sadly, this effect cannot be available under GNOME 3.3x as it was apparently impossible to set textures for a `Clutter.ShaderEffect` in GJS back then.
* Added a setting to apply the animation also for closing dialog windows.
#### Other Enhancements
* Refactored the code a lot to make it easier to add new shader effects in the future.
* Tweaked timing of the fire shader. Previously, the fire became invisible quite quickly. Due to this new animation timing, the default animation time has been reduced to 1500 ms.
## [Burn My Windows 3](https://github.com/schneegans/Burn-My-Windows/releases/tag/v3)
**Release Date:** 2021-12-20
#### New Features
* Add support for GNOME 3.36 and GNOME 3.38.
## [Burn My Windows 2](https://github.com/schneegans/Burn-My-Windows/releases/tag/v2)
**Release Date:** 2021-12-16
#### New Features
* Added the possibility to adjust fire colors.
* Added the possibility to adjust flame speed and scale.
* Added some fire presets.
## [Burn My Windows 1](https://github.com/schneegans/Burn-My-Windows/releases/tag/v1)
**Release Date:** 2021-12-14
* Initial publication on GitHub supporting GNOME 40 and GNOME 41.
+570
View File
@@ -0,0 +1,570 @@
# 🔥 Creating a new Effect for Burn-My-Windows
The extension is very modular and with a bit of creativity and GLSL knowledge, you can easily create your own effects.
If you are happy with your results, please open a pull request so that we can include your effect in the next version of Burn-My-Windows!
### Before you Start
First you should [fork the repository](https://github.com/Schneegans/Burn-My-Windows/fork) and clone it to your PC.
Afterwards, use a terminal in the directory of the cloned repository to install the extension.
```bash
make install
```
_:information_source: Whenever you changed something in the source code, you will have to call this command and restart GNOME Shell with <kbd>Alt</kbd> + <kbd>F2</kbd>, <kbd>r</kbd> + <kbd>Enter</kbd>.
Or logout / login if you are on Wayland to see the changes._
### Debugging
Debugging GNOME Shell extensions is a bit difficult.
Most of the time, you will print messages to a log in order to understand what is going on.
To make this a bit more convenient, Burn-My-Windows includes the method `utils.debug("Hello World")`.
With this, each line will be prefixed with the extension's name, which will make spotting log messages more easy. You can use the following command to watch the log output; it will highlight all messages from Burn-My-Windows:
```bash
journalctl -f -o cat | grep -E 'burn-my-windows|'
```
## Adding a new Effect
For the sake of this tutorial, we will create a **"Simple Fade"** effect.
Of course, you can replace any occurrence of this name and its nick `simple-fade` with your custom effect name.
Three simple steps are required to create a new effect.
You will have to ...
1. add preferences keys for enabling the effect,
2. create an additional effects class, and finally
3. register the new effect in two places.
### 1. Expanding the Schema
For enabling the new effect, the boolean settings keys `simple-fade-open-effect`, `simple-fade-close-effect`, and `simple-fade-animation-time` are required.
In this example, we also add a floating point value for storing another property of the effect - we will use them later in the tutorial.
Just copy the XML code below to the file [`schemas/org.gnome.shell.extensions.burn-my-windows.gschema.xml`](../schemas/org.gnome.shell.extensions.burn-my-windows.gschema.xml).
Just remember to replace `simple-fade` with your custom name!
```xml
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Simple Fade Effect Options -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<key name="simple-fade-close-effect" type="b">
<default>false</default>
<summary>Simple Fade Close Effect</summary>
<description>Use the Simple Fade effect for window closing.</description>
</key>
<key name="simple-fade-open-effect" type="b">
<default>false</default>
<summary>Simple Fade Open Effect</summary>
<description>Use the Simple Fade effect for window opening.</description>
</key>
<key name="simple-fade-animation-time" type="i">
<default>1500</default>
<summary>Simple Fade Animation Time</summary>
<description>The time the Simple Fade effect takes.</description>
</key>
<key name="simple-fade-width" type="d">
<default>0.1</default>
<summary>Simple Fade Width</summary>
<description>Width of the fading effect.</description>
</key>
```
### 2. Creating the Effect Class
You will have to create a new GLSL file called `resources/shaders/simple-fade.glsl` and a new JavaScript source file called `src/SimpleFade.js`.
Simply paste the following source code to the respective file.
Please study this code carefully, all of it is explained with inline comments.
<details>
<summary>Expand this to show the GLSL code.</summary>
```glsl
// The code below injects some standard uniforms which will be updated during the
// animation. This includes:
// bool uForOpening: True if a window-open animation is ongoing, false otherwise.
// sampler2D uTexture: Contains the texture of the window.
// float uProgress: A value which transitions from 0 to 1 during the entire animation.
// float uTime: A steadily increasing value in seconds.
// vec2 uSize: The size of uTexture in pixels.
// float uPadding: The empty area around the actual window (e.g. where the shadow is drawn).
#include "common/uniforms.glsl"
// The width of the fading effect is loaded from the settings.
uniform float uFadeWidth;
void main() {
// Get the color from the window texture.
cogl_color_out = texture2D(uTexture, cogl_tex_coord_in[0].st);
// Shell.GLSLEffect uses straight alpha. So we have to convert from premultiplied.
if (cogl_color_out.a > 0) {
cogl_color_out.rgb /= cogl_color_out.a;
}
// Radial distance from window edge to the window's center.
float dist = length(cogl_tex_coord_in[0].st - 0.5) * 2.0 / sqrt(2.0);
// This gradually dissolves from [1..0] from the outside to the center. We
// switch the direction for opening and closing.
float progress = uForOpening ? 1.0 - uProgress : uProgress;
float mask = (1.0 - progress * (1.0 + uFadeWidth) - dist + uFadeWidth) / uFadeWidth;
// Make the mask smoother.
mask = smoothstep(0, 1, mask);
// Apply the mask to the output.
cogl_color_out.a *= mask;
}
```
</details>
<details>
<summary>Expand this to show the JavaScript code.</summary>
```javascript
//////////////////////////////////////////////////////////////////////////////////////////
// ) ( //
// ( /( ( ( ) ( ( ( ( )\ ) ( ( //
// )\()) ))\ )( ( ( )\ ) )\))( )\ ( (()/( ( )\))( ( //
// ((_)\ /((_|()\ )\ ) )\ '(()/( ((_)()((_) )\ ) ((_)))\((_)()\ )\ //
// | |(_|_))( ((_)_(_/( _((_)) )(_)) _(()((_|_)_(_/( _| |((_)(()((_|(_) //
// | '_ \ || | '_| ' \)) | ' \()| || | \ 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;
const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
//////////////////////////////////////////////////////////////////////////////////////////
// This effect ... //
// <- Please add a description of your effect here -> //
//////////////////////////////////////////////////////////////////////////////////////////
// The effect class 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 SimpleFade = class {
// The constructor creates a ShaderFactory which will be used by extension.js to create
// shader instances for this effect. The shaders will be automagically created using the
// GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
// newly created shader instance.
constructor() {
this.shaderFactory = new ShaderFactory(this.getNick(), (shader) => {
// We import Clutter in this function as it is not available in the preferences
// process. This creator function of the ShaderFactory is only called within GNOME
// Shell's process.
const Clutter = imports.gi.Clutter;
// Store uniform locations of newly created shaders.
shader._uForOpening = shader.get_uniform_location('uForOpening');
shader._uFadeWidth = shader.get_uniform_location('uFadeWidth');
// Write all uniform values at the start of each animation.
shader.connect('begin-animation', (shader, settings) => {
shader.set_uniform_float(shader._uForOpening, 1, [forOpening]);
shader.set_uniform_float(shader._uFadeWidth, 1, [settings.get_double('simple-fade-width')]);
});
});
}
// ---------------------------------------------------------------------------- metadata
// The effect is available on all GNOME Shell versions supported by this extension.
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').
getNick() {
return 'simple-fade';
}
// 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.
getLabel() {
return _('Simple Fade Effect');
}
// -------------------------------------------------------------------- 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.
getPreferences(dialog) {
// Empty for now... Code is added here later in the tutorial!
return null;
}
// ---------------------------------------------------------------- API for extension.js
// The getActorScale() is called from extension.js to adjust the actor's size during the
// animation. This is useful if the effect requires drawing something beyond the usual
// bounds of the actor. This only works for GNOME 3.38+.
getActorScale(settings) {
return {x: 1.0, y: 1.0};
}
}
```
</details>
### 3. Registering the new Effect
You will have to register the new effect in two files.
Both, [`extension.js`](../extension.js) and [`prefs.js`](../prefs.js) define an array in the beginning where you have to add an import to your new effect.
Like this:
```javascript
const ALL_EFFECTS = [
...
new Me.imports.src.SimpleFade.SimpleFade(),
...
];
```
### Testing your Effect
Now you can call `make install` and restart GNOME Shell with <kbd>Alt</kbd> + <kbd>F2</kbd>, <kbd>r</kbd> + <kbd>Enter</kbd>.
Or logout / login if you are on Wayland.
You can open the extension's preferences and choose the new effect!
However, there are no configuration options yet.
It is also not possible to adjust the animation time setting.
```bash
gnome-extensions prefs burn-my-windows@schneegans.github.com
```
## Adding a Preferences Page
There should be two sliders in this example: The animation duration and the width of the fading gradient.
If your effect supports GNOME Shell 3.3x _and_ GNOME Shell 40+, you will have to provide two `*.ui` files for this.
This is because starting with GNOME Shell 40, the preference dialog uses GTK4, before it used to use GTK3.
Usually, there are only a few minor differences between the two files.
We will load the respective file in the `getPreferences()` method of your new effect class.
Just save the code below to `resources/ui/gtk3/SimpleFade.ui` and `resources/ui/gtk4/SimpleFade.ui` respectively.
Remember to replace any occurrence of `simple-fade` with your effect's nick-name!
<details>
<summary>Expand this to show the GTK3 code.</summary>
```xml
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<object class="GtkAdjustment" id="simple-fade-animation-time">
<property name="upper">5000</property>
<property name="lower">100</property>
<property name="step-increment">10</property>
<property name="page-increment">100</property>
</object>
<object class="GtkAdjustment" id="simple-fade-width">
<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="simple-fade-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">
<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">simple-fade-animation-time</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-simple-fade-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">
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Fade 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">2</property>
<property name="value-pos">left</property>
<property name="width-request">300</property>
<property name="adjustment">simple-fade-width</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-simple-fade-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>
</object>
</child>
</object>
</child>
</object>
</interface>
```
</details>
<details>
<summary>Expand this to show the GTK4 code.</summary>
```xml
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<object class="GtkAdjustment" id="simple-fade-animation-time">
<property name="upper">5000</property>
<property name="lower">100</property>
<property name="step-increment">10</property>
<property name="page-increment">100</property>
</object>
<object class="GtkAdjustment" id="simple-fade-width">
<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="simple-fade-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">simple-fade-animation-time</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-simple-fade-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">Fade 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">2</property>
<property name="value-pos">left</property>
<property name="width-request">300</property>
<property name="adjustment">simple-fade-width</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-simple-fade-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>
</object>
</child>
</object>
</child>
</object>
</interface>
```
</details>
### Loading the Preferences Page
In order to load the above `*.ui` files, add the following code to your effect's `getPreferences()` method.
```javascript
static getPreferences(dialog) {
// Add the settings page to the builder.
dialog.getBuilder().add_from_resource(`/ui/${utils.getGTKString()}/SimpleFade.ui`);
// These connect the settings to the UI elements. Have a look at prefs.js
// on how to bind other types of UI elements.
dialog.bindAdjustment('simple-fade-animation-time');
dialog.bindAdjustment('simple-fade-width');
// Finally, return the new settings page.
return dialog.getBuilder().get_object('simple-fade-prefs');
}
```
Once this is in place, you can kill the extension-preferences process and re-open the settings.
It is not required to reload GNOME Shell for developing the preferences dialog!
Here's a handy one-liner to do this:
```bash
make install && pkill -f '.Extensions' && sleep 2 ; gnome-extensions prefs burn-my-windows@schneegans.github.com
```
## Summing Up
That's it!
If you have any questions, feel free to [ask them on the discussions board](https://github.com/Schneegans/Burn-My-Windows/discussions).
If you are happy with your effect, submit a pull request, and it may get included in the next version!
+7
View File
@@ -0,0 +1,7 @@
# Preview GIFs
The preview GIFs are recorded with OBS Studio at 1920x1080, cut to a length of exactly two seconds and converted to a GIF with the following command:
```bash
gifski --fps 30 -W 400 -H 225 -o effect.gif effect.mp4
```
Binary file not shown.

After

Width:  |  Height:  |  Size: 415 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 958 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 949 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 615 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 625 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 928 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 136 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 936 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 203 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 821 KiB

+474 -206
View File
@@ -13,21 +13,31 @@
'use strict';
const {Clutter} = imports.gi;
const {Clutter, Gio, Meta} = imports.gi;
const Workspace = imports.ui.workspace.Workspace;
const WindowManager = imports.ui.windowManager.WindowManager;
const WINDOW_REPOSITIONING_DELAY = imports.ui.workspace.WINDOW_REPOSITIONING_DELAY;
const Main = imports.ui.main;
const Workspace = imports.ui.workspace.Workspace;
const WindowManager = imports.ui.windowManager.WindowManager;
// The WindowPreview class is only available on GNOME Shell 3.38+;
let WindowPreview = null;
try {
WindowPreview = imports.ui.windowPreview.WindowPreview;
} catch (error) {
// Nothing to be done, we are on GNOME Shell 3.36.
}
const ExtensionUtils = imports.misc.extensionUtils;
const Me = imports.misc.extensionUtils.getCurrentExtension();
const utils = Me.imports.utils;
const utils = Me.imports.src.utils;
//////////////////////////////////////////////////////////////////////////////////////////
// This extensions modifies the window-close animation to look like the window was set //
// on fire. While this is definitely a homage to the good old Compiz plugin, it is //
// implemented differently. While Compiz used a particle system, this extension uses a //
// perlin noise shader. //
// This extensions modifies the window-close and window-open animations with all kinds //
// of effects. The effects are implemented using GLSL shaders which are applied to the //
// window's Clutter.Actor. The extension is actually very simple, much of the //
// complexity comes from the fact that GNOME Shell usually does not show an animation //
// when a window is closed in the overview. Several methods need to be monkey-patched //
// to get this working. For more details, read the other comments in this file... //
//////////////////////////////////////////////////////////////////////////////////////////
class Extension {
@@ -38,247 +48,505 @@ class Extension {
// from GNOME Tweaks, when you log in or when the screen is unlocked.
enable() {
// New effects must be registered here and in prefs.js.
this._ALL_EFFECTS = [
new Me.imports.src.Apparition.Apparition(),
new Me.imports.src.BrokenGlass.BrokenGlass(),
new Me.imports.src.EnergizeA.EnergizeA(),
new Me.imports.src.EnergizeB.EnergizeB(),
new Me.imports.src.Fire.Fire(),
new Me.imports.src.Hexagon.Hexagon(),
new Me.imports.src.Matrix.Matrix(),
new Me.imports.src.SnapOfDisintegration.SnapOfDisintegration(),
new Me.imports.src.TRexAttack.TRexAttack(),
new Me.imports.src.TVEffect.TVEffect(),
new Me.imports.src.Wisps.Wisps(),
];
// Load all of our resources.
this._resources = Gio.Resource.load(Me.path + '/resources/burn-my-windows.gresource');
Gio.resources_register(this._resources);
// Store a reference to the settings object.
this._settings = ExtensionUtils.getSettings();
// We will monkey-patch these three methods. Let's store the original ones.
this._origWindowRemoved = Workspace.prototype._windowRemoved;
this._origDoRemoveWindow = Workspace.prototype._doRemoveWindow;
this._origShouldAnimateActor = WindowManager.prototype._shouldAnimateActor;
// We may also override these animation times.
this._origDestroyTime = imports.ui.windowManager.DESTROY_WINDOW_ANIMATION_TIME;
const loadAnimationTimes = () => {
imports.ui.windowManager.DESTROY_WINDOW_ANIMATION_TIME =
this._settings.get_int('destroy-animation-time');
};
this._settings.connect('changed::destroy-animation-time', loadAnimationTimes);
loadAnimationTimes();
// We will use extensionThis to refer to the extension inside the patched methods of
// the WorkspacesView.
// We will use extensionThis to refer to the extension inside the patched methods.
const extensionThis = this;
// These three method overrides are mega-hacky! They are only required to make the
// fire animation work in the overview. Usually, windows are not faded when closed
// from the overview (why?). With these overrides we make sure that they are actually
// faded out. To do this, _windowRemoved and _doRemoveWindow now check whether there
// is a transition ongoing (via extensionThis._shouldDestroy). If that's the case,
// they methods do nothing. Are the actors removed in the end? I hope so. The
// _destroyWindow of the WindowManager sets the transitions up and should take care of
// removing the actors at the end of the transitions.
// https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/main/js/ui/workspace.js#L1299
// We will monkey-patch these methods. Let's store the original ones.
this._origAddWindowClone = Workspace.prototype._addWindowClone;
this._origWindowRemoved = Workspace.prototype._windowRemoved;
this._origDoRemoveWindow = Workspace.prototype._doRemoveWindow;
this._origShouldAnimateActor = WindowManager.prototype._shouldAnimateActor;
this._origWaitForOverviewToHide = WindowManager.prototype._waitForOverviewToHide;
this._origDestroyWindowDone = WindowManager.prototype._destroyWindowDone;
// We will also override these animation times.
this._origWindowTime = imports.ui.windowManager.DESTROY_WINDOW_ANIMATION_TIME;
this._origDialogTime = imports.ui.windowManager.DIALOG_DESTROY_WINDOW_ANIMATION_TIME;
// ------------------------------------------------ patching the window-open animation
// Here we add an effect to the window-open animation. This is done whenever a new
// window is created. Usually, there is no real window animation for opening windows
// in the overview - only the window's clone is animated - but thanks to the hacks
// below, we can show the real animations in the overview.
// If a window is created the transitions are set up in the async _mapWindow of the
// WindowManager:
// https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/main/js/ui/windowManager.js#L1452
// AFAIK, overriding this method is not possible as it's called by a signal to
// which it is bound via the bind() method. To tweak the async transition
// anyways, we override the actors ease() method once - the next time it will be
// called by the _mapWindow(), we will intercept it!
this._windowCreatedConnection =
global.display.connect('window-created', (d, metaWin) => {
let actor = metaWin.get_compositor_private();
const orig = actor.ease;
actor.ease = function(...params) {
orig.apply(actor, params);
actor.ease = orig;
// There are cases where the ease() is called prior to mapping the actor. If
// the actor is not yet mapped, we defer the effect creation.
if (actor.mapped) {
extensionThis._setupEffect(actor, true);
} else {
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
// canvas to draw the effects. Outside the overview we can simply increase the scale
// of the actor. However, if we are in the overview, we have to enlarge the clone of
// the window as well.
Workspace.prototype._addWindowClone = function(...params) {
const result = extensionThis._origAddWindowClone.apply(this, params);
// The parameters of this method changed a bit through the versions...
let realWindow, clone;
if (utils.shellVersionIs(3, 36)) {
clone = result[0];
realWindow = clone.realWindow;
} else if (utils.shellVersionIs(3, 38)) {
clone = result._windowContainer;
realWindow = params[0].get_compositor_private();
} else {
clone = result.window_container;
realWindow = params[0].get_compositor_private();
}
// Syncing the real window's scale with the scale of its clone only works on GNOME
// Shell 3.38+. So effects cannot scale windows in the overview of GNOME 3.36...
if (utils.shellVersionIsAtLeast(3, 38)) {
const xID = realWindow.connect('notify::scale-x', () => {
if (realWindow.scale_x > 0 && clone.allocation.get_size()[0] > 0) {
clone.scale_x = realWindow.scale_x;
}
});
const yID = realWindow.connect('notify::scale-y', () => {
if (realWindow.scale_y > 0 && clone.allocation.get_size()[1] > 0) {
clone.scale_y = realWindow.scale_y;
}
});
clone.connect('destroy', () => {
realWindow.disconnect(xID);
realWindow.disconnect(yID);
});
}
// This is actually needed for the window-close animation on GNOME Shell 3.36.
// On GNOME 3.36, the window clone's 'destroy' handler only calls _removeWindowClone
// but not _doRemoveWindow. The latter is required to trigger the repositioning of
// the overview window layout. Therefore we call this method in addition.
// https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/gnome-3-36/js/ui/workspace.js#L1877
// https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/main/js/ui/workspace.js#L1405
if (utils.shellVersionIs(3, 36)) {
clone.connect('destroy', () => this._doRemoveWindow(clone.metaWindow));
}
return result;
};
// Usually, windows are faded in after the overview is completely hidden. We enable
// window-open animations by not waiting for this.
WindowManager.prototype._waitForOverviewToHide = async function() {
return Promise.resolve();
};
// Here comes the ULTRA-HACK: The method below is called (amongst others) by the
// _destroyWindow and _mapWindow methods of the WindowManager. Usually, it returns
// false when we are in the overview. This prevents the window animations. As we
// cannot monkey-patch the _destroyWindow or _mapWindow methods themselves, we check
// inside the method below whether it was called by either of those. If so, we return
// true. Let's see if this breaks stuff left and right...
// https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/main/js/ui/windowManager.js#L1124
WindowManager.prototype._shouldAnimateActor = function(...params) {
const caller = (new Error()).stack.split('\n')[1];
if (caller.includes('_destroyWindow@') || caller.includes('_mapWindow@')) {
return true;
}
return extensionThis._origShouldAnimateActor.apply(this, params);
};
// ----------------------------------------------- patching the window-close animation
// The signal handler below and the following patch are all which is required outside
// of the overview. All other hacks further below are just required to defer the
// window-hiding in the overview until the effect is finished.
// The close animation is set up in WindowManager's _destroyWindow:
// https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/main/js/ui/windowManager.js#L1541
// As we cannot monkey-patch the _destroyWindow itself, we connect to the 'destroy'
// signal of the window manager and tweak the animation to our needs.
this._destroyConnection = global.window_manager.connect('destroy', (wm, actor) => {
this._setupEffect(actor, false);
});
// Once the window-close animation is is finished, the window manager's
// _destroyWindowDone is called. We use this to free the effect so that it can be
// re-used in future.
// https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/main/js/ui/windowManager.js#L1541
WindowManager.prototype._destroyWindowDone = function(shellwm, actor) {
if (this._destroying.has(actor)) {
const shader = actor.get_effect('burn-my-windows-effect');
if (shader) {
actor.remove_effect(shader);
shader.returnToFactory();
}
}
// Call the original method.
extensionThis._origDestroyWindowDone.apply(this, [shellwm, actor]);
};
// These three method overrides are mega-hacky! Usually, windows are not faded when
// closed from the overview (why?). With these overrides we make sure that they are
// actually faded out. To do this, _windowRemoved and _doRemoveWindow now check
// whether there is a transition ongoing (via extensionThis._shouldDestroy). If that's
// the case, these methods do nothing. Are the actors removed in the end? I hope so.
// The _destroyWindow of the WindowManager sets the transitions up and should take
// care of removing the actors at the end of the transitions.
// https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/main/js/ui/workspace.js#L1301
Workspace.prototype._windowRemoved = function(ws, metaWin) {
if (extensionThis._shouldDestroy(this, metaWin)) {
extensionThis._origWindowRemoved.apply(this, [ws, metaWin]);
}
};
// https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/main/js/ui/workspace.js#L1178
// https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/main/js/ui/workspace.js#L1180
Workspace.prototype._doRemoveWindow = function(metaWin) {
if (extensionThis._shouldDestroy(this, metaWin)) {
extensionThis._origDoRemoveWindow.apply(this, [metaWin]);
}
};
// Here comes the ULTRA-HACK: The method below is called (amongst others) by the
// _destroyWindow method of the WindowManager. Usually, it returns false when we are
// in the overview. This prevents the window-close animation. As we cannot
// monkey-patch the _destroyWindow method itself, we check inside the method below
// whether it was called by _destroyWindow. If so, we return true. Let's see if this
// breaks stuff left and right...
// https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/main/js/ui/windowManager.js#L1125
WindowManager.prototype._shouldAnimateActor = function(actor, types) {
if ((new Error()).stack.split('\n')[1].includes('_destroyWindow@')) {
return true;
}
return extensionThis._origShouldAnimateActor.apply(this, [actor, types]);
};
// With the code below, we hide the window-overlay (icon, label, close button) in the
// overview once the close-animation is running. As the WindowPreview class is only
// available on GNOME 3.38 and beyond, we cannot hide the overlay on GNOME 3.36.
if (WindowPreview) {
// The close animation is set up in WindowManager's _destroyWindow:
// https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/main/js/ui/windowManager.js#L1549
// As we cannot monkey-patch the _destroyWindow itself, we connect to the 'destroy'
// signal of the window manager and tweak the animation to our needs.
this._destroyConnection = global.window_manager.connect('destroy', (wm, actor) => {
// The _destroyWindow method of WindowManager, which was called right before this
// one, set up the window close animation. This usually fades-out the window and
// scales it a bit down. If no transition is in progress, something unexpected
// happened. We rather try not to burn the window!
const transition = actor.get_transition('opacity');
if (!transition) {
return;
}
// We will monkey-patch these methods.
this._origDeleteAll = WindowPreview.prototype._deleteAll;
this._origRestack = WindowPreview.prototype._restack;
this._origInit = WindowPreview.prototype._init;
// If there's a transition in progress, we re-target these transitions so that the
// window is neither scaled nor faded.
const tweakTransition = (property, value) => {
const transition = actor.get_transition(property);
if (transition) {
transition.set_to(value);
transition.set_progress_mode(Clutter.AnimationMode.EASE_OUT_QUAD);
// Whenever a WindowPreview is created, we connect to the referenced Meta.Window's
// 'unmanaged' signal to hide the overlay.
WindowPreview.prototype._init = function(...params) {
extensionThis._origInit.apply(this, params);
// Hide the window's icon, name, and close button.
const connectionID = this.metaWindow.connect('unmanaged', () => {
if (this.window_container) {
this.overlayEnabled = false;
this._icon.visible = false;
}
});
// Make sure to not call the callback above if the Meta.Window was not unmanaged
// before leaving the overview.
this.connect('destroy', () => {
this.metaWindow.disconnect(connectionID);
});
};
// The _deleteAll is called when the user clicks the X in the overview. We should
// not attempt to close windows twice. Due to the animation in the overview, the
// close button can be clicked twice which normally would lead to a crash.
WindowPreview.prototype._deleteAll = function() {
if (!this._closeRequested) {
extensionThis._origDeleteAll.apply(this);
}
};
tweakTransition('opacity', 255);
tweakTransition('scale-x', 1);
tweakTransition('scale-y', 1);
// Instead, we add a cool fire shader to our window actor! The noise implementation
// is from https://www.shadertoy.com/view/3tcBzH (CC-BY-NC-SA).
const shader = new Clutter.ShaderEffect({
shader_type: Clutter.ShaderType.FRAGMENT_SHADER,
});
shader.set_shader_source(`
uniform sampler2D texture;
uniform float progress;
uniform float time;
uniform int sizeX;
uniform int sizeY;
// These may be configurable in the future.
const float EDGE_BLEND = 70;
const float BURN_RANGE = 0.1;
const float BURN_TIME = 0.2;
const vec2 FIRE_SCALE = vec2(400, 600);
const float FIRE_SPEED = 0.5;
float rand(vec2 co) {
return fract(sin(dot(co.xy ,vec2(12.9898,78.233))) * 43758.5453);
// This is required, else WindowPreview's _restack() which is called by the
// "this.overlayEnabled = false", sometimes tries to access an already delete
// WindowPreview.
WindowPreview.prototype._restack = function() {
if (!this._closeRequested) {
extensionThis._origRestack.apply(this);
}
float hermite(float t) {
return t * t * (3.0 - 2.0 * t);
}
float noiseImpl(vec2 co, float frequency) {
vec2 v = vec2(co.x * frequency, co.y * frequency);
float ix1 = floor(v.x);
float iy1 = floor(v.y);
float ix2 = floor(v.x + 1.0);
float iy2 = floor(v.y + 1.0);
float fx = hermite(fract(v.x));
float fy = hermite(fract(v.y));
float fade1 = mix(rand(vec2(ix1, iy1)), rand(vec2(ix2, iy1)), fx);
float fade2 = mix(rand(vec2(ix1, iy2)), rand(vec2(ix2, iy2)), fx);
return mix(fade1, fade2, fy);
}
float pNoise(vec2 co, float freq, int steps, float persistence) {
float value = 0.0;
float ampl = 1.0;
float sum = 0.0;
for(int i=0 ; i<steps ; i++) {
sum += ampl;
value += noiseImpl(co, freq) * ampl;
freq *= 2.0;
ampl *= persistence;
}
return value / sum;
}
vec4 getFireColor(float v) {
const float steps[5] = float[](0.0, 0.2, 0.3, 0.5, 1.0);
const vec4 colors[5] = vec4[](
vec4(0.3, 0.2, 0.1, 0.0),
vec4(1.0, 0.3, 0.15, 0.7),
vec4(1.0, 0.3, 0.15, 0.9),
vec4(1.0, 0.65, 0.1, 1.0),
vec4(1, 1, 1, 1.0)
);
for (int i=0; i<4; ++i) {
if (v <= steps[i+1]) {
return mix(colors[i], colors[i+1], vec4(v - steps[i])/(steps[i+1]-steps[i]));
}
}
}
void main(void) {
float burnProgress = clamp(progress/BURN_TIME, 0, 1);
float afterBurnProgress = clamp((progress-BURN_TIME)/(1-BURN_TIME), 0, 1);
// Gradient from top to bottom.
float t = cogl_tex_coord_in[0].t * (1 - BURN_RANGE);
// Visible part of the window. Gradually dissolves towards the bottom.
float alpha = 1 - clamp((burnProgress - t) / BURN_RANGE, 0, 1);
// Get window texture.
cogl_color_out = texture2D(texture, cogl_tex_coord_in[0].st) * alpha;
// Gradient from top burning window.
float mask = clamp(t*(1-alpha)/burnProgress, 0, 1);
// Fade-out when the window burned down.
if (progress > BURN_TIME) {
mask *= mix(1, 1-t, afterBurnProgress) * pow(1-afterBurnProgress, 2);
}
// Fade at window borders.
vec2 pos = cogl_tex_coord_in[0].st * vec2(sizeX, sizeY);
mask *= clamp(pos.x / EDGE_BLEND, 0, 1);
mask *= clamp(pos.y / EDGE_BLEND, 0, 1);
mask *= clamp((sizeX - pos.x) / EDGE_BLEND, 0, 1);
mask *= clamp((sizeY - pos.y) / EDGE_BLEND, 0, 1);
vec2 firePos = pos / FIRE_SCALE;
firePos.y += time * FIRE_SPEED;
float noise = pNoise(firePos, 10.0, 5, 0.5);
// Modulate noise by mask and map to color.
vec4 color = getFireColor(noise*mask);
color.rgb *= color.a;
// cogl_color_out = vec4(mask);
cogl_color_out += color;
}
`);
actor.add_effect(shader);
// Update uniforms at each frame.
transition.connect('new-frame', (t) => {
shader.set_uniform_value('progress', t.get_progress());
shader.set_uniform_value('time', 0.001 * t.get_elapsed_time());
shader.set_uniform_value('sizeX', actor.width);
shader.set_uniform_value('sizeY', actor.height);
});
});
};
}
}
// This function could be called after the extension is uninstalled, disabled in GNOME
// Tweaks, when you log out or when the screen locks.
disable() {
// Restore the original behavior.
// Free all effect resources.
this._ALL_EFFECTS = [];
// Unregister our resources.
Gio.resources_unregister(this._resources);
// Restore the original window-open and window-close animations.
global.window_manager.disconnect(this._destroyConnection);
global.display.disconnect(this._windowCreatedConnection);
Workspace.prototype._windowRemoved = this._origWindowRemoved;
Workspace.prototype._doRemoveWindow = this._origDoRemoveWindow;
WindowManager.prototype._shouldAnimateActor = this._origShouldAnimateActor;
Workspace.prototype._addWindowClone = this._origAddWindowClone;
Workspace.prototype._windowRemoved = this._origWindowRemoved;
Workspace.prototype._doRemoveWindow = this._origDoRemoveWindow;
WindowManager.prototype._shouldAnimateActor = this._origShouldAnimateActor;
WindowManager.prototype._waitForOverviewToHide = this._origWaitForOverviewToHide;
WindowManager.prototype._destroyWindowDone = this._origDestroyWindowDone;
imports.ui.windowManager.DESTROY_WINDOW_ANIMATION_TIME = this._origDestroyTime;
imports.ui.windowManager.DESTROY_WINDOW_ANIMATION_TIME = this._origWindowTime;
imports.ui.windowManager.DIALOG_DESTROY_WINDOW_ANIMATION_TIME = this._origDialogTime;
if (WindowPreview) {
WindowPreview.prototype._deleteAll = this._origDeleteAll;
WindowPreview.prototype._restack = this._origRestack;
WindowPreview.prototype._init = this._origInit;
}
this._settings = null;
}
// ----------------------------------------------------------------------- private stuff
// This method adds one of the configured effects to the given actor. If forOpening is
// set to true, a effect from the enabled window-open animations is chosen, else an
// enabled window-close animation is used. This will also tweak the transitions of the
// given actor (e.g. scale it up if required).
_setupEffect(actor, forOpening) {
// Only add effects to normal windows and dialog windows.
const isNormalWindow = actor.meta_window.window_type == Meta.WindowType.NORMAL;
const isDialogWindow =
actor.meta_window.window_type == Meta.WindowType.MODAL_DIALOG ||
actor.meta_window.window_type == Meta.WindowType.DIALOG;
if (!isNormalWindow && !isDialogWindow) {
return;
}
// We do nothing if a dialog got closed and we should not burn them.
const shouldDestroyDialogs = this._settings.get_boolean('destroy-dialogs');
// If an effect is to be previewed, we have to affect dialogs es well. This is
// because the preview window is a dialog window...
const action = forOpening ? 'open' : 'close';
const previewNick = this._settings.get_string(action + '-preview-effect');
if (isDialogWindow && !shouldDestroyDialogs && previewNick == '') {
this._fixAnimationTimes(isDialogWindow, forOpening, null);
return;
}
// There is the weird case where an animation is already ongoing. This happens when a
// window is closed which has been created before the session was started (e.g. when
// GNOME Shell has been restarted in the meantime).
const oldShader = actor.get_effect('burn-my-windows-effect');
if (oldShader) {
actor.remove_effect(oldShader);
oldShader.returnToFactory();
}
// ------------------------------------------------------------------ choose an effect
// Now we chose a random effect from all enabled effects.
let effect = null;
// First we check if an effect is to be previewed.
if (previewNick != '') {
effect = this._ALL_EFFECTS.find(effect => effect.getNick() == previewNick);
// Only preview the effect once.
this._settings.set_string(action + '-preview-effect', '');
}
// Else we choose a random effect from all enabled effects.
else {
// Therefore, we first create a list of all currently enabled effects.
const enabled = this._ALL_EFFECTS.filter(effect => {
return this._settings.get_boolean(`${effect.getNick()}-${action}-effect`);
});
// And then choose a random effect.
if (enabled.length > 0) {
effect = enabled[Math.floor(Math.random() * enabled.length)];
}
}
// If nothing was enabled, we have to do nothing :)
if (effect == null) {
this._fixAnimationTimes(isDialogWindow, forOpening, null);
return;
}
// ----------------------------------------------------------- tweak actor transitions
// If we are currently performing integration test, all animations are set to a fixed
// duration and show a fixed frame from the middle of the animation.
const testMode = this._settings.get_boolean('test-mode');
// The following is used to tweak the ongoing transitions of a window actor. Usually
// windows are faded in / out scaled up / down slightly by GNOME Shell. Here, we tweak
// the transitions so that nothing changes. The window stays opaque and is scaled to
// actorScale.
const actorScale = effect.getActorScale(this._settings);
// To make things deterministic during testing, we set the effect duration to 5
// seconds.
const duration =
testMode ? 5000 : this._settings.get_int(effect.getNick() + '-animation-time');
// All animations are relative to the window's center.
actor.set_pivot_point(0.5, 0.5);
// We tweak the opacity and scale of the actor. If there is no ongoing transition for
// a property, a new one is set up.
const config = {'opacity': 255, 'scale-x': actorScale.x, 'scale-y': actorScale.y};
for (const property in config) {
let transition = actor.get_transition(property);
// If there is currently no ongoing transition, we create a new one. Clutter does
// not like to create transitions with the same start and end value - however, we
// need at least one transition for our progress value in the shader. So we trick
// Clutter by creating an arbitrary transition first and then modifying the start
// and end values according to our config object.
if (!transition) {
actor.set_property(property, 0);
actor.save_easing_state();
actor.set_easing_duration(1000);
actor.set_property(property, 1);
actor.restore_easing_state();
// Now there should be a transition!
transition = actor.get_transition(property);
}
// Tweak the transition according to the config object. For some reason, there are
// rare cases, where no transition is set up. This happens from time to time...
if (transition) {
transition.set_duration(duration);
transition.set_to(config[property]);
transition.set_from(config[property]);
transition.set_progress_mode(Clutter.AnimationMode.LINEAR);
}
}
// Once the transitions are finished, we restore the original actor size.
if (forOpening) {
const connectionID = actor.connect('transitions-completed', () => {
actor.scale_x = 1.0;
actor.scale_y = 1.0;
actor.disconnect(connectionID);
});
}
// -------------------------------------------------------------------- add the shader
// Now add a cool shader to our window actor!
const shader = effect.shaderFactory.getShader();
// There should always be an opacity transition going on...
const transition = actor.get_transition('opacity');
if (!transition) {
this._fixAnimationTimes(isDialogWindow, forOpening, null);
utils.debug('Cannot setup shader without opacity transition.')
return;
}
// Assign the effect to the window actor!
actor.add_effect_with_name('burn-my-windows-effect', shader);
// Set one-time uniforms.
shader.beginAnimation(this._settings, forOpening, actor);
// Set other uniforms each frame.
transition.connect('new-frame', (t) => {
if (testMode) {
shader.updateAnimation(0.5, 0.001 * duration * 0.5);
} else {
shader.updateAnimation(t.get_progress(), 0.001 * t.get_elapsed_time());
}
});
// Remove the effect if the animation finished or was interrupted.
if (forOpening) {
transition.connect('stopped', () => {
const oldShader = actor.get_effect('burn-my-windows-effect');
if (oldShader) {
actor.remove_effect(oldShader);
oldShader.returnToFactory();
}
});
}
// Finally, ensure that all animation times are set properly so that other extensions
// may guess how long it will take until windows are gone :)
this._fixAnimationTimes(isDialogWindow, forOpening, duration);
}
// The code below is not necessary for Burn-My-Windows to function. However, there
// are some extensions such as "Show Application View When Workspace Empty"
// https://extensions.gnome.org/extension/2036/show-application-view-when-workspace-empty/
// which do something *after* a window was closed. As the window-close animation
// duration depends on the used effect, this may vary each time a window is
// closed. We set the currently used time here, so that others can get an idea how
// long this will take...
_fixAnimationTimes(isDialogWindow, forOpening, duration) {
if (!forOpening) {
if (isDialogWindow) {
imports.ui.windowManager.DIALOG_DESTROY_WINDOW_ANIMATION_TIME =
duration != null ? duration : this._origDialogTime;
} else {
imports.ui.windowManager.DESTROY_WINDOW_ANIMATION_TIME =
duration != null ? duration : this._origWindowTime;
}
}
}
// This is required to enable window-close animations in the overview. See the comment
// for Workspace.prototype._windowRemoved above for an explanation.
_shouldDestroy(workspace, metaWindow) {
const index = workspace._lookupIndex(metaWindow);
if (index == -1) {
return true;
}
const actor = workspace._windows[index]._windowActor;
if (!actor.get_transition('opacity')) {
// This was called "realWindow" in GNOME 3.36.
const propertyName = utils.shellVersionIs(3, 36) ? 'realWindow' : '_windowActor';
const actor = workspace._windows[index][propertyName];
if (!actor.get_transition('scale-y')) {
return true;
}
+6 -3
View File
@@ -1,13 +1,16 @@
{
"uuid": "burn-my-windows@schneegans.github.com",
"description": "Disintegrate your apps the old-school way.",
"description": "Disintegrate your windows with style.",
"name": "Burn My Windows",
"gettext-domain": "burn-my-windows",
"settings-schema": "org.gnome.shell.extensions.burn-my-windows",
"shell-version": [
"3.36",
"3.38",
"40",
"41"
"41",
"42"
],
"url": "https://github.com/Schneegans/Burn-My-Windows",
"version": 1
"version": 16
}
+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-05-17 19:18+0000\n"
"Last-Translator: fawaz006 <fawaz27000@hotmail.com>\n"
"Language-Team: Arabic <https://hosted.weblate.org/projects/burn-my-windows/"
"core/ar/>\n"
"Language: ar\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
"&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n"
"X-Generator: Weblate 4.13-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 "تنشيط أ"
#: 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 "مشاهدة ملف Changelog"
#: 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 "ضوضاء ثلاثية الأبعاد"
#: 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 "مرحبًا بك في 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 "اختر إعدادًا مسبقًا"
+359
View File
@@ -0,0 +1,359 @@
# 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.
#
#, fuzzy
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: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\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.
#: prefs.js:510
#, javascript-format
msgid "Preview for %s"
msgstr ""
#: 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 ""
#: 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
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 ""
#: 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 ""
#: 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 ""
+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"
+372
View File
@@ -0,0 +1,372 @@
# 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: Simon Schneegans <code@simonschneegans.de>\n"
"Language-Team: German <https://hosted.weblate.org/projects/burn-my-windows/"
"core/de/>\n"
"Language: de\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 "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.
#: prefs.js:510
#, javascript-format
msgid "Preview for %s"
msgstr "Vorschau für %s"
#: prefs.js:532
msgid "Close this Window to Preview the Effect!"
msgstr "Schließen Sie dieses Fenster, um eine Vorschau des Effekts anzuzeigen!"
#: src/BrokenGlass.js:57
msgid "Broken Glass"
msgstr "Glassplitter"
#: src/TVEffect.js:56
msgid "TV Effect"
msgstr "TV-Effekt"
#: src/TRexAttack.js:56
msgid "T-Rex Attack"
msgstr "T-Rex-Angriff"
#: src/SnapOfDisintegration.js:60
msgid "Snap of Disintegration"
msgstr "Fingerschnippen des Zerfalls"
#: src/Wisps.js:55
msgid "Wisps"
msgstr "Irrlichter"
#: src/Fire.js:58
msgid "Fire"
msgstr "Feuer"
#: src/Fire.js:130
msgid "Default Fire"
msgstr "Standardfeuer"
#: src/Fire.js:140
msgid "Hell Fire"
msgstr "Höllenfeuer"
#: src/Fire.js:150
msgid "Dark and Smutty"
msgstr "Dunkel und schmutzig"
#: src/Fire.js:160
msgid "Cold Breeze"
msgstr "Kalte Brise"
#: src/Fire.js:170
msgid "Santa is Coming"
msgstr "Weihnachtsgrüße"
#: src/Hexagon.js:53
msgid "Hexagon"
msgstr "Hexagon"
#: src/EnergizeA.js:54
msgid "Energize A"
msgstr "Energie A"
#: src/Apparition.js:57
msgid "Apparition"
msgstr "Apparieren"
#: src/EnergizeB.js:54
msgid "Energize B"
msgstr "Energie B"
#: src/Matrix.js:58
msgid "Matrix"
msgstr "Matrix"
#: resources/ui/common/main-menu.ui:6
msgid "Visit Homepage"
msgstr "Homepage besuchen"
#: resources/ui/common/main-menu.ui:10
msgid "View Changelog"
msgstr "Changelog anzeigen"
#: resources/ui/common/main-menu.ui:16
msgid "Report a Bug"
msgstr "Fehler melden"
#: resources/ui/common/main-menu.ui:20
msgid "Create an Effect"
msgstr "Einen Effekt hinzufügen"
#: resources/ui/common/main-menu.ui:24
msgid "Translate"
msgstr "Übersetzen"
#: resources/ui/common/main-menu.ui:28
msgid "Donate"
msgstr "Spenden"
#: resources/ui/common/main-menu.ui:41
msgid "About Burn-My-Windows"
msgstr "Über Burn-My-Windows"
#: resources/ui/gtk4/Matrix.ui:24 resources/ui/gtk4/BrokenGlass.ui:24
#: resources/ui/gtk4/Wisps.ui:24 resources/ui/gtk4/Fire.ui:49
#: resources/ui/gtk4/SnapOfDisintegration.ui:24
#: resources/ui/gtk4/TRexAttack.ui:24 resources/ui/gtk4/TVEffect.ui:24
#: resources/ui/gtk4/EnergizeA.ui:24 resources/ui/gtk4/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 "Animationszeit [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 "Auf Standardwert zurücksetzen"
#: resources/ui/gtk4/Matrix.ui:70 resources/ui/gtk4/BrokenGlass.ui:70
#: resources/ui/gtk4/Wisps.ui:70 resources/ui/gtk4/Fire.ui:95
#: resources/ui/gtk4/SnapOfDisintegration.ui:70
#: resources/ui/gtk4/EnergizeA.ui:70 resources/ui/gtk4/Hexagon.ui:70
#: resources/ui/gtk4/EnergizeB.ui:70 resources/ui/gtk3/Wisps.ui:91
#: resources/ui/gtk3/Fire.ui:141 resources/ui/gtk3/EnergizeA.ui:91
#: resources/ui/gtk3/Hexagon.ui:98 resources/ui/gtk3/EnergizeB.ui:91
msgid "Scale"
msgstr "Größe"
#: resources/ui/gtk4/Matrix.ui:116 resources/ui/gtk4/Apparition.ui:70
#: resources/ui/gtk3/Apparition.ui:112
msgid "Randomness"
msgstr "Zufälligkeit"
#: resources/ui/gtk4/Matrix.ui:162
msgid "Vertical Overshooting"
msgstr "Vertikales Überschießen"
#: resources/ui/gtk4/Matrix.ui:208
msgid "Trail Color"
msgstr "Farbe der Spur"
#: resources/ui/gtk4/Matrix.ui:242
msgid "Tip Color"
msgstr "Farbe der Spitze"
#: resources/ui/gtk4/BrokenGlass.ui:116
msgid "Gravity"
msgstr "Schwerkraft"
#: resources/ui/gtk4/BrokenGlass.ui:162
msgid "Blow Force"
msgstr "Schlagkraft"
#: resources/ui/gtk4/BrokenGlass.ui:212
msgid "Shatter From Pointer Location"
msgstr "Von Mauszeigerposition zerbrechen"
#: resources/ui/gtk4/BrokenGlass.ui:221
msgid ""
"The shards will fly away from where your mouse pointer was when closing the "
"window."
msgstr ""
"Die Scherben fliegen von der Stelle weg, an der sich Ihr Mauszeiger beim "
"Schließen des Fensters befand."
#: resources/ui/gtk4/Wisps.ui:116 resources/ui/gtk4/SnapOfDisintegration.ui:116
#: resources/ui/gtk4/TVEffect.ui:70 resources/ui/gtk4/EnergizeA.ui:116
#: resources/ui/gtk4/EnergizeB.ui:116 resources/ui/gtk3/Wisps.ui:139
#: resources/ui/gtk3/TVEffect.ui:83 resources/ui/gtk3/EnergizeA.ui:139
#: resources/ui/gtk3/EnergizeB.ui:139
msgid "Color"
msgstr "Farbe"
#: resources/ui/gtk4/Fire.ui:25 resources/ui/gtk3/Fire.ui:49
msgid "Presets"
msgstr "Voreinstellungen"
#: resources/ui/gtk4/Fire.ui:141 resources/ui/gtk3/Fire.ui:189
msgid "Speed"
msgstr "Geschwindigkeit"
#: resources/ui/gtk4/Fire.ui:191 resources/ui/gtk3/Fire.ui:241
msgid "3D Noise"
msgstr "3D-Rauschen"
#: resources/ui/gtk4/Fire.ui:200 resources/ui/gtk3/Fire.ui:250
msgid "Creates a more dynamic fire but requires more GPU power."
msgstr "Erzeugt ein dynamischeres Feuer, erfordert jedoch mehr GPU-Leistung."
#: resources/ui/gtk4/Fire.ui:240 resources/ui/gtk3/Fire.ui:300
msgid "Gradient"
msgstr "Farbverlauf"
#: resources/ui/gtk4/TRexAttack.ui:70
msgid "Claw Scratch Scale"
msgstr "Kratzergröße"
#: resources/ui/gtk4/TRexAttack.ui:116
msgid "Claw Scratch Count"
msgstr "Kratzeranzahl"
#: resources/ui/gtk4/TRexAttack.ui:162
msgid "Warp Effect"
msgstr "Warp-Effekt"
#: resources/ui/gtk4/TRexAttack.ui:208
msgid "Flash Color"
msgstr "Blitzfarbe"
#: resources/ui/gtk4/effectPage.ui:37 resources/ui/gtk3/effectPage.ui:37
msgid "Preview this Effect"
msgstr "Vorschau dieses Effekts"
#: resources/ui/gtk4/Hexagon.ui:116 resources/ui/gtk3/Hexagon.ui:147
msgid "Mesh Line Width"
msgstr "Gitterlinienstärke"
#: resources/ui/gtk4/Hexagon.ui:162 resources/ui/gtk3/Hexagon.ui:195
msgid "Line Color"
msgstr "Linienfarbe"
#: resources/ui/gtk4/Hexagon.ui:196 resources/ui/gtk3/Hexagon.ui:238
msgid "Glow Color"
msgstr "Leuchtfarbe"
#: resources/ui/gtk4/Hexagon.ui:234 resources/ui/gtk3/Hexagon.ui:285
msgid "Additive Blending"
msgstr "Additives Mischen"
#: resources/ui/gtk4/Hexagon.ui:243 resources/ui/gtk3/Hexagon.ui:294
msgid "You may want to enable this for dark window themes."
msgstr "Für dunkle Fensterthemen sollten Sie diese Option aktivieren."
#: resources/ui/gtk4/prefs.ui:28 resources/ui/gtk3/prefs.ui:35
msgid "Welcome to Burn-My-Windows!"
msgstr "Willkommen bei Burn-My-Windows!"
#: resources/ui/gtk4/prefs.ui:39 resources/ui/gtk3/prefs.ui:46
msgid "If you like this extension, recommend it to your friends :)"
msgstr "Wenn Sie diese Erweiterung mögen, empfehlen Sie sie Ihren Freunden :)"
#: resources/ui/gtk4/prefs.ui:66 resources/ui/gtk3/prefs.ui:74
msgid "Open Window Animation"
msgstr "Fenster-Öffnen-Animation"
#: 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 "Wenn mehrere ausgewählt sind, wird eine zufällig ausgewählt."
#: 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 "Effekte auswählen"
#: resources/ui/gtk4/prefs.ui:110 resources/ui/gtk3/prefs.ui:138
msgid "Close Window Animation"
msgstr "Fenster-Schließen-Animation"
#: resources/ui/gtk4/prefs.ui:150 resources/ui/gtk3/prefs.ui:198
msgid "Also Add Effects to Dialogs"
msgstr "Effekte auch zu Dialogen hinzufügen"
#: resources/ui/gtk4/Apparition.ui:116 resources/ui/gtk3/Apparition.ui:161
msgid "Twirl Intensity"
msgstr "Wirbelintensität"
#: resources/ui/gtk4/Apparition.ui:162 resources/ui/gtk3/Apparition.ui:210
msgid "Shake Intensity"
msgstr "Wackelintensität"
#: resources/ui/gtk4/Apparition.ui:208 resources/ui/gtk3/Apparition.ui:259
msgid "Suction Intensity"
msgstr "Saugintensität"
#: resources/ui/gtk3/Fire.ui:63
msgid "Choose a Preset"
msgstr "Wählen Sie eine Voreinstellung"
#~ msgid "Via PayPal"
#~ msgstr "Mit PayPal"
#~ msgid "Via GitHub"
#~ msgstr "Mit GitHub"
#~ msgid "Create a Custom Effect"
#~ 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-04-08 07:11+0000\n"
"Last-Translator: Óscar Fernández Díaz <oscfdezdz@tuta.io>\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 "Chasquido de desintegración"
#: 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 "Hexágonos"
#: src/EnergizeA.js:54
msgid "Energize A"
msgstr "Energizar A"
#: src/Apparition.js:57
msgid "Apparition"
msgstr "Aparición"
#: 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 "Ancho de la línea de malla"
#: resources/ui/gtk4/Hexagon.ui:162 resources/ui/gtk3/Hexagon.ui:195
msgid "Line Color"
msgstr "Color de línea"
#: resources/ui/gtk4/Hexagon.ui:196 resources/ui/gtk3/Hexagon.ui:238
msgid "Glow Color"
msgstr "Color del brillo"
#: resources/ui/gtk4/Hexagon.ui:234 resources/ui/gtk3/Hexagon.ui:285
msgid "Additive Blending"
msgstr "Fundido activo"
#: resources/ui/gtk4/Hexagon.ui:243 resources/ui/gtk3/Hexagon.ui:294
msgid "You may want to enable this for dark window themes."
msgstr "Puede ser que necesites activar esto para temas oscuros de ventana."
#: 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 "Intensidad del giro"
#: resources/ui/gtk4/Apparition.ui:162 resources/ui/gtk3/Apparition.ui:210
msgid "Shake Intensity"
msgstr "Intensidad del temblor"
#: resources/ui/gtk4/Apparition.ui:208 resources/ui/gtk3/Apparition.ui:259
msgid "Suction Intensity"
msgstr "Intensidad de la succión"
#: 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"
+362
View File
@@ -0,0 +1,362 @@
# 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-08 07:11+0000\n"
"Last-Translator: Jiri Grönroos <jiri.gronroos@iki.fi>\n"
"Language-Team: Finnish <https://hosted.weblate.org/projects/burn-my-windows/"
"core/fi/>\n"
"Language: fi\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 "Tehostevalinnat"
#: prefs.js:140
msgid "Go Back"
msgstr "Takaisin"
#: prefs.js:182
msgid "General Options"
msgstr "Yleiset asetukset"
#: prefs.js:276
msgid "Gold Sponsors"
msgstr "Kultasponsorit"
#: prefs.js:279
msgid "Silver Sponsors"
msgstr "Hopeasponsorit"
#: prefs.js:282
msgid "Bronze Sponsors"
msgstr "Pronssisponsorit"
#: prefs.js:285
msgid "Past Sponsors"
msgstr "Aiemmat sponsorit"
#. Translators: %s will be replaced by the effect's name.
#: prefs.js:510
#, javascript-format
msgid "Preview for %s"
msgstr "Esikatselu tehosteelle %s"
#: prefs.js:532
msgid "Close this Window to Preview the Effect!"
msgstr "Sulje tämä ikkuna esikatsellaksesi tehosteen!"
#: src/BrokenGlass.js:57
msgid "Broken Glass"
msgstr "Rikkoutunut lasi"
#: src/TVEffect.js:56
msgid "TV Effect"
msgstr "TV-tehoste"
#: src/TRexAttack.js:56
msgid "T-Rex Attack"
msgstr "T-Rexin hyökkäys"
#: src/SnapOfDisintegration.js:60
msgid "Snap of Disintegration"
msgstr "Hajoamisen napsahdus"
#: src/Wisps.js:55
msgid "Wisps"
msgstr "Häiveet"
#: src/Fire.js:58
msgid "Fire"
msgstr "Tuli"
#: src/Fire.js:130
msgid "Default Fire"
msgstr "Oletustuli"
#: src/Fire.js:140
msgid "Hell Fire"
msgstr "Helvetintuli"
#: src/Fire.js:150
msgid "Dark and Smutty"
msgstr "Tumma ja likainen"
#: src/Fire.js:160
msgid "Cold Breeze"
msgstr "Kylmän tuulahdus"
#: src/Fire.js:170
msgid "Santa is Coming"
msgstr "Pukki saapuu"
#: src/Hexagon.js:53
msgid "Hexagon"
msgstr "Kuusikulmio"
#: src/EnergizeA.js:54
msgid "Energize A"
msgstr ""
#: src/Apparition.js:57
msgid "Apparition"
msgstr "Ilmestys"
#: src/EnergizeB.js:54
msgid "Energize B"
msgstr ""
#: src/Matrix.js:58
msgid "Matrix"
msgstr "Matriisi"
#: resources/ui/common/main-menu.ui:6
msgid "Visit Homepage"
msgstr "Käy verkkosivulla"
#: resources/ui/common/main-menu.ui:10
msgid "View Changelog"
msgstr "Näytä muutosloki"
#: resources/ui/common/main-menu.ui:16
msgid "Report a Bug"
msgstr "Ilmoita ongelmasta"
#: resources/ui/common/main-menu.ui:20
msgid "Create an Effect"
msgstr "Luo tehoste"
#: resources/ui/common/main-menu.ui:24
msgid "Translate"
msgstr "Käännä"
#: resources/ui/common/main-menu.ui:28
msgid "Donate"
msgstr "Lahjoita"
#: resources/ui/common/main-menu.ui:41
msgid "About Burn-My-Windows"
msgstr "Tietoja - 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 "Animaatioaika [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 "Palauta oletusarvoon"
#: 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 "Skaala"
#: resources/ui/gtk4/Matrix.ui:116 resources/ui/gtk4/Apparition.ui:70
#: resources/ui/gtk3/Apparition.ui:112
msgid "Randomness"
msgstr "Satunnaisuus"
#: resources/ui/gtk4/Matrix.ui:162
msgid "Vertical Overshooting"
msgstr "Pystysuora ylitys"
#: resources/ui/gtk4/Matrix.ui:208
msgid "Trail Color"
msgstr "Polun väri"
#: resources/ui/gtk4/Matrix.ui:242
msgid "Tip Color"
msgstr "Vihjeen väri"
#: resources/ui/gtk4/BrokenGlass.ui:116
msgid "Gravity"
msgstr "Painovoima"
#: resources/ui/gtk4/BrokenGlass.ui:162
msgid "Blow Force"
msgstr ""
#: resources/ui/gtk4/BrokenGlass.ui:212
msgid "Shatter From Pointer Location"
msgstr "Särkyminen osoittimen sijainnista"
#: resources/ui/gtk4/BrokenGlass.ui:221
msgid ""
"The shards will fly away from where your mouse pointer was when closing the "
"window."
msgstr ""
"Sirpaleet lentävät kauas hiiren osoittimen sijainnista kun suljet ikkunan."
#: 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 "Väri"
#: resources/ui/gtk4/Fire.ui:25 resources/ui/gtk3/Fire.ui:49
msgid "Presets"
msgstr "Esiasetukset"
#: resources/ui/gtk4/Fire.ui:141 resources/ui/gtk3/Fire.ui:189
msgid "Speed"
msgstr "Nopeus"
#: 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 ""
#: resources/ui/gtk4/Fire.ui:240 resources/ui/gtk3/Fire.ui:300
msgid "Gradient"
msgstr "Liukuväri"
#: resources/ui/gtk4/TRexAttack.ui:70
msgid "Claw Scratch Scale"
msgstr "Kynnenraapaisun skaala"
#: resources/ui/gtk4/TRexAttack.ui:116
msgid "Claw Scratch Count"
msgstr "Kynnenraapaisujen määrä"
#: 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 "Esikatsele tämä tehoste"
#: 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 "Viivan väri"
#: resources/ui/gtk4/Hexagon.ui:196 resources/ui/gtk3/Hexagon.ui:238
msgid "Glow Color"
msgstr "Hehkun väri"
#: 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 "Tervetuloa, tämä on 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 "Jos pidä tästä laajennuksesta, suosittele sitä kavereillesi :)"
#: resources/ui/gtk4/prefs.ui:66 resources/ui/gtk3/prefs.ui:74
msgid "Open Window Animation"
msgstr "Ikkunan avaamisen animaatio"
#: 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 "Jos useita on valittu, yksi valitaan satunnaisesti."
#: 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 "Valitse tehosteet"
#: resources/ui/gtk4/prefs.ui:110 resources/ui/gtk3/prefs.ui:138
msgid "Close Window Animation"
msgstr "Ikkunan sulkemisen animaatio"
#: resources/ui/gtk4/prefs.ui:150 resources/ui/gtk3/prefs.ui:198
msgid "Also Add Effects to Dialogs"
msgstr "Lisää tehosteet myös dialogi-ikkunoihin"
#: 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 "Valitse esiasetus"
+371
View File
@@ -0,0 +1,371 @@
# 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-05-01 23:10+0000\n"
"Last-Translator: matb <perso@mathieu-bousquet.fr>\n"
"Language-Team: French <https://hosted.weblate.org/projects/burn-my-windows/"
"core/fr/>\n"
"Language: fr\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.1\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.
#: prefs.js:510
#, javascript-format
msgid "Preview for %s"
msgstr "Aperçu pour %s"
#: prefs.js:532
msgid "Close this Window to Preview the Effect!"
msgstr "Fermez cette fenêtre pour un aperçu de l'effet !"
#: src/BrokenGlass.js:57
msgid "Broken Glass"
msgstr "Verre brisé"
#: src/TVEffect.js:56
msgid "TV Effect"
msgstr "Effet TV"
#: src/TRexAttack.js:56
msgid "T-Rex Attack"
msgstr "Attaque de T-Rex"
#: src/SnapOfDisintegration.js:60
msgid "Snap of Disintegration"
msgstr "Désintégration"
#: src/Wisps.js:55
msgid "Wisps"
msgstr "Feux follets"
#: src/Fire.js:58
msgid "Fire"
msgstr "Feu"
#: src/Fire.js:130
msgid "Default Fire"
msgstr "Feu par défaut"
#: src/Fire.js:140
msgid "Hell Fire"
msgstr "Feu de l'enfer"
#: src/Fire.js:150
msgid "Dark and Smutty"
msgstr "Sombre et ténébreux"
#: src/Fire.js:160
msgid "Cold Breeze"
msgstr "Brise froide"
#: src/Fire.js:170
msgid "Santa is Coming"
msgstr "Le Père Noël arrive"
#: src/Hexagon.js:53
msgid "Hexagon"
msgstr "Hexagone"
#: src/EnergizeA.js:54
msgid "Energize A"
msgstr "Énergie A"
#: src/Apparition.js:57
msgid "Apparition"
msgstr "Apparition"
#: src/EnergizeB.js:54
msgid "Energize B"
msgstr "Énergie B"
#: src/Matrix.js:58
msgid "Matrix"
msgstr "Matrix"
#: resources/ui/common/main-menu.ui:6
msgid "Visit Homepage"
msgstr "Visiter la page d'accueil"
#: resources/ui/common/main-menu.ui:10
msgid "View Changelog"
msgstr "Voir le journal des modifications"
#: resources/ui/common/main-menu.ui:16
msgid "Report a Bug"
msgstr "Signaler un bogue"
#: resources/ui/common/main-menu.ui:20
msgid "Create an Effect"
msgstr "Créer un effet"
#: resources/ui/common/main-menu.ui:24
msgid "Translate"
msgstr "Traduire"
#: resources/ui/common/main-menu.ui:28
msgid "Donate"
msgstr "Faire un don"
#: resources/ui/common/main-menu.ui:41
msgid "About Burn-My-Windows"
msgstr "À propos de Burn-My-Windows"
#: resources/ui/gtk4/Matrix.ui:24 resources/ui/gtk4/BrokenGlass.ui:24
#: resources/ui/gtk4/Wisps.ui:24 resources/ui/gtk4/Fire.ui:49
#: resources/ui/gtk4/SnapOfDisintegration.ui:24
#: resources/ui/gtk4/TRexAttack.ui:24 resources/ui/gtk4/TVEffect.ui:24
#: resources/ui/gtk4/EnergizeA.ui:24 resources/ui/gtk4/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 "Durée de l'animation (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 "Réinitialiser à la valeur par défaut"
#: resources/ui/gtk4/Matrix.ui:70 resources/ui/gtk4/BrokenGlass.ui:70
#: resources/ui/gtk4/Wisps.ui:70 resources/ui/gtk4/Fire.ui:95
#: resources/ui/gtk4/SnapOfDisintegration.ui:70
#: resources/ui/gtk4/EnergizeA.ui:70 resources/ui/gtk4/Hexagon.ui:70
#: resources/ui/gtk4/EnergizeB.ui:70 resources/ui/gtk3/Wisps.ui:91
#: resources/ui/gtk3/Fire.ui:141 resources/ui/gtk3/EnergizeA.ui:91
#: resources/ui/gtk3/Hexagon.ui:98 resources/ui/gtk3/EnergizeB.ui:91
msgid "Scale"
msgstr "Échelle"
#: resources/ui/gtk4/Matrix.ui:116 resources/ui/gtk4/Apparition.ui:70
#: resources/ui/gtk3/Apparition.ui:112
msgid "Randomness"
msgstr "Aléatoire"
#: resources/ui/gtk4/Matrix.ui:162
msgid "Vertical Overshooting"
msgstr "Dépassement vertical"
#: resources/ui/gtk4/Matrix.ui:208
msgid "Trail Color"
msgstr "Couleur de la traîne"
#: resources/ui/gtk4/Matrix.ui:242
msgid "Tip Color"
msgstr "Couleur de la pointe"
#: resources/ui/gtk4/BrokenGlass.ui:116
msgid "Gravity"
msgstr "Gravité"
#: resources/ui/gtk4/BrokenGlass.ui:162
msgid "Blow Force"
msgstr "Force d'explosion"
#: resources/ui/gtk4/BrokenGlass.ui:212
msgid "Shatter From Pointer Location"
msgstr "Briser à partir de la position du curseur"
#: resources/ui/gtk4/BrokenGlass.ui:221
msgid ""
"The shards will fly away from where your mouse pointer was when closing the "
"window."
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/SnapOfDisintegration.ui:116
#: resources/ui/gtk4/TVEffect.ui:70 resources/ui/gtk4/EnergizeA.ui:116
#: resources/ui/gtk4/EnergizeB.ui:116 resources/ui/gtk3/Wisps.ui:139
#: resources/ui/gtk3/TVEffect.ui:83 resources/ui/gtk3/EnergizeA.ui:139
#: resources/ui/gtk3/EnergizeB.ui:139
msgid "Color"
msgstr "Couleur"
#: resources/ui/gtk4/Fire.ui:25 resources/ui/gtk3/Fire.ui:49
msgid "Presets"
msgstr "Préréglages"
#: resources/ui/gtk4/Fire.ui:141 resources/ui/gtk3/Fire.ui:189
msgid "Speed"
msgstr "Vitesse"
#: resources/ui/gtk4/Fire.ui:191 resources/ui/gtk3/Fire.ui:241
msgid "3D Noise"
msgstr "Bruit 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 ""
"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
msgid "Gradient"
msgstr "Gradient"
#: resources/ui/gtk4/TRexAttack.ui:70
msgid "Claw Scratch Scale"
msgstr "Taille de la griffe"
#: resources/ui/gtk4/TRexAttack.ui:116
msgid "Claw Scratch Count"
msgstr "Nombre de griffures"
#: resources/ui/gtk4/TRexAttack.ui:162
msgid "Warp Effect"
msgstr "Effet de distorsion"
#: resources/ui/gtk4/TRexAttack.ui:208
msgid "Flash Color"
msgstr "Couleur du flash"
#: resources/ui/gtk4/effectPage.ui:37 resources/ui/gtk3/effectPage.ui:37
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 "Largeur des lignes du maillage"
#: resources/ui/gtk4/Hexagon.ui:162 resources/ui/gtk3/Hexagon.ui:195
msgid "Line Color"
msgstr "Couleur de ligne"
#: resources/ui/gtk4/Hexagon.ui:196 resources/ui/gtk3/Hexagon.ui:238
msgid "Glow Color"
msgstr "Couleur de la lueur"
#: resources/ui/gtk4/Hexagon.ui:234 resources/ui/gtk3/Hexagon.ui:285
msgid "Additive Blending"
msgstr "Mélange additif"
#: resources/ui/gtk4/Hexagon.ui:243 resources/ui/gtk3/Hexagon.ui:294
msgid "You may want to enable this for dark window themes."
msgstr "Vous voudrez peut-être l'activer pour les thèmes de fenêtre sombre."
#: resources/ui/gtk4/prefs.ui:28 resources/ui/gtk3/prefs.ui:35
msgid "Welcome to Burn-My-Windows!"
msgstr "Bienvenue dans 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 vous aimez cette extension, recommandez-la à vos amis :)"
#: resources/ui/gtk4/prefs.ui:66 resources/ui/gtk3/prefs.ui:74
msgid "Open Window Animation"
msgstr "Animation d'ouverture de fenêtre"
#: 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 plusieurs effets sont sélectionnés, un est choisi au hasard."
#: 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 "Choisir les effets"
#: resources/ui/gtk4/prefs.ui:110 resources/ui/gtk3/prefs.ui:138
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 "Intensité du tournoiement"
#: resources/ui/gtk4/Apparition.ui:162 resources/ui/gtk3/Apparition.ui:210
msgid "Shake Intensity"
msgstr "Intensité de la secousse"
#: resources/ui/gtk4/Apparition.ui:208 resources/ui/gtk3/Apparition.ui:259
msgid "Suction Intensity"
msgstr "Intensité de la succion"
#: resources/ui/gtk3/Fire.ui:63
msgid "Choose a Preset"
msgstr "Sélectionner un préréglage"
#~ msgid "Via PayPal"
#~ msgstr "Via PayPal"
#~ msgid "Via GitHub"
#~ msgstr "Via GitHub"
+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-04-16 11:14+0000\n"
"Last-Translator: albanobattistella <albano_battistella@hotmail.com>\n"
"Language-Team: Italian <https://hosted.weblate.org/projects/burn-my-windows/"
"core/it/>\n"
"Language: it\n"
"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 "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.
#: prefs.js:510
#, javascript-format
msgid "Preview for %s"
msgstr "Anteprima per %s"
#: prefs.js:532
msgid "Close this Window to Preview the Effect!"
msgstr "Chiudi questa finestra per visualizzare in anteprima l'effetto!"
#: src/BrokenGlass.js:57
msgid "Broken Glass"
msgstr "Vetro rotto"
#: src/TVEffect.js:56
msgid "TV Effect"
msgstr "Effetto TV"
#: src/TRexAttack.js:56
msgid "T-Rex Attack"
msgstr "Attacco T-Rex"
#: src/SnapOfDisintegration.js:60
msgid "Snap of Disintegration"
msgstr "Scatto di disintegrazione"
#: src/Wisps.js:55
msgid "Wisps"
msgstr "Scintille"
#: src/Fire.js:58
msgid "Fire"
msgstr "Fuoco"
#: src/Fire.js:130
msgid "Default Fire"
msgstr "Fuoco predefinito"
#: src/Fire.js:140
msgid "Hell Fire"
msgstr "Fuoco Infernale"
#: src/Fire.js:150
msgid "Dark and Smutty"
msgstr "Scuro e Tenebroso"
#: src/Fire.js:160
msgid "Cold Breeze"
msgstr "Brezza Fredda"
#: src/Fire.js:170
msgid "Santa is Coming"
msgstr "Babbo Natale sta arrivando"
#: src/Hexagon.js:53
msgid "Hexagon"
msgstr "Esagono"
#: src/EnergizeA.js:54
msgid "Energize A"
msgstr "Energia A"
#: src/Apparition.js:57
msgid "Apparition"
msgstr "Apparizione"
#: src/EnergizeB.js:54
msgid "Energize B"
msgstr "Energia B"
#: src/Matrix.js:58
msgid "Matrix"
msgstr "Matrix"
#: resources/ui/common/main-menu.ui:6
msgid "Visit Homepage"
msgstr "Visita la home page"
#: resources/ui/common/main-menu.ui:10
msgid "View Changelog"
msgstr "Visualizza Changelog"
#: resources/ui/common/main-menu.ui:16
msgid "Report a Bug"
msgstr "Segnala un bug"
#: resources/ui/common/main-menu.ui:20
msgid "Create an Effect"
msgstr "Crea un effetto"
#: resources/ui/common/main-menu.ui:24
msgid "Translate"
msgstr "Traduci"
#: resources/ui/common/main-menu.ui:28
msgid "Donate"
msgstr "Donare"
#: resources/ui/common/main-menu.ui:41
msgid "About Burn-My-Windows"
msgstr "Informazioni su Burn-My-Windows"
#: resources/ui/gtk4/Matrix.ui:24 resources/ui/gtk4/BrokenGlass.ui:24
#: resources/ui/gtk4/Wisps.ui:24 resources/ui/gtk4/Fire.ui:49
#: resources/ui/gtk4/SnapOfDisintegration.ui:24
#: resources/ui/gtk4/TRexAttack.ui:24 resources/ui/gtk4/TVEffect.ui:24
#: resources/ui/gtk4/EnergizeA.ui:24 resources/ui/gtk4/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 "Tempo animazione [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 "Ripristina valore predefinito"
#: resources/ui/gtk4/Matrix.ui:70 resources/ui/gtk4/BrokenGlass.ui:70
#: resources/ui/gtk4/Wisps.ui:70 resources/ui/gtk4/Fire.ui:95
#: resources/ui/gtk4/SnapOfDisintegration.ui:70
#: resources/ui/gtk4/EnergizeA.ui:70 resources/ui/gtk4/Hexagon.ui:70
#: resources/ui/gtk4/EnergizeB.ui:70 resources/ui/gtk3/Wisps.ui:91
#: resources/ui/gtk3/Fire.ui:141 resources/ui/gtk3/EnergizeA.ui:91
#: resources/ui/gtk3/Hexagon.ui:98 resources/ui/gtk3/EnergizeB.ui:91
msgid "Scale"
msgstr "Scala"
#: resources/ui/gtk4/Matrix.ui:116 resources/ui/gtk4/Apparition.ui:70
#: resources/ui/gtk3/Apparition.ui:112
msgid "Randomness"
msgstr "Casuale"
#: resources/ui/gtk4/Matrix.ui:162
msgid "Vertical Overshooting"
msgstr "Sovrapposizione Verticale"
#: resources/ui/gtk4/Matrix.ui:208
msgid "Trail Color"
msgstr "Colore della pista"
#: resources/ui/gtk4/Matrix.ui:242
msgid "Tip Color"
msgstr "Colore della Punta"
#: resources/ui/gtk4/BrokenGlass.ui:116
msgid "Gravity"
msgstr "Gravità"
#: resources/ui/gtk4/BrokenGlass.ui:162
msgid "Blow Force"
msgstr "Forza Esplosiva"
#: resources/ui/gtk4/BrokenGlass.ui:212
msgid "Shatter From Pointer Location"
msgstr "Frammento dalla posizione del puntatore"
#: resources/ui/gtk4/BrokenGlass.ui:221
msgid ""
"The shards will fly away from where your mouse pointer was when closing the "
"window."
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/SnapOfDisintegration.ui:116
#: resources/ui/gtk4/TVEffect.ui:70 resources/ui/gtk4/EnergizeA.ui:116
#: resources/ui/gtk4/EnergizeB.ui:116 resources/ui/gtk3/Wisps.ui:139
#: resources/ui/gtk3/TVEffect.ui:83 resources/ui/gtk3/EnergizeA.ui:139
#: resources/ui/gtk3/EnergizeB.ui:139
msgid "Color"
msgstr "Colore"
#: resources/ui/gtk4/Fire.ui:25 resources/ui/gtk3/Fire.ui:49
msgid "Presets"
msgstr "Preimpostazioni"
#: resources/ui/gtk4/Fire.ui:141 resources/ui/gtk3/Fire.ui:189
msgid "Speed"
msgstr "Velocità"
#: resources/ui/gtk4/Fire.ui:191 resources/ui/gtk3/Fire.ui:241
msgid "3D Noise"
msgstr "Rumore 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 fuoco più dinamico ma richiede più potenza della GPU."
#: resources/ui/gtk4/Fire.ui:240 resources/ui/gtk3/Fire.ui:300
msgid "Gradient"
msgstr "Gradiente"
#: resources/ui/gtk4/TRexAttack.ui:70
msgid "Claw Scratch Scale"
msgstr "Scala ad Artiglio"
#: resources/ui/gtk4/TRexAttack.ui:116
msgid "Claw Scratch Count"
msgstr "Numero di colpi"
#: resources/ui/gtk4/TRexAttack.ui:162
msgid "Warp Effect"
msgstr "Effetto Distorsione"
#: resources/ui/gtk4/TRexAttack.ui:208
msgid "Flash Color"
msgstr "Colore Flash"
#: resources/ui/gtk4/effectPage.ui:37 resources/ui/gtk3/effectPage.ui:37
msgid "Preview this Effect"
msgstr "Anteprima di questo effetto"
#: resources/ui/gtk4/Hexagon.ui:116 resources/ui/gtk3/Hexagon.ui:147
msgid "Mesh Line Width"
msgstr "Larghezza linea mesh"
#: resources/ui/gtk4/Hexagon.ui:162 resources/ui/gtk3/Hexagon.ui:195
msgid "Line Color"
msgstr "Colore della linea"
#: resources/ui/gtk4/Hexagon.ui:196 resources/ui/gtk3/Hexagon.ui:238
msgid "Glow Color"
msgstr "Colore bagliore"
#: resources/ui/gtk4/Hexagon.ui:234 resources/ui/gtk3/Hexagon.ui:285
msgid "Additive Blending"
msgstr "Miscelazione aggiuntiva"
#: resources/ui/gtk4/Hexagon.ui:243 resources/ui/gtk3/Hexagon.ui:294
msgid "You may want to enable this for dark window themes."
msgstr "Potresti abilitarlo per i temi delle finestre scure."
#: resources/ui/gtk4/prefs.ui:28 resources/ui/gtk3/prefs.ui:35
msgid "Welcome to Burn-My-Windows!"
msgstr "Benvenuto in 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 "Se ti piace questa estensione, consigliala ai tuoi amici :)"
#: resources/ui/gtk4/prefs.ui:66 resources/ui/gtk3/prefs.ui:74
msgid "Open Window Animation"
msgstr "Animazione all'apertura della finestra"
#: 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 "Se ne vengono selezionati multipli, uno viene scelto a caso."
#: 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 "Scegli Effetti"
#: resources/ui/gtk4/prefs.ui:110 resources/ui/gtk3/prefs.ui:138
msgid "Close Window Animation"
msgstr "Animazione alla chiusura della finestra"
#: resources/ui/gtk4/prefs.ui:150 resources/ui/gtk3/prefs.ui:198
msgid "Also Add Effects to Dialogs"
msgstr "Aggiungi anche effetti ai dialoghi"
#: resources/ui/gtk4/Apparition.ui:116 resources/ui/gtk3/Apparition.ui:161
msgid "Twirl Intensity"
msgstr "Intensità di rotazione"
#: resources/ui/gtk4/Apparition.ui:162 resources/ui/gtk3/Apparition.ui:210
msgid "Shake Intensity"
msgstr "Intensità di scuotimento"
#: resources/ui/gtk4/Apparition.ui:208 resources/ui/gtk3/Apparition.ui:259
msgid "Suction Intensity"
msgstr "Intensità di aspirazione"
#: resources/ui/gtk3/Fire.ui:63
msgid "Choose a Preset"
msgstr "Scegli un predefinito"
#~ msgid "Via PayPal"
#~ msgstr "Tramite PayPal"
#~ msgid "Via GitHub"
#~ msgstr "Tramite GitHub"
+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-04-11 12:07+0000\n"
"Last-Translator: Allan Nordhøy <epost@anotheragency.no>\n"
"Language-Team: Norwegian Bokmål <https://hosted.weblate.org/projects/"
"burn-my-windows/core/nb_NO/>\n"
"Language: nb_NO\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 "Effektalternativer"
#: prefs.js:140
msgid "Go Back"
msgstr "Gå tilbake"
#: prefs.js:182
msgid "General Options"
msgstr "Generelle innstillinger"
#: prefs.js:276
msgid "Gold Sponsors"
msgstr "Gullsponsorer"
#: prefs.js:279
msgid "Silver Sponsors"
msgstr "Sølvsponsorer"
#: prefs.js:282
msgid "Bronze Sponsors"
msgstr "Bronsesponsorer"
#: prefs.js:285
msgid "Past Sponsors"
msgstr "Tidligere sponsorer"
#. Translators: %s will be replaced by the effect's name.
#: prefs.js:510
#, javascript-format
msgid "Preview for %s"
msgstr "Forhåndsvisning for %s"
#: prefs.js:532
#, fuzzy
msgid "Close this Window to Preview the Effect!"
msgstr "Lukk dette vinduet for å forhåndsvise effekten"
#: src/BrokenGlass.js:57
#, fuzzy
msgid "Broken Glass"
msgstr "Knust glass"
#: src/TVEffect.js:56
msgid "TV Effect"
msgstr "TV-effekt"
#: src/TRexAttack.js:56
msgid "T-Rex Attack"
msgstr "T-rex-angrep"
#: src/SnapOfDisintegration.js:60
msgid "Snap of Disintegration"
msgstr ""
#: src/Wisps.js:55
msgid "Wisps"
msgstr ""
#: src/Fire.js:58
msgid "Fire"
msgstr "Brann"
#: src/Fire.js:130
msgid "Default Fire"
msgstr "Forvalgt brann"
#: 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 "Kald bris"
#: src/Fire.js:170
msgid "Santa is Coming"
msgstr "Julenissen kommer"
#: src/Hexagon.js:53
msgid "Hexagon"
msgstr "Heksagon"
#: 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 "Besøk hjemmesiden"
#: resources/ui/common/main-menu.ui:10
msgid "View Changelog"
msgstr "Vis endringslogg"
#: resources/ui/common/main-menu.ui:16
msgid "Report a Bug"
msgstr "Rapporter en feil"
#: resources/ui/common/main-menu.ui:20
msgid "Create an Effect"
msgstr "Opprett en effekt"
#: resources/ui/common/main-menu.ui:24
msgid "Translate"
msgstr "Oversett"
#: resources/ui/common/main-menu.ui:28
msgid "Donate"
msgstr "Doner"
#: resources/ui/common/main-menu.ui:41
msgid "About Burn-My-Windows"
msgstr "Om"
#: 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 "Animasjonstid [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 "Tilbakestill til forvalgt verdi"
#: 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 "Størrelse"
#: resources/ui/gtk4/Matrix.ui:116 resources/ui/gtk4/Apparition.ui:70
#: resources/ui/gtk3/Apparition.ui:112
msgid "Randomness"
msgstr "Tilfeldighet"
#: 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 "Tyngdekraft"
#: resources/ui/gtk4/BrokenGlass.ui:162
msgid "Blow Force"
msgstr "Slagkraft"
#: resources/ui/gtk4/BrokenGlass.ui:212
msgid "Shatter From Pointer Location"
msgstr "Knus fra pekerposisjon"
#: resources/ui/gtk4/BrokenGlass.ui:221
msgid ""
"The shards will fly away from where your mouse pointer was when closing the "
"window."
msgstr "Skårene flyr fra der musepekeren var da du lukket vinduet."
#: 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 "Farge"
#: resources/ui/gtk4/Fire.ui:25 resources/ui/gtk3/Fire.ui:49
msgid "Presets"
msgstr "Forhåndsinnstillinger"
#: resources/ui/gtk4/Fire.ui:141 resources/ui/gtk3/Fire.ui:189
msgid "Speed"
msgstr "Hastighet"
#: resources/ui/gtk4/Fire.ui:191 resources/ui/gtk3/Fire.ui:241
msgid "3D Noise"
msgstr "3D-støy"
#: resources/ui/gtk4/Fire.ui:200 resources/ui/gtk3/Fire.ui:250
msgid "Creates a more dynamic fire but requires more GPU power."
msgstr "Mer dynamisk ild, men krever mer GPU-kraft."
#: 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 "Forhåndsvis denne effekten"
#: 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 "Linjefarge"
#: resources/ui/gtk4/Hexagon.ui:196 resources/ui/gtk3/Hexagon.ui:238
msgid "Glow Color"
msgstr "Glødefarge"
#: 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 "Hvis du liker denne utvidelsen kan du anbefale den til vennene dine :)"
#: 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 "Hvis flere blir valgt, velges én tilfeldig."
#: 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 "Velg effekter"
#: 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 "Hvirvelintensitet"
#: resources/ui/gtk4/Apparition.ui:162 resources/ui/gtk3/Apparition.ui:210
msgid "Shake Intensity"
msgstr "Ristingsintensitet"
#: resources/ui/gtk4/Apparition.ui:208 resources/ui/gtk3/Apparition.ui:259
msgid "Suction Intensity"
msgstr "Sugeintensitet"
#: resources/ui/gtk3/Fire.ui:63
msgid "Choose a Preset"
msgstr "Velg en forhåndsinnstilling"
#~ 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-04-13 13:09+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-05-11 12:17+0000\n"
"Last-Translator: obslsessed <obslsessed@duck.com>\n"
"Language-Team: Swedish <https://hosted.weblate.org/projects/burn-my-windows/"
"core/sv/>\n"
"Language: sv\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.1\n"
#: prefs.js:112
msgid "Effect Options"
msgstr "Effektalternativ"
#: prefs.js:140
msgid "Go Back"
msgstr "Gå tillbaka"
#: prefs.js:182
msgid "General Options"
msgstr "Generella alternativ"
#: prefs.js:276
msgid "Gold Sponsors"
msgstr "Guldsponsorer"
#: prefs.js:279
msgid "Silver Sponsors"
msgstr "Silversponsorer"
#: prefs.js:282
msgid "Bronze Sponsors"
msgstr "Bronssponsorer"
#: prefs.js:285
msgid "Past Sponsors"
msgstr "Sponsorer från förr"
#. Translators: %s will be replaced by the effect's name.
#: prefs.js:510
#, javascript-format
msgid "Preview for %s"
msgstr "Förhandsgranskning för %s"
#: prefs.js:532
msgid "Close this Window to Preview the Effect!"
msgstr "Stäng det här fönstret för att förhandsgranska effekten!"
#: src/BrokenGlass.js:57
msgid "Broken Glass"
msgstr "Trasigt glas"
#: src/TVEffect.js:56
msgid "TV Effect"
msgstr "TV-effekt"
#: src/TRexAttack.js:56
msgid "T-Rex Attack"
msgstr "T-Rexattack"
#: src/SnapOfDisintegration.js:60
msgid "Snap of Disintegration"
msgstr ""
#: src/Wisps.js:55
msgid "Wisps"
msgstr ""
#: src/Fire.js:58
msgid "Fire"
msgstr "Eld"
#: src/Fire.js:130
msgid "Default Fire"
msgstr "Standardeld"
#: src/Fire.js:140
msgid "Hell Fire"
msgstr "Helveteseld"
#: src/Fire.js:150
msgid "Dark and Smutty"
msgstr "Mörk och smutsig"
#: src/Fire.js:160
msgid "Cold Breeze"
msgstr "Kall bris"
#: src/Fire.js:170
msgid "Santa is Coming"
msgstr "Jultomten kommer"
#: src/Hexagon.js:53
msgid "Hexagon"
msgstr "Sexhörning"
#: src/EnergizeA.js:54
msgid "Energize A"
msgstr ""
#: src/Apparition.js:57
msgid "Apparition"
msgstr "Uppenbarelse"
#: src/EnergizeB.js:54
msgid "Energize B"
msgstr ""
#: src/Matrix.js:58
msgid "Matrix"
msgstr "Matris"
#: resources/ui/common/main-menu.ui:6
msgid "Visit Homepage"
msgstr "Besök hemsida"
#: resources/ui/common/main-menu.ui:10
msgid "View Changelog"
msgstr "Visa ändringslogg"
#: resources/ui/common/main-menu.ui:16
msgid "Report a Bug"
msgstr "Rapportera en bugg"
#: resources/ui/common/main-menu.ui:20
msgid "Create an Effect"
msgstr "Skapa en effekt"
#: resources/ui/common/main-menu.ui:24
msgid "Translate"
msgstr "Översätt"
#: resources/ui/common/main-menu.ui:28
msgid "Donate"
msgstr "Donera"
#: resources/ui/common/main-menu.ui:41
msgid "About Burn-My-Windows"
msgstr "Om Bränn-mitt-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 "Animationens tid [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 "Återställ till standardvärde"
#: 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 "Skala"
#: resources/ui/gtk4/Matrix.ui:116 resources/ui/gtk4/Apparition.ui:70
#: resources/ui/gtk3/Apparition.ui:112
msgid "Randomness"
msgstr "Slumpmässighet"
#: resources/ui/gtk4/Matrix.ui:162
msgid "Vertical Overshooting"
msgstr "Vertikal överskjutning"
#: resources/ui/gtk4/Matrix.ui:208
msgid "Trail Color"
msgstr "Spårets färg"
#: resources/ui/gtk4/Matrix.ui:242
msgid "Tip Color"
msgstr "Färg på dricksen"
#: resources/ui/gtk4/BrokenGlass.ui:116
msgid "Gravity"
msgstr "Tyngdkraft"
#: resources/ui/gtk4/BrokenGlass.ui:162
msgid "Blow Force"
msgstr "Blåskraft"
#: 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 ""
"Skärvorna kommer att flyga iväg från där din muspekare befann sig när rutan "
"stängdes."
#: 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 "Färg"
#: resources/ui/gtk4/Fire.ui:25 resources/ui/gtk3/Fire.ui:49
msgid "Presets"
msgstr "Förinställningar"
#: resources/ui/gtk4/Fire.ui:141 resources/ui/gtk3/Fire.ui:189
msgid "Speed"
msgstr "Hastighet"
#: resources/ui/gtk4/Fire.ui:191 resources/ui/gtk3/Fire.ui:241
msgid "3D Noise"
msgstr "3D-ljud"
#: resources/ui/gtk4/Fire.ui:200 resources/ui/gtk3/Fire.ui:250
msgid "Creates a more dynamic fire but requires more GPU power."
msgstr "Skapar en mer dynamisk eld, men kräver mer GPU-kraft."
#: 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 "Warp-effekt"
#: 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 "Förhandsgranska den här effekten"
#: 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 "Tillsatsblandning"
#: resources/ui/gtk4/Hexagon.ui:243 resources/ui/gtk3/Hexagon.ui:294
msgid "You may want to enable this for dark window themes."
msgstr "Du kan behöva aktivera det här för mörka fönsterteman."
#: resources/ui/gtk4/prefs.ui:28 resources/ui/gtk3/prefs.ui:35
msgid "Welcome to Burn-My-Windows!"
msgstr "Välkommen till Bränn-mitt-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 "Rekommendera det här tillägget till dina vänner om du gillar det :)"
#: resources/ui/gtk4/prefs.ui:66 resources/ui/gtk3/prefs.ui:74
msgid "Open Window Animation"
msgstr "Öppna fönsteranimation"
#: 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 "Om flera val är gjorda så väljs ett slumpvist."
#: 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 "Välj effekter"
#: resources/ui/gtk4/prefs.ui:110 resources/ui/gtk3/prefs.ui:138
msgid "Close Window Animation"
msgstr "Stäng fönsteranimation"
#: resources/ui/gtk4/prefs.ui:150 resources/ui/gtk3/prefs.ui:198
msgid "Also Add Effects to Dialogs"
msgstr "Lägg också till effekter till dialogrutor"
#: resources/ui/gtk4/Apparition.ui:116 resources/ui/gtk3/Apparition.ui:161
msgid "Twirl Intensity"
msgstr "Virvelns intensitet"
#: resources/ui/gtk4/Apparition.ui:162 resources/ui/gtk3/Apparition.ui:210
msgid "Shake Intensity"
msgstr "Skakningens intensitet"
#: resources/ui/gtk4/Apparition.ui:208 resources/ui/gtk3/Apparition.ui:259
msgid "Suction Intensity"
msgstr "Sugningens intensitet"
#: resources/ui/gtk3/Fire.ui:63
msgid "Choose a Preset"
msgstr "Välj en förinställning"
+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-05-11 12:17+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.1\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 "Altıgen"
#: 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 "Çözgü Etkisi"
#: 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 "Çizgi rengi"
#: 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 "Bunu koyu temalı pencereler için etkinleştirmek isteyebilirsiniz."
#: 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"
+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-04-08 07:11+0000\n"
"Last-Translator: merelymyself <poonsters6@gmail.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.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
#, fuzzy
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
#, fuzzy
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
#, fuzzy
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
#, fuzzy
msgid "Creates a more dynamic fire but requires more GPU power."
msgstr "火会更像真但显卡功耗会增加。"
#: resources/ui/gtk4/Fire.ui:240 resources/ui/gtk3/Fire.ui:300
#, fuzzy
msgid "Gradient"
msgstr "渐变"
#: resources/ui/gtk4/TRexAttack.ui:70
#, fuzzy
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
#, fuzzy
msgid "Choose a Preset"
msgstr "选一个预设配置"
+495 -23
View File
@@ -13,37 +13,334 @@
'use strict';
const {Gio, Gtk} = 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 ExtensionUtils = imports.misc.extensionUtils;
const Me = imports.misc.extensionUtils.getCurrentExtension();
const utils = Me.imports.utils;
const utils = Me.imports.src.utils;
// This template widget class is defined at the bottom of this file.
var BurnMyWindowsEffectPage = null;
//////////////////////////////////////////////////////////////////////////////////////////
// For now, the preferences dialog of this extension is very simple. In the future, if //
// we might consider to improve its layout... //
// The preferences dialog is organized in pages, each of which is loaded from a //
// separate ui file. There's one page with general options, all other paged are loaded //
// from the respective effects. //
//////////////////////////////////////////////////////////////////////////////////////////
var PreferencesDialog = class PreferencesDialog {
// ------------------------------------------------------------ constructor / destructor
constructor() {
// New effects must be registered here and in extension.js.
this._ALL_EFFECTS = [
new Me.imports.src.Apparition.Apparition(),
new Me.imports.src.BrokenGlass.BrokenGlass(),
new Me.imports.src.EnergizeA.EnergizeA(),
new Me.imports.src.EnergizeB.EnergizeB(),
new Me.imports.src.Fire.Fire(),
new Me.imports.src.Hexagon.Hexagon(),
new Me.imports.src.Matrix.Matrix(),
new Me.imports.src.SnapOfDisintegration.SnapOfDisintegration(),
new Me.imports.src.TRexAttack.TRexAttack(),
new Me.imports.src.TVEffect.TVEffect(),
new Me.imports.src.Wisps.Wisps(),
];
// Load all of our resources.
this._resources = Gio.Resource.load(Me.path + '/resources/burn-my-windows.gresource');
Gio.resources_register(this._resources);
// Load the user interface file.
this._builder = new Gtk.Builder();
this._builder.add_from_resource(`/ui/settings.ui`);
// Load the CSS file for the settings dialog.
const styleProvider = Gtk.CssProvider.new();
styleProvider.load_from_resource('/css/gtk.css');
if (utils.isGTK4()) {
Gtk.StyleContext.add_provider_for_display(Gdk.Display.get_default(), styleProvider,
Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
} else {
Gtk.StyleContext.add_provider_for_screen(Gdk.Screen.get_default(), styleProvider,
Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
}
// This is our top-level widget which we will return later.
this._widget = this._builder.get_object('settings-widget');
// Make sure custom icons are found.
if (utils.isGTK4()) {
Gtk.IconTheme.get_for_display(Gdk.Display.get_default()).add_resource_path('/img');
} else {
Gtk.IconTheme.get_default().add_resource_path('/img');
}
// Register the template widgets used in the settings dialog.
this._registerCustomClasses();
// Store a reference to the settings object.
this._settings = ExtensionUtils.getSettings();
// Bind all properties.
this._bindAdjustment('destroy-animation-time');
// Load the general user interface files.
this._builder = new Gtk.Builder();
this._builder.add_from_resource(`/ui/common/main-menu.ui`);
this._builder.add_from_resource(`/ui/${utils.getGTKString()}/prefs.ui`);
// Bind general options properties.
this.bindSwitch('destroy-dialogs');
// Starting with GNOME Shell 42, the settings dialog uses libadwaita (at least most of
// the time - it seems that pop!_OS does not support libadwaita even on GNOME 42). We
// have to use a different layout, as the stack sidebar looks pretty ugly with the
// included Adw.Clamp...
if (Adw && utils.shellVersionIsAtLeast(42, 'beta')) {
// This is our top-level widget which we will return later.
this._widget = new Gtk.Box({orientation: Gtk.Orientation.VERTICAL});
// 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);
this._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);
}
});
}
// On older GNOME versions, we use a StackSidebar.
else {
// This is our top-level widget which we will return later.
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.
this._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
// the toplevel widget before.
this._widget.connect('realize', (widget) => {
const window = utils.isGTK4() ? widget.get_root() : widget.get_toplevel();
// Show the version number in the title bar.
window.set_title(`Burn-My-Windows ${Me.metadata.version}`);
// Add the main menu to the title bar.
{
// Add the menu button to the title bar.
const menu = this._builder.get_object('menu-button');
// Starting with GNOME Shell 42, we have to hack our way through the widget tree
// of the Adw.PreferencesWindow...
if (Adw && 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.
const group = Gio.SimpleActionGroup.new();
window.insert_action_group('prefs', group);
const addURIAction = (name, uri) => {
const action = Gio.SimpleAction.new(name, null);
action.connect('activate', () => Gtk.show_uri(null, uri, Gdk.CURRENT_TIME));
group.add_action(action);
};
// clang-format off
addURIAction('homepage', 'https://github.com/Schneegans/Burn-My-Windows');
addURIAction('changelog', 'https://github.com/Schneegans/Burn-My-Windows/blob/main/docs/changelog.md');
addURIAction('bugs', 'https://github.com/Schneegans/Burn-My-Windows/issues');
addURIAction('new-effect', 'https://github.com/Schneegans/Burn-My-Windows/blob/main/docs/how-to-create-new-effects.md');
addURIAction('translate', 'https://hosted.weblate.org/engage/burn-my-windows/');
addURIAction('donate-paypal', 'https://www.paypal.com/donate/?hosted_button_id=3F7UFL8KLVPXE');
addURIAction('donate-github', 'https://github.com/sponsors/Schneegans');
// 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.
{
const menu = this._builder.get_object('open-effect-menu');
const group = Gio.SimpleActionGroup.new();
window.insert_action_group('open-effects', group);
this._ALL_EFFECTS.forEach(effect => {
const [minMajor, minMinor] = effect.getMinShellVersion();
if (utils.shellVersionIsAtLeast(minMajor, minMinor)) {
const nick = effect.getNick();
const label = effect.getLabel();
const actionName = nick + '-open-effect';
const fullName = 'open-effects.' + actionName;
const action = this._settings.create_action(actionName);
group.add_action(action);
menu.append_item(Gio.MenuItem.new(label, fullName));
}
});
}
// Populate the close-effects drop-down menu.
{
const menu = this._builder.get_object('close-effect-menu');
const group = Gio.SimpleActionGroup.new();
window.insert_action_group('close-effects', group);
this._ALL_EFFECTS.forEach(effect => {
const [minMajor, minMinor] = effect.getMinShellVersion();
if (utils.shellVersionIsAtLeast(minMajor, minMinor)) {
const nick = effect.getNick();
const label = effect.getLabel();
const actionName = nick + '-close-effect';
const fullName = 'close-effects.' + actionName;
const action = this._settings.create_action(actionName);
group.add_action(action);
menu.append_item(Gio.MenuItem.new(label, fullName));
}
});
}
});
// As we do not have something like a destructor, we just listen for the destroy
// signal of our main widget.
@@ -51,45 +348,220 @@ var PreferencesDialog = class PreferencesDialog {
// Unregister our resources.
Gio.resources_unregister(this._resources);
});
// Show the widgets on GTK3.
if (!utils.isGTK4()) {
this._widget.show_all();
}
}
// -------------------------------------------------------------------- public interface
// Returns the internally used Gtk.Builder. Effects can use this to modify the UI of the
// preferences dialog.
getBuilder() {
return this._builder;
}
// Returns a Gio.Settings object for this extension.
getSettings() {
return this._settings;
}
// Returns the widget used for the settings of this extension.
getWidget() {
return this._widget;
}
// ----------------------------------------------------------------------- private stuff
// Connects a Gtk.ComboBox (or anything else which has an 'active-id' property) to a
// settings key. It also binds the corresponding reset button.
bindCombobox(settingsKey) {
this._bind(settingsKey, 'active-id');
}
// Connects a Gtk.Adjustment (or anything else which has a 'value' property) to a
// settings key. It also binds the corresponding reset button.
_bindAdjustment(settingsKey) {
bindAdjustment(settingsKey) {
this._bind(settingsKey, 'value');
}
// Connects a Gtk.Switch (or anything else which has an 'active' property) to a settings
// key. It also binds the corresponding reset button.
_bindSwitch(settingsKey) {
bindSwitch(settingsKey) {
this._bind(settingsKey, 'active');
}
// Colors are stored as strings like 'rgb(1, 0.5, 0)'. As Gio.Settings.bind_with_mapping
// is not available yet, we need to do the color conversion manually. It also binds the
// corresponding reset button.
bindColorButton(settingsKey) {
const button = this._builder.get_object(settingsKey);
if (button) {
// Update the settings when the color is modified.
button.connect('color-set', () => {
this._settings.set_string(settingsKey, button.get_rgba().to_string());
});
// Update the button state when the settings change.
const settingSignalHandler = () => {
const rgba = new Gdk.RGBA();
rgba.parse(this._settings.get_string(settingsKey));
button.rgba = rgba;
};
this._settings.connect('changed::' + settingsKey, settingSignalHandler);
// Initialize the button with the state in the settings.
settingSignalHandler();
}
this._bindResetButton(settingsKey);
}
// ----------------------------------------------------------------- GTK3 / GTK4 helpers
// Appends the given child widget to the given Gtk.Box.
gtkBoxAppend(box, child) {
if (utils.isGTK4()) {
box.append(child);
} else {
box.pack_start(child, false, false, 0);
}
}
// ----------------------------------------------------------------------- private stuff
// Searches for a reset button for the given settings key and make it reset the settings
// key when clicked.
_bindResetButton(settingsKey) {
const resetButton = this._builder.get_object('reset-' + settingsKey);
if (resetButton) {
resetButton.connect('clicked', () => {
this._settings.reset(settingsKey);
});
}
}
// Connects any widget's property to a settings key. The widget must have the same ID as
// the settings key. It also binds the corresponding reset button.
_bind(settingsKey, property) {
this._settings.bind(
settingsKey, this._builder.get_object(settingsKey), property,
Gio.SettingsBindFlags.DEFAULT);
const object = this._builder.get_object(settingsKey);
const resetButton = this._builder.get_object('reset-' + settingsKey);
resetButton.connect('clicked', () => {
this._settings.reset(settingsKey);
});
if (object) {
this._settings.bind(settingsKey, object, property, Gio.SettingsBindFlags.DEFAULT);
}
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.
_registerCustomClasses() {
// Each effect page is based on a template widget. This template contains the title
// and the preview button.
if (GObject.type_from_name('BurnMyWindowsEffectPage') == null) {
BurnMyWindowsEffectPage = GObject.registerClass(
{
GTypeName: 'BurnMyWindowsEffectPage',
Template: `resource:///ui/${utils.getGTKString()}/effectPage.ui`,
InternalChildren: ['label', 'button'],
},
class BurnMyWindowsEffectPage extends Gtk.Box { // ------------------------------
_init(effect, dialog) {
super._init();
// Set the effect's name as label.
this._label.label = effect.getLabel();
// Open the preview window once the preview button is clicked.
this._button.connect('clicked', () => {
// Set the to-be-previewed effect.
dialog.getSettings().set_string('open-preview-effect', effect.getNick());
dialog.getSettings().set_string('close-preview-effect', effect.getNick());
// Make sure that the window.show() firther below "sees" this change.
Gio.Settings.sync();
// Create the preview-window.
const window = new Gtk.Window({
// Translators: %s will be replaced by the effect's name.
title: _('Preview for %s').replace('%s', effect.getLabel()),
default_width: 800,
default_height: 450,
modal: true,
transient_for: utils.isGTK4() ? this._button.get_root() :
this._button.get_toplevel()
});
// Add a header bar to the window.
if (utils.isGTK4()) {
const header = Gtk.HeaderBar.new();
window.set_titlebar(header);
}
const box = new Gtk.Box({
orientation: Gtk.Orientation.VERTICAL,
valign: Gtk.Align.CENTER,
spacing: 10,
margin_start: 50,
margin_end: 50
});
const label = Gtk.Label.new(_('Close this Window to Preview the Effect!'));
label.wrap = true;
label.justify = Gtk.Justification.CENTER;
label.get_style_context().add_class('large-title');
const image = new Gtk.Image({
icon_name: 'burn-my-windows-symbolic',
pixel_size: 128,
});
dialog.gtkBoxAppend(box, image);
dialog.gtkBoxAppend(box, label);
if (utils.isGTK4()) {
window.set_child(box);
window.show();
} else {
window.add(box);
window.show_all();
}
});
}
});
}
}
}
// Nothing to do for now...
function init() {}
// This is used for setting up the translations.
function init() {
ExtensionUtils.initTranslations();
}
// This function is called when the preferences window is created to build and return a
// Gtk widget. We create a new instance of the PreferencesDialog class each time this
+1
View File
@@ -0,0 +1 @@
The `translators.json` file is directly exported from weblate.
+21
View File
@@ -0,0 +1,21 @@
{
"gold": [
"<a href='https://github.com/dennis1248'>Dennis ten Hoove</a>"
],
"silver": [
"<a href='https://github.com/danielheadbang'>@danielheadbang</a>",
"<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/AngelBrielez'>Angel Brielez</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
]
]
}
]
+3
View File
@@ -0,0 +1,3 @@
.pill-button {
border-radius: 9999px;
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 434 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 230 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 372 KiB

+49
View File
@@ -0,0 +1,49 @@
// Inject some common shader snippets. It is only possible to include glsl files from the
// "common" directory. Also, the files in the "common" directory are not allowed to
// include any further files.
#include "common/uniforms.glsl"
uniform vec2 uSeed;
uniform float uShake;
uniform float uTwirl;
uniform float uSuction;
uniform float uRandomness;
const float ACTOR_SCALE = 2.0;
const float PADDING = ACTOR_SCALE / 2.0 - 0.5;
// The math for the whirling is inspired by this post:
// http://www.geeks3d.com/20110428/shader-library-swirl-post-processing-filter-in-glsl
void main() {
// We simply inverse the progress for opening windows.
float progress = uForOpening ? 1.0 - uProgress : uProgress;
// Choose a random suction center.
vec2 center = uSeed * uRandomness + 0.5 * (1.0 - uRandomness);
vec2 coords = cogl_tex_coord_in[0].st * ACTOR_SCALE - PADDING - center;
// Add some shaking.
coords.x +=
progress * 0.05 * uShake * sin((progress + uSeed.x) * (1.0 + uSeed.x) * uShake);
coords.y +=
progress * 0.05 * uShake * cos((progress + uSeed.y) * (1.0 + uSeed.y) * uShake);
// "Suck" the texture into the center.
float dist = length(coords) / sqrt(2);
coords += progress * coords / dist * 0.5 * uSuction;
// Apply some whirling.
float angle = pow(1.0 - dist, 2.0) * uTwirl * progress;
float s = sin(angle);
float c = cos(angle);
coords = vec2(dot(coords, vec2(c, -s)), dot(coords, vec2(s, c)));
// Shell.GLSLEffect uses straight alpha. So we have to convert from premultiplied.
cogl_color_out = texture2D(uTexture, coords + center);
if (cogl_color_out.a > 0) {
cogl_color_out.rgb /= cogl_color_out.a;
}
// Fade out the window texture.
cogl_color_out.a *= 1.0 - progress;
}
+67
View File
@@ -0,0 +1,67 @@
// Inject some common shader snippets. It is only possible to include glsl files from the
// "common" directory. Also, the files in the "common" directory are not allowed to
// include any further files.
#include "common/uniforms.glsl"
uniform sampler2D uShardTexture;
uniform vec2 uSeed;
uniform vec2 uEpicenter;
uniform float uShardScale;
uniform float uBlowForce;
uniform float uGravity;
const float SHARD_LAYERS = 5;
const float ACTOR_SCALE = 2.0;
const float PADDING = ACTOR_SCALE / 2.0 - 0.5;
void main() {
cogl_color_out = vec4(0, 0, 0, 0);
float progress = uForOpening ? 1.0 - uProgress : uProgress;
// Draw the individual shard layers.
for (float i = 0; i < SHARD_LAYERS; ++i) {
// To enable drawing shards outside of the window bounds, the actor was scaled
// by ACTOR_SCALE. Here we scale and move the texture coordinates so that the
// window gets drawn at the correct position again.
vec2 coords = cogl_tex_coord_in[0].st * ACTOR_SCALE - PADDING;
// Scale and rotate around our epicenter.
coords -= uEpicenter;
// Scale each layer a bit differently.
coords /= mix(1.0, 1.0 + uBlowForce * (i + 2) / SHARD_LAYERS, progress);
// Rotate each layer a bit differently.
float rotation = (mod(i, 2.0) - 0.5) * 0.2 * progress;
coords = vec2(coords.x * cos(rotation) - coords.y * sin(rotation),
coords.x * sin(rotation) + coords.y * cos(rotation));
// Move down each layer a bit.
float gravity =
(uForOpening ? -1.0 : 1.0) * uGravity * 0.1 * (i + 1) * progress * progress;
coords += vec2(0, gravity);
// Restore correct position.
coords += uEpicenter;
// Retrieve information from the shard texture for our layer.
vec2 shardCoords = (coords + uSeed) * uSize / uShardScale / 500.0;
vec2 shardMap = texture2D(uShardTexture, shardCoords).rg;
// The green channel contains a random value in [0..1] for each shard. We
// discretize this into SHARD_LAYERS bins and check if our layer falls into
// the bin of the current shard.
float shardGroup = floor(shardMap.g * SHARD_LAYERS * 0.999);
if (shardGroup == i && (shardMap.x - pow(progress + 0.1, 2)) > 0) {
cogl_color_out = texture2D(uTexture, coords);
}
}
// Shell.GLSLEffect uses straight alpha. So we have to convert from premultiplied.
if (cogl_color_out.a > 0) {
cogl_color_out.rgb /= cogl_color_out.a;
}
}
@@ -0,0 +1,6 @@
// The Shell.GLSLEffect uses straight alpha blending. This helper method allows
// compositing color values in the shader in the same way.
vec4 alphaOver(vec4 under, vec4 over) {
float alpha = over.a + under.a * (1.0 - over.a);
return vec4((over.rgb * over.a + under.rgb * under.a * (1.0 - over.a)) / alpha, alpha);
}
+5
View File
@@ -0,0 +1,5 @@
// This provides some basic easing function. More can be added if required!
// Taken from here:
// https://gitlab.gnome.org/GNOME/mutter/-/blob/main/clutter/clutter/clutter-easing.c
float easeOutQuad(float x) { return -1.0 * x * (x - 2); }
+33
View File
@@ -0,0 +1,33 @@
// This method returns a mask which smoothly transitions towards zero when approaching
// the window's borders. There is a variant which takes the transition area width in
// pixels and one which takes this as a percentage.
float getEdgeMask(vec2 uv, vec2 maxUV, float fadeWidth) {
float mask = 1.0;
mask *= smoothstep(0, 1, clamp(uv.x / fadeWidth, 0, 1));
mask *= smoothstep(0, 1, clamp(uv.y / fadeWidth, 0, 1));
mask *= smoothstep(0, 1, clamp((maxUV.x - uv.x) / fadeWidth, 0, 1));
mask *= smoothstep(0, 1, clamp((maxUV.y - uv.y) / fadeWidth, 0, 1));
return mask;
}
// Returns an edge mask which fades to zero at the boundaries of the actor. The width of
// the fade zone is given in pixels. This uses the standard uniforms uSize and uPadding.
// This means that the fading zone is not actually at the actors boundaries but at the
// position of the window border in the texture.
// The offset paramter controls whether the fading is placed inside the window borders
// (offset = 0), ontop the window borders (offset = 0.5) or outside the window borders
// (offset = 1).
float getAbsoluteEdgeMask(float fadePixels, float offset) {
float padding = max(0, uPadding - fadePixels * offset);
vec2 uv = cogl_tex_coord_in[0].st * uSize - padding;
return getEdgeMask(uv, uSize - 2.0 * padding, fadePixels);
}
// Returns an edge mask which fades to zero at the boundaries of the actor. The width of
// the fade zone is given relative to the actor size. This neither uses uSize and
// uPadding.
float getRelativeEdgeMask(float fadeAmount) {
vec2 uv = cogl_tex_coord_in[0].st;
return getEdgeMask(uv, vec2(1.0), fadeAmount);
}
+10
View File
@@ -0,0 +1,10 @@
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));
}
+207
View File
@@ -0,0 +1,207 @@
// These noise algorithms are based on implementations by various authors from
// shadertoy.com, which are all available under the MIT License. See the respective links
// in the comments below.
////////////////////////////////////////////////////////////////////////////////////////
// Hash without Sine //
// MIT License, https://www.shadertoy.com/view/4djSRW //
// Copyright (c) 2014 David Hoskins. //
////////////////////////////////////////////////////////////////////////////////////////
// 1 out, 1 in...
float hash11(float p) {
p = fract(p * .1031);
p *= p + 33.33;
p *= p + p;
return fract(p);
}
// 1 out, 2 in...
float hash12(vec2 p) {
vec3 p3 = fract(vec3(p.xyx) * .1031);
p3 += dot(p3, p3.yzx + 33.33);
return fract((p3.x + p3.y) * p3.z);
}
// 1 out, 3 in...
float hash13(vec3 p3) {
p3 = fract(p3 * .1031);
p3 += dot(p3, p3.zyx + 31.32);
return fract((p3.x + p3.y) * p3.z);
}
// 2 out, 1 in...
vec2 hash21(float p) {
vec3 p3 = fract(vec3(p) * vec3(.1031, .1030, .0973));
p3 += dot(p3, p3.yzx + 33.33);
return fract((p3.xx + p3.yz) * p3.zy);
}
// 2 out, 2 in...
vec2 hash22(vec2 p) {
vec3 p3 = fract(vec3(p.xyx) * vec3(.1031, .1030, .0973));
p3 += dot(p3, p3.yzx + 33.33);
return fract((p3.xx + p3.yz) * p3.zy);
}
// 2 out, 3 in...
vec2 hash23(vec3 p3) {
p3 = fract(p3 * vec3(.1031, .1030, .0973));
p3 += dot(p3, p3.yzx + 33.33);
return fract((p3.xx + p3.yz) * p3.zy);
}
// 3 out, 1 in...
vec3 hash31(float p) {
vec3 p3 = fract(vec3(p) * vec3(.1031, .1030, .0973));
p3 += dot(p3, p3.yzx + 33.33);
return fract((p3.xxy + p3.yzz) * p3.zyx);
}
// 3 out, 2 in...
vec3 hash32(vec2 p) {
vec3 p3 = fract(vec3(p.xyx) * vec3(.1031, .1030, .0973));
p3 += dot(p3, p3.yxz + 33.33);
return fract((p3.xxy + p3.yzz) * p3.zyx);
}
// 3 out, 3 in...
vec3 hash33(vec3 p3) {
p3 = fract(p3 * vec3(.1031, .1030, .0973));
p3 += dot(p3, p3.yxz + 33.33);
return fract((p3.xxy + p3.yxx) * p3.zyx);
}
// 4 out, 1 in...
vec4 hash41(float p) {
vec4 p4 = fract(vec4(p) * vec4(.1031, .1030, .0973, .1099));
p4 += dot(p4, p4.wzxy + 33.33);
return fract((p4.xxyz + p4.yzzw) * p4.zywx);
}
// 4 out, 2 in...
vec4 hash42(vec2 p) {
vec4 p4 = fract(vec4(p.xyxy) * vec4(.1031, .1030, .0973, .1099));
p4 += dot(p4, p4.wzxy + 33.33);
return fract((p4.xxyz + p4.yzzw) * p4.zywx);
}
// 4 out, 3 in...
vec4 hash43(vec3 p) {
vec4 p4 = fract(vec4(p.xyzx) * vec4(.1031, .1030, .0973, .1099));
p4 += dot(p4, p4.wzxy + 33.33);
return fract((p4.xxyz + p4.yzzw) * p4.zywx);
}
// 4 out, 4 in...
vec4 hash44(vec4 p4) {
p4 = fract(p4 * vec4(.1031, .1030, .0973, .1099));
p4 += dot(p4, p4.wzxy + 33.33);
return fract((p4.xxyz + p4.yzzw) * p4.zywx);
}
////////////////////////////////////////////////////////////////////////////////////////
// 2D Simplex Noise //
// MIT License, https://www.shadertoy.com/view/Msf3WH //
// Copyright © 2013 Inigo Quilez //
////////////////////////////////////////////////////////////////////////////////////////
float simplex2D(vec2 p) {
const float K1 = 0.366025404; // (sqrt(3)-1)/2;
const float K2 = 0.211324865; // (3-sqrt(3))/6;
vec2 i = floor(p + (p.x + p.y) * K1);
vec2 a = p - i + (i.x + i.y) * K2;
float m = step(a.y, a.x);
vec2 o = vec2(m, 1.0 - m);
vec2 b = a - o + K2;
vec2 c = a - 1.0 + 2.0 * K2;
vec3 h = max(0.5 - vec3(dot(a, a), dot(b, b), dot(c, c)), 0.0);
vec3 n = h * h * h * h *
vec3(dot(a, -1.0 + 2.0 * hash22(i + 0.0)), dot(b, -1.0 + 2.0 * hash22(i + o)),
dot(c, -1.0 + 2.0 * hash22(i + 1.0)));
return 0.5 + 0.5 * dot(n, vec3(70.0));
}
float simplex2DFractal(vec2 p) {
mat2 m = mat2(1.6, 1.2, -1.2, 1.6);
float f = 0.5000 * simplex2D(p);
p = m * p;
f += 0.2500 * simplex2D(p);
p = m * p;
f += 0.1250 * simplex2D(p);
p = m * p;
f += 0.0625 * simplex2D(p);
p = m * p;
return f;
}
////////////////////////////////////////////////////////////////////////////////////////
// 3D Simplex Noise //
// MIT License, https://www.shadertoy.com/view/XsX3zB //
// Copyright © 2013 Nikita Miropolskiy //
////////////////////////////////////////////////////////////////////////////////////////
float simplex3D(vec3 p) {
// skew constants for 3D simplex functions
const float F3 = 0.3333333;
const float G3 = 0.1666667;
// 1. find current tetrahedron T and it's four vertices
// s, s+i1, s+i2, s+1.0 - absolute skewed (integer) coordinates of T vertices
// x, x1, x2, x3 - unskewed coordinates of p relative to each of T vertice
// calculate s and x
vec3 s = floor(p + dot(p, vec3(F3)));
vec3 x = p - s + dot(s, vec3(G3));
// calculate i1 and i2
vec3 e = step(vec3(0.0), x - x.yzx);
vec3 i1 = e * (1.0 - e.zxy);
vec3 i2 = 1.0 - e.zxy * (1.0 - e);
// x1, x2, x3
vec3 x1 = x - i1 + G3;
vec3 x2 = x - i2 + 2.0 * G3;
vec3 x3 = x - 1.0 + 3.0 * G3;
// 2. find four surflets and store them in d
vec4 w, d;
// calculate surflet weights
w.x = dot(x, x);
w.y = dot(x1, x1);
w.z = dot(x2, x2);
w.w = dot(x3, x3);
// w fades from 0.6 at the center of the surflet to 0.0 at the margin
w = max(0.6 - w, 0.0);
// calculate surflet components
d.x = dot(-0.5 + hash33(s), x);
d.y = dot(-0.5 + hash33(s + i1), x1);
d.z = dot(-0.5 + hash33(s + i2), x2);
d.w = dot(-0.5 + hash33(s + 1.0), x3);
// multiply d by w^4
w *= w;
w *= w;
d *= w;
// 3. return the sum of the four surflets
return dot(d, vec4(52.0)) * 0.5 + 0.5;
}
// directional artifacts can be reduced by rotating each octave
float simplex3DFractal(vec3 m) {
// const matrices for 3D rotation
const mat3 rot1 = mat3(-0.37, 0.36, 0.85, -0.14, -0.93, 0.34, 0.92, 0.01, 0.4);
const mat3 rot2 = mat3(-0.55, -0.39, 0.74, 0.33, -0.91, -0.24, 0.77, 0.12, 0.63);
const mat3 rot3 = mat3(-0.71, 0.52, -0.47, -0.08, -0.72, -0.68, -0.7, -0.45, 0.56);
return 0.5333333 * simplex3D(m * rot1) + 0.2666667 * simplex3D(2.0 * m * rot2) +
0.1333333 * simplex3D(4.0 * m * rot3) + 0.0666667 * simplex3D(8.0 * m);
}
+13
View File
@@ -0,0 +1,13 @@
// These should be included in every shader.
// uForOpening: True if a window-open animation is ongoing, false otherwise.
// uTexture: Contains the texture of the window.
// uProgress: A value which transitions from 0 to 1 during the entire animation.
// uTime: A steadily increasing value in seconds.
// uSize: The size of uTexture in pixels.
// uPadding: The empty area around the actual window (e.g. where the shadow is drawn).
uniform bool uForOpening;
uniform sampler2D uTexture;
uniform float uProgress;
uniform float uTime;
uniform vec2 uSize;
uniform float uPadding;
+90
View File
@@ -0,0 +1,90 @@
// Inject some common shader snippets. It is only possible to include glsl files from the
// "common" directory. Also, the files in the "common" directory are not allowed to
// include any further files.
#include "common/uniforms.glsl"
#include "common/noise.glsl"
#include "common/edgeMask.glsl"
#include "common/easing.glsl"
uniform vec3 uColor;
uniform float uScale;
const float FADE_IN_TIME = 0.3;
const float FADE_OUT_TIME = 0.6;
const float HEART_FADE_TIME = 0.3;
const float EDGE_FADE_WIDTH = 50;
// This method returns two values:
// result.x: A mask for the particles.
// result.y: The opacity of the fading window.
vec2 getMasks(float progress) {
float fadeInProgress = clamp(progress / FADE_IN_TIME, 0, 1);
float fadeOutProgress = clamp((progress - FADE_IN_TIME) / FADE_OUT_TIME, 0, 1);
float heartProgress =
clamp((progress - (1.0 - HEART_FADE_TIME)) / HEART_FADE_TIME, 0, 1);
// Compute mask for the "atom" particles.
float dist = length(cogl_tex_coord_in[0].st - 0.5) * 4.0;
float atomMask = smoothstep(0.0, 1.0, (fadeInProgress * 2.0 - dist + 1.0));
atomMask *= fadeInProgress;
atomMask *= smoothstep(1.0, 0.0, fadeOutProgress);
// Fade-out the masks at the window edges.
float edgeFade = getAbsoluteEdgeMask(EDGE_FADE_WIDTH, 0.5);
atomMask *= edgeFade;
float heartMask = getRelativeEdgeMask(0.5);
heartMask = 3.0 * pow(heartMask, 5);
heartMask *= fadeOutProgress;
heartMask *= 1.0 - heartProgress;
atomMask = clamp(heartMask + atomMask, 0, 1);
// Compute fading window opacity.
float windowMask = pow(1.0 - fadeOutProgress, 2.0);
if (uForOpening) {
windowMask = 1.0 - windowMask;
}
return vec2(atomMask, windowMask);
}
void main() {
float progress = easeOutQuad(uProgress);
vec2 masks = getMasks(progress);
vec4 windowColor = texture2D(uTexture, cogl_tex_coord_in[0].st);
// Shell.GLSLEffect uses straight alpha. So we have to convert from premultiplied.
if (windowColor.a > 0) {
windowColor.rgb /= windowColor.a;
}
// Dissolve window to effect color / transparency.
cogl_color_out.rgb = mix(uColor, windowColor.rgb, 0.2 * masks.y + 0.8);
cogl_color_out.a = windowColor.a * masks.y;
vec2 scaledUV = (cogl_tex_coord_in[0].st - 0.5) * (1.0 + 0.1 * progress);
scaledUV /= uScale;
// Add molecule particles.
vec2 uv = scaledUV + vec2(0, 0.1 * uTime);
uv *= 0.010598 * vec2(0.5 * uSize.x, uSize.y);
float particles = 0.2 * pow((simplex3D(vec3(uv, 0.0 * uTime))), 3.0);
// Add more molecule particles.
for (int i = 1; i <= 3; ++i) {
vec2 uv = scaledUV * 0.12154 / pow(1.5, i) * uSize;
float atoms = simplex3D(vec3(uv, 2.0 * uTime / i));
particles += 0.5 * pow(0.2 * (1.0 / (1.0 - atoms) - 1.0), 2);
}
cogl_color_out.rgb += uColor * particles * masks.x;
cogl_color_out.a += particles * masks.x;
// These are pretty useful for understanding how this works.
// cogl_color_out = vec4(masks, 0.0, 1.0);
// cogl_color_out = vec4(vec3(masks.x), 1.0);
// cogl_color_out = vec4(vec3(masks.y), 1.0);
// cogl_color_out = vec4(vec3(particles), 1.0);
}
+114
View File
@@ -0,0 +1,114 @@
// Inject some common shader snippets. It is only possible to include glsl files from the
// "common" directory. Also, the files in the "common" directory are not allowed to
// include any further files.
#include "common/uniforms.glsl"
#include "common/noise.glsl"
#include "common/edgeMask.glsl"
#include "common/easing.glsl"
uniform vec3 uColor;
uniform float uScale;
const float SHOWER_TIME = 0.3;
const float SHOWER_WIDTH = 0.3;
const float STREAK_TIME = 0.6;
const float EDGE_FADE = 50;
// This method returns four values:
// result.x: A mask for the particles which lead the shower.
// result.y: A mask for the streaks which follow the shower particles.
// result.z: A mask for the final "atom" particles.
// result.w: The opacity of the fading window.
vec4 getMasks(float progress) {
float showerProgress = progress / SHOWER_TIME;
float streakProgress = clamp((progress - SHOWER_TIME) / STREAK_TIME, 0, 1);
float fadeProgress = clamp((progress - SHOWER_TIME) / (1.0 - SHOWER_TIME), 0, 1);
// Gradient from top to bottom.
float t = cogl_tex_coord_in[0].t;
// A smooth gradient which moves to the bottom within the showerProgress.
float showerMask =
smoothstep(1, 0, abs(showerProgress - t - SHOWER_WIDTH) / SHOWER_WIDTH);
// This is 1 above the streak mask.
float streakMask = (showerProgress - t - SHOWER_WIDTH) > 0 ? 1 : 0;
// Compute mask for the "atom" particles.
float atomMask = getRelativeEdgeMask(0.2);
atomMask = max(0, atomMask - showerMask);
atomMask *= streakMask;
atomMask *= sqrt(1 - fadeProgress * fadeProgress);
// Make some particles visible in the streaks.
showerMask += 0.05 * streakMask;
// Add shower mask to streak mask.
streakMask = max(streakMask, showerMask);
// Fade-out the masks at the window edges.
float edgeFade = getAbsoluteEdgeMask(EDGE_FADE, 0.5);
streakMask *= edgeFade;
showerMask *= edgeFade;
// Fade-out the masks from top to bottom.
float fade = smoothstep(0.0, 1.0, 1.0 + t - 2.0 * streakProgress);
streakMask *= fade;
showerMask *= fade;
// Compute fading window opacity.
float windowMask = pow(1.0 - fadeProgress, 2.0);
if (uForOpening) {
windowMask = 1.0 - windowMask;
}
return vec4(showerMask, streakMask, atomMask, windowMask);
}
void main() {
float progress = easeOutQuad(uProgress);
vec4 masks = getMasks(progress);
vec4 windowColor = texture2D(uTexture, cogl_tex_coord_in[0].st);
// Shell.GLSLEffect uses straight alpha. So we have to convert from premultiplied.
if (windowColor.a > 0) {
windowColor.rgb /= windowColor.a;
}
// Dissolve window to effect color / transparency.
cogl_color_out.rgb = mix(uColor, windowColor.rgb, 0.5 * masks.w + 0.5);
cogl_color_out.a = windowColor.a * masks.w;
// Add leading shower particles.
vec2 showerUV = cogl_tex_coord_in[0].st + vec2(0, -0.7 * progress / SHOWER_TIME);
showerUV *= 0.02 * uSize / uScale;
float shower = pow(simplex2D(showerUV), 10.0);
cogl_color_out.rgb += uColor * shower * masks.x;
cogl_color_out.a += shower * masks.x;
// Add trailing streak lines.
vec2 streakUV = cogl_tex_coord_in[0].st + vec2(0, -progress / SHOWER_TIME);
streakUV *= vec2(0.05 * uSize.x, 0.001 * uSize.y) / uScale;
float streaks = simplex2DFractal(streakUV) * 0.5;
cogl_color_out.rgb += uColor * streaks * masks.y;
cogl_color_out.a += streaks * masks.y;
// Add glimmering atoms.
vec2 atomUV = cogl_tex_coord_in[0].st + vec2(0, -0.025 * progress / SHOWER_TIME);
atomUV *= 0.2 * uSize / uScale;
float atoms = pow((simplex3D(vec3(atomUV, uTime))), 5.0);
cogl_color_out.rgb += uColor * atoms * masks.z;
cogl_color_out.a += atoms * masks.z;
// These are pretty useful for understanding how this works.
// cogl_color_out = vec4(masks.rgb, 1.0);
// cogl_color_out = vec4(vec3(masks.x), 1.0);
// cogl_color_out = vec4(vec3(masks.y), 1.0);
// cogl_color_out = vec4(vec3(masks.z), 1.0);
// cogl_color_out = vec4(vec3(masks.w), 1.0);
// cogl_color_out = vec4(vec3(shower), 1.0);
// cogl_color_out = vec4(vec3(streaks), 1.0);
// cogl_color_out = vec4(vec3(atoms), 1.0);
}
+117
View File
@@ -0,0 +1,117 @@
// Inject some common shader snippets. It is only possible to include glsl files from the
// "common" directory. Also, the files in the "common" directory are not allowed to
// include any further files.
#include "common/uniforms.glsl"
#include "common/compositing.glsl"
#include "common/edgeMask.glsl"
#include "common/noise.glsl"
#include "common/easing.glsl"
uniform bool u3DNoise;
uniform float uScale;
uniform float uMovementSpeed;
uniform vec4 uGradient1;
uniform vec4 uGradient2;
uniform vec4 uGradient3;
uniform vec4 uGradient4;
uniform vec4 uGradient5;
// These may be configurable in the future.
const float EDGE_FADE = 70;
const float FADE_WIDTH = 0.1;
const float HIDE_TIME = 0.4;
// This maps the input value from [0..1] to a color from the gradient.
vec4 getFireColor(float v) {
const float steps[5] = float[](0.0, 0.2, 0.35, 0.5, 0.8);
vec4 colors[5] = vec4[](uGradient1, uGradient2, uGradient3, uGradient4, uGradient5);
if (v < steps[0]) {
return colors[0];
}
for (int i = 0; i < 4; ++i) {
if (v <= steps[i + 1]) {
return mix(colors[i], colors[i + 1],
vec4(v - steps[i]) / (steps[i + 1] - steps[i]));
}
}
return colors[4];
}
// This method requires the uniforms from standardUniforms() to be available.
// It returns two values: The first is an alpha value which can be used for the window
// texture. This gradually dissolves the window from top to bottom. The second can be used
// to mask any effect, it will be most opaque where the window is currently fading and
// gradually dissolve to zero over time.
// hideTime: A value in [0..1]. It determines the percentage of the animation which
// is spent for hiding the window. 1-hideTime will be spent thereafter for
// dissolving the effect mask.
// fadeWidth: The relative size of the window-hiding gradient in [0..1].
// edgeFadeWidth: The pixel width of the effect fading range at the edges of the window.
vec2 effectMask(float hideTime, float fadeWidth, float edgeFadeWidth) {
float progress = easeOutQuad(uProgress);
float burnProgress = clamp(progress / hideTime, 0, 1);
float afterBurnProgress = clamp((progress - hideTime) / (1 - hideTime), 0, 1);
// Gradient from top to bottom.
float t = cogl_tex_coord_in[0].t * (1 - fadeWidth);
// Visible part of the window. Gradually dissolves towards the bottom.
float windowMask = 1 - clamp((burnProgress - t) / fadeWidth, 0, 1);
// Gradient from top burning window.
float effectMask = clamp(t * (1 - windowMask) / burnProgress, 0, 1);
// Fade-out when the window burned down.
if (progress > hideTime) {
float fade = sqrt(1 - afterBurnProgress * afterBurnProgress);
effectMask *= mix(1, 1 - t, afterBurnProgress) * fade;
}
// Fade at window borders.
effectMask *= getAbsoluteEdgeMask(edgeFadeWidth, 0.5);
if (uForOpening) {
windowMask = 1.0 - windowMask;
}
return vec2(windowMask, effectMask);
}
void main() {
// Get a noise value which moves vertically in time.
vec2 uv = cogl_tex_coord_in[0].st * uSize / vec2(400, 600) / uScale;
uv.y += uTime * uMovementSpeed;
float noise = u3DNoise ? simplex3DFractal(vec3(uv * 4.0, uTime * uMovementSpeed * 1.5))
: simplex2DFractal(uv * 4.0);
// Modulate noise by effect mask.
vec2 effectMask = effectMask(HIDE_TIME, FADE_WIDTH, EDGE_FADE);
noise *= effectMask.y;
// Map noise value to color.
vec4 fire = getFireColor(noise);
// Get the window texture.
cogl_color_out = texture2D(uTexture, cogl_tex_coord_in[0].st);
// Shell.GLSLEffect uses straight alpha. So we have to convert from premultiplied.
if (cogl_color_out.a > 0) {
cogl_color_out.rgb /= cogl_color_out.a;
}
// Fade the window according to the effect mask.
cogl_color_out.a *= effectMask.x;
// Add the fire to the window.
cogl_color_out = alphaOver(cogl_color_out, fire);
// These are pretty useful for understanding how this works.
// cogl_color_out = vec4(vec3(noise), 1);
// cogl_color_out = vec4(vec3(effectMask.x), 1);
// cogl_color_out = vec4(vec3(effectMask.y), 1);
}
+116
View File
@@ -0,0 +1,116 @@
// Inject some common shader snippets. It is only possible to include glsl files from the
// "common" directory. Also, the files in the "common" directory are not allowed to
// include any further files.
#include "common/uniforms.glsl"
#include "common/noise.glsl"
uniform bool uAdditiveBlending;
uniform vec2 uSeed;
uniform float uScale;
uniform float uLineWidth;
uniform vec4 uGlowColor;
uniform vec4 uLineColor;
// 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 = uForOpening ? 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 + uSeed);
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 = 0.1 * uSize / uScale;
vec4 hex = getHexagons(cogl_tex_coord_in[0].st * texScale);
if (tileProgress > hex.z) {
// Crop outer parts of the shrinking tiles.
cogl_color_out.a = 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);
// Shell.GLSLEffect uses straight alpha. So we have to convert from premultiplied.
if (cogl_color_out.a > 0) {
cogl_color_out.rgb /= cogl_color_out.a;
}
vec4 glow = uGlowColor;
vec4 line = uLineColor;
// 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(uLineWidth, hex.z) would be simpler, but the below creates some
// fake antialiasing.
line.a *= 1.0 - smoothstep(uLineWidth * 0.02 * 0.5, uLineWidth * 0.02, 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 (uAdditiveBlending) {
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);
}
}
}
+103
View File
@@ -0,0 +1,103 @@
// Inject some common shader snippets. It is only possible to include glsl files from the
// "common" directory. Also, the files in the "common" directory are not allowed to
// include any further files.
#include "common/uniforms.glsl"
#include "common/noise.glsl"
#include "common/edgeMask.glsl"
#include "common/compositing.glsl"
uniform sampler2D uFontTexture;
uniform vec3 uTrailColor;
uniform vec3 uTipColor;
uniform float uLetterSize;
uniform float uRandomness;
uniform float uOverShoot;
// These may be configurable in the future.
const float EDGE_FADE = 30;
const float FADE_WIDTH = 150;
const float TRAIL_LENGTH = 0.2;
const float FINAL_FADE_START_TIME = 0.8;
const float LETTER_TILES = 16.0;
const float LETTER_FLICKER_SPEED = 2.0;
// This returns a flickering grid of random letters.
float getText(vec2 fragCoord) {
vec2 pixelCoords = fragCoord * uSize;
vec2 uv = mod(pixelCoords.xy, uLetterSize) / uLetterSize;
vec2 block = pixelCoords / uLetterSize - uv;
// Choose random letter.
uv += floor(hash22(floor(hash22(block) * vec2(12.9898, 78.233) +
LETTER_FLICKER_SPEED * uTime + 42.254)) *
LETTER_TILES);
return texture2D(uFontTexture, uv / LETTER_TILES).r;
}
// This returns two values: The first are gradients for the "raindrops" which move
// from top to bottom. This is used for fading the letters. The second value is set
// to one below each drop and to zero above it. This second value is used for fading
// the window texture.
vec2 getRain(vec2 fragCoord) {
float column = cogl_tex_coord_in[0].x * uSize.x;
column -= mod(column, uLetterSize);
float delay = fract(sin(column) * 78.233) * mix(0.0, 1.0, uRandomness);
float speed = fract(cos(column) * 12.989) * mix(0.0, 0.3, uRandomness) + 1.5;
float distToDrop = (uProgress * 2 - delay) * speed - cogl_tex_coord_in[0].y;
float rainAlpha = distToDrop >= 0 ? exp(-distToDrop / TRAIL_LENGTH) : 0;
float windowAlpha = 1 - clamp(uSize.y * distToDrop, 0, FADE_WIDTH) / FADE_WIDTH;
// Fade at window borders.
rainAlpha *= getAbsoluteEdgeMask(EDGE_FADE, 0.5);
// Add some variation to the drop start and end position.
float shorten =
fract(sin(column + 42.0) * 33.423) * mix(0.0, uOverShoot * 0.25, uRandomness);
rainAlpha *= smoothstep(0, 1, clamp(cogl_tex_coord_in[0].y / shorten, 0, 1));
rainAlpha *= smoothstep(0, 1, clamp((1.0 - cogl_tex_coord_in[0].y) / shorten, 0, 1));
if (uForOpening) {
windowAlpha = 1.0 - windowAlpha;
}
return vec2(rainAlpha, windowAlpha);
}
void main() {
vec2 coords = cogl_tex_coord_in[0].st;
coords.y = coords.y * (uOverShoot + 1.0) - uOverShoot * 0.5;
// Get a cool matrix effect. See comments for those methods above.
vec2 rainMask = getRain(coords);
float textMask = getText(coords);
// Get the window texture.
cogl_color_out = texture2D(uTexture, coords);
// Shell.GLSLEffect uses straight alpha. So we have to convert from premultiplied.
if (cogl_color_out.a > 0) {
cogl_color_out.rgb /= cogl_color_out.a;
}
// Fade the window according to the effect mask.
cogl_color_out.a *= rainMask.y;
// This is used to fade out the remaining trails in the end.
float finalFade =
1 - clamp((uProgress - FINAL_FADE_START_TIME) / (1 - FINAL_FADE_START_TIME), 0, 1);
float rainAlpha = finalFade * rainMask.x;
// Add the matrix effect to the window.
vec4 text = vec4(mix(uTrailColor, uTipColor, min(1, pow(rainAlpha + 0.1, 4))),
rainAlpha * textMask);
cogl_color_out = alphaOver(cogl_color_out, text);
// These are pretty useful for understanding how this works.
// cogl_color_out = vec4(vec3(textMask), 1);
// cogl_color_out = vec4(vec3(rainMask.x), 1);
// cogl_color_out = vec4(vec3(rainMask.y), 1);
}
+92
View File
@@ -0,0 +1,92 @@
// Inject some common shader snippets. It is only possible to include glsl files from the
// "common" directory. Also, the files in the "common" directory are not allowed to
// include any further files.
#include "common/uniforms.glsl"
#include "common/noise.glsl"
#include "common/math2D.glsl"
uniform sampler2D uDustTexture;
uniform vec4 uDustColor;
uniform vec2 uSeed;
uniform float uDustScale;
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;
void main() {
// We simply inverse the progress for opening windows.
float progress = uForOpening ? 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 + uSeed) * 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 * (uSeed.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 += WIND_INTENSITY * progress * (uForOpening ? 1.0 : -1.0);
// Now check wether there is actually something in the current dust layer at
// the coords position.
vec2 dustCoords = (coords + uSeed) * uSize / uDustScale / 100.0;
vec2 dustMap = texture2D(uDustTexture, dustCoords).rg;
float dustGroup = floor(dustMap.g * DUST_LAYERS * 0.999);
if (dustGroup == i) {
// Get the window color.
vec4 windowColor = texture2D(uTexture, coords + 0.5);
// Shell.GLSLEffect uses straight alpha. So we have to convert from premultiplied.
if (windowColor.a > 0) {
windowColor.rgb /= windowColor.a;
}
// Fade the window color to uDustColor.
vec3 dustColor = mix(windowColor.rgb, uDustColor.rgb, uDustColor.a);
windowColor.rgb = mix(windowColor.rgb, dustColor, progress);
// Dissolve and blend the layers.
if (dustMap.x - progress > 0) {
cogl_color_out = windowColor;
}
}
}
}
+116
View File
@@ -0,0 +1,116 @@
// Inject some common shader snippets. It is only possible to include glsl files from the
// "common" directory. Also, the files in the "common" directory are not allowed to
// include any further files.
#include "common/uniforms.glsl"
#include "common/noise.glsl"
#include "common/compositing.glsl"
#include "common/easing.glsl"
// See assets/README.md for how this texture was created.
uniform sampler2D uClawTexture;
uniform vec4 uFlashColor;
uniform vec2 uSeed;
uniform float uClawSize;
uniform float uNumClaws;
uniform float uWarpIntensity;
const float FLASH_INTENSITY = 0.1;
const float MAX_SPAWN_TIME =
0.6; // Scratches will only start in the first half of the animation.
const float FF_TIME = 0.6; // Relative time for the final fade to transparency.
// This method generates a grid of randomly rotated, slightly shifted and scaled
// UV squares. It returns the texture coords of the UV square at the given actor
// coordinates. If these do not fall into one of the UV grids, the coordinates of
// the closest UV grid will be clamped and returned.
vec2 getClawUV(vec2 texCoords, float gridScale, vec2 seed) {
// Shift coordinates by a random offset and make sure the have a 1:1 aspect ratio.
vec2 coords = texCoords + hash22(seed);
coords *= uSize.x < uSize.y ? vec2(1.0, 1.0 * uSize.y / uSize.x)
: vec2(1.0 * uSize.x / uSize.y, 1.0);
// Apply global scale.
coords *= gridScale;
// Get grid cell coordinates in [0..1].
vec2 cellUV = mod(coords, vec2(1));
// This is unique for each cell.
vec2 cellID = coords - cellUV + vec2(362.456);
// Add random rotation, scale and offset to each grid cell.
float scale = mix(0.8, 1.0, hash12(cellID * seed * 134.451));
float offsetX = mix(0.0, 1.0 - scale, hash12(cellID * seed * 54.4129));
float offsetY = mix(0.0, 1.0 - scale, hash12(cellID * seed * 25.3089));
float rotation = mix(0.0, 2.0 * 3.141, hash12(cellID * seed * 2.99837));
cellUV -= vec2(offsetX, offsetY);
cellUV /= scale;
cellUV -= 0.5;
cellUV = vec2(cellUV.x * cos(rotation) - cellUV.y * sin(rotation),
cellUV.x * sin(rotation) + cellUV.y * cos(rotation));
cellUV += 0.5;
// Clamp resulting coordinates.
return clamp(cellUV, vec2(0), vec2(1));
}
void main() {
float progress = uForOpening ? 1.0 - easeOutQuad(uProgress) : easeOutQuad(uProgress);
// Warp the texture coordinates to create a blow-up effect.
vec2 coords = cogl_tex_coord_in[0].st * 2.0 - 1.0;
float dist = length(coords);
coords = (coords / dist * pow(dist, 1.0 + uWarpIntensity)) * 0.5 + 0.5;
coords = mix(cogl_tex_coord_in[0].st, coords, progress);
// Scale down the window according to the warp.
float scale = 0.5 * uWarpIntensity * (1.0 - progress);
coords = coords * (scale + 1.0) - scale * 0.5;
// Accumulate several random scratches. The color in the scratch map refers to the
// relative time when the respective part will become invisible. Therefore we can
// add a value to make the scratch appear later.
float scratchMap = 1.0;
for (int i = 0; i < uNumClaws; ++i) {
vec2 uv = getClawUV(coords, 1.0 / uClawSize, uSeed * (i + 1));
float delay = i / uNumClaws * MAX_SPAWN_TIME;
scratchMap = min(scratchMap, clamp(texture2D(uClawTexture, uv).r + delay, 0, 1));
}
// Get the window texture. We shift the texture lookup by the local derivative of
// the claw texture in order to mimic some folding distortion.
vec2 offset = vec2(dFdx(scratchMap), dFdy(scratchMap)) * progress * 0.5;
cogl_color_out = texture2D(uTexture, coords + offset);
// Shell.GLSLEffect uses straight alpha. So we have to convert from premultiplied.
if (cogl_color_out.a > 0) {
cogl_color_out.rgb /= cogl_color_out.a;
}
// Add colorful flashes.
float flashIntensity = 1.0 / FLASH_INTENSITY * (scratchMap - progress) + 1;
if (flashIntensity < 0 || flashIntensity >= 1) {
flashIntensity = 0;
}
// Hide flashes where there is now window.
vec4 flash = uFlashColor;
flash.a *= flashIntensity * cogl_color_out.a * (1.0 - progress);
// Hide scratched out parts.
cogl_color_out.a *= (scratchMap > progress ? 1 : 0);
// Add flash color.
cogl_color_out = alphaOver(cogl_color_out, flash);
// Fade out the remaining shards.
float fadeProgress = smoothstep(0, 1, (progress - 1.0 + FF_TIME) / FF_TIME);
cogl_color_out.a *= sqrt(1 - fadeProgress * fadeProgress);
// These are pretty useful for understanding how this works.
// cogl_color_out = vec4(vec3(flashIntensity), 1);
// cogl_color_out = vec4(vec3(scratchMap), 1);
}
+64
View File
@@ -0,0 +1,64 @@
// Inject some common shader snippets. It is only possible to include glsl files from the
// "common" directory. Also, the files in the "common" directory are not allowed to
// include any further files.
#include "common/uniforms.glsl"
#include "common/easing.glsl"
uniform vec3 uColor;
const float BLUR_WIDTH = 0.01; // Width of the gradients.
const float TB_TIME = 0.7; // Relative time for the top/bottom animation.
const float LR_TIME = 0.4; // Relative time for the left/right animation.
const float LR_DELAY = 0.6; // Delay after which the left/right animation starts.
const float FF_TIME = 0.1; // Relative time for the final fade to transparency.
const float SCALING = 0.5; // Additional vertical scaling of the window.
void main() {
float progress = uForOpening ? 1.0 - easeOutQuad(uProgress) : easeOutQuad(uProgress);
// Scale down the window vertically.
float scale = 1.0 / mix(1.0, SCALING, progress) - 1.0;
vec2 coords = cogl_tex_coord_in[0].st;
coords.y = coords.y * (scale + 1.0) - scale * 0.5;
// All of these are in [0..1] during the different stages of the animation.
// tb refers to the top-bottom animation.
// lr refers to the left-right animation.
// ff refers to the final fade animation.
float tbProgress = smoothstep(0, 1, clamp(progress / TB_TIME, 0, 1));
float lrProgress = smoothstep(0, 1, clamp((progress - LR_DELAY) / LR_TIME, 0, 1));
float ffProgress = smoothstep(0, 1, clamp((progress - 1.0 + FF_TIME) / FF_TIME, 0, 1));
// This is a top-center-bottom gradient in [0..1..0]
float tb = coords.y * 2;
tb = tb < 1 ? tb : 2 - tb;
// This is a left-center-right gradient in [0..1..0]
float lr = coords.x * 2;
lr = lr < 1 ? lr : 2 - lr;
// Combine the progress values with the gradients to create the alpha masks.
float tbMask = 1 - smoothstep(0, 1, clamp((tbProgress - tb) / BLUR_WIDTH, 0, 1));
float lrMask = 1 - smoothstep(0, 1, clamp((lrProgress - lr) / BLUR_WIDTH, 0, 1));
float ffMask = 1 - smoothstep(0, 1, ffProgress);
// Assemble the final alpha value.
float mask = tbMask * lrMask * ffMask;
cogl_color_out = texture2D(uTexture, coords);
// Shell.GLSLEffect uses straight alpha. So we have to convert from premultiplied.
if (cogl_color_out.a > 0) {
cogl_color_out.rgb /= cogl_color_out.a;
}
cogl_color_out.rgb =
mix(cogl_color_out.rgb, uColor * cogl_color_out.a, smoothstep(0, 1, progress));
cogl_color_out.a *= mask;
// These are pretty useful for understanding how this works.
// cogl_color_out = vec4(vec3(tbMask), 1);
// cogl_color_out = vec4(vec3(lrMask), 1);
// cogl_color_out = vec4(vec3(ffMask), 1);
// cogl_color_out = vec4(vec3(mask), 1);
}
+107
View File
@@ -0,0 +1,107 @@
// Inject some common shader snippets. It is only possible to include glsl files from the
// "common" directory. Also, the files in the "common" directory are not allowed to
// include any further files.
#include "common/uniforms.glsl"
#include "common/noise.glsl"
#include "common/edgeMask.glsl"
#include "common/compositing.glsl"
#include "common/easing.glsl"
uniform vec2 uSeed;
uniform vec3 uColor;
uniform float uScale;
const float WISPS_RADIUS = 20.0;
const float WISPS_SPEED = 10.0;
const float WISPS_SPACING = 40 + WISPS_RADIUS;
const int WISPS_LAYERS = 8;
const float WISPS_IN_TIME = 0.5;
const float WINDOW_OUT_TIME = 1.0;
const float SCALING = 0.9;
// Returns a grid of randomly moving points. Each grid cell contains one point which
// moves on an ellipse.
float getWisps(vec2 texCoords, float gridSize, vec2 seed) {
// Shift coordinates by a random offset and make sure the have a 1:1 aspect ratio.
vec2 coords = (texCoords + hash22(seed)) * uSize;
// Apply global scale.
coords /= gridSize;
// Get grid cell coordinates in [0..1].
vec2 cellUV = mod(coords, vec2(1));
// This is unique for each cell.
vec2 cellID = coords - cellUV + vec2(362.456);
// Add random rotation, scale and offset to each grid cell.
float speed = mix(10.0, 15.0, hash12(cellID * seed * 134.451)) / gridSize * WISPS_SPEED;
float rotation = mix(0.0, 6.283, hash12(cellID * seed * 54.4129));
float radius = mix(0.5, 1.0, hash12(cellID * seed * 19.1249)) * WISPS_RADIUS;
float roundness = mix(-1.0, 1.0, hash12(cellID * seed * 7.51949));
vec2 offset = vec2(sin(speed * (uTime + 1)) * roundness, cos(speed * (uTime + 1)));
offset *= 0.5 - 0.5 * radius / gridSize;
offset = vec2(offset.x * cos(rotation) - offset.y * sin(rotation),
offset.x * sin(rotation) + offset.y * cos(rotation));
cellUV += offset;
// Use distance to center of shifted / rotated UV coordinates to draw a glaring point.
float dist = length(cellUV - 0.5) * gridSize / radius;
if (dist < 1.0) {
return min(5, 0.01 / pow(dist, 2.0));
}
return 0.0;
}
void main() {
float progress = uForOpening ? 1.0 - easeOutQuad(uProgress) : easeOutQuad(uProgress);
// Scale down the window slightly.
float scale = 1.0 / mix(1.0, SCALING, progress) - 1.0;
vec2 coords = cogl_tex_coord_in[0].st * (scale + 1.0) - scale * 0.5;
// Get the color of the window.
cogl_color_out = texture2D(uTexture, coords);
// Shell.GLSLEffect uses straight alpha. So we have to convert from premultiplied.
if (cogl_color_out.a > 0) {
cogl_color_out.rgb /= cogl_color_out.a;
}
// Compute several layers of moving wisps.
vec2 uv = (cogl_tex_coord_in[0].st - 0.5) / mix(1.0, 0.5, progress) + 0.5;
uv /= uScale;
float wisps = 0;
for (int i = 0; i < WISPS_LAYERS; ++i) {
wisps += getWisps(uv * 0.3, WISPS_SPACING, uSeed * (i + 1));
}
// Compute shrinking edge mask.
float mask = getRelativeEdgeMask(mix(0.01, 0.5, progress));
// Compute three different progress values.
float wispsIn = smoothstep(0, 1, clamp(progress / WISPS_IN_TIME, 0, 1));
float wispsOut =
smoothstep(0, 1, clamp((progress - WISPS_IN_TIME) / (1.0 - WISPS_IN_TIME), 0, 1));
float windowOut = smoothstep(0, 1, clamp(progress / WINDOW_OUT_TIME, 0, 1));
// Use a noise function to dissolve the window.
float noise = smoothstep(1.0, 0.0, abs(2.0 * simplex2DFractal(uv * uSize / 250) - 1.0));
float windowMask = 1.0 - (windowOut < 0.5 ? mix(0.0, noise, windowOut * 2.0)
: mix(noise, 1.0, windowOut * 2.0 - 1.0));
cogl_color_out.a *= windowMask * mask;
// Add the wisps.
vec4 wispColor = wisps * vec4(uColor, min(wispsIn, 1.0 - wispsOut) * mask);
cogl_color_out = alphaOver(cogl_color_out, wispColor);
// These are pretty useful for understanding how this works.
// cogl_color_out = vec4(vec3(windowMask), 1.0);
// cogl_color_out = vec4(vec3(wisps), 1.0);
// cogl_color_out = vec4(vec3(noise), 1.0);
// cogl_color_out = vec4(vec3(mask*min(wispsIn, 1.0 - wispsOut)), 1.0);
}
+46
View File
@@ -0,0 +1,46 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface domain="burn-my-windows">
<menu id="main-menu">
<section>
<item>
<attribute name="label" translatable="yes">Visit Homepage</attribute>
<attribute name="action">prefs.homepage</attribute>
</item>
<item>
<attribute name="label" translatable="yes">View Changelog</attribute>
<attribute name="action">prefs.changelog</attribute>
</item>
</section>
<section>
<item>
<attribute name="label" translatable="yes">Report a Bug</attribute>
<attribute name="action">prefs.bugs</attribute>
</item>
<item>
<attribute name="label" translatable="yes">Create an Effect</attribute>
<attribute name="action">prefs.new-effect</attribute>
</item>
<item>
<attribute name="label" translatable="yes">Translate</attribute>
<attribute name="action">prefs.translate</attribute>
</item>
<submenu>
<attribute name="label" translatable="yes">Donate</attribute>
<item>
<attribute name="label">PayPal</attribute>
<attribute name="action">prefs.donate-paypal</attribute>
</item>
<item>
<attribute name="label">GitHub</attribute>
<attribute name="action">prefs.donate-github</attribute>
</item>
</submenu>
</section>
<section>
<item>
<attribute name="label" translatable="yes">About Burn-My-Windows</attribute>
<attribute name="action">prefs.about</attribute>
</item>
</section>
</menu>
</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>
+179
View File
@@ -0,0 +1,179 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface domain="burn-my-windows">
<object class="GtkAdjustment" id="energize-a-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="energize-a-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="GtkBox" id="energize-a-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">energize-a-animation-time</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-energize-a-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">energize-a-scale</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-energize-a-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">
<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="energize-a-color">
<property name="use_alpha">0</property>
<property name="show_editor">1</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-energize-a-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>
</object>
</child>
</object>
</child>
</object>
</interface>
+179
View File
@@ -0,0 +1,179 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface domain="burn-my-windows">
<object class="GtkAdjustment" id="energize-b-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="energize-b-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="GtkBox" id="energize-b-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">energize-b-animation-time</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-energize-b-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">energize-b-scale</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-energize-b-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">
<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="energize-b-color">
<property name="use_alpha">0</property>
<property name="show_editor">1</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-energize-b-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>
</object>
</child>
</object>
</child>
</object>
</interface>
+362
View File
@@ -0,0 +1,362 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface domain="burn-my-windows">
<object class="GtkAdjustment" id="fire-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="flame-scale">
<property name="upper">3</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="flame-movement-speed">
<property name="upper">2.0</property>
<property name="lower">-2.0</property>
<property name="step-increment">0.01</property>
<property name="page-increment">0.1</property>
</object>
<object class="GtkBox" id="fire-prefs">
<property name="orientation">vertical</property>
<child>
<object class="GtkFrame">
<property name="margin-bottom">20</property>
<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">
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Presets</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="GtkMenuButton" id="fire-preset-button">
<child>
<object class="GtkBox">
<property name="spacing">8</property>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Choose a Preset</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">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">fire-animation-time</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-fire-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">
<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">flame-scale</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-flame-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">
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Speed</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">flame-movement-speed</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-flame-movement-speed">
<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">3D Noise</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">Creates a more dynamic fire but requires more GPU power.</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="flame-3d-noise">
<property name="halign">end</property>
<property name="valign">center</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-flame-3d-noise">
<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">Gradient</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="fire-color-1">
<property name="use_alpha">1</property>
<property name="show_editor">1</property>
</object>
</child>
<child>
<object class="GtkColorButton" id="fire-color-2">
<property name="use_alpha">1</property>
<property name="show_editor">1</property>
</object>
</child>
<child>
<object class="GtkColorButton" id="fire-color-3">
<property name="use_alpha">1</property>
<property name="show_editor">1</property>
</object>
</child>
<child>
<object class="GtkColorButton" id="fire-color-4">
<property name="use_alpha">1</property>
<property name="show_editor">1</property>
</object>
</child>
<child>
<object class="GtkColorButton" id="fire-color-5">
<property name="use_alpha">1</property>
<property name="show_editor">1</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-fire-colors">
<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>
+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>
+123
View File
@@ -0,0 +1,123 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface domain="burn-my-windows">
<object class="GtkAdjustment" id="tv-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="GtkBox" id="tv-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">tv-animation-time</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-tv-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">
<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="tv-effect-color">
<property name="use_alpha">0</property>
<property name="show_editor">1</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-tv-effect-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>
</object>
</child>
</object>
</child>
</object>
</interface>
+179
View File
@@ -0,0 +1,179 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface domain="burn-my-windows">
<object class="GtkAdjustment" id="wisps-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="wisps-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="GtkBox" id="wisps-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">wisps-animation-time</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-wisps-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">wisps-scale</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-wisps-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">
<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="wisps-color">
<property name="use_alpha">0</property>
<property name="show_editor">1</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-wisps-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>
</object>
</child>
</object>
</child>
</object>
</interface>
+53
View File
@@ -0,0 +1,53 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface domain="burn-my-windows">
<requires lib="gtk" version="3.0" />
<template class="BurnMyWindowsEffectPage" parent="GtkBox">
<property name="orientation">vertical</property>
<property name="hexpand">1</property>
<property name="spacing">10</property>
<child>
<object class="GtkBox">
<child>
<object class="GtkLabel" id="label">
<property name="xalign">0</property>
<property name="hexpand">1</property>
<style>
<class name="large-title" />
</style>
</object>
</child>
<child>
<object class="GtkButton" id="button">
<property name="valign">center</property>
<child>
<object class="GtkBox">
<property name="margin_start">8</property>
<property name="margin_end">8</property>
<property name="spacing">6</property>
<child>
<object class="GtkImage">
<property name="icon_name">media-playback-start-symbolic</property>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="halign">start</property>
<property name="label" translatable="yes">Preview this Effect</property>
</object>
</child>
</object>
</child>
<style>
<class name="pill-button" />
<class name="flat" />
</style>
</object>
</child>
</object>
</child>
</template>
</interface>
+236
View File
@@ -0,0 +1,236 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface domain="burn-my-windows">
<requires lib="gtk" version="3.0" />
<menu id="close-effect-menu"></menu>
<menu id="open-effect-menu"></menu>
<object class="GtkMenuButton" id="menu-button">
<property name="menu-model">main-menu</property>
<property name="visible">1</property>
<child>
<object class="GtkImage">
<property name="icon-name">open-menu-symbolic</property>
<property name="visible">1</property>
<property name="icon-size">1</property>
</object>
</child>
</object>
<object class="GtkBox" id="general-prefs">
<property name="orientation">vertical</property>
<property name="margin-top">30</property>
<property name="margin-bottom">30</property>
<child>
<object class="GtkImage">
<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>
<object class="GtkListBox">
<property name="selection-mode">none</property>
<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">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="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>
</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="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>
</child>
</object>
</child>
</object>
</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>
+263
View File
@@ -0,0 +1,263 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface domain="burn-my-windows">
<object class="GtkBox" id="broken-glass-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="broken-glass-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-broken-glass-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="broken-glass-scale">
<property name="upper">5</property>
<property name="lower">0.2</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-broken-glass-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">Gravity</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="broken-glass-gravity">
<property name="upper">2.0</property>
<property name="lower">-2.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-broken-glass-gravity">
<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">Blow Force</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="broken-glass-blow-force">
<property name="upper">2.0</property>
<property name="lower">-2.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-broken-glass-blow-force">
<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">Shatter From Pointer Location</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">The shards will fly away from where your mouse pointer was when closing the window.</property>
<property name="xalign">0</property>
<property name="halign">start</property>
<property name="valign">center</property>
<property name="hexpand">1</property>
<property name="wrap">1</property>
<style>
<class name="dim-label" />
<class name="caption" />
</style>
</object>
</child>
</object>
</child>
<child>
<object class="GtkSwitch" id="broken-glass-use-pointer">
<property name="halign">end</property>
<property name="valign">center</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-broken-glass-use-pointer">
<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>
+151
View File
@@ -0,0 +1,151 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface domain="burn-my-windows">
<object class="GtkBox" id="energize-a-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="energize-a-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-energize-a-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="energize-a-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-energize-a-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">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="energize-a-color">
<property name="use_alpha">0</property>
<property name="show_editor">1</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-energize-a-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>
</object>
</child>
</object>
</child>
</object>
</interface>
+151
View File
@@ -0,0 +1,151 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface domain="burn-my-windows">
<object class="GtkBox" id="energize-b-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="energize-b-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-energize-b-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="energize-b-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-energize-b-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">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="energize-b-color">
<property name="use_alpha">0</property>
<property name="show_editor">1</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-energize-b-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>
</object>
</child>
</object>
</child>
</object>
</interface>
+297
View File
@@ -0,0 +1,297 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface domain="burn-my-windows">
<object class="GtkBox" id="fire-prefs">
<property name="orientation">vertical</property>
<child>
<object class="GtkFrame">
<property name="margin-bottom">20</property>
<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">Presets</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="GtkMenuButton" id="fire-preset-button">
<property name="label">Choose a Preset</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">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="fire-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-fire-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="flame-scale">
<property name="upper">3</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-flame-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">Speed</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="flame-movement-speed">
<property name="upper">2.0</property>
<property name="lower">-2.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-flame-movement-speed">
<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">3D Noise</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">Creates a more dynamic fire but requires more GPU power.</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="flame-3d-noise">
<property name="halign">end</property>
<property name="valign">center</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-flame-3d-noise">
<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">Gradient</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="fire-color-1">
<property name="use_alpha">1</property>
<property name="show_editor">1</property>
</object>
</child>
<child>
<object class="GtkColorButton" id="fire-color-2">
<property name="use_alpha">1</property>
<property name="show_editor">1</property>
</object>
</child>
<child>
<object class="GtkColorButton" id="fire-color-3">
<property name="use_alpha">1</property>
<property name="show_editor">1</property>
</object>
</child>
<child>
<object class="GtkColorButton" id="fire-color-4">
<property name="use_alpha">1</property>
<property name="show_editor">1</property>
</object>
</child>
<child>
<object class="GtkColorButton" id="fire-color-5">
<property name="use_alpha">1</property>
<property name="show_editor">1</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-fire-colors">
<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>
+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>
+276
View File
@@ -0,0 +1,276 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface domain="burn-my-windows">
<object class="GtkBox" id="matrix-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="matrix-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-matrix-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">0</property>
<property name="value-pos">left</property>
<property name="width-request">300</property>
<property name="adjustment">
<object class="GtkAdjustment" id="matrix-scale">
<property name="upper">50</property>
<property name="lower">5</property>
<property name="step-increment">1</property>
<property name="page-increment">5</property>
</object>
</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-matrix-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">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="matrix-randomness">
<property name="upper">1.0</property>
<property name="lower">0.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-matrix-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">Vertical Overshooting</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="matrix-overshoot">
<property name="upper">1.0</property>
<property name="lower">0.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-matrix-overshoot">
<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">Trail 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="matrix-trail-color">
<property name="use_alpha">0</property>
<property name="show_editor">1</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-matrix-trail-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">Tip 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="matrix-tip-color">
<property name="use_alpha">0</property>
<property name="show_editor">1</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-matrix-tip-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>
</object>
</child>
</object>
</child>
</object>
</interface>
+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>
+242
View File
@@ -0,0 +1,242 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface domain="burn-my-windows">
<object class="GtkBox" id="trex-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="trex-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-trex-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">Claw Scratch 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">1</property>
<property name="value-pos">left</property>
<property name="width-request">300</property>
<property name="adjustment">
<object class="GtkAdjustment" id="claw-scratch-scale">
<property name="upper">10</property>
<property name="lower">0.1</property>
<property name="step-increment">0.1</property>
<property name="page-increment">1</property>
</object>
</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-claw-scratch-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">Claw Scratch Count</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="claw-scratch-count">
<property name="upper">50</property>
<property name="lower">1</property>
<property name="step-increment">1</property>
<property name="page-increment">10</property>
</object>
</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-claw-scratch-count">
<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">Warp Effect</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="claw-scratch-warp">
<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-claw-scratch-warp">
<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">Flash 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="claw-scratch-color">
<property name="use_alpha">1</property>
<property name="show_editor">1</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-claw-scratch-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>
</object>
</child>
</object>
</child>
</object>
</interface>
+105
View File
@@ -0,0 +1,105 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface domain="burn-my-windows">
<object class="GtkBox" id="tv-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="tv-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-tv-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">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="tv-effect-color">
<property name="use_alpha">0</property>
<property name="show_editor">1</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-tv-effect-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>
</object>
</child>
</object>
</child>
</object>
</interface>
+151
View File
@@ -0,0 +1,151 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface domain="burn-my-windows">
<object class="GtkBox" id="wisps-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="wisps-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-wisps-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="wisps-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-wisps-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">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="wisps-color">
<property name="use_alpha">0</property>
<property name="show_editor">1</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-wisps-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>
</object>
</child>
</object>
</child>
</object>
</interface>

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