Compare commits

...

140 Commits

Author SHA1 Message Date
Simon Schneegans 61f07336a4 ⬆️ Use newer version of upload action
Deploy / Bundle GNOME Shell Extension (push) Has been cancelled
Deploy / Bundle KWin Effect (push) Has been cancelled
2024-08-23 07:52:40 +02:00
Simon Schneegans 1867739b57 📝 Fix release date 2024-08-23 07:35:19 +02:00
Simon Schneegans 10e272e3f1 🎉 Set release date 2024-08-23 07:33:47 +02:00
Simon Schneegans d5ebd1c046 📝 Add changelog entry 2024-08-23 07:32:59 +02:00
Simon Schneegans 4cea22a1a5 🔀 Merge pull request #448 from Schneegans/feature/gnome-47 2024-08-23 07:30:28 +02:00
Simon Schneegans 46cc12aba1 💚 Disable rawhide checks for now 2024-08-23 07:20:55 +02:00
Simon Schneegans 3611bfb48c 💚 Fix image version 2024-08-23 07:15:26 +02:00
atomkapa atomkapa ca8ed84129 🌐 Translated using Weblate (Hungarian) 2024-08-18 19:55:44 +02:00
atomkapa atomkapa 207da763bc 🌐 Translated using Weblate (Hungarian) 2024-08-18 19:55:44 +02:00
symegac d201e91abc 🌐 Translated using Weblate (Danish) 2024-08-18 19:55:44 +02:00
symegac c8431af8d8 🌐 Added translation using Weblate (Danish) 2024-08-18 19:55:44 +02:00
Tinde (Joke) 4a896bd2ed 🌐 Translated using Weblate (Finnish) 2024-08-18 19:55:44 +02:00
Simon Schneegans b01a53da95 🔥 Remove duplicated code 2024-08-01 05:57:04 +02:00
Simon Schneegans a30d10bab6 🐛 Fix color parsing on GNOME 47 2024-08-01 05:46:20 +02:00
Simon Schneegans b99d2fa310 📝 Add changelog entry 2024-07-31 21:12:36 +02:00
Simon Schneegans 6b74f464af 🪲 Fix syntax error 2024-07-31 21:11:20 +02:00
Simon Schneegans c5e5b4b43f 🎉 Bump version number 2024-07-31 21:05:04 +02:00
Simon Schneegans 0bd8b5988f ✨ Apply clang-format 2024-07-31 08:04:10 +02:00
Simon Schneegans 00882e1898 🎉 Add support for GNOME Shell 47 2024-07-31 07:54:47 +02:00
Scrambled777 d3d88383f7 🌐 Translated using Weblate (Hindi) 2024-05-25 20:34:24 +02:00
Simon Schneegans 342a9d5dbc 🔀 Merge pull request #440 from Schneegans/fix/ci 2024-05-25 20:13:55 +02:00
Simon Schneegans 09a63b1eab 🔧 Update references 2024-05-25 20:05:13 +02:00
Simon Schneegans e4fb518d8e 🔧 Update references 2024-05-25 20:02:55 +02:00
Simon Schneegans 932403c742 📝 Add changelog entry 2024-05-25 19:51:17 +02:00
Simon Schneegans 7ab61b955a 🔀 Merge pull request #438 from nask0/patch-1 2024-05-25 19:48:17 +02:00
nask0 853578ad27 Make "EanbledByDefault" boolean in metadata.json.in
Making "EnabledByDefault" boolean instead of string, because newer versions of KWin complains about this. It should be backwards-compatible tho.
2024-05-21 15:45:02 +03:00
Simon Schneegans 37e0b5cf50 📝 Use color theme for sponsors list 2024-04-03 05:51:08 +02:00
Scrambled777 1666809a52 🌐 Translated using Weblate (Hindi) 2024-03-29 06:20:48 +01:00
Simon Schneegans 421af687e7 📝 Add links to Plasma 6 effects 2024-03-21 09:05:07 +01:00
Simon Schneegans e005cdd54b 🎉 Set release date
Deploy / Bundle GNOME Shell Extension (push) Has been cancelled
Deploy / Bundle KWin Effect (push) Has been cancelled
2024-02-27 21:37:24 +01:00
Simon Schneegans d59fda27cc 🔀 Merge pull request #427 from Schneegans/feature/rawhide 2024-02-27 08:37:51 +01:00
Simon Schneegans 84262192fb 🔧 Update references 2024-02-27 08:29:36 +01:00
Simon Schneegans 8b6208c60e 🔧 Update references 2024-02-27 07:54:17 +01:00
Simon Schneegans 24da559f90 🔥 Remove references job again 2024-02-27 07:43:52 +01:00
Simon Schneegans 39574c5a91 🔧 Update references 2024-02-27 07:43:15 +01:00
Simon Schneegans 4a9f2c9ffb 🔧 Re-add manual reference generation [generate-references] 2024-02-26 21:41:13 +01:00
Simon Schneegans 97c11312f0 🔧 Create separate workflow for reference generation 2024-02-26 21:24:55 +01:00
Simon Schneegans b0719775d0 🔧 Add manual wait 2024-02-26 21:02:11 +01:00
Simon Schneegans b705daac97 📝 Add changelog entries 2024-02-26 20:45:35 +01:00
Scrambled777 abfa57af7d 🌐 Translated using Weblate (Hindi) 2024-02-26 13:01:07 +01:00
Simon Schneegans 6ae4d06955 🔧 Add manual wait 2024-02-25 07:03:19 +01:00
Simon Schneegans 17fce87997 🎉 Claim support for GNOME 46 2024-02-25 07:02:53 +01:00
Simon Schneegans fecfe79a43 ✅ Add rawhide workflow again 2024-02-25 06:45:37 +01:00
Simon Schneegans fed64f0b3b 💞 Update credits 2024-02-25 06:42:54 +01:00
Miraficus 92fd68cb4f 🌐 Translated using Weblate (Czech) 2024-02-25 05:40:59 +01:00
Scrambled777 57eb99ccd0 🌐 Added translation using Weblate (Hindi) 2024-02-24 13:28:31 +01:00
Kristoffer Grundström ef9b9de3f5 🌐 Translated using Weblate (Swedish) 2024-02-24 13:28:31 +01:00
Danial Behzadi 2e7172932f 🌐 Translated using Weblate (Persian) 2024-02-22 10:09:19 +01:00
Miraficus b06d691197 🌐 Translated using Weblate (Czech) 2024-02-12 06:06:54 +01:00
aerowolf e56cc7daea 🌐 Translated using Weblate (Chinese (Simplified)) 2024-02-02 12:23:17 +01:00
Сергій 568218d51e 🌐 Translated using Weblate (Ukrainian) 2024-01-07 20:25:38 +01:00
Simon Schneegans ab20c2df75 🔀 Merge pull request #411 from Schneegans/fix/#406 2024-01-02 20:43:31 +01:00
Simon Schneegans 5597c5c6b0 💞 Update credits 2024-01-02 20:42:53 +01:00
Simon Schneegans 0fcf75150d 📝 Add changelog entry 2024-01-02 20:38:58 +01:00
Simon Schneegans 518962a810 🐛 Fix invisible settings button on Plasma 6 2024-01-02 20:32:05 +01:00
ssantos 63acf623a3 🌐 Translated using Weblate (Portuguese) 2023-12-18 21:19:15 +01:00
SoftExpert d2a98baa1f 🌐 Translated using Weblate (Romanian) 2023-12-05 09:44:29 +01:00
Simon Schneegans 219d4f9458 💞 Update credits 2023-11-22 06:54:43 +01:00
Simon Schneegans b5f31f4745 🔀 Merge pull request #403 from Schneegans/fix/ci 2023-11-22 06:51:41 +01:00
Simon Schneegans ebb965bc1b 🔧 Update references 2023-11-21 22:44:35 +01:00
Simon Schneegans 2b5c4fbc24 🔧 Regenerate references [generate-references] 2023-11-21 22:02:21 +01:00
Simon Schneegans 605db5ff5d 🔧 Give a bit more time to the tests 2023-11-21 21:35:27 +01:00
Simon Schneegans 6b135aa2b1 🔧 Temporarily disable checks on rawhide 2023-11-21 21:06:07 +01:00
Simon Schneegans 571662133c 📝 Add changelog entries 2023-11-21 18:24:09 +01:00
Simon Schneegans 51f6b93641 🔀 Merge pull request #405 from Schneegans/fix/#404 2023-11-21 18:18:34 +01:00
Simon Schneegans 5216e460cb 📝 Add changelog entries 2023-11-21 18:09:53 +01:00
Simon Schneegans 3ba27f383f 🪲 Fix issue #404 2023-11-21 18:08:39 +01:00
Simon Schneegans f43af678c0 📝 Add changelog entry 2023-11-20 21:03:46 +01:00
Simon Schneegans 400b88b52d 🔧 Add references 2023-11-20 21:03:03 +01:00
Simon Schneegans 3bd025a283 🔧 Run tests on GNOME 45 2023-11-20 20:50:01 +01:00
Simon Schneegans 9c872f9f02 🔧 Run tests on GNOME 45 2023-11-20 20:49:16 +01:00
Simon Schneegans 028daa724a 🔧 Wait slightly longer after opening prefs in tests 2023-11-20 20:48:24 +01:00
Simon Schneegans 111d29140c 📝 Add changelog entry 2023-11-20 20:42:37 +01:00
Simon Schneegans 53b40f4897 🔀 Merge pull request #402 from CoelacanthusHex/fix-plasma-6 2023-11-20 20:40:27 +01:00
Coelacanthus eb933572f5 Fix compatibility with Plasma 6
resolve #401

Signed-off-by: Coelacanthus <CoelacanthusHex@gmail.com>
2023-11-19 20:54:56 +08:00
Gustavo 6d7d6326b4 🌐 Translated using Weblate (Portuguese (Brazil)) 2023-11-13 17:21:06 +01:00
Simon Schneegans f6107452ef 📝 Remove obsolete characters 2023-11-09 20:48:05 +01:00
Simon Schneegans 35ef7f09f4 🎉 Bump version number 2023-10-26 05:55:50 +02:00
Simon Schneegans 8a8f33beb4 📝 Add changelog entry 2023-10-26 05:55:36 +02:00
Simon Schneegans c387ac9a5a 🎉 Set release date
Deploy / Bundle GNOME Shell Extension (push) Has been cancelled
Deploy / Bundle KWin Effect (push) Has been cancelled
2023-10-26 05:43:02 +02:00
Simon Schneegans c83756f8be 🔀 Merge pull request #393 from Schneegans/fix/#384 2023-10-25 20:14:19 +02:00
Simon Schneegans 30f2d221a3 🔀 Merge branch 'main' into fix/#384 2023-10-25 20:09:12 +02:00
Simon Schneegans 6b8ad4bfd6 📝 Add changelog entry 2023-10-25 20:07:54 +02:00
Simon Schneegans 5b07c1e22b 💞 Update credits 2023-10-25 19:56:22 +02:00
Simon Schneegans a92de7db3a 📝 Add changelog entry 2023-10-25 17:02:56 +02:00
Simon Schneegans 4b3f135229 📝 Add comment 2023-10-25 17:00:22 +02:00
Simon Schneegans eac0686ecd 🔧 Do not apply effects to windows which are on all desktops and have no decoration 2023-10-25 16:58:36 +02:00
Simon Schneegans 33dd2c07c4 🐛 Fix #356 for GNOME 45 2023-10-25 16:56:10 +02:00
Simon Schneegans 52bfafb15a ⬆️ Update version of dynamic-badges-action 2023-10-24 19:56:33 +02:00
Simon Schneegans 98ac9af09f 🎉 Add crypto donation link 2023-10-24 06:07:55 +02:00
Simon Schneegans 0437de8d5b 🔀 Merge pull request #390 from Schneegans/fix/#389 2023-10-24 06:02:11 +02:00
Simon Schneegans dbf026237d 📝 Add changelog entry 2023-10-24 06:01:09 +02:00
Simon Schneegans 8e89017cb7 🪲 Create proper gzip archives for KWin 2023-10-24 05:52:33 +02:00
Frankie McEyes 2f5f567145 🌐 Translated using Weblate (Italian) 2023-10-19 07:47:54 +02:00
Simon Schneegans 4e00c4d7d9 📝 Update funding links 2023-10-15 13:11:23 +02:00
Simon Schneegans b64dd2a969 📝 Tweak badges 2023-10-15 13:04:45 +02:00
Simon Schneegans b0a56fb0e9 📝 Add donation badges 2023-10-15 12:51:48 +02:00
Simon Schneegans ea981e714d 📝 Use new info boxes 2023-10-10 05:30:31 +02:00
Simon Schneegans 02b089fd4d 📝 Add new sponsors badge 2023-10-10 05:30:17 +02:00
Milan Šalka c56ed0739d 🌐 Translated using Weblate (Slovak) 2023-10-07 12:46:21 +02:00
Simon Schneegans 278c89981b 🎉 Add link to sponsors list to the main menu 2023-09-21 19:28:55 +02:00
Simon Schneegans 80ca2b9af0 📝 Add new sponsors list 2023-09-20 20:15:13 +02:00
Krzysztof Chorzempa 098cd784c7 🌐 Translated using Weblate (Polish) 2023-09-11 06:54:18 +02:00
lijeyol367 0b5247cbb2 🌐 Translated using Weblate (Persian) 2023-09-11 06:54:18 +02:00
albanobattistella 72a2e71cef 🌐 Translated using Weblate (Italian) 2023-09-11 06:54:18 +02:00
Simon Schneegans bb3249b8e0 🎉 Bump version number 2023-09-09 12:59:25 +02:00
Simon Schneegans 8d6ee48e59 📝 Add another branch hint
Deploy / Bundle GNOME Shell Extension (push) Has been cancelled
Deploy / Bundle KWin Effect (push) Has been cancelled
2023-09-09 12:49:38 +02:00
Simon Schneegans 6aef7536bc 🔀 Merge pull request #373 from Schneegans/feature/esm-modules 2023-09-09 12:42:56 +02:00
Simon Schneegans 9fba8f2186 Merge branch 'main' into feature/esm-modules 2023-09-09 12:35:13 +02:00
Simon Schneegans d6120de2b9 ✨ Format README 2023-09-09 12:34:35 +02:00
Simon Schneegans 8ec804bc86 🎉 Set release date 2023-09-09 12:33:59 +02:00
Simon Schneegans e62a9cdf85 📝 Add branch hint 2023-09-09 12:33:34 +02:00
Simon Schneegans cf57261165 🔥 Remove unused method 2023-09-09 06:55:32 +02:00
Simon Schneegans 734530fdab 🔧 Use dynamic imports for gettext 2023-09-09 06:46:09 +02:00
Simon Schneegans 0ccbb31d06 ♻️ Use more dynamic imports 2023-09-09 06:17:58 +02:00
Simon Schneegans 34a64e10fe 🪲 Fix fire presets 2023-09-09 06:09:40 +02:00
Simon Schneegans 767035e313 ♻️ Use utility method to import module in Shell process only 2023-09-09 06:05:15 +02:00
Simon Schneegans 006cc593a3 🔧 Add missing method inputs 2023-09-09 05:52:39 +02:00
Simon Schneegans 15560abad7 🪲 Fix Doom effect 2023-09-09 05:52:15 +02:00
Simon Schneegans 14cd1db7e9 🔧 Do not import the ShaderFactory in the preferences process 2023-09-08 20:45:58 +02:00
Simon Schneegans 3f05c946ec 📝 Tweak changelog entry 2023-09-05 08:02:36 +02:00
Simon Schneegans 9ae7f9c042 ♻️ Use glob import for utils 2023-09-02 10:21:40 +02:00
Simon Schneegans e9ef77617f 🔧 Use console.log instead of log 2023-09-02 10:21:21 +02:00
Simon Schneegans 27220c95f8 🔧 Only run tests on rawhide for GNOME 45 2023-08-31 07:39:56 +02:00
Simon Schneegans 5cc260ad39 Merge branch 'main' into feature/esm-modules 2023-08-31 07:37:42 +02:00
Simon Schneegans bf068e24da 🔧 Only run tests on rawhide 2023-08-19 08:02:24 +02:00
Simon Schneegans 45dd8d992d 🔧 Do not add compiled schemas 2023-08-19 08:01:46 +02:00
Simon Schneegans a8466a16f7 📝 Update effect creation guide 2023-08-19 08:00:54 +02:00
Simon Schneegans 44ce1a4825 🔧 Revert to old debug method behavior 2023-08-19 07:21:46 +02:00
Simon Schneegans c515e495f3 📝 Add changelog entry 2023-08-19 07:20:17 +02:00
Simon Schneegans f5e0a92cec Merge branch 'main' into feature/esm-modules 2023-08-18 08:28:42 +02:00
Simon Schneegans 8147edfa06 🪲 Fix config import 2023-08-18 06:13:39 +02:00
Simon Schneegans 15b0d78c01 Merge branch 'main' into feature/esm-modules 2023-08-18 05:47:31 +02:00
Simon Schneegans ee41968e17 📝 Fix comment 2023-08-07 13:58:22 +02:00
Simon Schneegans f2768216db 🔥 Remove backwards compatibility code 2023-08-07 13:21:50 +02:00
Simon Schneegans d1cddb129d 🔧 Port to ESM 2023-08-07 12:57:38 +02:00
Simon Schneegans 505289376e Merge branch 'main' into feature/esm-modules 2023-08-06 20:10:18 +02:00
Simon Schneegans 3a9b1cb8a8 Merge branch 'main' into feature/esm-modules 2023-08-06 19:31:12 +02:00
Simon Schneegans 7b90fd70bc 🚧 Continue port to ESM 2023-07-12 11:44:43 +02:00
Simon Schneegans 8a0c29a52f 🚧 Start port to ESM 2023-07-12 09:59:53 +02:00
770 changed files with 3525 additions and 11527 deletions
+5 -10
View File
@@ -1,15 +1,10 @@
# SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de> # SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
# SPDX-License-Identifier: CC0-1.0 # SPDX-License-Identifier: CC0-1.0
# These are supported funding model platforms
github: schneegans github: schneegans
patreon: # Replace with a single Patreon username
open_collective: # Replace with a single Open Collective username
ko_fi: schneegans ko_fi: schneegans
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel custom:
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry [
liberapay: # Schneegans "https://www.paypal.com/donate/?hosted_button_id=3F7UFL8KLVPXE",
issuehunt: # Replace with a single IssueHunt username https://schneegans.cb.id,
otechie: # Replace with a single Otechie username ]
custom: ["https://www.paypal.me/simonschneegans"]
+2 -2
View File
@@ -22,7 +22,7 @@ jobs:
echo "CODE_LINES=$(scripts/cloc.sh --loc)" >> $GITHUB_ENV echo "CODE_LINES=$(scripts/cloc.sh --loc)" >> $GITHUB_ENV
echo "COMMENT_LINES=$(scripts/cloc.sh --percentage)" >> $GITHUB_ENV echo "COMMENT_LINES=$(scripts/cloc.sh --percentage)" >> $GITHUB_ENV
- name: Create Lines-of-Code-Badge - name: Create Lines-of-Code-Badge
uses: schneegans/dynamic-badges-action@v1.3.0 uses: schneegans/dynamic-badges-action@v1.7.0
with: with:
auth: ${{ secrets.GIST_SECRET }} auth: ${{ secrets.GIST_SECRET }}
gistID: 8cf45f23253ff09b21196e7271378762 gistID: 8cf45f23253ff09b21196e7271378762
@@ -32,7 +32,7 @@ jobs:
color: lightgrey color: lightgrey
labelColor: 303030 labelColor: 303030
- name: Create Comments-Badge - name: Create Comments-Badge
uses: schneegans/dynamic-badges-action@v1.3.0 uses: schneegans/dynamic-badges-action@v1.7.0
with: with:
auth: ${{ secrets.GIST_SECRET }} auth: ${{ secrets.GIST_SECRET }}
gistID: 8cf45f23253ff09b21196e7271378762 gistID: 8cf45f23253ff09b21196e7271378762
+1 -27
View File
@@ -79,26 +79,6 @@ jobs:
run: | run: |
find $GITHUB_WORKSPACE -type f -and \( -name "*.sh" \) | xargs shellcheck find $GITHUB_WORKSPACE -type f -and \( -name "*.sh" \) | xargs shellcheck
references:
name: Generate References
runs-on: ubuntu-22.04
if: >
github.event_name == 'push' && contains(github.event.head_commit.message, '[generate-references]')
steps:
- uses: actions/checkout@v3
- name: Download Dependencies
run: |
sudo apt update -qq
sudo apt install gettext imagemagick -qq
- name: Build Burn-My-Windows
run: make
- name: Generate References
run: sudo make references
- uses: actions/upload-artifact@v3
with:
name: references
path: tests/references/
build: build:
name: Run Tests name: Run Tests
runs-on: ubuntu-22.04 runs-on: ubuntu-22.04
@@ -110,13 +90,7 @@ jobs:
fail-fast: false fail-fast: false
matrix: matrix:
version: version:
- "32" - "39"
- "33"
- "34"
- "35"
- "36"
- "37"
- "38"
session: session:
- "gnome-xsession" - "gnome-xsession"
- "gnome-wayland-nested" - "gnome-wayland-nested"
+36 -34
View File
@@ -6,48 +6,50 @@ name: Deploy
on: on:
push: push:
tags: tags:
- '**' - "**"
jobs: jobs:
gnome_bundle: gnome_bundle:
name: Bundle GNOME Shell Extension name: Bundle GNOME Shell Extension
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout Repository - name: Checkout Repository
uses: actions/checkout@v2 uses: actions/checkout@v2
- name: Install Dependencies - name: Install Dependencies
run: | run: |
sudo apt-get update -q sudo apt-get update -q
sudo apt-get install gettext sudo apt-get install gettext
- name: Create Release - name: Create Release
run: | run: |
make zip make zip
- name: Upload Release - name: Upload Release
uses: svenstaro/upload-release-action@2.2.1 uses: svenstaro/upload-release-action@2.9.0
with: with:
repo_token: ${{ secrets.GITHUB_TOKEN }} repo_token: ${{ secrets.GITHUB_TOKEN }}
file: burn-my-windows@schneegans.github.com.zip file: burn-my-windows@schneegans.github.com.zip
tag: ${{ github.ref }} tag: ${{ github.ref }}
overwrite: true overwrite: true
draft: true
kwin_bundle: kwin_bundle:
name: Bundle KWin Effect name: Bundle KWin Effect
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout Repository - name: Checkout Repository
uses: actions/checkout@v2 uses: actions/checkout@v2
- name: Install Dependencies - name: Install Dependencies
run: | run: |
sudo apt-get update -q sudo apt-get update -q
sudo apt-get install gettext clang-format sudo apt-get install gettext clang-format
- name: Create Release - name: Create Release
run: | run: |
./kwin/build.sh ./kwin/build.sh
- name: Upload Release - name: Upload Release
uses: svenstaro/upload-release-action@2.2.1 uses: svenstaro/upload-release-action@2.9.0
with: with:
repo_token: ${{ secrets.GITHUB_TOKEN }} repo_token: ${{ secrets.GITHUB_TOKEN }}
file: kwin/*.tar.gz file: kwin/*.tar.gz
tag: ${{ github.ref }} tag: ${{ github.ref }}
overwrite: true overwrite: true
file_glob: true file_glob: true
draft: true
+28
View File
@@ -0,0 +1,28 @@
# SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
# SPDX-License-Identifier: CC0-1.0
name: Generate References
on:
workflow_dispatch:
jobs:
references:
name: Generate References
runs-on: ubuntu-22.04
if: >
github.event_name == 'push' && contains(github.event.head_commit.message, '[generate-references]')
steps:
- uses: actions/checkout@v3
- name: Download Dependencies
run: |
sudo apt update -qq
sudo apt install gettext imagemagick -qq
- name: Build Burn-My-Windows
run: make
- name: Generate References
run: sudo make references
- uses: actions/upload-artifact@v3
with:
name: references
path: tests/references/
+3 -8
View File
@@ -19,7 +19,7 @@ LOCALES_MO = $(patsubst po/%.po,locale/%/LC_MESSAGES/$(NAME).mo,$(LOCALES_PO
ZIP_CONTENT = $(JS_FILES) $(LOCALES_MO) resources/$(NAME).gresource \ ZIP_CONTENT = $(JS_FILES) $(LOCALES_MO) resources/$(NAME).gresource \
schemas/org.gnome.shell.extensions.$(NAME).gschema.xml \ schemas/org.gnome.shell.extensions.$(NAME).gschema.xml \
schemas/org.gnome.shell.extensions.$(NAME)-profile.gschema.xml \ schemas/org.gnome.shell.extensions.$(NAME)-profile.gschema.xml \
schemas/gschemas.compiled metadata.json LICENSE metadata.json LICENSE
# These seven recipes can be invoked by the user. # These seven recipes can be invoked by the user.
.PHONY: zip install uninstall pot clean test references .PHONY: zip install uninstall pot clean test references
@@ -48,7 +48,7 @@ pot: $(JS_FILES) $(UI_FILES)
# This runs several tests in containerized versions of GNOME Shell. # This runs several tests in containerized versions of GNOME Shell.
test: test:
@ for version in 32 33 34 35 36 37 38 ; do \ @ for version in 39 "rawhide" ; do \
for session in "gnome-xsession" "gnome-wayland-nested" ; do \ for session in "gnome-xsession" "gnome-wayland-nested" ; do \
echo ; \ echo ; \
echo "Running Tests on Fedora $$version ($$session)." ; \ echo "Running Tests on Fedora $$version ($$session)." ; \
@@ -59,7 +59,7 @@ test:
# This re-generates all reference images required by the tests. # This re-generates all reference images required by the tests.
references: references:
@ for version in 32 33 34 35 36 37 38 ; do \ @ for version in 39 "rawhide" ; do \
for session in "gnome-xsession" "gnome-wayland-nested" ; do \ for session in "gnome-xsession" "gnome-wayland-nested" ; do \
echo ; \ echo ; \
echo "Generating References for Fedora $$version ($$session)." ; \ echo "Generating References for Fedora $$version ($$session)." ; \
@@ -92,11 +92,6 @@ $(ZIP_NAME): $(ZIP_CONTENT)
exit 1; \ exit 1; \
fi fi
# Compiles the gschemas.compiled file from the gschema.xml file.
schemas/gschemas.compiled: schemas/org.gnome.shell.extensions.$(NAME).gschema.xml schemas/org.gnome.shell.extensions.$(NAME)-profile.gschema.xml
@echo "Compiling schemas..."
@glib-compile-schemas schemas
# Compiles the gresource file from the gresources.xml. # Compiles the gresource file from the gresources.xml.
resources/$(NAME).gresource: resources/$(NAME).gresource.xml resources/$(NAME).gresource: resources/$(NAME).gresource.xml
@echo "Compiling resources..." @echo "Compiling resources..."
+90 -107
View File
@@ -13,41 +13,44 @@ SPDX-License-Identifier: CC-BY-4.0
<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://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="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="https://api.reuse.software/info/github.com/Schneegans/Burn-My-Windows"><img src="https://api.reuse.software/badge/github.com/Schneegans/Burn-My-Windows" /></a> <a href="https://api.reuse.software/info/github.com/Schneegans/Burn-My-Windows"><img src="https://api.reuse.software/badge/github.com/Schneegans/Burn-My-Windows" /></a>
<a href="LICENSE"><img src="https://img.shields.io/badge/License-GPLv3-blue.svg?labelColor=303030" /></a> <a href="https://schneegans.github.io/sponsors/"><img src="https://gist.githubusercontent.com/Schneegans/2d06edf0937c480951feb86b9e719304/raw/weekly.svg" /></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="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/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> <a href="scripts/cloc.sh"><img src="https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/Schneegans/8cf45f23253ff09b21196e7271378762/raw/comments.json" /></a>
</p> </p>
> [!IMPORTANT]
> The code in the `main` branch is for GNOME Shell 45+. For older GNOME versions, please use the `gnome-3.36-44` branch.
When I released the [Desktop Cube Extension](https://github.com/Schneegans/Desktop-Cube/) for GNOME, many people requested to revive one of the most useless features of Linux desktop history: Setting windows on fire! When I released the [Desktop Cube Extension](https://github.com/Schneegans/Desktop-Cube/) for GNOME, 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)! 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)!
**🖼️ The wallpapers used in the previews below were all generated using AI and are available in [this GitHub repository](https://github.com/Schneegans/ai-wallpapers).** **🖼️ The wallpapers used in the previews below were all generated using AI and are available in [this GitHub repository](https://github.com/Schneegans/ai-wallpapers).**
Effect | Preview | Effect | Preview |
-----|-------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- |
**Apparition** <br> This effect hides your windows by violently sucking them into the void of magic! | <img src ="docs/pics/apparition.gif" /> | **Apparition** <br> This effect hides your windows by violently sucking them into the void of magic! | <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!| <img src ="docs/pics/broken-glass.gif" /> | **Broken Glass** <br> Shatter your windows into a shower sharp shards! This effect can be configured so that the shards fly away from your mouse pointer position! | <img src ="docs/pics/broken-glass.gif" /> |
**Doom** <br> Melt your windows. Inspired by the legendary screen transitions of the original Doom. | <img src ="docs/pics/doom.gif" /> | **Doom** <br> Melt your windows. Inspired by the legendary screen transitions of the original Doom. | <img src ="docs/pics/doom.gif" /> |
**Energize A** <br> Beam your windows away! | <img src ="docs/pics/energize-a.gif" /> | **Energize A** <br> Beam your windows away! | <img src ="docs/pics/energize-a.gif" /> |
**Energize B** <br> Using different transporter technology results in an alternative visual effect. | <img src ="docs/pics/energize-b.gif" /> | **Energize B** <br> Using different transporter technology results in an alternative visual effect. | <img src ="docs/pics/energize-b.gif" /> |
**Fire** <br> The classic effect inspired by Compiz. However, this is implemented using a GLSL shader and not with a particle system like in the old days. | <img src ="docs/pics/fire.gif" /> | **Fire** <br> The classic effect inspired by Compiz. However, this is implemented using a GLSL shader and not with a particle system like in the old days. | <img src ="docs/pics/fire.gif" /> |
**Glide** <br> This very simple effect fades the window to transparency with subtle 3D effects. | <img src ="docs/pics/glide.gif" /> | **Glide** <br> This very simple effect fades the window to transparency with subtle 3D effects. | <img src ="docs/pics/glide.gif" /> |
**Glitch** <br> This effect applies some intentional graphics issues to your windows. | <img src ="docs/pics/glitch.gif" /> | **Glitch** <br> This effect applies some intentional graphics issues to your windows. | <img src ="docs/pics/glitch.gif" /> |
**Hexagon** <br> With glowing lines and hexagon-shaped tiles, this effect looks very sci-fi. | <img src ="docs/pics/hexagon.gif" /> | **Hexagon** <br> With glowing lines and hexagon-shaped tiles, this effect looks very sci-fi. | <img src ="docs/pics/hexagon.gif" /> |
**Incinerate** <br> A less snappy but definitely more fancy take on the fire effect. | <img src ="docs/pics/incinerate.gif" /> | **Incinerate** <br> A less snappy but definitely more fancy take on the fire effect. | <img src ="docs/pics/incinerate.gif" /> |
**Matrix** <br> Turn your windows into a shower of green letters! The color is actually configurable.| <img src ="docs/pics/matrix.gif" /> | **Matrix** <br> Turn your windows into a shower of green letters! The color is actually configurable. | <img src ="docs/pics/matrix.gif" /> |
**Paint Brush** <br> Paint or erase your windows with a thick paint brush. | <img src ="docs/pics/paint-brush.gif" /> | **Paint Brush** <br> Paint or erase your windows with a thick paint brush. | <img src ="docs/pics/paint-brush.gif" /> |
**Pixelate** <br> Pixelate your windows and randomly hide pixels until the entire window is gone.| <img src ="docs/pics/pixelate.gif" /> | **Pixelate** <br> Pixelate your windows and randomly hide pixels until the entire window is gone. | <img src ="docs/pics/pixelate.gif" /> |
**Pixel Wheel** <br> This simple effect pixelates the window and hides the pixels in a wheel-like fashion.| <img src ="docs/pics/pixel-wheel.gif" /> | **Pixel Wheel** <br> This simple effect pixelates the window and hides the pixels in a wheel-like fashion. | <img src ="docs/pics/pixel-wheel.gif" /> |
**Pixel Wipe** <br> This effect pixelates the window and hides the pixels radially, starting from the pointer position.| <img src ="docs/pics/pixel-wipe.gif" /> | **Pixel Wipe** <br> This effect pixelates the window and hides the pixels radially, starting from the pointer position. | <img src ="docs/pics/pixel-wipe.gif" /> |
**Portal** <br> This ridiculous effect teleports your windows from and to alternative dimensions. It may resemble the portal from a well-known cartoon series... | <img src ="docs/pics/portal.gif" /> | **Portal** <br> This ridiculous effect teleports your windows from and to alternative dimensions. It may resemble the portal from a well-known cartoon series... | <img src ="docs/pics/portal.gif" /> |
**Snap of Disintegration** <br> Dissolve your windows into a cloud of dust.| <img src ="docs/pics/snap.gif" /> | **Snap of Disintegration** <br> Dissolve your windows into a cloud of dust. | <img src ="docs/pics/snap.gif" /> |
**T-Rex Attack** <br> Destroy your windows with a series of violent slashes!| <img src ="docs/pics/trex.gif" /> | **T-Rex Attack** <br> Destroy your windows with a series of violent slashes! | <img src ="docs/pics/trex.gif" /> |
**TV Effect** <br> This is a very simple effect to demonstrate that this extension could also be used in a more professional environment. | <img src ="docs/pics/tv.gif" /> | **TV Effect** <br> This is a very simple effect to demonstrate that this extension could also be used in a more professional environment. | <img src ="docs/pics/tv.gif" /> |
**TV Glitch** <br> This effect combines the Glitch and the TV Effect. | <img src ="docs/pics/tv-glitch.gif" /> | **TV Glitch** <br> This effect combines the Glitch and the TV Effect. | <img src ="docs/pics/tv-glitch.gif" /> |
**Wisps** <br> Let your windows be carried away to the realm of dreams by these little fairies! | <img src ="docs/pics/wisps.gif" /> | **Wisps** <br> Let your windows be carried away to the realm of dreams by these little fairies! | <img src ="docs/pics/wisps.gif" /> |
**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) | **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) |
## ✅ Supported Versions ## ✅ Supported Versions
@@ -84,50 +87,23 @@ Below is a table which summarizes the current availability for all effects.
<tr><td>Wisps</td> <td>✅</td> <td>✅</td> <td>✅</td> <td>✅</td> </tr> <tr><td>Wisps</td> <td>✅</td> <td>✅</td> <td>✅</td> <td>✅</td> </tr>
</table> </table>
## 💞 Show that you love Burn-My-Windows!
## 💞 These People _love_ this Extension [![kofi](https://img.shields.io/badge/Donate-on_Ko--fi-ff5e5b?logo=ko-fi)](https://ko-fi.com/schneegans)
[![github](https://img.shields.io/badge/Donate-on_GitHub-purple?logo=github)](https://github.com/sponsors/Schneegans)
[![paypal](https://img.shields.io/badge/Donate-on_PayPal-009cde?logo=paypal)](https://www.paypal.com/donate/?hosted_button_id=3F7UFL8KLVPXE)
[![crypto](https://img.shields.io/badge/Donate-some_Crypto-f7931a?logo=bitcoin)](https://schneegans.cb.id)
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. While coding new features or translating Burn-My-Windows is the most awesome way to contribute, providing financial support will encourage me to invest my spare time for developing free and open-source software.
<h3 align="center">🥇 Current Gold Sponsors</h3> **These awesome people have already donated to the development of my open-source projects:**
<p align="center">
<a href="https://github.com/D3vil0p3r">D3vil0p3r</a><br>
Maxence Sebald<br>
</p>
<h3 align="center">🥈 Current Silver Sponsors</h3> <a href="https://schneegans.github.io/sponsors/">
<p align="center"> <picture>
<a href="https://github.com/danielheadbang">@danielheadbang</a><br> <source media="(prefers-color-scheme: dark)" srcset="https://schneegans.github.io/sponsors/sponsors_dark_small.svg">
<a href="https://github.com/castrojo">Jorge Castro</a><br> <img alt="Sponsors List" src="https://schneegans.github.io/sponsors/sponsors_light_small.svg#gh-light-mode-only">
</p> </picture>
</a>
<h3 align="center">🥉 Current Bronze Sponsors</h3>
<p align="center">
<a href='https://github.com/SubOptimal'>@SubOptimal</a><br>
<a href='https://github.com/vlazic'>@vlazic</a><br>
<!-- <a href="https://github.com/sponsors/Schneegans">Become the first!</a><br> -->
</p>
<h3 align="center">🏅 Previous Sponsors and One-Time Donators</h3>
<p align="center">
<a href="https://github.com/dennis1248">Dennis ten Hoove</a><br>
<a href="https://github.com/MRR-dev">@MRR-dev</a><br>
<a href='https://github.com/AngelBrielez'>Angel Brielez</a>
<a href='https://github.com/taconomix'>@taconomix</a><br>
<a href='https://github.com/enolive'>@enolive</a><br>
<a href="https://github.com/Aggraxis">@Aggraxis</a><br>
<a href="https://twitter.com/tjiiik">tj3k</a><br>
<a href="https://github.com/wolfyrion">@wolfyrion</a><br>
<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 GNOME extensions: [🧊 Desktop-Cube](https://github.com/Schneegans/Desktop-Cube) or [🍰 Fly-Pie](https://github.com/Schneegans/Fly-Pie/)!
## ⬇️ Installation (GNOME) ## ⬇️ Installation (GNOME)
@@ -157,7 +133,7 @@ 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>. 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. 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: Then you can enable the extension with the _Gnome Tweak Tool_, the _Extensions_ application or with this command:
```bash ```bash
gnome-extensions enable burn-my-windows@schneegans.github.com gnome-extensions enable burn-my-windows@schneegans.github.com
@@ -173,6 +149,12 @@ git clone https://github.com/Schneegans/Burn-My-Windows.git
cd Burn-My-Windows cd Burn-My-Windows
``` ```
If your GNOME Shell version is <= 45, you will have to checkout the `gnome-3.36-44` branch:
```bash
git checkout gnome-3.36-44
```
Now you will have to install the extension. 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. 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.
@@ -182,40 +164,43 @@ make install
Then restart GNOME Shell with <kbd>Alt</kbd> + <kbd>F2</kbd>, <kbd>r</kbd> + <kbd>Enter</kbd>. 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. 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: Then you can enable the extension with the _Gnome Tweak Tool_, the _Extensions_ application or with this command:
```bash ```bash
gnome-extensions enable burn-my-windows@schneegans.github.com gnome-extensions enable burn-my-windows@schneegans.github.com
``` ```
## ⬇️ Installation (KWin) ## ⬇️ Installation (KWin)
You can either download the effects from the KDE store (a), download a stable version from GitHub (b) or clone the latest version directly with `git` (c). You can either download the effects from the KDE store (a), download a stable version from GitHub (b) or clone the latest version directly with `git` (c).
:warning: **You need at least KWin 5.25.0 for the Burn-My-Windows effects.** > [!IMPORTANT]
> You need at least KWin 5.25.0 for the Burn-My-Windows effects.
:warning: **If the color picker widgets in the effect settings do not work for you, you may have to install a package called `libkf5widgetsaddons-dev` (Kubuntu, KDE Neon, ...) or `kf5-kwidgetsaddons-devel`, `kwidgetsaddons-devel` (Fedora, OpenSuse, ...).** > [!NOTE]
> If the color picker widgets in the effect settings do not work for you, you may have to install a package called `libkf5widgetsaddons-dev` (Kubuntu, KDE Neon, ...) or `kf5-kwidgetsaddons-devel`, `kwidgetsaddons-devel` (Fedora, OpenSuse, ...).
### a) Download from the KDE Store ### a) Download from the KDE Store
Here are links to all effects which are currently available in the KDE store; Here are links to all effects which are currently available in the KDE store:
* [Doom](https://store.kde.org/p/1898739) | Plasma 5 | Plasma 6 |
* [Energize A](https://store.kde.org/p/1884310) | ---------------------------------------------- | ---------------------------------------------- |
* [Energize B](https://store.kde.org/p/1884311) | [Doom](https://store.kde.org/p/1898739) | [Doom](https://store.kde.org/p/2133831) |
* [Fire](https://store.kde.org/p/1884307) | [Energize A](https://store.kde.org/p/1884310) | [Energize A](https://store.kde.org/p/2133829) |
* [Glide](https://store.kde.org/p/1935778) | [Energize B](https://store.kde.org/p/1884311) | [Energize B](https://store.kde.org/p/2133828) |
* [Glitch](https://store.kde.org/p/1972813) | [Fire](https://store.kde.org/p/1884307) | [Fire](https://store.kde.org/p/2133822) |
* [Hexagon](https://store.kde.org/p/1884309) | [Glide](https://store.kde.org/p/1935778) | [Glide](https://store.kde.org/p/2133839) |
* [Incinerate](https://store.kde.org/p/1861183) | [Glitch](https://store.kde.org/p/1972813) | [Glitch](https://store.kde.org/p/2133844) |
* [Pixelate](https://store.kde.org/p/1898742) | [Hexagon](https://store.kde.org/p/1884309) | [Hexagon](https://store.kde.org/p/2133836) |
* [Pixel Wheel](https://store.kde.org/p/1898746) | [Incinerate](https://store.kde.org/p/1861183) | [Incinerate](https://store.kde.org/p/2133817) |
* [Pixel Wipe](https://store.kde.org/p/1898748) | [Pixelate](https://store.kde.org/p/1898742) | [Pixelate](https://store.kde.org/p/2133832) |
* [Portal](https://store.kde.org/p/1959879) | [Pixel Wheel](https://store.kde.org/p/1898746) | [Pixel Wheel](https://store.kde.org/p/2133833) |
* [TV-Effect](https://store.kde.org/p/1884312) | [Pixel Wipe](https://store.kde.org/p/1898748) | [Pixel Wipe](https://store.kde.org/p/2133834) |
* [TV-Glitch](https://store.kde.org/p/1982142) | [Portal](https://store.kde.org/p/1959879) | [Portal](https://store.kde.org/p/2133842) |
* [Wisps](https://store.kde.org/p/1884313) | [TV-Effect](https://store.kde.org/p/1884312) | [TV-Effect](https://store.kde.org/p/2133825) |
| [TV-Glitch](https://store.kde.org/p/1982142) | [TV-Glitch](https://store.kde.org/p/2133819) |
| [Wisps](https://store.kde.org/p/1884313) | [Wisps](https://store.kde.org/p/2133824) |
You can also directly get the effects from within your system settings. You can also directly get the effects from within your system settings.
Just go to your System Settings, then "Workspace Behavior", and "Desktop Effects". Then click on "Get new Desktop Effects...". Just go to your System Settings, then "Workspace Behavior", and "Desktop Effects". Then click on "Get new Desktop Effects...".
@@ -237,7 +222,6 @@ tar -xf burn_my_windows_kwin4.tar.gz -C ~/.local/share/kwin/effects
Then select the desired effects in the system settings under "Desktop Effects". Then select the desired effects in the system settings under "Desktop Effects".
### c) Cloning the Latest Version with `git` ### c) Cloning the Latest Version with `git`
Execute the clone command below where you want to have the source code of the extension. Execute the clone command below where you want to have the source code of the extension.
@@ -258,30 +242,29 @@ tar -xf kwin/burn_my_windows_kwin4.tar.gz -C ~/.local/share/kwin/effects
That's it! That's it!
You can now select the desired effects in the system settings under "Desktop Effects". You can now select the desired effects in the system settings under "Desktop Effects".
## :octocat: I want to contribute! ## :octocat: I want to contribute!
That's great! 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/)? 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: 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__). 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. 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! This does not only look great but also makes you rethink what to add to a commit. Make many but small commits!
Emoji | Description | Emoji | Description |
------|------------ | --------------------------------------------------------- | ------------------------------------------------------------------------- |
:tada: `:tada:` | When you added a cool new feature. | :tada: `:tada:` | When you added a cool new feature. |
:wrench: `:wrench:` | When you added a piece of code. | :wrench: `:wrench:` | When you added a piece of code. |
:recycle: `:recycle:` | When you refactored a part of the code. | :recycle: `:recycle:` | When you refactored a part of the code. |
:sparkles: `:sparkles:` | When you applied clang-format. | :sparkles: `:sparkles:` | When you applied clang-format. |
:globe_with_meridians: `:globe_with_meridians:` | When you worked on translations. | :globe_with_meridians: `:globe_with_meridians:` | When you worked on translations. |
:art: `:art:` | When you improved / added assets like themes. | :art: `:art:` | When you improved / added assets like themes. |
:lipstick: `:lipstick:` | When you worked on the UI of the preferences dialog. | :lipstick: `:lipstick:` | When you worked on the UI of the preferences dialog. |
:rocket: `:rocket:` | When you improved performance. | :rocket: `:rocket:` | When you improved performance. |
:memo: `:memo:` | When you wrote documentation. | :memo: `:memo:` | When you wrote documentation. |
:beetle: `:beetle:` | When you fixed a bug. | :beetle: `:beetle:` | When you fixed a bug. |
:revolving_hearts: `:revolving_hearts:` | When a new sponsor is added or credits are updated. | :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. | :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. | :twisted_rightwards_arrows: `:twisted_rightwards_arrows:` | When you merged a branch. |
:fire: `:fire:` | When you removed something. | :fire: `:fire:` | When you removed something. |
:truck: `:truck:` | When you moved / renamed something. | :truck: `:truck:` | When you moved / renamed something. |
+66
View File
@@ -5,6 +5,72 @@ SPDX-License-Identifier: CC-BY-4.0
# Changelog of the Burn-My-Windows Extension # Changelog of the Burn-My-Windows Extension
## [Burn My Windows 43](https://github.com/schneegans/Burn-My-Windows/releases/tag/v43)
**Release Date:** 2024-08-23
#### Enhancements
- Ported the extension to GNOME 47.
- Several translations have been updated. Thanks to all the translators!
#### Bug Fixes
- Fixed an issue in the KDE metadata files which caused a warning in the logs on KDE Plasma 6. Thanks to [@nask0](https://github.com/nask0) for the fix!
## [Burn My Windows 42 [backport release]](https://github.com/schneegans/Burn-My-Windows/releases/tag/v42)
**Release Date:** 2024-02-27
- Ported the changes from Burn-My-Windows 41 to GNOME 3.36 - 44.
## [Burn My Windows 41](https://github.com/schneegans/Burn-My-Windows/releases/tag/v41)
**Release Date:** 2024-02-27
#### Enhancements
- The extension has been updated to work with GNOME 46.
- Several translations have been updated. Thanks to all the translators!
- All CI jobs are now executed for GNOME 45 and GNOME 46 as well.
#### Bug Fixes
- Fixed a compatibility issue with Plasma 6. Thanks to [@CoelacanthusHex](https://github.com/CoelacanthusHex) for the fix!
- Fixed an issue which caused the origin of the Incinerate and Pixel Wipe effects to be reset to the current mouse position whenever another effect was started while an effect was still running.
## [Burn My Windows 40 [backport release]](https://github.com/schneegans/Burn-My-Windows/releases/tag/v40)
**Release Date:** 2023-10-26
#### Enhancements
- Ported the changes from Burn-My-Windows 39 to GNOME 3.36 - 44.
## [Burn My Windows 39](https://github.com/schneegans/Burn-My-Windows/releases/tag/v39)
**Release Date:** 2023-10-26
#### Enhancements
- On KDE, the effects are no longer applied to windows which are on all desktops and have no decoration. This is primarily meant to avoid applying the effects to the Alt+Tab switcher.
- Several translations have been updated. Thanks to all the translators!
- Instead of an always out-of-date list of sponsors, the main menu of the preferences dialog now contains a link to the new [list of all donors](https://schneegans.github.io/sponsors/). This list is semi-automatically updated whenever a new donation is received. Thanks to all the donors!
- The possibility to [donate cryptocurrencies](https://schneegans.cb.id) has been added.
#### Bug Fixes
- Fixed an issue which caused overly large windows on GNOME for certain applications (e.g. KPatience) if they were re-opened after being closed in maximized state.
- Fixed an issue with the archive format which caused a failure when installing the effects via KDE Discover.
## [Burn My Windows 38](https://github.com/schneegans/Burn-My-Windows/releases/tag/v38)
**Release Date:** 2023-09-09
#### Major Changes
- This is the first release of Burn-My-Windows supporting GNOME 45. This required a [major refactoring](https://github.com/Schneegans/Burn-My-Windows/pull/373/files) of the code base as GJS now uses ESM modules. As a consequence, this version is not compatible with older versions of GNOME Shell anymore. The old code base is still available on the `gnome-3.36-44` branch and if new features are added (especially translations), they can be backported to this branch.
## [Burn My Windows 37](https://github.com/schneegans/Burn-My-Windows/releases/tag/v37) ## [Burn My Windows 37](https://github.com/schneegans/Burn-My-Windows/releases/tag/v37)
**Release Date:** 2023-08-26 **Release Date:** 2023-08-26
+41 -299
View File
@@ -38,7 +38,7 @@ journalctl -f -o cat | grep -E 'burn-my-windows|'
For the sake of this tutorial, we will create a **"Simple Fade"** 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. 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. Three simple steps are required to create a new effect.
You will have to ... You will have to ...
1. add preferences keys for enabling the effect, 1. add preferences keys for enabling the effect,
@@ -103,13 +103,14 @@ Please study this code carefully, all of it is explained with inline comments.
// The content from common.glsl is automatically prepended to each shader effect. This // The content from common.glsl is automatically prepended to each shader effect. This
// provides the standard input: // provides the standard input:
// vec2 iTexCoord: Texture coordinates for retrieving the window input color. // vec2 iTexCoord: Texture coordinates for retrieving the window input color.
// bool uForOpening: True if a window-open animation is ongoing, false otherwise. // bool uIsFullscreen: True if the window is maximized or in fullscreen mode.
// float uProgress: A value which transitions from 0 to 1 during the animation. // bool uForOpening: True if a window-open animation is ongoing, false otherwise.
// float uDuration: The duration of the current animation in seconds. // float uProgress: A value which transitions from 0 to 1 during the animation.
// vec2 uSize: The size of uTexture in pixels. // float uDuration: The duration of the current animation in seconds.
// float uPadding: The empty area around the actual window (e.g. where the shadow // vec2 uSize: The size of uTexture in pixels.
// is drawn). For now, this will only be set on GNOME. // float uPadding: The empty area around the actual window (e.g. where the shadow
// is drawn). For now, this will only be set on GNOME.
// Furthermore, there are two global methods for reading the window input color and // Furthermore, there are two global methods for reading the window input color and
// setting the shader output color. Both methods assume straight alpha: // setting the shader output color. Both methods assume straight alpha:
@@ -162,16 +163,16 @@ void main() {
// SPDX-FileCopyrightText: Your Name <your@email.com> // SPDX-FileCopyrightText: Your Name <your@email.com>
// SPDX-License-Identifier: GPL-3.0-or-later // SPDX-License-Identifier: GPL-3.0-or-later
'use strict'; "use strict";
const GObject = imports.gi.GObject; import * as utils from "../utils.js";
const _ = imports.gettext.domain('burn-my-windows').gettext; // We import the ShaderFactory only in the Shell process as it is not required in the
// preferences process. The preferences process does not create any shader instances, it
// only uses the static metadata of the effect.
const ShaderFactory = await utils.importInShellOnly("./ShaderFactory.js");
const ExtensionUtils = imports.misc.extensionUtils; const _ = await utils.importGettext();
const Me = imports.misc.extensionUtils.getCurrentExtension();
const utils = Me.imports.src.utils;
const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////
// This effect ... // // This effect ... //
@@ -181,21 +182,21 @@ const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
// The effect class can be used to get some metadata (like the effect's name or supported // 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 // GNOME Shell versions), to initialize the respective page of the settings dialog, as
// well as to create the actual shader for the effect. // well as to create the actual shader for the effect.
var SimpleFade = class { export default class Effect {
// The constructor creates a ShaderFactory which will be used by extension.js to create // 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 // 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 // GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
// newly created shader instance. // newly created shader instance.
constructor() { constructor() {
this.shaderFactory = new ShaderFactory(this.getNick(), (shader) => { this.shaderFactory = new ShaderFactory(Effect.getNick(), (shader) => {
// Store uniform locations of newly created shaders. // Store uniform locations of newly created shaders.
shader._uFadeWidth = shader.get_uniform_location('uFadeWidth'); shader._uFadeWidth = shader.get_uniform_location("uFadeWidth");
// Write all uniform values at the start of each animation. // Write all uniform values at the start of each animation.
shader.connect('begin-animation', (shader, settings) => { shader.connect("begin-animation", (shader, settings) => {
shader.set_uniform_float(shader._uFadeWidth, 1, [settings.get_double('simple-fade-width')]); shader.set_uniform_float(shader._uFadeWidth, 1, [
settings.get_double("simple-fade-width"),
]);
}); });
}); });
} }
@@ -203,7 +204,7 @@ var SimpleFade = class {
// ---------------------------------------------------------------------------- metadata // ---------------------------------------------------------------------------- metadata
// The effect is available on all GNOME Shell versions supported by this extension. // The effect is available on all GNOME Shell versions supported by this extension.
getMinShellVersion() { static getMinShellVersion() {
return [3, 36]; return [3, 36];
} }
@@ -212,21 +213,21 @@ var SimpleFade = class {
// effect is enabled currently (e.g. '*-enable-effect'), and its animation time // effect is enabled currently (e.g. '*-enable-effect'), and its animation time
// (e.g. '*-animation-time'). Also, the shader file and the settings UI files should be // (e.g. '*-animation-time'). Also, the shader file and the settings UI files should be
// named likes this. // named likes this.
getNick() { static getNick() {
return 'simple-fade'; return "simple-fade";
} }
// This will be shown in the sidebar of the preferences dialog as well as in the // 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. // drop-down menus where the user can choose the effect.
getLabel() { static getLabel() {
return _('Simple Fade Effect'); return _("Simple Fade Effect");
} }
// -------------------------------------------------------------------- API for prefs.js // -------------------------------------------------------------------- API for prefs.js
// This is called by the preferences dialog whenever a new effect profile is loaded. It // This is called by the preferences dialog whenever a new effect profile is loaded. It
// binds all user interface elements to the respective settings keys of the profile. // binds all user interface elements to the respective settings keys of the profile.
bindPreferences(dialog) { static bindPreferences(dialog) {
// Empty for now... Code is added here later in the tutorial! // Empty for now... Code is added here later in the tutorial!
} }
@@ -235,8 +236,8 @@ var SimpleFade = class {
// The getActorScale() is called from extension.js to adjust the actor's size during the // 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 // animation. This is useful if the effect requires drawing something beyond the usual
// bounds of the actor. This only works for GNOME 3.38+. // bounds of the actor. This only works for GNOME 3.38+.
getActorScale(settings) { static getActorScale(settings, forOpening, actor) {
return {x: 1.0, y: 1.0}; return { x: 1.0, y: 1.0 };
} }
} }
``` ```
@@ -250,15 +251,17 @@ Both, [`extension.js`](../extension.js) and [`prefs.js`](../prefs.js) define an
Like this: Like this:
```javascript ```javascript
import SimpleFade from './src/effects/SimpleFade.js';
...
const ALL_EFFECTS = [ const ALL_EFFECTS = [
... ...
new Me.imports.src.effects.SimpleFade.SimpleFade(), new SimpleFade(),
... ...
]; ];
``` ```
### Testing your Effect ### 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>. Now you can call `make install` and restart GNOME Shell with <kbd>Alt</kbd> + <kbd>F2</kbd>, <kbd>r</kbd> + <kbd>Enter</kbd>.
@@ -274,272 +277,11 @@ gnome-extensions prefs burn-my-windows@schneegans.github.com
## Adding a Preferences Page ## Adding a Preferences Page
There should be two sliders in this example: The animation duration and the width of the fading gradient. There should be two sliders in this example: The animation duration and the width of the fading gradient.
Just save the code below to `resources/ui/adw/simple-fade.ui`.
If your effect supports GNOME Shell 3.3x _and_ GNOME Shell 40+, you will have to provide three `*.ui` files for this.
This is because starting with GNOME Shell 40, the preference dialog uses GTK4, before it used to use GTK3.
Starting with GNOME Shell 42, it uses `libadwaita` which requires different UI files again.
_:information_source: If you do not have the means to test your effect on different versions of GNOME, feel free to submit a pull request for one GNOME version only, I may then port your effect to other GNOME versions!_
Just save the code below to `resources/ui/gtk3/simple-fade.ui`, `resources/ui/gtk4/simple-fade.ui`, and `resources/ui/adw/simple-fade.ui` respectively.
Remember to replace any occurrence of `simple-fade` with your effect's nick-name! Remember to replace any occurrence of `simple-fade` with your effect's nick-name!
<details> <details>
<summary>Expand this to show the GTK3 code.</summary> <summary>Expand this to show the UI code.</summary>
```xml
<?xml version="1.0" encoding="UTF-8"?>
<!--
SPDX-FileCopyrightText: Your Name <your@email.com>
SPDX-License-Identifier: GPL-3.0-or-later
-->
<interface domain="burn-my-windows">
<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="GtkRevealer" id="simple-fade-prefs">
<child>
<object class="GtkListBox">
<property name="selection-mode">none</property>
<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">
<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="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>
</interface>
```
</details>
<details>
<summary>Expand this to show the GTK4 code.</summary>
```xml
<?xml version="1.0" encoding="UTF-8"?>
<!--
SPDX-FileCopyrightText: Your Name <your@email.com>
SPDX-License-Identifier: GPL-3.0-or-later
-->
<interface domain="burn-my-windows">
<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="GtkRevealer" id="simple-fade-prefs">
<child>
<object class="GtkListBox">
<property name="selection-mode">none</property>
<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>
</interface>
```
</details>
<details>
<summary>Expand this to show the libadwaita code.</summary>
```xml ```xml
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
@@ -628,10 +370,10 @@ SPDX-License-Identifier: GPL-3.0-or-later
### Loading the Preferences Page ### Loading the Preferences Page
In order to load the above `*.ui` files, add the following code to your effect's `bindPreferences()` method. In order to load the above `*.ui` file, add the following code to your effect's `bindPreferences()` method.
```javascript ```javascript
bindPreferences(dialog) { static bindPreferences(dialog) {
// These connect the settings to the UI elements. Have a look at prefs.js // These connect the settings to the UI elements. Have a look at prefs.js
// on how to bind other types of UI elements. // on how to bind other types of UI elements.
dialog.bindAdjustment('simple-fade-animation-time'); dialog.bindAdjustment('simple-fade-animation-time');
@@ -651,4 +393,4 @@ make install && pkill -f '.Extensions' && sleep 2 ; gnome-extensions prefs burn-
That's it! 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 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! If you are happy with your effect, submit a pull request, and it may get included in the next version!
+125 -135
View File
@@ -14,26 +14,41 @@
'use strict'; 'use strict';
const {Clutter, Gio, Meta} = imports.gi; import Gio from 'gi://Gio';
import Meta from 'gi://Meta';
const Main = imports.ui.main; import {fromVersion26} from './src/migrate.js';
const Workspace = imports.ui.workspace.Workspace; import {ProfileManager} from './src/ProfileManager.js';
const WindowManager = imports.ui.windowManager.WindowManager; import {WindowPicker} from './src/WindowPicker.js';
import * as utils from './src/utils.js';
// The WindowPreview class is only available on GNOME Shell 3.38+; import Apparition from './src/effects/Apparition.js';
let WindowPreview = null; import BrokenGlass from './src/effects/BrokenGlass.js';
try { import Doom from './src/effects/Doom.js';
WindowPreview = imports.ui.windowPreview.WindowPreview; import EnergizeA from './src/effects/EnergizeA.js';
} catch (error) { import EnergizeB from './src/effects/EnergizeB.js';
// Nothing to be done, we are on GNOME Shell 3.36. import Fire from './src/effects/Fire.js';
} import Glide from './src/effects/Glide.js';
import Glitch from './src/effects/Glitch.js';
import Hexagon from './src/effects/Hexagon.js';
import Incinerate from './src/effects/Incinerate.js';
import Matrix from './src/effects/Matrix.js';
import PaintBrush from './src/effects/PaintBrush.js';
import Pixelate from './src/effects/Pixelate.js';
import PixelWheel from './src/effects/PixelWheel.js';
import PixelWipe from './src/effects/PixelWipe.js';
import Portal from './src/effects/Portal.js';
import SnapOfDisintegration from './src/effects/SnapOfDisintegration.js';
import TRexAttack from './src/effects/TRexAttack.js';
import TVEffect from './src/effects/TVEffect.js';
import TVGlitch from './src/effects/TVGlitch.js';
import Wisps from './src/effects/Wisps.js';
import * as Main from 'resource:///org/gnome/shell/ui/main.js';
import {Workspace} from 'resource:///org/gnome/shell/ui/workspace.js';
import {WindowPreview} from 'resource:///org/gnome/shell/ui/windowPreview.js';
import {Extension} from 'resource:///org/gnome/shell/extensions/extension.js';
const ExtensionUtils = imports.misc.extensionUtils;
const Me = imports.misc.extensionUtils.getCurrentExtension();
const migrate = Me.imports.src.migrate;
const utils = Me.imports.src.utils;
const ProfileManager = Me.imports.src.ProfileManager.ProfileManager;
const WindowPicker = Me.imports.src.WindowPicker.WindowPicker;
////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////
// This extensions modifies the window-close and window-open animations with all kinds // // This extensions modifies the window-close and window-open animations with all kinds //
@@ -44,7 +59,7 @@ const WindowPicker = Me.imports.src.WindowPicker.WindowPicker;
// to get this working. For more details, read the other comments in this file... // // to get this working. For more details, read the other comments in this file... //
////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////
class Extension { export default class BurnMyWindows extends Extension {
// ------------------------------------------------------------------------ public stuff // ------------------------------------------------------------------------ public stuff
@@ -54,46 +69,47 @@ class Extension {
// New effects must be registered here and in prefs.js. // New effects must be registered here and in prefs.js.
this._ALL_EFFECTS = [ this._ALL_EFFECTS = [
new Me.imports.src.effects.Apparition.Apparition(), new Apparition(),
new Me.imports.src.effects.BrokenGlass.BrokenGlass(), new BrokenGlass(),
new Me.imports.src.effects.Doom.Doom(), new Doom(),
new Me.imports.src.effects.EnergizeA.EnergizeA(), new EnergizeA(),
new Me.imports.src.effects.EnergizeB.EnergizeB(), new EnergizeB(),
new Me.imports.src.effects.Fire.Fire(), new Fire(),
new Me.imports.src.effects.Glide.Glide(), new Glide(),
new Me.imports.src.effects.Glitch.Glitch(), new Glitch(),
new Me.imports.src.effects.Hexagon.Hexagon(), new Hexagon(),
new Me.imports.src.effects.Incinerate.Incinerate(), new Incinerate(),
new Me.imports.src.effects.Matrix.Matrix(), new Matrix(),
new Me.imports.src.effects.PaintBrush.PaintBrush(), new PaintBrush(),
new Me.imports.src.effects.Pixelate.Pixelate(), new Pixelate(),
new Me.imports.src.effects.PixelWheel.PixelWheel(), new PixelWheel(),
new Me.imports.src.effects.PixelWipe.PixelWipe(), new PixelWipe(),
new Me.imports.src.effects.Portal.Portal(), new Portal(),
new Me.imports.src.effects.SnapOfDisintegration.SnapOfDisintegration(), new SnapOfDisintegration(),
new Me.imports.src.effects.TRexAttack.TRexAttack(), new TRexAttack(),
new Me.imports.src.effects.TVEffect.TVEffect(), new TVEffect(),
new Me.imports.src.effects.TVGlitch.TVGlitch(), new TVGlitch(),
new Me.imports.src.effects.Wisps.Wisps(), new Wisps(),
]; ];
// Load all of our resources. // Load all of our resources.
this._resources = Gio.Resource.load(Me.path + '/resources/burn-my-windows.gresource'); this._resources =
Gio.Resource.load(this.path + '/resources/burn-my-windows.gresource');
Gio.resources_register(this._resources); Gio.resources_register(this._resources);
// Store a reference to the settings object. // Store a reference to the settings object.
this._settings = ExtensionUtils.getSettings(); this._settings = this.getSettings();
// Now we check whether the extension settings need to be migrated from a previous // Now we check whether the extension settings need to be migrated from a previous
// version. If this is the case, we defer the profile loading until this is finished. // version. If this is the case, we defer the profile loading until this is finished.
const lastVersion = this._settings.get_int('last-extension-version'); const lastVersion = this._settings.get_int('last-extension-version');
if (lastVersion < Me.metadata.version) { if (lastVersion < this.metadata.version) {
if (lastVersion <= 26) { if (lastVersion <= 26) {
// If the profile migration fails for some reason, the callback will create a // If the profile migration fails for some reason, the callback will create a
// default profile instead. // default profile instead.
migrate.fromVersion26().finally(() => { fromVersion26().finally(() => {
this._loadProfiles(); this._loadProfiles();
this._settings.set_int('last-extension-version', Me.metadata.version); this._settings.set_int('last-extension-version', this.metadata.version);
}); });
} else { } else {
this._loadProfiles(); this._loadProfiles();
@@ -234,21 +250,9 @@ class Extension {
// of the actor. However, if we are in the overview, we have to enlarge the clone of // of the actor. However, if we are in the overview, we have to enlarge the clone of
// the window as well. // the window as well.
Workspace.prototype._addWindowClone = function(...params) { Workspace.prototype._addWindowClone = function(...params) {
const clone = extensionThis._origAddWindowClone.apply(this, params); const clone = extensionThis._origAddWindowClone.apply(this, params);
const container = clone.window_container;
// The parameters of this method changed a bit through the versions... const realWindow = params[0].get_compositor_private();
let realWindow, container;
if (utils.shellVersionIs(3, 36)) {
container = clone[0];
realWindow = container.realWindow;
} else if (utils.shellVersionIs(3, 38)) {
container = clone._windowContainer;
realWindow = params[0].get_compositor_private();
} else {
container = clone.window_container;
realWindow = params[0].get_compositor_private();
}
// Store the overview clone as temporary members of the real window actor. When we // Store the overview clone as temporary members of the real window actor. When we
// set up the effect, we will check for the existence of these and enlarge the clone // set up the effect, we will check for the existence of these and enlarge the clone
@@ -262,16 +266,6 @@ class Extension {
delete realWindow._bmwOverviewCloneContainer; delete realWindow._bmwOverviewCloneContainer;
}); });
// 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#L1363
if (utils.shellVersionIs(3, 36)) {
container.connect('destroy', () => this._doRemoveWindow(container.metaWindow));
}
return clone; return clone;
}; };
@@ -301,53 +295,50 @@ class Extension {
}; };
// With the code below, we hide the window-overlay (icon, label, close button) in the // 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 // overview once the close-animation is running.
// available on GNOME 3.38 and beyond, we cannot hide the overlay on GNOME 3.36.
if (WindowPreview) {
// We will monkey-patch these methods. // We will monkey-patch these methods.
this._origDeleteAll = WindowPreview.prototype._deleteAll; this._origDeleteAll = WindowPreview.prototype._deleteAll;
this._origRestack = WindowPreview.prototype._restack; this._origRestack = WindowPreview.prototype._restack;
this._origInit = WindowPreview.prototype._init; this._origInit = WindowPreview.prototype._init;
// Whenever a WindowPreview is created, we connect to the referenced Meta.Window's // Whenever a WindowPreview is created, we connect to the referenced Meta.Window's
// 'unmanaged' signal to hide the overlay. // 'unmanaged' signal to hide the overlay.
WindowPreview.prototype._init = function(...params) { WindowPreview.prototype._init = function(...params) {
extensionThis._origInit.apply(this, params); extensionThis._origInit.apply(this, params);
// Hide the window's icon, name, and close button. // Hide the window's icon, name, and close button.
const connectionID = this.metaWindow.connect('unmanaged', () => { const connectionID = this.metaWindow.connect('unmanaged', () => {
if (this.window_container) { if (this.window_container) {
this.overlayEnabled = false; this.overlayEnabled = false;
this._icon.visible = 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);
} }
}; });
// This is required, else WindowPreview's _restack() which is called by the // Make sure to not call the callback above if the Meta.Window was not unmanaged
// "this.overlayEnabled = false", sometimes tries to access an already delete // before leaving the overview.
// WindowPreview. this.connect('destroy', () => {
WindowPreview.prototype._restack = function() { this.metaWindow.disconnect(connectionID);
if (!this._closeRequested) { });
extensionThis._origRestack.apply(this); };
}
}; // 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);
}
};
// 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);
}
};
} }
// This function could be called after the extension is uninstalled, disabled in GNOME // This function could be called after the extension is uninstalled, disabled in GNOME
@@ -372,11 +363,9 @@ class Extension {
Main.wm._shouldAnimateActor = this._origShouldAnimateActor; Main.wm._shouldAnimateActor = this._origShouldAnimateActor;
Main.wm._waitForOverviewToHide = this._origWaitForOverviewToHide; Main.wm._waitForOverviewToHide = this._origWaitForOverviewToHide;
if (WindowPreview) { WindowPreview.prototype._deleteAll = this._origDeleteAll;
WindowPreview.prototype._deleteAll = this._origDeleteAll; WindowPreview.prototype._restack = this._origRestack;
WindowPreview.prototype._restack = this._origRestack; WindowPreview.prototype._init = this._origInit;
WindowPreview.prototype._init = this._origInit;
}
this._settings = null; this._settings = null;
} }
@@ -392,7 +381,7 @@ class Extension {
_loadProfiles() { _loadProfiles() {
// Get all currently available profiles. // Get all currently available profiles.
const profileManager = new ProfileManager(); const profileManager = new ProfileManager(this.metadata);
this._profiles = profileManager.getProfiles(); this._profiles = profileManager.getProfiles();
// Whenever the properties of a profile is changed in the settings, we may have to // Whenever the properties of a profile is changed in the settings, we may have to
@@ -448,7 +437,8 @@ class Extension {
if (previewNick != '') { if (previewNick != '') {
const activeProfile = this._settings.get_string('active-profile'); const activeProfile = this._settings.get_string('active-profile');
effect = this._ALL_EFFECTS.find(effect => effect.getNick() == previewNick); effect =
this._ALL_EFFECTS.find(effect => effect.constructor.getNick() == previewNick);
profile = this._profiles.find(p => p.path == activeProfile); profile = this._profiles.find(p => p.path == activeProfile);
// Only preview the effect until the preview window is closed. // Only preview the effect until the preview window is closed.
@@ -501,7 +491,7 @@ class Extension {
} }
// If the profile is still matching, we also check the color scheme. // If the profile is still matching, we also check the color scheme.
if (matches && profileColorScheme != 0 && utils.shellVersionIsAtLeast(42, 0)) { if (matches && profileColorScheme != 0) {
const colorScheme = this._shellSettings.get_string('color-scheme'); const colorScheme = this._shellSettings.get_string('color-scheme');
matches &= (profileColorScheme == 1 && colorScheme == 'default') || matches &= (profileColorScheme == 1 && colorScheme == 'default') ||
(profileColorScheme == 2 && colorScheme == 'prefer-dark'); (profileColorScheme == 2 && colorScheme == 'prefer-dark');
@@ -531,7 +521,8 @@ class Extension {
// Create a list of all enabled effects of this profile. // Create a list of all enabled effects of this profile.
const enabled = this._ALL_EFFECTS.filter(effect => { const enabled = this._ALL_EFFECTS.filter(effect => {
return profile.settings.get_boolean(`${effect.getNick()}-enable-effect`); return profile.settings.get_boolean(
`${effect.constructor.getNick()}-enable-effect`);
}); });
// And then choose a random effect. // And then choose a random effect.
@@ -569,7 +560,8 @@ class Extension {
// windows are faded in / out scaled up / down slightly by GNOME Shell. Here, we tweak // 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 // the transitions so that nothing changes. The window stays opaque and is scaled to
// actorScale. // actorScale.
const actorScale = effect.getActorScale(profile.settings, forOpening, actor); const actorScale =
effect.constructor.getActorScale(profile.settings, forOpening, actor);
// All scaling is relative to the window's center. // All scaling is relative to the window's center.
actor.set_pivot_point(0.5, 0.5); actor.set_pivot_point(0.5, 0.5);
@@ -580,7 +572,7 @@ class Extension {
// If we are in the overview, we have to enlarge the window's clone as well. We also // If we are in the overview, we have to enlarge the window's clone as well. We also
// disable the clone's overlay (e.g. its icon, name, and close button) during the // disable the clone's overlay (e.g. its icon, name, and close button) during the
// animation. // animation.
if (actor._bmwOverviewClone && utils.shellVersionIsAtLeast(3, 38)) { if (actor._bmwOverviewClone) {
actor._bmwOverviewClone.overlayEnabled = false; actor._bmwOverviewClone.overlayEnabled = false;
actor._bmwOverviewCloneContainer.set_pivot_point(0.5, 0.5); actor._bmwOverviewCloneContainer.set_pivot_point(0.5, 0.5);
actor._bmwOverviewCloneContainer.scale_x = actorScale.x; actor._bmwOverviewCloneContainer.scale_x = actorScale.x;
@@ -597,12 +589,16 @@ class Extension {
const endID = shader.connect('end-animation', () => { const endID = shader.connect('end-animation', () => {
shader.disconnect(endID); shader.disconnect(endID);
if (actor._bmwOverviewClone && utils.shellVersionIsAtLeast(3, 38)) { if (actor._bmwOverviewClone) {
actor._bmwOverviewClone.overlayEnabled = true; actor._bmwOverviewClone.overlayEnabled = true;
actor._bmwOverviewCloneContainer.scale_x = 1.0; actor._bmwOverviewCloneContainer.scale_x = 1.0;
actor._bmwOverviewCloneContainer.scale_y = 1.0; actor._bmwOverviewCloneContainer.scale_y = 1.0;
} }
// Restore the original scale of the window actor.
actor.scale_x = 1.0;
actor.scale_y = 1.0;
// Remove the shader and mark it being re-usable for future animations. // Remove the shader and mark it being re-usable for future animations.
actor.remove_effect(shader); actor.remove_effect(shader);
shader.returnToFactory(); shader.returnToFactory();
@@ -618,10 +614,11 @@ class Extension {
} }
}); });
// To make things deterministic during testing, we set the effect duration to 5 // To make things deterministic during testing, we set the effect duration to 8
// seconds. // seconds.
const duration = const duration = testMode ?
testMode ? 5000 : profile.settings.get_int(effect.getNick() + '-animation-time'); 8000 :
profile.settings.get_int(effect.constructor.getNick() + '-animation-time');
// Finally start the animation! // Finally start the animation!
shader.beginAnimation(profile.settings, forOpening, testMode, duration, actor); shader.beginAnimation(profile.settings, forOpening, testMode, duration, actor);
@@ -635,16 +632,9 @@ class Extension {
return true; return true;
} }
// This was called "realWindow" in GNOME 3.36. const actor = workspace._windows[index]._windowActor;
const propertyName = utils.shellVersionIs(3, 36) ? 'realWindow' : '_windowActor'; const shader = actor.get_effect('burn-my-windows-effect');
const actor = workspace._windows[index][propertyName];
const shader = actor.get_effect('burn-my-windows-effect');
return shader == null; return shader == null;
} }
} }
// This function is called once when the extension is loaded, not enabled.
function init() {
return new Extension();
}
+2 -2
View File
@@ -130,7 +130,7 @@ generate() {
# Create an archive which can be uploaded to https://store.kde.org. # Create an archive which can be uploaded to https://store.kde.org.
# shellcheck disable=SC2046 # shellcheck disable=SC2046
tar -cjf "$DIR_NAME.tar.gz" -C "$BUILD_DIR/$DIR_NAME" $(ls "$BUILD_DIR/$DIR_NAME") tar -czf "$DIR_NAME.tar.gz" -C "$BUILD_DIR/$DIR_NAME" $(ls "$BUILD_DIR/$DIR_NAME")
} }
# Now run the above method for all supported effects. # Now run the above method for all supported effects.
@@ -152,4 +152,4 @@ generate "wisps" "Wisps [Burn-My-Windows]" "Let your windows be carr
# Finally, create an archive for the effects. # Finally, create an archive for the effects.
# shellcheck disable=SC2046 # shellcheck disable=SC2046
tar -cjf "burn_my_windows_kwin4.tar.gz" -C "$BUILD_DIR" $(ls "$BUILD_DIR") tar -czf "burn_my_windows_kwin4.tar.gz" -C "$BUILD_DIR" $(ls "$BUILD_DIR")
+6
View File
@@ -80,6 +80,12 @@ class %EFFECT_CLASS% {
return window.hasDecoration; return window.hasDecoration;
} }
// This is primarily to avoid animating the AltTab popup.
// See https://github.com/Schneegans/Burn-My-Windows/issues/384 for details.
if (!window.hasDecoration && window.onAllDesktops) {
return false
}
if (blacklist.indexOf(window.windowClass) != -1) { if (blacklist.indexOf(window.windowClass) != -1) {
return false; return false;
} }
+3 -1
View File
@@ -1,4 +1,5 @@
{ {
"KPackageStructure": "KWin/Effect",
"KPlugin": { "KPlugin": {
"Name": "%NAME%", "Name": "%NAME%",
"Description": "%DESCRIPTION%", "Description": "%DESCRIPTION%",
@@ -12,13 +13,14 @@
"Id": "%DIR_NAME%", "Id": "%DIR_NAME%",
"License": "GPLv3", "License": "GPLv3",
"Version": "1.0", "Version": "1.0",
"EnabledByDefault": "false", "EnabledByDefault": false,
"Website": "https://github.com/Schneegans/Burn-My-Windows/", "Website": "https://github.com/Schneegans/Burn-My-Windows/",
"BugReportUrl": "https://github.com/Schneegans/Burn-My-Windows/issues", "BugReportUrl": "https://github.com/Schneegans/Burn-My-Windows/issues",
"ServiceTypes": [ "ServiceTypes": [
"KWin/Effect" "KWin/Effect"
] ]
}, },
"X-KDE-ConfigModule": "kcm_kwin4_genericscripted",
"X-KDE-Ordering": "60", "X-KDE-Ordering": "60",
"X-KDE-PluginKeyword": "%DIR_NAME%", "X-KDE-PluginKeyword": "%DIR_NAME%",
"X-KWin-Config-TranslationDomain": "burn-my-windows", "X-KWin-Config-TranslationDomain": "burn-my-windows",
+4 -8
View File
@@ -10,14 +10,10 @@
"gettext-domain": "burn-my-windows", "gettext-domain": "burn-my-windows",
"settings-schema": "org.gnome.shell.extensions.burn-my-windows", "settings-schema": "org.gnome.shell.extensions.burn-my-windows",
"shell-version": [ "shell-version": [
"3.36", "45",
"3.38", "46",
"40", "47"
"41",
"42",
"43",
"44"
], ],
"url": "https://github.com/Schneegans/Burn-My-Windows", "url": "https://github.com/Schneegans/Burn-My-Windows",
"version": 38 "version": 43
} }
+86 -83
View File
@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: Burn-My-Windows\n" "Project-Id-Version: Burn-My-Windows\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-31 07:30+0200\n" "POT-Creation-Date: 2023-08-31 07:30+0200\n"
"PO-Revision-Date: 2022-09-11 10:17+0000\n" "PO-Revision-Date: 2024-02-24 15:02+0000\n"
"Last-Translator: Юрій Дмитренко <yuridm@gmail.com>\n" "Last-Translator: Miraficus <6325410@seznam.cz>\n"
"Language-Team: Czech <https://hosted.weblate.org/projects/burn-my-windows/" "Language-Team: Czech <https://hosted.weblate.org/projects/burn-my-windows/"
"core/cs/>\n" "core/cs/>\n"
"Language: cs\n" "Language: cs\n"
@@ -17,85 +17,85 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
"X-Generator: Weblate 4.14.1-dev\n" "X-Generator: Weblate 5.5-dev\n"
#: src/ProfileManager.js:175 resources/ui/gtk4/prefs.ui:256 #: src/ProfileManager.js:175 resources/ui/gtk4/prefs.ui:256
#: resources/ui/gtk3/prefs.ui:301 resources/ui/adw/prefs.ui:103 #: resources/ui/gtk3/prefs.ui:301 resources/ui/adw/prefs.ui:103
msgid "Opening Windows" msgid "Opening Windows"
msgstr "" msgstr "Otevírání oken"
#: src/ProfileManager.js:176 resources/ui/gtk4/prefs.ui:257 #: src/ProfileManager.js:176 resources/ui/gtk4/prefs.ui:257
#: resources/ui/gtk3/prefs.ui:302 resources/ui/adw/prefs.ui:104 #: resources/ui/gtk3/prefs.ui:302 resources/ui/adw/prefs.ui:104
msgid "Closing Windows" msgid "Closing Windows"
msgstr "" msgstr "Zavírání oken"
#: src/ProfileManager.js:177 resources/ui/gtk4/prefs.ui:285 #: src/ProfileManager.js:177 resources/ui/gtk4/prefs.ui:285
#: resources/ui/gtk3/prefs.ui:330 resources/ui/adw/prefs.ui:118 #: resources/ui/gtk3/prefs.ui:330 resources/ui/adw/prefs.ui:118
msgid "Normal Windows" msgid "Normal Windows"
msgstr "" msgstr "Normálni okna"
#: src/ProfileManager.js:178 resources/ui/gtk4/prefs.ui:286 #: src/ProfileManager.js:178 resources/ui/gtk4/prefs.ui:286
#: resources/ui/gtk3/prefs.ui:331 resources/ui/adw/prefs.ui:119 #: resources/ui/gtk3/prefs.ui:331 resources/ui/adw/prefs.ui:119
msgid "Dialog Windows" msgid "Dialog Windows"
msgstr "" msgstr "Dialogová okna"
#: src/ProfileManager.js:179 resources/ui/gtk4/prefs.ui:314 #: src/ProfileManager.js:179 resources/ui/gtk4/prefs.ui:314
#: resources/ui/gtk3/prefs.ui:359 resources/ui/adw/prefs.ui:133 #: resources/ui/gtk3/prefs.ui:359 resources/ui/adw/prefs.ui:133
msgid "Default Color Scheme" msgid "Default Color Scheme"
msgstr "" msgstr "Výchozí barevný motiv"
#: src/ProfileManager.js:180 resources/ui/gtk4/prefs.ui:315 #: src/ProfileManager.js:180 resources/ui/gtk4/prefs.ui:315
#: resources/ui/gtk3/prefs.ui:360 resources/ui/adw/prefs.ui:134 #: resources/ui/gtk3/prefs.ui:360 resources/ui/adw/prefs.ui:134
msgid "Dark Color Scheme" msgid "Dark Color Scheme"
msgstr "" msgstr "Tmavý motiv"
#: src/ProfileManager.js:181 resources/ui/gtk4/prefs.ui:343 #: src/ProfileManager.js:181 resources/ui/gtk4/prefs.ui:343
#: resources/ui/gtk3/prefs.ui:388 resources/ui/adw/prefs.ui:148 #: resources/ui/gtk3/prefs.ui:388 resources/ui/adw/prefs.ui:148
msgid "On Battery" msgid "On Battery"
msgstr "" msgstr "Napájeno z baterie"
#: src/ProfileManager.js:182 resources/ui/gtk4/prefs.ui:344 #: src/ProfileManager.js:182 resources/ui/gtk4/prefs.ui:344
#: resources/ui/gtk3/prefs.ui:389 resources/ui/adw/prefs.ui:149 #: resources/ui/gtk3/prefs.ui:389 resources/ui/adw/prefs.ui:149
msgid "Plugged In" msgid "Plugged In"
msgstr "" msgstr "Připojeno k nabíječce"
#: src/ProfileManager.js:183 resources/ui/gtk4/prefs.ui:372 #: src/ProfileManager.js:183 resources/ui/gtk4/prefs.ui:372
#: resources/ui/gtk3/prefs.ui:417 resources/ui/adw/prefs.ui:163 #: resources/ui/gtk3/prefs.ui:417 resources/ui/adw/prefs.ui:163
msgid "Power-Saver Mode" msgid "Power-Saver Mode"
msgstr "" msgstr "Úsporný režim"
#: src/ProfileManager.js:184 resources/ui/gtk4/prefs.ui:373 #: src/ProfileManager.js:184 resources/ui/gtk4/prefs.ui:373
#: resources/ui/gtk3/prefs.ui:418 resources/ui/adw/prefs.ui:164 #: resources/ui/gtk3/prefs.ui:418 resources/ui/adw/prefs.ui:164
msgid "Balanced Mode" msgid "Balanced Mode"
msgstr "" msgstr "Vyvážený režim"
#: src/ProfileManager.js:185 resources/ui/gtk4/prefs.ui:374 #: src/ProfileManager.js:185 resources/ui/gtk4/prefs.ui:374
#: resources/ui/gtk3/prefs.ui:419 resources/ui/adw/prefs.ui:165 #: resources/ui/gtk3/prefs.ui:419 resources/ui/adw/prefs.ui:165
msgid "Performance Mode" msgid "Performance Mode"
msgstr "" msgstr "Vysoký výkon"
#: src/ProfileManager.js:186 resources/ui/gtk4/prefs.ui:375 #: src/ProfileManager.js:186 resources/ui/gtk4/prefs.ui:375
#: resources/ui/gtk3/prefs.ui:420 resources/ui/adw/prefs.ui:166 #: resources/ui/gtk3/prefs.ui:420 resources/ui/adw/prefs.ui:166
msgid "Power Saver or Balanced" msgid "Power Saver or Balanced"
msgstr "" msgstr "Úsporný režim nebo vyvážený"
#: src/ProfileManager.js:187 resources/ui/gtk4/prefs.ui:376 #: src/ProfileManager.js:187 resources/ui/gtk4/prefs.ui:376
#: resources/ui/gtk3/prefs.ui:421 resources/ui/adw/prefs.ui:167 #: resources/ui/gtk3/prefs.ui:421 resources/ui/adw/prefs.ui:167
msgid "Balanced or Performance" msgid "Balanced or Performance"
msgstr "" msgstr "Vyvážený nebo vysoký výkon"
#: src/ProfileManager.js:192 resources/ui/gtk4/prefs.ui:423 #: src/ProfileManager.js:192 resources/ui/gtk4/prefs.ui:423
#: resources/ui/gtk3/prefs.ui:468 resources/ui/adw/prefs.ui:183 #: resources/ui/gtk3/prefs.ui:468 resources/ui/adw/prefs.ui:183
msgid "High Priority" msgid "High Priority"
msgstr "" msgstr "Vysoká priorita"
#: src/ProfileManager.js:198 #: src/ProfileManager.js:198
msgid "Standard Profile" msgid "Standard Profile"
msgstr "" msgstr "Standartní profil"
#: src/effects/Apparition.js:78 #: src/effects/Apparition.js:78
msgid "Apparition" msgid "Apparition"
msgstr "" msgstr "Zjevení"
#: src/effects/BrokenGlass.js:137 #: src/effects/BrokenGlass.js:137
msgid "Broken Glass" msgid "Broken Glass"
@@ -103,7 +103,7 @@ msgstr "Střepy"
#: src/effects/Doom.js:88 #: src/effects/Doom.js:88
msgid "Doom" msgid "Doom"
msgstr "" msgstr "Doom"
#: src/effects/EnergizeA.js:80 #: src/effects/EnergizeA.js:80
msgid "Energize A" msgid "Energize A"
@@ -139,19 +139,19 @@ msgstr "Santa přichází"
#: src/effects/Glide.js:78 #: src/effects/Glide.js:78
msgid "Glide" msgid "Glide"
msgstr "" msgstr "Klouzání"
#: src/effects/Glitch.js:86 #: src/effects/Glitch.js:86
msgid "Glitch" msgid "Glitch"
msgstr "" msgstr "Závada"
#: src/effects/Hexagon.js:94 #: src/effects/Hexagon.js:94
msgid "Hexagon" msgid "Hexagon"
msgstr "" msgstr "Šestiúhelník"
#: src/effects/Incinerate.js:131 #: src/effects/Incinerate.js:131
msgid "Incinerate" msgid "Incinerate"
msgstr "" msgstr "Spálení"
#: src/effects/Matrix.js:114 #: src/effects/Matrix.js:114
msgid "Matrix" msgid "Matrix"
@@ -159,27 +159,27 @@ msgstr "Matrix"
#: src/effects/PaintBrush.js:102 #: src/effects/PaintBrush.js:102
msgid "Paint Brush" msgid "Paint Brush"
msgstr "" msgstr "Štětec"
#: src/effects/Pixelate.js:74 #: src/effects/Pixelate.js:74
msgid "Pixelate" msgid "Pixelate"
msgstr "" msgstr "Pixelovat"
#: src/effects/PixelWheel.js:74 #: src/effects/PixelWheel.js:74
msgid "Pixel Wheel" msgid "Pixel Wheel"
msgstr "" msgstr "Pixelové kolo"
#: src/effects/PixelWipe.js:101 #: src/effects/PixelWipe.js:101
msgid "Pixel Wipe" msgid "Pixel Wipe"
msgstr "" msgstr "Setření pixelů"
#: src/effects/Portal.js:88 #: src/effects/Portal.js:88
msgid "Portal" msgid "Portal"
msgstr "" msgstr "Portál"
#: src/effects/SnapOfDisintegration.js:114 #: src/effects/SnapOfDisintegration.js:114
msgid "Snap of Disintegration" msgid "Snap of Disintegration"
msgstr "" msgstr "Bleskový rozpad"
#: src/effects/TRexAttack.js:112 #: src/effects/TRexAttack.js:112
msgid "T-Rex Attack" msgid "T-Rex Attack"
@@ -191,7 +191,7 @@ msgstr "Televize"
#: src/effects/TVGlitch.js:87 #: src/effects/TVGlitch.js:87
msgid "TV Glitch" msgid "TV Glitch"
msgstr "" msgstr "Závada televizoru"
#: src/effects/Wisps.js:89 #: src/effects/Wisps.js:89
msgid "Wisps" msgid "Wisps"
@@ -199,11 +199,11 @@ msgstr "Obláčky"
#: prefs.js:269 #: prefs.js:269
msgid "Preview this effect" msgid "Preview this effect"
msgstr "" msgstr "Vyzkoušejte tento efekt"
#: prefs.js:388 resources/ui/gtk4/prefs.ui:50 resources/ui/gtk3/prefs.ui:86 #: prefs.js:388 resources/ui/gtk4/prefs.ui:50 resources/ui/gtk3/prefs.ui:86
msgid "Burn-My-Windows has been updated!" msgid "Burn-My-Windows has been updated!"
msgstr "" msgstr "Burn-My-Windows byl aktualizován!"
#: prefs.js:389 resources/ui/common/menus.ui:17 resources/ui/gtk4/prefs.ui:56 #: prefs.js:389 resources/ui/common/menus.ui:17 resources/ui/gtk4/prefs.ui:56
#: resources/ui/gtk3/prefs.ui:96 #: resources/ui/gtk3/prefs.ui:96
@@ -212,37 +212,39 @@ msgstr "Zobrazit historii změn"
#: prefs.js:571 prefs.js:603 #: prefs.js:571 prefs.js:603
msgid "Gold Sponsors" msgid "Gold Sponsors"
msgstr "" msgstr "Zlatí sponzoři"
#: prefs.js:575 prefs.js:607 #: prefs.js:575 prefs.js:607
msgid "Silver Sponsors" msgid "Silver Sponsors"
msgstr "" msgstr "Stříbrní sponzoři"
#: prefs.js:579 prefs.js:611 #: prefs.js:579 prefs.js:611
msgid "Bronze Sponsors" msgid "Bronze Sponsors"
msgstr "" msgstr "Bronzoví sponzoři"
#: prefs.js:583 prefs.js:615 #: prefs.js:583 prefs.js:615
msgid "Past Sponsors" msgid "Past Sponsors"
msgstr "" msgstr "Bývalí sponzoři"
#: prefs.js:660 #: prefs.js:660
msgid "Delete this Profile?" msgid "Delete this Profile?"
msgstr "" msgstr "Odstranit tento profil?"
#: prefs.js:661 #: prefs.js:661
msgid "" msgid ""
"The current effect profile with all its effect settings will be permanently " "The current effect profile with all its effect settings will be permanently "
"lost." "lost."
msgstr "" msgstr ""
"Aktuální profil efektu spolu s veškerým nastavením efektů bude trvale "
"odstraněn."
#: prefs.js:664 #: prefs.js:664
msgid "Cancel" msgid "Cancel"
msgstr "" msgstr "Zrušit"
#: prefs.js:669 #: prefs.js:669
msgid "Delete" msgid "Delete"
msgstr "" msgstr "Smazat"
#. Translators: %s will be replaced by the effect's name. #. Translators: %s will be replaced by the effect's name.
#: prefs.js:980 #: prefs.js:980
@@ -260,7 +262,7 @@ msgstr "Navštívit web"
#: resources/ui/common/menus.ui:21 #: resources/ui/common/menus.ui:21
msgid "View Matching Wallpapers" msgid "View Matching Wallpapers"
msgstr "" msgstr "Zobrazit odpovídajíci tapety"
#: resources/ui/common/menus.ui:27 #: resources/ui/common/menus.ui:27
msgid "Report a Bug" msgid "Report a Bug"
@@ -280,15 +282,15 @@ msgstr "Přispět"
#: resources/ui/common/menus.ui:56 #: resources/ui/common/menus.ui:56
msgid "Open Effect-Profile Directory" msgid "Open Effect-Profile Directory"
msgstr "" msgstr "Otevřít Effect-Profile adresář"
#: resources/ui/common/menus.ui:62 #: resources/ui/common/menus.ui:62
msgid "About Burn-My-Windows" msgid "About Burn-My-Windows"
msgstr "" msgstr "O Burn-My-Windows"
#: resources/ui/common/menus.ui:73 #: resources/ui/common/menus.ui:73
msgid "Add New Profile..." msgid "Add New Profile..."
msgstr "" msgstr "Pridat nový profil…"
#: resources/ui/gtk4/broken-glass.ui:22 resources/ui/gtk4/tv-glitch.ui:23 #: resources/ui/gtk4/broken-glass.ui:22 resources/ui/gtk4/tv-glitch.ui:23
#: resources/ui/gtk4/glitch.ui:23 resources/ui/gtk4/matrix.ui:23 #: resources/ui/gtk4/glitch.ui:23 resources/ui/gtk4/matrix.ui:23
@@ -484,7 +486,7 @@ msgstr "Střepy odletí z místa, kde byl ukazatel myši při zavírání okna."
#: resources/ui/gtk3/tv-glitch.ui:142 resources/ui/gtk3/glitch.ui:142 #: resources/ui/gtk3/tv-glitch.ui:142 resources/ui/gtk3/glitch.ui:142
#: resources/ui/adw/tv-glitch.ui:80 resources/ui/adw/glitch.ui:80 #: resources/ui/adw/tv-glitch.ui:80 resources/ui/adw/glitch.ui:80
msgid "Strength" msgid "Strength"
msgstr "" msgstr "Intenzita"
#: resources/ui/gtk4/tv-glitch.ui:161 resources/ui/gtk4/glitch.ui:161 #: resources/ui/gtk4/tv-glitch.ui:161 resources/ui/gtk4/glitch.ui:161
#: resources/ui/gtk4/fire.ui:138 resources/ui/gtk3/tv-glitch.ui:187 #: resources/ui/gtk4/fire.ui:138 resources/ui/gtk3/tv-glitch.ui:187
@@ -532,12 +534,12 @@ msgstr "Barva hrotu"
#: resources/ui/gtk4/doom.ui:68 resources/ui/gtk3/doom.ui:97 #: resources/ui/gtk4/doom.ui:68 resources/ui/gtk3/doom.ui:97
#: resources/ui/adw/doom.ui:47 #: resources/ui/adw/doom.ui:47
msgid "Horizontal Scale" msgid "Horizontal Scale"
msgstr "" msgstr "Horizontální měřítko"
#: resources/ui/gtk4/doom.ui:114 resources/ui/gtk3/doom.ui:142 #: resources/ui/gtk4/doom.ui:114 resources/ui/gtk3/doom.ui:142
#: resources/ui/adw/doom.ui:80 #: resources/ui/adw/doom.ui:80
msgid "Vertical Scale" msgid "Vertical Scale"
msgstr "" msgstr "Vertikální měřitko"
#: resources/ui/gtk4/doom.ui:160 resources/ui/gtk4/pixel-wheel.ui:115 #: resources/ui/gtk4/doom.ui:160 resources/ui/gtk4/pixel-wheel.ui:115
#: resources/ui/gtk4/pixel-wipe.ui:69 resources/ui/gtk4/pixelate.ui:115 #: resources/ui/gtk4/pixel-wipe.ui:69 resources/ui/gtk4/pixelate.ui:115
@@ -546,11 +548,11 @@ msgstr ""
#: resources/ui/adw/doom.ui:113 resources/ui/adw/pixel-wheel.ui:80 #: resources/ui/adw/doom.ui:113 resources/ui/adw/pixel-wheel.ui:80
#: resources/ui/adw/pixel-wipe.ui:47 resources/ui/adw/pixelate.ui:80 #: resources/ui/adw/pixel-wipe.ui:47 resources/ui/adw/pixelate.ui:80
msgid "Pixel Size" msgid "Pixel Size"
msgstr "" msgstr "Velikost pixelu"
#: resources/ui/gtk4/paint-brush.ui:69 resources/ui/adw/paint-brush.ui:47 #: resources/ui/gtk4/paint-brush.ui:69 resources/ui/adw/paint-brush.ui:47
msgid "Brush Size" msgid "Brush Size"
msgstr "" msgstr "Velikost štětce"
#: resources/ui/gtk4/trex.ui:69 resources/ui/adw/trex.ui:47 #: resources/ui/gtk4/trex.ui:69 resources/ui/adw/trex.ui:47
msgid "Claw Scratch Scale" msgid "Claw Scratch Scale"
@@ -571,92 +573,93 @@ msgstr "Barva blesku"
#: resources/ui/gtk4/pixel-wheel.ui:69 resources/ui/gtk3/pixel-wheel.ui:90 #: resources/ui/gtk4/pixel-wheel.ui:69 resources/ui/gtk3/pixel-wheel.ui:90
#: resources/ui/adw/pixel-wheel.ui:47 #: resources/ui/adw/pixel-wheel.ui:47
msgid "Spoke Count" msgid "Spoke Count"
msgstr "" msgstr "Počet paprsků"
#: resources/ui/gtk4/glide.ui:115 resources/ui/gtk3/glide.ui:149 #: resources/ui/gtk4/glide.ui:115 resources/ui/gtk3/glide.ui:149
#: resources/ui/adw/glide.ui:80 #: resources/ui/adw/glide.ui:80
msgid "Squish" msgid "Squish"
msgstr "" msgstr "Rozmáčknout"
#: resources/ui/gtk4/glide.ui:161 resources/ui/gtk3/glide.ui:194 #: resources/ui/gtk4/glide.ui:161 resources/ui/gtk3/glide.ui:194
#: resources/ui/adw/glide.ui:113 #: resources/ui/adw/glide.ui:113
msgid "Tilt" msgid "Tilt"
msgstr "" msgstr "Naklonění"
#: resources/ui/gtk4/glide.ui:207 resources/ui/gtk3/glide.ui:239 #: resources/ui/gtk4/glide.ui:207 resources/ui/gtk3/glide.ui:239
#: resources/ui/adw/glide.ui:146 #: resources/ui/adw/glide.ui:146
msgid "Shift" msgid "Shift"
msgstr "" msgstr "Posunutí"
#: resources/ui/gtk4/apparition.ui:114 resources/ui/gtk3/apparition.ui:149 #: resources/ui/gtk4/apparition.ui:114 resources/ui/gtk3/apparition.ui:149
#: resources/ui/adw/apparition.ui:81 #: resources/ui/adw/apparition.ui:81
msgid "Twirl Intensity" msgid "Twirl Intensity"
msgstr "" msgstr "Intenzita víru"
#: resources/ui/gtk4/apparition.ui:160 resources/ui/gtk3/apparition.ui:194 #: resources/ui/gtk4/apparition.ui:160 resources/ui/gtk3/apparition.ui:194
#: resources/ui/adw/apparition.ui:114 #: resources/ui/adw/apparition.ui:114
msgid "Shake Intensity" msgid "Shake Intensity"
msgstr "" msgstr "Intenzita otřesu"
#: resources/ui/gtk4/apparition.ui:206 resources/ui/gtk3/apparition.ui:239 #: resources/ui/gtk4/apparition.ui:206 resources/ui/gtk3/apparition.ui:239
#: resources/ui/adw/apparition.ui:147 #: resources/ui/adw/apparition.ui:147
msgid "Suction Intensity" msgid "Suction Intensity"
msgstr "" msgstr "Intenzita odsání"
#: resources/ui/gtk4/portal.ui:69 resources/ui/gtk3/portal.ui:142 #: resources/ui/gtk4/portal.ui:69 resources/ui/gtk3/portal.ui:142
#: resources/ui/adw/portal.ui:80 #: resources/ui/adw/portal.ui:80
msgid "Whirling" msgid "Whirling"
msgstr "" msgstr "Vír"
#: resources/ui/gtk4/portal.ui:115 resources/ui/gtk3/portal.ui:97 #: resources/ui/gtk4/portal.ui:115 resources/ui/gtk3/portal.ui:97
#: resources/ui/adw/portal.ui:47 #: resources/ui/adw/portal.ui:47
msgid "Rotation Speed" msgid "Rotation Speed"
msgstr "" msgstr "Rychlost otáčení"
#: resources/ui/gtk4/portal.ui:161 resources/ui/gtk3/portal.ui:187 #: resources/ui/gtk4/portal.ui:161 resources/ui/gtk3/portal.ui:187
#: resources/ui/adw/portal.ui:113 #: resources/ui/adw/portal.ui:113
msgid "Details" msgid "Details"
msgstr "" msgstr "Podrobnosti"
#: resources/ui/gtk4/incinerate.ui:115 resources/ui/gtk3/incinerate.ui:135 #: resources/ui/gtk4/incinerate.ui:115 resources/ui/gtk3/incinerate.ui:135
#: resources/ui/adw/incinerate.ui:80 #: resources/ui/adw/incinerate.ui:80
msgid "Turbulence" msgid "Turbulence"
msgstr "" msgstr "Turbulence"
#: resources/ui/gtk4/incinerate.ui:165 resources/ui/gtk3/incinerate.ui:183 #: resources/ui/gtk4/incinerate.ui:165 resources/ui/gtk3/incinerate.ui:183
#: resources/ui/adw/incinerate.ui:113 #: resources/ui/adw/incinerate.ui:113
msgid "Start at Pointer" msgid "Start at Pointer"
msgstr "" msgstr "Začít od kurzoru"
#: resources/ui/gtk4/incinerate.ui:174 resources/ui/gtk3/incinerate.ui:192 #: resources/ui/gtk4/incinerate.ui:174 resources/ui/gtk3/incinerate.ui:192
#: resources/ui/adw/incinerate.ui:114 #: resources/ui/adw/incinerate.ui:114
msgid "If disabled, a random location will be chosen." msgid "If disabled, a random location will be chosen."
msgstr "" msgstr "Pokud je v poloze vypnuto, bude použita náhodná lokace."
#: resources/ui/gtk4/hexagon.ui:115 resources/ui/gtk3/hexagon.ui:135 #: resources/ui/gtk4/hexagon.ui:115 resources/ui/gtk3/hexagon.ui:135
#: resources/ui/adw/hexagon.ui:80 #: resources/ui/adw/hexagon.ui:80
#, fuzzy
msgid "Mesh Line Width" msgid "Mesh Line Width"
msgstr "" msgstr "Šiřka čáry sítě"
#: resources/ui/gtk4/hexagon.ui:161 resources/ui/gtk3/hexagon.ui:179 #: resources/ui/gtk4/hexagon.ui:161 resources/ui/gtk3/hexagon.ui:179
#: resources/ui/adw/hexagon.ui:113 #: resources/ui/adw/hexagon.ui:113
msgid "Line Color" msgid "Line Color"
msgstr "" msgstr "Barva čáry"
#: resources/ui/gtk4/hexagon.ui:198 resources/ui/gtk3/hexagon.ui:221 #: resources/ui/gtk4/hexagon.ui:198 resources/ui/gtk3/hexagon.ui:221
#: resources/ui/adw/hexagon.ui:138 #: resources/ui/adw/hexagon.ui:138
msgid "Glow Color" msgid "Glow Color"
msgstr "" msgstr "Barva záře"
#: resources/ui/gtk4/hexagon.ui:239 resources/ui/gtk3/hexagon.ui:267 #: resources/ui/gtk4/hexagon.ui:239 resources/ui/gtk3/hexagon.ui:267
#: resources/ui/adw/hexagon.ui:163 #: resources/ui/adw/hexagon.ui:163
msgid "Additive Blending" msgid "Additive Blending"
msgstr "" msgstr "Přídavné míchání"
#: resources/ui/gtk4/hexagon.ui:248 resources/ui/gtk3/hexagon.ui:276 #: resources/ui/gtk4/hexagon.ui:248 resources/ui/gtk3/hexagon.ui:276
#: resources/ui/adw/hexagon.ui:164 #: resources/ui/adw/hexagon.ui:164
msgid "You may want to enable this for dark window themes." msgid "You may want to enable this for dark window themes."
msgstr "" msgstr "Tuto funkci můžete povolit pro tmavé motivy oken."
#: resources/ui/gtk4/fire.ui:22 resources/ui/gtk3/fire.ui:44 #: resources/ui/gtk4/fire.ui:22 resources/ui/gtk3/fire.ui:44
#: resources/ui/adw/fire.ui:14 #: resources/ui/adw/fire.ui:14
@@ -686,7 +689,7 @@ msgstr "Přechod"
#: resources/ui/gtk4/prefs.ui:91 resources/ui/gtk3/prefs.ui:133 #: resources/ui/gtk4/prefs.ui:91 resources/ui/gtk3/prefs.ui:133
#: resources/ui/adw/prefs.ui:224 #: resources/ui/adw/prefs.ui:224
msgid "Effect Selection" msgid "Effect Selection"
msgstr "" msgstr "Výběr efektů"
#: resources/ui/gtk4/prefs.ui:101 resources/ui/gtk3/prefs.ui:143 #: resources/ui/gtk4/prefs.ui:101 resources/ui/gtk3/prefs.ui:143
#: resources/ui/adw/prefs.ui:225 #: resources/ui/adw/prefs.ui:225
@@ -696,27 +699,27 @@ msgstr "Pokud vyberete více, budou se střídat náhodně."
#: resources/ui/gtk4/prefs.ui:118 resources/ui/gtk3/prefs.ui:160 #: resources/ui/gtk4/prefs.ui:118 resources/ui/gtk3/prefs.ui:160
#: resources/ui/adw/prefs.ui:236 #: resources/ui/adw/prefs.ui:236
msgid "All" msgid "All"
msgstr "" msgstr "Všechno"
#: resources/ui/gtk4/prefs.ui:124 resources/ui/gtk3/prefs.ui:166 #: resources/ui/gtk4/prefs.ui:124 resources/ui/gtk3/prefs.ui:166
#: resources/ui/adw/prefs.ui:242 #: resources/ui/adw/prefs.ui:242
msgid "None" msgid "None"
msgstr "" msgstr "Nic"
#: resources/ui/gtk4/prefs.ui:168 resources/ui/gtk3/prefs.ui:208 #: resources/ui/gtk4/prefs.ui:168 resources/ui/gtk3/prefs.ui:208
#: resources/ui/adw/prefs.ui:65 #: resources/ui/adw/prefs.ui:65
msgid "Effect Profile Constraints" msgid "Effect Profile Constraints"
msgstr "" msgstr "Omezení profilu efektu"
#: resources/ui/gtk4/prefs.ui:178 resources/ui/gtk3/prefs.ui:218 #: resources/ui/gtk4/prefs.ui:178 resources/ui/gtk3/prefs.ui:218
#: resources/ui/adw/prefs.ui:66 #: resources/ui/adw/prefs.ui:66
msgid "Define when the current effect settings should be used." msgid "Define when the current effect settings should be used."
msgstr "" msgstr "Definujte, kdy se má použít aktuální nastavení efektu."
#: resources/ui/gtk4/prefs.ui:202 resources/ui/gtk3/prefs.ui:242 #: resources/ui/gtk4/prefs.ui:202 resources/ui/gtk3/prefs.ui:242
#: resources/ui/adw/prefs.ui:70 #: resources/ui/adw/prefs.ui:70
msgid "Application" msgid "Application"
msgstr "" msgstr "Aplikace"
#: resources/ui/gtk4/prefs.ui:220 resources/ui/gtk4/prefs.ui:255 #: resources/ui/gtk4/prefs.ui:220 resources/ui/gtk4/prefs.ui:255
#: resources/ui/gtk4/prefs.ui:284 resources/ui/gtk4/prefs.ui:313 #: resources/ui/gtk4/prefs.ui:284 resources/ui/gtk4/prefs.ui:313
@@ -728,52 +731,52 @@ msgstr ""
#: resources/ui/adw/prefs.ui:117 resources/ui/adw/prefs.ui:132 #: resources/ui/adw/prefs.ui:117 resources/ui/adw/prefs.ui:132
#: resources/ui/adw/prefs.ui:147 resources/ui/adw/prefs.ui:162 #: resources/ui/adw/prefs.ui:147 resources/ui/adw/prefs.ui:162
msgid "Any" msgid "Any"
msgstr "" msgstr "Libovolné"
#: resources/ui/gtk4/prefs.ui:244 resources/ui/gtk3/prefs.ui:289 #: resources/ui/gtk4/prefs.ui:244 resources/ui/gtk3/prefs.ui:289
#: resources/ui/adw/prefs.ui:98 #: resources/ui/adw/prefs.ui:98
msgid "Animation Type" msgid "Animation Type"
msgstr "" msgstr "Typ animace"
#: resources/ui/gtk4/prefs.ui:273 resources/ui/gtk3/prefs.ui:318 #: resources/ui/gtk4/prefs.ui:273 resources/ui/gtk3/prefs.ui:318
#: resources/ui/adw/prefs.ui:113 #: resources/ui/adw/prefs.ui:113
msgid "Window Type" msgid "Window Type"
msgstr "" msgstr "Typ okna"
#: resources/ui/gtk4/prefs.ui:302 resources/ui/gtk3/prefs.ui:347 #: resources/ui/gtk4/prefs.ui:302 resources/ui/gtk3/prefs.ui:347
#: resources/ui/adw/prefs.ui:128 #: resources/ui/adw/prefs.ui:128
msgid "Color Scheme" msgid "Color Scheme"
msgstr "" msgstr "Barevný motiv"
#: resources/ui/gtk4/prefs.ui:331 resources/ui/gtk3/prefs.ui:376 #: resources/ui/gtk4/prefs.ui:331 resources/ui/gtk3/prefs.ui:376
#: resources/ui/adw/prefs.ui:143 #: resources/ui/adw/prefs.ui:143
msgid "Power Mode" msgid "Power Mode"
msgstr "" msgstr "Režim napájení"
#: resources/ui/gtk4/prefs.ui:360 resources/ui/gtk3/prefs.ui:405 #: resources/ui/gtk4/prefs.ui:360 resources/ui/gtk3/prefs.ui:405
#: resources/ui/adw/prefs.ui:158 #: resources/ui/adw/prefs.ui:158
msgid "Power Profile" msgid "Power Profile"
msgstr "" msgstr "Profil napájení"
#: resources/ui/gtk4/prefs.ui:392 resources/ui/gtk3/prefs.ui:437 #: resources/ui/gtk4/prefs.ui:392 resources/ui/gtk3/prefs.ui:437
#: resources/ui/adw/prefs.ui:179 #: resources/ui/adw/prefs.ui:179
msgid "Advanced Profile Options" msgid "Advanced Profile Options"
msgstr "" msgstr "Pokročilé volby profilu"
#: resources/ui/gtk4/prefs.ui:432 resources/ui/gtk3/prefs.ui:477 #: resources/ui/gtk4/prefs.ui:432 resources/ui/gtk3/prefs.ui:477
#: resources/ui/adw/prefs.ui:184 #: resources/ui/adw/prefs.ui:184
msgid "Use this profile even if there are better matching profiles." msgid "Use this profile even if there are better matching profiles."
msgstr "" msgstr "Použijte tento profil, i když existují lépe odpovídající profily."
#: resources/ui/gtk4/prefs.ui:464 resources/ui/gtk3/prefs.ui:509 #: resources/ui/gtk4/prefs.ui:464 resources/ui/gtk3/prefs.ui:509
#: resources/ui/adw/prefs.ui:204 #: resources/ui/adw/prefs.ui:204
msgid "Delete this Profile..." msgid "Delete this Profile..."
msgstr "" msgstr "Odstranit tento profil…"
#: resources/ui/gtk4/pixelate.ui:69 resources/ui/gtk3/pixelate.ui:90 #: resources/ui/gtk4/pixelate.ui:69 resources/ui/gtk3/pixelate.ui:90
#: resources/ui/adw/pixelate.ui:47 #: resources/ui/adw/pixelate.ui:47
msgid "Noise" msgid "Noise"
msgstr "" msgstr "Šum"
#~ msgid "General Options" #~ msgid "General Options"
#~ msgstr "Obecné možnosti" #~ msgstr "Obecné možnosti"
+777
View File
@@ -0,0 +1,777 @@
# 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: 2023-08-31 07:30+0200\n"
"PO-Revision-Date: 2024-08-09 19:09+0000\n"
"Last-Translator: symegac <97731141+symegac@users.noreply.github.com>\n"
"Language-Team: Danish <https://hosted.weblate.org/projects/burn-my-windows/"
"core/da/>\n"
"Language: da\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 5.7-dev\n"
#: src/ProfileManager.js:175 resources/ui/gtk4/prefs.ui:256
#: resources/ui/gtk3/prefs.ui:301 resources/ui/adw/prefs.ui:103
msgid "Opening Windows"
msgstr "Åbning af vinduer"
#: src/ProfileManager.js:176 resources/ui/gtk4/prefs.ui:257
#: resources/ui/gtk3/prefs.ui:302 resources/ui/adw/prefs.ui:104
msgid "Closing Windows"
msgstr "Lukning af vinduer"
#: src/ProfileManager.js:177 resources/ui/gtk4/prefs.ui:285
#: resources/ui/gtk3/prefs.ui:330 resources/ui/adw/prefs.ui:118
msgid "Normal Windows"
msgstr "Normale vinduer"
#: src/ProfileManager.js:178 resources/ui/gtk4/prefs.ui:286
#: resources/ui/gtk3/prefs.ui:331 resources/ui/adw/prefs.ui:119
msgid "Dialog Windows"
msgstr "Dialogvinduer"
#: src/ProfileManager.js:179 resources/ui/gtk4/prefs.ui:314
#: resources/ui/gtk3/prefs.ui:359 resources/ui/adw/prefs.ui:133
msgid "Default Color Scheme"
msgstr "Standardfarveskema"
#: src/ProfileManager.js:180 resources/ui/gtk4/prefs.ui:315
#: resources/ui/gtk3/prefs.ui:360 resources/ui/adw/prefs.ui:134
msgid "Dark Color Scheme"
msgstr "Mørkt farveskema"
#: src/ProfileManager.js:181 resources/ui/gtk4/prefs.ui:343
#: resources/ui/gtk3/prefs.ui:388 resources/ui/adw/prefs.ui:148
msgid "On Battery"
msgstr ""
#: src/ProfileManager.js:182 resources/ui/gtk4/prefs.ui:344
#: resources/ui/gtk3/prefs.ui:389 resources/ui/adw/prefs.ui:149
msgid "Plugged In"
msgstr ""
#: src/ProfileManager.js:183 resources/ui/gtk4/prefs.ui:372
#: resources/ui/gtk3/prefs.ui:417 resources/ui/adw/prefs.ui:163
msgid "Power-Saver Mode"
msgstr ""
#: src/ProfileManager.js:184 resources/ui/gtk4/prefs.ui:373
#: resources/ui/gtk3/prefs.ui:418 resources/ui/adw/prefs.ui:164
msgid "Balanced Mode"
msgstr ""
#: src/ProfileManager.js:185 resources/ui/gtk4/prefs.ui:374
#: resources/ui/gtk3/prefs.ui:419 resources/ui/adw/prefs.ui:165
msgid "Performance Mode"
msgstr ""
#: src/ProfileManager.js:186 resources/ui/gtk4/prefs.ui:375
#: resources/ui/gtk3/prefs.ui:420 resources/ui/adw/prefs.ui:166
msgid "Power Saver or Balanced"
msgstr ""
#: src/ProfileManager.js:187 resources/ui/gtk4/prefs.ui:376
#: resources/ui/gtk3/prefs.ui:421 resources/ui/adw/prefs.ui:167
msgid "Balanced or Performance"
msgstr ""
#: src/ProfileManager.js:192 resources/ui/gtk4/prefs.ui:423
#: resources/ui/gtk3/prefs.ui:468 resources/ui/adw/prefs.ui:183
msgid "High Priority"
msgstr "Høj prioritet"
#: src/ProfileManager.js:198
msgid "Standard Profile"
msgstr "Standardprofil"
#: src/effects/Apparition.js:78
msgid "Apparition"
msgstr ""
#: src/effects/BrokenGlass.js:137
msgid "Broken Glass"
msgstr "Knust glas"
#: src/effects/Doom.js:88
msgid "Doom"
msgstr "Doom"
#: src/effects/EnergizeA.js:80
msgid "Energize A"
msgstr "Energi A"
#: src/effects/EnergizeB.js:81
msgid "Energize B"
msgstr "Energi B"
#: src/effects/Fire.js:100
msgid "Fire"
msgstr "Ild"
#: src/effects/Fire.js:154
msgid "Default Fire"
msgstr "Standardild"
#: src/effects/Fire.js:164
msgid "Hell Fire"
msgstr "Helvedesild"
#: src/effects/Fire.js:174
msgid "Dark and Smutty"
msgstr "Mørk og smudsig"
#: src/effects/Fire.js:184
msgid "Cold Breeze"
msgstr "Kold brise"
#: src/effects/Fire.js:194
msgid "Santa is Coming"
msgstr "Julemanden kommer"
#: src/effects/Glide.js:78
msgid "Glide"
msgstr "Glid"
#: src/effects/Glitch.js:86
msgid "Glitch"
msgstr ""
#: src/effects/Hexagon.js:94
msgid "Hexagon"
msgstr "Sekskant"
#: src/effects/Incinerate.js:131
msgid "Incinerate"
msgstr "Afbrænd"
#: src/effects/Matrix.js:114
msgid "Matrix"
msgstr "Matrix"
#: src/effects/PaintBrush.js:102
msgid "Paint Brush"
msgstr "Pensel"
#: src/effects/Pixelate.js:74
msgid "Pixelate"
msgstr "Pixeler"
#: src/effects/PixelWheel.js:74
msgid "Pixel Wheel"
msgstr "Pixelhjul"
#: src/effects/PixelWipe.js:101
msgid "Pixel Wipe"
msgstr "Pixelbølge"
#: src/effects/Portal.js:88
msgid "Portal"
msgstr "Portal"
#: src/effects/SnapOfDisintegration.js:114
msgid "Snap of Disintegration"
msgstr "Opløsningsknips"
#: src/effects/TRexAttack.js:112
msgid "T-Rex Attack"
msgstr "Tyrannosaurus-angreb"
#: src/effects/TVEffect.js:78
msgid "TV Effect"
msgstr "TV-effekt"
#: src/effects/TVGlitch.js:87
msgid "TV Glitch"
msgstr ""
#: src/effects/Wisps.js:89
msgid "Wisps"
msgstr "Feer"
#: prefs.js:269
msgid "Preview this effect"
msgstr "Forhåndsvis denne effekt"
#: prefs.js:388 resources/ui/gtk4/prefs.ui:50 resources/ui/gtk3/prefs.ui:86
msgid "Burn-My-Windows has been updated!"
msgstr "Burn-My-Windows er blevet opdateret!"
#: prefs.js:389 resources/ui/common/menus.ui:17 resources/ui/gtk4/prefs.ui:56
#: resources/ui/gtk3/prefs.ui:96
msgid "View Changelog"
msgstr "Vis ændringslog"
#: prefs.js:571 prefs.js:603
msgid "Gold Sponsors"
msgstr "Guldsponsorer"
#: prefs.js:575 prefs.js:607
msgid "Silver Sponsors"
msgstr "Sølvsponsorer"
#: prefs.js:579 prefs.js:611
msgid "Bronze Sponsors"
msgstr "Bronzesponsorer"
#: prefs.js:583 prefs.js:615
msgid "Past Sponsors"
msgstr "Tidligere sponsorer"
#: prefs.js:660
msgid "Delete this Profile?"
msgstr "Slet denne profil?"
#: prefs.js:661
msgid ""
"The current effect profile with all its effect settings will be permanently "
"lost."
msgstr ""
"Den aktuelle effektprofil med alle dens effektsindstillinger vil gå "
"permanent tabt."
#: prefs.js:664
msgid "Cancel"
msgstr "Annuller"
#: prefs.js:669
msgid "Delete"
msgstr "Slet"
#. Translators: %s will be replaced by the effect's name.
#: prefs.js:980
#, javascript-format
msgid "Preview for %s"
msgstr "Forhåndsvisning af %s"
#: prefs.js:1002
msgid "Close this Window to Preview the Effect!"
msgstr "Luk dette vindue for at forhåndsvise effekten!"
#: resources/ui/common/menus.ui:13
msgid "Visit Homepage"
msgstr "Besøg hjemmesiden"
#: resources/ui/common/menus.ui:21
msgid "View Matching Wallpapers"
msgstr ""
#: resources/ui/common/menus.ui:27
msgid "Report a Bug"
msgstr "Rapportér en fejl"
#: resources/ui/common/menus.ui:31
msgid "Create an Effect"
msgstr "Opret en effekt"
#: resources/ui/common/menus.ui:35
msgid "Translate"
msgstr "Oversæt"
#: resources/ui/common/menus.ui:39
msgid "Donate"
msgstr "Doner"
#: resources/ui/common/menus.ui:56
msgid "Open Effect-Profile Directory"
msgstr ""
#: resources/ui/common/menus.ui:62
msgid "About Burn-My-Windows"
msgstr "Om Burn-My-Windows"
#: resources/ui/common/menus.ui:73
msgid "Add New Profile..."
msgstr "Tilføj ny profil..."
#: resources/ui/gtk4/broken-glass.ui:22 resources/ui/gtk4/tv-glitch.ui:23
#: resources/ui/gtk4/glitch.ui:23 resources/ui/gtk4/matrix.ui:23
#: resources/ui/gtk4/doom.ui:22 resources/ui/gtk4/paint-brush.ui:23
#: resources/ui/gtk4/trex.ui:23 resources/ui/gtk4/wisps.ui:23
#: resources/ui/gtk4/energize-b.ui:23 resources/ui/gtk4/pixel-wheel.ui:23
#: resources/ui/gtk4/glide.ui:23 resources/ui/gtk4/apparition.ui:22
#: resources/ui/gtk4/portal.ui:23 resources/ui/gtk4/incinerate.ui:23
#: resources/ui/gtk4/hexagon.ui:23 resources/ui/gtk4/fire.ui:46
#: resources/ui/gtk4/pixel-wipe.ui:23 resources/ui/gtk4/snap.ui:23
#: resources/ui/gtk4/energize-a.ui:23 resources/ui/gtk4/pixelate.ui:23
#: resources/ui/gtk4/tv.ui:23 resources/ui/gtk3/tv-glitch.ui:52
#: resources/ui/gtk3/glitch.ui:52 resources/ui/gtk3/doom.ui:52
#: resources/ui/gtk3/wisps.ui:38 resources/ui/gtk3/energize-b.ui:38
#: resources/ui/gtk3/pixel-wheel.ui:45 resources/ui/gtk3/glide.ui:59
#: resources/ui/gtk3/apparition.ui:59 resources/ui/gtk3/portal.ui:52
#: resources/ui/gtk3/incinerate.ui:45 resources/ui/gtk3/hexagon.ui:45
#: resources/ui/gtk3/fire.ui:84 resources/ui/gtk3/pixel-wipe.ui:45
#: resources/ui/gtk3/energize-a.ui:38 resources/ui/gtk3/pixelate.ui:45
#: resources/ui/gtk3/tv.ui:31 resources/ui/adw/broken-glass.ui:15
#: resources/ui/adw/tv-glitch.ui:14 resources/ui/adw/glitch.ui:14
#: resources/ui/adw/matrix.ui:14 resources/ui/adw/doom.ui:14
#: resources/ui/adw/paint-brush.ui:14 resources/ui/adw/trex.ui:14
#: resources/ui/adw/wisps.ui:14 resources/ui/adw/energize-b.ui:15
#: resources/ui/adw/pixel-wheel.ui:14 resources/ui/adw/glide.ui:14
#: resources/ui/adw/apparition.ui:15 resources/ui/adw/portal.ui:14
#: resources/ui/adw/incinerate.ui:14 resources/ui/adw/hexagon.ui:14
#: resources/ui/adw/fire.ui:30 resources/ui/adw/pixel-wipe.ui:14
#: resources/ui/adw/snap.ui:14 resources/ui/adw/energize-a.ui:14
#: resources/ui/adw/pixelate.ui:14 resources/ui/adw/tv.ui:14
msgid "Animation Time [ms]"
msgstr "Animationstid [ms]"
#: resources/ui/gtk4/broken-glass.ui:50 resources/ui/gtk4/broken-glass.ui:96
#: resources/ui/gtk4/broken-glass.ui:142 resources/ui/gtk4/broken-glass.ui:188
#: resources/ui/gtk4/broken-glass.ui:244 resources/ui/gtk4/tv-glitch.ui:51
#: resources/ui/gtk4/tv-glitch.ui:97 resources/ui/gtk4/tv-glitch.ui:143
#: resources/ui/gtk4/tv-glitch.ui:189 resources/ui/gtk4/tv-glitch.ui:226
#: resources/ui/gtk4/glitch.ui:51 resources/ui/gtk4/glitch.ui:97
#: resources/ui/gtk4/glitch.ui:143 resources/ui/gtk4/glitch.ui:189
#: resources/ui/gtk4/glitch.ui:226 resources/ui/gtk4/matrix.ui:51
#: resources/ui/gtk4/matrix.ui:97 resources/ui/gtk4/matrix.ui:143
#: resources/ui/gtk4/matrix.ui:189 resources/ui/gtk4/matrix.ui:226
#: resources/ui/gtk4/matrix.ui:263 resources/ui/gtk4/doom.ui:50
#: resources/ui/gtk4/doom.ui:96 resources/ui/gtk4/doom.ui:142
#: resources/ui/gtk4/doom.ui:188 resources/ui/gtk4/paint-brush.ui:51
#: resources/ui/gtk4/paint-brush.ui:97 resources/ui/gtk4/trex.ui:51
#: resources/ui/gtk4/trex.ui:97 resources/ui/gtk4/trex.ui:143
#: resources/ui/gtk4/trex.ui:189 resources/ui/gtk4/trex.ui:226
#: resources/ui/gtk4/wisps.ui:51 resources/ui/gtk4/wisps.ui:97
#: resources/ui/gtk4/wisps.ui:140 resources/ui/gtk4/energize-b.ui:51
#: resources/ui/gtk4/energize-b.ui:97 resources/ui/gtk4/energize-b.ui:134
#: resources/ui/gtk4/pixel-wheel.ui:51 resources/ui/gtk4/pixel-wheel.ui:97
#: resources/ui/gtk4/pixel-wheel.ui:143 resources/ui/gtk4/glide.ui:51
#: resources/ui/gtk4/glide.ui:97 resources/ui/gtk4/glide.ui:143
#: resources/ui/gtk4/glide.ui:189 resources/ui/gtk4/glide.ui:235
#: resources/ui/gtk4/apparition.ui:50 resources/ui/gtk4/apparition.ui:96
#: resources/ui/gtk4/apparition.ui:142 resources/ui/gtk4/apparition.ui:188
#: resources/ui/gtk4/apparition.ui:234 resources/ui/gtk4/portal.ui:51
#: resources/ui/gtk4/portal.ui:97 resources/ui/gtk4/portal.ui:143
#: resources/ui/gtk4/portal.ui:189 resources/ui/gtk4/portal.ui:226
#: resources/ui/gtk4/incinerate.ui:51 resources/ui/gtk4/incinerate.ui:97
#: resources/ui/gtk4/incinerate.ui:143 resources/ui/gtk4/incinerate.ui:198
#: resources/ui/gtk4/incinerate.ui:235 resources/ui/gtk4/hexagon.ui:51
#: resources/ui/gtk4/hexagon.ui:97 resources/ui/gtk4/hexagon.ui:143
#: resources/ui/gtk4/hexagon.ui:180 resources/ui/gtk4/hexagon.ui:217
#: resources/ui/gtk4/hexagon.ui:272 resources/ui/gtk4/fire.ui:74
#: resources/ui/gtk4/fire.ui:120 resources/ui/gtk4/fire.ui:166
#: resources/ui/gtk4/fire.ui:221 resources/ui/gtk4/fire.ui:280
#: resources/ui/gtk4/pixel-wipe.ui:51 resources/ui/gtk4/pixel-wipe.ui:97
#: resources/ui/gtk4/snap.ui:51 resources/ui/gtk4/snap.ui:97
#: resources/ui/gtk4/snap.ui:134 resources/ui/gtk4/energize-a.ui:51
#: resources/ui/gtk4/energize-a.ui:97 resources/ui/gtk4/energize-a.ui:134
#: resources/ui/gtk4/pixelate.ui:51 resources/ui/gtk4/pixelate.ui:97
#: resources/ui/gtk4/pixelate.ui:143 resources/ui/gtk4/tv.ui:51
#: resources/ui/gtk4/tv.ui:88 resources/ui/gtk3/tv-glitch.ui:78
#: resources/ui/gtk3/tv-glitch.ui:123 resources/ui/gtk3/tv-glitch.ui:168
#: resources/ui/gtk3/tv-glitch.ui:213 resources/ui/gtk3/tv-glitch.ui:255
#: resources/ui/gtk3/glitch.ui:78 resources/ui/gtk3/glitch.ui:123
#: resources/ui/gtk3/glitch.ui:168 resources/ui/gtk3/glitch.ui:213
#: resources/ui/gtk3/glitch.ui:255 resources/ui/gtk3/doom.ui:78
#: resources/ui/gtk3/doom.ui:123 resources/ui/gtk3/doom.ui:168
#: resources/ui/gtk3/doom.ui:213 resources/ui/gtk3/wisps.ui:64
#: resources/ui/gtk3/wisps.ui:109 resources/ui/gtk3/wisps.ui:159
#: resources/ui/gtk3/energize-b.ui:64 resources/ui/gtk3/energize-b.ui:109
#: resources/ui/gtk3/energize-b.ui:151 resources/ui/gtk3/pixel-wheel.ui:71
#: resources/ui/gtk3/pixel-wheel.ui:116 resources/ui/gtk3/pixel-wheel.ui:161
#: resources/ui/gtk3/glide.ui:85 resources/ui/gtk3/glide.ui:130
#: resources/ui/gtk3/glide.ui:175 resources/ui/gtk3/glide.ui:220
#: resources/ui/gtk3/glide.ui:265 resources/ui/gtk3/apparition.ui:85
#: resources/ui/gtk3/apparition.ui:130 resources/ui/gtk3/apparition.ui:175
#: resources/ui/gtk3/apparition.ui:220 resources/ui/gtk3/apparition.ui:265
#: resources/ui/gtk3/portal.ui:78 resources/ui/gtk3/portal.ui:123
#: resources/ui/gtk3/portal.ui:168 resources/ui/gtk3/portal.ui:213
#: resources/ui/gtk3/portal.ui:255 resources/ui/gtk3/incinerate.ui:71
#: resources/ui/gtk3/incinerate.ui:116 resources/ui/gtk3/incinerate.ui:161
#: resources/ui/gtk3/incinerate.ui:220 resources/ui/gtk3/incinerate.ui:262
#: resources/ui/gtk3/hexagon.ui:71 resources/ui/gtk3/hexagon.ui:116
#: resources/ui/gtk3/hexagon.ui:161 resources/ui/gtk3/hexagon.ui:203
#: resources/ui/gtk3/hexagon.ui:245 resources/ui/gtk3/hexagon.ui:304
#: resources/ui/gtk3/fire.ui:110 resources/ui/gtk3/fire.ui:154
#: resources/ui/gtk3/fire.ui:198 resources/ui/gtk3/fire.ui:257
#: resources/ui/gtk3/fire.ui:321 resources/ui/gtk3/pixel-wipe.ui:71
#: resources/ui/gtk3/pixel-wipe.ui:116 resources/ui/gtk3/energize-a.ui:64
#: resources/ui/gtk3/energize-a.ui:109 resources/ui/gtk3/energize-a.ui:151
#: resources/ui/gtk3/pixelate.ui:71 resources/ui/gtk3/pixelate.ui:116
#: resources/ui/gtk3/pixelate.ui:161 resources/ui/gtk3/tv.ui:57
#: resources/ui/gtk3/tv.ui:99 resources/ui/adw/broken-glass.ui:37
#: resources/ui/adw/broken-glass.ui:70 resources/ui/adw/broken-glass.ui:103
#: resources/ui/adw/broken-glass.ui:136 resources/ui/adw/broken-glass.ui:159
#: resources/ui/adw/tv-glitch.ui:36 resources/ui/adw/tv-glitch.ui:69
#: resources/ui/adw/tv-glitch.ui:102 resources/ui/adw/tv-glitch.ui:135
#: resources/ui/adw/tv-glitch.ui:160 resources/ui/adw/glitch.ui:36
#: resources/ui/adw/glitch.ui:69 resources/ui/adw/glitch.ui:102
#: resources/ui/adw/glitch.ui:135 resources/ui/adw/glitch.ui:160
#: resources/ui/adw/matrix.ui:36 resources/ui/adw/matrix.ui:69
#: resources/ui/adw/matrix.ui:102 resources/ui/adw/matrix.ui:135
#: resources/ui/adw/matrix.ui:160 resources/ui/adw/matrix.ui:185
#: resources/ui/adw/doom.ui:36 resources/ui/adw/doom.ui:69
#: resources/ui/adw/doom.ui:102 resources/ui/adw/doom.ui:135
#: resources/ui/adw/paint-brush.ui:36 resources/ui/adw/paint-brush.ui:69
#: resources/ui/adw/trex.ui:36 resources/ui/adw/trex.ui:69
#: resources/ui/adw/trex.ui:102 resources/ui/adw/trex.ui:135
#: resources/ui/adw/trex.ui:160 resources/ui/adw/wisps.ui:36
#: resources/ui/adw/wisps.ui:69 resources/ui/adw/wisps.ui:110
#: resources/ui/adw/energize-b.ui:37 resources/ui/adw/energize-b.ui:70
#: resources/ui/adw/energize-b.ui:95 resources/ui/adw/pixel-wheel.ui:36
#: resources/ui/adw/pixel-wheel.ui:69 resources/ui/adw/pixel-wheel.ui:102
#: resources/ui/adw/glide.ui:36 resources/ui/adw/glide.ui:69
#: resources/ui/adw/glide.ui:102 resources/ui/adw/glide.ui:135
#: resources/ui/adw/glide.ui:168 resources/ui/adw/apparition.ui:37
#: resources/ui/adw/apparition.ui:70 resources/ui/adw/apparition.ui:103
#: resources/ui/adw/apparition.ui:136 resources/ui/adw/apparition.ui:169
#: resources/ui/adw/portal.ui:36 resources/ui/adw/portal.ui:69
#: resources/ui/adw/portal.ui:102 resources/ui/adw/portal.ui:135
#: resources/ui/adw/portal.ui:160 resources/ui/adw/incinerate.ui:36
#: resources/ui/adw/incinerate.ui:69 resources/ui/adw/incinerate.ui:102
#: resources/ui/adw/incinerate.ui:125 resources/ui/adw/incinerate.ui:150
#: resources/ui/adw/hexagon.ui:36 resources/ui/adw/hexagon.ui:69
#: resources/ui/adw/hexagon.ui:102 resources/ui/adw/hexagon.ui:127
#: resources/ui/adw/hexagon.ui:152 resources/ui/adw/hexagon.ui:175
#: resources/ui/adw/fire.ui:52 resources/ui/adw/fire.ui:85
#: resources/ui/adw/fire.ui:118 resources/ui/adw/fire.ui:141
#: resources/ui/adw/fire.ui:199 resources/ui/adw/pixel-wipe.ui:36
#: resources/ui/adw/pixel-wipe.ui:69 resources/ui/adw/snap.ui:36
#: resources/ui/adw/snap.ui:69 resources/ui/adw/snap.ui:94
#: resources/ui/adw/energize-a.ui:36 resources/ui/adw/energize-a.ui:69
#: resources/ui/adw/energize-a.ui:94 resources/ui/adw/pixelate.ui:36
#: resources/ui/adw/pixelate.ui:69 resources/ui/adw/pixelate.ui:102
#: resources/ui/adw/tv.ui:36 resources/ui/adw/tv.ui:61
msgid "Reset to Default Value"
msgstr "Nulstil til standardværdi"
#: resources/ui/gtk4/broken-glass.ui:68 resources/ui/gtk4/tv-glitch.ui:69
#: resources/ui/gtk4/glitch.ui:69 resources/ui/gtk4/matrix.ui:69
#: resources/ui/gtk4/wisps.ui:69 resources/ui/gtk4/energize-b.ui:69
#: resources/ui/gtk4/glide.ui:69 resources/ui/gtk4/incinerate.ui:69
#: resources/ui/gtk4/hexagon.ui:69 resources/ui/gtk4/fire.ui:92
#: resources/ui/gtk4/snap.ui:69 resources/ui/gtk4/energize-a.ui:69
#: resources/ui/gtk3/tv-glitch.ui:97 resources/ui/gtk3/glitch.ui:97
#: resources/ui/gtk3/wisps.ui:83 resources/ui/gtk3/energize-b.ui:83
#: resources/ui/gtk3/glide.ui:104 resources/ui/gtk3/incinerate.ui:90
#: resources/ui/gtk3/hexagon.ui:90 resources/ui/gtk3/fire.ui:128
#: resources/ui/gtk3/energize-a.ui:83 resources/ui/adw/broken-glass.ui:48
#: resources/ui/adw/tv-glitch.ui:47 resources/ui/adw/glitch.ui:47
#: resources/ui/adw/matrix.ui:47 resources/ui/adw/wisps.ui:47
#: resources/ui/adw/energize-b.ui:48 resources/ui/adw/glide.ui:47
#: resources/ui/adw/incinerate.ui:47 resources/ui/adw/hexagon.ui:47
#: resources/ui/adw/fire.ui:63 resources/ui/adw/snap.ui:47
#: resources/ui/adw/energize-a.ui:47
msgid "Scale"
msgstr ""
#: resources/ui/gtk4/broken-glass.ui:114 resources/ui/adw/broken-glass.ui:81
msgid "Gravity"
msgstr "Tyngdekraft"
#: resources/ui/gtk4/broken-glass.ui:160 resources/ui/adw/broken-glass.ui:114
msgid "Blow Force"
msgstr "Slagkraft"
#: resources/ui/gtk4/broken-glass.ui:210 resources/ui/adw/broken-glass.ui:147
msgid "Shatter From Pointer Location"
msgstr ""
#: resources/ui/gtk4/broken-glass.ui:219 resources/ui/adw/broken-glass.ui:148
msgid ""
"The shards will fly away from where your mouse pointer was when closing the "
"window."
msgstr ""
#: resources/ui/gtk4/tv-glitch.ui:115 resources/ui/gtk4/glitch.ui:115
#: resources/ui/gtk3/tv-glitch.ui:142 resources/ui/gtk3/glitch.ui:142
#: resources/ui/adw/tv-glitch.ui:80 resources/ui/adw/glitch.ui:80
msgid "Strength"
msgstr "Styrke"
#: resources/ui/gtk4/tv-glitch.ui:161 resources/ui/gtk4/glitch.ui:161
#: resources/ui/gtk4/fire.ui:138 resources/ui/gtk3/tv-glitch.ui:187
#: resources/ui/gtk3/glitch.ui:187 resources/ui/gtk3/fire.ui:172
#: resources/ui/adw/tv-glitch.ui:113 resources/ui/adw/glitch.ui:113
#: resources/ui/adw/fire.ui:96
msgid "Speed"
msgstr "Hastighed"
#: resources/ui/gtk4/tv-glitch.ui:207 resources/ui/gtk4/glitch.ui:207
#: resources/ui/gtk4/wisps.ui:115 resources/ui/gtk4/energize-b.ui:115
#: resources/ui/gtk4/portal.ui:207 resources/ui/gtk4/incinerate.ui:216
#: resources/ui/gtk4/snap.ui:115 resources/ui/gtk4/energize-a.ui:115
#: resources/ui/gtk4/tv.ui:69 resources/ui/gtk3/tv-glitch.ui:231
#: resources/ui/gtk3/glitch.ui:231 resources/ui/gtk3/wisps.ui:129
#: resources/ui/gtk3/energize-b.ui:127 resources/ui/gtk3/portal.ui:231
#: resources/ui/gtk3/incinerate.ui:238 resources/ui/gtk3/energize-a.ui:127
#: resources/ui/gtk3/tv.ui:75 resources/ui/adw/tv-glitch.ui:146
#: resources/ui/adw/glitch.ui:146 resources/ui/adw/wisps.ui:80
#: resources/ui/adw/energize-b.ui:81 resources/ui/adw/portal.ui:146
#: resources/ui/adw/incinerate.ui:136 resources/ui/adw/snap.ui:80
#: resources/ui/adw/energize-a.ui:80 resources/ui/adw/tv.ui:47
msgid "Color"
msgstr "Farve"
#: resources/ui/gtk4/matrix.ui:115 resources/ui/gtk4/apparition.ui:68
#: resources/ui/gtk3/apparition.ui:104 resources/ui/adw/matrix.ui:80
#: resources/ui/adw/apparition.ui:48
msgid "Randomness"
msgstr "Tilfældighed"
#: resources/ui/gtk4/matrix.ui:161 resources/ui/adw/matrix.ui:113
msgid "Vertical Overshooting"
msgstr ""
#: resources/ui/gtk4/matrix.ui:207 resources/ui/adw/matrix.ui:146
msgid "Trail Color"
msgstr "Sporets farve"
#: resources/ui/gtk4/matrix.ui:244 resources/ui/adw/matrix.ui:171
msgid "Tip Color"
msgstr "Spidsens farve"
#: resources/ui/gtk4/doom.ui:68 resources/ui/gtk3/doom.ui:97
#: resources/ui/adw/doom.ui:47
msgid "Horizontal Scale"
msgstr ""
#: resources/ui/gtk4/doom.ui:114 resources/ui/gtk3/doom.ui:142
#: resources/ui/adw/doom.ui:80
msgid "Vertical Scale"
msgstr ""
#: resources/ui/gtk4/doom.ui:160 resources/ui/gtk4/pixel-wheel.ui:115
#: resources/ui/gtk4/pixel-wipe.ui:69 resources/ui/gtk4/pixelate.ui:115
#: resources/ui/gtk3/doom.ui:187 resources/ui/gtk3/pixel-wheel.ui:135
#: resources/ui/gtk3/pixel-wipe.ui:90 resources/ui/gtk3/pixelate.ui:135
#: resources/ui/adw/doom.ui:113 resources/ui/adw/pixel-wheel.ui:80
#: resources/ui/adw/pixel-wipe.ui:47 resources/ui/adw/pixelate.ui:80
msgid "Pixel Size"
msgstr "Pixelstørrelse"
#: resources/ui/gtk4/paint-brush.ui:69 resources/ui/adw/paint-brush.ui:47
msgid "Brush Size"
msgstr "Penselstørrelse"
#: resources/ui/gtk4/trex.ui:69 resources/ui/adw/trex.ui:47
msgid "Claw Scratch Scale"
msgstr ""
#: resources/ui/gtk4/trex.ui:115 resources/ui/adw/trex.ui:80
msgid "Claw Scratch Count"
msgstr ""
#: resources/ui/gtk4/trex.ui:161 resources/ui/adw/trex.ui:113
msgid "Warp Effect"
msgstr ""
#: resources/ui/gtk4/trex.ui:207 resources/ui/adw/trex.ui:146
msgid "Flash Color"
msgstr ""
#: resources/ui/gtk4/pixel-wheel.ui:69 resources/ui/gtk3/pixel-wheel.ui:90
#: resources/ui/adw/pixel-wheel.ui:47
msgid "Spoke Count"
msgstr "Antal eger"
#: resources/ui/gtk4/glide.ui:115 resources/ui/gtk3/glide.ui:149
#: resources/ui/adw/glide.ui:80
msgid "Squish"
msgstr ""
#: resources/ui/gtk4/glide.ui:161 resources/ui/gtk3/glide.ui:194
#: resources/ui/adw/glide.ui:113
msgid "Tilt"
msgstr ""
#: resources/ui/gtk4/glide.ui:207 resources/ui/gtk3/glide.ui:239
#: resources/ui/adw/glide.ui:146
msgid "Shift"
msgstr ""
#: resources/ui/gtk4/apparition.ui:114 resources/ui/gtk3/apparition.ui:149
#: resources/ui/adw/apparition.ui:81
msgid "Twirl Intensity"
msgstr ""
#: resources/ui/gtk4/apparition.ui:160 resources/ui/gtk3/apparition.ui:194
#: resources/ui/adw/apparition.ui:114
msgid "Shake Intensity"
msgstr ""
#: resources/ui/gtk4/apparition.ui:206 resources/ui/gtk3/apparition.ui:239
#: resources/ui/adw/apparition.ui:147
msgid "Suction Intensity"
msgstr ""
#: resources/ui/gtk4/portal.ui:69 resources/ui/gtk3/portal.ui:142
#: resources/ui/adw/portal.ui:80
msgid "Whirling"
msgstr ""
#: resources/ui/gtk4/portal.ui:115 resources/ui/gtk3/portal.ui:97
#: resources/ui/adw/portal.ui:47
msgid "Rotation Speed"
msgstr "Rotationshastighed"
#: resources/ui/gtk4/portal.ui:161 resources/ui/gtk3/portal.ui:187
#: resources/ui/adw/portal.ui:113
msgid "Details"
msgstr "Detaljer"
#: resources/ui/gtk4/incinerate.ui:115 resources/ui/gtk3/incinerate.ui:135
#: resources/ui/adw/incinerate.ui:80
msgid "Turbulence"
msgstr "Turbulens"
#: resources/ui/gtk4/incinerate.ui:165 resources/ui/gtk3/incinerate.ui:183
#: resources/ui/adw/incinerate.ui:113
msgid "Start at Pointer"
msgstr ""
#: resources/ui/gtk4/incinerate.ui:174 resources/ui/gtk3/incinerate.ui:192
#: resources/ui/adw/incinerate.ui:114
msgid "If disabled, a random location will be chosen."
msgstr ""
#: resources/ui/gtk4/hexagon.ui:115 resources/ui/gtk3/hexagon.ui:135
#: resources/ui/adw/hexagon.ui:80
msgid "Mesh Line Width"
msgstr ""
#: resources/ui/gtk4/hexagon.ui:161 resources/ui/gtk3/hexagon.ui:179
#: resources/ui/adw/hexagon.ui:113
msgid "Line Color"
msgstr "Linjefarve"
#: resources/ui/gtk4/hexagon.ui:198 resources/ui/gtk3/hexagon.ui:221
#: resources/ui/adw/hexagon.ui:138
msgid "Glow Color"
msgstr "Glødfarve"
#: resources/ui/gtk4/hexagon.ui:239 resources/ui/gtk3/hexagon.ui:267
#: resources/ui/adw/hexagon.ui:163
msgid "Additive Blending"
msgstr ""
#: resources/ui/gtk4/hexagon.ui:248 resources/ui/gtk3/hexagon.ui:276
#: resources/ui/adw/hexagon.ui:164
msgid "You may want to enable this for dark window themes."
msgstr ""
#: resources/ui/gtk4/fire.ui:22 resources/ui/gtk3/fire.ui:44
#: resources/ui/adw/fire.ui:14
msgid "Presets"
msgstr "Forhåndsindstillinger"
#: resources/ui/gtk4/fire.ui:31 resources/ui/gtk3/fire.ui:58
#: resources/ui/adw/fire.ui:19
msgid "Choose a Preset"
msgstr "Vælg en forhåndsindstilling"
#: resources/ui/gtk4/fire.ui:188 resources/ui/gtk3/fire.ui:220
#: resources/ui/adw/fire.ui:129
msgid "3D Noise"
msgstr "3D-støj"
#: resources/ui/gtk4/fire.ui:197 resources/ui/gtk3/fire.ui:229
#: resources/ui/adw/fire.ui:130
msgid "Creates a more dynamic fire but requires more GPU power."
msgstr "Skaber en mere dynamisk ild men kræver mere GPU-kraft."
#: resources/ui/gtk4/fire.ui:239 resources/ui/gtk3/fire.ui:276
#: resources/ui/adw/fire.ui:152
msgid "Gradient"
msgstr ""
#: resources/ui/gtk4/prefs.ui:91 resources/ui/gtk3/prefs.ui:133
#: resources/ui/adw/prefs.ui:224
msgid "Effect Selection"
msgstr ""
#: resources/ui/gtk4/prefs.ui:101 resources/ui/gtk3/prefs.ui:143
#: resources/ui/adw/prefs.ui:225
msgid "If multiple are selected, one is chosen randomly."
msgstr ""
#: resources/ui/gtk4/prefs.ui:118 resources/ui/gtk3/prefs.ui:160
#: resources/ui/adw/prefs.ui:236
msgid "All"
msgstr "Alle"
#: resources/ui/gtk4/prefs.ui:124 resources/ui/gtk3/prefs.ui:166
#: resources/ui/adw/prefs.ui:242
msgid "None"
msgstr "Ingen"
#: resources/ui/gtk4/prefs.ui:168 resources/ui/gtk3/prefs.ui:208
#: resources/ui/adw/prefs.ui:65
msgid "Effect Profile Constraints"
msgstr ""
#: resources/ui/gtk4/prefs.ui:178 resources/ui/gtk3/prefs.ui:218
#: resources/ui/adw/prefs.ui:66
msgid "Define when the current effect settings should be used."
msgstr ""
#: resources/ui/gtk4/prefs.ui:202 resources/ui/gtk3/prefs.ui:242
#: resources/ui/adw/prefs.ui:70
msgid "Application"
msgstr ""
#: resources/ui/gtk4/prefs.ui:220 resources/ui/gtk4/prefs.ui:255
#: resources/ui/gtk4/prefs.ui:284 resources/ui/gtk4/prefs.ui:313
#: resources/ui/gtk4/prefs.ui:342 resources/ui/gtk4/prefs.ui:371
#: resources/ui/gtk3/prefs.ui:260 resources/ui/gtk3/prefs.ui:300
#: resources/ui/gtk3/prefs.ui:329 resources/ui/gtk3/prefs.ui:358
#: resources/ui/gtk3/prefs.ui:387 resources/ui/gtk3/prefs.ui:416
#: resources/ui/adw/prefs.ui:81 resources/ui/adw/prefs.ui:102
#: resources/ui/adw/prefs.ui:117 resources/ui/adw/prefs.ui:132
#: resources/ui/adw/prefs.ui:147 resources/ui/adw/prefs.ui:162
msgid "Any"
msgstr ""
#: resources/ui/gtk4/prefs.ui:244 resources/ui/gtk3/prefs.ui:289
#: resources/ui/adw/prefs.ui:98
msgid "Animation Type"
msgstr "Animationstype"
#: resources/ui/gtk4/prefs.ui:273 resources/ui/gtk3/prefs.ui:318
#: resources/ui/adw/prefs.ui:113
msgid "Window Type"
msgstr "Vinduestype"
#: resources/ui/gtk4/prefs.ui:302 resources/ui/gtk3/prefs.ui:347
#: resources/ui/adw/prefs.ui:128
msgid "Color Scheme"
msgstr "Farveskema"
#: resources/ui/gtk4/prefs.ui:331 resources/ui/gtk3/prefs.ui:376
#: resources/ui/adw/prefs.ui:143
msgid "Power Mode"
msgstr ""
#: resources/ui/gtk4/prefs.ui:360 resources/ui/gtk3/prefs.ui:405
#: resources/ui/adw/prefs.ui:158
msgid "Power Profile"
msgstr ""
#: resources/ui/gtk4/prefs.ui:392 resources/ui/gtk3/prefs.ui:437
#: resources/ui/adw/prefs.ui:179
msgid "Advanced Profile Options"
msgstr "Avancerede profilindstillinger"
#: resources/ui/gtk4/prefs.ui:432 resources/ui/gtk3/prefs.ui:477
#: resources/ui/adw/prefs.ui:184
msgid "Use this profile even if there are better matching profiles."
msgstr ""
#: resources/ui/gtk4/prefs.ui:464 resources/ui/gtk3/prefs.ui:509
#: resources/ui/adw/prefs.ui:204
msgid "Delete this Profile..."
msgstr "Slet denne profil..."
#: resources/ui/gtk4/pixelate.ui:69 resources/ui/gtk3/pixelate.ui:90
#: resources/ui/adw/pixelate.ui:47
msgid "Noise"
msgstr "Støj"
+82 -81
View File
@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: burn-my-windows\n" "Project-Id-Version: burn-my-windows\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-31 07:30+0200\n" "POT-Creation-Date: 2023-08-31 07:30+0200\n"
"PO-Revision-Date: 2022-09-11 10:17+0000\n" "PO-Revision-Date: 2024-02-21 16:01+0000\n"
"Last-Translator: Eshagh shahidani <eshagh094@gmail.com>\n" "Last-Translator: Danial Behzadi <dani.behzi@ubuntu.com>\n"
"Language-Team: Persian <https://hosted.weblate.org/projects/burn-my-windows/" "Language-Team: Persian <https://hosted.weblate.org/projects/burn-my-windows/"
"core/fa/>\n" "core/fa/>\n"
"Language: fa\n" "Language: fa\n"
@@ -17,81 +17,81 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n" "Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 4.14.1-dev\n" "X-Generator: Weblate 5.5-dev\n"
#: src/ProfileManager.js:175 resources/ui/gtk4/prefs.ui:256 #: src/ProfileManager.js:175 resources/ui/gtk4/prefs.ui:256
#: resources/ui/gtk3/prefs.ui:301 resources/ui/adw/prefs.ui:103 #: resources/ui/gtk3/prefs.ui:301 resources/ui/adw/prefs.ui:103
msgid "Opening Windows" msgid "Opening Windows"
msgstr "" msgstr "گشودن پنجره‌ها"
#: src/ProfileManager.js:176 resources/ui/gtk4/prefs.ui:257 #: src/ProfileManager.js:176 resources/ui/gtk4/prefs.ui:257
#: resources/ui/gtk3/prefs.ui:302 resources/ui/adw/prefs.ui:104 #: resources/ui/gtk3/prefs.ui:302 resources/ui/adw/prefs.ui:104
msgid "Closing Windows" msgid "Closing Windows"
msgstr "" msgstr "بستن پنجره‌ها"
#: src/ProfileManager.js:177 resources/ui/gtk4/prefs.ui:285 #: src/ProfileManager.js:177 resources/ui/gtk4/prefs.ui:285
#: resources/ui/gtk3/prefs.ui:330 resources/ui/adw/prefs.ui:118 #: resources/ui/gtk3/prefs.ui:330 resources/ui/adw/prefs.ui:118
msgid "Normal Windows" msgid "Normal Windows"
msgstr "" msgstr "پنجره‌های عادی"
#: src/ProfileManager.js:178 resources/ui/gtk4/prefs.ui:286 #: src/ProfileManager.js:178 resources/ui/gtk4/prefs.ui:286
#: resources/ui/gtk3/prefs.ui:331 resources/ui/adw/prefs.ui:119 #: resources/ui/gtk3/prefs.ui:331 resources/ui/adw/prefs.ui:119
msgid "Dialog Windows" msgid "Dialog Windows"
msgstr "" msgstr "پنجره‌های گفت‌وگو"
#: src/ProfileManager.js:179 resources/ui/gtk4/prefs.ui:314 #: src/ProfileManager.js:179 resources/ui/gtk4/prefs.ui:314
#: resources/ui/gtk3/prefs.ui:359 resources/ui/adw/prefs.ui:133 #: resources/ui/gtk3/prefs.ui:359 resources/ui/adw/prefs.ui:133
msgid "Default Color Scheme" msgid "Default Color Scheme"
msgstr "" msgstr "طرحوارهٔ رنگی پیش‌گزیده"
#: src/ProfileManager.js:180 resources/ui/gtk4/prefs.ui:315 #: src/ProfileManager.js:180 resources/ui/gtk4/prefs.ui:315
#: resources/ui/gtk3/prefs.ui:360 resources/ui/adw/prefs.ui:134 #: resources/ui/gtk3/prefs.ui:360 resources/ui/adw/prefs.ui:134
msgid "Dark Color Scheme" msgid "Dark Color Scheme"
msgstr "" msgstr "طرحوارهٔ رنگی تیره"
#: src/ProfileManager.js:181 resources/ui/gtk4/prefs.ui:343 #: src/ProfileManager.js:181 resources/ui/gtk4/prefs.ui:343
#: resources/ui/gtk3/prefs.ui:388 resources/ui/adw/prefs.ui:148 #: resources/ui/gtk3/prefs.ui:388 resources/ui/adw/prefs.ui:148
msgid "On Battery" msgid "On Battery"
msgstr "" msgstr "روی باتری"
#: src/ProfileManager.js:182 resources/ui/gtk4/prefs.ui:344 #: src/ProfileManager.js:182 resources/ui/gtk4/prefs.ui:344
#: resources/ui/gtk3/prefs.ui:389 resources/ui/adw/prefs.ui:149 #: resources/ui/gtk3/prefs.ui:389 resources/ui/adw/prefs.ui:149
msgid "Plugged In" msgid "Plugged In"
msgstr "" msgstr "به برق"
#: src/ProfileManager.js:183 resources/ui/gtk4/prefs.ui:372 #: src/ProfileManager.js:183 resources/ui/gtk4/prefs.ui:372
#: resources/ui/gtk3/prefs.ui:417 resources/ui/adw/prefs.ui:163 #: resources/ui/gtk3/prefs.ui:417 resources/ui/adw/prefs.ui:163
msgid "Power-Saver Mode" msgid "Power-Saver Mode"
msgstr "" msgstr "حالت ذخیرهٔ انرژی"
#: src/ProfileManager.js:184 resources/ui/gtk4/prefs.ui:373 #: src/ProfileManager.js:184 resources/ui/gtk4/prefs.ui:373
#: resources/ui/gtk3/prefs.ui:418 resources/ui/adw/prefs.ui:164 #: resources/ui/gtk3/prefs.ui:418 resources/ui/adw/prefs.ui:164
msgid "Balanced Mode" msgid "Balanced Mode"
msgstr "" msgstr "حالت تعادل"
#: src/ProfileManager.js:185 resources/ui/gtk4/prefs.ui:374 #: src/ProfileManager.js:185 resources/ui/gtk4/prefs.ui:374
#: resources/ui/gtk3/prefs.ui:419 resources/ui/adw/prefs.ui:165 #: resources/ui/gtk3/prefs.ui:419 resources/ui/adw/prefs.ui:165
msgid "Performance Mode" msgid "Performance Mode"
msgstr "" msgstr "حالت کارایی"
#: src/ProfileManager.js:186 resources/ui/gtk4/prefs.ui:375 #: src/ProfileManager.js:186 resources/ui/gtk4/prefs.ui:375
#: resources/ui/gtk3/prefs.ui:420 resources/ui/adw/prefs.ui:166 #: resources/ui/gtk3/prefs.ui:420 resources/ui/adw/prefs.ui:166
msgid "Power Saver or Balanced" msgid "Power Saver or Balanced"
msgstr "" msgstr "ذخیرهٔ انرژی یا تعادل"
#: src/ProfileManager.js:187 resources/ui/gtk4/prefs.ui:376 #: src/ProfileManager.js:187 resources/ui/gtk4/prefs.ui:376
#: resources/ui/gtk3/prefs.ui:421 resources/ui/adw/prefs.ui:167 #: resources/ui/gtk3/prefs.ui:421 resources/ui/adw/prefs.ui:167
msgid "Balanced or Performance" msgid "Balanced or Performance"
msgstr "" msgstr "تعادل یا کارایی"
#: src/ProfileManager.js:192 resources/ui/gtk4/prefs.ui:423 #: src/ProfileManager.js:192 resources/ui/gtk4/prefs.ui:423
#: resources/ui/gtk3/prefs.ui:468 resources/ui/adw/prefs.ui:183 #: resources/ui/gtk3/prefs.ui:468 resources/ui/adw/prefs.ui:183
msgid "High Priority" msgid "High Priority"
msgstr "" msgstr "اولویت بالا"
#: src/ProfileManager.js:198 #: src/ProfileManager.js:198
msgid "Standard Profile" msgid "Standard Profile"
msgstr "" msgstr "نمایهٔ استاندارد"
#: src/effects/Apparition.js:78 #: src/effects/Apparition.js:78
msgid "Apparition" msgid "Apparition"
@@ -103,15 +103,15 @@ msgstr "شیشهٔ شکسته"
#: src/effects/Doom.js:88 #: src/effects/Doom.js:88
msgid "Doom" msgid "Doom"
msgstr "" msgstr "نابودی"
#: src/effects/EnergizeA.js:80 #: src/effects/EnergizeA.js:80
msgid "Energize A" msgid "Energize A"
msgstr "انرژی آ" msgstr "انرژی ۱"
#: src/effects/EnergizeB.js:81 #: src/effects/EnergizeB.js:81
msgid "Energize B" msgid "Energize B"
msgstr "انرژی ب" msgstr "انرژی ۲"
#: src/effects/Fire.js:100 #: src/effects/Fire.js:100
msgid "Fire" msgid "Fire"
@@ -123,7 +123,7 @@ msgstr "آتش پیش‌گزیده"
#: src/effects/Fire.js:164 #: src/effects/Fire.js:164
msgid "Hell Fire" msgid "Hell Fire"
msgstr "آتش جهنمی" msgstr "آتش دوزخ"
#: src/effects/Fire.js:174 #: src/effects/Fire.js:174
msgid "Dark and Smutty" msgid "Dark and Smutty"
@@ -139,11 +139,11 @@ msgstr "بابانوئل می‌آید"
#: src/effects/Glide.js:78 #: src/effects/Glide.js:78
msgid "Glide" msgid "Glide"
msgstr "" msgstr "سر خوردن"
#: src/effects/Glitch.js:86 #: src/effects/Glitch.js:86
msgid "Glitch" msgid "Glitch"
msgstr "" msgstr "گلیچ"
#: src/effects/Hexagon.js:94 #: src/effects/Hexagon.js:94
msgid "Hexagon" msgid "Hexagon"
@@ -151,7 +151,7 @@ msgstr "شش‌ضلعی"
#: src/effects/Incinerate.js:131 #: src/effects/Incinerate.js:131
msgid "Incinerate" msgid "Incinerate"
msgstr "" msgstr "سوزاندن"
#: src/effects/Matrix.js:114 #: src/effects/Matrix.js:114
msgid "Matrix" msgid "Matrix"
@@ -159,27 +159,27 @@ msgstr "ماتریکس"
#: src/effects/PaintBrush.js:102 #: src/effects/PaintBrush.js:102
msgid "Paint Brush" msgid "Paint Brush"
msgstr "" msgstr "قلمو"
#: src/effects/Pixelate.js:74 #: src/effects/Pixelate.js:74
msgid "Pixelate" msgid "Pixelate"
msgstr "" msgstr "پیکسلی"
#: src/effects/PixelWheel.js:74 #: src/effects/PixelWheel.js:74
msgid "Pixel Wheel" msgid "Pixel Wheel"
msgstr "" msgstr "پیکسل چرخنده"
#: src/effects/PixelWipe.js:101 #: src/effects/PixelWipe.js:101
msgid "Pixel Wipe" msgid "Pixel Wipe"
msgstr "" msgstr "پیکسل پاک کننده"
#: src/effects/Portal.js:88 #: src/effects/Portal.js:88
msgid "Portal" msgid "Portal"
msgstr "" msgstr "درگاه"
#: src/effects/SnapOfDisintegration.js:114 #: src/effects/SnapOfDisintegration.js:114
msgid "Snap of Disintegration" msgid "Snap of Disintegration"
msgstr "ضربهٔ فروپاشی" msgstr "بشکن فروپاشی"
#: src/effects/TRexAttack.js:112 #: src/effects/TRexAttack.js:112
msgid "T-Rex Attack" msgid "T-Rex Attack"
@@ -191,7 +191,7 @@ msgstr "جلوهٔ تلویزیون"
#: src/effects/TVGlitch.js:87 #: src/effects/TVGlitch.js:87
msgid "TV Glitch" msgid "TV Glitch"
msgstr "" msgstr "گلیچ تلویزیون"
#: src/effects/Wisps.js:89 #: src/effects/Wisps.js:89
msgid "Wisps" msgid "Wisps"
@@ -199,16 +199,16 @@ msgstr "جرقه‌ها"
#: prefs.js:269 #: prefs.js:269
msgid "Preview this effect" msgid "Preview this effect"
msgstr "" msgstr "پیش‌نمایش این جلوه"
#: prefs.js:388 resources/ui/gtk4/prefs.ui:50 resources/ui/gtk3/prefs.ui:86 #: prefs.js:388 resources/ui/gtk4/prefs.ui:50 resources/ui/gtk3/prefs.ui:86
msgid "Burn-My-Windows has been updated!" msgid "Burn-My-Windows has been updated!"
msgstr "" msgstr "Burn-My-Windows به‌روز شد!"
#: prefs.js:389 resources/ui/common/menus.ui:17 resources/ui/gtk4/prefs.ui:56 #: prefs.js:389 resources/ui/common/menus.ui:17 resources/ui/gtk4/prefs.ui:56
#: resources/ui/gtk3/prefs.ui:96 #: resources/ui/gtk3/prefs.ui:96
msgid "View Changelog" msgid "View Changelog"
msgstr "دیدن تغییرات" msgstr "دیدن گزارش دگرگونی"
#: prefs.js:571 prefs.js:603 #: prefs.js:571 prefs.js:603
msgid "Gold Sponsors" msgid "Gold Sponsors"
@@ -224,25 +224,25 @@ msgstr "حامیان برنزی"
#: prefs.js:583 prefs.js:615 #: prefs.js:583 prefs.js:615
msgid "Past Sponsors" msgid "Past Sponsors"
msgstr "حامیان گذشته" msgstr "حامیان پیشین"
#: prefs.js:660 #: prefs.js:660
msgid "Delete this Profile?" msgid "Delete this Profile?"
msgstr "" msgstr "حذف این نمایه؟"
#: prefs.js:661 #: prefs.js:661
msgid "" msgid ""
"The current effect profile with all its effect settings will be permanently " "The current effect profile with all its effect settings will be permanently "
"lost." "lost."
msgstr "" msgstr "نمایهٔ جلوهٔ کنونی با تمام تنظیمات جلوه‌اش برای همیشه از دست خواهد رفت."
#: prefs.js:664 #: prefs.js:664
msgid "Cancel" msgid "Cancel"
msgstr "" msgstr "لغو"
#: prefs.js:669 #: prefs.js:669
msgid "Delete" msgid "Delete"
msgstr "" msgstr "حذف"
#. Translators: %s will be replaced by the effect's name. #. Translators: %s will be replaced by the effect's name.
#: prefs.js:980 #: prefs.js:980
@@ -252,19 +252,19 @@ msgstr "پیش‌نمایش برای %s"
#: prefs.js:1002 #: prefs.js:1002
msgid "Close this Window to Preview the Effect!" msgid "Close this Window to Preview the Effect!"
msgstr "برای پیش‌نمایش جلوه، پنجره را ببندید!" msgstr "بستن پنجره برای پیش‌نمایش جلوه!"
#: resources/ui/common/menus.ui:13 #: resources/ui/common/menus.ui:13
msgid "Visit Homepage" msgid "Visit Homepage"
msgstr "بازدید از صفحهٔ خانه" msgstr "دیدن صفحهٔ خانگی"
#: resources/ui/common/menus.ui:21 #: resources/ui/common/menus.ui:21
msgid "View Matching Wallpapers" msgid "View Matching Wallpapers"
msgstr "" msgstr "دیدن کاغذدیواری‌های مطابق"
#: resources/ui/common/menus.ui:27 #: resources/ui/common/menus.ui:27
msgid "Report a Bug" msgid "Report a Bug"
msgstr "گزارش یک مشکل" msgstr "گزارش اشکال"
#: resources/ui/common/menus.ui:31 #: resources/ui/common/menus.ui:31
msgid "Create an Effect" msgid "Create an Effect"
@@ -280,15 +280,15 @@ msgstr "اعانه"
#: resources/ui/common/menus.ui:56 #: resources/ui/common/menus.ui:56
msgid "Open Effect-Profile Directory" msgid "Open Effect-Profile Directory"
msgstr "" msgstr "گشودن شاخهٔ نمایهٔ جلوه"
#: resources/ui/common/menus.ui:62 #: resources/ui/common/menus.ui:62
msgid "About Burn-My-Windows" msgid "About Burn-My-Windows"
msgstr "دربارهٔ پنجره‌هایم را بسوزان" msgstr "دربارهٔ Burn-My-Windows"
#: resources/ui/common/menus.ui:73 #: resources/ui/common/menus.ui:73
msgid "Add New Profile..." msgid "Add New Profile..."
msgstr "" msgstr "افزودن نمایهٔ جدید…"
#: resources/ui/gtk4/broken-glass.ui:22 resources/ui/gtk4/tv-glitch.ui:23 #: resources/ui/gtk4/broken-glass.ui:22 resources/ui/gtk4/tv-glitch.ui:23
#: resources/ui/gtk4/glitch.ui:23 resources/ui/gtk4/matrix.ui:23 #: resources/ui/gtk4/glitch.ui:23 resources/ui/gtk4/matrix.ui:23
@@ -440,7 +440,7 @@ msgstr "زمان پویانمایی (میلی‌ثانیه)"
#: resources/ui/adw/pixelate.ui:69 resources/ui/adw/pixelate.ui:102 #: resources/ui/adw/pixelate.ui:69 resources/ui/adw/pixelate.ui:102
#: resources/ui/adw/tv.ui:36 resources/ui/adw/tv.ui:61 #: resources/ui/adw/tv.ui:36 resources/ui/adw/tv.ui:61
msgid "Reset to Default Value" msgid "Reset to Default Value"
msgstr "بازنشانی به مقدار پیش‌گزیده" msgstr "بازنشانی به مقدار پیش‌ فرض"
#: resources/ui/gtk4/broken-glass.ui:68 resources/ui/gtk4/tv-glitch.ui:69 #: resources/ui/gtk4/broken-glass.ui:68 resources/ui/gtk4/tv-glitch.ui:69
#: resources/ui/gtk4/glitch.ui:69 resources/ui/gtk4/matrix.ui:69 #: resources/ui/gtk4/glitch.ui:69 resources/ui/gtk4/matrix.ui:69
@@ -485,7 +485,7 @@ msgstr ""
#: resources/ui/gtk3/tv-glitch.ui:142 resources/ui/gtk3/glitch.ui:142 #: resources/ui/gtk3/tv-glitch.ui:142 resources/ui/gtk3/glitch.ui:142
#: resources/ui/adw/tv-glitch.ui:80 resources/ui/adw/glitch.ui:80 #: resources/ui/adw/tv-glitch.ui:80 resources/ui/adw/glitch.ui:80
msgid "Strength" msgid "Strength"
msgstr "" msgstr "قدرت"
#: resources/ui/gtk4/tv-glitch.ui:161 resources/ui/gtk4/glitch.ui:161 #: resources/ui/gtk4/tv-glitch.ui:161 resources/ui/gtk4/glitch.ui:161
#: resources/ui/gtk4/fire.ui:138 resources/ui/gtk3/tv-glitch.ui:187 #: resources/ui/gtk4/fire.ui:138 resources/ui/gtk3/tv-glitch.ui:187
@@ -532,12 +532,12 @@ msgstr "رنگ نکته"
#: resources/ui/gtk4/doom.ui:68 resources/ui/gtk3/doom.ui:97 #: resources/ui/gtk4/doom.ui:68 resources/ui/gtk3/doom.ui:97
#: resources/ui/adw/doom.ui:47 #: resources/ui/adw/doom.ui:47
msgid "Horizontal Scale" msgid "Horizontal Scale"
msgstr "" msgstr "مقیاس افقی"
#: resources/ui/gtk4/doom.ui:114 resources/ui/gtk3/doom.ui:142 #: resources/ui/gtk4/doom.ui:114 resources/ui/gtk3/doom.ui:142
#: resources/ui/adw/doom.ui:80 #: resources/ui/adw/doom.ui:80
msgid "Vertical Scale" msgid "Vertical Scale"
msgstr "" msgstr "مقیاس عمودی"
#: resources/ui/gtk4/doom.ui:160 resources/ui/gtk4/pixel-wheel.ui:115 #: resources/ui/gtk4/doom.ui:160 resources/ui/gtk4/pixel-wheel.ui:115
#: resources/ui/gtk4/pixel-wipe.ui:69 resources/ui/gtk4/pixelate.ui:115 #: resources/ui/gtk4/pixel-wipe.ui:69 resources/ui/gtk4/pixelate.ui:115
@@ -546,11 +546,11 @@ msgstr ""
#: resources/ui/adw/doom.ui:113 resources/ui/adw/pixel-wheel.ui:80 #: resources/ui/adw/doom.ui:113 resources/ui/adw/pixel-wheel.ui:80
#: resources/ui/adw/pixel-wipe.ui:47 resources/ui/adw/pixelate.ui:80 #: resources/ui/adw/pixel-wipe.ui:47 resources/ui/adw/pixelate.ui:80
msgid "Pixel Size" msgid "Pixel Size"
msgstr "" msgstr "اندازه پیکسل"
#: resources/ui/gtk4/paint-brush.ui:69 resources/ui/adw/paint-brush.ui:47 #: resources/ui/gtk4/paint-brush.ui:69 resources/ui/adw/paint-brush.ui:47
msgid "Brush Size" msgid "Brush Size"
msgstr "" msgstr "اندازه برس"
#: resources/ui/gtk4/trex.ui:69 resources/ui/adw/trex.ui:47 #: resources/ui/gtk4/trex.ui:69 resources/ui/adw/trex.ui:47
msgid "Claw Scratch Scale" msgid "Claw Scratch Scale"
@@ -566,27 +566,27 @@ msgstr "جلوهٔ انحنا"
#: resources/ui/gtk4/trex.ui:207 resources/ui/adw/trex.ui:146 #: resources/ui/gtk4/trex.ui:207 resources/ui/adw/trex.ui:146
msgid "Flash Color" msgid "Flash Color"
msgstr "رنگ گوشت" msgstr "رنگ فلش"
#: resources/ui/gtk4/pixel-wheel.ui:69 resources/ui/gtk3/pixel-wheel.ui:90 #: resources/ui/gtk4/pixel-wheel.ui:69 resources/ui/gtk3/pixel-wheel.ui:90
#: resources/ui/adw/pixel-wheel.ui:47 #: resources/ui/adw/pixel-wheel.ui:47
msgid "Spoke Count" msgid "Spoke Count"
msgstr "" msgstr "تعداد صحبت کردن"
#: resources/ui/gtk4/glide.ui:115 resources/ui/gtk3/glide.ui:149 #: resources/ui/gtk4/glide.ui:115 resources/ui/gtk3/glide.ui:149
#: resources/ui/adw/glide.ui:80 #: resources/ui/adw/glide.ui:80
msgid "Squish" msgid "Squish"
msgstr "" msgstr "له کردن"
#: resources/ui/gtk4/glide.ui:161 resources/ui/gtk3/glide.ui:194 #: resources/ui/gtk4/glide.ui:161 resources/ui/gtk3/glide.ui:194
#: resources/ui/adw/glide.ui:113 #: resources/ui/adw/glide.ui:113
msgid "Tilt" msgid "Tilt"
msgstr "" msgstr "شیب"
#: resources/ui/gtk4/glide.ui:207 resources/ui/gtk3/glide.ui:239 #: resources/ui/gtk4/glide.ui:207 resources/ui/gtk3/glide.ui:239
#: resources/ui/adw/glide.ui:146 #: resources/ui/adw/glide.ui:146
msgid "Shift" msgid "Shift"
msgstr "" msgstr "تغییر مکان"
#: resources/ui/gtk4/apparition.ui:114 resources/ui/gtk3/apparition.ui:149 #: resources/ui/gtk4/apparition.ui:114 resources/ui/gtk3/apparition.ui:149
#: resources/ui/adw/apparition.ui:81 #: resources/ui/adw/apparition.ui:81
@@ -606,37 +606,37 @@ msgstr "شدّت مکش"
#: resources/ui/gtk4/portal.ui:69 resources/ui/gtk3/portal.ui:142 #: resources/ui/gtk4/portal.ui:69 resources/ui/gtk3/portal.ui:142
#: resources/ui/adw/portal.ui:80 #: resources/ui/adw/portal.ui:80
msgid "Whirling" msgid "Whirling"
msgstr "" msgstr "چرخیدن"
#: resources/ui/gtk4/portal.ui:115 resources/ui/gtk3/portal.ui:97 #: resources/ui/gtk4/portal.ui:115 resources/ui/gtk3/portal.ui:97
#: resources/ui/adw/portal.ui:47 #: resources/ui/adw/portal.ui:47
msgid "Rotation Speed" msgid "Rotation Speed"
msgstr "" msgstr "سرعت دوران"
#: resources/ui/gtk4/portal.ui:161 resources/ui/gtk3/portal.ui:187 #: resources/ui/gtk4/portal.ui:161 resources/ui/gtk3/portal.ui:187
#: resources/ui/adw/portal.ui:113 #: resources/ui/adw/portal.ui:113
msgid "Details" msgid "Details"
msgstr "" msgstr "جزئیات"
#: resources/ui/gtk4/incinerate.ui:115 resources/ui/gtk3/incinerate.ui:135 #: resources/ui/gtk4/incinerate.ui:115 resources/ui/gtk3/incinerate.ui:135
#: resources/ui/adw/incinerate.ui:80 #: resources/ui/adw/incinerate.ui:80
msgid "Turbulence" msgid "Turbulence"
msgstr "" msgstr "آشفتگی"
#: resources/ui/gtk4/incinerate.ui:165 resources/ui/gtk3/incinerate.ui:183 #: resources/ui/gtk4/incinerate.ui:165 resources/ui/gtk3/incinerate.ui:183
#: resources/ui/adw/incinerate.ui:113 #: resources/ui/adw/incinerate.ui:113
msgid "Start at Pointer" msgid "Start at Pointer"
msgstr "" msgstr "شروع از نشانه گر"
#: resources/ui/gtk4/incinerate.ui:174 resources/ui/gtk3/incinerate.ui:192 #: resources/ui/gtk4/incinerate.ui:174 resources/ui/gtk3/incinerate.ui:192
#: resources/ui/adw/incinerate.ui:114 #: resources/ui/adw/incinerate.ui:114
msgid "If disabled, a random location will be chosen." msgid "If disabled, a random location will be chosen."
msgstr "" msgstr "اگر غیرفعال باشد، یک مکان تصادفی انتخاب می شود."
#: resources/ui/gtk4/hexagon.ui:115 resources/ui/gtk3/hexagon.ui:135 #: resources/ui/gtk4/hexagon.ui:115 resources/ui/gtk3/hexagon.ui:135
#: resources/ui/adw/hexagon.ui:80 #: resources/ui/adw/hexagon.ui:80
msgid "Mesh Line Width" msgid "Mesh Line Width"
msgstr "عرض خط شبکه" msgstr "عرض خط مش"
#: resources/ui/gtk4/hexagon.ui:161 resources/ui/gtk3/hexagon.ui:179 #: resources/ui/gtk4/hexagon.ui:161 resources/ui/gtk3/hexagon.ui:179
#: resources/ui/adw/hexagon.ui:113 #: resources/ui/adw/hexagon.ui:113
@@ -661,7 +661,7 @@ msgstr "ممکن است بخواهید این را برای زمینه‌های
#: resources/ui/gtk4/fire.ui:22 resources/ui/gtk3/fire.ui:44 #: resources/ui/gtk4/fire.ui:22 resources/ui/gtk3/fire.ui:44
#: resources/ui/adw/fire.ui:14 #: resources/ui/adw/fire.ui:14
msgid "Presets" msgid "Presets"
msgstr "از پیش تنظیم شده‌ها" msgstr "تنظیمات از پیش تعیین شده"
#: resources/ui/gtk4/fire.ui:31 resources/ui/gtk3/fire.ui:58 #: resources/ui/gtk4/fire.ui:31 resources/ui/gtk3/fire.ui:58
#: resources/ui/adw/fire.ui:19 #: resources/ui/adw/fire.ui:19
@@ -686,7 +686,7 @@ msgstr "گرادیان"
#: resources/ui/gtk4/prefs.ui:91 resources/ui/gtk3/prefs.ui:133 #: resources/ui/gtk4/prefs.ui:91 resources/ui/gtk3/prefs.ui:133
#: resources/ui/adw/prefs.ui:224 #: resources/ui/adw/prefs.ui:224
msgid "Effect Selection" msgid "Effect Selection"
msgstr "" msgstr "انتخاب اثر"
#: resources/ui/gtk4/prefs.ui:101 resources/ui/gtk3/prefs.ui:143 #: resources/ui/gtk4/prefs.ui:101 resources/ui/gtk3/prefs.ui:143
#: resources/ui/adw/prefs.ui:225 #: resources/ui/adw/prefs.ui:225
@@ -696,27 +696,27 @@ msgstr "اگر چند مورد انتخاب شود، یکی به صورت تصا
#: resources/ui/gtk4/prefs.ui:118 resources/ui/gtk3/prefs.ui:160 #: resources/ui/gtk4/prefs.ui:118 resources/ui/gtk3/prefs.ui:160
#: resources/ui/adw/prefs.ui:236 #: resources/ui/adw/prefs.ui:236
msgid "All" msgid "All"
msgstr "" msgstr "همه"
#: resources/ui/gtk4/prefs.ui:124 resources/ui/gtk3/prefs.ui:166 #: resources/ui/gtk4/prefs.ui:124 resources/ui/gtk3/prefs.ui:166
#: resources/ui/adw/prefs.ui:242 #: resources/ui/adw/prefs.ui:242
msgid "None" msgid "None"
msgstr "" msgstr "هیچ"
#: resources/ui/gtk4/prefs.ui:168 resources/ui/gtk3/prefs.ui:208 #: resources/ui/gtk4/prefs.ui:168 resources/ui/gtk3/prefs.ui:208
#: resources/ui/adw/prefs.ui:65 #: resources/ui/adw/prefs.ui:65
msgid "Effect Profile Constraints" msgid "Effect Profile Constraints"
msgstr "" msgstr "محدودیت های نمایه اثر"
#: resources/ui/gtk4/prefs.ui:178 resources/ui/gtk3/prefs.ui:218 #: resources/ui/gtk4/prefs.ui:178 resources/ui/gtk3/prefs.ui:218
#: resources/ui/adw/prefs.ui:66 #: resources/ui/adw/prefs.ui:66
msgid "Define when the current effect settings should be used." msgid "Define when the current effect settings should be used."
msgstr "" msgstr "تعیین کنید که چه زمانی باید از تنظیمات افکت فعلی استفاده شود."
#: resources/ui/gtk4/prefs.ui:202 resources/ui/gtk3/prefs.ui:242 #: resources/ui/gtk4/prefs.ui:202 resources/ui/gtk3/prefs.ui:242
#: resources/ui/adw/prefs.ui:70 #: resources/ui/adw/prefs.ui:70
msgid "Application" msgid "Application"
msgstr "" msgstr "نرم افزار ها"
#: resources/ui/gtk4/prefs.ui:220 resources/ui/gtk4/prefs.ui:255 #: resources/ui/gtk4/prefs.ui:220 resources/ui/gtk4/prefs.ui:255
#: resources/ui/gtk4/prefs.ui:284 resources/ui/gtk4/prefs.ui:313 #: resources/ui/gtk4/prefs.ui:284 resources/ui/gtk4/prefs.ui:313
@@ -728,52 +728,53 @@ msgstr ""
#: resources/ui/adw/prefs.ui:117 resources/ui/adw/prefs.ui:132 #: resources/ui/adw/prefs.ui:117 resources/ui/adw/prefs.ui:132
#: resources/ui/adw/prefs.ui:147 resources/ui/adw/prefs.ui:162 #: resources/ui/adw/prefs.ui:147 resources/ui/adw/prefs.ui:162
msgid "Any" msgid "Any"
msgstr "" msgstr "هر"
#: resources/ui/gtk4/prefs.ui:244 resources/ui/gtk3/prefs.ui:289 #: resources/ui/gtk4/prefs.ui:244 resources/ui/gtk3/prefs.ui:289
#: resources/ui/adw/prefs.ui:98 #: resources/ui/adw/prefs.ui:98
msgid "Animation Type" msgid "Animation Type"
msgstr "" msgstr "نوع انیمیشن"
#: resources/ui/gtk4/prefs.ui:273 resources/ui/gtk3/prefs.ui:318 #: resources/ui/gtk4/prefs.ui:273 resources/ui/gtk3/prefs.ui:318
#: resources/ui/adw/prefs.ui:113 #: resources/ui/adw/prefs.ui:113
msgid "Window Type" msgid "Window Type"
msgstr "" msgstr "نوع پنجره"
#: resources/ui/gtk4/prefs.ui:302 resources/ui/gtk3/prefs.ui:347 #: resources/ui/gtk4/prefs.ui:302 resources/ui/gtk3/prefs.ui:347
#: resources/ui/adw/prefs.ui:128 #: resources/ui/adw/prefs.ui:128
msgid "Color Scheme" msgid "Color Scheme"
msgstr "" msgstr "طرح رنگی"
#: resources/ui/gtk4/prefs.ui:331 resources/ui/gtk3/prefs.ui:376 #: resources/ui/gtk4/prefs.ui:331 resources/ui/gtk3/prefs.ui:376
#: resources/ui/adw/prefs.ui:143 #: resources/ui/adw/prefs.ui:143
msgid "Power Mode" msgid "Power Mode"
msgstr "" msgstr "حالت قدرت"
#: resources/ui/gtk4/prefs.ui:360 resources/ui/gtk3/prefs.ui:405 #: resources/ui/gtk4/prefs.ui:360 resources/ui/gtk3/prefs.ui:405
#: resources/ui/adw/prefs.ui:158 #: resources/ui/adw/prefs.ui:158
msgid "Power Profile" msgid "Power Profile"
msgstr "" msgstr "نمایه قدرت"
#: resources/ui/gtk4/prefs.ui:392 resources/ui/gtk3/prefs.ui:437 #: resources/ui/gtk4/prefs.ui:392 resources/ui/gtk3/prefs.ui:437
#: resources/ui/adw/prefs.ui:179 #: resources/ui/adw/prefs.ui:179
msgid "Advanced Profile Options" msgid "Advanced Profile Options"
msgstr "" msgstr "گزینه های پروفایل پیشرفته"
#: resources/ui/gtk4/prefs.ui:432 resources/ui/gtk3/prefs.ui:477 #: resources/ui/gtk4/prefs.ui:432 resources/ui/gtk3/prefs.ui:477
#: resources/ui/adw/prefs.ui:184 #: resources/ui/adw/prefs.ui:184
msgid "Use this profile even if there are better matching profiles." msgid "Use this profile even if there are better matching profiles."
msgstr "" msgstr ""
"از این نمایه استفاده کنید حتی اگر نمایه های منطبق بهتری وجود داشته باشد."
#: resources/ui/gtk4/prefs.ui:464 resources/ui/gtk3/prefs.ui:509 #: resources/ui/gtk4/prefs.ui:464 resources/ui/gtk3/prefs.ui:509
#: resources/ui/adw/prefs.ui:204 #: resources/ui/adw/prefs.ui:204
msgid "Delete this Profile..." msgid "Delete this Profile..."
msgstr "" msgstr "حذف این نمایه..."
#: resources/ui/gtk4/pixelate.ui:69 resources/ui/gtk3/pixelate.ui:90 #: resources/ui/gtk4/pixelate.ui:69 resources/ui/gtk3/pixelate.ui:90
#: resources/ui/adw/pixelate.ui:47 #: resources/ui/adw/pixelate.ui:47
msgid "Noise" msgid "Noise"
msgstr "" msgstr "نویز"
#~ msgid "General Options" #~ msgid "General Options"
#~ msgstr "انتخاب‌های عمومی" #~ msgstr "انتخاب‌های عمومی"
+6 -6
View File
@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: burn-my-windows\n" "Project-Id-Version: burn-my-windows\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-31 07:30+0200\n" "POT-Creation-Date: 2023-08-31 07:30+0200\n"
"PO-Revision-Date: 2022-04-08 07:11+0000\n" "PO-Revision-Date: 2024-07-28 19:09+0000\n"
"Last-Translator: Jiri Grönroos <jiri.gronroos@iki.fi>\n" "Last-Translator: \"Tinde (Joke)\" <jouko.tiilikainen@gmail.com>\n"
"Language-Team: Finnish <https://hosted.weblate.org/projects/burn-my-windows/" "Language-Team: Finnish <https://hosted.weblate.org/projects/burn-my-windows/"
"core/fi/>\n" "core/fi/>\n"
"Language: fi\n" "Language: fi\n"
@@ -17,22 +17,22 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n" "Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.12-dev\n" "X-Generator: Weblate 5.7-dev\n"
#: src/ProfileManager.js:175 resources/ui/gtk4/prefs.ui:256 #: src/ProfileManager.js:175 resources/ui/gtk4/prefs.ui:256
#: resources/ui/gtk3/prefs.ui:301 resources/ui/adw/prefs.ui:103 #: resources/ui/gtk3/prefs.ui:301 resources/ui/adw/prefs.ui:103
msgid "Opening Windows" msgid "Opening Windows"
msgstr "" msgstr "Avataan ikkunat"
#: src/ProfileManager.js:176 resources/ui/gtk4/prefs.ui:257 #: src/ProfileManager.js:176 resources/ui/gtk4/prefs.ui:257
#: resources/ui/gtk3/prefs.ui:302 resources/ui/adw/prefs.ui:104 #: resources/ui/gtk3/prefs.ui:302 resources/ui/adw/prefs.ui:104
msgid "Closing Windows" msgid "Closing Windows"
msgstr "" msgstr "Suljetaan ikkunat"
#: src/ProfileManager.js:177 resources/ui/gtk4/prefs.ui:285 #: src/ProfileManager.js:177 resources/ui/gtk4/prefs.ui:285
#: resources/ui/gtk3/prefs.ui:330 resources/ui/adw/prefs.ui:118 #: resources/ui/gtk3/prefs.ui:330 resources/ui/adw/prefs.ui:118
msgid "Normal Windows" msgid "Normal Windows"
msgstr "" msgstr "Normaalit ikkunat"
#: src/ProfileManager.js:178 resources/ui/gtk4/prefs.ui:286 #: src/ProfileManager.js:178 resources/ui/gtk4/prefs.ui:286
#: resources/ui/gtk3/prefs.ui:331 resources/ui/adw/prefs.ui:119 #: resources/ui/gtk3/prefs.ui:331 resources/ui/adw/prefs.ui:119
+779
View File
@@ -0,0 +1,779 @@
# 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: 2023-08-31 07:30+0200\n"
"PO-Revision-Date: 2024-05-08 03:07+0000\n"
"Last-Translator: Scrambled777 <weblate.scrambled777@simplelogin.com>\n"
"Language-Team: Hindi <https://hosted.weblate.org/projects/burn-my-windows/"
"core/hi/>\n"
"Language: hi\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 5.5.4-rc\n"
#: src/ProfileManager.js:175 resources/ui/gtk4/prefs.ui:256
#: resources/ui/gtk3/prefs.ui:301 resources/ui/adw/prefs.ui:103
msgid "Opening Windows"
msgstr "विंडो खोलते समय"
#: src/ProfileManager.js:176 resources/ui/gtk4/prefs.ui:257
#: resources/ui/gtk3/prefs.ui:302 resources/ui/adw/prefs.ui:104
msgid "Closing Windows"
msgstr "विंडो बंद करते समय"
#: src/ProfileManager.js:177 resources/ui/gtk4/prefs.ui:285
#: resources/ui/gtk3/prefs.ui:330 resources/ui/adw/prefs.ui:118
msgid "Normal Windows"
msgstr "सामान्य विंडो"
#: src/ProfileManager.js:178 resources/ui/gtk4/prefs.ui:286
#: resources/ui/gtk3/prefs.ui:331 resources/ui/adw/prefs.ui:119
msgid "Dialog Windows"
msgstr "संवाद विंडो"
#: src/ProfileManager.js:179 resources/ui/gtk4/prefs.ui:314
#: resources/ui/gtk3/prefs.ui:359 resources/ui/adw/prefs.ui:133
msgid "Default Color Scheme"
msgstr "तयशुदा रंग योजना"
#: src/ProfileManager.js:180 resources/ui/gtk4/prefs.ui:315
#: resources/ui/gtk3/prefs.ui:360 resources/ui/adw/prefs.ui:134
msgid "Dark Color Scheme"
msgstr "गहरी रंग योजना"
#: src/ProfileManager.js:181 resources/ui/gtk4/prefs.ui:343
#: resources/ui/gtk3/prefs.ui:388 resources/ui/adw/prefs.ui:148
msgid "On Battery"
msgstr "बैटरी पर"
#: src/ProfileManager.js:182 resources/ui/gtk4/prefs.ui:344
#: resources/ui/gtk3/prefs.ui:389 resources/ui/adw/prefs.ui:149
msgid "Plugged In"
msgstr "जब प्लग इन हो"
#: src/ProfileManager.js:183 resources/ui/gtk4/prefs.ui:372
#: resources/ui/gtk3/prefs.ui:417 resources/ui/adw/prefs.ui:163
msgid "Power-Saver Mode"
msgstr "पावर-सेवर मोड"
#: src/ProfileManager.js:184 resources/ui/gtk4/prefs.ui:373
#: resources/ui/gtk3/prefs.ui:418 resources/ui/adw/prefs.ui:164
msgid "Balanced Mode"
msgstr "संतुलित मोड"
#: src/ProfileManager.js:185 resources/ui/gtk4/prefs.ui:374
#: resources/ui/gtk3/prefs.ui:419 resources/ui/adw/prefs.ui:165
msgid "Performance Mode"
msgstr "प्रदर्शन मोड"
#: src/ProfileManager.js:186 resources/ui/gtk4/prefs.ui:375
#: resources/ui/gtk3/prefs.ui:420 resources/ui/adw/prefs.ui:166
msgid "Power Saver or Balanced"
msgstr "पावर सेवर या संतुलित"
#: src/ProfileManager.js:187 resources/ui/gtk4/prefs.ui:376
#: resources/ui/gtk3/prefs.ui:421 resources/ui/adw/prefs.ui:167
msgid "Balanced or Performance"
msgstr "संतुलित या प्रदर्शन"
#: src/ProfileManager.js:192 resources/ui/gtk4/prefs.ui:423
#: resources/ui/gtk3/prefs.ui:468 resources/ui/adw/prefs.ui:183
msgid "High Priority"
msgstr "उच्च प्राथमिकता"
#: src/ProfileManager.js:198
msgid "Standard Profile"
msgstr "मानक प्रोफ़ाइल"
#: src/effects/Apparition.js:78
msgid "Apparition"
msgstr "प्रेतछाया"
#: src/effects/BrokenGlass.js:137
msgid "Broken Glass"
msgstr "टूटा हुआ शीशा"
#: src/effects/Doom.js:88
msgid "Doom"
msgstr "कयामत"
#: src/effects/EnergizeA.js:80
msgid "Energize A"
msgstr "ऊर्जावान A"
#: src/effects/EnergizeB.js:81
msgid "Energize B"
msgstr "ऊर्जावान B"
#: src/effects/Fire.js:100
msgid "Fire"
msgstr "आग"
#: src/effects/Fire.js:154
msgid "Default Fire"
msgstr "तयशुदा आग"
#: src/effects/Fire.js:164
msgid "Hell Fire"
msgstr "नरक की आग"
#: src/effects/Fire.js:174
msgid "Dark and Smutty"
msgstr "अँधेरी और मैली"
#: src/effects/Fire.js:184
msgid "Cold Breeze"
msgstr "ठंडी हवा"
#: src/effects/Fire.js:194
msgid "Santa is Coming"
msgstr "सांता आ रहा है"
#: src/effects/Glide.js:78
msgid "Glide"
msgstr "फिसलन"
#: src/effects/Glitch.js:86
msgid "Glitch"
msgstr "गड़बड़ी"
#: src/effects/Hexagon.js:94
msgid "Hexagon"
msgstr "षटकोण"
#: src/effects/Incinerate.js:131
msgid "Incinerate"
msgstr "भस्म"
#: src/effects/Matrix.js:114
msgid "Matrix"
msgstr "आव्यूह"
#: src/effects/PaintBrush.js:102
msgid "Paint Brush"
msgstr "पेंट ब्रश"
#: src/effects/Pixelate.js:74
msgid "Pixelate"
msgstr "पिक्सलेट"
#: src/effects/PixelWheel.js:74
msgid "Pixel Wheel"
msgstr "पिक्सल व्हील"
#: src/effects/PixelWipe.js:101
msgid "Pixel Wipe"
msgstr "पिक्सल वाइप"
#: src/effects/Portal.js:88
msgid "Portal"
msgstr "पोर्टल"
#: src/effects/SnapOfDisintegration.js:114
msgid "Snap of Disintegration"
msgstr "विघटन की चुटकी"
#: src/effects/TRexAttack.js:112
msgid "T-Rex Attack"
msgstr "T-Rex का हमला"
#: src/effects/TVEffect.js:78
msgid "TV Effect"
msgstr "TV प्रभाव"
#: src/effects/TVGlitch.js:87
msgid "TV Glitch"
msgstr "TV की गड़बड़ी"
#: src/effects/Wisps.js:89
msgid "Wisps"
msgstr "विसप्स"
#: prefs.js:269
msgid "Preview this effect"
msgstr "इस प्रभाव का पूर्वावलोकन करें"
#: prefs.js:388 resources/ui/gtk4/prefs.ui:50 resources/ui/gtk3/prefs.ui:86
msgid "Burn-My-Windows has been updated!"
msgstr "Burn-My-Windows अपडेट कर दिया गया है!"
#: prefs.js:389 resources/ui/common/menus.ui:17 resources/ui/gtk4/prefs.ui:56
#: resources/ui/gtk3/prefs.ui:96
msgid "View Changelog"
msgstr "चेंजलॉग देखें"
#: prefs.js:571 prefs.js:603
msgid "Gold Sponsors"
msgstr "स्वर्ण प्रायोजक"
#: prefs.js:575 prefs.js:607
msgid "Silver Sponsors"
msgstr "रजत प्रायोजक"
#: prefs.js:579 prefs.js:611
msgid "Bronze Sponsors"
msgstr "कांस्य प्रायोजक"
#: prefs.js:583 prefs.js:615
msgid "Past Sponsors"
msgstr "पिछले प्रायोजक"
#: prefs.js:660
msgid "Delete this Profile?"
msgstr "यह प्रोफ़ाइल हटाएं?"
#: prefs.js:661
msgid ""
"The current effect profile with all its effect settings will be permanently "
"lost."
msgstr ""
"वर्तमान प्रभाव प्रोफ़ाइल अपनी सभी प्रभाव सेटिंग्स के साथ स्थायी रूप से खो "
"जाएगी।"
#: prefs.js:664
msgid "Cancel"
msgstr "रद्द करें"
#: prefs.js:669
msgid "Delete"
msgstr "मिटाएं"
#. Translators: %s will be replaced by the effect's name.
#: prefs.js:980
#, javascript-format
msgid "Preview for %s"
msgstr "%s का पूर्वावलोकन"
#: prefs.js:1002
msgid "Close this Window to Preview the Effect!"
msgstr "प्रभाव का पूर्वावलोकन करने के लिए इस विंडो को बंद करें!"
#: resources/ui/common/menus.ui:13
msgid "Visit Homepage"
msgstr "मुखपृष्ठ पर जाएं"
#: resources/ui/common/menus.ui:21
msgid "View Matching Wallpapers"
msgstr "मिलते-जुलते वॉलपेपर देखें"
#: resources/ui/common/menus.ui:27
msgid "Report a Bug"
msgstr "बग रिपोर्ट करें"
#: resources/ui/common/menus.ui:31
msgid "Create an Effect"
msgstr "एक प्रभाव पैदा करें"
#: resources/ui/common/menus.ui:35
msgid "Translate"
msgstr "अनुवाद"
#: resources/ui/common/menus.ui:39
msgid "Donate"
msgstr "दान करें"
#: resources/ui/common/menus.ui:56
msgid "Open Effect-Profile Directory"
msgstr "इफ़ेक्ट-प्रोफ़ाइल निर्देशिका खोलें"
#: resources/ui/common/menus.ui:62
msgid "About Burn-My-Windows"
msgstr "Burn-My-Windows के बारे में"
#: resources/ui/common/menus.ui:73
msgid "Add New Profile..."
msgstr "नई प्रोफ़ाइल जोड़ें…"
#: resources/ui/gtk4/broken-glass.ui:22 resources/ui/gtk4/tv-glitch.ui:23
#: resources/ui/gtk4/glitch.ui:23 resources/ui/gtk4/matrix.ui:23
#: resources/ui/gtk4/doom.ui:22 resources/ui/gtk4/paint-brush.ui:23
#: resources/ui/gtk4/trex.ui:23 resources/ui/gtk4/wisps.ui:23
#: resources/ui/gtk4/energize-b.ui:23 resources/ui/gtk4/pixel-wheel.ui:23
#: resources/ui/gtk4/glide.ui:23 resources/ui/gtk4/apparition.ui:22
#: resources/ui/gtk4/portal.ui:23 resources/ui/gtk4/incinerate.ui:23
#: resources/ui/gtk4/hexagon.ui:23 resources/ui/gtk4/fire.ui:46
#: resources/ui/gtk4/pixel-wipe.ui:23 resources/ui/gtk4/snap.ui:23
#: resources/ui/gtk4/energize-a.ui:23 resources/ui/gtk4/pixelate.ui:23
#: resources/ui/gtk4/tv.ui:23 resources/ui/gtk3/tv-glitch.ui:52
#: resources/ui/gtk3/glitch.ui:52 resources/ui/gtk3/doom.ui:52
#: resources/ui/gtk3/wisps.ui:38 resources/ui/gtk3/energize-b.ui:38
#: resources/ui/gtk3/pixel-wheel.ui:45 resources/ui/gtk3/glide.ui:59
#: resources/ui/gtk3/apparition.ui:59 resources/ui/gtk3/portal.ui:52
#: resources/ui/gtk3/incinerate.ui:45 resources/ui/gtk3/hexagon.ui:45
#: resources/ui/gtk3/fire.ui:84 resources/ui/gtk3/pixel-wipe.ui:45
#: resources/ui/gtk3/energize-a.ui:38 resources/ui/gtk3/pixelate.ui:45
#: resources/ui/gtk3/tv.ui:31 resources/ui/adw/broken-glass.ui:15
#: resources/ui/adw/tv-glitch.ui:14 resources/ui/adw/glitch.ui:14
#: resources/ui/adw/matrix.ui:14 resources/ui/adw/doom.ui:14
#: resources/ui/adw/paint-brush.ui:14 resources/ui/adw/trex.ui:14
#: resources/ui/adw/wisps.ui:14 resources/ui/adw/energize-b.ui:15
#: resources/ui/adw/pixel-wheel.ui:14 resources/ui/adw/glide.ui:14
#: resources/ui/adw/apparition.ui:15 resources/ui/adw/portal.ui:14
#: resources/ui/adw/incinerate.ui:14 resources/ui/adw/hexagon.ui:14
#: resources/ui/adw/fire.ui:30 resources/ui/adw/pixel-wipe.ui:14
#: resources/ui/adw/snap.ui:14 resources/ui/adw/energize-a.ui:14
#: resources/ui/adw/pixelate.ui:14 resources/ui/adw/tv.ui:14
msgid "Animation Time [ms]"
msgstr "एनीमेशन समय [ms]"
#: resources/ui/gtk4/broken-glass.ui:50 resources/ui/gtk4/broken-glass.ui:96
#: resources/ui/gtk4/broken-glass.ui:142 resources/ui/gtk4/broken-glass.ui:188
#: resources/ui/gtk4/broken-glass.ui:244 resources/ui/gtk4/tv-glitch.ui:51
#: resources/ui/gtk4/tv-glitch.ui:97 resources/ui/gtk4/tv-glitch.ui:143
#: resources/ui/gtk4/tv-glitch.ui:189 resources/ui/gtk4/tv-glitch.ui:226
#: resources/ui/gtk4/glitch.ui:51 resources/ui/gtk4/glitch.ui:97
#: resources/ui/gtk4/glitch.ui:143 resources/ui/gtk4/glitch.ui:189
#: resources/ui/gtk4/glitch.ui:226 resources/ui/gtk4/matrix.ui:51
#: resources/ui/gtk4/matrix.ui:97 resources/ui/gtk4/matrix.ui:143
#: resources/ui/gtk4/matrix.ui:189 resources/ui/gtk4/matrix.ui:226
#: resources/ui/gtk4/matrix.ui:263 resources/ui/gtk4/doom.ui:50
#: resources/ui/gtk4/doom.ui:96 resources/ui/gtk4/doom.ui:142
#: resources/ui/gtk4/doom.ui:188 resources/ui/gtk4/paint-brush.ui:51
#: resources/ui/gtk4/paint-brush.ui:97 resources/ui/gtk4/trex.ui:51
#: resources/ui/gtk4/trex.ui:97 resources/ui/gtk4/trex.ui:143
#: resources/ui/gtk4/trex.ui:189 resources/ui/gtk4/trex.ui:226
#: resources/ui/gtk4/wisps.ui:51 resources/ui/gtk4/wisps.ui:97
#: resources/ui/gtk4/wisps.ui:140 resources/ui/gtk4/energize-b.ui:51
#: resources/ui/gtk4/energize-b.ui:97 resources/ui/gtk4/energize-b.ui:134
#: resources/ui/gtk4/pixel-wheel.ui:51 resources/ui/gtk4/pixel-wheel.ui:97
#: resources/ui/gtk4/pixel-wheel.ui:143 resources/ui/gtk4/glide.ui:51
#: resources/ui/gtk4/glide.ui:97 resources/ui/gtk4/glide.ui:143
#: resources/ui/gtk4/glide.ui:189 resources/ui/gtk4/glide.ui:235
#: resources/ui/gtk4/apparition.ui:50 resources/ui/gtk4/apparition.ui:96
#: resources/ui/gtk4/apparition.ui:142 resources/ui/gtk4/apparition.ui:188
#: resources/ui/gtk4/apparition.ui:234 resources/ui/gtk4/portal.ui:51
#: resources/ui/gtk4/portal.ui:97 resources/ui/gtk4/portal.ui:143
#: resources/ui/gtk4/portal.ui:189 resources/ui/gtk4/portal.ui:226
#: resources/ui/gtk4/incinerate.ui:51 resources/ui/gtk4/incinerate.ui:97
#: resources/ui/gtk4/incinerate.ui:143 resources/ui/gtk4/incinerate.ui:198
#: resources/ui/gtk4/incinerate.ui:235 resources/ui/gtk4/hexagon.ui:51
#: resources/ui/gtk4/hexagon.ui:97 resources/ui/gtk4/hexagon.ui:143
#: resources/ui/gtk4/hexagon.ui:180 resources/ui/gtk4/hexagon.ui:217
#: resources/ui/gtk4/hexagon.ui:272 resources/ui/gtk4/fire.ui:74
#: resources/ui/gtk4/fire.ui:120 resources/ui/gtk4/fire.ui:166
#: resources/ui/gtk4/fire.ui:221 resources/ui/gtk4/fire.ui:280
#: resources/ui/gtk4/pixel-wipe.ui:51 resources/ui/gtk4/pixel-wipe.ui:97
#: resources/ui/gtk4/snap.ui:51 resources/ui/gtk4/snap.ui:97
#: resources/ui/gtk4/snap.ui:134 resources/ui/gtk4/energize-a.ui:51
#: resources/ui/gtk4/energize-a.ui:97 resources/ui/gtk4/energize-a.ui:134
#: resources/ui/gtk4/pixelate.ui:51 resources/ui/gtk4/pixelate.ui:97
#: resources/ui/gtk4/pixelate.ui:143 resources/ui/gtk4/tv.ui:51
#: resources/ui/gtk4/tv.ui:88 resources/ui/gtk3/tv-glitch.ui:78
#: resources/ui/gtk3/tv-glitch.ui:123 resources/ui/gtk3/tv-glitch.ui:168
#: resources/ui/gtk3/tv-glitch.ui:213 resources/ui/gtk3/tv-glitch.ui:255
#: resources/ui/gtk3/glitch.ui:78 resources/ui/gtk3/glitch.ui:123
#: resources/ui/gtk3/glitch.ui:168 resources/ui/gtk3/glitch.ui:213
#: resources/ui/gtk3/glitch.ui:255 resources/ui/gtk3/doom.ui:78
#: resources/ui/gtk3/doom.ui:123 resources/ui/gtk3/doom.ui:168
#: resources/ui/gtk3/doom.ui:213 resources/ui/gtk3/wisps.ui:64
#: resources/ui/gtk3/wisps.ui:109 resources/ui/gtk3/wisps.ui:159
#: resources/ui/gtk3/energize-b.ui:64 resources/ui/gtk3/energize-b.ui:109
#: resources/ui/gtk3/energize-b.ui:151 resources/ui/gtk3/pixel-wheel.ui:71
#: resources/ui/gtk3/pixel-wheel.ui:116 resources/ui/gtk3/pixel-wheel.ui:161
#: resources/ui/gtk3/glide.ui:85 resources/ui/gtk3/glide.ui:130
#: resources/ui/gtk3/glide.ui:175 resources/ui/gtk3/glide.ui:220
#: resources/ui/gtk3/glide.ui:265 resources/ui/gtk3/apparition.ui:85
#: resources/ui/gtk3/apparition.ui:130 resources/ui/gtk3/apparition.ui:175
#: resources/ui/gtk3/apparition.ui:220 resources/ui/gtk3/apparition.ui:265
#: resources/ui/gtk3/portal.ui:78 resources/ui/gtk3/portal.ui:123
#: resources/ui/gtk3/portal.ui:168 resources/ui/gtk3/portal.ui:213
#: resources/ui/gtk3/portal.ui:255 resources/ui/gtk3/incinerate.ui:71
#: resources/ui/gtk3/incinerate.ui:116 resources/ui/gtk3/incinerate.ui:161
#: resources/ui/gtk3/incinerate.ui:220 resources/ui/gtk3/incinerate.ui:262
#: resources/ui/gtk3/hexagon.ui:71 resources/ui/gtk3/hexagon.ui:116
#: resources/ui/gtk3/hexagon.ui:161 resources/ui/gtk3/hexagon.ui:203
#: resources/ui/gtk3/hexagon.ui:245 resources/ui/gtk3/hexagon.ui:304
#: resources/ui/gtk3/fire.ui:110 resources/ui/gtk3/fire.ui:154
#: resources/ui/gtk3/fire.ui:198 resources/ui/gtk3/fire.ui:257
#: resources/ui/gtk3/fire.ui:321 resources/ui/gtk3/pixel-wipe.ui:71
#: resources/ui/gtk3/pixel-wipe.ui:116 resources/ui/gtk3/energize-a.ui:64
#: resources/ui/gtk3/energize-a.ui:109 resources/ui/gtk3/energize-a.ui:151
#: resources/ui/gtk3/pixelate.ui:71 resources/ui/gtk3/pixelate.ui:116
#: resources/ui/gtk3/pixelate.ui:161 resources/ui/gtk3/tv.ui:57
#: resources/ui/gtk3/tv.ui:99 resources/ui/adw/broken-glass.ui:37
#: resources/ui/adw/broken-glass.ui:70 resources/ui/adw/broken-glass.ui:103
#: resources/ui/adw/broken-glass.ui:136 resources/ui/adw/broken-glass.ui:159
#: resources/ui/adw/tv-glitch.ui:36 resources/ui/adw/tv-glitch.ui:69
#: resources/ui/adw/tv-glitch.ui:102 resources/ui/adw/tv-glitch.ui:135
#: resources/ui/adw/tv-glitch.ui:160 resources/ui/adw/glitch.ui:36
#: resources/ui/adw/glitch.ui:69 resources/ui/adw/glitch.ui:102
#: resources/ui/adw/glitch.ui:135 resources/ui/adw/glitch.ui:160
#: resources/ui/adw/matrix.ui:36 resources/ui/adw/matrix.ui:69
#: resources/ui/adw/matrix.ui:102 resources/ui/adw/matrix.ui:135
#: resources/ui/adw/matrix.ui:160 resources/ui/adw/matrix.ui:185
#: resources/ui/adw/doom.ui:36 resources/ui/adw/doom.ui:69
#: resources/ui/adw/doom.ui:102 resources/ui/adw/doom.ui:135
#: resources/ui/adw/paint-brush.ui:36 resources/ui/adw/paint-brush.ui:69
#: resources/ui/adw/trex.ui:36 resources/ui/adw/trex.ui:69
#: resources/ui/adw/trex.ui:102 resources/ui/adw/trex.ui:135
#: resources/ui/adw/trex.ui:160 resources/ui/adw/wisps.ui:36
#: resources/ui/adw/wisps.ui:69 resources/ui/adw/wisps.ui:110
#: resources/ui/adw/energize-b.ui:37 resources/ui/adw/energize-b.ui:70
#: resources/ui/adw/energize-b.ui:95 resources/ui/adw/pixel-wheel.ui:36
#: resources/ui/adw/pixel-wheel.ui:69 resources/ui/adw/pixel-wheel.ui:102
#: resources/ui/adw/glide.ui:36 resources/ui/adw/glide.ui:69
#: resources/ui/adw/glide.ui:102 resources/ui/adw/glide.ui:135
#: resources/ui/adw/glide.ui:168 resources/ui/adw/apparition.ui:37
#: resources/ui/adw/apparition.ui:70 resources/ui/adw/apparition.ui:103
#: resources/ui/adw/apparition.ui:136 resources/ui/adw/apparition.ui:169
#: resources/ui/adw/portal.ui:36 resources/ui/adw/portal.ui:69
#: resources/ui/adw/portal.ui:102 resources/ui/adw/portal.ui:135
#: resources/ui/adw/portal.ui:160 resources/ui/adw/incinerate.ui:36
#: resources/ui/adw/incinerate.ui:69 resources/ui/adw/incinerate.ui:102
#: resources/ui/adw/incinerate.ui:125 resources/ui/adw/incinerate.ui:150
#: resources/ui/adw/hexagon.ui:36 resources/ui/adw/hexagon.ui:69
#: resources/ui/adw/hexagon.ui:102 resources/ui/adw/hexagon.ui:127
#: resources/ui/adw/hexagon.ui:152 resources/ui/adw/hexagon.ui:175
#: resources/ui/adw/fire.ui:52 resources/ui/adw/fire.ui:85
#: resources/ui/adw/fire.ui:118 resources/ui/adw/fire.ui:141
#: resources/ui/adw/fire.ui:199 resources/ui/adw/pixel-wipe.ui:36
#: resources/ui/adw/pixel-wipe.ui:69 resources/ui/adw/snap.ui:36
#: resources/ui/adw/snap.ui:69 resources/ui/adw/snap.ui:94
#: resources/ui/adw/energize-a.ui:36 resources/ui/adw/energize-a.ui:69
#: resources/ui/adw/energize-a.ui:94 resources/ui/adw/pixelate.ui:36
#: resources/ui/adw/pixelate.ui:69 resources/ui/adw/pixelate.ui:102
#: resources/ui/adw/tv.ui:36 resources/ui/adw/tv.ui:61
msgid "Reset to Default Value"
msgstr "तयशुदा मान पर रीसेट करें"
#: resources/ui/gtk4/broken-glass.ui:68 resources/ui/gtk4/tv-glitch.ui:69
#: resources/ui/gtk4/glitch.ui:69 resources/ui/gtk4/matrix.ui:69
#: resources/ui/gtk4/wisps.ui:69 resources/ui/gtk4/energize-b.ui:69
#: resources/ui/gtk4/glide.ui:69 resources/ui/gtk4/incinerate.ui:69
#: resources/ui/gtk4/hexagon.ui:69 resources/ui/gtk4/fire.ui:92
#: resources/ui/gtk4/snap.ui:69 resources/ui/gtk4/energize-a.ui:69
#: resources/ui/gtk3/tv-glitch.ui:97 resources/ui/gtk3/glitch.ui:97
#: resources/ui/gtk3/wisps.ui:83 resources/ui/gtk3/energize-b.ui:83
#: resources/ui/gtk3/glide.ui:104 resources/ui/gtk3/incinerate.ui:90
#: resources/ui/gtk3/hexagon.ui:90 resources/ui/gtk3/fire.ui:128
#: resources/ui/gtk3/energize-a.ui:83 resources/ui/adw/broken-glass.ui:48
#: resources/ui/adw/tv-glitch.ui:47 resources/ui/adw/glitch.ui:47
#: resources/ui/adw/matrix.ui:47 resources/ui/adw/wisps.ui:47
#: resources/ui/adw/energize-b.ui:48 resources/ui/adw/glide.ui:47
#: resources/ui/adw/incinerate.ui:47 resources/ui/adw/hexagon.ui:47
#: resources/ui/adw/fire.ui:63 resources/ui/adw/snap.ui:47
#: resources/ui/adw/energize-a.ui:47
msgid "Scale"
msgstr "पैमाना"
#: resources/ui/gtk4/broken-glass.ui:114 resources/ui/adw/broken-glass.ui:81
msgid "Gravity"
msgstr "गुरुत्व"
#: resources/ui/gtk4/broken-glass.ui:160 resources/ui/adw/broken-glass.ui:114
msgid "Blow Force"
msgstr "प्रहार का बल"
#: resources/ui/gtk4/broken-glass.ui:210 resources/ui/adw/broken-glass.ui:147
msgid "Shatter From Pointer Location"
msgstr "सूचक स्थान से चकनाचूर"
#: resources/ui/gtk4/broken-glass.ui:219 resources/ui/adw/broken-glass.ui:148
msgid ""
"The shards will fly away from where your mouse pointer was when closing the "
"window."
msgstr "खिड़की बंद करते समय आपका माउस सूचक जहां था, वहां से टुकड़े उड़ जाएंगे।"
#: resources/ui/gtk4/tv-glitch.ui:115 resources/ui/gtk4/glitch.ui:115
#: resources/ui/gtk3/tv-glitch.ui:142 resources/ui/gtk3/glitch.ui:142
#: resources/ui/adw/tv-glitch.ui:80 resources/ui/adw/glitch.ui:80
msgid "Strength"
msgstr "ताकत"
#: resources/ui/gtk4/tv-glitch.ui:161 resources/ui/gtk4/glitch.ui:161
#: resources/ui/gtk4/fire.ui:138 resources/ui/gtk3/tv-glitch.ui:187
#: resources/ui/gtk3/glitch.ui:187 resources/ui/gtk3/fire.ui:172
#: resources/ui/adw/tv-glitch.ui:113 resources/ui/adw/glitch.ui:113
#: resources/ui/adw/fire.ui:96
msgid "Speed"
msgstr "गति"
#: resources/ui/gtk4/tv-glitch.ui:207 resources/ui/gtk4/glitch.ui:207
#: resources/ui/gtk4/wisps.ui:115 resources/ui/gtk4/energize-b.ui:115
#: resources/ui/gtk4/portal.ui:207 resources/ui/gtk4/incinerate.ui:216
#: resources/ui/gtk4/snap.ui:115 resources/ui/gtk4/energize-a.ui:115
#: resources/ui/gtk4/tv.ui:69 resources/ui/gtk3/tv-glitch.ui:231
#: resources/ui/gtk3/glitch.ui:231 resources/ui/gtk3/wisps.ui:129
#: resources/ui/gtk3/energize-b.ui:127 resources/ui/gtk3/portal.ui:231
#: resources/ui/gtk3/incinerate.ui:238 resources/ui/gtk3/energize-a.ui:127
#: resources/ui/gtk3/tv.ui:75 resources/ui/adw/tv-glitch.ui:146
#: resources/ui/adw/glitch.ui:146 resources/ui/adw/wisps.ui:80
#: resources/ui/adw/energize-b.ui:81 resources/ui/adw/portal.ui:146
#: resources/ui/adw/incinerate.ui:136 resources/ui/adw/snap.ui:80
#: resources/ui/adw/energize-a.ui:80 resources/ui/adw/tv.ui:47
msgid "Color"
msgstr "रंग"
#: resources/ui/gtk4/matrix.ui:115 resources/ui/gtk4/apparition.ui:68
#: resources/ui/gtk3/apparition.ui:104 resources/ui/adw/matrix.ui:80
#: resources/ui/adw/apparition.ui:48
msgid "Randomness"
msgstr "बेतरतीबी"
#: resources/ui/gtk4/matrix.ui:161 resources/ui/adw/matrix.ui:113
msgid "Vertical Overshooting"
msgstr "लंबवत ओवरशूटिंग"
#: resources/ui/gtk4/matrix.ui:207 resources/ui/adw/matrix.ui:146
msgid "Trail Color"
msgstr "पगडंडी का रंग"
#: resources/ui/gtk4/matrix.ui:244 resources/ui/adw/matrix.ui:171
msgid "Tip Color"
msgstr "टिप का रंग"
#: resources/ui/gtk4/doom.ui:68 resources/ui/gtk3/doom.ui:97
#: resources/ui/adw/doom.ui:47
msgid "Horizontal Scale"
msgstr "क्षैतिज पैमाना"
#: resources/ui/gtk4/doom.ui:114 resources/ui/gtk3/doom.ui:142
#: resources/ui/adw/doom.ui:80
msgid "Vertical Scale"
msgstr "लंबवत पैमाना"
#: resources/ui/gtk4/doom.ui:160 resources/ui/gtk4/pixel-wheel.ui:115
#: resources/ui/gtk4/pixel-wipe.ui:69 resources/ui/gtk4/pixelate.ui:115
#: resources/ui/gtk3/doom.ui:187 resources/ui/gtk3/pixel-wheel.ui:135
#: resources/ui/gtk3/pixel-wipe.ui:90 resources/ui/gtk3/pixelate.ui:135
#: resources/ui/adw/doom.ui:113 resources/ui/adw/pixel-wheel.ui:80
#: resources/ui/adw/pixel-wipe.ui:47 resources/ui/adw/pixelate.ui:80
msgid "Pixel Size"
msgstr "पिक्सल आकार"
#: resources/ui/gtk4/paint-brush.ui:69 resources/ui/adw/paint-brush.ui:47
msgid "Brush Size"
msgstr "ब्रश का आकार"
#: resources/ui/gtk4/trex.ui:69 resources/ui/adw/trex.ui:47
msgid "Claw Scratch Scale"
msgstr "पंजे का स्क्रैच स्केल"
#: resources/ui/gtk4/trex.ui:115 resources/ui/adw/trex.ui:80
msgid "Claw Scratch Count"
msgstr "पंजे की खरोंच गिनती"
#: resources/ui/gtk4/trex.ui:161 resources/ui/adw/trex.ui:113
msgid "Warp Effect"
msgstr "वार्प प्रभाव"
#: resources/ui/gtk4/trex.ui:207 resources/ui/adw/trex.ui:146
msgid "Flash Color"
msgstr "फ़्लैश रंग"
#: resources/ui/gtk4/pixel-wheel.ui:69 resources/ui/gtk3/pixel-wheel.ui:90
#: resources/ui/adw/pixel-wheel.ui:47
msgid "Spoke Count"
msgstr "स्पोक की गिनती"
#: resources/ui/gtk4/glide.ui:115 resources/ui/gtk3/glide.ui:149
#: resources/ui/adw/glide.ui:80
msgid "Squish"
msgstr "स्क्विश"
#: resources/ui/gtk4/glide.ui:161 resources/ui/gtk3/glide.ui:194
#: resources/ui/adw/glide.ui:113
msgid "Tilt"
msgstr "झुकाव"
#: resources/ui/gtk4/glide.ui:207 resources/ui/gtk3/glide.ui:239
#: resources/ui/adw/glide.ui:146
msgid "Shift"
msgstr "बदलाव"
#: resources/ui/gtk4/apparition.ui:114 resources/ui/gtk3/apparition.ui:149
#: resources/ui/adw/apparition.ui:81
msgid "Twirl Intensity"
msgstr "घुमाव की तीव्रता"
#: resources/ui/gtk4/apparition.ui:160 resources/ui/gtk3/apparition.ui:194
#: resources/ui/adw/apparition.ui:114
msgid "Shake Intensity"
msgstr "झटकों की तीव्रता"
#: resources/ui/gtk4/apparition.ui:206 resources/ui/gtk3/apparition.ui:239
#: resources/ui/adw/apparition.ui:147
msgid "Suction Intensity"
msgstr "चूषण तीव्रता"
#: resources/ui/gtk4/portal.ui:69 resources/ui/gtk3/portal.ui:142
#: resources/ui/adw/portal.ui:80
msgid "Whirling"
msgstr "घुमावदार"
#: resources/ui/gtk4/portal.ui:115 resources/ui/gtk3/portal.ui:97
#: resources/ui/adw/portal.ui:47
msgid "Rotation Speed"
msgstr "घूर्णन गति"
#: resources/ui/gtk4/portal.ui:161 resources/ui/gtk3/portal.ui:187
#: resources/ui/adw/portal.ui:113
msgid "Details"
msgstr "विवरण"
#: resources/ui/gtk4/incinerate.ui:115 resources/ui/gtk3/incinerate.ui:135
#: resources/ui/adw/incinerate.ui:80
msgid "Turbulence"
msgstr "उथल-पुथल"
#: resources/ui/gtk4/incinerate.ui:165 resources/ui/gtk3/incinerate.ui:183
#: resources/ui/adw/incinerate.ui:113
msgid "Start at Pointer"
msgstr "सूचक से प्रारंभ करें"
#: resources/ui/gtk4/incinerate.ui:174 resources/ui/gtk3/incinerate.ui:192
#: resources/ui/adw/incinerate.ui:114
msgid "If disabled, a random location will be chosen."
msgstr "यदि अक्षम किया गया है, तो एक यादृच्छिक स्थान चुना जाएगा।"
#: resources/ui/gtk4/hexagon.ui:115 resources/ui/gtk3/hexagon.ui:135
#: resources/ui/adw/hexagon.ui:80
msgid "Mesh Line Width"
msgstr "जाल रेखा की चौड़ाई"
#: resources/ui/gtk4/hexagon.ui:161 resources/ui/gtk3/hexagon.ui:179
#: resources/ui/adw/hexagon.ui:113
msgid "Line Color"
msgstr "रेखा रंग"
#: resources/ui/gtk4/hexagon.ui:198 resources/ui/gtk3/hexagon.ui:221
#: resources/ui/adw/hexagon.ui:138
msgid "Glow Color"
msgstr "चमकदार रंग"
#: resources/ui/gtk4/hexagon.ui:239 resources/ui/gtk3/hexagon.ui:267
#: resources/ui/adw/hexagon.ui:163
msgid "Additive Blending"
msgstr "योगात्मक सम्मिश्रण"
#: resources/ui/gtk4/hexagon.ui:248 resources/ui/gtk3/hexagon.ui:276
#: resources/ui/adw/hexagon.ui:164
msgid "You may want to enable this for dark window themes."
msgstr "आप इसे डार्क विंडो थीम के लिए सक्षम करना चाह सकते हैं।"
#: resources/ui/gtk4/fire.ui:22 resources/ui/gtk3/fire.ui:44
#: resources/ui/adw/fire.ui:14
msgid "Presets"
msgstr "प्रीसेट"
#: resources/ui/gtk4/fire.ui:31 resources/ui/gtk3/fire.ui:58
#: resources/ui/adw/fire.ui:19
msgid "Choose a Preset"
msgstr "प्रीसेट चुनें"
#: resources/ui/gtk4/fire.ui:188 resources/ui/gtk3/fire.ui:220
#: resources/ui/adw/fire.ui:129
msgid "3D Noise"
msgstr "3D शोर"
#: resources/ui/gtk4/fire.ui:197 resources/ui/gtk3/fire.ui:229
#: resources/ui/adw/fire.ui:130
msgid "Creates a more dynamic fire but requires more GPU power."
msgstr ""
"अधिक गतिशील आग पैदा करता है लेकिन इसके लिए अधिक GPU शक्ति की आवश्यकता होती "
"है।"
#: resources/ui/gtk4/fire.ui:239 resources/ui/gtk3/fire.ui:276
#: resources/ui/adw/fire.ui:152
msgid "Gradient"
msgstr "ग्रेडियेंट"
#: resources/ui/gtk4/prefs.ui:91 resources/ui/gtk3/prefs.ui:133
#: resources/ui/adw/prefs.ui:224
msgid "Effect Selection"
msgstr "प्रभाव चयन"
#: resources/ui/gtk4/prefs.ui:101 resources/ui/gtk3/prefs.ui:143
#: resources/ui/adw/prefs.ui:225
msgid "If multiple are selected, one is chosen randomly."
msgstr "यदि एकाधिक का चयन किया जाता है, तो एक को यादृच्छिक रूप से चुना जाता है।"
#: resources/ui/gtk4/prefs.ui:118 resources/ui/gtk3/prefs.ui:160
#: resources/ui/adw/prefs.ui:236
msgid "All"
msgstr "सभी"
#: resources/ui/gtk4/prefs.ui:124 resources/ui/gtk3/prefs.ui:166
#: resources/ui/adw/prefs.ui:242
msgid "None"
msgstr "कोई नहीं"
#: resources/ui/gtk4/prefs.ui:168 resources/ui/gtk3/prefs.ui:208
#: resources/ui/adw/prefs.ui:65
msgid "Effect Profile Constraints"
msgstr "प्रभाव प्रोफ़ाइल बाधाएं"
#: resources/ui/gtk4/prefs.ui:178 resources/ui/gtk3/prefs.ui:218
#: resources/ui/adw/prefs.ui:66
msgid "Define when the current effect settings should be used."
msgstr "परिभाषित करें कि वर्तमान प्रभाव सेटिंग्स का उपयोग कब किया जाना चाहिए।"
#: resources/ui/gtk4/prefs.ui:202 resources/ui/gtk3/prefs.ui:242
#: resources/ui/adw/prefs.ui:70
msgid "Application"
msgstr "अनुप्रयोग"
#: resources/ui/gtk4/prefs.ui:220 resources/ui/gtk4/prefs.ui:255
#: resources/ui/gtk4/prefs.ui:284 resources/ui/gtk4/prefs.ui:313
#: resources/ui/gtk4/prefs.ui:342 resources/ui/gtk4/prefs.ui:371
#: resources/ui/gtk3/prefs.ui:260 resources/ui/gtk3/prefs.ui:300
#: resources/ui/gtk3/prefs.ui:329 resources/ui/gtk3/prefs.ui:358
#: resources/ui/gtk3/prefs.ui:387 resources/ui/gtk3/prefs.ui:416
#: resources/ui/adw/prefs.ui:81 resources/ui/adw/prefs.ui:102
#: resources/ui/adw/prefs.ui:117 resources/ui/adw/prefs.ui:132
#: resources/ui/adw/prefs.ui:147 resources/ui/adw/prefs.ui:162
msgid "Any"
msgstr "कोई"
#: resources/ui/gtk4/prefs.ui:244 resources/ui/gtk3/prefs.ui:289
#: resources/ui/adw/prefs.ui:98
msgid "Animation Type"
msgstr "एनिमेशन प्रकार"
#: resources/ui/gtk4/prefs.ui:273 resources/ui/gtk3/prefs.ui:318
#: resources/ui/adw/prefs.ui:113
msgid "Window Type"
msgstr "विंडो प्रकार"
#: resources/ui/gtk4/prefs.ui:302 resources/ui/gtk3/prefs.ui:347
#: resources/ui/adw/prefs.ui:128
msgid "Color Scheme"
msgstr "रंग योजना"
#: resources/ui/gtk4/prefs.ui:331 resources/ui/gtk3/prefs.ui:376
#: resources/ui/adw/prefs.ui:143
msgid "Power Mode"
msgstr "पावर मोड"
#: resources/ui/gtk4/prefs.ui:360 resources/ui/gtk3/prefs.ui:405
#: resources/ui/adw/prefs.ui:158
msgid "Power Profile"
msgstr "पावर प्रोफ़ाइल"
#: resources/ui/gtk4/prefs.ui:392 resources/ui/gtk3/prefs.ui:437
#: resources/ui/adw/prefs.ui:179
msgid "Advanced Profile Options"
msgstr "उन्नत प्रोफ़ाइल विकल्प"
#: resources/ui/gtk4/prefs.ui:432 resources/ui/gtk3/prefs.ui:477
#: resources/ui/adw/prefs.ui:184
msgid "Use this profile even if there are better matching profiles."
msgstr "बेहतर मिलान वाली प्रोफ़ाइल होने पर भी इस प्रोफ़ाइल का उपयोग करें।"
#: resources/ui/gtk4/prefs.ui:464 resources/ui/gtk3/prefs.ui:509
#: resources/ui/adw/prefs.ui:204
msgid "Delete this Profile..."
msgstr "इस प्रोफ़ाइल को मिटाएं…"
#: resources/ui/gtk4/pixelate.ui:69 resources/ui/gtk3/pixelate.ui:90
#: resources/ui/adw/pixelate.ui:47
msgid "Noise"
msgstr "शोर"
+72 -69
View File
@@ -8,110 +8,110 @@ msgstr ""
"Project-Id-Version: burn-my-windows\n" "Project-Id-Version: burn-my-windows\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-31 07:30+0200\n" "POT-Creation-Date: 2023-08-31 07:30+0200\n"
"PO-Revision-Date: 2023-02-06 11:38+0000\n" "PO-Revision-Date: 2024-08-18 17:09+0000\n"
"Last-Translator: KinteLiX <superh552@gmail.com>\n" "Last-Translator: atomkapa atomkapa <atomkapa@gmail.com>\n"
"Language-Team: Hungarian <https://hosted.weblate.org/projects/burn-my-" "Language-Team: Hungarian <https://hosted.weblate.org/projects/"
"windows/core/hu/>\n" "burn-my-windows/core/hu/>\n"
"Language: hu\n" "Language: hu\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n" "Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.16-dev\n" "X-Generator: Weblate 5.7\n"
#: src/ProfileManager.js:175 resources/ui/gtk4/prefs.ui:256 #: src/ProfileManager.js:175 resources/ui/gtk4/prefs.ui:256
#: resources/ui/gtk3/prefs.ui:301 resources/ui/adw/prefs.ui:103 #: resources/ui/gtk3/prefs.ui:301 resources/ui/adw/prefs.ui:103
msgid "Opening Windows" msgid "Opening Windows"
msgstr "" msgstr "Ablakok megnyitása"
#: src/ProfileManager.js:176 resources/ui/gtk4/prefs.ui:257 #: src/ProfileManager.js:176 resources/ui/gtk4/prefs.ui:257
#: resources/ui/gtk3/prefs.ui:302 resources/ui/adw/prefs.ui:104 #: resources/ui/gtk3/prefs.ui:302 resources/ui/adw/prefs.ui:104
msgid "Closing Windows" msgid "Closing Windows"
msgstr "" msgstr "Ablakok bezárása"
#: src/ProfileManager.js:177 resources/ui/gtk4/prefs.ui:285 #: src/ProfileManager.js:177 resources/ui/gtk4/prefs.ui:285
#: resources/ui/gtk3/prefs.ui:330 resources/ui/adw/prefs.ui:118 #: resources/ui/gtk3/prefs.ui:330 resources/ui/adw/prefs.ui:118
msgid "Normal Windows" msgid "Normal Windows"
msgstr "" msgstr "Normál ablakok"
#: src/ProfileManager.js:178 resources/ui/gtk4/prefs.ui:286 #: src/ProfileManager.js:178 resources/ui/gtk4/prefs.ui:286
#: resources/ui/gtk3/prefs.ui:331 resources/ui/adw/prefs.ui:119 #: resources/ui/gtk3/prefs.ui:331 resources/ui/adw/prefs.ui:119
msgid "Dialog Windows" msgid "Dialog Windows"
msgstr "" msgstr "Párbeszédablakok"
#: src/ProfileManager.js:179 resources/ui/gtk4/prefs.ui:314 #: src/ProfileManager.js:179 resources/ui/gtk4/prefs.ui:314
#: resources/ui/gtk3/prefs.ui:359 resources/ui/adw/prefs.ui:133 #: resources/ui/gtk3/prefs.ui:359 resources/ui/adw/prefs.ui:133
msgid "Default Color Scheme" msgid "Default Color Scheme"
msgstr "" msgstr "Alapértelmezett téma"
#: src/ProfileManager.js:180 resources/ui/gtk4/prefs.ui:315 #: src/ProfileManager.js:180 resources/ui/gtk4/prefs.ui:315
#: resources/ui/gtk3/prefs.ui:360 resources/ui/adw/prefs.ui:134 #: resources/ui/gtk3/prefs.ui:360 resources/ui/adw/prefs.ui:134
msgid "Dark Color Scheme" msgid "Dark Color Scheme"
msgstr "" msgstr "Sötét téma"
#: src/ProfileManager.js:181 resources/ui/gtk4/prefs.ui:343 #: src/ProfileManager.js:181 resources/ui/gtk4/prefs.ui:343
#: resources/ui/gtk3/prefs.ui:388 resources/ui/adw/prefs.ui:148 #: resources/ui/gtk3/prefs.ui:388 resources/ui/adw/prefs.ui:148
msgid "On Battery" msgid "On Battery"
msgstr "" msgstr "Akkumulátoron"
#: src/ProfileManager.js:182 resources/ui/gtk4/prefs.ui:344 #: src/ProfileManager.js:182 resources/ui/gtk4/prefs.ui:344
#: resources/ui/gtk3/prefs.ui:389 resources/ui/adw/prefs.ui:149 #: resources/ui/gtk3/prefs.ui:389 resources/ui/adw/prefs.ui:149
msgid "Plugged In" msgid "Plugged In"
msgstr "" msgstr "Csatlakoztatva"
#: src/ProfileManager.js:183 resources/ui/gtk4/prefs.ui:372 #: src/ProfileManager.js:183 resources/ui/gtk4/prefs.ui:372
#: resources/ui/gtk3/prefs.ui:417 resources/ui/adw/prefs.ui:163 #: resources/ui/gtk3/prefs.ui:417 resources/ui/adw/prefs.ui:163
msgid "Power-Saver Mode" msgid "Power-Saver Mode"
msgstr "" msgstr "Energiatakarékos üzemmód"
#: src/ProfileManager.js:184 resources/ui/gtk4/prefs.ui:373 #: src/ProfileManager.js:184 resources/ui/gtk4/prefs.ui:373
#: resources/ui/gtk3/prefs.ui:418 resources/ui/adw/prefs.ui:164 #: resources/ui/gtk3/prefs.ui:418 resources/ui/adw/prefs.ui:164
msgid "Balanced Mode" msgid "Balanced Mode"
msgstr "" msgstr "Kiegyensúlyozott üzemmód"
#: src/ProfileManager.js:185 resources/ui/gtk4/prefs.ui:374 #: src/ProfileManager.js:185 resources/ui/gtk4/prefs.ui:374
#: resources/ui/gtk3/prefs.ui:419 resources/ui/adw/prefs.ui:165 #: resources/ui/gtk3/prefs.ui:419 resources/ui/adw/prefs.ui:165
msgid "Performance Mode" msgid "Performance Mode"
msgstr "" msgstr "Teljesítmény üzemmód"
#: src/ProfileManager.js:186 resources/ui/gtk4/prefs.ui:375 #: src/ProfileManager.js:186 resources/ui/gtk4/prefs.ui:375
#: resources/ui/gtk3/prefs.ui:420 resources/ui/adw/prefs.ui:166 #: resources/ui/gtk3/prefs.ui:420 resources/ui/adw/prefs.ui:166
msgid "Power Saver or Balanced" msgid "Power Saver or Balanced"
msgstr "" msgstr "Enerigiatakarékos vagy kiegyensúlyozott üzemmód"
#: src/ProfileManager.js:187 resources/ui/gtk4/prefs.ui:376 #: src/ProfileManager.js:187 resources/ui/gtk4/prefs.ui:376
#: resources/ui/gtk3/prefs.ui:421 resources/ui/adw/prefs.ui:167 #: resources/ui/gtk3/prefs.ui:421 resources/ui/adw/prefs.ui:167
msgid "Balanced or Performance" msgid "Balanced or Performance"
msgstr "" msgstr "Kiegyensúlyozott vagy teljesítmény üzemmód"
#: src/ProfileManager.js:192 resources/ui/gtk4/prefs.ui:423 #: src/ProfileManager.js:192 resources/ui/gtk4/prefs.ui:423
#: resources/ui/gtk3/prefs.ui:468 resources/ui/adw/prefs.ui:183 #: resources/ui/gtk3/prefs.ui:468 resources/ui/adw/prefs.ui:183
msgid "High Priority" msgid "High Priority"
msgstr "" msgstr "Magas Prioritás"
#: src/ProfileManager.js:198 #: src/ProfileManager.js:198
msgid "Standard Profile" msgid "Standard Profile"
msgstr "" msgstr "Alapértelmezett Profil"
#: src/effects/Apparition.js:78 #: src/effects/Apparition.js:78
msgid "Apparition" msgid "Apparition"
msgstr "Jelenés" msgstr "Megjelenés"
#: src/effects/BrokenGlass.js:137 #: src/effects/BrokenGlass.js:137
msgid "Broken Glass" msgid "Broken Glass"
msgstr "Szilánkok" msgstr "Betört üveg"
#: src/effects/Doom.js:88 #: src/effects/Doom.js:88
msgid "Doom" msgid "Doom"
msgstr "Végzet" msgstr "Doom"
#: src/effects/EnergizeA.js:80 #: src/effects/EnergizeA.js:80
msgid "Energize A" msgid "Energize A"
msgstr "Energia A" msgstr "Energiát! A"
#: src/effects/EnergizeB.js:81 #: src/effects/EnergizeB.js:81
msgid "Energize B" msgid "Energize B"
msgstr "Energia B" msgstr "Energiát! B"
#: src/effects/Fire.js:100 #: src/effects/Fire.js:100
msgid "Fire" msgid "Fire"
@@ -127,15 +127,15 @@ msgstr "Pokoli tűz"
#: src/effects/Fire.js:174 #: src/effects/Fire.js:174
msgid "Dark and Smutty" msgid "Dark and Smutty"
msgstr "Sötét és kormos" msgstr "Sötét és kormos tűz"
#: src/effects/Fire.js:184 #: src/effects/Fire.js:184
msgid "Cold Breeze" msgid "Cold Breeze"
msgstr "Hideg szellő" msgstr "Fagyos szellő"
#: src/effects/Fire.js:194 #: src/effects/Fire.js:194
msgid "Santa is Coming" msgid "Santa is Coming"
msgstr "Jön a télapó" msgstr "Télapó itt van"
#: src/effects/Glide.js:78 #: src/effects/Glide.js:78
msgid "Glide" msgid "Glide"
@@ -159,7 +159,7 @@ msgstr "Mátrix"
#: src/effects/PaintBrush.js:102 #: src/effects/PaintBrush.js:102
msgid "Paint Brush" msgid "Paint Brush"
msgstr "" msgstr "Ecset"
#: src/effects/Pixelate.js:74 #: src/effects/Pixelate.js:74
msgid "Pixelate" msgid "Pixelate"
@@ -167,7 +167,7 @@ msgstr "Pixelezés"
#: src/effects/PixelWheel.js:74 #: src/effects/PixelWheel.js:74
msgid "Pixel Wheel" msgid "Pixel Wheel"
msgstr "Pixelciklus" msgstr "Pixelkerék"
#: src/effects/PixelWipe.js:101 #: src/effects/PixelWipe.js:101
msgid "Pixel Wipe" msgid "Pixel Wipe"
@@ -179,7 +179,7 @@ msgstr "Portál"
#: src/effects/SnapOfDisintegration.js:114 #: src/effects/SnapOfDisintegration.js:114
msgid "Snap of Disintegration" msgid "Snap of Disintegration"
msgstr "Hírtelen felbomlás" msgstr "Thanos csettintése"
#: src/effects/TRexAttack.js:112 #: src/effects/TRexAttack.js:112
msgid "T-Rex Attack" msgid "T-Rex Attack"
@@ -199,11 +199,11 @@ msgstr "Szálak"
#: prefs.js:269 #: prefs.js:269
msgid "Preview this effect" msgid "Preview this effect"
msgstr "Nézze elő ezt a hatást" msgstr "Előnézet"
#: prefs.js:388 resources/ui/gtk4/prefs.ui:50 resources/ui/gtk3/prefs.ui:86 #: prefs.js:388 resources/ui/gtk4/prefs.ui:50 resources/ui/gtk3/prefs.ui:86
msgid "Burn-My-Windows has been updated!" msgid "Burn-My-Windows has been updated!"
msgstr "" msgstr "A Burn-My-Windows frissült!"
#: prefs.js:389 resources/ui/common/menus.ui:17 resources/ui/gtk4/prefs.ui:56 #: prefs.js:389 resources/ui/common/menus.ui:17 resources/ui/gtk4/prefs.ui:56
#: resources/ui/gtk3/prefs.ui:96 #: resources/ui/gtk3/prefs.ui:96
@@ -228,21 +228,21 @@ msgstr "Korábbi szponzorok"
#: prefs.js:660 #: prefs.js:660
msgid "Delete this Profile?" msgid "Delete this Profile?"
msgstr "" msgstr "Biztosan törli a profilt?"
#: prefs.js:661 #: prefs.js:661
msgid "" msgid ""
"The current effect profile with all its effect settings will be permanently " "The current effect profile with all its effect settings will be permanently "
"lost." "lost."
msgstr "" msgstr "A jelenlegi profil minden beállítással együtt örökre elveszik."
#: prefs.js:664 #: prefs.js:664
msgid "Cancel" msgid "Cancel"
msgstr "" msgstr "Mégse"
#: prefs.js:669 #: prefs.js:669
msgid "Delete" msgid "Delete"
msgstr "" msgstr "Törlés"
#. Translators: %s will be replaced by the effect's name. #. Translators: %s will be replaced by the effect's name.
#: prefs.js:980 #: prefs.js:980
@@ -260,7 +260,7 @@ msgstr "Honlap meglátogatása"
#: resources/ui/common/menus.ui:21 #: resources/ui/common/menus.ui:21
msgid "View Matching Wallpapers" msgid "View Matching Wallpapers"
msgstr "" msgstr "Passzoló háttérképek megtekintése"
#: resources/ui/common/menus.ui:27 #: resources/ui/common/menus.ui:27
msgid "Report a Bug" msgid "Report a Bug"
@@ -280,7 +280,7 @@ msgstr "Adományozás"
#: resources/ui/common/menus.ui:56 #: resources/ui/common/menus.ui:56
msgid "Open Effect-Profile Directory" msgid "Open Effect-Profile Directory"
msgstr "" msgstr "Az effektbeállításokat tartalmazó mappa megnyitása"
#: resources/ui/common/menus.ui:62 #: resources/ui/common/menus.ui:62
msgid "About Burn-My-Windows" msgid "About Burn-My-Windows"
@@ -288,7 +288,7 @@ msgstr "A Burn-My-Windowsról"
#: resources/ui/common/menus.ui:73 #: resources/ui/common/menus.ui:73
msgid "Add New Profile..." msgid "Add New Profile..."
msgstr "" msgstr "Új Profil Hozzáadása..."
#: resources/ui/gtk4/broken-glass.ui:22 resources/ui/gtk4/tv-glitch.ui:23 #: resources/ui/gtk4/broken-glass.ui:22 resources/ui/gtk4/tv-glitch.ui:23
#: resources/ui/gtk4/glitch.ui:23 resources/ui/gtk4/matrix.ui:23 #: resources/ui/gtk4/glitch.ui:23 resources/ui/gtk4/matrix.ui:23
@@ -551,11 +551,11 @@ msgstr "Pixelméret"
#: resources/ui/gtk4/paint-brush.ui:69 resources/ui/adw/paint-brush.ui:47 #: resources/ui/gtk4/paint-brush.ui:69 resources/ui/adw/paint-brush.ui:47
msgid "Brush Size" msgid "Brush Size"
msgstr "" msgstr "Ecset mérete"
#: resources/ui/gtk4/trex.ui:69 resources/ui/adw/trex.ui:47 #: resources/ui/gtk4/trex.ui:69 resources/ui/adw/trex.ui:47
msgid "Claw Scratch Scale" msgid "Claw Scratch Scale"
msgstr "Korom karmolás skálája" msgstr "Karmolás mérete"
#: resources/ui/gtk4/trex.ui:115 resources/ui/adw/trex.ui:80 #: resources/ui/gtk4/trex.ui:115 resources/ui/adw/trex.ui:80
msgid "Claw Scratch Count" msgid "Claw Scratch Count"
@@ -592,42 +592,42 @@ msgstr "Elmozdítás"
#: resources/ui/gtk4/apparition.ui:114 resources/ui/gtk3/apparition.ui:149 #: resources/ui/gtk4/apparition.ui:114 resources/ui/gtk3/apparition.ui:149
#: resources/ui/adw/apparition.ui:81 #: resources/ui/adw/apparition.ui:81
msgid "Twirl Intensity" msgid "Twirl Intensity"
msgstr "" msgstr "Pörgés intenzitása"
#: resources/ui/gtk4/apparition.ui:160 resources/ui/gtk3/apparition.ui:194 #: resources/ui/gtk4/apparition.ui:160 resources/ui/gtk3/apparition.ui:194
#: resources/ui/adw/apparition.ui:114 #: resources/ui/adw/apparition.ui:114
msgid "Shake Intensity" msgid "Shake Intensity"
msgstr "" msgstr "Rázkódás intenzitása"
#: resources/ui/gtk4/apparition.ui:206 resources/ui/gtk3/apparition.ui:239 #: resources/ui/gtk4/apparition.ui:206 resources/ui/gtk3/apparition.ui:239
#: resources/ui/adw/apparition.ui:147 #: resources/ui/adw/apparition.ui:147
msgid "Suction Intensity" msgid "Suction Intensity"
msgstr "" msgstr "Szívóerő Intenzitása"
#: resources/ui/gtk4/portal.ui:69 resources/ui/gtk3/portal.ui:142 #: resources/ui/gtk4/portal.ui:69 resources/ui/gtk3/portal.ui:142
#: resources/ui/adw/portal.ui:80 #: resources/ui/adw/portal.ui:80
msgid "Whirling" msgid "Whirling"
msgstr "" msgstr "Örvénylés"
#: resources/ui/gtk4/portal.ui:115 resources/ui/gtk3/portal.ui:97 #: resources/ui/gtk4/portal.ui:115 resources/ui/gtk3/portal.ui:97
#: resources/ui/adw/portal.ui:47 #: resources/ui/adw/portal.ui:47
msgid "Rotation Speed" msgid "Rotation Speed"
msgstr "" msgstr "Forgás sebessége"
#: resources/ui/gtk4/portal.ui:161 resources/ui/gtk3/portal.ui:187 #: resources/ui/gtk4/portal.ui:161 resources/ui/gtk3/portal.ui:187
#: resources/ui/adw/portal.ui:113 #: resources/ui/adw/portal.ui:113
msgid "Details" msgid "Details"
msgstr "" msgstr "Részletesség"
#: resources/ui/gtk4/incinerate.ui:115 resources/ui/gtk3/incinerate.ui:135 #: resources/ui/gtk4/incinerate.ui:115 resources/ui/gtk3/incinerate.ui:135
#: resources/ui/adw/incinerate.ui:80 #: resources/ui/adw/incinerate.ui:80
msgid "Turbulence" msgid "Turbulence"
msgstr "Légörvény" msgstr "Turbulencia"
#: resources/ui/gtk4/incinerate.ui:165 resources/ui/gtk3/incinerate.ui:183 #: resources/ui/gtk4/incinerate.ui:165 resources/ui/gtk3/incinerate.ui:183
#: resources/ui/adw/incinerate.ui:113 #: resources/ui/adw/incinerate.ui:113
msgid "Start at Pointer" msgid "Start at Pointer"
msgstr "Mutatónál kezdje" msgstr "Kezdés a mutatónál"
#: resources/ui/gtk4/incinerate.ui:174 resources/ui/gtk3/incinerate.ui:192 #: resources/ui/gtk4/incinerate.ui:174 resources/ui/gtk3/incinerate.ui:192
#: resources/ui/adw/incinerate.ui:114 #: resources/ui/adw/incinerate.ui:114
@@ -637,7 +637,7 @@ msgstr "Ha ki van kapcsolva, egy véletlenszerű hely lesz választva."
#: resources/ui/gtk4/hexagon.ui:115 resources/ui/gtk3/hexagon.ui:135 #: resources/ui/gtk4/hexagon.ui:115 resources/ui/gtk3/hexagon.ui:135
#: resources/ui/adw/hexagon.ui:80 #: resources/ui/adw/hexagon.ui:80
msgid "Mesh Line Width" msgid "Mesh Line Width"
msgstr "" msgstr "Körvonal Vastagsága"
#: resources/ui/gtk4/hexagon.ui:161 resources/ui/gtk3/hexagon.ui:179 #: resources/ui/gtk4/hexagon.ui:161 resources/ui/gtk3/hexagon.ui:179
#: resources/ui/adw/hexagon.ui:113 #: resources/ui/adw/hexagon.ui:113
@@ -652,12 +652,12 @@ msgstr "Világítás színe"
#: resources/ui/gtk4/hexagon.ui:239 resources/ui/gtk3/hexagon.ui:267 #: resources/ui/gtk4/hexagon.ui:239 resources/ui/gtk3/hexagon.ui:267
#: resources/ui/adw/hexagon.ui:163 #: resources/ui/adw/hexagon.ui:163
msgid "Additive Blending" msgid "Additive Blending"
msgstr "" msgstr "Beolvadó Színek"
#: resources/ui/gtk4/hexagon.ui:248 resources/ui/gtk3/hexagon.ui:276 #: resources/ui/gtk4/hexagon.ui:248 resources/ui/gtk3/hexagon.ui:276
#: resources/ui/adw/hexagon.ui:164 #: resources/ui/adw/hexagon.ui:164
msgid "You may want to enable this for dark window themes." msgid "You may want to enable this for dark window themes."
msgstr "Lehet, hogy szeretné bekapcsolni ezt a sötét témájú ablaktémákoknak." msgstr "Sötét témájú ablakokhoz ajánlott."
#: resources/ui/gtk4/fire.ui:22 resources/ui/gtk3/fire.ui:44 #: resources/ui/gtk4/fire.ui:22 resources/ui/gtk3/fire.ui:44
#: resources/ui/adw/fire.ui:14 #: resources/ui/adw/fire.ui:14
@@ -667,7 +667,7 @@ msgstr "Sablonok"
#: resources/ui/gtk4/fire.ui:31 resources/ui/gtk3/fire.ui:58 #: resources/ui/gtk4/fire.ui:31 resources/ui/gtk3/fire.ui:58
#: resources/ui/adw/fire.ui:19 #: resources/ui/adw/fire.ui:19
msgid "Choose a Preset" msgid "Choose a Preset"
msgstr "" msgstr "Válassz egy sablont"
#: resources/ui/gtk4/fire.ui:188 resources/ui/gtk3/fire.ui:220 #: resources/ui/gtk4/fire.ui:188 resources/ui/gtk3/fire.ui:220
#: resources/ui/adw/fire.ui:129 #: resources/ui/adw/fire.ui:129
@@ -682,42 +682,45 @@ msgstr "Egy dinamikusabb tüzet készít, de több GPU erőt igényel."
#: resources/ui/gtk4/fire.ui:239 resources/ui/gtk3/fire.ui:276 #: resources/ui/gtk4/fire.ui:239 resources/ui/gtk3/fire.ui:276
#: resources/ui/adw/fire.ui:152 #: resources/ui/adw/fire.ui:152
msgid "Gradient" msgid "Gradient"
msgstr "Gradiens" msgstr "Árnyalatok"
#: resources/ui/gtk4/prefs.ui:91 resources/ui/gtk3/prefs.ui:133 #: resources/ui/gtk4/prefs.ui:91 resources/ui/gtk3/prefs.ui:133
#: resources/ui/adw/prefs.ui:224 #: resources/ui/adw/prefs.ui:224
msgid "Effect Selection" msgid "Effect Selection"
msgstr "" msgstr "Effektus kiválasztása"
#: resources/ui/gtk4/prefs.ui:101 resources/ui/gtk3/prefs.ui:143 #: resources/ui/gtk4/prefs.ui:101 resources/ui/gtk3/prefs.ui:143
#: resources/ui/adw/prefs.ui:225 #: resources/ui/adw/prefs.ui:225
msgid "If multiple are selected, one is chosen randomly." msgid "If multiple are selected, one is chosen randomly."
msgstr "" msgstr ""
"Ha több is ki van választva, minden alkalommal egy véletlenszerű lesz "
"használva."
#: resources/ui/gtk4/prefs.ui:118 resources/ui/gtk3/prefs.ui:160 #: resources/ui/gtk4/prefs.ui:118 resources/ui/gtk3/prefs.ui:160
#: resources/ui/adw/prefs.ui:236 #: resources/ui/adw/prefs.ui:236
msgid "All" msgid "All"
msgstr "" msgstr "Mind"
#: resources/ui/gtk4/prefs.ui:124 resources/ui/gtk3/prefs.ui:166 #: resources/ui/gtk4/prefs.ui:124 resources/ui/gtk3/prefs.ui:166
#: resources/ui/adw/prefs.ui:242 #: resources/ui/adw/prefs.ui:242
msgid "None" msgid "None"
msgstr "" msgstr "Egyik sem"
#: resources/ui/gtk4/prefs.ui:168 resources/ui/gtk3/prefs.ui:208 #: resources/ui/gtk4/prefs.ui:168 resources/ui/gtk3/prefs.ui:208
#: resources/ui/adw/prefs.ui:65 #: resources/ui/adw/prefs.ui:65
msgid "Effect Profile Constraints" msgid "Effect Profile Constraints"
msgstr "" msgstr "Profil Beállításai"
#: resources/ui/gtk4/prefs.ui:178 resources/ui/gtk3/prefs.ui:218 #: resources/ui/gtk4/prefs.ui:178 resources/ui/gtk3/prefs.ui:218
#: resources/ui/adw/prefs.ui:66 #: resources/ui/adw/prefs.ui:66
msgid "Define when the current effect settings should be used." msgid "Define when the current effect settings should be used."
msgstr "" msgstr ""
"Határozza meg, mikor legyenek használatban az aktuális effektbeállítások."
#: resources/ui/gtk4/prefs.ui:202 resources/ui/gtk3/prefs.ui:242 #: resources/ui/gtk4/prefs.ui:202 resources/ui/gtk3/prefs.ui:242
#: resources/ui/adw/prefs.ui:70 #: resources/ui/adw/prefs.ui:70
msgid "Application" msgid "Application"
msgstr "" msgstr "Applikáció"
#: resources/ui/gtk4/prefs.ui:220 resources/ui/gtk4/prefs.ui:255 #: resources/ui/gtk4/prefs.ui:220 resources/ui/gtk4/prefs.ui:255
#: resources/ui/gtk4/prefs.ui:284 resources/ui/gtk4/prefs.ui:313 #: resources/ui/gtk4/prefs.ui:284 resources/ui/gtk4/prefs.ui:313
@@ -729,47 +732,47 @@ msgstr ""
#: resources/ui/adw/prefs.ui:117 resources/ui/adw/prefs.ui:132 #: resources/ui/adw/prefs.ui:117 resources/ui/adw/prefs.ui:132
#: resources/ui/adw/prefs.ui:147 resources/ui/adw/prefs.ui:162 #: resources/ui/adw/prefs.ui:147 resources/ui/adw/prefs.ui:162
msgid "Any" msgid "Any"
msgstr "" msgstr "Bármelyik"
#: resources/ui/gtk4/prefs.ui:244 resources/ui/gtk3/prefs.ui:289 #: resources/ui/gtk4/prefs.ui:244 resources/ui/gtk3/prefs.ui:289
#: resources/ui/adw/prefs.ui:98 #: resources/ui/adw/prefs.ui:98
msgid "Animation Type" msgid "Animation Type"
msgstr "" msgstr "Animációtípus"
#: resources/ui/gtk4/prefs.ui:273 resources/ui/gtk3/prefs.ui:318 #: resources/ui/gtk4/prefs.ui:273 resources/ui/gtk3/prefs.ui:318
#: resources/ui/adw/prefs.ui:113 #: resources/ui/adw/prefs.ui:113
msgid "Window Type" msgid "Window Type"
msgstr "" msgstr "Ablaktípus"
#: resources/ui/gtk4/prefs.ui:302 resources/ui/gtk3/prefs.ui:347 #: resources/ui/gtk4/prefs.ui:302 resources/ui/gtk3/prefs.ui:347
#: resources/ui/adw/prefs.ui:128 #: resources/ui/adw/prefs.ui:128
msgid "Color Scheme" msgid "Color Scheme"
msgstr "" msgstr "Téma"
#: resources/ui/gtk4/prefs.ui:331 resources/ui/gtk3/prefs.ui:376 #: resources/ui/gtk4/prefs.ui:331 resources/ui/gtk3/prefs.ui:376
#: resources/ui/adw/prefs.ui:143 #: resources/ui/adw/prefs.ui:143
msgid "Power Mode" msgid "Power Mode"
msgstr "" msgstr "Energiaforrás módja"
#: resources/ui/gtk4/prefs.ui:360 resources/ui/gtk3/prefs.ui:405 #: resources/ui/gtk4/prefs.ui:360 resources/ui/gtk3/prefs.ui:405
#: resources/ui/adw/prefs.ui:158 #: resources/ui/adw/prefs.ui:158
msgid "Power Profile" msgid "Power Profile"
msgstr "" msgstr "Energiagazdálkodási beállítás"
#: resources/ui/gtk4/prefs.ui:392 resources/ui/gtk3/prefs.ui:437 #: resources/ui/gtk4/prefs.ui:392 resources/ui/gtk3/prefs.ui:437
#: resources/ui/adw/prefs.ui:179 #: resources/ui/adw/prefs.ui:179
msgid "Advanced Profile Options" msgid "Advanced Profile Options"
msgstr "" msgstr "Haladó beállítások"
#: resources/ui/gtk4/prefs.ui:432 resources/ui/gtk3/prefs.ui:477 #: resources/ui/gtk4/prefs.ui:432 resources/ui/gtk3/prefs.ui:477
#: resources/ui/adw/prefs.ui:184 #: resources/ui/adw/prefs.ui:184
msgid "Use this profile even if there are better matching profiles." msgid "Use this profile even if there are better matching profiles."
msgstr "" msgstr "Profil használata akkor is, ha van másik, ami jobban megfelelő lenne."
#: resources/ui/gtk4/prefs.ui:464 resources/ui/gtk3/prefs.ui:509 #: resources/ui/gtk4/prefs.ui:464 resources/ui/gtk3/prefs.ui:509
#: resources/ui/adw/prefs.ui:204 #: resources/ui/adw/prefs.ui:204
msgid "Delete this Profile..." msgid "Delete this Profile..."
msgstr "" msgstr "Profil Törlése..."
#: resources/ui/gtk4/pixelate.ui:69 resources/ui/gtk3/pixelate.ui:90 #: resources/ui/gtk4/pixelate.ui:69 resources/ui/gtk3/pixelate.ui:90
#: resources/ui/adw/pixelate.ui:47 #: resources/ui/adw/pixelate.ui:47
+6 -6
View File
@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: Burn-My-Windows\n" "Project-Id-Version: Burn-My-Windows\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-31 07:30+0200\n" "POT-Creation-Date: 2023-08-31 07:30+0200\n"
"PO-Revision-Date: 2023-08-20 15:51+0000\n" "PO-Revision-Date: 2023-10-19 04:09+0000\n"
"Last-Translator: albanobattistella <albano_battistella@hotmail.com>\n" "Last-Translator: Frankie McEyes <mceyes@protonmail.com>\n"
"Language-Team: Italian <https://hosted.weblate.org/projects/burn-my-windows/" "Language-Team: Italian <https://hosted.weblate.org/projects/burn-my-windows/"
"core/it/>\n" "core/it/>\n"
"Language: it\n" "Language: it\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n" "Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.0-dev\n" "X-Generator: Weblate 5.1\n"
#: src/ProfileManager.js:175 resources/ui/gtk4/prefs.ui:256 #: src/ProfileManager.js:175 resources/ui/gtk4/prefs.ui:256
#: resources/ui/gtk3/prefs.ui:301 resources/ui/adw/prefs.ui:103 #: resources/ui/gtk3/prefs.ui:301 resources/ui/adw/prefs.ui:103
@@ -143,7 +143,7 @@ msgstr "Planare"
#: src/effects/Glitch.js:86 #: src/effects/Glitch.js:86
msgid "Glitch" msgid "Glitch"
msgstr "" msgstr "Glitch"
#: src/effects/Hexagon.js:94 #: src/effects/Hexagon.js:94
msgid "Hexagon" msgid "Hexagon"
@@ -191,7 +191,7 @@ msgstr "Effetto TV"
#: src/effects/TVGlitch.js:87 #: src/effects/TVGlitch.js:87
msgid "TV Glitch" msgid "TV Glitch"
msgstr "" msgstr "Glitch TV"
#: src/effects/Wisps.js:89 #: src/effects/Wisps.js:89
msgid "Wisps" msgid "Wisps"
@@ -282,7 +282,7 @@ msgstr "Donare"
#: resources/ui/common/menus.ui:56 #: resources/ui/common/menus.ui:56
msgid "Open Effect-Profile Directory" msgid "Open Effect-Profile Directory"
msgstr "" msgstr "Apri directory dei profili degli effetti"
#: resources/ui/common/menus.ui:62 #: resources/ui/common/menus.ui:62
msgid "About Burn-My-Windows" msgid "About Burn-My-Windows"
+9 -9
View File
@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: burn-my-windows\n" "Project-Id-Version: burn-my-windows\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-31 07:30+0200\n" "POT-Creation-Date: 2023-08-31 07:30+0200\n"
"PO-Revision-Date: 2023-03-05 17:41+0000\n" "PO-Revision-Date: 2023-09-11 00:58+0000\n"
"Last-Translator: WaldiS <sto@tutanota.de>\n" "Last-Translator: Krzysztof Chorzempa <krzys.chorzempa@gmail.com>\n"
"Language-Team: Polish <https://hosted.weblate.org/projects/burn-my-windows/" "Language-Team: Polish <https://hosted.weblate.org/projects/burn-my-windows/"
"core/pl/>\n" "core/pl/>\n"
"Language: pl\n" "Language: pl\n"
@@ -18,7 +18,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
"|| n%100>=20) ? 1 : 2;\n" "|| n%100>=20) ? 1 : 2;\n"
"X-Generator: Weblate 4.16.2-dev\n" "X-Generator: Weblate 5.0.1-dev\n"
#: src/ProfileManager.js:175 resources/ui/gtk4/prefs.ui:256 #: src/ProfileManager.js:175 resources/ui/gtk4/prefs.ui:256
#: resources/ui/gtk3/prefs.ui:301 resources/ui/adw/prefs.ui:103 #: resources/ui/gtk3/prefs.ui:301 resources/ui/adw/prefs.ui:103
@@ -160,7 +160,7 @@ msgstr "Matrix"
#: src/effects/PaintBrush.js:102 #: src/effects/PaintBrush.js:102
msgid "Paint Brush" msgid "Paint Brush"
msgstr "" msgstr "Pędzel"
#: src/effects/Pixelate.js:74 #: src/effects/Pixelate.js:74
msgid "Pixelate" msgid "Pixelate"
@@ -283,7 +283,7 @@ msgstr "Wspomóż"
#: resources/ui/common/menus.ui:56 #: resources/ui/common/menus.ui:56
msgid "Open Effect-Profile Directory" msgid "Open Effect-Profile Directory"
msgstr "" msgstr "Otwórz ścieżkę z profilami efektów"
#: resources/ui/common/menus.ui:62 #: resources/ui/common/menus.ui:62
msgid "About Burn-My-Windows" msgid "About Burn-My-Windows"
@@ -554,7 +554,7 @@ msgstr "Rozmiar Pikseli"
#: resources/ui/gtk4/paint-brush.ui:69 resources/ui/adw/paint-brush.ui:47 #: resources/ui/gtk4/paint-brush.ui:69 resources/ui/adw/paint-brush.ui:47
msgid "Brush Size" msgid "Brush Size"
msgstr "" msgstr "Rozmiar pędzla"
#: resources/ui/gtk4/trex.ui:69 resources/ui/adw/trex.ui:47 #: resources/ui/gtk4/trex.ui:69 resources/ui/adw/trex.ui:47
msgid "Claw Scratch Scale" msgid "Claw Scratch Scale"
@@ -690,7 +690,7 @@ msgstr "Gradient"
#: resources/ui/gtk4/prefs.ui:91 resources/ui/gtk3/prefs.ui:133 #: resources/ui/gtk4/prefs.ui:91 resources/ui/gtk3/prefs.ui:133
#: resources/ui/adw/prefs.ui:224 #: resources/ui/adw/prefs.ui:224
msgid "Effect Selection" msgid "Effect Selection"
msgstr "" msgstr "Wybór efektu"
#: resources/ui/gtk4/prefs.ui:101 resources/ui/gtk3/prefs.ui:143 #: resources/ui/gtk4/prefs.ui:101 resources/ui/gtk3/prefs.ui:143
#: resources/ui/adw/prefs.ui:225 #: resources/ui/adw/prefs.ui:225
@@ -700,12 +700,12 @@ msgstr "Jeśli wybrano kilka, efekt jest wybierany losowo."
#: resources/ui/gtk4/prefs.ui:118 resources/ui/gtk3/prefs.ui:160 #: resources/ui/gtk4/prefs.ui:118 resources/ui/gtk3/prefs.ui:160
#: resources/ui/adw/prefs.ui:236 #: resources/ui/adw/prefs.ui:236
msgid "All" msgid "All"
msgstr "" msgstr "Wszystkie"
#: resources/ui/gtk4/prefs.ui:124 resources/ui/gtk3/prefs.ui:166 #: resources/ui/gtk4/prefs.ui:124 resources/ui/gtk3/prefs.ui:166
#: resources/ui/adw/prefs.ui:242 #: resources/ui/adw/prefs.ui:242
msgid "None" msgid "None"
msgstr "" msgstr "Żadne"
#: resources/ui/gtk4/prefs.ui:168 resources/ui/gtk3/prefs.ui:208 #: resources/ui/gtk4/prefs.ui:168 resources/ui/gtk3/prefs.ui:208
#: resources/ui/adw/prefs.ui:65 #: resources/ui/adw/prefs.ui:65
+61 -59
View File
@@ -8,90 +8,90 @@ msgstr ""
"Project-Id-Version: burn-my-windows\n" "Project-Id-Version: burn-my-windows\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-31 07:30+0200\n" "POT-Creation-Date: 2023-08-31 07:30+0200\n"
"PO-Revision-Date: 2023-01-11 16:48+0000\n" "PO-Revision-Date: 2023-12-18 19:09+0000\n"
"Last-Translator: ssantos <ssantos@web.de>\n" "Last-Translator: ssantos <ssantos@web.de>\n"
"Language-Team: Portuguese <https://hosted.weblate.org/projects/burn-my-" "Language-Team: Portuguese <https://hosted.weblate.org/projects/"
"windows/core/pt/>\n" "burn-my-windows/core/pt/>\n"
"Language: pt\n" "Language: pt\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n" "Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 4.15.1-dev\n" "X-Generator: Weblate 5.3\n"
#: src/ProfileManager.js:175 resources/ui/gtk4/prefs.ui:256 #: src/ProfileManager.js:175 resources/ui/gtk4/prefs.ui:256
#: resources/ui/gtk3/prefs.ui:301 resources/ui/adw/prefs.ui:103 #: resources/ui/gtk3/prefs.ui:301 resources/ui/adw/prefs.ui:103
msgid "Opening Windows" msgid "Opening Windows"
msgstr "" msgstr "Abrir Janelas"
#: src/ProfileManager.js:176 resources/ui/gtk4/prefs.ui:257 #: src/ProfileManager.js:176 resources/ui/gtk4/prefs.ui:257
#: resources/ui/gtk3/prefs.ui:302 resources/ui/adw/prefs.ui:104 #: resources/ui/gtk3/prefs.ui:302 resources/ui/adw/prefs.ui:104
msgid "Closing Windows" msgid "Closing Windows"
msgstr "" msgstr "Fechar Janelas"
#: src/ProfileManager.js:177 resources/ui/gtk4/prefs.ui:285 #: src/ProfileManager.js:177 resources/ui/gtk4/prefs.ui:285
#: resources/ui/gtk3/prefs.ui:330 resources/ui/adw/prefs.ui:118 #: resources/ui/gtk3/prefs.ui:330 resources/ui/adw/prefs.ui:118
msgid "Normal Windows" msgid "Normal Windows"
msgstr "" msgstr "Janelas Normais"
#: src/ProfileManager.js:178 resources/ui/gtk4/prefs.ui:286 #: src/ProfileManager.js:178 resources/ui/gtk4/prefs.ui:286
#: resources/ui/gtk3/prefs.ui:331 resources/ui/adw/prefs.ui:119 #: resources/ui/gtk3/prefs.ui:331 resources/ui/adw/prefs.ui:119
msgid "Dialog Windows" msgid "Dialog Windows"
msgstr "" msgstr "Janelas de Diálogo"
#: src/ProfileManager.js:179 resources/ui/gtk4/prefs.ui:314 #: src/ProfileManager.js:179 resources/ui/gtk4/prefs.ui:314
#: resources/ui/gtk3/prefs.ui:359 resources/ui/adw/prefs.ui:133 #: resources/ui/gtk3/prefs.ui:359 resources/ui/adw/prefs.ui:133
msgid "Default Color Scheme" msgid "Default Color Scheme"
msgstr "" msgstr "Esquema de Cores Padrão"
#: src/ProfileManager.js:180 resources/ui/gtk4/prefs.ui:315 #: src/ProfileManager.js:180 resources/ui/gtk4/prefs.ui:315
#: resources/ui/gtk3/prefs.ui:360 resources/ui/adw/prefs.ui:134 #: resources/ui/gtk3/prefs.ui:360 resources/ui/adw/prefs.ui:134
msgid "Dark Color Scheme" msgid "Dark Color Scheme"
msgstr "" msgstr "Esquema de Cores Escuras"
#: src/ProfileManager.js:181 resources/ui/gtk4/prefs.ui:343 #: src/ProfileManager.js:181 resources/ui/gtk4/prefs.ui:343
#: resources/ui/gtk3/prefs.ui:388 resources/ui/adw/prefs.ui:148 #: resources/ui/gtk3/prefs.ui:388 resources/ui/adw/prefs.ui:148
msgid "On Battery" msgid "On Battery"
msgstr "" msgstr "Na Pilha"
#: src/ProfileManager.js:182 resources/ui/gtk4/prefs.ui:344 #: src/ProfileManager.js:182 resources/ui/gtk4/prefs.ui:344
#: resources/ui/gtk3/prefs.ui:389 resources/ui/adw/prefs.ui:149 #: resources/ui/gtk3/prefs.ui:389 resources/ui/adw/prefs.ui:149
msgid "Plugged In" msgid "Plugged In"
msgstr "" msgstr "No Carregador"
#: src/ProfileManager.js:183 resources/ui/gtk4/prefs.ui:372 #: src/ProfileManager.js:183 resources/ui/gtk4/prefs.ui:372
#: resources/ui/gtk3/prefs.ui:417 resources/ui/adw/prefs.ui:163 #: resources/ui/gtk3/prefs.ui:417 resources/ui/adw/prefs.ui:163
msgid "Power-Saver Mode" msgid "Power-Saver Mode"
msgstr "" msgstr "Modo Economia de Energia"
#: src/ProfileManager.js:184 resources/ui/gtk4/prefs.ui:373 #: src/ProfileManager.js:184 resources/ui/gtk4/prefs.ui:373
#: resources/ui/gtk3/prefs.ui:418 resources/ui/adw/prefs.ui:164 #: resources/ui/gtk3/prefs.ui:418 resources/ui/adw/prefs.ui:164
msgid "Balanced Mode" msgid "Balanced Mode"
msgstr "" msgstr "Modo Balanceado"
#: src/ProfileManager.js:185 resources/ui/gtk4/prefs.ui:374 #: src/ProfileManager.js:185 resources/ui/gtk4/prefs.ui:374
#: resources/ui/gtk3/prefs.ui:419 resources/ui/adw/prefs.ui:165 #: resources/ui/gtk3/prefs.ui:419 resources/ui/adw/prefs.ui:165
msgid "Performance Mode" msgid "Performance Mode"
msgstr "" msgstr "Modo Performance"
#: src/ProfileManager.js:186 resources/ui/gtk4/prefs.ui:375 #: src/ProfileManager.js:186 resources/ui/gtk4/prefs.ui:375
#: resources/ui/gtk3/prefs.ui:420 resources/ui/adw/prefs.ui:166 #: resources/ui/gtk3/prefs.ui:420 resources/ui/adw/prefs.ui:166
msgid "Power Saver or Balanced" msgid "Power Saver or Balanced"
msgstr "" msgstr "Economia de Energia ou Balanceado"
#: src/ProfileManager.js:187 resources/ui/gtk4/prefs.ui:376 #: src/ProfileManager.js:187 resources/ui/gtk4/prefs.ui:376
#: resources/ui/gtk3/prefs.ui:421 resources/ui/adw/prefs.ui:167 #: resources/ui/gtk3/prefs.ui:421 resources/ui/adw/prefs.ui:167
msgid "Balanced or Performance" msgid "Balanced or Performance"
msgstr "" msgstr "Balanceado ou Performance"
#: src/ProfileManager.js:192 resources/ui/gtk4/prefs.ui:423 #: src/ProfileManager.js:192 resources/ui/gtk4/prefs.ui:423
#: resources/ui/gtk3/prefs.ui:468 resources/ui/adw/prefs.ui:183 #: resources/ui/gtk3/prefs.ui:468 resources/ui/adw/prefs.ui:183
msgid "High Priority" msgid "High Priority"
msgstr "" msgstr "Alta Prioridade"
#: src/ProfileManager.js:198 #: src/ProfileManager.js:198
msgid "Standard Profile" msgid "Standard Profile"
msgstr "" msgstr "Perfil Padrão"
#: src/effects/Apparition.js:78 #: src/effects/Apparition.js:78
msgid "Apparition" msgid "Apparition"
@@ -103,7 +103,7 @@ msgstr "Vidro Quebrado"
#: src/effects/Doom.js:88 #: src/effects/Doom.js:88
msgid "Doom" msgid "Doom"
msgstr "" msgstr "Doom"
#: src/effects/EnergizeA.js:80 #: src/effects/EnergizeA.js:80
msgid "Energize A" msgid "Energize A"
@@ -139,11 +139,11 @@ msgstr "Papai Noel está Vindo"
#: src/effects/Glide.js:78 #: src/effects/Glide.js:78
msgid "Glide" msgid "Glide"
msgstr "" msgstr "Deslizar"
#: src/effects/Glitch.js:86 #: src/effects/Glitch.js:86
msgid "Glitch" msgid "Glitch"
msgstr "" msgstr "Defeito"
#: src/effects/Hexagon.js:94 #: src/effects/Hexagon.js:94
msgid "Hexagon" msgid "Hexagon"
@@ -159,23 +159,23 @@ msgstr "Matrix"
#: src/effects/PaintBrush.js:102 #: src/effects/PaintBrush.js:102
msgid "Paint Brush" msgid "Paint Brush"
msgstr "" msgstr "Pincel"
#: src/effects/Pixelate.js:74 #: src/effects/Pixelate.js:74
msgid "Pixelate" msgid "Pixelate"
msgstr "" msgstr "Pixelizar"
#: src/effects/PixelWheel.js:74 #: src/effects/PixelWheel.js:74
msgid "Pixel Wheel" msgid "Pixel Wheel"
msgstr "" msgstr "Roda Pixelizada"
#: src/effects/PixelWipe.js:101 #: src/effects/PixelWipe.js:101
msgid "Pixel Wipe" msgid "Pixel Wipe"
msgstr "" msgstr "Limpeza de pixels"
#: src/effects/Portal.js:88 #: src/effects/Portal.js:88
msgid "Portal" msgid "Portal"
msgstr "" msgstr "Portal"
#: src/effects/SnapOfDisintegration.js:114 #: src/effects/SnapOfDisintegration.js:114
msgid "Snap of Disintegration" msgid "Snap of Disintegration"
@@ -191,7 +191,7 @@ msgstr "Efeito de TV"
#: src/effects/TVGlitch.js:87 #: src/effects/TVGlitch.js:87
msgid "TV Glitch" msgid "TV Glitch"
msgstr "" msgstr "Defeito na TV"
#: src/effects/Wisps.js:89 #: src/effects/Wisps.js:89
msgid "Wisps" msgid "Wisps"
@@ -199,11 +199,11 @@ msgstr "Faíscas"
#: prefs.js:269 #: prefs.js:269
msgid "Preview this effect" msgid "Preview this effect"
msgstr "" msgstr "Visualizar esse efeito"
#: prefs.js:388 resources/ui/gtk4/prefs.ui:50 resources/ui/gtk3/prefs.ui:86 #: prefs.js:388 resources/ui/gtk4/prefs.ui:50 resources/ui/gtk3/prefs.ui:86
msgid "Burn-My-Windows has been updated!" msgid "Burn-My-Windows has been updated!"
msgstr "" msgstr "Burn-My-Windows foi atualizado!"
#: prefs.js:389 resources/ui/common/menus.ui:17 resources/ui/gtk4/prefs.ui:56 #: prefs.js:389 resources/ui/common/menus.ui:17 resources/ui/gtk4/prefs.ui:56
#: resources/ui/gtk3/prefs.ui:96 #: resources/ui/gtk3/prefs.ui:96
@@ -228,21 +228,23 @@ msgstr "Antigos Patrocinadores"
#: prefs.js:660 #: prefs.js:660
msgid "Delete this Profile?" msgid "Delete this Profile?"
msgstr "" msgstr "Apagar esse Perfil?"
#: prefs.js:661 #: prefs.js:661
msgid "" msgid ""
"The current effect profile with all its effect settings will be permanently " "The current effect profile with all its effect settings will be permanently "
"lost." "lost."
msgstr "" msgstr ""
"O perfil de efeito atual com todas as suas configurações de efeito será "
"perdido permanentemente."
#: prefs.js:664 #: prefs.js:664
msgid "Cancel" msgid "Cancel"
msgstr "" msgstr "Cancelar"
#: prefs.js:669 #: prefs.js:669
msgid "Delete" msgid "Delete"
msgstr "" msgstr "Deletar"
#. Translators: %s will be replaced by the effect's name. #. Translators: %s will be replaced by the effect's name.
#: prefs.js:980 #: prefs.js:980
@@ -260,7 +262,7 @@ msgstr "Visite o Site"
#: resources/ui/common/menus.ui:21 #: resources/ui/common/menus.ui:21
msgid "View Matching Wallpapers" msgid "View Matching Wallpapers"
msgstr "" msgstr "Ver Papéis de Parede Correspondentes"
#: resources/ui/common/menus.ui:27 #: resources/ui/common/menus.ui:27
msgid "Report a Bug" msgid "Report a Bug"
@@ -280,7 +282,7 @@ msgstr "Doê"
#: resources/ui/common/menus.ui:56 #: resources/ui/common/menus.ui:56
msgid "Open Effect-Profile Directory" msgid "Open Effect-Profile Directory"
msgstr "" msgstr "Abrir Diretório Effect-Profile"
#: resources/ui/common/menus.ui:62 #: resources/ui/common/menus.ui:62
msgid "About Burn-My-Windows" msgid "About Burn-My-Windows"
@@ -288,7 +290,7 @@ msgstr "Sobre o Burn-My-Windows"
#: resources/ui/common/menus.ui:73 #: resources/ui/common/menus.ui:73
msgid "Add New Profile..." msgid "Add New Profile..."
msgstr "" msgstr "Adicionar Novo Perfil..."
#: resources/ui/gtk4/broken-glass.ui:22 resources/ui/gtk4/tv-glitch.ui:23 #: resources/ui/gtk4/broken-glass.ui:22 resources/ui/gtk4/tv-glitch.ui:23
#: resources/ui/gtk4/glitch.ui:23 resources/ui/gtk4/matrix.ui:23 #: resources/ui/gtk4/glitch.ui:23 resources/ui/gtk4/matrix.ui:23
@@ -486,7 +488,7 @@ msgstr ""
#: resources/ui/gtk3/tv-glitch.ui:142 resources/ui/gtk3/glitch.ui:142 #: resources/ui/gtk3/tv-glitch.ui:142 resources/ui/gtk3/glitch.ui:142
#: resources/ui/adw/tv-glitch.ui:80 resources/ui/adw/glitch.ui:80 #: resources/ui/adw/tv-glitch.ui:80 resources/ui/adw/glitch.ui:80
msgid "Strength" msgid "Strength"
msgstr "" msgstr "Força"
#: resources/ui/gtk4/tv-glitch.ui:161 resources/ui/gtk4/glitch.ui:161 #: resources/ui/gtk4/tv-glitch.ui:161 resources/ui/gtk4/glitch.ui:161
#: resources/ui/gtk4/fire.ui:138 resources/ui/gtk3/tv-glitch.ui:187 #: resources/ui/gtk4/fire.ui:138 resources/ui/gtk3/tv-glitch.ui:187
@@ -551,7 +553,7 @@ msgstr "Tamanho dos Pixeis"
#: resources/ui/gtk4/paint-brush.ui:69 resources/ui/adw/paint-brush.ui:47 #: resources/ui/gtk4/paint-brush.ui:69 resources/ui/adw/paint-brush.ui:47
msgid "Brush Size" msgid "Brush Size"
msgstr "" msgstr "Tamanho do Pincel"
#: resources/ui/gtk4/trex.ui:69 resources/ui/adw/trex.ui:47 #: resources/ui/gtk4/trex.ui:69 resources/ui/adw/trex.ui:47
msgid "Claw Scratch Scale" msgid "Claw Scratch Scale"
@@ -577,17 +579,17 @@ msgstr "Contagem de Raios"
#: resources/ui/gtk4/glide.ui:115 resources/ui/gtk3/glide.ui:149 #: resources/ui/gtk4/glide.ui:115 resources/ui/gtk3/glide.ui:149
#: resources/ui/adw/glide.ui:80 #: resources/ui/adw/glide.ui:80
msgid "Squish" msgid "Squish"
msgstr "" msgstr "Achatamento"
#: resources/ui/gtk4/glide.ui:161 resources/ui/gtk3/glide.ui:194 #: resources/ui/gtk4/glide.ui:161 resources/ui/gtk3/glide.ui:194
#: resources/ui/adw/glide.ui:113 #: resources/ui/adw/glide.ui:113
msgid "Tilt" msgid "Tilt"
msgstr "" msgstr "Inclinação"
#: resources/ui/gtk4/glide.ui:207 resources/ui/gtk3/glide.ui:239 #: resources/ui/gtk4/glide.ui:207 resources/ui/gtk3/glide.ui:239
#: resources/ui/adw/glide.ui:146 #: resources/ui/adw/glide.ui:146
msgid "Shift" msgid "Shift"
msgstr "" msgstr "Turno"
#: resources/ui/gtk4/apparition.ui:114 resources/ui/gtk3/apparition.ui:149 #: resources/ui/gtk4/apparition.ui:114 resources/ui/gtk3/apparition.ui:149
#: resources/ui/adw/apparition.ui:81 #: resources/ui/adw/apparition.ui:81
@@ -607,17 +609,17 @@ msgstr "Intensidade da Sucção"
#: resources/ui/gtk4/portal.ui:69 resources/ui/gtk3/portal.ui:142 #: resources/ui/gtk4/portal.ui:69 resources/ui/gtk3/portal.ui:142
#: resources/ui/adw/portal.ui:80 #: resources/ui/adw/portal.ui:80
msgid "Whirling" msgid "Whirling"
msgstr "" msgstr "Girando"
#: resources/ui/gtk4/portal.ui:115 resources/ui/gtk3/portal.ui:97 #: resources/ui/gtk4/portal.ui:115 resources/ui/gtk3/portal.ui:97
#: resources/ui/adw/portal.ui:47 #: resources/ui/adw/portal.ui:47
msgid "Rotation Speed" msgid "Rotation Speed"
msgstr "" msgstr "Velocidade de Rotação"
#: resources/ui/gtk4/portal.ui:161 resources/ui/gtk3/portal.ui:187 #: resources/ui/gtk4/portal.ui:161 resources/ui/gtk3/portal.ui:187
#: resources/ui/adw/portal.ui:113 #: resources/ui/adw/portal.ui:113
msgid "Details" msgid "Details"
msgstr "" msgstr "Pormenores"
#: resources/ui/gtk4/incinerate.ui:115 resources/ui/gtk3/incinerate.ui:135 #: resources/ui/gtk4/incinerate.ui:115 resources/ui/gtk3/incinerate.ui:135
#: resources/ui/adw/incinerate.ui:80 #: resources/ui/adw/incinerate.ui:80
@@ -687,7 +689,7 @@ msgstr "Gradiente"
#: resources/ui/gtk4/prefs.ui:91 resources/ui/gtk3/prefs.ui:133 #: resources/ui/gtk4/prefs.ui:91 resources/ui/gtk3/prefs.ui:133
#: resources/ui/adw/prefs.ui:224 #: resources/ui/adw/prefs.ui:224
msgid "Effect Selection" msgid "Effect Selection"
msgstr "" msgstr "Seleção de Efeitos"
#: resources/ui/gtk4/prefs.ui:101 resources/ui/gtk3/prefs.ui:143 #: resources/ui/gtk4/prefs.ui:101 resources/ui/gtk3/prefs.ui:143
#: resources/ui/adw/prefs.ui:225 #: resources/ui/adw/prefs.ui:225
@@ -697,27 +699,27 @@ msgstr "Se mais de uma estiver selecionada, uma aleatória será escolhida."
#: resources/ui/gtk4/prefs.ui:118 resources/ui/gtk3/prefs.ui:160 #: resources/ui/gtk4/prefs.ui:118 resources/ui/gtk3/prefs.ui:160
#: resources/ui/adw/prefs.ui:236 #: resources/ui/adw/prefs.ui:236
msgid "All" msgid "All"
msgstr "" msgstr "Todos"
#: resources/ui/gtk4/prefs.ui:124 resources/ui/gtk3/prefs.ui:166 #: resources/ui/gtk4/prefs.ui:124 resources/ui/gtk3/prefs.ui:166
#: resources/ui/adw/prefs.ui:242 #: resources/ui/adw/prefs.ui:242
msgid "None" msgid "None"
msgstr "" msgstr "Nenhum"
#: resources/ui/gtk4/prefs.ui:168 resources/ui/gtk3/prefs.ui:208 #: resources/ui/gtk4/prefs.ui:168 resources/ui/gtk3/prefs.ui:208
#: resources/ui/adw/prefs.ui:65 #: resources/ui/adw/prefs.ui:65
msgid "Effect Profile Constraints" msgid "Effect Profile Constraints"
msgstr "" msgstr "Restrições do Perfil de Efeito"
#: resources/ui/gtk4/prefs.ui:178 resources/ui/gtk3/prefs.ui:218 #: resources/ui/gtk4/prefs.ui:178 resources/ui/gtk3/prefs.ui:218
#: resources/ui/adw/prefs.ui:66 #: resources/ui/adw/prefs.ui:66
msgid "Define when the current effect settings should be used." msgid "Define when the current effect settings should be used."
msgstr "" msgstr "Define quando as configurações de efeito atuais devem ser usadas."
#: resources/ui/gtk4/prefs.ui:202 resources/ui/gtk3/prefs.ui:242 #: resources/ui/gtk4/prefs.ui:202 resources/ui/gtk3/prefs.ui:242
#: resources/ui/adw/prefs.ui:70 #: resources/ui/adw/prefs.ui:70
msgid "Application" msgid "Application"
msgstr "" msgstr "Aplicação"
#: resources/ui/gtk4/prefs.ui:220 resources/ui/gtk4/prefs.ui:255 #: resources/ui/gtk4/prefs.ui:220 resources/ui/gtk4/prefs.ui:255
#: resources/ui/gtk4/prefs.ui:284 resources/ui/gtk4/prefs.ui:313 #: resources/ui/gtk4/prefs.ui:284 resources/ui/gtk4/prefs.ui:313
@@ -729,47 +731,47 @@ msgstr ""
#: resources/ui/adw/prefs.ui:117 resources/ui/adw/prefs.ui:132 #: resources/ui/adw/prefs.ui:117 resources/ui/adw/prefs.ui:132
#: resources/ui/adw/prefs.ui:147 resources/ui/adw/prefs.ui:162 #: resources/ui/adw/prefs.ui:147 resources/ui/adw/prefs.ui:162
msgid "Any" msgid "Any"
msgstr "" msgstr "Qualquer"
#: resources/ui/gtk4/prefs.ui:244 resources/ui/gtk3/prefs.ui:289 #: resources/ui/gtk4/prefs.ui:244 resources/ui/gtk3/prefs.ui:289
#: resources/ui/adw/prefs.ui:98 #: resources/ui/adw/prefs.ui:98
msgid "Animation Type" msgid "Animation Type"
msgstr "" msgstr "Tipo de Animação"
#: resources/ui/gtk4/prefs.ui:273 resources/ui/gtk3/prefs.ui:318 #: resources/ui/gtk4/prefs.ui:273 resources/ui/gtk3/prefs.ui:318
#: resources/ui/adw/prefs.ui:113 #: resources/ui/adw/prefs.ui:113
msgid "Window Type" msgid "Window Type"
msgstr "" msgstr "Tipo de Janela"
#: resources/ui/gtk4/prefs.ui:302 resources/ui/gtk3/prefs.ui:347 #: resources/ui/gtk4/prefs.ui:302 resources/ui/gtk3/prefs.ui:347
#: resources/ui/adw/prefs.ui:128 #: resources/ui/adw/prefs.ui:128
msgid "Color Scheme" msgid "Color Scheme"
msgstr "" msgstr "Esquema de Cores"
#: resources/ui/gtk4/prefs.ui:331 resources/ui/gtk3/prefs.ui:376 #: resources/ui/gtk4/prefs.ui:331 resources/ui/gtk3/prefs.ui:376
#: resources/ui/adw/prefs.ui:143 #: resources/ui/adw/prefs.ui:143
msgid "Power Mode" msgid "Power Mode"
msgstr "" msgstr "Modo de Energia"
#: resources/ui/gtk4/prefs.ui:360 resources/ui/gtk3/prefs.ui:405 #: resources/ui/gtk4/prefs.ui:360 resources/ui/gtk3/prefs.ui:405
#: resources/ui/adw/prefs.ui:158 #: resources/ui/adw/prefs.ui:158
msgid "Power Profile" msgid "Power Profile"
msgstr "" msgstr "Perfil de Energia"
#: resources/ui/gtk4/prefs.ui:392 resources/ui/gtk3/prefs.ui:437 #: resources/ui/gtk4/prefs.ui:392 resources/ui/gtk3/prefs.ui:437
#: resources/ui/adw/prefs.ui:179 #: resources/ui/adw/prefs.ui:179
msgid "Advanced Profile Options" msgid "Advanced Profile Options"
msgstr "" msgstr "Opções Avançadas de Perfil"
#: resources/ui/gtk4/prefs.ui:432 resources/ui/gtk3/prefs.ui:477 #: resources/ui/gtk4/prefs.ui:432 resources/ui/gtk3/prefs.ui:477
#: resources/ui/adw/prefs.ui:184 #: resources/ui/adw/prefs.ui:184
msgid "Use this profile even if there are better matching profiles." msgid "Use this profile even if there are better matching profiles."
msgstr "" msgstr "Use esse perfil mesmo que haja perfis de correspondência melhores."
#: resources/ui/gtk4/prefs.ui:464 resources/ui/gtk3/prefs.ui:509 #: resources/ui/gtk4/prefs.ui:464 resources/ui/gtk3/prefs.ui:509
#: resources/ui/adw/prefs.ui:204 #: resources/ui/adw/prefs.ui:204
msgid "Delete this Profile..." msgid "Delete this Profile..."
msgstr "" msgstr "Apagar este Perfil..."
#: resources/ui/gtk4/pixelate.ui:69 resources/ui/gtk3/pixelate.ui:90 #: resources/ui/gtk4/pixelate.ui:69 resources/ui/gtk3/pixelate.ui:90
#: resources/ui/adw/pixelate.ui:47 #: resources/ui/adw/pixelate.ui:47
+27 -28
View File
@@ -8,17 +8,16 @@ msgstr ""
"Project-Id-Version: burn-my-windows\n" "Project-Id-Version: burn-my-windows\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-31 07:30+0200\n" "POT-Creation-Date: 2023-08-31 07:30+0200\n"
"PO-Revision-Date: 2023-08-31 03:58+0000\n" "PO-Revision-Date: 2023-11-13 04:01+0000\n"
"Last-Translator: Fernando Lopes <118869201+plasmus777@users.noreply.github." "Last-Translator: Gustavo <gutojusto22@gmail.com>\n"
"com>\n" "Language-Team: Portuguese (Brazil) <https://hosted.weblate.org/projects/"
"Language-Team: Portuguese (Brazil) <https://hosted.weblate.org/projects/burn-" "burn-my-windows/core/pt_BR/>\n"
"my-windows/core/pt_BR/>\n"
"Language: pt_BR\n" "Language: pt_BR\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n" "Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 5.0.1-dev\n" "X-Generator: Weblate 5.2-dev\n"
#: src/ProfileManager.js:175 resources/ui/gtk4/prefs.ui:256 #: src/ProfileManager.js:175 resources/ui/gtk4/prefs.ui:256
#: resources/ui/gtk3/prefs.ui:301 resources/ui/adw/prefs.ui:103 #: resources/ui/gtk3/prefs.ui:301 resources/ui/adw/prefs.ui:103
@@ -38,61 +37,61 @@ msgstr "Janelas Normais"
#: src/ProfileManager.js:178 resources/ui/gtk4/prefs.ui:286 #: src/ProfileManager.js:178 resources/ui/gtk4/prefs.ui:286
#: resources/ui/gtk3/prefs.ui:331 resources/ui/adw/prefs.ui:119 #: resources/ui/gtk3/prefs.ui:331 resources/ui/adw/prefs.ui:119
msgid "Dialog Windows" msgid "Dialog Windows"
msgstr "Dialago de Janelas" msgstr "Janelas de Diálogo"
#: src/ProfileManager.js:179 resources/ui/gtk4/prefs.ui:314 #: src/ProfileManager.js:179 resources/ui/gtk4/prefs.ui:314
#: resources/ui/gtk3/prefs.ui:359 resources/ui/adw/prefs.ui:133 #: resources/ui/gtk3/prefs.ui:359 resources/ui/adw/prefs.ui:133
msgid "Default Color Scheme" msgid "Default Color Scheme"
msgstr "Esquema de cores padrão" msgstr "Esquema de Cores Padrão"
#: src/ProfileManager.js:180 resources/ui/gtk4/prefs.ui:315 #: src/ProfileManager.js:180 resources/ui/gtk4/prefs.ui:315
#: resources/ui/gtk3/prefs.ui:360 resources/ui/adw/prefs.ui:134 #: resources/ui/gtk3/prefs.ui:360 resources/ui/adw/prefs.ui:134
msgid "Dark Color Scheme" msgid "Dark Color Scheme"
msgstr "esquema de cores escuras" msgstr "Esquema de Cores Escuras"
#: src/ProfileManager.js:181 resources/ui/gtk4/prefs.ui:343 #: src/ProfileManager.js:181 resources/ui/gtk4/prefs.ui:343
#: resources/ui/gtk3/prefs.ui:388 resources/ui/adw/prefs.ui:148 #: resources/ui/gtk3/prefs.ui:388 resources/ui/adw/prefs.ui:148
msgid "On Battery" msgid "On Battery"
msgstr "na bateria" msgstr "Na Bateria"
#: src/ProfileManager.js:182 resources/ui/gtk4/prefs.ui:344 #: src/ProfileManager.js:182 resources/ui/gtk4/prefs.ui:344
#: resources/ui/gtk3/prefs.ui:389 resources/ui/adw/prefs.ui:149 #: resources/ui/gtk3/prefs.ui:389 resources/ui/adw/prefs.ui:149
msgid "Plugged In" msgid "Plugged In"
msgstr "No carregador" msgstr "No Carregador"
#: src/ProfileManager.js:183 resources/ui/gtk4/prefs.ui:372 #: src/ProfileManager.js:183 resources/ui/gtk4/prefs.ui:372
#: resources/ui/gtk3/prefs.ui:417 resources/ui/adw/prefs.ui:163 #: resources/ui/gtk3/prefs.ui:417 resources/ui/adw/prefs.ui:163
msgid "Power-Saver Mode" msgid "Power-Saver Mode"
msgstr "Modo economia de energia" msgstr "Modo Economia de Energia"
#: src/ProfileManager.js:184 resources/ui/gtk4/prefs.ui:373 #: src/ProfileManager.js:184 resources/ui/gtk4/prefs.ui:373
#: resources/ui/gtk3/prefs.ui:418 resources/ui/adw/prefs.ui:164 #: resources/ui/gtk3/prefs.ui:418 resources/ui/adw/prefs.ui:164
msgid "Balanced Mode" msgid "Balanced Mode"
msgstr "Modo balanceado" msgstr "Modo Balanceado"
#: src/ProfileManager.js:185 resources/ui/gtk4/prefs.ui:374 #: src/ProfileManager.js:185 resources/ui/gtk4/prefs.ui:374
#: resources/ui/gtk3/prefs.ui:419 resources/ui/adw/prefs.ui:165 #: resources/ui/gtk3/prefs.ui:419 resources/ui/adw/prefs.ui:165
msgid "Performance Mode" msgid "Performance Mode"
msgstr "Modo performance" msgstr "Modo Performance"
#: src/ProfileManager.js:186 resources/ui/gtk4/prefs.ui:375 #: src/ProfileManager.js:186 resources/ui/gtk4/prefs.ui:375
#: resources/ui/gtk3/prefs.ui:420 resources/ui/adw/prefs.ui:166 #: resources/ui/gtk3/prefs.ui:420 resources/ui/adw/prefs.ui:166
msgid "Power Saver or Balanced" msgid "Power Saver or Balanced"
msgstr "Economia de energia ou balanceado" msgstr "Economia de Energia ou Balanceado"
#: src/ProfileManager.js:187 resources/ui/gtk4/prefs.ui:376 #: src/ProfileManager.js:187 resources/ui/gtk4/prefs.ui:376
#: resources/ui/gtk3/prefs.ui:421 resources/ui/adw/prefs.ui:167 #: resources/ui/gtk3/prefs.ui:421 resources/ui/adw/prefs.ui:167
msgid "Balanced or Performance" msgid "Balanced or Performance"
msgstr "Balanceado ou performance" msgstr "Balanceado ou Performance"
#: src/ProfileManager.js:192 resources/ui/gtk4/prefs.ui:423 #: src/ProfileManager.js:192 resources/ui/gtk4/prefs.ui:423
#: resources/ui/gtk3/prefs.ui:468 resources/ui/adw/prefs.ui:183 #: resources/ui/gtk3/prefs.ui:468 resources/ui/adw/prefs.ui:183
msgid "High Priority" msgid "High Priority"
msgstr "Alta prioridade" msgstr "Alta Prioridade"
#: src/ProfileManager.js:198 #: src/ProfileManager.js:198
msgid "Standard Profile" msgid "Standard Profile"
msgstr "Perfil padrão" msgstr "Perfil Padrão"
#: src/effects/Apparition.js:78 #: src/effects/Apparition.js:78
msgid "Apparition" msgid "Apparition"
@@ -128,7 +127,7 @@ msgstr "Fogo Do Inferno"
#: src/effects/Fire.js:174 #: src/effects/Fire.js:174
msgid "Dark and Smutty" msgid "Dark and Smutty"
msgstr "Escuro e enferrujado" msgstr "Escuro e Enferrujado"
#: src/effects/Fire.js:184 #: src/effects/Fire.js:184
msgid "Cold Breeze" msgid "Cold Breeze"
@@ -168,7 +167,7 @@ msgstr "Pixelizar"
#: src/effects/PixelWheel.js:74 #: src/effects/PixelWheel.js:74
msgid "Pixel Wheel" msgid "Pixel Wheel"
msgstr "Roda pixelizada" msgstr "Roda Pixelizada"
#: src/effects/PixelWipe.js:101 #: src/effects/PixelWipe.js:101
msgid "Pixel Wipe" msgid "Pixel Wipe"
@@ -204,12 +203,12 @@ msgstr "Visualizar esse efeito"
#: prefs.js:388 resources/ui/gtk4/prefs.ui:50 resources/ui/gtk3/prefs.ui:86 #: prefs.js:388 resources/ui/gtk4/prefs.ui:50 resources/ui/gtk3/prefs.ui:86
msgid "Burn-My-Windows has been updated!" msgid "Burn-My-Windows has been updated!"
msgstr "Burn-My-Windows foi atualizada!" msgstr "Burn-My-Windows foi atualizado!"
#: prefs.js:389 resources/ui/common/menus.ui:17 resources/ui/gtk4/prefs.ui:56 #: prefs.js:389 resources/ui/common/menus.ui:17 resources/ui/gtk4/prefs.ui:56
#: resources/ui/gtk3/prefs.ui:96 #: resources/ui/gtk3/prefs.ui:96
msgid "View Changelog" msgid "View Changelog"
msgstr "Veja as alterações" msgstr "Veja as Alterações"
#: prefs.js:571 prefs.js:603 #: prefs.js:571 prefs.js:603
msgid "Gold Sponsors" msgid "Gold Sponsors"
@@ -263,7 +262,7 @@ msgstr "Visite a Homepage"
#: resources/ui/common/menus.ui:21 #: resources/ui/common/menus.ui:21
msgid "View Matching Wallpapers" msgid "View Matching Wallpapers"
msgstr "Ver papéis de parede correspondentes" msgstr "Ver Papéis de Parede Correspondentes"
#: resources/ui/common/menus.ui:27 #: resources/ui/common/menus.ui:27
msgid "Report a Bug" msgid "Report a Bug"
@@ -271,7 +270,7 @@ msgstr "Reportar um Erro"
#: resources/ui/common/menus.ui:31 #: resources/ui/common/menus.ui:31
msgid "Create an Effect" msgid "Create an Effect"
msgstr "Criar um efeito" msgstr "Criar um Efeito"
#: resources/ui/common/menus.ui:35 #: resources/ui/common/menus.ui:35
msgid "Translate" msgid "Translate"
@@ -475,7 +474,7 @@ msgstr "Força do Golpe"
#: resources/ui/gtk4/broken-glass.ui:210 resources/ui/adw/broken-glass.ui:147 #: resources/ui/gtk4/broken-glass.ui:210 resources/ui/adw/broken-glass.ui:147
msgid "Shatter From Pointer Location" msgid "Shatter From Pointer Location"
msgstr "Partir do ponteiro do mouse" msgstr "Quebrar Partindo do Ponteiro do Mouse"
#: resources/ui/gtk4/broken-glass.ui:219 resources/ui/adw/broken-glass.ui:148 #: resources/ui/gtk4/broken-glass.ui:219 resources/ui/adw/broken-glass.ui:148
msgid "" msgid ""
@@ -531,7 +530,7 @@ msgstr "Cor da Trilha"
#: resources/ui/gtk4/matrix.ui:244 resources/ui/adw/matrix.ui:171 #: resources/ui/gtk4/matrix.ui:244 resources/ui/adw/matrix.ui:171
msgid "Tip Color" msgid "Tip Color"
msgstr "Cor da ponta" msgstr "Cor da Ponta"
#: resources/ui/gtk4/doom.ui:68 resources/ui/gtk3/doom.ui:97 #: resources/ui/gtk4/doom.ui:68 resources/ui/gtk3/doom.ui:97
#: resources/ui/adw/doom.ui:47 #: resources/ui/adw/doom.ui:47
@@ -600,12 +599,12 @@ msgstr "Intensidade do Giro"
#: resources/ui/gtk4/apparition.ui:160 resources/ui/gtk3/apparition.ui:194 #: resources/ui/gtk4/apparition.ui:160 resources/ui/gtk3/apparition.ui:194
#: resources/ui/adw/apparition.ui:114 #: resources/ui/adw/apparition.ui:114
msgid "Shake Intensity" msgid "Shake Intensity"
msgstr "Intensidade de Agitação" msgstr "Intensidade da Agitação"
#: resources/ui/gtk4/apparition.ui:206 resources/ui/gtk3/apparition.ui:239 #: resources/ui/gtk4/apparition.ui:206 resources/ui/gtk3/apparition.ui:239
#: resources/ui/adw/apparition.ui:147 #: resources/ui/adw/apparition.ui:147
msgid "Suction Intensity" msgid "Suction Intensity"
msgstr "Intensidade de Sucção" msgstr "Intensidade da Sucção"
#: resources/ui/gtk4/portal.ui:69 resources/ui/gtk3/portal.ui:142 #: resources/ui/gtk4/portal.ui:69 resources/ui/gtk3/portal.ui:142
#: resources/ui/adw/portal.ui:80 #: resources/ui/adw/portal.ui:80
+8 -8
View File
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: burn-my-windows\n" "Project-Id-Version: burn-my-windows\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-31 07:30+0200\n" "POT-Creation-Date: 2023-08-31 07:30+0200\n"
"PO-Revision-Date: 2023-04-07 05:50+0000\n" "PO-Revision-Date: 2023-12-05 08:08+0000\n"
"Last-Translator: SoftExpert <softexpert@gmail.com>\n" "Last-Translator: SoftExpert <softexpert@gmail.com>\n"
"Language-Team: Romanian <https://hosted.weblate.org/projects/burn-my-windows/" "Language-Team: Romanian <https://hosted.weblate.org/projects/burn-my-windows/"
"core/ro/>\n" "core/ro/>\n"
@@ -18,7 +18,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " "Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < "
"20)) ? 1 : 2;\n" "20)) ? 1 : 2;\n"
"X-Generator: Weblate 4.17-dev\n" "X-Generator: Weblate 5.3-dev\n"
#: src/ProfileManager.js:175 resources/ui/gtk4/prefs.ui:256 #: src/ProfileManager.js:175 resources/ui/gtk4/prefs.ui:256
#: resources/ui/gtk3/prefs.ui:301 resources/ui/adw/prefs.ui:103 #: resources/ui/gtk3/prefs.ui:301 resources/ui/adw/prefs.ui:103
@@ -160,7 +160,7 @@ msgstr "Matrix"
#: src/effects/PaintBrush.js:102 #: src/effects/PaintBrush.js:102
msgid "Paint Brush" msgid "Paint Brush"
msgstr "" msgstr "Pensulă"
#: src/effects/Pixelate.js:74 #: src/effects/Pixelate.js:74
msgid "Pixelate" msgid "Pixelate"
@@ -282,7 +282,7 @@ msgstr "Donează"
#: resources/ui/common/menus.ui:56 #: resources/ui/common/menus.ui:56
msgid "Open Effect-Profile Directory" msgid "Open Effect-Profile Directory"
msgstr "" msgstr "Deschide directorul cu profilul efectului"
#: resources/ui/common/menus.ui:62 #: resources/ui/common/menus.ui:62
msgid "About Burn-My-Windows" msgid "About Burn-My-Windows"
@@ -553,7 +553,7 @@ msgstr "Dimensiunea pixelului"
#: resources/ui/gtk4/paint-brush.ui:69 resources/ui/adw/paint-brush.ui:47 #: resources/ui/gtk4/paint-brush.ui:69 resources/ui/adw/paint-brush.ui:47
msgid "Brush Size" msgid "Brush Size"
msgstr "" msgstr "Dimensiune pensulă"
#: resources/ui/gtk4/trex.ui:69 resources/ui/adw/trex.ui:47 #: resources/ui/gtk4/trex.ui:69 resources/ui/adw/trex.ui:47
msgid "Claw Scratch Scale" msgid "Claw Scratch Scale"
@@ -691,7 +691,7 @@ msgstr "Gradiente"
#: resources/ui/gtk4/prefs.ui:91 resources/ui/gtk3/prefs.ui:133 #: resources/ui/gtk4/prefs.ui:91 resources/ui/gtk3/prefs.ui:133
#: resources/ui/adw/prefs.ui:224 #: resources/ui/adw/prefs.ui:224
msgid "Effect Selection" msgid "Effect Selection"
msgstr "" msgstr "Selectare de efect"
#: resources/ui/gtk4/prefs.ui:101 resources/ui/gtk3/prefs.ui:143 #: resources/ui/gtk4/prefs.ui:101 resources/ui/gtk3/prefs.ui:143
#: resources/ui/adw/prefs.ui:225 #: resources/ui/adw/prefs.ui:225
@@ -702,12 +702,12 @@ msgstr ""
#: resources/ui/gtk4/prefs.ui:118 resources/ui/gtk3/prefs.ui:160 #: resources/ui/gtk4/prefs.ui:118 resources/ui/gtk3/prefs.ui:160
#: resources/ui/adw/prefs.ui:236 #: resources/ui/adw/prefs.ui:236
msgid "All" msgid "All"
msgstr "" msgstr "Toate"
#: resources/ui/gtk4/prefs.ui:124 resources/ui/gtk3/prefs.ui:166 #: resources/ui/gtk4/prefs.ui:124 resources/ui/gtk3/prefs.ui:166
#: resources/ui/adw/prefs.ui:242 #: resources/ui/adw/prefs.ui:242
msgid "None" msgid "None"
msgstr "" msgstr "Nici unul"
#: resources/ui/gtk4/prefs.ui:168 resources/ui/gtk3/prefs.ui:208 #: resources/ui/gtk4/prefs.ui:168 resources/ui/gtk3/prefs.ui:208
#: resources/ui/adw/prefs.ui:65 #: resources/ui/adw/prefs.ui:65
+9 -9
View File
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: burn-my-windows\n" "Project-Id-Version: burn-my-windows\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-31 07:30+0200\n" "POT-Creation-Date: 2023-08-31 07:30+0200\n"
"PO-Revision-Date: 2023-08-10 18:48+0000\n" "PO-Revision-Date: 2023-10-06 22:11+0000\n"
"Last-Translator: Milan Šalka <salka.milan@googlemail.com>\n" "Last-Translator: Milan Šalka <salka.milan@googlemail.com>\n"
"Language-Team: Slovak <https://hosted.weblate.org/projects/burn-my-windows/" "Language-Team: Slovak <https://hosted.weblate.org/projects/burn-my-windows/"
"core/sk/>\n" "core/sk/>\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
"X-Generator: Weblate 5.0-dev\n" "X-Generator: Weblate 5.1-dev\n"
#: src/ProfileManager.js:175 resources/ui/gtk4/prefs.ui:256 #: src/ProfileManager.js:175 resources/ui/gtk4/prefs.ui:256
#: resources/ui/gtk3/prefs.ui:301 resources/ui/adw/prefs.ui:103 #: resources/ui/gtk3/prefs.ui:301 resources/ui/adw/prefs.ui:103
@@ -103,7 +103,7 @@ msgstr "Črepiny"
#: src/effects/Doom.js:88 #: src/effects/Doom.js:88
msgid "Doom" msgid "Doom"
msgstr "Doom" msgstr "Všeobecný"
#: src/effects/EnergizeA.js:80 #: src/effects/EnergizeA.js:80
msgid "Energize A" msgid "Energize A"
@@ -282,7 +282,7 @@ msgstr "Prispieť"
#: resources/ui/common/menus.ui:56 #: resources/ui/common/menus.ui:56
msgid "Open Effect-Profile Directory" msgid "Open Effect-Profile Directory"
msgstr "" msgstr "Otvoriť Effect-Profile adresár"
#: resources/ui/common/menus.ui:62 #: resources/ui/common/menus.ui:62
msgid "About Burn-My-Windows" msgid "About Burn-My-Windows"
@@ -533,12 +533,12 @@ msgstr "Farba špicu"
#: resources/ui/gtk4/doom.ui:68 resources/ui/gtk3/doom.ui:97 #: resources/ui/gtk4/doom.ui:68 resources/ui/gtk3/doom.ui:97
#: resources/ui/adw/doom.ui:47 #: resources/ui/adw/doom.ui:47
msgid "Horizontal Scale" msgid "Horizontal Scale"
msgstr "Vodorovná mierka" msgstr "Horizontálna mierka"
#: resources/ui/gtk4/doom.ui:114 resources/ui/gtk3/doom.ui:142 #: resources/ui/gtk4/doom.ui:114 resources/ui/gtk3/doom.ui:142
#: resources/ui/adw/doom.ui:80 #: resources/ui/adw/doom.ui:80
msgid "Vertical Scale" msgid "Vertical Scale"
msgstr "Vodorovná mierka" msgstr "Vertikálna mierka"
#: resources/ui/gtk4/doom.ui:160 resources/ui/gtk4/pixel-wheel.ui:115 #: resources/ui/gtk4/doom.ui:160 resources/ui/gtk4/pixel-wheel.ui:115
#: resources/ui/gtk4/pixel-wipe.ui:69 resources/ui/gtk4/pixelate.ui:115 #: resources/ui/gtk4/pixel-wipe.ui:69 resources/ui/gtk4/pixelate.ui:115
@@ -687,7 +687,7 @@ msgstr "Prechod"
#: resources/ui/gtk4/prefs.ui:91 resources/ui/gtk3/prefs.ui:133 #: resources/ui/gtk4/prefs.ui:91 resources/ui/gtk3/prefs.ui:133
#: resources/ui/adw/prefs.ui:224 #: resources/ui/adw/prefs.ui:224
msgid "Effect Selection" msgid "Effect Selection"
msgstr "" msgstr "Výber efektov"
#: resources/ui/gtk4/prefs.ui:101 resources/ui/gtk3/prefs.ui:143 #: resources/ui/gtk4/prefs.ui:101 resources/ui/gtk3/prefs.ui:143
#: resources/ui/adw/prefs.ui:225 #: resources/ui/adw/prefs.ui:225
@@ -697,12 +697,12 @@ msgstr "Ak ich vyberiete viac, budú sa náhodne striedať."
#: resources/ui/gtk4/prefs.ui:118 resources/ui/gtk3/prefs.ui:160 #: resources/ui/gtk4/prefs.ui:118 resources/ui/gtk3/prefs.ui:160
#: resources/ui/adw/prefs.ui:236 #: resources/ui/adw/prefs.ui:236
msgid "All" msgid "All"
msgstr "" msgstr "Všetko"
#: resources/ui/gtk4/prefs.ui:124 resources/ui/gtk3/prefs.ui:166 #: resources/ui/gtk4/prefs.ui:124 resources/ui/gtk3/prefs.ui:166
#: resources/ui/adw/prefs.ui:242 #: resources/ui/adw/prefs.ui:242
msgid "None" msgid "None"
msgstr "" msgstr "Žiadna"
#: resources/ui/gtk4/prefs.ui:168 resources/ui/gtk3/prefs.ui:208 #: resources/ui/gtk4/prefs.ui:168 resources/ui/gtk3/prefs.ui:208
#: resources/ui/adw/prefs.ui:65 #: resources/ui/adw/prefs.ui:65
+4 -4
View File
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: burn-my-windows\n" "Project-Id-Version: burn-my-windows\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-31 07:30+0200\n" "POT-Creation-Date: 2023-08-31 07:30+0200\n"
"PO-Revision-Date: 2022-08-08 14:16+0000\n" "PO-Revision-Date: 2024-02-23 09:01+0000\n"
"Last-Translator: Kristoffer Grundström <swedishsailfishosuser@tutanota.com>\n" "Last-Translator: Kristoffer Grundström <swedishsailfishosuser@tutanota.com>\n"
"Language-Team: Swedish <https://hosted.weblate.org/projects/burn-my-windows/" "Language-Team: Swedish <https://hosted.weblate.org/projects/burn-my-windows/"
"core/sv/>\n" "core/sv/>\n"
@@ -17,12 +17,12 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n" "Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.14-dev\n" "X-Generator: Weblate 5.5-dev\n"
#: src/ProfileManager.js:175 resources/ui/gtk4/prefs.ui:256 #: src/ProfileManager.js:175 resources/ui/gtk4/prefs.ui:256
#: resources/ui/gtk3/prefs.ui:301 resources/ui/adw/prefs.ui:103 #: resources/ui/gtk3/prefs.ui:301 resources/ui/adw/prefs.ui:103
msgid "Opening Windows" msgid "Opening Windows"
msgstr "" msgstr "Öppnar fönster"
#: src/ProfileManager.js:176 resources/ui/gtk4/prefs.ui:257 #: src/ProfileManager.js:176 resources/ui/gtk4/prefs.ui:257
#: resources/ui/gtk3/prefs.ui:302 resources/ui/adw/prefs.ui:104 #: resources/ui/gtk3/prefs.ui:302 resources/ui/adw/prefs.ui:104
@@ -32,7 +32,7 @@ msgstr ""
#: src/ProfileManager.js:177 resources/ui/gtk4/prefs.ui:285 #: src/ProfileManager.js:177 resources/ui/gtk4/prefs.ui:285
#: resources/ui/gtk3/prefs.ui:330 resources/ui/adw/prefs.ui:118 #: resources/ui/gtk3/prefs.ui:330 resources/ui/adw/prefs.ui:118
msgid "Normal Windows" msgid "Normal Windows"
msgstr "" msgstr "Normala fönster"
#: src/ProfileManager.js:178 resources/ui/gtk4/prefs.ui:286 #: src/ProfileManager.js:178 resources/ui/gtk4/prefs.ui:286
#: resources/ui/gtk3/prefs.ui:331 resources/ui/adw/prefs.ui:119 #: resources/ui/gtk3/prefs.ui:331 resources/ui/adw/prefs.ui:119
+13 -13
View File
@@ -8,17 +8,17 @@ msgstr ""
"Project-Id-Version: burn-my-windows\n" "Project-Id-Version: burn-my-windows\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-31 07:30+0200\n" "POT-Creation-Date: 2023-08-31 07:30+0200\n"
"PO-Revision-Date: 2023-03-28 09:40+0000\n" "PO-Revision-Date: 2024-01-07 16:06+0000\n"
"Last-Translator: CakesTwix <cakestwix1@gmail.com>\n" "Last-Translator: Сергій <sergiy.goncharuk.1@gmail.com>\n"
"Language-Team: Ukrainian <https://hosted.weblate.org/projects/burn-my-" "Language-Team: Ukrainian <https://hosted.weblate.org/projects/"
"windows/core/uk/>\n" "burn-my-windows/core/uk/>\n"
"Language: uk\n" "Language: uk\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Weblate 4.17-dev\n" "X-Generator: Weblate 5.4-dev\n"
#: src/ProfileManager.js:175 resources/ui/gtk4/prefs.ui:256 #: src/ProfileManager.js:175 resources/ui/gtk4/prefs.ui:256
#: resources/ui/gtk3/prefs.ui:301 resources/ui/adw/prefs.ui:103 #: resources/ui/gtk3/prefs.ui:301 resources/ui/adw/prefs.ui:103
@@ -160,7 +160,7 @@ msgstr "Матриця"
#: src/effects/PaintBrush.js:102 #: src/effects/PaintBrush.js:102
msgid "Paint Brush" msgid "Paint Brush"
msgstr "" msgstr "Малярський пензлик"
#: src/effects/Pixelate.js:74 #: src/effects/Pixelate.js:74
msgid "Pixelate" msgid "Pixelate"
@@ -283,7 +283,7 @@ msgstr "Пожертва"
#: resources/ui/common/menus.ui:56 #: resources/ui/common/menus.ui:56
msgid "Open Effect-Profile Directory" msgid "Open Effect-Profile Directory"
msgstr "" msgstr "Відкрити каталог профілів ефектів"
#: resources/ui/common/menus.ui:62 #: resources/ui/common/menus.ui:62
msgid "About Burn-My-Windows" msgid "About Burn-My-Windows"
@@ -554,7 +554,7 @@ msgstr "Розмір пікселя"
#: resources/ui/gtk4/paint-brush.ui:69 resources/ui/adw/paint-brush.ui:47 #: resources/ui/gtk4/paint-brush.ui:69 resources/ui/adw/paint-brush.ui:47
msgid "Brush Size" msgid "Brush Size"
msgstr "" msgstr "Розмір пензля"
#: resources/ui/gtk4/trex.ui:69 resources/ui/adw/trex.ui:47 #: resources/ui/gtk4/trex.ui:69 resources/ui/adw/trex.ui:47
msgid "Claw Scratch Scale" msgid "Claw Scratch Scale"
@@ -690,7 +690,7 @@ msgstr "Градієнт"
#: resources/ui/gtk4/prefs.ui:91 resources/ui/gtk3/prefs.ui:133 #: resources/ui/gtk4/prefs.ui:91 resources/ui/gtk3/prefs.ui:133
#: resources/ui/adw/prefs.ui:224 #: resources/ui/adw/prefs.ui:224
msgid "Effect Selection" msgid "Effect Selection"
msgstr "" msgstr "Вибір ефекту"
#: resources/ui/gtk4/prefs.ui:101 resources/ui/gtk3/prefs.ui:143 #: resources/ui/gtk4/prefs.ui:101 resources/ui/gtk3/prefs.ui:143
#: resources/ui/adw/prefs.ui:225 #: resources/ui/adw/prefs.ui:225
@@ -700,12 +700,12 @@ msgstr "Якщо вибрано декілька, то один оберетьс
#: resources/ui/gtk4/prefs.ui:118 resources/ui/gtk3/prefs.ui:160 #: resources/ui/gtk4/prefs.ui:118 resources/ui/gtk3/prefs.ui:160
#: resources/ui/adw/prefs.ui:236 #: resources/ui/adw/prefs.ui:236
msgid "All" msgid "All"
msgstr "" msgstr "Всі"
#: resources/ui/gtk4/prefs.ui:124 resources/ui/gtk3/prefs.ui:166 #: resources/ui/gtk4/prefs.ui:124 resources/ui/gtk3/prefs.ui:166
#: resources/ui/adw/prefs.ui:242 #: resources/ui/adw/prefs.ui:242
msgid "None" msgid "None"
msgstr "" msgstr "Жодного"
#: resources/ui/gtk4/prefs.ui:168 resources/ui/gtk3/prefs.ui:208 #: resources/ui/gtk4/prefs.ui:168 resources/ui/gtk3/prefs.ui:208
#: resources/ui/adw/prefs.ui:65 #: resources/ui/adw/prefs.ui:65
+8 -8
View File
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: Burn-My-Windows\n" "Project-Id-Version: Burn-My-Windows\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-31 07:30+0200\n" "POT-Creation-Date: 2023-08-31 07:30+0200\n"
"PO-Revision-Date: 2023-05-16 12:48+0000\n" "PO-Revision-Date: 2024-02-02 09:01+0000\n"
"Last-Translator: aerowolf <aerowolf@tom.com>\n" "Last-Translator: aerowolf <aerowolf@tom.com>\n"
"Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/" "Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/"
"burn-my-windows/core/zh_Hans/>\n" "burn-my-windows/core/zh_Hans/>\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n" "Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 4.18-dev\n" "X-Generator: Weblate 5.4-dev\n"
#: src/ProfileManager.js:175 resources/ui/gtk4/prefs.ui:256 #: src/ProfileManager.js:175 resources/ui/gtk4/prefs.ui:256
#: resources/ui/gtk3/prefs.ui:301 resources/ui/adw/prefs.ui:103 #: resources/ui/gtk3/prefs.ui:301 resources/ui/adw/prefs.ui:103
@@ -159,7 +159,7 @@ msgstr "黑客帝国"
#: src/effects/PaintBrush.js:102 #: src/effects/PaintBrush.js:102
msgid "Paint Brush" msgid "Paint Brush"
msgstr "" msgstr "画笔"
#: src/effects/Pixelate.js:74 #: src/effects/Pixelate.js:74
msgid "Pixelate" msgid "Pixelate"
@@ -280,7 +280,7 @@ msgstr "捐赠"
#: resources/ui/common/menus.ui:56 #: resources/ui/common/menus.ui:56
msgid "Open Effect-Profile Directory" msgid "Open Effect-Profile Directory"
msgstr "" msgstr "打开效果配置文件目录"
#: resources/ui/common/menus.ui:62 #: resources/ui/common/menus.ui:62
msgid "About Burn-My-Windows" msgid "About Burn-My-Windows"
@@ -549,7 +549,7 @@ msgstr "像素大小"
#: resources/ui/gtk4/paint-brush.ui:69 resources/ui/adw/paint-brush.ui:47 #: resources/ui/gtk4/paint-brush.ui:69 resources/ui/adw/paint-brush.ui:47
msgid "Brush Size" msgid "Brush Size"
msgstr "" msgstr "笔刷大小"
#: resources/ui/gtk4/trex.ui:69 resources/ui/adw/trex.ui:47 #: resources/ui/gtk4/trex.ui:69 resources/ui/adw/trex.ui:47
msgid "Claw Scratch Scale" msgid "Claw Scratch Scale"
@@ -685,7 +685,7 @@ msgstr "渐变色"
#: resources/ui/gtk4/prefs.ui:91 resources/ui/gtk3/prefs.ui:133 #: resources/ui/gtk4/prefs.ui:91 resources/ui/gtk3/prefs.ui:133
#: resources/ui/adw/prefs.ui:224 #: resources/ui/adw/prefs.ui:224
msgid "Effect Selection" msgid "Effect Selection"
msgstr "" msgstr "效果选择"
#: resources/ui/gtk4/prefs.ui:101 resources/ui/gtk3/prefs.ui:143 #: resources/ui/gtk4/prefs.ui:101 resources/ui/gtk3/prefs.ui:143
#: resources/ui/adw/prefs.ui:225 #: resources/ui/adw/prefs.ui:225
@@ -695,12 +695,12 @@ msgstr "如果多选,则每次随机。"
#: resources/ui/gtk4/prefs.ui:118 resources/ui/gtk3/prefs.ui:160 #: resources/ui/gtk4/prefs.ui:118 resources/ui/gtk3/prefs.ui:160
#: resources/ui/adw/prefs.ui:236 #: resources/ui/adw/prefs.ui:236
msgid "All" msgid "All"
msgstr "" msgstr "全部"
#: resources/ui/gtk4/prefs.ui:124 resources/ui/gtk3/prefs.ui:166 #: resources/ui/gtk4/prefs.ui:124 resources/ui/gtk3/prefs.ui:166
#: resources/ui/adw/prefs.ui:242 #: resources/ui/adw/prefs.ui:242
msgid "None" msgid "None"
msgstr "" msgstr "无"
#: resources/ui/gtk4/prefs.ui:168 resources/ui/gtk3/prefs.ui:208 #: resources/ui/gtk4/prefs.ui:168 resources/ui/gtk3/prefs.ui:208
#: resources/ui/adw/prefs.ui:65 #: resources/ui/adw/prefs.ui:65
+232 -444
View File
@@ -14,96 +14,102 @@
'use strict'; 'use strict';
const {Gio, Gtk, Gdk, GLib, GObject} = imports.gi; import Gio from 'gi://Gio';
import Gtk from 'gi://Gtk';
import GLib from 'gi://GLib';
import Gdk from 'gi://Gdk';
import Adw from 'gi://Adw';
// libadwaita is available starting with GNOME Shell 42. import * as utils from './src/utils.js';
let Adw = null; import {ProfileManager} from './src/ProfileManager.js';
try {
Adw = imports.gi.Adw; import Apparition from './src/effects/Apparition.js';
} catch (e) { import BrokenGlass from './src/effects/BrokenGlass.js';
// Nothing to do. import Doom from './src/effects/Doom.js';
import EnergizeA from './src/effects/EnergizeA.js';
import EnergizeB from './src/effects/EnergizeB.js';
import Fire from './src/effects/Fire.js';
import Glide from './src/effects/Glide.js';
import Glitch from './src/effects/Glitch.js';
import Hexagon from './src/effects/Hexagon.js';
import Incinerate from './src/effects/Incinerate.js';
import Matrix from './src/effects/Matrix.js';
import PaintBrush from './src/effects/PaintBrush.js';
import Pixelate from './src/effects/Pixelate.js';
import PixelWheel from './src/effects/PixelWheel.js';
import PixelWipe from './src/effects/PixelWipe.js';
import Portal from './src/effects/Portal.js';
import SnapOfDisintegration from './src/effects/SnapOfDisintegration.js';
import TRexAttack from './src/effects/TRexAttack.js';
import TVEffect from './src/effects/TVEffect.js';
import TVGlitch from './src/effects/TVGlitch.js';
import Wisps from './src/effects/Wisps.js';
import {ExtensionPreferences, gettext as _} from 'resource:///org/gnome/Shell/Extensions/js/extensions/prefs.js';
// Currently, the extension supports only one set of UI files. In the past, there were
// three different sets for GTK3, GTK4, and Adwaita. This method returns the name of the
// current UI directory. It's still here since it might be useful in the future.
function getUIDir() {
return 'adw';
} }
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 ProfileManager = Me.imports.src.ProfileManager.ProfileManager;
////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////
// The preferences dialog is organized in pages, each of which is loaded from a // // 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 // // separate ui file. There's one page with general options, all other paged are loaded //
// from the respective effects. // // from the respective effects. //
////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////
var PreferencesDialog = class PreferencesDialog { export default class BurnMyWindowsPreferences extends ExtensionPreferences {
// ------------------------------------------------------------ constructor / destructor // ------------------------------------------------------------ constructor / destructor
constructor() { fillPreferencesWindow(window) {
window.set_default_size(650, 750);
// New effects must be registered here and in extension.js. // New effects must be registered here and in extension.js.
this._ALL_EFFECTS = [ this._ALL_EFFECTS = [
new Me.imports.src.effects.Apparition.Apparition(), Apparition,
new Me.imports.src.effects.BrokenGlass.BrokenGlass(), BrokenGlass,
new Me.imports.src.effects.Doom.Doom(), Doom,
new Me.imports.src.effects.EnergizeA.EnergizeA(), EnergizeA,
new Me.imports.src.effects.EnergizeB.EnergizeB(), EnergizeB,
new Me.imports.src.effects.Fire.Fire(), Fire,
new Me.imports.src.effects.Glide.Glide(), Glide,
new Me.imports.src.effects.Glitch.Glitch(), Glitch,
new Me.imports.src.effects.Hexagon.Hexagon(), Hexagon,
new Me.imports.src.effects.Incinerate.Incinerate(), Incinerate,
new Me.imports.src.effects.Matrix.Matrix(), Matrix,
new Me.imports.src.effects.PaintBrush.PaintBrush(), PaintBrush,
new Me.imports.src.effects.Pixelate.Pixelate(), Pixelate,
new Me.imports.src.effects.PixelWheel.PixelWheel(), PixelWheel,
new Me.imports.src.effects.PixelWipe.PixelWipe(), PixelWipe,
new Me.imports.src.effects.Portal.Portal(), Portal,
new Me.imports.src.effects.SnapOfDisintegration.SnapOfDisintegration(), SnapOfDisintegration,
new Me.imports.src.effects.TRexAttack.TRexAttack(), TRexAttack,
new Me.imports.src.effects.TVEffect.TVEffect(), TVEffect,
new Me.imports.src.effects.TVGlitch.TVGlitch(), TVGlitch,
new Me.imports.src.effects.Wisps.Wisps(), Wisps,
]; ];
// Load all of our resources. // Load all of our resources.
this._resources = Gio.Resource.load(Me.path + '/resources/burn-my-windows.gresource'); this._resources =
Gio.Resource.load(this.path + '/resources/burn-my-windows.gresource');
Gio.resources_register(this._resources); Gio.resources_register(this._resources);
// Load the CSS file for the settings dialog. If using libadwaita, we do not need an
// additional style sheet.
if (!utils.isADW()) {
const provider = Gtk.CssProvider.new();
if (utils.isGTK4()) {
provider.load_from_resource('/css/gtk4.css');
Gtk.StyleContext.add_provider_for_display(
Gdk.Display.get_default(), provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
} else {
provider.load_from_resource('/css/gtk3.css');
Gtk.StyleContext.add_provider_for_screen(Gdk.Screen.get_default(), provider,
Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
}
}
// Make sure custom icons are found. // Make sure custom icons are found.
if (utils.isGTK4()) { Gtk.IconTheme.get_for_display(Gdk.Display.get_default()).add_resource_path('/img');
Gtk.IconTheme.get_for_display(Gdk.Display.get_default()).add_resource_path('/img');
} else {
Gtk.IconTheme.get_default().add_resource_path('/img');
}
// Load the general user interface files. // Load the general user interface files.
this._builder = new Gtk.Builder(); this._builder = new Gtk.Builder();
this._builder.add_from_resource(`/ui/common/menus.ui`); this._builder.add_from_resource(`/ui/common/menus.ui`);
this._builder.add_from_resource(`/ui/${utils.getUIDir()}/prefs.ui`); this._builder.add_from_resource(`/ui/${getUIDir()}/prefs.ui`);
// Store a reference to the general settings object. // Store a reference to the general settings object.
this._settings = ExtensionUtils.getSettings(); this._settings = this.getSettings();
// This tracks all available effect profiles. // This tracks all available effect profiles.
this._profileManager = new ProfileManager(); this._profileManager = new ProfileManager(this.metadata);
// This is used to track all connections to properties of the current effect profile. // This is used to track all connections to properties of the current effect profile.
// Whenever the current effect profile changes, all connections are disconnected. // Whenever the current effect profile changes, all connections are disconnected.
@@ -129,19 +135,8 @@ var PreferencesDialog = class PreferencesDialog {
} }
let powerProfileRow = this._builder.get_object('profile-power-profile'); let powerProfileRow = this._builder.get_object('profile-power-profile');
if (!utils.isADW()) {
powerProfileRow = powerProfileRow.get_parent().get_parent();
}
powerProfileRow.set_visible(hasPowerProfiles); powerProfileRow.set_visible(hasPowerProfiles);
// The global color scheme is only available starting with GNOME Shell 42. We hide the
// corresponding settings row on older versions.
let colorSchemeRow = this._builder.get_object('profile-color-scheme');
if (!utils.isADW()) {
colorSchemeRow = colorSchemeRow.get_parent().get_parent();
}
colorSchemeRow.set_visible(utils.shellVersionIsAtLeast(42, 0));
// Wire up the window picker of the profile editor. Whenever the app-chooser button is // Wire up the window picker of the profile editor. Whenever the app-chooser button is
// clicked, we call a method of the extension which will initiate the window picking. // clicked, we call a method of the extension which will initiate the window picking.
this._builder.get_object('profile-choose-app-button').connect('clicked', () => { this._builder.get_object('profile-choose-app-button').connect('clicked', () => {
@@ -178,22 +173,6 @@ var PreferencesDialog = class PreferencesDialog {
} }
}); });
// If using libadwaita, the visibility of the profile-editor Adw.Flap is controlled
// using bindings in the ui file. On GTK3 and GTK4 we have to wire up this toggling
// here since we are using a Gtk.Stack instead of an Adw.Flap.
if (!utils.isADW()) {
const profileEditorButton = this._builder.get_object('edit-profile-button');
profileEditorButton.connect('toggled', b => {
if (b.active) {
this._builder.get_object('general-prefs')
.set_visible_child(this._builder.get_object('profile-editor'));
} else {
this._builder.get_object('general-prefs')
.set_visible_child(this._builder.get_object('effect-editor'));
}
});
}
// This is our top-level widget which we will return later. // This is our top-level widget which we will return later.
this._widget = this._builder.get_object('general-prefs'); this._widget = this._builder.get_object('general-prefs');
@@ -217,31 +196,12 @@ var PreferencesDialog = class PreferencesDialog {
// accordion-like behavior of the effect settings. // accordion-like behavior of the effect settings.
this._effectRows = []; this._effectRows = [];
if (!utils.isADW()) {
group.connect('row-activated', (g, row) => {
this._effectRows.forEach(r => {
if (r == row) {
if (r._revealer.get_reveal_child()) {
r._revealer.set_reveal_child(false);
r._arrow.get_style_context().remove_class('revealed');
} else {
r._revealer.set_reveal_child(true);
r._arrow.get_style_context().add_class('revealed');
}
} else {
r._revealer.set_reveal_child(false);
r._arrow.get_style_context().remove_class('revealed');
}
});
});
}
// Now add all the rows. // Now add all the rows.
this._ALL_EFFECTS.forEach(effect => { this._ALL_EFFECTS.forEach(effect => {
const [minMajor, minMinor] = effect.getMinShellVersion(); const [minMajor, minMinor] = effect.getMinShellVersion();
if (utils.shellVersionIsAtLeast(minMajor, minMinor)) { if (utils.shellVersionIsAtLeast(minMajor, minMinor)) {
const uiFile = `/ui/${utils.getUIDir()}/${effect.getNick()}.ui`; const uiFile = `/ui/${getUIDir()}/${effect.getNick()}.ui`;
// Is there a better way to test for the existence of a resource file? // Is there a better way to test for the existence of a resource file?
let hasPrefs = false; let hasPrefs = false;
@@ -258,12 +218,7 @@ var PreferencesDialog = class PreferencesDialog {
} }
// The preview button. // The preview button.
let previewButton; let previewButton = Gtk.Button.new_from_icon_name('bmw-preview-symbolic');
if (utils.isGTK4()) {
previewButton = Gtk.Button.new_from_icon_name('bmw-preview-symbolic');
} else {
previewButton = Gtk.Button.new_from_icon_name('bmw-preview-symbolic', 1);
}
previewButton.get_style_context().add_class('circular'); previewButton.get_style_context().add_class('circular');
previewButton.get_style_context().add_class('flat'); previewButton.get_style_context().add_class('flat');
previewButton.set_tooltip_text(_('Preview this effect')); previewButton.set_tooltip_text(_('Preview this effect'));
@@ -277,101 +232,55 @@ var PreferencesDialog = class PreferencesDialog {
button.set_valign(Gtk.Align.CENTER); button.set_valign(Gtk.Align.CENTER);
this._builder.expose_object(`${effect.getNick()}-enable-effect`, button); this._builder.expose_object(`${effect.getNick()}-enable-effect`, button);
if (utils.isADW()) { let row;
if (hasPrefs) {
let row;
if (hasPrefs) {
// Add the effect's preferences (if any).
row = this._builder.get_object(`${effect.getNick()}-prefs`);
} else if (utils.isADW()) {
row = Adw.ActionRow.new();
}
// On older versions of Adw (e.g. on GNOME Shell <43), the set_use_markup() does
// not yet exist.
if (row.set_use_markup) {
row.set_title('<b>' + effect.getLabel() + '</b>');
row.set_use_markup(true);
} else {
row.set_title(effect.getLabel());
}
// Un-expand any previously expanded effect row. This way we ensure that there
// is only one expanded row at any time.
if (hasPrefs) {
row.connect('notify::expanded', currentRow => {
if (currentRow.get_expanded()) {
this._effectRows.forEach(row => {
if (row != currentRow) {
row.set_expanded(false);
}
});
}
});
this._effectRows.push(row);
row.add_action(button);
} else {
row.add_suffix(button);
}
row.add_prefix(previewButton);
group.add(row);
// Add the effect's preferences (if any).
row = this._builder.get_object(`${effect.getNick()}-prefs`);
} else { } else {
row = Adw.ActionRow.new();
const row = new Gtk.ListBoxRow();
row.get_style_context().add_class('effect-row');
const container = new Gtk.Box({orientation: Gtk.Orientation.VERTICAL});
const header = new Gtk.Box({spacing: 12});
header.get_style_context().add_class('effect-row-header');
const label = new Gtk.Label(
{label: effect.getLabel(), hexpand: true, halign: Gtk.Align.START});
label.get_style_context().add_class('heading');
this.gtkBoxAppend(header, previewButton);
this.gtkBoxAppend(header, label);
this.gtkBoxAppend(header, button);
this.gtkBoxAppend(container, header);
if (hasPrefs) {
const revealer = this._builder.get_object(`${effect.getNick()}-prefs`);
const arrow = new Gtk.Image({icon_name: 'go-down-symbolic'});
arrow.get_style_context().add_class('revealer-arrow');
this.gtkBoxAppend(header, arrow);
this.gtkBoxAppend(container, revealer);
row._revealer = revealer;
row._arrow = arrow;
row.set_activatable(true);
this._effectRows.push(row);
} else {
row.set_activatable(false);
}
if (utils.isGTK4()) {
row.set_child(container);
group.append(row);
} else {
row.add(container);
group.add(row);
}
} }
// On older versions of Adw (e.g. on GNOME Shell <43), the set_use_markup() does
// not yet exist.
if (row.set_use_markup) {
row.set_title('<b>' + effect.getLabel() + '</b>');
row.set_use_markup(true);
} else {
row.set_title(effect.getLabel());
}
// Un-expand any previously expanded effect row. This way we ensure that there
// is only one expanded row at any time.
if (hasPrefs) {
row.connect('notify::expanded', currentRow => {
if (currentRow.get_expanded()) {
this._effectRows.forEach(row => {
if (row != currentRow) {
row.set_expanded(false);
}
});
}
});
this._effectRows.push(row);
row.add_action(button);
} else {
row.add_suffix(button);
}
row.add_prefix(previewButton);
group.add(row);
} }
}); });
// Some things can only be done once the widget is shown as we do not have access to // Some things can only be done once the widget is shown as we do not have access to
// the toplevel widget before. // the toplevel widget before.
this._widget.connect('realize', (widget) => { this._widget.connect('realize', (widget) => {
const window = utils.isGTK4() ? widget.get_root() : widget.get_toplevel(); const window = widget.get_root();
// Show the version number in the title bar. // Show the version number in the title bar.
window.set_title(`Burn-My-Windows ${Me.metadata.version}`); window.set_title(`Burn-My-Windows ${this.metadata.version}`);
this._loadActiveProfile(); this._loadActiveProfile();
this._updateProfileMenu(); this._updateProfileMenu();
@@ -379,30 +288,21 @@ var PreferencesDialog = class PreferencesDialog {
// Show an Adw.Toast or a Gtk.InfoBar whenever Burn-My-Windows was updated. We use a // Show an Adw.Toast or a Gtk.InfoBar whenever Burn-My-Windows was updated. We use a
// small timeout so that it is not shown instantaneously. // small timeout so that it is not shown instantaneously.
const lastVersion = this._settings.get_int('last-prefs-version'); const lastVersion = this._settings.get_int('last-prefs-version');
if (lastVersion < Me.metadata.version) { if (lastVersion < this.metadata.version) {
this._showUpdateInfoTimeout = this._showUpdateInfoTimeout =
GLib.timeout_add(GLib.PRIORITY_DEFAULT, 2000, () => { GLib.timeout_add(GLib.PRIORITY_DEFAULT, 2000, () => {
this._showUpdateInfoTimeout = 0; this._showUpdateInfoTimeout = 0;
if (utils.isADW()) { const toast = Adw.Toast.new(_('Burn-My-Windows has been updated!'));
const toast = Adw.Toast.new(_('Burn-My-Windows has been updated!')); toast.set_button_label(_('View Changelog'));
toast.set_button_label(_('View Changelog')); toast.set_action_name('prefs.changelog');
toast.set_action_name('prefs.changelog'); toast.set_timeout(0);
toast.set_timeout(0);
toast.connect( toast.connect(
'dismissed', 'dismissed',
() => this._settings.set_int('last-prefs-version', Me.metadata.version)); () => this._settings.set_int('last-prefs-version', this.metadata.version));
window.add_toast(toast); window.add_toast(toast);
} else {
const infoBar = this._builder.get_object('update-info');
infoBar.connect('response', i => {
this._settings.set_int('last-prefs-version', Me.metadata.version);
i.set_revealed(false);
});
infoBar.set_revealed(true);
}
return false; return false;
}); });
@@ -449,11 +349,7 @@ GitHub: <a href='https://github.com/sponsors/schneegans'>https://github.com/spon
} }
]); ]);
if (utils.isGTK4()) { dialog.show();
dialog.show();
} else {
dialog.show_all();
}
} }
}); });
@@ -468,39 +364,28 @@ GitHub: <a href='https://github.com/sponsors/schneegans'>https://github.com/spon
// Starting with GNOME Shell 42, we have to hack our way through the widget tree // Starting with GNOME Shell 42, we have to hack our way through the widget tree
// of the Adw.PreferencesWindow... // of the Adw.PreferencesWindow...
if (utils.isADW()) { const header = this._findWidgetByType(window.get_content(), Adw.HeaderBar);
const header = this._findWidgetByType(window.get_content(), Adw.HeaderBar); header.pack_start(menu);
header.pack_start(menu); header.set_title_widget(this._builder.get_object('profile-button'));
header.set_title_widget(this._builder.get_object('profile-button'));
// GNOME Shell extensions are forced to use a AdwPreferencesWindow. This already // GNOME Shell extensions are forced to use a AdwPreferencesWindow. This already
// includes a Gtk.ScrolledWindow as well as an Adw.Clamp. For the profile // includes a Gtk.ScrolledWindow as well as an Adw.Clamp. For the profile
// editing, we want to use an Adw.Flap which reveals itself from the top. This // editing, we want to use an Adw.Flap which reveals itself from the top. This
// needs to be inserted in the widget hierarchy above the Adw.Clamp, else it // needs to be inserted in the widget hierarchy above the Adw.Clamp, else it
// would look ugly. Therefore, we fiddle around with the internal widgets... // would look ugly. Therefore, we fiddle around with the internal widgets...
const flap = this._builder.get_object('profile-editor-flap'); const flap = this._builder.get_object('profile-editor-flap');
const clamp = this._findWidgetByType(window.get_content(), Adw.Clamp); const clamp = this._findWidgetByType(window.get_content(), Adw.Clamp);
const viewport = clamp.get_parent(); const viewport = clamp.get_parent();
viewport.get_parent().set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.NEVER); viewport.get_parent().set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.NEVER);
viewport.set_child(flap); viewport.set_child(flap);
const scrolledWindow = Gtk.ScrolledWindow.new(); const scrolledWindow = Gtk.ScrolledWindow.new();
scrolledWindow.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC); scrolledWindow.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC);
scrolledWindow.set_propagate_natural_height(true); scrolledWindow.set_propagate_natural_height(true);
scrolledWindow.set_vexpand(true); scrolledWindow.set_vexpand(true);
scrolledWindow.set_child(clamp); scrolledWindow.set_child(clamp);
flap.set_content(scrolledWindow); flap.set_content(scrolledWindow);
} else if (utils.isGTK4()) {
window.get_titlebar().pack_start(menu);
window.get_titlebar().set_title_widget(
this._builder.get_object('profile-button'));
} else {
window.get_titlebar().pack_start(menu);
window.get_titlebar().set_custom_title(
this._builder.get_object('profile-button'));
}
const addURIAction = (name, uri) => { const addURIAction = (name, uri) => {
const action = Gio.SimpleAction.new(name, null); const action = Gio.SimpleAction.new(name, null);
@@ -516,6 +401,8 @@ GitHub: <a href='https://github.com/sponsors/schneegans'>https://github.com/spon
addURIAction('donate-kofi', 'https://ko-fi.com/schneegans'); addURIAction('donate-kofi', 'https://ko-fi.com/schneegans');
addURIAction('donate-github', 'https://github.com/sponsors/Schneegans'); addURIAction('donate-github', 'https://github.com/sponsors/Schneegans');
addURIAction('donate-paypal', 'https://www.paypal.me/simonschneegans'); addURIAction('donate-paypal', 'https://www.paypal.me/simonschneegans');
addURIAction('donate-crypto', 'https://schneegans.cb.id');
addURIAction('show-sponsors', 'https://schneegans.github.io/sponsors');
addURIAction('wallpapers', 'https://github.com/Schneegans/ai-wallpapers'); addURIAction('wallpapers', 'https://github.com/Schneegans/ai-wallpapers');
addURIAction('profile-dir', `file://${GLib.get_user_config_dir()}/burn-my-windows/profiles`); addURIAction('profile-dir', `file://${GLib.get_user_config_dir()}/burn-my-windows/profiles`);
// clang-format on // clang-format on
@@ -531,7 +418,7 @@ GitHub: <a href='https://github.com/sponsors/schneegans'>https://github.com/spon
null, null,
'https://github.com/Schneegans/Burn-My-Windows/blob/main/docs/changelog.md', 'https://github.com/Schneegans/Burn-My-Windows/blob/main/docs/changelog.md',
Gdk.CURRENT_TIME); Gdk.CURRENT_TIME);
this._settings.set_int('last-prefs-version', Me.metadata.version) this._settings.set_int('last-prefs-version', this.metadata.version)
}); });
group.add_action(changelogAction); group.add_action(changelogAction);
@@ -547,86 +434,18 @@ GitHub: <a href='https://github.com/sponsors/schneegans'>https://github.com/spon
} }
}); });
const sponsors = this._getJSONResource('/credits/sponsors.json'); const dialog = new Adw.AboutWindow({transient_for: window, modal: true});
let dialog; dialog.set_application_icon('burn-my-windows-symbolic');
dialog.set_application_name('Burn-My-Windows');
// We try to use the special Adw.AboutWindow if it is available. dialog.set_version(`${this.metadata.version}`);
if (utils.isADW() && Adw.AboutWindow) { dialog.set_developer_name('Simon Schneegans');
let formatSponsors = (sponsors) => { dialog.set_issue_url('https://github.com/Schneegans/Burn-My-Windows/issues');
return sponsors.map(s => {
if (s.url == '')
return s.name;
else
return `${s.name} ${s.url}`;
});
};
dialog = new Adw.AboutWindow({transient_for: window, modal: true});
dialog.set_application_icon('burn-my-windows-symbolic');
dialog.set_application_name('Burn-My-Windows');
dialog.set_version(`${Me.metadata.version}`);
dialog.set_developer_name('Simon Schneegans');
dialog.set_issue_url('https://github.com/Schneegans/Burn-My-Windows/issues');
if (sponsors.gold.length > 0) {
dialog.add_credit_section(_('Gold Sponsors'),
formatSponsors(sponsors.gold));
}
if (sponsors.silver.length > 0) {
dialog.add_credit_section(_('Silver Sponsors'),
formatSponsors(sponsors.silver));
}
if (sponsors.bronze.length > 0) {
dialog.add_credit_section(_('Bronze Sponsors'),
formatSponsors(sponsors.bronze));
}
if (sponsors.past.length > 0) {
dialog.add_credit_section(_('Past Sponsors'),
formatSponsors(sponsors.past));
}
} else {
let formatSponsors = (sponsors) => {
return sponsors.map(s => {
if (s.url == '')
return s.name;
else
return `<a href="${s.url}">${s.name}</a>`;
});
};
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_authors(['Simon Schneegans']);
if (sponsors.gold.length > 0) {
dialog.add_credit_section(_('Gold Sponsors'),
formatSponsors(sponsors.gold));
}
if (sponsors.silver.length > 0) {
dialog.add_credit_section(_('Silver Sponsors'),
formatSponsors(sponsors.silver));
}
if (sponsors.bronze.length > 0) {
dialog.add_credit_section(_('Bronze Sponsors'),
formatSponsors(sponsors.bronze));
}
if (sponsors.past.length > 0) {
dialog.add_credit_section(_('Past Sponsors'),
formatSponsors(sponsors.past));
}
}
dialog.set_translator_credits([...translators].join('\n')); dialog.set_translator_credits([...translators].join('\n'));
dialog.set_copyright('© 2022 Simon Schneegans'); dialog.set_copyright('© 2023 Simon Schneegans');
dialog.set_website('https://github.com/Schneegans/Burn-My-Windows'); dialog.set_website('https://github.com/Schneegans/Burn-My-Windows');
dialog.set_license_type(Gtk.License.GPL_3_0); dialog.set_license_type(Gtk.License.GPL_3_0);
if (utils.isGTK4()) { dialog.show();
dialog.show();
} else {
dialog.show_all();
}
}); });
group.add_action(aboutAction); group.add_action(aboutAction);
@@ -711,10 +530,7 @@ GitHub: <a href='https://github.com/sponsors/schneegans'>https://github.com/spon
} }
}); });
// Show the widgets on GTK3. window.add(this._widget);
if (!utils.isGTK4()) {
this._widget.show_all();
}
} }
// -------------------------------------------------------------------- public interface // -------------------------------------------------------------------- public interface
@@ -730,11 +546,6 @@ GitHub: <a href='https://github.com/sponsors/schneegans'>https://github.com/spon
return this._activeProfile.settings; return this._activeProfile.settings;
} }
// Returns the widget used for the settings of this extension.
getWidget() {
return this._widget;
}
// Connects an Adw.ComboRow (or anything else which has an 'selected' property) to a // Connects an Adw.ComboRow (or anything else which has an 'selected' property) to a
// settings key. It also binds the corresponding reset button. // settings key. It also binds the corresponding reset button.
bindComboRow(settingsKey) { bindComboRow(settingsKey) {
@@ -800,17 +611,6 @@ GitHub: <a href='https://github.com/sponsors/schneegans'>https://github.com/spon
this._bindResetButton(settingsKey); 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, true, 0);
}
}
// ----------------------------------------------------------------------- private stuff // ----------------------------------------------------------------------- private stuff
// This loads all settings from the profile given in the settings key 'active-profile'. // This loads all settings from the profile given in the settings key 'active-profile'.
@@ -849,20 +649,11 @@ GitHub: <a href='https://github.com/sponsors/schneegans'>https://github.com/spon
updateProfileButtonMenuIfChanged('profile-high-priority'); updateProfileButtonMenuIfChanged('profile-high-priority');
this.bindEntry('profile-app'); this.bindEntry('profile-app');
this.bindComboRow('profile-animation-type');
if (utils.isADW()) { this.bindComboRow('profile-window-type');
this.bindComboRow('profile-animation-type'); this.bindComboRow('profile-color-scheme');
this.bindComboRow('profile-window-type'); this.bindComboRow('profile-power-mode');
this.bindComboRow('profile-color-scheme'); this.bindComboRow('profile-power-profile');
this.bindComboRow('profile-power-mode');
this.bindComboRow('profile-power-profile');
} else {
this.bindComboBox('profile-animation-type');
this.bindComboBox('profile-window-type');
this.bindComboBox('profile-color-scheme');
this.bindComboBox('profile-power-mode');
this.bindComboBox('profile-power-profile');
}
this.bindSwitch('profile-high-priority'); this.bindSwitch('profile-high-priority');
// Connect all effect settings. // Connect all effect settings.
@@ -883,7 +674,7 @@ GitHub: <a href='https://github.com/sponsors/schneegans'>https://github.com/spon
// configuration option of the profile is changed. // configuration option of the profile is changed.
_updateProfileButton() { _updateProfileButton() {
this._builder.get_object('choose-profile-button').label = this._builder.get_object('choose-profile-button').label =
this._profileManager.getProfileName(this.getProfileSettings()); this._getProfileName(this.getProfileSettings());
} }
// This updates the list of available profiles in the dropdown of the profile-selection // This updates the list of available profiles in the dropdown of the profile-selection
@@ -897,7 +688,7 @@ GitHub: <a href='https://github.com/sponsors/schneegans'>https://github.com/spon
// Then add an entry for each available profile. // Then add an entry for each available profile.
this._profileManager.getProfiles().forEach(profile => { this._profileManager.getProfiles().forEach(profile => {
const label = this._profileManager.getProfileName(profile.settings); const label = this._getProfileName(profile.settings);
const item = Gio.MenuItem.new(label, 'prefs.active-profile'); const item = Gio.MenuItem.new(label, 'prefs.active-profile');
item.set_action_and_target_value('prefs.active-profile', item.set_action_and_target_value('prefs.active-profile',
GLib.Variant.new_string(profile.path)); GLib.Variant.new_string(profile.path));
@@ -905,6 +696,58 @@ GitHub: <a href='https://github.com/sponsors/schneegans'>https://github.com/spon
}); });
} }
// Profiles are named according to their configuration. This method returns a localized
// string describing the settings of the profile.
_getProfileName(settings) {
let items = [];
// If an app is configured, use it as first component for the profile's name.
const app = settings.get_string('profile-app');
if (app != '') {
items.push(app);
}
// Now add components to the name for each non-default profile option. Make sure that
// these are the same strings as used in the UI files!
const addComponent = (settingsKey, options) => {
const option = settings.get_int(settingsKey);
if (option > 0) {
items.push(options[option - 1]);
}
};
// clang-format off
addComponent('profile-animation-type', [_('Opening Windows'),
_('Closing Windows')]);
addComponent('profile-window-type', [_('Normal Windows'),
_('Dialog Windows')]);
addComponent('profile-color-scheme', [_('Default Color Scheme'),
_('Dark Color Scheme')]);
addComponent('profile-power-mode', [_('On Battery'),
_('Plugged In')]);
addComponent('profile-power-profile', [_('Power-Saver Mode'),
_('Balanced Mode'),
_('Performance Mode'),
_('Power Saver or Balanced'),
_('Balanced or Performance')]);
// clang-format on
// If the profile is a high-priority profile, also add this..
if (settings.get_boolean('profile-high-priority')) {
items.push(_('High Priority'));
}
let name = '';
if (items.length == 0) {
name = _('Standard Profile');
} else {
name = items.join(' · ');
}
return name;
}
// This wrapper connects a given callback to a profile settings key. Use this instead of // This wrapper connects a given callback to a profile settings key. Use this instead of
// the direct connect() call on the profile settings to make sure that the callback is // the direct connect() call on the profile settings to make sure that the callback is
// disconnected when the active profile changes. // disconnected when the active profile changes.
@@ -981,15 +824,12 @@ GitHub: <a href='https://github.com/sponsors/schneegans'>https://github.com/spon
default_width: 800, default_width: 800,
default_height: 450, default_height: 450,
modal: true, modal: true,
transient_for: utils.isGTK4() ? this._widget.get_root() : transient_for: this._widget.get_root()
this._widget.get_toplevel()
}); });
// Add a header bar to the window. // Add a header bar to the window.
if (utils.isGTK4()) { const header = Gtk.HeaderBar.new();
const header = Gtk.HeaderBar.new(); window.set_titlebar(header);
window.set_titlebar(header);
}
const box = new Gtk.Box({ const box = new Gtk.Box({
orientation: Gtk.Orientation.VERTICAL, orientation: Gtk.Orientation.VERTICAL,
@@ -1009,16 +849,11 @@ GitHub: <a href='https://github.com/sponsors/schneegans'>https://github.com/spon
pixel_size: 128, pixel_size: 128,
}); });
this.gtkBoxAppend(box, image); box.append(image);
this.gtkBoxAppend(box, label); box.append(label);
if (utils.isGTK4()) { window.set_child(box);
window.set_child(box); window.show();
window.show();
} else {
window.add(box);
window.show_all();
}
} }
// Helper function to show a message dialog. The dialog is modal and has a title, a // Helper function to show a message dialog. The dialog is modal and has a title, a
@@ -1027,53 +862,28 @@ GitHub: <a href='https://github.com/sponsors/schneegans'>https://github.com/spon
// called when the button is clicked. // called when the button is clicked.
// This method works on GTK3, GTK4, and libadwaita. // This method works on GTK3, GTK4, and libadwaita.
_createMessageDialog(title, message, window, buttons) { _createMessageDialog(title, message, window, buttons) {
let dialog; let dialog = new Adw.MessageDialog({
heading: title,
body: message,
body_use_markup: true,
modal: true,
});
if (utils.isADW() && Adw.MessageDialog) { buttons.forEach((button, i) => {
dialog = new Adw.MessageDialog({ const response = i.toString();
heading: title, dialog.add_response(response, button.label);
body: message,
body_use_markup: true,
modal: true,
});
buttons.forEach((button, i) => { if (button.default) {
const response = i.toString(); dialog.set_default_response(response);
dialog.add_response(response, button.label); dialog.set_close_response(response);
}
if (button.default) { if (button.destructive) {
dialog.set_default_response(response); dialog.set_response_appearance(response, Adw.ResponseAppearance.DESTRUCTIVE);
dialog.set_close_response(response); }
} });
if (button.destructive) {
dialog.set_response_appearance(response, Adw.ResponseAppearance.DESTRUCTIVE);
}
});
} else {
dialog = new Gtk.MessageDialog({
text: title,
secondary_text: message,
secondary_use_markup: true,
modal: true,
title: '',
});
buttons.forEach((button, i) => {
dialog.add_button(button.label, i);
if (button.default) {
dialog.set_default_response(i);
}
});
}
if (utils.isGTK4()) {
dialog.set_hide_on_close(true);
}
dialog.set_hide_on_close(true);
dialog.set_transient_for(window); dialog.set_transient_for(window);
// If the dialog is closed or a button is clicked, we hide the dialog and call the // If the dialog is closed or a button is clicked, we hide the dialog and call the
@@ -1092,25 +902,3 @@ GitHub: <a href='https://github.com/sponsors/schneegans'>https://github.com/spon
return dialog; return dialog;
} }
} }
// 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
// method is called. This way we can actually open multiple settings windows and interact
// with all of them properly.
function buildPrefsWidget() {
var dialog = new PreferencesDialog();
return dialog.getWidget();
}
// If using libadwaita, this method is called. In this case, the primary widget of the
// preferences dialog is an Adw.PreferencesPage, which we directly add to the window.
function fillPreferencesWindow(window) {
window.set_default_size(650, 750);
var dialog = new PreferencesDialog();
window.add(dialog.getWidget());
}
-86
View File
@@ -1,86 +0,0 @@
{
"gold": [
{
"name": "D3vil0p3r",
"url": "https://github.com/D3vil0p3r"
},
{
"name": "Maxence Sebald",
"url": ""
}
],
"silver": [
{
"name": "@danielheadbang",
"url": "https://github.com/danielheadbang"
},
{
"name": "Jorge Castro",
"url": "https://github.com/castrojo"
}
],
"bronze": [
{
"name": "@SubOptimal",
"url": "https://github.com/SubOptimal"
},
{
"name": "@vlazic",
"url": "https://github.com/vlazic"
}
],
"past": [
{
"name": "Dennis ten Hoove",
"url": "https://github.com/dennis1248"
},
{
"name": "@MRR-dev",
"url": "https://github.com/MRR-dev"
},
{
"name": "Angel Brielez",
"url": "https://github.com/AngelBrielez"
},
{
"name": "@taconomix",
"url": "https://github.com/taconomix"
},
{
"name": "@enolive",
"url": "https://github.com/enolive"
},
{
"name": "@Aggraxis",
"url": "https://github.com/Aggraxis"
},
{
"name": "tj3k",
"url": "https://twitter.com/tjiiik"
},
{
"name": "@wolfyrion",
"url": "https://github.com/wolfyrion"
},
{
"name": "@MrTomRod",
"url": "https://github.com/MrTomRod"
},
{
"name": "Pouhiou",
"url": ""
},
{
"name": "DAPREMONT Christophe",
"url": ""
},
{
"name": "@manero6",
"url": "https://github.com/manero6"
},
{
"name": "@RickStanley",
"url": "https://github.com/RickStanley"
}
]
}
+457 -403
View File
@@ -1,275 +1,10 @@
[ [
{
"Korean": [
[
"darkcircle.0426@gmail.com",
"Seong-ho Cho",
128
]
]
},
{
"Persian": [
[
"eshagh094@gmail.com",
"Eshagh shahidani",
65
]
]
},
{
"Polish": [
[
"gnu.ewm@protonmail.com",
"Eryk Michalak",
10
],
[
"sto@tutanota.de",
"WaldiS",
38
],
[
"pwrzonca@gmail.com",
"Pawe\u0142 Rzo\u0144ca",
77
]
]
},
{
"Turkish": [
[
"tcreeper.earth@gmail.com",
"TCr3",
24
],
[
"muhaaliss@pm.me",
"Muha Aliss",
52
],
[
"libreajans@gmail.com",
"Sabri \u00dcnal",
68
]
]
},
{
"Chinese (Simplified)": [
[
"coelacanthushex@gmail.com",
"Celeste Liu",
3
],
[
"lyuutau@outlook.com",
"\u5218\u97ec",
34
],
[
"poonsters6@gmail.com",
"merelymyself",
38
],
[
"aerowolf@tom.com",
"aerowolf",
97
]
]
},
{
"Swedish": [
[
"obslsessed@duck.com",
"obslsessed",
5
],
[
"droidbittin@gmail.com",
"Luna Jernberg",
9
],
[
"swedishsailfishosuser@tutanota.com",
"Kristoffer Grundstr\u00f6m",
48
]
]
},
{
"Slovak": [
[
"salka.milan@googlemail.com",
"Milan \u0160alka",
4
],
[
"jose1711@gmail.com",
"Jose Riha",
128
]
]
},
{
"German": [
[
"atalanttore@googlemail.com",
"Ettore Atalan",
3
],
[
"code@simonschneegans.de",
"Simon Schneegans",
122
]
]
},
{
"French": [
[
"matshot03@gmail.com",
"Mathis Chabrier",
2
],
[
"redxxiii@zaclys.net",
"Reda",
10
],
[
"theo.remon+weblate@uswery.eu",
"Th\u00e9o Remon",
22
],
[
"mathieu.bousquet2@gmail.com",
"Mathieu B.",
26
],
[
"bonnemainsnathan@gmail.com",
"Nathan",
38
],
[
"softexpert@gmail.com",
"SoftExpert",
51
]
]
},
{
"Finnish": [
[
"jiri.gronroos@iki.fi",
"Jiri Gr\u00f6nroos",
47
]
]
},
{
"Russian": [
[
"sergei@racingrebel.com",
"\u041c\u0438\u0441\u0442\u0435\u0440 \u041f\u0435\u0440\u0435\u0432\u043e\u0434",
11
],
[
"ddaudix@gmail.com",
"Daudix UFO",
31
],
[
"eg.ermakov2016@yandex.ru",
"\u0415\u0433\u043e\u0440 \u0415\u0440\u043c\u0430\u043a\u043e\u0432",
33
],
[
"franigoyt@gmail.com",
"ANIGO R. (AR)",
49
],
[
"lenemter@gmail.com",
"lenemter",
49
]
]
},
{
"Ukrainian": [
[
"cakestwix1@gmail.com",
"CakesTwix",
35
],
[
"911us@duck.com",
"Petro S.",
44
],
[
"yuridm@gmail.com",
"\u042e\u0440\u0456\u0439 \u0414\u043c\u0438\u0442\u0440\u0435\u043d\u043a\u043e",
48
]
]
},
{
"Indonesian": [
[
"rezaalmanda27@gmail.com",
"Reza Almanda",
53
],
[
"randompsyduck@duck.com",
"Sir-Ivysaur",
75
]
]
},
{
"Dutch": [
[
"code@simonschneegans.de",
"Simon Schneegans",
1
],
[
"philip.goto@gmail.com",
"Philip Goto",
7
],
[
"vistausss@fastmail.com",
"Heimen Stoffels",
126
]
]
},
{
"Norwegian Bokm\u00e5l": [
[
"code@simonschneegans.de",
"Simon Schneegans",
1
],
[
"epost@anotheragency.no",
"Allan Nordh\u00f8y",
44
]
]
},
{ {
"Arabic": [ "Arabic": [
[ [
"hamzah.abusamak@gmail.com", "fawaz27000@hotmail.com",
"bonbonboi", "fawaz006",
5 68
], ],
[ [
"dabsantamer@yahoo.com", "dabsantamer@yahoo.com",
@@ -282,140 +17,9 @@
7 7
], ],
[ [
"fawaz27000@hotmail.com", "hamzah.abusamak@gmail.com",
"fawaz006", "bonbonboi",
68
]
]
},
{
"Portuguese": [
[
"ssantos@web.de",
"ssantos",
1
],
[
"dyegoaurelio@gmail.com",
"dyegoaurelio",
8
],
[
"pedro.hvn.2018@gmail.com",
"KrulesExGamer",
70
]
]
},
{
"Spanish": [
[
"jorgec2005@gmail.com",
"Jorge C",
5 5
],
[
"fitojb@ubuntu.com",
"Adolfo Jayme Barrientos",
7
],
[
"andres.segarra.aparicio@gmail.com",
"Andres Segarra",
10
],
[
"fran-carro@hotmail.es",
"gallegonovato",
20
],
[
"dev.n47os@aleeas.com",
"Ulices",
39
],
[
"oscfdezdz@tuta.io",
"\u00d3scar Fern\u00e1ndez D\u00edaz",
60
]
]
},
{
"Italian": [
[
"mario03@gmail.com",
"Mario",
1
],
[
"albano_battistella@hotmail.com",
"albanobattistella",
128
]
]
},
{
"Hebrew": [
[
"hvusvvnkl12345@gmail.com",
"\u05d9\u05d4\u05d5\u05d3\u05d4 \u05d0\u05dc\u05d9\u05e1\u05e3",
37
]
]
},
{
"Japanese": [
[
"ryuichi.ya220@gmail.com",
"Ryan Y",
79
]
]
},
{
"Hungarian": [
[
"superh552@gmail.com",
"KinteLiX",
79
]
]
},
{
"Czech": [
[
"yuridm@gmail.com",
"\u042e\u0440\u0456\u0439 \u0414\u043c\u0438\u0442\u0440\u0435\u043d\u043a\u043e",
1
],
[
"jose1711@gmail.com",
"Jose Riha",
4
],
[
"jiri.doubravsky@gmail.com",
"Ji\u0159\u00ed Doubravsk\u00fd",
60
]
]
},
{
"Lithuanian": [
[
"hazap@hotmail.com",
"Moo",
43
]
]
},
{
"Portuguese (Brazil)": [
[
"mr-isaac@ig.com.br",
"Isaac Dias",
93
] ]
] ]
}, },
@@ -429,11 +33,78 @@
] ]
}, },
{ {
"Romanian": [ "Chinese (Simplified)": [
[
"aerowolf@tom.com",
"aerowolf",
103
],
[
"poonsters6@gmail.com",
"merelymyself",
38
],
[
"lyuutau@outlook.com",
"\u5218\u97ec",
34
],
[
"coelacanthushex@gmail.com",
"Celeste Liu",
3
]
]
},
{
"Czech": [
[
"6325410@seznam.cz",
"Miraficus",
83
],
[
"jiri.doubravsky@gmail.com",
"Ji\u0159\u00ed Doubravsk\u00fd",
60
],
[
"jose1711@gmail.com",
"Jose Riha",
4
],
[
"yuridm@gmail.com",
"\u042e\u0440\u0456\u0439 \u0414\u043c\u0438\u0442\u0440\u0435\u043d\u043a\u043e",
1
]
]
},
{
"Dutch": [
[
"vistausss@fastmail.com",
"Heimen Stoffels",
126
],
[
"philip.goto@gmail.com",
"Philip Goto",
7
],
[
"code@simonschneegans.de",
"Simon Schneegans",
1
]
]
},
{
"English": [
[ [
"softexpert@gmail.com", "softexpert@gmail.com",
"SoftExpert", "SoftExpert",
126 1
] ]
] ]
}, },
@@ -445,5 +116,388 @@
72 72
] ]
] ]
},
{
"Finnish": [
[
"jiri.gronroos@iki.fi",
"Jiri Gr\u00f6nroos",
47
]
]
},
{
"French": [
[
"softexpert@gmail.com",
"SoftExpert",
52
],
[
"bonnemainsnathan@gmail.com",
"Nathan",
38
],
[
"mathieu.bousquet2@gmail.com",
"Mathieu B.",
26
],
[
"theo.remon+weblate@uswery.eu",
"Th\u00e9o Remon",
22
],
[
"redxxiii@zaclys.net",
"Reda",
10
],
[
"brice.laurencin@gmail.com",
"Brice Laurencin",
7
],
[
"matshot03@gmail.com",
"Mathis Chabrier",
2
]
]
},
{
"German": [
[
"code@simonschneegans.de",
"Simon Schneegans",
122
],
[
"atalanttore@googlemail.com",
"Ettore Atalan",
3
]
]
},
{
"Hebrew": [
[
"hvusvvnkl12345@gmail.com",
"\u05d9\u05d4\u05d5\u05d3\u05d4 \u05d0\u05dc\u05d9\u05e1\u05e3",
37
]
]
},
{
"Hungarian": [
[
"superh552@gmail.com",
"KinteLiX",
79
]
]
},
{
"Indonesian": [
[
"randompsyduck@duck.com",
"Sir-Ivysaur",
75
],
[
"rezaalmanda27@gmail.com",
"Reza Almanda",
58
]
]
},
{
"Italian": [
[
"albano_battistella@hotmail.com",
"albanobattistella",
132
],
[
"mceyes@protonmail.com",
"Frankie McEyes",
2
],
[
"mario03@gmail.com",
"Mario",
1
]
]
},
{
"Japanese": [
[
"ryuichi.ya220@gmail.com",
"Ryan Y",
79
]
]
},
{
"Korean": [
[
"darkcircle.0426@gmail.com",
"Seong-ho Cho",
134
]
]
},
{
"Lithuanian": [
[
"hazap@hotmail.com",
"Moo",
43
]
]
},
{
"Norwegian Bokm\u00e5l": [
[
"epost@anotheragency.no",
"Allan Nordh\u00f8y",
44
],
[
"code@simonschneegans.de",
"Simon Schneegans",
1
]
]
},
{
"Persian": [
[
"lijeyol367@nickolis.com",
"lijeyol367",
82
],
[
"eshagh094@gmail.com",
"Eshagh shahidani",
65
],
[
"dani.behzi@ubuntu.com",
"Danial Behzadi",
40
]
]
},
{
"Polish": [
[
"pwrzonca@gmail.com",
"Pawe\u0142 Rzo\u0144ca",
77
],
[
"sto@tutanota.de",
"WaldiS",
38
],
[
"gnu.ewm@protonmail.com",
"Eryk Michalak",
10
],
[
"krzys.chorzempa@gmail.com",
"Krzysztof Chorzempa",
6
]
]
},
{
"Portuguese": [
[
"pedro.hvn.2018@gmail.com",
"KrulesExGamer",
70
],
[
"ssantos@web.de",
"ssantos",
57
],
[
"dyegoaurelio@gmail.com",
"dyegoaurelio",
8
]
]
},
{
"Portuguese (Brazil)": [
[
"mr-isaac@ig.com.br",
"Isaac Dias",
93
],
[
"fefehex12@gmail.com",
"Fernando Lopes",
51
],
[
"gutojusto22@gmail.com",
"Gustavo",
24
]
]
},
{
"Romanian": [
[
"softexpert@gmail.com",
"SoftExpert",
132
]
]
},
{
"Russian": [
[
"lenemter@gmail.com",
"lenemter",
49
],
[
"franigoyt@gmail.com",
"ANIGO R. (AR)",
49
],
[
"eg.ermakov2016@yandex.ru",
"\u0415\u0433\u043e\u0440 \u0415\u0440\u043c\u0430\u043a\u043e\u0432",
33
],
[
"ddaudix@gmail.com",
"Daudix UFO",
31
],
[
"sergei@racingrebel.com",
"\u041c\u0438\u0441\u0442\u0435\u0440 \u041f\u0435\u0440\u0435\u0432\u043e\u0434",
11
]
]
},
{
"Slovak": [
[
"jose1711@gmail.com",
"Jose Riha",
128
],
[
"salka.milan@googlemail.com",
"Milan \u0160alka",
12
]
]
},
{
"Spanish": [
[
"oscfdezdz@tuta.io",
"\u00d3scar Fern\u00e1ndez D\u00edaz",
60
],
[
"hasecilu@tuta.io",
"Ulices",
39
],
[
"fran-carro@hotmail.es",
"gallegonovato",
20
],
[
"andres.segarra.aparicio@gmail.com",
"Andres Segarra",
10
],
[
"fitojb@ubuntu.com",
"Adolfo Jayme Barrientos",
7
],
[
"jorgec2005@gmail.com",
"Jorge C",
5
]
]
},
{
"Swedish": [
[
"swedishsailfishosuser@tutanota.com",
"Kristoffer Grundstr\u00f6m",
50
],
[
"droidbittin@gmail.com",
"Luna Jernberg",
9
],
[
"obslsessed@duck.com",
"obslsessed",
5
]
]
},
{
"Turkish": [
[
"libreajans@gmail.com",
"Sabri \u00dcnal",
74
],
[
"muhaaliss@pm.me",
"Muha Aliss",
52
],
[
"tcreeper.earth@gmail.com",
"TCr3",
24
]
]
},
{
"Ukrainian": [
[
"yuridm@gmail.com",
"\u042e\u0440\u0456\u0439 \u0414\u043c\u0438\u0442\u0440\u0435\u043d\u043a\u043e",
48
],
[
"911us@duck.com",
"Petro S.",
44
],
[
"cakestwix1@gmail.com",
"CakesTwix",
35
],
[
"sergiy.goncharuk.1@gmail.com",
"\u0421\u0435\u0440\u0433\u0456\u0439",
6
]
]
} }
] ]
-23
View File
@@ -1,23 +0,0 @@
/*
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
SPDX-License-Identifier: CC0-1.0
*/
row {
padding: 8px;
}
.effect-row {
padding: 0;
}
.effect-row-header,
.effect-row list {
padding: 8px;
border: 0 solid @borders;
border-bottom-width: 1px;
}
.revealer-arrow {
margin-right: 6px;
}
-26
View File
@@ -1,26 +0,0 @@
/*
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
SPDX-License-Identifier: CC0-1.0
*/
/* These are only used if not using libadwaita */
.effect-row {
padding: 0;
}
.effect-row-header,
.effect-row list {
padding: 8px;
border: 0 solid @borders;
border-bottom-width: 1px;
}
.revealer-arrow {
margin-right: 6px;
transition: transform 250ms;
}
.revealer-arrow.revealed {
transform: rotate(180deg);
}
+20 -12
View File
@@ -21,20 +21,12 @@ SPDX-License-Identifier: GPL-3.0-or-later
<attribute name="label" translatable="yes">View Matching Wallpapers</attribute> <attribute name="label" translatable="yes">View Matching Wallpapers</attribute>
<attribute name="action">prefs.wallpapers</attribute> <attribute name="action">prefs.wallpapers</attribute>
</item> </item>
<item>
<attribute name="label" translatable="yes">View Donors Hall-of-Fame</attribute>
<attribute name="action">prefs.show-sponsors</attribute>
</item>
</section> </section>
<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> <submenu>
<attribute name="label" translatable="yes">Donate</attribute> <attribute name="label" translatable="yes">Donate</attribute>
<item> <item>
@@ -49,7 +41,23 @@ SPDX-License-Identifier: GPL-3.0-or-later
<attribute name="label">PayPal</attribute> <attribute name="label">PayPal</attribute>
<attribute name="action">prefs.donate-paypal</attribute> <attribute name="action">prefs.donate-paypal</attribute>
</item> </item>
<item>
<attribute name="label">Crypto</attribute>
<attribute name="action">prefs.donate-crypto</attribute>
</item>
</submenu> </submenu>
<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>
</section> </section>
<section> <section>
<item> <item>
-281
View File
@@ -1,281 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
SPDX-License-Identifier: GPL-3.0-or-later
-->
<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="GtkRevealer" id="apparition-prefs">
<child>
<object class="GtkListBox">
<property name="selection-mode">none</property>
<child>
<object class="GtkListBoxRow">
<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="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="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="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="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>
</interface>
-229
View File
@@ -1,229 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
SPDX-License-Identifier: GPL-3.0-or-later
-->
<interface domain="burn-my-windows">
<object class="GtkAdjustment" id="doom-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="doom-horizontal-scale">
<property name="upper">50</property>
<property name="lower">1</property>
<property name="step-increment">1</property>
<property name="page-increment">10</property>
</object>
<object class="GtkAdjustment" id="doom-vertical-scale">
<property name="upper">50</property>
<property name="lower">1</property>
<property name="step-increment">1</property>
<property name="page-increment">10</property>
</object>
<object class="GtkAdjustment" id="doom-pixel-size">
<property name="upper">50</property>
<property name="lower">1</property>
<property name="step-increment">1</property>
<property name="page-increment">10</property>
</object>
<object class="GtkRevealer" id="doom-prefs">
<child>
<object class="GtkListBox">
<property name="selection-mode">none</property>
<child>
<object class="GtkListBoxRow">
<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">doom-animation-time</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-doom-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="activatable">0</property>
<child>
<object class="GtkBox">
<property name="spacing">8</property>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Horizontal 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">doom-horizontal-scale</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-doom-horizontal-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="activatable">0</property>
<child>
<object class="GtkBox">
<property name="spacing">8</property>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Vertical 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">doom-vertical-scale</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-doom-vertical-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="activatable">0</property>
<child>
<object class="GtkBox">
<property name="spacing">8</property>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Pixel Size</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">doom-pixel-size</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-doom-pixel-size">
<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>
</interface>
-167
View File
@@ -1,167 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
SPDX-License-Identifier: GPL-3.0-or-later
-->
<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="GtkRevealer" id="energize-a-prefs">
<child>
<object class="GtkListBox">
<property name="selection-mode">none</property>
<child>
<object class="GtkListBoxRow">
<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="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="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>
<property name="margin-start">8</property>
<property name="margin-end">8</property>
<property name="width-request">250</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>
</interface>
-168
View File
@@ -1,168 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
SPDX-License-Identifier: GPL-3.0-or-later
-->
<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="GtkRevealer" id="energize-b-prefs">
<child>
<object class="GtkListBox">
<property name="selection-mode">none</property>
<child>
<object class="GtkListBoxRow">
<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="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="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>
<property name="margin-start">8</property>
<property name="margin-end">8</property>
<property name="width-request">250</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>
</interface>
-337
View File
@@ -1,337 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
SPDX-License-Identifier: GPL-3.0-or-later
-->
<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="fire-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="fire-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="GtkRevealer" id="fire-prefs">
<child>
<object class="GtkListBox">
<property name="selection-mode">none</property>
<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">
<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="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="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">fire-scale</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-fire-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="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">fire-movement-speed</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-fire-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="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="fire-3d-noise">
<property name="halign">end</property>
<property name="valign">center</property>
<property name="margin-end">8</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-fire-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="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>
</interface>
-281
View File
@@ -1,281 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
SPDX-License-Identifier: GPL-3.0-or-later
-->
<interface domain="burn-my-windows">
<object class="GtkAdjustment" id="glide-animation-time">
<property name="upper">2000</property>
<property name="lower">100</property>
<property name="step-increment">1</property>
<property name="page-increment">100</property>
</object>
<object class="GtkAdjustment" id="glide-scale">
<property name="upper">1</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="glide-squish">
<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="glide-tilt">
<property name="upper">1</property>
<property name="lower">-1</property>
<property name="step-increment">0.01</property>
<property name="page-increment">0.1</property>
</object>
<object class="GtkAdjustment" id="glide-shift">
<property name="upper">1</property>
<property name="lower">-1</property>
<property name="step-increment">0.01</property>
<property name="page-increment">0.1</property>
</object>
<object class="GtkRevealer" id="glide-prefs">
<child>
<object class="GtkListBox">
<property name="selection-mode">none</property>
<child>
<object class="GtkListBoxRow">
<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">glide-animation-time</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-glide-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="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">glide-scale</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-glide-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="activatable">0</property>
<child>
<object class="GtkBox">
<property name="spacing">8</property>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Squish</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">glide-squish</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-glide-squish">
<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="activatable">0</property>
<child>
<object class="GtkBox">
<property name="spacing">8</property>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Tilt</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">glide-tilt</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-glide-tilt">
<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="activatable">0</property>
<child>
<object class="GtkBox">
<property name="spacing">8</property>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Shift</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">glide-shift</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-glide-shift">
<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>
</interface>
-271
View File
@@ -1,271 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
SPDX-License-Identifier: GPL-3.0-or-later
-->
<interface domain="burn-my-windows">
<object class="GtkAdjustment" id="glitch-animation-time">
<property name="upper">2000</property>
<property name="lower">100</property>
<property name="step-increment">1</property>
<property name="page-increment">100</property>
</object>
<object class="GtkAdjustment" id="glitch-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="glitch-strength">
<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="glitch-speed">
<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="GtkRevealer" id="glitch-prefs">
<child>
<object class="GtkListBox">
<property name="selection-mode">none</property>
<child>
<object class="GtkListBoxRow">
<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">glitch-animation-time</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-glitch-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="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">glitch-scale</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-glitch-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="activatable">0</property>
<child>
<object class="GtkBox">
<property name="spacing">8</property>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Strength</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">glitch-strength</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-glitch-strength">
<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="activatable">0</property>
<child>
<object class="GtkBox">
<property name="spacing">8</property>
<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">glitch-speed</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-glitch-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="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="glitch-color">
<property name="use_alpha">1</property>
<property name="show_editor">1</property>
<property name="margin-start">8</property>
<property name="margin-end">8</property>
<property name="width-request">250</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-glitch-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>
</interface>
-320
View File
@@ -1,320 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
SPDX-License-Identifier: GPL-3.0-or-later
-->
<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="GtkRevealer" id="hexagon-prefs">
<child>
<object class="GtkListBox">
<property name="selection-mode">none</property>
<child>
<object class="GtkListBoxRow">
<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="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="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="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>
<property name="margin-start">8</property>
<property name="margin-end">8</property>
<property name="width-request">250</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="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>
<property name="margin-start">8</property>
<property name="margin-end">8</property>
<property name="width-request">250</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="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>
<property name="margin-end">8</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>
</interface>
-278
View File
@@ -1,278 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
SPDX-License-Identifier: GPL-3.0-or-later
-->
<interface domain="burn-my-windows">
<object class="GtkAdjustment" id="incinerate-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="incinerate-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="incinerate-turbulence">
<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="GtkRevealer" id="incinerate-prefs">
<child>
<object class="GtkListBox">
<property name="selection-mode">none</property>
<child>
<object class="GtkListBoxRow">
<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">incinerate-animation-time</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-incinerate-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="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">incinerate-scale</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-incinerate-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="activatable">0</property>
<child>
<object class="GtkBox">
<property name="spacing">8</property>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Turbulence</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">incinerate-turbulence</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-incinerate-turbulence">
<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="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">Start at Pointer</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 disabled, a random location will be chosen.</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="incinerate-use-pointer">
<property name="halign">end</property>
<property name="valign">center</property>
<property name="margin-end">8</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-incinerate-use-pointer">
<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="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="incinerate-color">
<property name="use_alpha">0</property>
<property name="show_editor">1</property>
<property name="margin-start">8</property>
<property name="margin-end">8</property>
<property name="width-request">250</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-incinerate-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>
</interface>
-177
View File
@@ -1,177 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
SPDX-License-Identifier: GPL-3.0-or-later
-->
<interface domain="burn-my-windows">
<object class="GtkAdjustment" id="pixel-wheel-animation-time">
<property name="upper">2000</property>
<property name="lower">100</property>
<property name="step-increment">1</property>
<property name="page-increment">100</property>
</object>
<object class="GtkAdjustment" id="pixel-wheel-spoke-count">
<property name="upper">50</property>
<property name="lower">1</property>
<property name="step-increment">1</property>
<property name="page-increment">10</property>
</object>
<object class="GtkAdjustment" id="pixel-wheel-pixel-size">
<property name="upper">50</property>
<property name="lower">1</property>
<property name="step-increment">1</property>
<property name="page-increment">10</property>
</object>
<object class="GtkRevealer" id="pixel-wheel-prefs">
<child>
<object class="GtkListBox">
<property name="selection-mode">none</property>
<child>
<object class="GtkListBoxRow">
<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">pixel-wheel-animation-time</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-pixel-wheel-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="activatable">0</property>
<child>
<object class="GtkBox">
<property name="spacing">8</property>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Spoke 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">pixel-wheel-spoke-count</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-pixel-wheel-spoke-count">
<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="activatable">0</property>
<child>
<object class="GtkBox">
<property name="spacing">8</property>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Pixel Size</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">pixel-wheel-pixel-size</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-pixel-wheel-pixel-size">
<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>
</interface>
-132
View File
@@ -1,132 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
SPDX-License-Identifier: GPL-3.0-or-later
-->
<interface domain="burn-my-windows">
<object class="GtkAdjustment" id="pixel-wipe-animation-time">
<property name="upper">5000</property>
<property name="lower">100</property>
<property name="step-increment">1</property>
<property name="page-increment">100</property>
</object>
<object class="GtkAdjustment" id="pixel-wipe-direction">
<property name="upper">360</property>
<property name="lower">0</property>
<property name="step-increment">1</property>
<property name="page-increment">10</property>
</object>
<object class="GtkAdjustment" id="pixel-wipe-pixel-size">
<property name="upper">50</property>
<property name="lower">1</property>
<property name="step-increment">1</property>
<property name="page-increment">10</property>
</object>
<object class="GtkRevealer" id="pixel-wipe-prefs">
<child>
<object class="GtkListBox">
<property name="selection-mode">none</property>
<child>
<object class="GtkListBoxRow">
<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">pixel-wipe-animation-time</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-pixel-wipe-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="activatable">0</property>
<child>
<object class="GtkBox">
<property name="spacing">8</property>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Pixel Size</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">pixel-wipe-pixel-size</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-pixel-wipe-pixel-size">
<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>
</interface>
-177
View File
@@ -1,177 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
SPDX-License-Identifier: GPL-3.0-or-later
-->
<interface domain="burn-my-windows">
<object class="GtkAdjustment" id="pixelate-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="pixelate-noise">
<property name="upper">100</property>
<property name="lower">1</property>
<property name="step-increment">1</property>
<property name="page-increment">10</property>
</object>
<object class="GtkAdjustment" id="pixelate-pixel-size">
<property name="upper">50</property>
<property name="lower">1</property>
<property name="step-increment">1</property>
<property name="page-increment">10</property>
</object>
<object class="GtkRevealer" id="pixelate-prefs">
<child>
<object class="GtkListBox">
<property name="selection-mode">none</property>
<child>
<object class="GtkListBoxRow">
<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">pixelate-animation-time</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-pixelate-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="activatable">0</property>
<child>
<object class="GtkBox">
<property name="spacing">8</property>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">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="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">pixelate-noise</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-pixelate-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="activatable">0</property>
<child>
<object class="GtkBox">
<property name="spacing">8</property>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Pixel Size</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">pixelate-pixel-size</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-pixelate-pixel-size">
<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>
</interface>
-271
View File
@@ -1,271 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
SPDX-License-Identifier: GPL-3.0-or-later
-->
<interface domain="burn-my-windows">
<object class="GtkAdjustment" id="portal-animation-time">
<property name="upper">5000</property>
<property name="lower">500</property>
<property name="step-increment">1</property>
<property name="page-increment">100</property>
</object>
<object class="GtkAdjustment" id="portal-rotation-speed">
<property name="upper">2</property>
<property name="lower">-2</property>
<property name="step-increment">0.1</property>
<property name="page-increment">1</property>
</object>
<object class="GtkAdjustment" id="portal-whirling">
<property name="upper">2</property>
<property name="lower">-2</property>
<property name="step-increment">0.1</property>
<property name="page-increment">1</property>
</object>
<object class="GtkAdjustment" id="portal-details">
<property name="upper">100</property>
<property name="lower">1</property>
<property name="step-increment">1</property>
<property name="page-increment">10</property>
</object>
<object class="GtkRevealer" id="portal-prefs">
<child>
<object class="GtkListBox">
<property name="selection-mode">none</property>
<child>
<object class="GtkListBoxRow">
<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">portal-animation-time</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-portal-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="activatable">0</property>
<child>
<object class="GtkBox">
<property name="spacing">8</property>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Rotation 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">portal-rotation-speed</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-portal-rotation-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="activatable">0</property>
<child>
<object class="GtkBox">
<property name="spacing">8</property>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Whirling</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">portal-whirling</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-portal-whirling">
<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="activatable">0</property>
<child>
<object class="GtkBox">
<property name="spacing">8</property>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Details</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">portal-details</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-portal-details">
<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="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="portal-color">
<property name="use_alpha">0</property>
<property name="show_editor">1</property>
<property name="margin-start">8</property>
<property name="margin-end">8</property>
<property name="width-request">250</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-portal-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>
</interface>
-519
View File
@@ -1,519 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
SPDX-License-Identifier: GPL-3.0-or-later
-->
<interface domain="burn-my-windows">
<requires lib="gtk" version="3.0" />
<!-- This will be added to the header bar. -->
<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">heart-filled-symbolic</property>
<property name="visible">1</property>
<property name="icon-size">1</property>
</object>
</child>
</object>
<!-- This will be added to the header bar. -->
<object class="GtkBox" id="profile-button">
<property name="halign">center</property>
<property name="visible">1</property>
<child>
<object class="GtkMenuButton">
<property name="menu-model">profile-menu</property>
<property name="visible">1</property>
<child>
<object class="GtkBox">
<property name="visible">1</property>
<property name="spacing">6</property>
<child>
<object class="GtkLabel" id="choose-profile-button">
<property name="visible">1</property>
</object>
</child>
<child>
<object class="GtkImage">
<property name="icon-name">pan-down-symbolic</property>
<property name="visible">1</property>
<property name="icon-size">1</property>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkToggleButton" id="edit-profile-button">
<property name="valign">center</property>
<property name="visible">1</property>
<child>
<object class="GtkImage">
<property name="icon-name">bmw-edit-profile-symbolic</property>
<property name="visible">1</property>
<property name="icon-size">1</property>
</object>
</child>
</object>
</child>
<style>
<class name="linked" />
</style>
</object>
<object class="GtkStack" id="general-prefs">
<property name="transition-type">over-down-up</property>
<child>
<object class="GtkBox" id="effect-editor">
<property name="orientation">vertical</property>
<child>
<object class="GtkInfoBar" id="update-info">
<property name="message-type">info</property>
<property name="revealed">false</property>
<property name="show-close-button">true</property>
<child internal-child="content_area">
<object class="GtkBox">
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Burn-My-Windows has been updated!</property>
<property name="margin-start">6</property>
</object>
</child>
</object>
</child>
<child internal-child="action_area">
<object class="GtkBox">
<child>
<object class="GtkButton" id="update-info-button">
<property name="label" translatable="yes">View Changelog</property>
<property name="action-name">prefs.changelog</property>
</object>
</child>
</object>
</child>
<action-widgets>
<action-widget response="-1">update-info-button</action-widget>
</action-widgets>
</object>
</child>
<child>
<object class="GtkScrolledWindow">
<property name="hscrollbar-policy">never</property>
<property name="vexpand">true</property>
<child>
<object class="GtkBox">
<property name="orientation">vertical</property>
<property name="margin-top">20</property>
<property name="margin-bottom">20</property>
<property name="margin-start">20</property>
<property name="margin-end">20</property>
<property name="spacing">5</property>
<child>
<object class="GtkBox">
<child>
<object class="GtkBox">
<property name="orientation">vertical</property>
<property name="spacing">5</property>
<property name="hexpand">true</property>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Effect Selection</property>
<property name="halign">start</property>
<style>
<class name="heading" />
</style>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">If multiple are selected, one is chosen randomly.</property>
<property name="halign">start</property>
</object>
</child>
</object>
</child>
<child>
<object class="GtkBox">
<property name="valign">center</property>
<style>
<class name="linked" />
</style>
<child>
<object class="GtkButton" id="choose-all-effects-button">
<property name="label" translatable="yes">All</property>
</object>
</child>
<child>
<object class="GtkButton" id="choose-no-effects-button">
<property name="label" translatable="yes">None</property>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkFrame">
<child>
<object class="GtkListBox" id="effects-group">
<property name="selection-mode">none</property>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkBox" id="profile-editor">
<property name="orientation">vertical</property>
<property name="margin-top">20</property>
<property name="margin-bottom">20</property>
<property name="margin-start">20</property>
<property name="margin-end">20</property>
<property name="spacing">5</property>
<style>
<class name="background" />
</style>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Effect Profile Constraints</property>
<property name="halign">start</property>
<style>
<class name="heading" />
</style>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Define when the current effect settings should be used.</property>
<property name="halign">start</property>
</object>
</child>
<child>
<object class="GtkFrame">
<property name="margin-top">5</property>
<property name="margin-bottom">15</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">Application</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="GtkBox">
<property name="valign">center</property>
<style>
<class name="linked" />
</style>
<child>
<object class="GtkEntry" id="profile-app">
<property name="width-request">300</property>
<property name="placeholder-text" translatable="yes">Any</property>
</object>
</child>
<child>
<object class="GtkButton" id="profile-choose-app-button">
<property name="valign">center</property>
<child>
<object class="GtkImage">
<property name="icon-name">bmw-select-app-symbolic</property>
<property name="icon-size">1</property>
</object>
</child>
</object>
</child>
</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 Type</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="GtkComboBoxText" id="profile-animation-type">
<property name="width-request">200</property>
<items>
<item translatable="yes">Any</item>
<item translatable="yes">Opening Windows</item>
<item translatable="yes">Closing Windows</item>
</items>
</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">Window Type</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="GtkComboBoxText" id="profile-window-type">
<property name="width-request">200</property>
<items>
<item translatable="yes">Any</item>
<item translatable="yes">Normal Windows</item>
<item translatable="yes">Dialog Windows</item>
</items>
</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 Scheme</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="GtkComboBoxText" id="profile-color-scheme">
<property name="width-request">200</property>
<items>
<item translatable="yes">Any</item>
<item translatable="yes">Default Color Scheme</item>
<item translatable="yes">Dark Color Scheme</item>
</items>
</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">Power Mode</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="GtkComboBoxText" id="profile-power-mode">
<property name="width-request">200</property>
<items>
<item translatable="yes">Any</item>
<item translatable="yes">On Battery</item>
<item translatable="yes">Plugged In</item>
</items>
</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">Power Profile</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="GtkComboBoxText" id="profile-power-profile">
<property name="width-request">200</property>
<items>
<item translatable="yes">Any</item>
<item translatable="yes">Power-Saver Mode</item>
<item translatable="yes">Balanced Mode</item>
<item translatable="yes">Performance Mode</item>
<item translatable="yes">Power Saver or Balanced</item>
<item translatable="yes">Balanced or Performance</item>
</items>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Advanced Profile Options</property>
<property name="halign">start</property>
<style>
<class name="heading" />
</style>
</object>
</child>
<child>
<object class="GtkFrame">
<property name="margin-top">5</property>
<property name="margin-bottom">15</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="GtkBox">
<property name="orientation">vertical</property>
<property name="spacing">3</property>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">High Priority</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">Use this profile even if there are better matching profiles.</property>
<property name="xalign">0</property>
<property name="halign">start</property>
<property name="valign">center</property>
<property name="hexpand">1</property>
<property name="ellipsize">end</property>
<style>
<class name="dim-label" />
<class name="caption" />
</style>
</object>
</child>
</object>
</child>
<child>
<object class="GtkSwitch" id="profile-high-priority">
<property name="valign">center</property>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkButton">
<property name="action-name">prefs.profile-delete</property>
<property name="label" translatable="yes">Delete this Profile...</property>
<property name="halign">start</property>
</object>
</child>
</object>
</child>
</object>
</interface>
-271
View File
@@ -1,271 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
SPDX-License-Identifier: GPL-3.0-or-later
-->
<interface domain="burn-my-windows">
<object class="GtkAdjustment" id="tv-glitch-animation-time">
<property name="upper">2000</property>
<property name="lower">100</property>
<property name="step-increment">1</property>
<property name="page-increment">100</property>
</object>
<object class="GtkAdjustment" id="tv-glitch-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="tv-glitch-strength">
<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="tv-glitch-speed">
<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="GtkRevealer" id="tv-glitch-prefs">
<child>
<object class="GtkListBox">
<property name="selection-mode">none</property>
<child>
<object class="GtkListBoxRow">
<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-glitch-animation-time</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-tv-glitch-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="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">tv-glitch-scale</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-tv-glitch-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="activatable">0</property>
<child>
<object class="GtkBox">
<property name="spacing">8</property>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Strength</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">tv-glitch-strength</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-tv-glitch-strength">
<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="activatable">0</property>
<child>
<object class="GtkBox">
<property name="spacing">8</property>
<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">tv-glitch-speed</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-tv-glitch-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="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-glitch-color">
<property name="use_alpha">1</property>
<property name="show_editor">1</property>
<property name="margin-start">8</property>
<property name="margin-end">8</property>
<property name="width-request">250</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-tv-glitch-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>
</interface>
-115
View File
@@ -1,115 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
SPDX-License-Identifier: GPL-3.0-or-later
-->
<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="GtkRevealer" id="tv-prefs">
<child>
<object class="GtkListBox">
<property name="selection-mode">none</property>
<child>
<object class="GtkListBoxRow">
<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="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">1</property>
<property name="show_editor">1</property>
<property name="margin-start">8</property>
<property name="margin-end">8</property>
<property name="width-request">250</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>
</interface>
-175
View File
@@ -1,175 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
SPDX-License-Identifier: GPL-3.0-or-later
-->
<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="GtkRevealer" id="wisps-prefs">
<child>
<object class="GtkListBox">
<property name="selection-mode">none</property>
<child>
<object class="GtkListBoxRow">
<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="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="activatable">0</property>
<child>
<object class="GtkBox">
<property name="spacing">8</property>
<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-1">
<property name="show_editor">1</property>
</object>
</child>
<child>
<object class="GtkColorButton" id="wisps-color-2">
<property name="show_editor">1</property>
</object>
</child>
<child>
<object class="GtkColorButton" id="wisps-color-3">
<property name="show_editor">1</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-wisps-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>
</interface>
-249
View File
@@ -1,249 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
SPDX-License-Identifier: GPL-3.0-or-later
-->
<interface domain="burn-my-windows">
<object class="GtkRevealer" id="apparition-prefs">
<child>
<object class="GtkListBox">
<property name="selection-mode">none</property>
<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>
</interface>
-259
View File
@@ -1,259 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
SPDX-License-Identifier: GPL-3.0-or-later
-->
<interface domain="burn-my-windows">
<object class="GtkRevealer" id="broken-glass-prefs">
<child>
<object class="GtkListBox">
<property name="selection-mode">none</property>
<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>
<property name="margin-start">8</property>
<property name="margin-end">8</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>
</interface>
-203
View File
@@ -1,203 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
SPDX-License-Identifier: GPL-3.0-or-later
-->
<interface domain="burn-my-windows">
<object class="GtkRevealer" id="doom-prefs">
<child>
<object class="GtkListBox">
<property name="selection-mode">none</property>
<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="doom-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-doom-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">Horizontal 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="doom-horizontal-scale">
<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-doom-horizontal-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">Vertical 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="doom-vertical-scale">
<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-doom-vertical-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">Pixel Size</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="doom-pixel-size">
<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-doom-pixel-size">
<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>
</interface>
-150
View File
@@ -1,150 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
SPDX-License-Identifier: GPL-3.0-or-later
-->
<interface domain="burn-my-windows">
<object class="GtkRevealer" id="energize-a-prefs">
<child>
<object class="GtkListBox">
<property name="selection-mode">none</property>
<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>
<property name="margin-start">8</property>
<property name="margin-end">8</property>
<property name="width-request">250</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>
</interface>
-150
View File
@@ -1,150 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
SPDX-License-Identifier: GPL-3.0-or-later
-->
<interface domain="burn-my-windows">
<object class="GtkRevealer" id="energize-b-prefs">
<child>
<object class="GtkListBox">
<property name="selection-mode">none</property>
<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>
<property name="margin-start">8</property>
<property name="margin-end">8</property>
<property name="width-request">250</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>
</interface>
-295
View File
@@ -1,295 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
SPDX-License-Identifier: GPL-3.0-or-later
-->
<interface domain="burn-my-windows">
<object class="GtkRevealer" id="fire-prefs">
<child>
<object class="GtkListBox">
<property name="selection-mode">none</property>
<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" translatable="yes">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="fire-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-fire-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="fire-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-fire-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="fire-3d-noise">
<property name="halign">end</property>
<property name="valign">center</property>
<property name="margin-start">8</property>
<property name="margin-end">8</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-fire-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>
<property name="margin-end">8</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>
</interface>
-252
View File
@@ -1,252 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
SPDX-License-Identifier: GPL-3.0-or-later
-->
<interface domain="burn-my-windows">
<object class="GtkRevealer" id="glide-prefs">
<child>
<object class="GtkListBox">
<property name="selection-mode">none</property>
<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="glide-animation-time">
<property name="upper">2000</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-glide-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="glide-scale">
<property name="upper">1</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-glide-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">Squish</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="glide-squish">
<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-glide-squish">
<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">Tilt</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="glide-tilt">
<property name="upper">1</property>
<property name="lower">-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-glide-tilt">
<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">Shift</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="glide-shift">
<property name="upper">1</property>
<property name="lower">-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-glide-shift">
<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>
</interface>
-242
View File
@@ -1,242 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
SPDX-License-Identifier: GPL-3.0-or-later
-->
<interface domain="burn-my-windows">
<object class="GtkRevealer" id="glitch-prefs">
<child>
<object class="GtkListBox">
<property name="selection-mode">none</property>
<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="glitch-animation-time">
<property name="upper">2000</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-glitch-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="glitch-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-glitch-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">Strength</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="glitch-strength">
<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-glitch-strength">
<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="glitch-speed">
<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-glitch-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="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="glitch-color">
<property name="use_alpha">1</property>
<property name="show_editor">1</property>
<property name="margin-start">8</property>
<property name="margin-end">8</property>
<property name="width-request">250</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-glitch-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>
</interface>
-288
View File
@@ -1,288 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
SPDX-License-Identifier: GPL-3.0-or-later
-->
<interface domain="burn-my-windows">
<object class="GtkRevealer" id="hexagon-prefs">
<child>
<object class="GtkListBox">
<property name="selection-mode">none</property>
<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>
<property name="margin-start">8</property>
<property name="margin-end">8</property>
<property name="width-request">250</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>
<property name="margin-start">8</property>
<property name="margin-end">8</property>
<property name="width-request">250</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>
<property name="margin-start">8</property>
<property name="margin-end">8</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>
</interface>
-251
View File
@@ -1,251 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
SPDX-License-Identifier: GPL-3.0-or-later
-->
<interface domain="burn-my-windows">
<object class="GtkRevealer" id="incinerate-prefs">
<child>
<object class="GtkListBox">
<property name="selection-mode">none</property>
<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="incinerate-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-incinerate-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="incinerate-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-incinerate-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">Turbulence</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="incinerate-turbulence">
<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-incinerate-turbulence">
<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">Start at Pointer</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 disabled, a random location will be chosen.</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="incinerate-use-pointer">
<property name="halign">end</property>
<property name="valign">center</property>
<property name="margin-start">8</property>
<property name="margin-end">8</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-incinerate-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>
<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="incinerate-color">
<property name="use_alpha">0</property>
<property name="show_editor">1</property>
<property name="margin-start">8</property>
<property name="margin-end">8</property>
<property name="width-request">250</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-incinerate-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>
</interface>
-279
View File
@@ -1,279 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
SPDX-License-Identifier: GPL-3.0-or-later
-->
<interface domain="burn-my-windows">
<object class="GtkRevealer" id="matrix-prefs">
<child>
<object class="GtkListBox">
<property name="selection-mode">none</property>
<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>
<property name="margin-start">8</property>
<property name="margin-end">8</property>
<property name="width-request">250</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>
<property name="margin-start">8</property>
<property name="margin-end">8</property>
<property name="width-request">250</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>
</interface>
-113
View File
@@ -1,113 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
SPDX-License-Identifier: GPL-3.0-or-later
-->
<interface domain="burn-my-windows">
<object class="GtkRevealer" id="paint-brush-prefs">
<child>
<object class="GtkListBox">
<property name="selection-mode">none</property>
<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="paint-brush-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-paint-brush-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">Brush Size</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="paint-brush-size">
<property name="upper">4</property>
<property name="lower">1</property>
<property name="step-increment">1</property>
<property name="page-increment">1</property>
</object>
</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-paint-brush-size">
<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>
</interface>
-159
View File
@@ -1,159 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
SPDX-License-Identifier: GPL-3.0-or-later
-->
<interface domain="burn-my-windows">
<object class="GtkRevealer" id="pixel-wheel-prefs">
<child>
<object class="GtkListBox">
<property name="selection-mode">none</property>
<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="pixel-wheel-animation-time">
<property name="upper">2000</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-pixel-wheel-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">Spoke 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="pixel-wheel-spoke-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-pixel-wheel-spoke-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">Pixel Size</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="pixel-wheel-pixel-size">
<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-pixel-wheel-pixel-size">
<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>
</interface>
-113
View File
@@ -1,113 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
SPDX-License-Identifier: GPL-3.0-or-later
-->
<interface domain="burn-my-windows">
<object class="GtkRevealer" id="pixel-wipe-prefs">
<child>
<object class="GtkListBox">
<property name="selection-mode">none</property>
<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="pixel-wipe-animation-time">
<property name="upper">5000</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-pixel-wipe-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">Pixel Size</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="pixel-wipe-pixel-size">
<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-pixel-wipe-pixel-size">
<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>
</interface>
-159
View File
@@ -1,159 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
SPDX-License-Identifier: GPL-3.0-or-later
-->
<interface domain="burn-my-windows">
<object class="GtkRevealer" id="pixelate-prefs">
<child>
<object class="GtkListBox">
<property name="selection-mode">none</property>
<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="pixelate-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-pixelate-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">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="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="pixelate-noise">
<property name="upper">100</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-pixelate-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">Pixel Size</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="pixelate-pixel-size">
<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-pixelate-pixel-size">
<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>
</interface>
-242
View File
@@ -1,242 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
SPDX-License-Identifier: GPL-3.0-or-later
-->
<interface domain="burn-my-windows">
<object class="GtkRevealer" id="portal-prefs">
<child>
<object class="GtkListBox">
<property name="selection-mode">none</property>
<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="portal-animation-time">
<property name="upper">5000</property>
<property name="lower">500</property>
<property name="step-increment">1</property>
<property name="page-increment">100</property>
</object>
</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-portal-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">Whirling</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="portal-whirling">
<property name="upper">2</property>
<property name="lower">-2</property>
<property name="step-increment">0.1</property>
<property name="page-increment">1</property>
</object>
</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-portal-whirling">
<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">Rotation 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="portal-rotation-speed">
<property name="upper">2</property>
<property name="lower">-2</property>
<property name="step-increment">0.1</property>
<property name="page-increment">1</property>
</object>
</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-portal-rotation-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="GtkLabel">
<property name="label" translatable="yes">Details</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="portal-details">
<property name="upper">100</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-portal-details">
<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="portal-color">
<property name="use_alpha">0</property>
<property name="show_editor">1</property>
<property name="margin-start">8</property>
<property name="margin-end">8</property>
<property name="width-request">250</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-portal-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>
</interface>
-475
View File
@@ -1,475 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
SPDX-License-Identifier: GPL-3.0-or-later
-->
<interface domain="burn-my-windows">
<requires lib="gtk" version="4.0" />
<!-- This will be added to the header bar. -->
<object class="GtkMenuButton" id="menu-button">
<property name="menu-model">main-menu</property>
<property name="icon-name">heart-filled-symbolic</property>
</object>
<!-- This will be added to the header bar. -->
<object class="GtkBox" id="profile-button">
<property name="halign">center</property>
<child>
<object class="GtkMenuButton" id="choose-profile-button">
<property name="menu-model">profile-menu</property>
</object>
</child>
<child>
<object class="GtkToggleButton" id="edit-profile-button">
<property name="icon-name">bmw-edit-profile-symbolic</property>
<property name="valign">center</property>
</object>
</child>
<style>
<class name="linked" />
</style>
</object>
<object class="GtkStack" id="general-prefs">
<property name="transition-type">over-down-up</property>
<child>
<object class="GtkBox" id="effect-editor">
<property name="orientation">vertical</property>
<child>
<object class="GtkInfoBar" id="update-info">
<property name="message-type">info</property>
<property name="revealed">false</property>
<property name="show-close-button">true</property>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Burn-My-Windows has been updated!</property>
<property name="margin-start">6</property>
</object>
</child>
<child type="action">
<object class="GtkButton" id="update-info-button">
<property name="label" translatable="yes">View Changelog</property>
<property name="action-name">prefs.changelog</property>
</object>
</child>
<action-widgets>
<action-widget response="-1">update-info-button</action-widget>
</action-widgets>
</object>
</child>
<child>
<object class="GtkScrolledWindow">
<property name="hscrollbar-policy">never</property>
<property name="vexpand">true</property>
<property name="child">
<object class="GtkBox">
<property name="orientation">vertical</property>
<property name="margin-top">20</property>
<property name="margin-bottom">20</property>
<property name="margin-start">20</property>
<property name="margin-end">20</property>
<property name="spacing">5</property>
<child>
<object class="GtkBox">
<child>
<object class="GtkBox">
<property name="orientation">vertical</property>
<property name="spacing">5</property>
<property name="hexpand">true</property>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Effect Selection</property>
<property name="halign">start</property>
<style>
<class name="heading" />
</style>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">If multiple are selected, one is chosen randomly.</property>
<property name="halign">start</property>
</object>
</child>
</object>
</child>
<child>
<object class="GtkBox">
<property name="valign">center</property>
<style>
<class name="linked" />
</style>
<child>
<object class="GtkButton" id="choose-all-effects-button">
<property name="label" translatable="yes">All</property>
</object>
</child>
<child>
<object class="GtkButton" id="choose-no-effects-button">
<property name="label" translatable="yes">None</property>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkFrame">
<property name="margin-top">6</property>
<child>
<object class="GtkListBox" id="effects-group">
<property name="selection-mode">none</property>
</object>
</child>
</object>
</child>
</object>
</property>
</object>
</child>
</object>
</child>
<child>
<object class="GtkBox" id="profile-editor">
<property name="orientation">vertical</property>
<property name="margin-top">20</property>
<property name="margin-bottom">20</property>
<property name="margin-start">20</property>
<property name="margin-end">20</property>
<property name="spacing">5</property>
<style>
<class name="background" />
</style>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Effect Profile Constraints</property>
<property name="halign">start</property>
<style>
<class name="heading" />
</style>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Define when the current effect settings should be used.</property>
<property name="halign">start</property>
</object>
</child>
<child>
<object class="GtkFrame">
<property name="margin-top">5</property>
<property name="margin-bottom">15</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">Application</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="GtkBox">
<property name="valign">center</property>
<style>
<class name="linked" />
</style>
<child>
<object class="GtkEntry" id="profile-app">
<property name="width-request">300</property>
<property name="placeholder-text" translatable="yes">Any</property>
</object>
</child>
<child>
<object class="GtkButton" id="profile-choose-app-button">
<property name="icon-name">bmw-select-app-symbolic</property>
<property name="valign">center</property>
</object>
</child>
</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 Type</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="GtkComboBoxText" id="profile-animation-type">
<property name="width-request">200</property>
<items>
<item translatable="yes">Any</item>
<item translatable="yes">Opening Windows</item>
<item translatable="yes">Closing Windows</item>
</items>
</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">Window Type</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="GtkComboBoxText" id="profile-window-type">
<property name="width-request">200</property>
<items>
<item translatable="yes">Any</item>
<item translatable="yes">Normal Windows</item>
<item translatable="yes">Dialog Windows</item>
</items>
</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 Scheme</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="GtkComboBoxText" id="profile-color-scheme">
<property name="width-request">200</property>
<items>
<item translatable="yes">Any</item>
<item translatable="yes">Default Color Scheme</item>
<item translatable="yes">Dark Color Scheme</item>
</items>
</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">Power Mode</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="GtkComboBoxText" id="profile-power-mode">
<property name="width-request">200</property>
<items>
<item translatable="yes">Any</item>
<item translatable="yes">On Battery</item>
<item translatable="yes">Plugged In</item>
</items>
</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">Power Profile</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="GtkComboBoxText" id="profile-power-profile">
<property name="width-request">200</property>
<items>
<item translatable="yes">Any</item>
<item translatable="yes">Power-Saver Mode</item>
<item translatable="yes">Balanced Mode</item>
<item translatable="yes">Performance Mode</item>
<item translatable="yes">Power Saver or Balanced</item>
<item translatable="yes">Balanced or Performance</item>
</items>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">Advanced Profile Options</property>
<property name="halign">start</property>
<style>
<class name="heading" />
</style>
</object>
</child>
<child>
<object class="GtkFrame">
<property name="margin-top">5</property>
<property name="margin-bottom">15</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="GtkBox">
<property name="orientation">vertical</property>
<property name="spacing">3</property>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">High Priority</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">Use this profile even if there are better matching profiles.</property>
<property name="xalign">0</property>
<property name="halign">start</property>
<property name="valign">center</property>
<property name="hexpand">1</property>
<property name="ellipsize">end</property>
<style>
<class name="dim-label" />
<class name="caption" />
</style>
</object>
</child>
</object>
</child>
<child>
<object class="GtkSwitch" id="profile-high-priority">
<property name="valign">center</property>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkButton">
<property name="action-name">prefs.profile-delete</property>
<property name="label" translatable="yes">Delete this Profile...</property>
<property name="halign">start</property>
</object>
</child>
</object>
</child>
</object>
</interface>
-150
View File
@@ -1,150 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
SPDX-License-Identifier: GPL-3.0-or-later
-->
<interface domain="burn-my-windows">
<object class="GtkRevealer" id="snap-prefs">
<child>
<object class="GtkListBox">
<property name="selection-mode">none</property>
<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" 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="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" 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="snap-color">
<property name="use_alpha">1</property>
<property name="show_editor">1</property>
<property name="margin-start">8</property>
<property name="margin-end">8</property>
<property name="width-request">250</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-snap-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>
</interface>
-242
View File
@@ -1,242 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
SPDX-License-Identifier: GPL-3.0-or-later
-->
<interface domain="burn-my-windows">
<object class="GtkRevealer" id="trex-prefs">
<child>
<object class="GtkListBox">
<property name="selection-mode">none</property>
<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="trex-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-trex-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="trex-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-trex-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="trex-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-trex-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="trex-scratch-color">
<property name="use_alpha">1</property>
<property name="show_editor">1</property>
<property name="margin-start">8</property>
<property name="margin-end">8</property>
<property name="width-request">250</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-trex-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>
</interface>
-242
View File
@@ -1,242 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
SPDX-License-Identifier: GPL-3.0-or-later
-->
<interface domain="burn-my-windows">
<object class="GtkRevealer" id="tv-glitch-prefs">
<child>
<object class="GtkListBox">
<property name="selection-mode">none</property>
<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-glitch-animation-time">
<property name="upper">2000</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-glitch-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="tv-glitch-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-tv-glitch-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">Strength</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="tv-glitch-strength">
<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-tv-glitch-strength">
<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="tv-glitch-speed">
<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-tv-glitch-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="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-glitch-color">
<property name="use_alpha">1</property>
<property name="show_editor">1</property>
<property name="margin-start">8</property>
<property name="margin-end">8</property>
<property name="width-request">250</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-tv-glitch-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>
</interface>
-104
View File
@@ -1,104 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
SPDX-License-Identifier: GPL-3.0-or-later
-->
<interface domain="burn-my-windows">
<object class="GtkRevealer" id="tv-prefs">
<child>
<object class="GtkListBox">
<property name="selection-mode">none</property>
<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">1</property>
<property name="show_editor">1</property>
<property name="margin-start">8</property>
<property name="margin-end">8</property>
<property name="width-request">250</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>
</interface>
-156
View File
@@ -1,156 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
SPDX-License-Identifier: GPL-3.0-or-later
-->
<interface domain="burn-my-windows">
<object class="GtkRevealer" id="wisps-prefs">
<child>
<object class="GtkListBox">
<property name="selection-mode">none</property>
<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-1">
<property name="show_editor">1</property>
</object>
</child>
<child>
<object class="GtkColorButton" id="wisps-color-2">
<property name="show_editor">1</property>
</object>
</child>
<child>
<object class="GtkColorButton" id="wisps-color-3">
<property name="show_editor">1</property>
</object>
</child>
<child>
<object class="GtkButton" id="reset-wisps-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>
</interface>
+7 -62
View File
@@ -14,13 +14,8 @@
'use strict'; 'use strict';
const {Gio, GLib, GObject} = imports.gi; import Gio from 'gi://Gio';
import GLib from 'gi://GLib';
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;
////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////
// Burn-My-Windows allows applying different sets of effect settings under specific // // Burn-My-Windows allows applying different sets of effect settings under specific //
@@ -31,10 +26,12 @@ const utils = Me.imports.src.utils;
// via Gio.Settings objects. // // via Gio.Settings objects. //
////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////
var ProfileManager = class { export class ProfileManager {
// ------------------------------------------------------------------------- constructor // ------------------------------------------------------------------------- constructor
constructor() { constructor(metadata) {
this._metadata = metadata;
this._makeProfilesDir(); this._makeProfilesDir();
this.reloadProfiles(); this.reloadProfiles();
} }
@@ -151,58 +148,6 @@ var ProfileManager = class {
return priority; return priority;
} }
// Profiles are named according to their configuration. This method returns a localized
// string describing the settings of the profile.
getProfileName(settings) {
let items = [];
// If an app is configured, use it as first component for the profile's name.
const app = settings.get_string('profile-app');
if (app != '') {
items.push(app);
}
// Now add components to the name for each non-default profile option. Make sure that
// these are the same strings as used in the UI files!
const addComponent = (settingsKey, options) => {
const option = settings.get_int(settingsKey);
if (option > 0) {
items.push(options[option - 1]);
}
};
// clang-format off
addComponent('profile-animation-type', [_('Opening Windows'),
_('Closing Windows')]);
addComponent('profile-window-type', [_('Normal Windows'),
_('Dialog Windows')]);
addComponent('profile-color-scheme', [_('Default Color Scheme'),
_('Dark Color Scheme')]);
addComponent('profile-power-mode', [_('On Battery'),
_('Plugged In')]);
addComponent('profile-power-profile', [_('Power-Saver Mode'),
_('Balanced Mode'),
_('Performance Mode'),
_('Power Saver or Balanced'),
_('Balanced or Performance')]);
// clang-format on
// If the profile is a high-priority profile, also add this..
if (settings.get_boolean('profile-high-priority')) {
items.push(_('High Priority'));
}
let name = '';
if (items.length == 0) {
name = _('Standard Profile');
} else {
name = items.join(' · ');
}
return name;
}
// ----------------------------------------------------------------------- private stuff // ----------------------------------------------------------------------- private stuff
// Creates the directory ~/.config/burn-my-windows/profiles if it does not yet exist. // Creates the directory ~/.config/burn-my-windows/profiles if it does not yet exist.
@@ -221,7 +166,7 @@ var ProfileManager = class {
// Expect USER extensions to have a schemas/ subfolder, otherwise assume a // Expect USER extensions to have a schemas/ subfolder, otherwise assume a
// SYSTEM extension that has been installed in the same prefix as the shell // SYSTEM extension that has been installed in the same prefix as the shell
const schemaDir = Me.dir.get_child('schemas'); const schemaDir = this._metadata.dir.get_child('schemas');
let source; let source;
if (schemaDir.query_exists(null)) { if (schemaDir.query_exists(null)) {
source = Gio.SettingsSchemaSource.new_from_directory( source = Gio.SettingsSchemaSource.new_from_directory(
+11 -20
View File
@@ -14,13 +14,13 @@
'use strict'; 'use strict';
const {Gio, Shell, GObject, Clutter, Meta} = imports.gi; import Gio from 'gi://Gio';
const ByteArray = imports.byteArray; import Shell from 'gi://Shell';
import GObject from 'gi://GObject';
import Clutter from 'gi://Clutter';
import Meta from 'gi://Meta';
const Main = imports.ui.main; import * as utils from './utils.js';
const ExtensionUtils = imports.misc.extensionUtils;
const Me = imports.misc.extensionUtils.getCurrentExtension();
const utils = Me.imports.src.utils;
////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////
// This is the base class for all shaders of Burn-My-Windows. It automagically loads // // This is the base class for all shaders of Burn-My-Windows. It automagically loads //
@@ -47,7 +47,7 @@ const utils = Me.imports.src.utils;
// used to clean up any resources. // used to clean up any resources.
////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////
var Shader = GObject.registerClass( export var Shader = GObject.registerClass(
{ {
Signals: { Signals: {
'begin-animation': { 'begin-animation': {
@@ -191,10 +191,8 @@ var Shader = GObject.registerClass(
// to undo this. It is a pity that we have to do this here, as it is not really // to undo this. It is a pity that we have to do this here, as it is not really
// required to be done each frame. But it's the only place where we can do it. // required to be done each frame. But it's the only place where we can do it.
// https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2650 // https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2650
if (utils.shellVersionIsAtLeast(44, 2)) { this.get_pipeline().set_blend(
this.get_pipeline().set_blend( 'RGBA = ADD (SRC_COLOR * (SRC_COLOR[A]), DST_COLOR * (1-SRC_COLOR[A]))');
'RGBA = ADD (SRC_COLOR * (SRC_COLOR[A]), DST_COLOR * (1-SRC_COLOR[A]))');
}
this.set_uniform_float(this._uProgress, 1, [this._progress]); this.set_uniform_float(this._uProgress, 1, [this._progress]);
super.vfunc_paint_target(...params); super.vfunc_paint_target(...params);
@@ -202,18 +200,11 @@ var Shader = GObject.registerClass(
// --------------------------------------------------------------------- private stuff // --------------------------------------------------------------------- private stuff
// This loads the file at 'path' contained in the extension's resources to a
// JavaScript string.
_loadStringResource(path) {
const data = Gio.resources_lookup_data(path, 0);
return ByteArray.toString(ByteArray.fromGBytes(data));
}
// This loads a GLSL file from the extension's resources to a JavaScript string. The // This loads a GLSL file from the extension's resources to a JavaScript string. The
// code from "common.glsl" is prepended automatically. // code from "common.glsl" is prepended automatically.
_loadShaderResource(path) { _loadShaderResource(path) {
let common = this._loadStringResource('/shaders/common.glsl'); let common = utils.getStringResource('/shaders/common.glsl');
let code = this._loadStringResource(path); let code = utils.getStringResource(path);
// Add a trailing newline. Else the GLSL compiler complains... // Add a trailing newline. Else the GLSL compiler complains...
return common + '\n' + code + '\n'; return common + '\n' + code + '\n';
+5 -7
View File
@@ -14,18 +14,17 @@
'use strict'; 'use strict';
const GObject = imports.gi.GObject; import GObject from 'gi://GObject';
const ExtensionUtils = imports.misc.extensionUtils; import {Shader} from './Shader.js';
const Me = imports.misc.extensionUtils.getCurrentExtension();
////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////
// Each effect of Burn-My-Windows owns an instance of this class. It is used to created // // Each effect of Burn-My-Windows owns an instance of this class. It is used to create //
// shaders whenever a new one is required. It tries to re-use old shaders as much as // // shaders whenever a new one is required. It tries to re-use old shaders as much as //
// possible in order to avoid memory leaks. // // possible in order to avoid memory leaks. //
////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////
var ShaderFactory = class { export default class ShaderFactory {
// Creates a new ShaderFactory. Requires the nick of the effect and a callback function // Creates a new ShaderFactory. Requires the nick of the effect and a callback function
// which will be called whenever a new shader is created. // which will be called whenever a new shader is created.
@@ -62,8 +61,7 @@ var ShaderFactory = class {
// Only try to register the new type once. // Only try to register the new type once.
if (GObject.type_from_name(typeName) == null) { if (GObject.type_from_name(typeName) == null) {
const outerThis = this; const outerThis = this;
GObject.registerClass({GTypeName: typeName}, GObject.registerClass({GTypeName: typeName}, class ShaderImp extends Shader {
class Shader extends Me.imports.src.Shader.Shader {
// This will actually load the GLSL source code from the resources. // This will actually load the GLSL source code from the resources.
_init() { _init() {
super._init(outerThis._nick); super._init(outerThis._nick);
+7 -6
View File
@@ -15,12 +15,13 @@
'use strict'; 'use strict';
const {Gio, GLib} = imports.gi; import Gio from 'gi://Gio';
const Main = imports.ui.main; import GLib from 'gi://GLib';
const LookingGlass = imports.ui.lookingGlass;
const Me = imports.misc.extensionUtils.getCurrentExtension(); import * as Main from 'resource:///org/gnome/shell/ui/main.js';
const utils = Me.imports.src.utils; import * as LookingGlass from 'resource:///org/gnome/shell/ui/lookingGlass.js';
import * as utils from './utils.js';
////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////
// This is based on the window-picking functionality of the Blur-My-Shell extension. // // This is based on the window-picking functionality of the Blur-My-Shell extension. //
@@ -29,7 +30,7 @@ const utils = Me.imports.src.utils;
// picking. // // picking. //
////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////
var WindowPicker = class WindowPicker { export class WindowPicker {
// ------------------------------------------------------------------------- constructor // ------------------------------------------------------------------------- constructor
constructor() { constructor() {
+14 -12
View File
@@ -14,12 +14,14 @@
'use strict'; 'use strict';
const _ = imports.gettext.domain('burn-my-windows').gettext; import * as utils from '../utils.js';
const ExtensionUtils = imports.misc.extensionUtils; // We import the ShaderFactory only in the Shell process as it is not required in the
const Me = imports.misc.extensionUtils.getCurrentExtension(); // preferences process. The preferences process does not create any shader instances, it
const utils = Me.imports.src.utils; // only uses the static metadata of the effect.
const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory; const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js');
const _ = await utils.importGettext();
////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////
// This effect hides the actor by violently sucking it into the void of magic. // // This effect hides the actor by violently sucking it into the void of magic. //
@@ -28,14 +30,14 @@ const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
// The effect class can be used to get some metadata (like the effect's name or supported // 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 // GNOME Shell versions), to initialize the respective page of the settings dialog, as
// well as to create the actual shader for the effect. // well as to create the actual shader for the effect.
var Apparition = class { export default class Effect {
// The constructor creates a ShaderFactory which will be used by extension.js to create // 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 // 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 // GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
// newly created shader instance. // newly created shader instance.
constructor() { constructor() {
this.shaderFactory = new ShaderFactory(this.getNick(), (shader) => { this.shaderFactory = new ShaderFactory(Effect.getNick(), (shader) => {
// Store uniform locations of newly created shaders. // Store uniform locations of newly created shaders.
shader._uSeed = shader.get_uniform_location('uSeed'); shader._uSeed = shader.get_uniform_location('uSeed');
shader._uShake = shader.get_uniform_location('uShake'); shader._uShake = shader.get_uniform_location('uShake');
@@ -60,7 +62,7 @@ var Apparition = class {
// The effect is not available on GNOME Shell 3.36 as it requires scaling of the window // The effect is not available on GNOME Shell 3.36 as it requires scaling of the window
// actor. // actor.
getMinShellVersion() { static getMinShellVersion() {
return [3, 38]; return [3, 38];
} }
@@ -68,13 +70,13 @@ var Apparition = class {
// required. It should match the prefix of the settings keys which store whether the // required. It should match the prefix of the settings keys which store whether the
// effect is enabled currently (e.g. '*-enable-effect'), and its animation time // effect is enabled currently (e.g. '*-enable-effect'), and its animation time
// (e.g. '*-animation-time'). // (e.g. '*-animation-time').
getNick() { static getNick() {
return 'apparition'; return 'apparition';
} }
// This will be shown in the sidebar of the preferences dialog as well as in the // 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. // drop-down menus where the user can choose the effect.
getLabel() { static getLabel() {
return _('Apparition'); return _('Apparition');
} }
@@ -82,7 +84,7 @@ var Apparition = class {
// This is called by the preferences dialog whenever a new effect profile is loaded. It // This is called by the preferences dialog whenever a new effect profile is loaded. It
// binds all user interface elements to the respective settings keys of the profile. // binds all user interface elements to the respective settings keys of the profile.
bindPreferences(dialog) { static bindPreferences(dialog) {
dialog.bindAdjustment('apparition-randomness'); dialog.bindAdjustment('apparition-randomness');
dialog.bindAdjustment('apparition-animation-time'); dialog.bindAdjustment('apparition-animation-time');
dialog.bindAdjustment('apparition-twirl-intensity'); dialog.bindAdjustment('apparition-twirl-intensity');
@@ -95,7 +97,7 @@ var Apparition = class {
// The getActorScale() is called from extension.js to adjust the actor's size during the // 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 // animation. This is useful if the effect requires drawing something beyond the usual
// bounds of the actor. This only works for GNOME 3.38+. // bounds of the actor. This only works for GNOME 3.38+.
getActorScale(settings) { static getActorScale(settings, forOpening, actor) {
return {x: 2.0, y: 2.0}; return {x: 2.0, y: 2.0};
} }
} }
+17 -16
View File
@@ -14,12 +14,17 @@
'use strict'; 'use strict';
const _ = imports.gettext.domain('burn-my-windows').gettext; import * as utils from '../utils.js';
const ExtensionUtils = imports.misc.extensionUtils; // We import some modules only in the Shell process as they are not available in the
const Me = imports.misc.extensionUtils.getCurrentExtension(); // preferences process. They are used only in the creator function of the ShaderFactory
const utils = Me.imports.src.utils; // which is only called within GNOME Shell's process.
const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory; const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js');
const Clutter = await utils.importInShellOnly('gi://Clutter');
const GdkPixbuf = await utils.importInShellOnly('gi://GdkPixbuf');
const Cogl = await utils.importInShellOnly('gi://Cogl');
const _ = await utils.importGettext();
////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////
// This effect shatters the window into pieces. For an explanation how this works, look // // This effect shatters the window into pieces. For an explanation how this works, look //
@@ -40,18 +45,14 @@ const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
// The effect class can be used to get some metadata (like the effect's name or supported // 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 // GNOME Shell versions), to initialize the respective page of the settings dialog, as
// well as to create the actual shader for the effect. // well as to create the actual shader for the effect.
var BrokenGlass = class { export default class Effect {
// The constructor creates a ShaderFactory which will be used by extension.js to create // 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 // 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 // GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
// newly created shader instance. // newly created shader instance.
constructor() { constructor() {
this.shaderFactory = new ShaderFactory(this.getNick(), (shader) => { this.shaderFactory = new ShaderFactory(Effect.getNick(), (shader) => {
// We import these modules in this function as they are not available in the
// preferences process. This callback is only called within GNOME Shell's process.
const {Clutter, GdkPixbuf, Cogl} = imports.gi;
// Create the texture in the first call. // Create the texture in the first call.
if (!this._shardTexture) { if (!this._shardTexture) {
const shardData = GdkPixbuf.Pixbuf.new_from_resource('/img/shards.png'); const shardData = GdkPixbuf.Pixbuf.new_from_resource('/img/shards.png');
@@ -118,7 +119,7 @@ var BrokenGlass = class {
// ---------------------------------------------------------------------------- metadata // ---------------------------------------------------------------------------- metadata
// This effect is only available on GNOME Shell 40+. // This effect is only available on GNOME Shell 40+.
getMinShellVersion() { static getMinShellVersion() {
return [40, 0]; return [40, 0];
} }
@@ -127,13 +128,13 @@ var BrokenGlass = class {
// effect is enabled currently (e.g. '*-enable-effect'), and its animation time // effect is enabled currently (e.g. '*-enable-effect'), and its animation time
// (e.g. '*-animation-time'). Also, the shader file and the settings UI files should be // (e.g. '*-animation-time'). Also, the shader file and the settings UI files should be
// named likes this. // named likes this.
getNick() { static getNick() {
return 'broken-glass'; return 'broken-glass';
} }
// This will be shown in the sidebar of the preferences dialog as well as in the // 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. // drop-down menus where the user can choose the effect.
getLabel() { static getLabel() {
return _('Broken Glass'); return _('Broken Glass');
} }
@@ -141,7 +142,7 @@ var BrokenGlass = class {
// This is called by the preferences dialog whenever a new effect profile is loaded. It // This is called by the preferences dialog whenever a new effect profile is loaded. It
// binds all user interface elements to the respective settings keys of the profile. // binds all user interface elements to the respective settings keys of the profile.
bindPreferences(dialog) { static bindPreferences(dialog) {
dialog.bindAdjustment('broken-glass-animation-time'); dialog.bindAdjustment('broken-glass-animation-time');
dialog.bindAdjustment('broken-glass-scale'); dialog.bindAdjustment('broken-glass-scale');
dialog.bindAdjustment('broken-glass-gravity'); dialog.bindAdjustment('broken-glass-gravity');
@@ -154,7 +155,7 @@ var BrokenGlass = class {
// The getActorScale() is called from extension.js to adjust the actor's size during the // 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 // animation. This is useful if the effect requires drawing something beyond the usual
// bounds of the actor. This only works for GNOME 3.38+. // bounds of the actor. This only works for GNOME 3.38+.
getActorScale(settings) { static getActorScale(settings, forOpening, actor) {
return {x: 2.0, y: 2.0}; return {x: 2.0, y: 2.0};
} }
} }
+13 -14
View File
@@ -14,14 +14,14 @@
'use strict'; 'use strict';
const GObject = imports.gi.GObject; import * as utils from '../utils.js';
const _ = imports.gettext.domain('burn-my-windows').gettext; // We import the ShaderFactory only in the Shell process as it is not required in the
// preferences process. The preferences process does not create any shader instances, it
// only uses the static metadata of the effect.
const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js');
const ExtensionUtils = imports.misc.extensionUtils; const _ = await utils.importGettext();
const Me = imports.misc.extensionUtils.getCurrentExtension();
const utils = Me.imports.src.utils;
const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////
// This effect melts your windows. Inspired by the legendary screen transitions of the // // This effect melts your windows. Inspired by the legendary screen transitions of the //
@@ -31,14 +31,13 @@ const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
// The effect class can be used to get some metadata (like the effect's name or supported // 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 // GNOME Shell versions), to initialize the respective page of the settings dialog, as
// well as to create the actual shader for the effect. // well as to create the actual shader for the effect.
var Doom = class { export default class Effect {
// The constructor creates a ShaderFactory which will be used by extension.js to create // 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 // 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 // GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
// newly created shader instance. // newly created shader instance.
constructor() { constructor() {
this.shaderFactory = new ShaderFactory(this.getNick(), (shader) => { this.shaderFactory = new ShaderFactory(Effect.getNick(), (shader) => {
// Store uniform locations of newly created shaders. // Store uniform locations of newly created shaders.
shader._uActorScale = shader.get_uniform_location('uActorScale'); shader._uActorScale = shader.get_uniform_location('uActorScale');
shader._uHorizontalScale = shader.get_uniform_location('uHorizontalScale'); shader._uHorizontalScale = shader.get_uniform_location('uHorizontalScale');
@@ -70,7 +69,7 @@ var Doom = class {
// The effect is not available on GNOME Shell 3.36 as it requires scaling of the window // The effect is not available on GNOME Shell 3.36 as it requires scaling of the window
// actor. // actor.
getMinShellVersion() { static getMinShellVersion() {
return [3, 38]; return [3, 38];
} }
@@ -78,13 +77,13 @@ var Doom = class {
// required. It should match the prefix of the settings keys which store whether the // required. It should match the prefix of the settings keys which store whether the
// effect is enabled currently (e.g. '*-enable-effect'), and its animation time // effect is enabled currently (e.g. '*-enable-effect'), and its animation time
// (e.g. '*-animation-time'). // (e.g. '*-animation-time').
getNick() { static getNick() {
return 'doom'; return 'doom';
} }
// This will be shown in the sidebar of the preferences dialog as well as in the // 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. // drop-down menus where the user can choose the effect.
getLabel() { static getLabel() {
return _('Doom'); return _('Doom');
} }
@@ -92,7 +91,7 @@ var Doom = class {
// This is called by the preferences dialog whenever a new effect profile is loaded. It // This is called by the preferences dialog whenever a new effect profile is loaded. It
// binds all user interface elements to the respective settings keys of the profile. // binds all user interface elements to the respective settings keys of the profile.
bindPreferences(dialog) { static bindPreferences(dialog) {
dialog.bindAdjustment('doom-animation-time'); dialog.bindAdjustment('doom-animation-time');
dialog.bindAdjustment('doom-horizontal-scale'); dialog.bindAdjustment('doom-horizontal-scale');
dialog.bindAdjustment('doom-vertical-scale'); dialog.bindAdjustment('doom-vertical-scale');
@@ -106,7 +105,7 @@ var Doom = class {
// bounds of the actor. This only works for GNOME 3.38+. // bounds of the actor. This only works for GNOME 3.38+.
// For this effect, we scale the actor vertically so that it covers the entire screen. // For this effect, we scale the actor vertically so that it covers the entire screen.
// This ensures that the melted window will not be cut off. // This ensures that the melted window will not be cut off.
getActorScale(settings, forOpening, actor) { static getActorScale(settings, forOpening, actor) {
let actorScale = 2.0 * Math.max(1.0, global.stage.height / actor.height); let actorScale = 2.0 * Math.max(1.0, global.stage.height / actor.height);
return {x: 1.0, y: actorScale}; return {x: 1.0, y: actorScale};
} }
+15 -21
View File
@@ -14,14 +14,15 @@
'use strict'; 'use strict';
const GObject = imports.gi.GObject; import * as utils from '../utils.js';
const _ = imports.gettext.domain('burn-my-windows').gettext; // We import some modules only in the Shell process as they are not available in the
// preferences process. They are used only in the creator function of the ShaderFactory
// which is only called within GNOME Shell's process.
const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js');
const Clutter = await utils.importInShellOnly('gi://Clutter');
const ExtensionUtils = imports.misc.extensionUtils; const _ = await utils.importGettext();
const Me = imports.misc.extensionUtils.getCurrentExtension();
const utils = Me.imports.src.utils;
const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////
// This effect looks a bit like the transporter effect from TOS. // // This effect looks a bit like the transporter effect from TOS. //
@@ -30,29 +31,22 @@ const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
// The effect class can be used to get some metadata (like the effect's name or supported // 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 // GNOME Shell versions), to initialize the respective page of the settings dialog, as
// well as to create the actual shader for the effect. // well as to create the actual shader for the effect.
var EnergizeA = class { export default class Effect {
// The constructor creates a ShaderFactory which will be used by extension.js to create // 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 // 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 // GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
// newly created shader instance. // newly created shader instance.
constructor() { constructor() {
this.shaderFactory = new ShaderFactory(this.getNick(), (shader) => { this.shaderFactory = new ShaderFactory(Effect.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. // Store uniform locations of newly created shaders.
shader._uColor = shader.get_uniform_location('uColor'); shader._uColor = shader.get_uniform_location('uColor');
shader._uScale = shader.get_uniform_location('uScale'); shader._uScale = shader.get_uniform_location('uScale');
// Write all uniform values at the start of each animation. // Write all uniform values at the start of each animation.
shader.connect('begin-animation', (shader, settings) => { shader.connect('begin-animation', (shader, settings) => {
const c = Clutter.Color.from_string(settings.get_string('energize-a-color'))[1];
// clang-format off // clang-format off
shader.set_uniform_float(shader._uColor, 3, [c.red / 255, c.green / 255, c.blue / 255]); shader.set_uniform_float(shader._uColor, 3, utils.parseColor(settings.get_string('energize-a-color')));
shader.set_uniform_float(shader._uScale, 1, [settings.get_double('energize-a-scale')]); shader.set_uniform_float(shader._uScale, 1, [settings.get_double('energize-a-scale')]);
// clang-format on // clang-format on
}); });
@@ -62,7 +56,7 @@ var EnergizeA = class {
// ---------------------------------------------------------------------------- metadata // ---------------------------------------------------------------------------- metadata
// The effect is available on all GNOME Shell versions supported by this extension. // The effect is available on all GNOME Shell versions supported by this extension.
getMinShellVersion() { static getMinShellVersion() {
return [3, 36]; return [3, 36];
} }
@@ -70,13 +64,13 @@ var EnergizeA = class {
// required. It should match the prefix of the settings keys which store whether the // required. It should match the prefix of the settings keys which store whether the
// effect is enabled currently (e.g. '*-enable-effect'), and its animation time // effect is enabled currently (e.g. '*-enable-effect'), and its animation time
// (e.g. '*-animation-time'). // (e.g. '*-animation-time').
getNick() { static getNick() {
return 'energize-a'; return 'energize-a';
} }
// This will be shown in the sidebar of the preferences dialog as well as in the // 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. // drop-down menus where the user can choose the effect.
getLabel() { static getLabel() {
return _('Energize A'); return _('Energize A');
} }
@@ -84,7 +78,7 @@ var EnergizeA = class {
// This is called by the preferences dialog whenever a new effect profile is loaded. It // This is called by the preferences dialog whenever a new effect profile is loaded. It
// binds all user interface elements to the respective settings keys of the profile. // binds all user interface elements to the respective settings keys of the profile.
bindPreferences(dialog) { static bindPreferences(dialog) {
dialog.bindAdjustment('energize-a-animation-time'); dialog.bindAdjustment('energize-a-animation-time');
dialog.bindAdjustment('energize-a-scale'); dialog.bindAdjustment('energize-a-scale');
dialog.bindColorButton('energize-a-color'); dialog.bindColorButton('energize-a-color');
@@ -95,7 +89,7 @@ var EnergizeA = class {
// The getActorScale() is called from extension.js to adjust the actor's size during the // 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 // animation. This is useful if the effect requires drawing something beyond the usual
// bounds of the actor. This only works for GNOME 3.38+. // bounds of the actor. This only works for GNOME 3.38+.
getActorScale(settings) { static getActorScale(settings, forOpening, actor) {
return {x: 1.0, y: 1.0}; return {x: 1.0, y: 1.0};
} }
} }
+15 -21
View File
@@ -14,14 +14,15 @@
'use strict'; 'use strict';
const GObject = imports.gi.GObject; import * as utils from '../utils.js';
const _ = imports.gettext.domain('burn-my-windows').gettext; // We import some modules only in the Shell process as they are not available in the
// preferences process. They are used only in the creator function of the ShaderFactory
// which is only called within GNOME Shell's process.
const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js');
const Clutter = await utils.importInShellOnly('gi://Clutter');
const ExtensionUtils = imports.misc.extensionUtils; const _ = await utils.importGettext();
const Me = imports.misc.extensionUtils.getCurrentExtension();
const utils = Me.imports.src.utils;
const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////
// This effect looks a bit like the transporter effect from TNG. // // This effect looks a bit like the transporter effect from TNG. //
@@ -30,29 +31,22 @@ const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
// The effect class can be used to get some metadata (like the effect's name or supported // 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 // GNOME Shell versions), to initialize the respective page of the settings dialog, as
// well as to create the actual shader for the effect. // well as to create the actual shader for the effect.
var EnergizeB = class { export default class Effect {
// The constructor creates a ShaderFactory which will be used by extension.js to create // 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 // 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 // GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
// newly created shader instance. // newly created shader instance.
constructor() { constructor() {
this.shaderFactory = new ShaderFactory(this.getNick(), (shader) => { this.shaderFactory = new ShaderFactory(Effect.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. // Store uniform locations of newly created shaders.
shader._uColor = shader.get_uniform_location('uColor'); shader._uColor = shader.get_uniform_location('uColor');
shader._uScale = shader.get_uniform_location('uScale'); shader._uScale = shader.get_uniform_location('uScale');
// Write all uniform values at the start of each animation. // Write all uniform values at the start of each animation.
shader.connect('begin-animation', (shader, settings) => { shader.connect('begin-animation', (shader, settings) => {
const c = Clutter.Color.from_string(settings.get_string('energize-b-color'))[1];
// clang-format off // clang-format off
shader.set_uniform_float(shader._uColor, 3, [c.red / 255, c.green / 255, c.blue / 255]); shader.set_uniform_float(shader._uColor, 3, utils.parseColor(settings.get_string('energize-b-color')));
shader.set_uniform_float(shader._uScale, 1, [settings.get_double('energize-b-scale')]); shader.set_uniform_float(shader._uScale, 1, [settings.get_double('energize-b-scale')]);
// clang-format on // clang-format on
}); });
@@ -63,7 +57,7 @@ var EnergizeB = class {
// ---------------------------------------------------------------------------- metadata // ---------------------------------------------------------------------------- metadata
// The effect is available on all GNOME Shell versions supported by this extension. // The effect is available on all GNOME Shell versions supported by this extension.
getMinShellVersion() { static getMinShellVersion() {
return [3, 36]; return [3, 36];
} }
@@ -71,13 +65,13 @@ var EnergizeB = class {
// required. It should match the prefix of the settings keys which store whether the // required. It should match the prefix of the settings keys which store whether the
// effect is enabled currently (e.g. '*-enable-effect'), and its animation time // effect is enabled currently (e.g. '*-enable-effect'), and its animation time
// (e.g. '*-animation-time'). // (e.g. '*-animation-time').
getNick() { static getNick() {
return 'energize-b'; return 'energize-b';
} }
// This will be shown in the sidebar of the preferences dialog as well as in the // 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. // drop-down menus where the user can choose the effect.
getLabel() { static getLabel() {
return _('Energize B'); return _('Energize B');
} }
@@ -85,7 +79,7 @@ var EnergizeB = class {
// This is called by the preferences dialog whenever a new effect profile is loaded. It // This is called by the preferences dialog whenever a new effect profile is loaded. It
// binds all user interface elements to the respective settings keys of the profile. // binds all user interface elements to the respective settings keys of the profile.
bindPreferences(dialog) { static bindPreferences(dialog) {
dialog.bindAdjustment('energize-b-animation-time'); dialog.bindAdjustment('energize-b-animation-time');
dialog.bindAdjustment('energize-b-scale'); dialog.bindAdjustment('energize-b-scale');
dialog.bindColorButton('energize-b-color'); dialog.bindColorButton('energize-b-color');
@@ -96,7 +90,7 @@ var EnergizeB = class {
// The getActorScale() is called from extension.js to adjust the actor's size during the // 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 // animation. This is useful if the effect requires drawing something beyond the usual
// bounds of the actor. This only works for GNOME 3.38+. // bounds of the actor. This only works for GNOME 3.38+.
getActorScale(settings) { static getActorScale(settings, forOpening, actor) {
return {x: 1.0, y: 1.0}; return {x: 1.0, y: 1.0};
} }
} }
+22 -26
View File
@@ -14,14 +14,17 @@
'use strict'; 'use strict';
const {Gio} = imports.gi; import Gio from 'gi://Gio';
const _ = imports.gettext.domain('burn-my-windows').gettext; import * as utils from '../utils.js';
const ExtensionUtils = imports.misc.extensionUtils; // We import some modules only in the Shell process as they are not available in the
const Me = imports.misc.extensionUtils.getCurrentExtension(); // preferences process. They are used only in the creator function of the ShaderFactory
const utils = Me.imports.src.utils; // which is only called within GNOME Shell's process.
const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory; const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js');
const Clutter = await utils.importInShellOnly('gi://Clutter');
const _ = await utils.importGettext();
////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////
// This effect is a homage to the good old Compiz days. However, it is implemented // // This effect is a homage to the good old Compiz days. However, it is implemented //
@@ -34,20 +37,14 @@ const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
// The effect class can be used to get some metadata (like the effect's name or supported // 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 // GNOME Shell versions), to initialize the respective page of the settings dialog, as
// well as to create the actual shader for the effect. // well as to create the actual shader for the effect.
var Fire = class { export default class Effect {
// The constructor creates a ShaderFactory which will be used by extension.js to create // 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 // 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 // GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
// newly created shader instance. // newly created shader instance.
constructor() { constructor() {
this.shaderFactory = new ShaderFactory(this.getNick(), (shader) => { this.shaderFactory = new ShaderFactory(Effect.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 all uniform locations. // Store all uniform locations.
shader._uGradient = [ shader._uGradient = [
shader.get_uniform_location('uGradient1'), shader.get_uniform_location('uGradient1'),
@@ -64,10 +61,9 @@ var Fire = class {
// And update all uniforms at the start of each animation. // And update all uniforms at the start of each animation.
shader.connect('begin-animation', (shader, settings) => { shader.connect('begin-animation', (shader, settings) => {
for (let i = 1; i <= 5; i++) { for (let i = 1; i <= 5; i++) {
const c = Clutter.Color.from_string(settings.get_string('fire-color-' + i))[1];
shader.set_uniform_float( shader.set_uniform_float(
shader._uGradient[i - 1], 4, shader._uGradient[i - 1], 4,
[c.red / 255, c.green / 255, c.blue / 255, c.alpha / 255]); utils.parseColor(settings.get_string('fire-color-' + i)));
} }
// clang-format off // clang-format off
@@ -82,7 +78,7 @@ var Fire = class {
// ---------------------------------------------------------------------------- metadata // ---------------------------------------------------------------------------- metadata
// The effect is available on all GNOME Shell versions supported by this extension. // The effect is available on all GNOME Shell versions supported by this extension.
getMinShellVersion() { static getMinShellVersion() {
return [3, 36]; return [3, 36];
} }
@@ -90,13 +86,13 @@ var Fire = class {
// required. It should match the prefix of the settings keys which store whether the // required. It should match the prefix of the settings keys which store whether the
// effect is enabled currently (e.g. '*-enable-effect'), and its animation time // effect is enabled currently (e.g. '*-enable-effect'), and its animation time
// (e.g. '*-animation-time'). // (e.g. '*-animation-time').
getNick() { static getNick() {
return 'fire'; return 'fire';
} }
// This will be shown in the sidebar of the preferences dialog as well as in the // 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. // drop-down menus where the user can choose the effect.
getLabel() { static getLabel() {
return _('Fire'); return _('Fire');
} }
@@ -104,7 +100,7 @@ var Fire = class {
// This is called by the preferences dialog whenever a new effect profile is loaded. It // This is called by the preferences dialog whenever a new effect profile is loaded. It
// binds all user interface elements to the respective settings keys of the profile. // binds all user interface elements to the respective settings keys of the profile.
bindPreferences(dialog) { static bindPreferences(dialog) {
// Bind all properties. // Bind all properties.
dialog.bindAdjustment('fire-animation-time'); dialog.bindAdjustment('fire-animation-time');
@@ -118,8 +114,8 @@ var Fire = class {
dialog.bindColorButton('fire-color-5'); dialog.bindColorButton('fire-color-5');
// Connect the buttons only once. The bindPreferences can be called multiple times... // Connect the buttons only once. The bindPreferences can be called multiple times...
if (!this._isConnected) { if (!Effect._isConnected) {
this._isConnected = true; Effect._isConnected = true;
// The fire-gradient-reset button needs to be bound explicitly. // The fire-gradient-reset button needs to be bound explicitly.
dialog.getBuilder().get_object('reset-fire-colors').connect('clicked', () => { dialog.getBuilder().get_object('reset-fire-colors').connect('clicked', () => {
@@ -131,7 +127,7 @@ var Fire = class {
}); });
// Initialize the fire-preset dropdown. // Initialize the fire-preset dropdown.
this._createFirePresets(dialog); Effect._createFirePresets(dialog);
} }
} }
@@ -140,14 +136,14 @@ var Fire = class {
// The getActorScale() is called from extension.js to adjust the actor's size during the // 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 // animation. This is useful if the effect requires drawing something beyond the usual
// bounds of the actor. This only works for GNOME 3.38+. // bounds of the actor. This only works for GNOME 3.38+.
getActorScale(settings) { static getActorScale(settings, forOpening, actor) {
return {x: 1.0, y: 1.0}; return {x: 1.0, y: 1.0};
} }
// ----------------------------------------------------------------------- private stuff // ----------------------------------------------------------------------- private stuff
// This populates the preset dropdown menu for the fire options. // This populates the preset dropdown menu for the fire options.
_createFirePresets(dialog) { static _createFirePresets(dialog) {
dialog.getBuilder().get_object('fire-prefs').connect('realize', (widget) => { dialog.getBuilder().get_object('fire-prefs').connect('realize', (widget) => {
const presets = [ const presets = [
{ {
@@ -228,7 +224,7 @@ var Fire = class {
dialog.getBuilder().get_object('fire-preset-button').set_menu_model(menu); dialog.getBuilder().get_object('fire-preset-button').set_menu_model(menu);
const root = utils.isGTK4() ? widget.get_root() : widget.get_toplevel(); const root = widget.get_root();
root.insert_action_group(groupName, group); root.insert_action_group(groupName, group);
}); });
} }
+13 -13
View File
@@ -14,14 +14,14 @@
'use strict'; 'use strict';
const GObject = imports.gi.GObject; import * as utils from '../utils.js';
const _ = imports.gettext.domain('burn-my-windows').gettext; // We import the ShaderFactory only in the Shell process as it is not required in the
// preferences process. The preferences process does not create any shader instances, it
// only uses the static metadata of the effect.
const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js');
const ExtensionUtils = imports.misc.extensionUtils; const _ = await utils.importGettext();
const Me = imports.misc.extensionUtils.getCurrentExtension();
const utils = Me.imports.src.utils;
const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////
// This very simple effect fades the window to transparency with subtle 3D effects. // // This very simple effect fades the window to transparency with subtle 3D effects. //
@@ -30,14 +30,14 @@ const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
// The effect class can be used to get some metadata (like the effect's name or supported // 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 // GNOME Shell versions), to initialize the respective page of the settings dialog, as
// well as to create the actual shader for the effect. // well as to create the actual shader for the effect.
var Glide = class { export default class Effect {
// The constructor creates a ShaderFactory which will be used by extension.js to create // 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 // 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 // GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
// newly created shader instance. // newly created shader instance.
constructor() { constructor() {
this.shaderFactory = new ShaderFactory(this.getNick(), (shader) => { this.shaderFactory = new ShaderFactory(Effect.getNick(), (shader) => {
// Store uniform locations of newly created shaders. // Store uniform locations of newly created shaders.
shader._uScale = shader.get_uniform_location('uScale'); shader._uScale = shader.get_uniform_location('uScale');
shader._uSquish = shader.get_uniform_location('uSquish'); shader._uSquish = shader.get_uniform_location('uSquish');
@@ -60,7 +60,7 @@ var Glide = class {
// ---------------------------------------------------------------------------- metadata // ---------------------------------------------------------------------------- metadata
// The effect is available on all GNOME Shell versions supported by this extension. // The effect is available on all GNOME Shell versions supported by this extension.
getMinShellVersion() { static getMinShellVersion() {
return [3, 36]; return [3, 36];
} }
@@ -68,13 +68,13 @@ var Glide = class {
// required. It should match the prefix of the settings keys which store whether the // required. It should match the prefix of the settings keys which store whether the
// effect is enabled currently (e.g. '*-enable-effect'), and its animation time // effect is enabled currently (e.g. '*-enable-effect'), and its animation time
// (e.g. '*-animation-time'). // (e.g. '*-animation-time').
getNick() { static getNick() {
return 'glide'; return 'glide';
} }
// This will be shown in the sidebar of the preferences dialog as well as in the // 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. // drop-down menus where the user can choose the effect.
getLabel() { static getLabel() {
return _('Glide'); return _('Glide');
} }
@@ -82,7 +82,7 @@ var Glide = class {
// This is called by the preferences dialog whenever a new effect profile is loaded. It // This is called by the preferences dialog whenever a new effect profile is loaded. It
// binds all user interface elements to the respective settings keys of the profile. // binds all user interface elements to the respective settings keys of the profile.
bindPreferences(dialog) { static bindPreferences(dialog) {
dialog.bindAdjustment('glide-animation-time'); dialog.bindAdjustment('glide-animation-time');
dialog.bindAdjustment('glide-scale'); dialog.bindAdjustment('glide-scale');
dialog.bindAdjustment('glide-squish'); dialog.bindAdjustment('glide-squish');
@@ -95,7 +95,7 @@ var Glide = class {
// The getActorScale() is called from extension.js to adjust the actor's size during the // 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 // animation. This is useful if the effect requires drawing something beyond the usual
// bounds of the actor. This only works for GNOME 3.38+. // bounds of the actor. This only works for GNOME 3.38+.
getActorScale(settings) { static getActorScale(settings, forOpening, actor) {
return {x: 1.0, y: 1.0}; return {x: 1.0, y: 1.0};
} }
} }
+15 -21
View File
@@ -14,14 +14,15 @@
'use strict'; 'use strict';
const GObject = imports.gi.GObject; import * as utils from '../utils.js';
const _ = imports.gettext.domain('burn-my-windows').gettext; // We import some modules only in the Shell process as they are not available in the
// preferences process. They are used only in the creator function of the ShaderFactory
// which is only called within GNOME Shell's process.
const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js');
const Clutter = await utils.importInShellOnly('gi://Clutter');
const ExtensionUtils = imports.misc.extensionUtils; const _ = await utils.importGettext();
const Me = imports.misc.extensionUtils.getCurrentExtension();
const utils = Me.imports.src.utils;
const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////
// This effect applies some intentional graphics issues to your windows. // // This effect applies some intentional graphics issues to your windows. //
@@ -30,19 +31,14 @@ const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
// The effect class can be used to get some metadata (like the effect's name or supported // 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 // GNOME Shell versions), to initialize the respective page of the settings dialog, as
// well as to create the actual shader for the effect. // well as to create the actual shader for the effect.
var Glitch = class { export default class Effect {
// The constructor creates a ShaderFactory which will be used by extension.js to create // 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 // 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 // GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
// newly created shader instance. // newly created shader instance.
constructor() { constructor() {
this.shaderFactory = new ShaderFactory(this.getNick(), (shader) => { this.shaderFactory = new ShaderFactory(Effect.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. // Store uniform locations of newly created shaders.
shader._uSeed = shader.get_uniform_location('uSeed'); shader._uSeed = shader.get_uniform_location('uSeed');
shader._uColor = shader.get_uniform_location('uColor'); shader._uColor = shader.get_uniform_location('uColor');
@@ -52,11 +48,9 @@ var Glitch = class {
// Write all uniform values at the start of each animation. // Write all uniform values at the start of each animation.
shader.connect('begin-animation', (shader, settings, forOpening, testMode) => { shader.connect('begin-animation', (shader, settings, forOpening, testMode) => {
const c = Clutter.Color.from_string(settings.get_string('glitch-color'))[1];
// clang-format off // clang-format off
shader.set_uniform_float(shader._uSeed, 1, [testMode ? 0 : Math.random()]); shader.set_uniform_float(shader._uSeed, 1, [testMode ? 0 : Math.random()]);
shader.set_uniform_float(shader._uColor, 4, [c.red / 255, c.green / 255, c.blue / 255, c.alpha / 255]); shader.set_uniform_float(shader._uColor, 4, utils.parseColor(settings.get_string('glitch-color')));
shader.set_uniform_float(shader._uScale, 1, [settings.get_double('glitch-scale')]); shader.set_uniform_float(shader._uScale, 1, [settings.get_double('glitch-scale')]);
shader.set_uniform_float(shader._uStrength, 1, [settings.get_double('glitch-strength')]); shader.set_uniform_float(shader._uStrength, 1, [settings.get_double('glitch-strength')]);
shader.set_uniform_float(shader._uSpeed, 1, [settings.get_double('glitch-speed')]); shader.set_uniform_float(shader._uSpeed, 1, [settings.get_double('glitch-speed')]);
@@ -68,7 +62,7 @@ var Glitch = class {
// ---------------------------------------------------------------------------- metadata // ---------------------------------------------------------------------------- metadata
// The effect is available on all GNOME Shell versions supported by this extension. // The effect is available on all GNOME Shell versions supported by this extension.
getMinShellVersion() { static getMinShellVersion() {
return [3, 36]; return [3, 36];
} }
@@ -76,13 +70,13 @@ var Glitch = class {
// required. It should match the prefix of the settings keys which store whether the // required. It should match the prefix of the settings keys which store whether the
// effect is enabled currently (e.g. '*-enable-effect'), and its animation time // effect is enabled currently (e.g. '*-enable-effect'), and its animation time
// (e.g. '*-animation-time'). // (e.g. '*-animation-time').
getNick() { static getNick() {
return 'glitch'; return 'glitch';
} }
// This will be shown in the sidebar of the preferences dialog as well as in the // 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. // drop-down menus where the user can choose the effect.
getLabel() { static getLabel() {
return _('Glitch'); return _('Glitch');
} }
@@ -90,7 +84,7 @@ var Glitch = class {
// This is called by the preferences dialog whenever a new effect profile is loaded. It // This is called by the preferences dialog whenever a new effect profile is loaded. It
// binds all user interface elements to the respective settings keys of the profile. // binds all user interface elements to the respective settings keys of the profile.
bindPreferences(dialog) { static bindPreferences(dialog) {
dialog.bindAdjustment('glitch-animation-time'); dialog.bindAdjustment('glitch-animation-time');
dialog.bindAdjustment('glitch-scale'); dialog.bindAdjustment('glitch-scale');
dialog.bindAdjustment('glitch-speed'); dialog.bindAdjustment('glitch-speed');
@@ -103,7 +97,7 @@ var Glitch = class {
// The getActorScale() is called from extension.js to adjust the actor's size during the // 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 // animation. This is useful if the effect requires drawing something beyond the usual
// bounds of the actor. This only works for GNOME 3.38+. // bounds of the actor. This only works for GNOME 3.38+.
getActorScale(settings) { static getActorScale(settings, forOpening, actor) {
return {x: 1.0, y: 1.0}; return {x: 1.0, y: 1.0};
} }
} }
+16 -27
View File
@@ -14,14 +14,15 @@
'use strict'; 'use strict';
const GObject = imports.gi.GObject; import * as utils from '../utils.js';
const _ = imports.gettext.domain('burn-my-windows').gettext; // We import some modules only in the Shell process as they are not available in the
// preferences process. They are used only in the creator function of the ShaderFactory
// which is only called within GNOME Shell's process.
const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js');
const Clutter = await utils.importInShellOnly('gi://Clutter');
const ExtensionUtils = imports.misc.extensionUtils; const _ = await utils.importGettext();
const Me = imports.misc.extensionUtils.getCurrentExtension();
const utils = Me.imports.src.utils;
const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////
// This effect overlays a glowing hexagonal grid over the window. The grid cells then // // This effect overlays a glowing hexagonal grid over the window. The grid cells then //
@@ -31,19 +32,14 @@ const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
// The effect class can be used to get some metadata (like the effect's name or supported // 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 // GNOME Shell versions), to initialize the respective page of the settings dialog, as
// well as to create the actual shader for the effect. // well as to create the actual shader for the effect.
var Hexagon = class { export default class Effect {
// The constructor creates a ShaderFactory which will be used by extension.js to create // 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 // 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 // GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
// newly created shader instance. // newly created shader instance.
constructor() { constructor() {
this.shaderFactory = new ShaderFactory(this.getNick(), (shader) => { this.shaderFactory = new ShaderFactory(Effect.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. // Store uniform locations of newly created shaders.
shader._uAdditiveBlending = shader.get_uniform_location('uAdditiveBlending'); shader._uAdditiveBlending = shader.get_uniform_location('uAdditiveBlending');
shader._uSeed = shader.get_uniform_location('uSeed'); shader._uSeed = shader.get_uniform_location('uSeed');
@@ -54,20 +50,13 @@ var Hexagon = class {
// Write all uniform values at the start of each animation. // Write all uniform values at the start of each animation.
shader.connect('begin-animation', (shader, settings, forOpening, testMode) => { shader.connect('begin-animation', (shader, settings, forOpening, testMode) => {
// Get the two configurable colors. They are directly injected into the shader
// code below.
const gc =
Clutter.Color.from_string(settings.get_string('hexagon-glow-color'))[1];
const lc =
Clutter.Color.from_string(settings.get_string('hexagon-line-color'))[1];
// clang-format off // clang-format off
shader.set_uniform_float(shader._uAdditiveBlending, 1, [settings.get_boolean('hexagon-additive-blending')]); shader.set_uniform_float(shader._uAdditiveBlending, 1, [settings.get_boolean('hexagon-additive-blending')]);
shader.set_uniform_float(shader._uSeed, 2, [testMode ? 0 : Math.random(), testMode ? 0 : Math.random()]); shader.set_uniform_float(shader._uSeed, 2, [testMode ? 0 : Math.random(), testMode ? 0 : Math.random()]);
shader.set_uniform_float(shader._uScale, 1, [settings.get_double('hexagon-scale')]); shader.set_uniform_float(shader._uScale, 1, [settings.get_double('hexagon-scale')]);
shader.set_uniform_float(shader._uLineWidth, 1, [settings.get_double('hexagon-line-width')]); shader.set_uniform_float(shader._uLineWidth, 1, [settings.get_double('hexagon-line-width')]);
shader.set_uniform_float(shader._uGlowColor, 4, [gc.red / 255, gc.green / 255, gc.blue / 255, gc.alpha / 255]); shader.set_uniform_float(shader._uGlowColor, 4, utils.parseColor(settings.get_string('hexagon-glow-color')));
shader.set_uniform_float(shader._uLineColor, 4, [lc.red / 255, lc.green / 255, lc.blue / 255, lc.alpha / 255]); shader.set_uniform_float(shader._uLineColor, 4, utils.parseColor(settings.get_string('hexagon-line-color')));
// clang-format on // clang-format on
}); });
}); });
@@ -76,7 +65,7 @@ var Hexagon = class {
// ---------------------------------------------------------------------------- metadata // ---------------------------------------------------------------------------- metadata
// The effect is available on all GNOME Shell versions supported by this extension. // The effect is available on all GNOME Shell versions supported by this extension.
getMinShellVersion() { static getMinShellVersion() {
return [3, 36]; return [3, 36];
} }
@@ -84,13 +73,13 @@ var Hexagon = class {
// required. It should match the prefix of the settings keys which store whether the // required. It should match the prefix of the settings keys which store whether the
// effect is enabled currently (e.g. '*-enable-effect'), and its animation time // effect is enabled currently (e.g. '*-enable-effect'), and its animation time
// (e.g. '*-animation-time'). // (e.g. '*-animation-time').
getNick() { static getNick() {
return 'hexagon'; return 'hexagon';
} }
// This will be shown in the sidebar of the preferences dialog as well as in the // 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. // drop-down menus where the user can choose the effect.
getLabel() { static getLabel() {
return _('Hexagon'); return _('Hexagon');
} }
@@ -98,7 +87,7 @@ var Hexagon = class {
// This is called by the preferences dialog whenever a new effect profile is loaded. It // This is called by the preferences dialog whenever a new effect profile is loaded. It
// binds all user interface elements to the respective settings keys of the profile. // binds all user interface elements to the respective settings keys of the profile.
bindPreferences(dialog) { static bindPreferences(dialog) {
dialog.bindAdjustment('hexagon-animation-time'); dialog.bindAdjustment('hexagon-animation-time');
dialog.bindAdjustment('hexagon-scale'); dialog.bindAdjustment('hexagon-scale');
dialog.bindAdjustment('hexagon-line-width'); dialog.bindAdjustment('hexagon-line-width');
@@ -112,7 +101,7 @@ var Hexagon = class {
// The getActorScale() is called from extension.js to adjust the actor's size during the // 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 // animation. This is useful if the effect requires drawing something beyond the usual
// bounds of the actor. This only works for GNOME 3.38+. // bounds of the actor. This only works for GNOME 3.38+.
getActorScale(settings) { static getActorScale(settings, forOpening, actor) {
return {x: 1.0, y: 1.0}; return {x: 1.0, y: 1.0};
} }
} }
+23 -28
View File
@@ -14,14 +14,15 @@
'use strict'; 'use strict';
const GObject = imports.gi.GObject; import * as utils from '../utils.js';
const _ = imports.gettext.domain('burn-my-windows').gettext; // We import some modules only in the Shell process as they are not available in the
// preferences process. They are used only in the creator function of the ShaderFactory
// which is only called within GNOME Shell's process.
const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js');
const Clutter = await utils.importInShellOnly('gi://Clutter');
const ExtensionUtils = imports.misc.extensionUtils; const _ = await utils.importGettext();
const Me = imports.misc.extensionUtils.getCurrentExtension();
const utils = Me.imports.src.utils;
const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////
// This effect burns windows to ashes. The fire starts at a random position at the // // This effect burns windows to ashes. The fire starts at a random position at the //
@@ -31,18 +32,14 @@ const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
// The effect class can be used to get some metadata (like the effect's name or supported // 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 // GNOME Shell versions), to initialize the respective page of the settings dialog, as
// well as to create the actual shader for the effect. // well as to create the actual shader for the effect.
var Incinerate = class { export default class Effect {
// The constructor creates a ShaderFactory which will be used by extension.js to create // 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 // 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 // GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
// newly created shader instance. // newly created shader instance.
constructor() { constructor() {
this.shaderFactory = new ShaderFactory(this.getNick(), (shader) => { this.shaderFactory = new ShaderFactory(Effect.getNick(), (shader) => {
// We import these modules in this function as they are not available in the
// preferences process. This callback is only called within GNOME Shell's process.
const {Clutter} = imports.gi;
// Store uniform locations of newly created shaders. // Store uniform locations of newly created shaders.
shader._uSeed = shader.get_uniform_location('uSeed'); shader._uSeed = shader.get_uniform_location('uSeed');
shader._uColor = shader.get_uniform_location('uColor'); shader._uColor = shader.get_uniform_location('uColor');
@@ -61,8 +58,8 @@ var Incinerate = class {
// position may change after the begin-animation signal is called, we set the // position may change after the begin-animation signal is called, we set the
// uStartPos uniform during the update callback. // uStartPos uniform during the update callback.
if (settings.get_boolean('incinerate-use-pointer')) { if (settings.get_boolean('incinerate-use-pointer')) {
this._startPointerPos = global.get_pointer(); shader._startPointerPos = global.get_pointer();
this._actor = actor; shader._actor = actor;
} else { } else {
// Else, a random position along the window boundary is used as start position // Else, a random position along the window boundary is used as start position
@@ -72,14 +69,12 @@ var Incinerate = class {
shader.set_uniform_float(shader._uStartPos, 2, startPos); shader.set_uniform_float(shader._uStartPos, 2, startPos);
this._startPointerPos = null; shader._startPointerPos = null;
} }
const c = Clutter.Color.from_string(settings.get_string('incinerate-color'))[1];
// clang-format off // clang-format off
shader.set_uniform_float(shader._uSeed, 2, seed); shader.set_uniform_float(shader._uSeed, 2, seed);
shader.set_uniform_float(shader._uColor, 3, [c.red / 255, c.green / 255, c.blue / 255]); shader.set_uniform_float(shader._uColor, 3, utils.parseColor(settings.get_string('incinerate-color')));
shader.set_uniform_float(shader._uScale, 1, [settings.get_double('incinerate-scale')]); shader.set_uniform_float(shader._uScale, 1, [settings.get_double('incinerate-scale')]);
shader.set_uniform_float(shader._uTurbulence, 1, [settings.get_double('incinerate-turbulence')]); shader.set_uniform_float(shader._uTurbulence, 1, [settings.get_double('incinerate-turbulence')]);
// clang-format on // clang-format on
@@ -89,14 +84,14 @@ var Incinerate = class {
// uniform during the update callback as the actor position may not be set up // uniform during the update callback as the actor position may not be set up
// properly before the begin animation callback. // properly before the begin animation callback.
shader.connect('update-animation', (shader) => { shader.connect('update-animation', (shader) => {
if (this._startPointerPos) { if (shader._startPointerPos) {
const [x, y] = this._startPointerPos; const [x, y] = shader._startPointerPos;
const [ok, localX, localY] = this._actor.transform_stage_point(x, y); const [ok, localX, localY] = shader._actor.transform_stage_point(x, y);
if (ok) { if (ok) {
let startPos = [ let startPos = [
Math.max(0.0, Math.min(1.0, localX / this._actor.width)), Math.max(0.0, Math.min(1.0, localX / shader._actor.width)),
Math.max(0.0, Math.min(1.0, localY / this._actor.height)) Math.max(0.0, Math.min(1.0, localY / shader._actor.height))
]; ];
shader.set_uniform_float(shader._uStartPos, 2, startPos); shader.set_uniform_float(shader._uStartPos, 2, startPos);
} }
@@ -113,7 +108,7 @@ var Incinerate = class {
// ---------------------------------------------------------------------------- metadata // ---------------------------------------------------------------------------- metadata
// This effect is available on all supported GNOME Shell versions. // This effect is available on all supported GNOME Shell versions.
getMinShellVersion() { static getMinShellVersion() {
return [3, 36]; return [3, 36];
} }
@@ -121,13 +116,13 @@ var Incinerate = class {
// required. It should match the prefix of the settings keys which store whether the // required. It should match the prefix of the settings keys which store whether the
// effect is enabled currently (e.g. '*-enable-effect'), and its animation time // effect is enabled currently (e.g. '*-enable-effect'), and its animation time
// (e.g. '*-animation-time'). // (e.g. '*-animation-time').
getNick() { static getNick() {
return 'incinerate'; return 'incinerate';
} }
// This will be shown in the sidebar of the preferences dialog as well as in the // 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. // drop-down menus where the user can choose the effect.
getLabel() { static getLabel() {
return _('Incinerate'); return _('Incinerate');
} }
@@ -135,7 +130,7 @@ var Incinerate = class {
// This is called by the preferences dialog whenever a new effect profile is loaded. It // This is called by the preferences dialog whenever a new effect profile is loaded. It
// binds all user interface elements to the respective settings keys of the profile. // binds all user interface elements to the respective settings keys of the profile.
bindPreferences(dialog) { static bindPreferences(dialog) {
dialog.bindAdjustment('incinerate-animation-time'); dialog.bindAdjustment('incinerate-animation-time');
dialog.bindAdjustment('incinerate-scale'); dialog.bindAdjustment('incinerate-scale');
dialog.bindAdjustment('incinerate-turbulence'); dialog.bindAdjustment('incinerate-turbulence');
@@ -148,7 +143,7 @@ var Incinerate = class {
// The getActorScale() is called from extension.js to adjust the actor's size during the // 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 // animation. This is useful if the effect requires drawing something beyond the usual
// bounds of the actor. This only works for GNOME 3.38+. // bounds of the actor. This only works for GNOME 3.38+.
getActorScale(settings) { static getActorScale(settings, forOpening, actor) {
return {x: 1.0, y: 1.0}; return {x: 1.0, y: 1.0};
} }
} }
+18 -23
View File
@@ -14,14 +14,17 @@
'use strict'; 'use strict';
const GObject = imports.gi.GObject; import * as utils from '../utils.js';
const _ = imports.gettext.domain('burn-my-windows').gettext; // We import some modules only in the Shell process as they are not available in the
// preferences process. They are used only in the creator function of the ShaderFactory
// which is only called within GNOME Shell's process.
const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js');
const Clutter = await utils.importInShellOnly('gi://Clutter');
const GdkPixbuf = await utils.importInShellOnly('gi://GdkPixbuf');
const Cogl = await utils.importInShellOnly('gi://Cogl');
const ExtensionUtils = imports.misc.extensionUtils; const _ = await utils.importGettext();
const Me = imports.misc.extensionUtils.getCurrentExtension();
const utils = Me.imports.src.utils;
const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////
// The Matrix shader multiplies a grid of random letters with some gradients which are // // The Matrix shader multiplies a grid of random letters with some gradients which are //
@@ -34,18 +37,14 @@ const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
// The effect class can be used to get some metadata (like the effect's name or supported // 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 // GNOME Shell versions), to initialize the respective page of the settings dialog, as
// well as to create the actual shader for the effect. // well as to create the actual shader for the effect.
var Matrix = class { export default class Effect {
// The constructor creates a ShaderFactory which will be used by extension.js to create // 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 // 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 // GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
// newly created shader instance. // newly created shader instance.
constructor() { constructor() {
this.shaderFactory = new ShaderFactory(this.getNick(), (shader) => { this.shaderFactory = new ShaderFactory(Effect.getNick(), (shader) => {
// We import these modules in this function as they are not available in the
// preferences process. This callback is only called within GNOME Shell's process.
const {Clutter, GdkPixbuf, Cogl} = imports.gi;
// Create the texture in the first call. // Create the texture in the first call.
if (!this._fontTexture) { if (!this._fontTexture) {
const fontData = GdkPixbuf.Pixbuf.new_from_resource('/img/matrixFont.png'); const fontData = GdkPixbuf.Pixbuf.new_from_resource('/img/matrixFont.png');
@@ -66,13 +65,9 @@ var Matrix = class {
// Write all uniform values at the start of each animation. // Write all uniform values at the start of each animation.
shader.connect('begin-animation', (shader, settings) => { shader.connect('begin-animation', (shader, settings) => {
const c1 =
Clutter.Color.from_string(settings.get_string('matrix-trail-color'))[1];
const c2 = Clutter.Color.from_string(settings.get_string('matrix-tip-color'))[1];
// clang-format off // clang-format off
shader.set_uniform_float(shader._uTrailColor, 3, [c1.red / 255, c1.green / 255, c1.blue / 255]); shader.set_uniform_float(shader._uTrailColor, 3, utils.parseColor(settings.get_string('matrix-trail-color')));
shader.set_uniform_float(shader._uTipColor, 3, [c2.red / 255, c2.green / 255, c2.blue / 255]); shader.set_uniform_float(shader._uTipColor, 3, utils.parseColor(settings.get_string('matrix-tip-color')));
shader.set_uniform_float(shader._uLetterSize, 1, [settings.get_int('matrix-scale')]); shader.set_uniform_float(shader._uLetterSize, 1, [settings.get_int('matrix-scale')]);
shader.set_uniform_float(shader._uRandomness, 1, [settings.get_double('matrix-randomness')]); shader.set_uniform_float(shader._uRandomness, 1, [settings.get_double('matrix-randomness')]);
shader.set_uniform_float(shader._uOverShoot, 1, [settings.get_double('matrix-overshoot')]); shader.set_uniform_float(shader._uOverShoot, 1, [settings.get_double('matrix-overshoot')]);
@@ -96,7 +91,7 @@ var Matrix = class {
// ---------------------------------------------------------------------------- metadata // ---------------------------------------------------------------------------- metadata
// This effect is only available on GNOME Shell 40+. // This effect is only available on GNOME Shell 40+.
getMinShellVersion() { static getMinShellVersion() {
return [40, 0]; return [40, 0];
} }
@@ -104,13 +99,13 @@ var Matrix = class {
// required. It should match the prefix of the settings keys which store whether the // required. It should match the prefix of the settings keys which store whether the
// effect is enabled currently (e.g. '*-enable-effect'), and its animation time // effect is enabled currently (e.g. '*-enable-effect'), and its animation time
// (e.g. '*-animation-time'). // (e.g. '*-animation-time').
getNick() { static getNick() {
return 'matrix'; return 'matrix';
} }
// This will be shown in the sidebar of the preferences dialog as well as in the // 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. // drop-down menus where the user can choose the effect.
getLabel() { static getLabel() {
return _('Matrix'); return _('Matrix');
} }
@@ -118,7 +113,7 @@ var Matrix = class {
// This is called by the preferences dialog whenever a new effect profile is loaded. It // This is called by the preferences dialog whenever a new effect profile is loaded. It
// binds all user interface elements to the respective settings keys of the profile. // binds all user interface elements to the respective settings keys of the profile.
bindPreferences(dialog) { static bindPreferences(dialog) {
dialog.bindAdjustment('matrix-animation-time'); dialog.bindAdjustment('matrix-animation-time');
dialog.bindAdjustment('matrix-scale'); dialog.bindAdjustment('matrix-scale');
dialog.bindAdjustment('matrix-randomness'); dialog.bindAdjustment('matrix-randomness');
@@ -132,7 +127,7 @@ var Matrix = class {
// The getActorScale() is called from extension.js to adjust the actor's size during the // 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 // animation. This is useful if the effect requires drawing something beyond the usual
// bounds of the actor. This only works for GNOME 3.38+. // bounds of the actor. This only works for GNOME 3.38+.
getActorScale(settings) { static getActorScale(settings, forOpening, actor) {
return {x: 1.0, y: 1.0 + settings.get_double('matrix-overshoot')}; return {x: 1.0, y: 1.0 + settings.get_double('matrix-overshoot')};
} }
} }
+16 -17
View File
@@ -14,14 +14,17 @@
'use strict'; 'use strict';
const GObject = imports.gi.GObject; import * as utils from '../utils.js';
const _ = imports.gettext.domain('burn-my-windows').gettext; // We import some modules only in the Shell process as they are not available in the
// preferences process. They are used only in the creator function of the ShaderFactory
// which is only called within GNOME Shell's process.
const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js');
const Clutter = await utils.importInShellOnly('gi://Clutter');
const GdkPixbuf = await utils.importInShellOnly('gi://GdkPixbuf');
const Cogl = await utils.importInShellOnly('gi://Cogl');
const ExtensionUtils = imports.misc.extensionUtils; const _ = await utils.importGettext();
const Me = imports.misc.extensionUtils.getCurrentExtension();
const utils = Me.imports.src.utils;
const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////
// This effect paints your windows with a thick paint brush. // // This effect paints your windows with a thick paint brush. //
@@ -32,18 +35,14 @@ const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
// The effect class can be used to get some metadata (like the effect's name or supported // 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 // GNOME Shell versions), to initialize the respective page of the settings dialog, as
// well as to create the actual shader for the effect. // well as to create the actual shader for the effect.
var PaintBrush = class { export default class Effect {
// The constructor creates a ShaderFactory which will be used by extension.js to create // 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 // 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 // GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
// newly created shader instance. // newly created shader instance.
constructor() { constructor() {
this.shaderFactory = new ShaderFactory(this.getNick(), (shader) => { this.shaderFactory = new ShaderFactory(Effect.getNick(), (shader) => {
// We import these modules in this function as they are not available in the
// preferences process. This callback is only called within GNOME Shell's process.
const {Clutter, GdkPixbuf, Cogl} = imports.gi;
// Create the texture in the first call. // Create the texture in the first call.
if (!this._brushTexture) { if (!this._brushTexture) {
const brushData = GdkPixbuf.Pixbuf.new_from_resource('/img/brush.png'); const brushData = GdkPixbuf.Pixbuf.new_from_resource('/img/brush.png');
@@ -84,7 +83,7 @@ var PaintBrush = class {
// ---------------------------------------------------------------------------- metadata // ---------------------------------------------------------------------------- metadata
// This effect is only available on GNOME Shell 40+. // This effect is only available on GNOME Shell 40+.
getMinShellVersion() { static getMinShellVersion() {
return [40, 0]; return [40, 0];
} }
@@ -92,13 +91,13 @@ var PaintBrush = class {
// required. It should match the prefix of the settings keys which store whether the // required. It should match the prefix of the settings keys which store whether the
// effect is enabled currently (e.g. '*-enable-effect'), and its animation time // effect is enabled currently (e.g. '*-enable-effect'), and its animation time
// (e.g. '*-animation-time'). // (e.g. '*-animation-time').
getNick() { static getNick() {
return 'paint-brush'; return 'paint-brush';
} }
// This will be shown in the sidebar of the preferences dialog as well as in the // 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. // drop-down menus where the user can choose the effect.
getLabel() { static getLabel() {
return _('Paint Brush'); return _('Paint Brush');
} }
@@ -106,7 +105,7 @@ var PaintBrush = class {
// This is called by the preferences dialog whenever a new effect profile is loaded. It // This is called by the preferences dialog whenever a new effect profile is loaded. It
// binds all user interface elements to the respective settings keys of the profile. // binds all user interface elements to the respective settings keys of the profile.
bindPreferences(dialog) { static bindPreferences(dialog) {
dialog.bindAdjustment('paint-brush-animation-time'); dialog.bindAdjustment('paint-brush-animation-time');
dialog.bindAdjustment('paint-brush-size'); dialog.bindAdjustment('paint-brush-size');
} }
@@ -116,7 +115,7 @@ var PaintBrush = class {
// The getActorScale() is called from extension.js to adjust the actor's size during the // 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 // animation. This is useful if the effect requires drawing something beyond the usual
// bounds of the actor. This only works for GNOME 3.38+. // bounds of the actor. This only works for GNOME 3.38+.
getActorScale(settings) { static getActorScale(settings, forOpening, actor) {
return {x: 1.0, y: 1.0}; return {x: 1.0, y: 1.0};
} }
} }
+13 -13
View File
@@ -14,14 +14,14 @@
'use strict'; 'use strict';
const GObject = imports.gi.GObject; import * as utils from '../utils.js';
const _ = imports.gettext.domain('burn-my-windows').gettext; // We import the ShaderFactory only in the Shell process as it is not required in the
// preferences process. The preferences process does not create any shader instances, it
// only uses the static metadata of the effect.
const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js');
const ExtensionUtils = imports.misc.extensionUtils; const _ = await utils.importGettext();
const Me = imports.misc.extensionUtils.getCurrentExtension();
const utils = Me.imports.src.utils;
const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////
// This simple effect pixelates the window texture and hides the pixels in a wheel-like // // This simple effect pixelates the window texture and hides the pixels in a wheel-like //
@@ -31,14 +31,14 @@ const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
// The effect class can be used to get some metadata (like the effect's name or supported // 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 // GNOME Shell versions), to initialize the respective page of the settings dialog, as
// well as to create the actual shader for the effect. // well as to create the actual shader for the effect.
var PixelWheel = class { export default class Effect {
// The constructor creates a ShaderFactory which will be used by extension.js to create // 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 // 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 // GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
// newly created shader instance. // newly created shader instance.
constructor() { constructor() {
this.shaderFactory = new ShaderFactory(this.getNick(), (shader) => { this.shaderFactory = new ShaderFactory(Effect.getNick(), (shader) => {
// Store uniform locations of newly created shaders. // Store uniform locations of newly created shaders.
shader._uPixelSize = shader.get_uniform_location('uPixelSize'); shader._uPixelSize = shader.get_uniform_location('uPixelSize');
shader._uSpokeCount = shader.get_uniform_location('uSpokeCount'); shader._uSpokeCount = shader.get_uniform_location('uSpokeCount');
@@ -56,7 +56,7 @@ var PixelWheel = class {
// ---------------------------------------------------------------------------- metadata // ---------------------------------------------------------------------------- metadata
// The effect is available on all GNOME Shell versions supported by this extension. // The effect is available on all GNOME Shell versions supported by this extension.
getMinShellVersion() { static getMinShellVersion() {
return [3, 36]; return [3, 36];
} }
@@ -64,13 +64,13 @@ var PixelWheel = class {
// required. It should match the prefix of the settings keys which store whether the // required. It should match the prefix of the settings keys which store whether the
// effect is enabled currently (e.g. '*-enable-effect'), and its animation time // effect is enabled currently (e.g. '*-enable-effect'), and its animation time
// (e.g. '*-animation-time'). // (e.g. '*-animation-time').
getNick() { static getNick() {
return 'pixel-wheel'; return 'pixel-wheel';
} }
// This will be shown in the sidebar of the preferences dialog as well as in the // 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. // drop-down menus where the user can choose the effect.
getLabel() { static getLabel() {
return _('Pixel Wheel'); return _('Pixel Wheel');
} }
@@ -78,7 +78,7 @@ var PixelWheel = class {
// This is called by the preferences dialog whenever a new effect profile is loaded. It // This is called by the preferences dialog whenever a new effect profile is loaded. It
// binds all user interface elements to the respective settings keys of the profile. // binds all user interface elements to the respective settings keys of the profile.
bindPreferences(dialog) { static bindPreferences(dialog) {
dialog.bindAdjustment('pixel-wheel-animation-time'); dialog.bindAdjustment('pixel-wheel-animation-time');
dialog.bindAdjustment('pixel-wheel-pixel-size'); dialog.bindAdjustment('pixel-wheel-pixel-size');
dialog.bindAdjustment('pixel-wheel-spoke-count'); dialog.bindAdjustment('pixel-wheel-spoke-count');
@@ -89,7 +89,7 @@ var PixelWheel = class {
// The getActorScale() is called from extension.js to adjust the actor's size during the // 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 // animation. This is useful if the effect requires drawing something beyond the usual
// bounds of the actor. This only works for GNOME 3.38+. // bounds of the actor. This only works for GNOME 3.38+.
getActorScale(settings) { static getActorScale(settings, forOpening, actor) {
return {x: 1.0, y: 1.0}; return {x: 1.0, y: 1.0};
} }
} }
+22 -23
View File
@@ -14,14 +14,14 @@
'use strict'; 'use strict';
const GObject = imports.gi.GObject; import * as utils from '../utils.js';
const _ = imports.gettext.domain('burn-my-windows').gettext; // We import the ShaderFactory only in the Shell process as it is not required in the
// preferences process. The preferences process does not create any shader instances, it
// only uses the static metadata of the effect.
const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js');
const ExtensionUtils = imports.misc.extensionUtils; const _ = await utils.importGettext();
const Me = imports.misc.extensionUtils.getCurrentExtension();
const utils = Me.imports.src.utils;
const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////
// This effect pixelates the window texture and hides the pixels radially, starting // // This effect pixelates the window texture and hides the pixels radially, starting //
@@ -31,14 +31,14 @@ const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
// The effect class can be used to get some metadata (like the effect's name or supported // 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 // GNOME Shell versions), to initialize the respective page of the settings dialog, as
// well as to create the actual shader for the effect. // well as to create the actual shader for the effect.
var PixelWipe = class { export default class Effect {
// The constructor creates a ShaderFactory which will be used by extension.js to create // 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 // 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 // GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
// newly created shader instance. // newly created shader instance.
constructor() { constructor() {
this.shaderFactory = new ShaderFactory(this.getNick(), (shader) => { this.shaderFactory = new ShaderFactory(Effect.getNick(), (shader) => {
// Store uniform locations of newly created shaders. // Store uniform locations of newly created shaders.
shader._uPixelSize = shader.get_uniform_location('uPixelSize'); shader._uPixelSize = shader.get_uniform_location('uPixelSize');
shader._uStartPos = shader.get_uniform_location('uStartPos'); shader._uStartPos = shader.get_uniform_location('uStartPos');
@@ -48,25 +48,24 @@ var PixelWipe = class {
'begin-animation', (shader, settings, forOpening, testMode, actor) => { 'begin-animation', (shader, settings, forOpening, testMode, actor) => {
// Because the actor position may change after the begin-animation signal is // Because the actor position may change after the begin-animation signal is
// called, we set the uStartPos uniform during the update callback. // called, we set the uStartPos uniform during the update callback.
this._startPointerPos = global.get_pointer(); shader._startPointerPos = global.get_pointer();
this._actor = actor; shader._actor = actor;
// clang-format off shader.set_uniform_float(shader._uPixelSize, 1,
shader.set_uniform_float(shader._uPixelSize, 1, [settings.get_int('pixel-wipe-pixel-size')]); [settings.get_int('pixel-wipe-pixel-size')]);
// clang-format on
}); });
// We set the uStartPos uniform during the update callback as the actor position // We set the uStartPos uniform during the update callback as the actor position
// may not be set up properly before the begin animation callback. // may not be set up properly before the begin animation callback.
shader.connect('update-animation', (shader) => { shader.connect('update-animation', (shader) => {
if (this._startPointerPos) { if (shader._startPointerPos) {
const [x, y] = this._startPointerPos; const [x, y] = shader._startPointerPos;
const [ok, localX, localY] = this._actor.transform_stage_point(x, y); const [ok, localX, localY] = shader._actor.transform_stage_point(x, y);
if (ok) { if (ok) {
let startPos = [ let startPos = [
Math.max(0.0, Math.min(1.0, localX / this._actor.width)), Math.max(0.0, Math.min(1.0, localX / shader._actor.width)),
Math.max(0.0, Math.min(1.0, localY / this._actor.height)) Math.max(0.0, Math.min(1.0, localY / shader._actor.height))
]; ];
shader.set_uniform_float(shader._uStartPos, 2, startPos); shader.set_uniform_float(shader._uStartPos, 2, startPos);
} }
@@ -83,7 +82,7 @@ var PixelWipe = class {
// ---------------------------------------------------------------------------- metadata // ---------------------------------------------------------------------------- metadata
// The effect is available on all GNOME Shell versions supported by this extension. // The effect is available on all GNOME Shell versions supported by this extension.
getMinShellVersion() { static getMinShellVersion() {
return [3, 36]; return [3, 36];
} }
@@ -91,13 +90,13 @@ var PixelWipe = class {
// required. It should match the prefix of the settings keys which store whether the // required. It should match the prefix of the settings keys which store whether the
// effect is enabled currently (e.g. '*-enable-effect'), and its animation time // effect is enabled currently (e.g. '*-enable-effect'), and its animation time
// (e.g. '*-animation-time'). // (e.g. '*-animation-time').
getNick() { static getNick() {
return 'pixel-wipe'; return 'pixel-wipe';
} }
// This will be shown in the sidebar of the preferences dialog as well as in the // 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. // drop-down menus where the user can choose the effect.
getLabel() { static getLabel() {
return _('Pixel Wipe'); return _('Pixel Wipe');
} }
@@ -105,7 +104,7 @@ var PixelWipe = class {
// This is called by the preferences dialog whenever a new effect profile is loaded. It // This is called by the preferences dialog whenever a new effect profile is loaded. It
// binds all user interface elements to the respective settings keys of the profile. // binds all user interface elements to the respective settings keys of the profile.
bindPreferences(dialog) { static bindPreferences(dialog) {
dialog.bindAdjustment('pixel-wipe-animation-time'); dialog.bindAdjustment('pixel-wipe-animation-time');
dialog.bindAdjustment('pixel-wipe-pixel-size'); dialog.bindAdjustment('pixel-wipe-pixel-size');
} }
@@ -115,7 +114,7 @@ var PixelWipe = class {
// The getActorScale() is called from extension.js to adjust the actor's size during the // 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 // animation. This is useful if the effect requires drawing something beyond the usual
// bounds of the actor. This only works for GNOME 3.38+. // bounds of the actor. This only works for GNOME 3.38+.
getActorScale(settings) { static getActorScale(settings, forOpening, actor) {
return {x: 1.0, y: 1.0}; return {x: 1.0, y: 1.0};
} }
} }
+13 -13
View File
@@ -14,14 +14,14 @@
'use strict'; 'use strict';
const GObject = imports.gi.GObject; import * as utils from '../utils.js';
const _ = imports.gettext.domain('burn-my-windows').gettext; // We import the ShaderFactory only in the Shell process as it is not required in the
// preferences process. The preferences process does not create any shader instances, it
// only uses the static metadata of the effect.
const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js');
const ExtensionUtils = imports.misc.extensionUtils; const _ = await utils.importGettext();
const Me = imports.misc.extensionUtils.getCurrentExtension();
const utils = Me.imports.src.utils;
const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////
// This very simple effect pixelates the window texture and randomly hides pixels until // // This very simple effect pixelates the window texture and randomly hides pixels until //
@@ -31,14 +31,14 @@ const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
// The effect class can be used to get some metadata (like the effect's name or supported // 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 // GNOME Shell versions), to initialize the respective page of the settings dialog, as
// well as to create the actual shader for the effect. // well as to create the actual shader for the effect.
var Pixelate = class { export default class Effect {
// The constructor creates a ShaderFactory which will be used by extension.js to create // 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 // 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 // GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
// newly created shader instance. // newly created shader instance.
constructor() { constructor() {
this.shaderFactory = new ShaderFactory(this.getNick(), (shader) => { this.shaderFactory = new ShaderFactory(Effect.getNick(), (shader) => {
// Store uniform locations of newly created shaders. // Store uniform locations of newly created shaders.
shader._uNoise = shader.get_uniform_location('uNoise'); shader._uNoise = shader.get_uniform_location('uNoise');
shader._uPixelSize = shader.get_uniform_location('uPixelSize'); shader._uPixelSize = shader.get_uniform_location('uPixelSize');
@@ -56,7 +56,7 @@ var Pixelate = class {
// ---------------------------------------------------------------------------- metadata // ---------------------------------------------------------------------------- metadata
// The effect is available on all GNOME Shell versions supported by this extension. // The effect is available on all GNOME Shell versions supported by this extension.
getMinShellVersion() { static getMinShellVersion() {
return [3, 36]; return [3, 36];
} }
@@ -64,13 +64,13 @@ var Pixelate = class {
// required. It should match the prefix of the settings keys which store whether the // required. It should match the prefix of the settings keys which store whether the
// effect is enabled currently (e.g. '*-enable-effect'), and its animation time // effect is enabled currently (e.g. '*-enable-effect'), and its animation time
// (e.g. '*-animation-time'). // (e.g. '*-animation-time').
getNick() { static getNick() {
return 'pixelate'; return 'pixelate';
} }
// This will be shown in the sidebar of the preferences dialog as well as in the // 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. // drop-down menus where the user can choose the effect.
getLabel() { static getLabel() {
return _('Pixelate'); return _('Pixelate');
} }
@@ -78,7 +78,7 @@ var Pixelate = class {
// This is called by the preferences dialog whenever a new effect profile is loaded. It // This is called by the preferences dialog whenever a new effect profile is loaded. It
// binds all user interface elements to the respective settings keys of the profile. // binds all user interface elements to the respective settings keys of the profile.
bindPreferences(dialog) { static bindPreferences(dialog) {
dialog.bindAdjustment('pixelate-animation-time'); dialog.bindAdjustment('pixelate-animation-time');
dialog.bindAdjustment('pixelate-noise'); dialog.bindAdjustment('pixelate-noise');
dialog.bindAdjustment('pixelate-pixel-size'); dialog.bindAdjustment('pixelate-pixel-size');
@@ -89,7 +89,7 @@ var Pixelate = class {
// The getActorScale() is called from extension.js to adjust the actor's size during the // 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 // animation. This is useful if the effect requires drawing something beyond the usual
// bounds of the actor. This only works for GNOME 3.38+. // bounds of the actor. This only works for GNOME 3.38+.
getActorScale(settings) { static getActorScale(settings, forOpening, actor) {
return {x: 1.0, y: 1.0}; return {x: 1.0, y: 1.0};
} }
} }
+15 -21
View File
@@ -14,14 +14,15 @@
'use strict'; 'use strict';
const GObject = imports.gi.GObject; import * as utils from '../utils.js';
const _ = imports.gettext.domain('burn-my-windows').gettext; // We import some modules only in the Shell process as they are not available in the
// preferences process. They are used only in the creator function of the ShaderFactory
// which is only called within GNOME Shell's process.
const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js');
const Clutter = await utils.importInShellOnly('gi://Clutter');
const ExtensionUtils = imports.misc.extensionUtils; const _ = await utils.importGettext();
const Me = imports.misc.extensionUtils.getCurrentExtension();
const utils = Me.imports.src.utils;
const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////
// This ridiculous effect teleports your windows from and to alternative dimensions. // // This ridiculous effect teleports your windows from and to alternative dimensions. //
@@ -31,19 +32,14 @@ const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
// The effect class can be used to get some metadata (like the effect's name or supported // 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 // GNOME Shell versions), to initialize the respective page of the settings dialog, as
// well as to create the actual shader for the effect. // well as to create the actual shader for the effect.
var Portal = class { export default class Effect {
// The constructor creates a ShaderFactory which will be used by extension.js to create // 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 // 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 // GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
// newly created shader instance. // newly created shader instance.
constructor() { constructor() {
this.shaderFactory = new ShaderFactory(this.getNick(), (shader) => { this.shaderFactory = new ShaderFactory(Effect.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. // Store uniform locations of newly created shaders.
shader._uSeed = shader.get_uniform_location('uSeed'); shader._uSeed = shader.get_uniform_location('uSeed');
shader._uColor = shader.get_uniform_location('uColor'); shader._uColor = shader.get_uniform_location('uColor');
@@ -53,11 +49,9 @@ var Portal = class {
// Write all uniform values at the start of each animation. // Write all uniform values at the start of each animation.
shader.connect('begin-animation', (shader, settings, forOpening, testMode) => { shader.connect('begin-animation', (shader, settings, forOpening, testMode) => {
const c = Clutter.Color.from_string(settings.get_string('portal-color'))[1];
// clang-format off // clang-format off
shader.set_uniform_float(shader._uSeed, 2, [testMode ? 0 : Math.random(), testMode ? 0 : Math.random()]); shader.set_uniform_float(shader._uSeed, 2, [testMode ? 0 : Math.random(), testMode ? 0 : Math.random()]);
shader.set_uniform_float(shader._uColor, 3, [c.red / 255, c.green / 255, c.blue / 255]); shader.set_uniform_float(shader._uColor, 3, utils.parseColor(settings.get_string('portal-color')));
shader.set_uniform_float(shader._uDetails, 1, [settings.get_double('portal-details')]); shader.set_uniform_float(shader._uDetails, 1, [settings.get_double('portal-details')]);
shader.set_uniform_float(shader._uRotationSpeed, 1, [settings.get_double('portal-rotation-speed')]); shader.set_uniform_float(shader._uRotationSpeed, 1, [settings.get_double('portal-rotation-speed')]);
shader.set_uniform_float(shader._uWhirling, 1, [settings.get_double('portal-whirling')]); shader.set_uniform_float(shader._uWhirling, 1, [settings.get_double('portal-whirling')]);
@@ -70,7 +64,7 @@ var Portal = class {
// ---------------------------------------------------------------------------- metadata // ---------------------------------------------------------------------------- metadata
// The effect is available on all GNOME Shell versions supported by this extension. // The effect is available on all GNOME Shell versions supported by this extension.
getMinShellVersion() { static getMinShellVersion() {
return [3, 36]; return [3, 36];
} }
@@ -78,13 +72,13 @@ var Portal = class {
// required. It should match the prefix of the settings keys which store whether the // required. It should match the prefix of the settings keys which store whether the
// effect is enabled currently (e.g. '*-enable-effect'), and its animation time // effect is enabled currently (e.g. '*-enable-effect'), and its animation time
// (e.g. '*-animation-time'). // (e.g. '*-animation-time').
getNick() { static getNick() {
return 'portal'; return 'portal';
} }
// This will be shown in the sidebar of the preferences dialog as well as in the // 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. // drop-down menus where the user can choose the effect.
getLabel() { static getLabel() {
return _('Portal'); return _('Portal');
} }
@@ -92,7 +86,7 @@ var Portal = class {
// This is called by the preferences dialog whenever a new effect profile is loaded. It // This is called by the preferences dialog whenever a new effect profile is loaded. It
// binds all user interface elements to the respective settings keys of the profile. // binds all user interface elements to the respective settings keys of the profile.
bindPreferences(dialog) { static bindPreferences(dialog) {
dialog.bindAdjustment('portal-animation-time'); dialog.bindAdjustment('portal-animation-time');
dialog.bindAdjustment('portal-rotation-speed'); dialog.bindAdjustment('portal-rotation-speed');
dialog.bindAdjustment('portal-whirling'); dialog.bindAdjustment('portal-whirling');
@@ -105,7 +99,7 @@ var Portal = class {
// The getActorScale() is called from extension.js to adjust the actor's size during the // 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 // animation. This is useful if the effect requires drawing something beyond the usual
// bounds of the actor. This only works for GNOME 3.38+. // bounds of the actor. This only works for GNOME 3.38+.
getActorScale(settings) { static getActorScale(settings, forOpening, actor) {
return {x: 1.0, y: 1.0}; return {x: 1.0, y: 1.0};
} }
} }
+17 -21
View File
@@ -14,14 +14,17 @@
'use strict'; 'use strict';
const GObject = imports.gi.GObject; import * as utils from '../utils.js';
const _ = imports.gettext.domain('burn-my-windows').gettext; // We import some modules only in the Shell process as they are not available in the
// preferences process. They are used only in the creator function of the ShaderFactory
// which is only called within GNOME Shell's process.
const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js');
const Clutter = await utils.importInShellOnly('gi://Clutter');
const GdkPixbuf = await utils.importInShellOnly('gi://GdkPixbuf');
const Cogl = await utils.importInShellOnly('gi://Cogl');
const ExtensionUtils = imports.misc.extensionUtils; const _ = await utils.importGettext();
const Me = imports.misc.extensionUtils.getCurrentExtension();
const utils = Me.imports.src.utils;
const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////
// This effects dissolves your windows into a cloud of dust. For this, it uses an // // This effects dissolves your windows into a cloud of dust. For this, it uses an //
@@ -36,18 +39,14 @@ const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
// The effect class can be used to get some metadata (like the effect's name or supported // 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 // GNOME Shell versions), to initialize the respective page of the settings dialog, as
// well as to create the actual shader for the effect. // well as to create the actual shader for the effect.
var SnapOfDisintegration = class { export default class Effect {
// The constructor creates a ShaderFactory which will be used by extension.js to create // 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 // 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 // GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
// newly created shader instance. // newly created shader instance.
constructor() { constructor() {
this.shaderFactory = new ShaderFactory(this.getNick(), (shader) => { this.shaderFactory = new ShaderFactory(Effect.getNick(), (shader) => {
// We import these modules in this function as they are not available in the
// preferences process. This callback is only called within GNOME Shell's process.
const {Clutter, GdkPixbuf, Cogl} = imports.gi;
// Create the texture in the first call. // Create the texture in the first call.
if (!this._dustTexture) { if (!this._dustTexture) {
const dustData = GdkPixbuf.Pixbuf.new_from_resource('/img/dust.png'); const dustData = GdkPixbuf.Pixbuf.new_from_resource('/img/dust.png');
@@ -64,11 +63,8 @@ var SnapOfDisintegration = class {
// Write all uniform values at the start of each animation. // Write all uniform values at the start of each animation.
shader.connect('begin-animation', (shader, settings, forOpening, testMode) => { shader.connect('begin-animation', (shader, settings, forOpening, testMode) => {
// The dust particles will fade to this color over time.
const c = Clutter.Color.from_string(settings.get_string('snap-color'))[1];
// clang-format off // clang-format off
shader.set_uniform_float(shader._uDustColor, 4, [c.red / 255, c.green / 255, c.blue / 255, c.alpha / 255]); shader.set_uniform_float(shader._uDustColor, 4, utils.parseColor(settings.get_string('snap-color')));
shader.set_uniform_float(shader._uSeed, 2, [testMode ? 0 : Math.random(), testMode ? 0 : Math.random()]); shader.set_uniform_float(shader._uSeed, 2, [testMode ? 0 : Math.random(), testMode ? 0 : Math.random()]);
shader.set_uniform_float(shader._uDustScale, 1, [settings.get_double('snap-scale')]); shader.set_uniform_float(shader._uDustScale, 1, [settings.get_double('snap-scale')]);
// clang-format on // clang-format on
@@ -96,7 +92,7 @@ var SnapOfDisintegration = class {
// ---------------------------------------------------------------------------- metadata // ---------------------------------------------------------------------------- metadata
// This effect is only available on GNOME Shell 40+. // This effect is only available on GNOME Shell 40+.
getMinShellVersion() { static getMinShellVersion() {
return [40, 0]; return [40, 0];
} }
@@ -104,13 +100,13 @@ var SnapOfDisintegration = class {
// required. It should match the prefix of the settings keys which store whether the // required. It should match the prefix of the settings keys which store whether the
// effect is enabled currently (e.g. '*-enable-effect'), and its animation time // effect is enabled currently (e.g. '*-enable-effect'), and its animation time
// (e.g. '*-animation-time'). // (e.g. '*-animation-time').
getNick() { static getNick() {
return 'snap'; return 'snap';
} }
// This will be shown in the sidebar of the preferences dialog as well as in the // 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. // drop-down menus where the user can choose the effect.
getLabel() { static getLabel() {
return _('Snap of Disintegration'); return _('Snap of Disintegration');
} }
@@ -118,7 +114,7 @@ var SnapOfDisintegration = class {
// This is called by the preferences dialog whenever a new effect profile is loaded. It // This is called by the preferences dialog whenever a new effect profile is loaded. It
// binds all user interface elements to the respective settings keys of the profile. // binds all user interface elements to the respective settings keys of the profile.
bindPreferences(dialog) { static bindPreferences(dialog) {
dialog.bindAdjustment('snap-animation-time'); dialog.bindAdjustment('snap-animation-time');
dialog.bindAdjustment('snap-scale'); dialog.bindAdjustment('snap-scale');
dialog.bindColorButton('snap-color'); dialog.bindColorButton('snap-color');
@@ -129,7 +125,7 @@ var SnapOfDisintegration = class {
// The getActorScale() is called from extension.js to adjust the actor's size during the // 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 // animation. This is useful if the effect requires drawing something beyond the usual
// bounds of the actor. This only works for GNOME 3.38+. // bounds of the actor. This only works for GNOME 3.38+.
getActorScale(settings) { static getActorScale(settings, forOpening, actor) {
return {x: 1.2, y: 1.2}; return {x: 1.2, y: 1.2};
} }
} }
+17 -20
View File
@@ -14,14 +14,17 @@
'use strict'; 'use strict';
const GObject = imports.gi.GObject; import * as utils from '../utils.js';
const _ = imports.gettext.domain('burn-my-windows').gettext; // We import some modules only in the Shell process as they are not available in the
// preferences process. They are used only in the creator function of the ShaderFactory
// which is only called within GNOME Shell's process.
const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js');
const Clutter = await utils.importInShellOnly('gi://Clutter');
const GdkPixbuf = await utils.importInShellOnly('gi://GdkPixbuf');
const Cogl = await utils.importInShellOnly('gi://Cogl');
const ExtensionUtils = imports.misc.extensionUtils; const _ = await utils.importGettext();
const Me = imports.misc.extensionUtils.getCurrentExtension();
const utils = Me.imports.src.utils;
const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////
// This effect tears your windows apart with a series of violent scratches! // // This effect tears your windows apart with a series of violent scratches! //
@@ -32,18 +35,14 @@ const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
// The effect class can be used to get some metadata (like the effect's name or supported // 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 // GNOME Shell versions), to initialize the respective page of the settings dialog, as
// well as to create the actual shader for the effect. // well as to create the actual shader for the effect.
var TRexAttack = class { export default class Effect {
// The constructor creates a ShaderFactory which will be used by extension.js to create // 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 // 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 // GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
// newly created shader instance. // newly created shader instance.
constructor() { constructor() {
this.shaderFactory = new ShaderFactory(this.getNick(), (shader) => { this.shaderFactory = new ShaderFactory(Effect.getNick(), (shader) => {
// We import these modules in this function as they are not available in the
// preferences process. This callback is only called within GNOME Shell's process.
const {Clutter, GdkPixbuf, Cogl} = imports.gi;
// Create the texture in the first call. // Create the texture in the first call.
if (!this._clawTexture) { if (!this._clawTexture) {
const clawData = GdkPixbuf.Pixbuf.new_from_resource('/img/claws.png'); const clawData = GdkPixbuf.Pixbuf.new_from_resource('/img/claws.png');
@@ -62,10 +61,8 @@ var TRexAttack = class {
// Write all uniform values at the start of each animation. // Write all uniform values at the start of each animation.
shader.connect('begin-animation', (shader, settings, forOpening, testMode) => { shader.connect('begin-animation', (shader, settings, forOpening, testMode) => {
const c = Clutter.Color.from_string(settings.get_string('trex-scratch-color'))[1];
// clang-format off // clang-format off
shader.set_uniform_float(shader._uFlashColor, 4, [c.red / 255, c.green / 255, c.blue / 255, c.alpha / 255]); shader.set_uniform_float(shader._uFlashColor, 4, utils.parseColor(settings.get_string('trex-scratch-color')));
shader.set_uniform_float(shader._uSeed, 2, [testMode ? 0 : Math.random(), testMode ? 0 : Math.random()]); shader.set_uniform_float(shader._uSeed, 2, [testMode ? 0 : Math.random(), testMode ? 0 : Math.random()]);
shader.set_uniform_float(shader._uClawSize, 1, [settings.get_double('trex-scratch-scale')]); shader.set_uniform_float(shader._uClawSize, 1, [settings.get_double('trex-scratch-scale')]);
shader.set_uniform_float(shader._uNumClaws, 1, [settings.get_int('trex-scratch-count')]); shader.set_uniform_float(shader._uNumClaws, 1, [settings.get_int('trex-scratch-count')]);
@@ -94,7 +91,7 @@ var TRexAttack = class {
// ---------------------------------------------------------------------------- metadata // ---------------------------------------------------------------------------- metadata
// This effect is only available on GNOME Shell 40+. // This effect is only available on GNOME Shell 40+.
getMinShellVersion() { static getMinShellVersion() {
return [40, 0]; return [40, 0];
} }
@@ -102,13 +99,13 @@ var TRexAttack = class {
// required. It should match the prefix of the settings keys which store whether the // required. It should match the prefix of the settings keys which store whether the
// effect is enabled currently (e.g. '*-enable-effect'), and its animation time // effect is enabled currently (e.g. '*-enable-effect'), and its animation time
// (e.g. '*-animation-time'). // (e.g. '*-animation-time').
getNick() { static getNick() {
return 'trex'; return 'trex';
} }
// This will be shown in the sidebar of the preferences dialog as well as in the // 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. // drop-down menus where the user can choose the effect.
getLabel() { static getLabel() {
return _('T-Rex Attack'); return _('T-Rex Attack');
} }
@@ -116,7 +113,7 @@ var TRexAttack = class {
// This is called by the preferences dialog whenever a new effect profile is loaded. It // This is called by the preferences dialog whenever a new effect profile is loaded. It
// binds all user interface elements to the respective settings keys of the profile. // binds all user interface elements to the respective settings keys of the profile.
bindPreferences(dialog) { static bindPreferences(dialog) {
dialog.bindAdjustment('trex-animation-time'); dialog.bindAdjustment('trex-animation-time');
dialog.bindColorButton('trex-scratch-color'); dialog.bindColorButton('trex-scratch-color');
dialog.bindAdjustment('trex-scratch-scale'); dialog.bindAdjustment('trex-scratch-scale');
@@ -129,7 +126,7 @@ var TRexAttack = class {
// The getActorScale() is called from extension.js to adjust the actor's size during the // 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 // animation. This is useful if the effect requires drawing something beyond the usual
// bounds of the actor. This only works for GNOME 3.38+. // bounds of the actor. This only works for GNOME 3.38+.
getActorScale(settings) { static getActorScale(settings, forOpening, actor) {
const scale = 1.0 + 0.5 * settings.get_double('trex-scratch-warp'); const scale = 1.0 + 0.5 * settings.get_double('trex-scratch-warp');
return {x: scale, y: scale}; return {x: scale, y: scale};
} }
+15 -20
View File
@@ -14,14 +14,15 @@
'use strict'; 'use strict';
const GObject = imports.gi.GObject; import * as utils from '../utils.js';
const _ = imports.gettext.domain('burn-my-windows').gettext; // We import some modules only in the Shell process as they are not available in the
// preferences process. They are used only in the creator function of the ShaderFactory
// which is only called within GNOME Shell's process.
const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js');
const Clutter = await utils.importInShellOnly('gi://Clutter');
const ExtensionUtils = imports.misc.extensionUtils; const _ = await utils.importGettext();
const Me = imports.misc.extensionUtils.getCurrentExtension();
const utils = Me.imports.src.utils;
const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////
// This effect hides the actor by making it first transparent from top and bottom // // This effect hides the actor by making it first transparent from top and bottom //
@@ -32,27 +33,21 @@ const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
// The effect class can be used to get some metadata (like the effect's name or supported // 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 // GNOME Shell versions), to initialize the respective page of the settings dialog, as
// well as to create the actual shader for the effect. // well as to create the actual shader for the effect.
var TVEffect = class { export default class Effect {
// The constructor creates a ShaderFactory which will be used by extension.js to create // 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 // 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 // GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
// newly created shader instance. // newly created shader instance.
constructor() { constructor() {
this.shaderFactory = new ShaderFactory(this.getNick(), (shader) => { this.shaderFactory = new ShaderFactory(Effect.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. // Store uniform locations of newly created shaders.
shader._uColor = shader.get_uniform_location('uColor'); shader._uColor = shader.get_uniform_location('uColor');
// Write all uniform values at the start of each animation. // Write all uniform values at the start of each animation.
shader.connect('begin-animation', (shader, settings) => { shader.connect('begin-animation', (shader, settings) => {
const c = Clutter.Color.from_string(settings.get_string('tv-effect-color'))[1];
shader.set_uniform_float( shader.set_uniform_float(
shader._uColor, 4, [c.red / 255, c.green / 255, c.blue / 255, c.alpha / 255]); shader._uColor, 4, utils.parseColor(settings.get_string('tv-effect-color')));
}); });
}); });
} }
@@ -60,7 +55,7 @@ var TVEffect = class {
// ---------------------------------------------------------------------------- metadata // ---------------------------------------------------------------------------- metadata
// The effect is available on all GNOME Shell versions supported by this extension. // The effect is available on all GNOME Shell versions supported by this extension.
getMinShellVersion() { static getMinShellVersion() {
return [3, 36]; return [3, 36];
} }
@@ -68,13 +63,13 @@ var TVEffect = class {
// required. It should match the prefix of the settings keys which store whether the // required. It should match the prefix of the settings keys which store whether the
// effect is enabled currently (e.g. '*-enable-effect'), and its animation time // effect is enabled currently (e.g. '*-enable-effect'), and its animation time
// (e.g. '*-animation-time'). // (e.g. '*-animation-time').
getNick() { static getNick() {
return 'tv'; return 'tv';
} }
// This will be shown in the sidebar of the preferences dialog as well as in the // 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. // drop-down menus where the user can choose the effect.
getLabel() { static getLabel() {
return _('TV Effect'); return _('TV Effect');
} }
@@ -82,7 +77,7 @@ var TVEffect = class {
// This is called by the preferences dialog whenever a new effect profile is loaded. It // This is called by the preferences dialog whenever a new effect profile is loaded. It
// binds all user interface elements to the respective settings keys of the profile. // binds all user interface elements to the respective settings keys of the profile.
bindPreferences(dialog) { static bindPreferences(dialog) {
dialog.bindAdjustment('tv-animation-time'); dialog.bindAdjustment('tv-animation-time');
dialog.bindColorButton('tv-effect-color'); dialog.bindColorButton('tv-effect-color');
} }
@@ -92,7 +87,7 @@ var TVEffect = class {
// The getActorScale() is called from extension.js to adjust the actor's size during the // 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 // animation. This is useful if the effect requires drawing something beyond the usual
// bounds of the actor. This only works for GNOME 3.38+. // bounds of the actor. This only works for GNOME 3.38+.
getActorScale(settings) { static getActorScale(settings, forOpening, actor) {
return {x: 1.0, y: 1.0}; return {x: 1.0, y: 1.0};
} }
} }
+15 -21
View File
@@ -14,14 +14,15 @@
'use strict'; 'use strict';
const GObject = imports.gi.GObject; import * as utils from '../utils.js';
const _ = imports.gettext.domain('burn-my-windows').gettext; // We import some modules only in the Shell process as they are not available in the
// preferences process. They are used only in the creator function of the ShaderFactory
// which is only called within GNOME Shell's process.
const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js');
const Clutter = await utils.importInShellOnly('gi://Clutter');
const ExtensionUtils = imports.misc.extensionUtils; const _ = await utils.importGettext();
const Me = imports.misc.extensionUtils.getCurrentExtension();
const utils = Me.imports.src.utils;
const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////
// This effect combines the Glitch and the TV Effect. Credits go to Kurt Wilson // // This effect combines the Glitch and the TV Effect. Credits go to Kurt Wilson //
@@ -31,19 +32,14 @@ const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
// The effect class can be used to get some metadata (like the effect's name or supported // 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 // GNOME Shell versions), to initialize the respective page of the settings dialog, as
// well as to create the actual shader for the effect. // well as to create the actual shader for the effect.
var TVGlitch = class { export default class Effect {
// The constructor creates a ShaderFactory which will be used by extension.js to create // 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 // 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 // GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
// newly created shader instance. // newly created shader instance.
constructor() { constructor() {
this.shaderFactory = new ShaderFactory(this.getNick(), (shader) => { this.shaderFactory = new ShaderFactory(Effect.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. // Store uniform locations of newly created shaders.
shader._uSeed = shader.get_uniform_location('uSeed'); shader._uSeed = shader.get_uniform_location('uSeed');
shader._uColor = shader.get_uniform_location('uColor'); shader._uColor = shader.get_uniform_location('uColor');
@@ -53,11 +49,9 @@ var TVGlitch = class {
// Write all uniform values at the start of each animation. // Write all uniform values at the start of each animation.
shader.connect('begin-animation', (shader, settings, forOpening, testMode) => { shader.connect('begin-animation', (shader, settings, forOpening, testMode) => {
const c = Clutter.Color.from_string(settings.get_string('tv-glitch-color'))[1];
// clang-format off // clang-format off
shader.set_uniform_float(shader._uSeed, 1, [testMode ? 0 : Math.random()]); shader.set_uniform_float(shader._uSeed, 1, [testMode ? 0 : Math.random()]);
shader.set_uniform_float(shader._uColor, 4, [c.red / 255, c.green / 255, c.blue / 255, c.alpha / 255]); shader.set_uniform_float(shader._uColor, 4, utils.parseColor(settings.get_string('tv-glitch-color')));
shader.set_uniform_float(shader._uScale, 1, [settings.get_double('tv-glitch-scale')]); shader.set_uniform_float(shader._uScale, 1, [settings.get_double('tv-glitch-scale')]);
shader.set_uniform_float(shader._uStrength, 1, [settings.get_double('tv-glitch-strength')]); shader.set_uniform_float(shader._uStrength, 1, [settings.get_double('tv-glitch-strength')]);
shader.set_uniform_float(shader._uSpeed, 1, [settings.get_double('tv-glitch-speed')]); shader.set_uniform_float(shader._uSpeed, 1, [settings.get_double('tv-glitch-speed')]);
@@ -69,7 +63,7 @@ var TVGlitch = class {
// ---------------------------------------------------------------------------- metadata // ---------------------------------------------------------------------------- metadata
// The effect is available on all GNOME Shell versions supported by this extension. // The effect is available on all GNOME Shell versions supported by this extension.
getMinShellVersion() { static getMinShellVersion() {
return [3, 36]; return [3, 36];
} }
@@ -77,13 +71,13 @@ var TVGlitch = class {
// required. It should match the prefix of the settings keys which store whether the // 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 // effect is enabled currently (e.g. '*-close-effect'), and its animation time
// (e.g. '*-animation-time'). // (e.g. '*-animation-time').
getNick() { static getNick() {
return 'tv-glitch'; return 'tv-glitch';
} }
// This will be shown in the sidebar of the preferences dialog as well as in the // 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. // drop-down menus where the user can choose the effect.
getLabel() { static getLabel() {
return _('TV Glitch'); return _('TV Glitch');
} }
@@ -91,7 +85,7 @@ var TVGlitch = class {
// This is called by the preferences dialog whenever a new effect profile is loaded. It // This is called by the preferences dialog whenever a new effect profile is loaded. It
// binds all user interface elements to the respective settings keys of the profile. // binds all user interface elements to the respective settings keys of the profile.
bindPreferences(dialog) { static bindPreferences(dialog) {
dialog.bindAdjustment('tv-glitch-animation-time'); dialog.bindAdjustment('tv-glitch-animation-time');
dialog.bindAdjustment('tv-glitch-scale'); dialog.bindAdjustment('tv-glitch-scale');
dialog.bindAdjustment('tv-glitch-speed'); dialog.bindAdjustment('tv-glitch-speed');
@@ -104,7 +98,7 @@ var TVGlitch = class {
// The getActorScale() is called from extension.js to adjust the actor's size during the // 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 // animation. This is useful if the effect requires drawing something beyond the usual
// bounds of the actor. This only works for GNOME 3.38+. // bounds of the actor. This only works for GNOME 3.38+.
getActorScale(settings) { static getActorScale(settings, forOpening, actor) {
return {x: 1.0, y: 1.0}; return {x: 1.0, y: 1.0};
} }
} }
+17 -21
View File
@@ -14,14 +14,15 @@
'use strict'; 'use strict';
const GObject = imports.gi.GObject; import * as utils from '../utils.js';
const _ = imports.gettext.domain('burn-my-windows').gettext; // We import some modules only in the Shell process as they are not available in the
// preferences process. They are used only in the creator function of the ShaderFactory
// which is only called within GNOME Shell's process.
const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js');
const Clutter = await utils.importInShellOnly('gi://Clutter');
const ExtensionUtils = imports.misc.extensionUtils; const _ = await utils.importGettext();
const Me = imports.misc.extensionUtils.getCurrentExtension();
const utils = Me.imports.src.utils;
const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////
// This effect lets your windows be carried to the realm of dreams by some little // // This effect lets your windows be carried to the realm of dreams by some little //
@@ -31,19 +32,14 @@ const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
// The effect class can be used to get some metadata (like the effect's name or supported // 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 // GNOME Shell versions), to initialize the respective page of the settings dialog, as
// well as to create the actual shader for the effect. // well as to create the actual shader for the effect.
var Wisps = class { export default class Effect {
// The constructor creates a ShaderFactory which will be used by extension.js to create // 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 // 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 // GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
// newly created shader instance. // newly created shader instance.
constructor() { constructor() {
this.shaderFactory = new ShaderFactory(this.getNick(), (shader) => { this.shaderFactory = new ShaderFactory(Effect.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. // Store uniform locations of newly created shaders.
shader._uSeed = shader.get_uniform_location('uSeed'); shader._uSeed = shader.get_uniform_location('uSeed');
shader._uScale = shader.get_uniform_location('uScale'); shader._uScale = shader.get_uniform_location('uScale');
@@ -56,9 +52,9 @@ var Wisps = class {
// Write all uniform values at the start of each animation. // Write all uniform values at the start of each animation.
shader.connect('begin-animation', (shader, settings, forOpening, testMode) => { shader.connect('begin-animation', (shader, settings, forOpening, testMode) => {
for (let i = 1; i <= 3; i++) { for (let i = 1; i <= 3; i++) {
const c = Clutter.Color.from_string(settings.get_string('wisps-color-' + i))[1]; shader.set_uniform_float(
shader.set_uniform_float(shader._uColor[i - 1], 3, shader._uColor[i - 1], 3,
[c.red / 255, c.green / 255, c.blue / 255]); utils.parseColor(settings.get_string('wisps-color-' + i)));
} }
// clang-format off // clang-format off
@@ -72,20 +68,20 @@ var Wisps = class {
// ---------------------------------------------------------------------------- metadata // ---------------------------------------------------------------------------- metadata
// The effect is available on all GNOME Shell versions supported by this extension. // The effect is available on all GNOME Shell versions supported by this extension.
getMinShellVersion() { static getMinShellVersion() {
return [3, 36]; return [3, 36];
} }
// This will be called in various places where a unique identifier for this effect is // 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 // required. It should match the prefix of the settings keys which store whether the
// effect is enabled currently (e.g. the '*-enable-effect'). // effect is enabled currently (e.g. the '*-enable-effect').
getNick() { static getNick() {
return 'wisps'; return 'wisps';
} }
// This will be shown in the sidebar of the preferences dialog as well as in the // 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. // drop-down menus where the user can choose the effect.
getLabel() { static getLabel() {
return _('Wisps'); return _('Wisps');
} }
@@ -93,7 +89,7 @@ var Wisps = class {
// This is called by the preferences dialog whenever a new effect profile is loaded. It // This is called by the preferences dialog whenever a new effect profile is loaded. It
// binds all user interface elements to the respective settings keys of the profile. // binds all user interface elements to the respective settings keys of the profile.
bindPreferences(dialog) { static bindPreferences(dialog) {
dialog.bindAdjustment('wisps-animation-time'); dialog.bindAdjustment('wisps-animation-time');
dialog.bindAdjustment('wisps-scale'); dialog.bindAdjustment('wisps-scale');
dialog.bindColorButton('wisps-color-1'); dialog.bindColorButton('wisps-color-1');
@@ -118,7 +114,7 @@ var Wisps = class {
// The getActorScale() is called from extension.js to adjust the actor's size during the // 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 // animation. This is useful if the effect requires drawing something beyond the usual
// bounds of the actor. This only works for GNOME 3.38+. // bounds of the actor. This only works for GNOME 3.38+.
getActorScale(settings) { static getActorScale(settings, forOpening, actor) {
return {x: 1.0, y: 1.0}; return {x: 1.0, y: 1.0};
} }
} }
+3 -5
View File
@@ -14,15 +14,13 @@
'use strict'; 'use strict';
const ExtensionUtils = imports.misc.extensionUtils; import {ProfileManager} from './ProfileManager.js';
const Me = imports.misc.extensionUtils.getCurrentExtension(); import * as utils from './utils.js';
const ProfileManager = Me.imports.src.ProfileManager.ProfileManager;
const utils = Me.imports.src.utils;
// Migrating from pre-27 versions is pretty involved. Before, all settings were stored in // Migrating from pre-27 versions is pretty involved. Before, all settings were stored in
// the standard Gio.Settings backend. Now, there are effect profiles. Depending on the // the standard Gio.Settings backend. Now, there are effect profiles. Depending on the
// settings one or two profiles may be required. // settings one or two profiles may be required.
async function fromVersion26() { export async function fromVersion26() {
return utils return utils
.executeCommand(['dconf', 'dump', '/org/gnome/shell/extensions/burn-my-windows/']) .executeCommand(['dconf', 'dump', '/org/gnome/shell/extensions/burn-my-windows/'])
.catch(r => utils.debug('Failed to get old settings for effect migration: ' + r)) .catch(r => utils.debug('Failed to get old settings for effect migration: ' + r))

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