├── .clang-format ├── .github ├── FUNDING.yml ├── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md └── workflows │ ├── badges.yml │ ├── checks.yml │ └── deploy.yml ├── .gitignore ├── .reuse └── dep5 ├── LICENSE ├── LICENSES ├── CC-BY-4.0.txt ├── CC0-1.0.txt └── MIT.txt ├── Makefile ├── README.md ├── assets ├── architecture.blend ├── badges.blend ├── banner-mask.blend ├── captions.svg ├── logo.svg └── nav-icons.blend ├── docs ├── changelog.md ├── continuous-integration.md ├── contributing.md ├── creating-actions.md ├── creating-menus.md ├── dbus-interface.md ├── first-steps.md ├── installation.md ├── pics │ ├── achievements.jpg │ ├── achievements.png │ ├── architecture.jpg │ ├── banner-01.jpg │ ├── banner-02.jpg │ ├── banner-03.jpg │ ├── banner-04.jpg │ ├── banner-05.jpg │ ├── banner-06.jpg │ ├── banner-07.jpg │ ├── banner-08.jpg │ ├── home.png │ ├── hr.svg │ ├── left-arrow.png │ ├── logo.gif │ ├── menu-editor.png │ ├── nav-space.svg │ ├── player1.jpg │ ├── player3.jpg │ ├── player4.jpg │ ├── player5.jpg │ ├── player6.jpg │ ├── right-arrow.png │ ├── sequence-diagram.jpg │ ├── settings.png │ └── tutorial.png ├── release-management.md ├── software-architecture.md └── translating.md ├── extension.js ├── metadata.json ├── po ├── cs.po ├── de.po ├── es.po ├── fa.po ├── fi.po ├── flypie.pot ├── fr_FR.po ├── id.po ├── it.po ├── ja.po ├── ko.po ├── lt.po ├── nb_NO.po ├── nl.po ├── or.po ├── pl.po ├── pt.po ├── pt_BR.po ├── ru.po ├── si.po ├── sv.po ├── ta.po ├── tr.po ├── uk.po └── zh_Hans.po ├── prefs.js ├── presets ├── Adwaita Dark.json ├── Adwaita.json ├── Arc Dark.json ├── Arc.json ├── Catppuccin.json ├── Default.json ├── Numix.json ├── Orchis.json ├── Simple Bright.json ├── Simple Dark.json ├── Yaru.json └── assets │ ├── adwaita-dark.svg │ ├── adwaita.svg │ ├── arc-dark.svg │ ├── arc.svg │ ├── catppuccin-child-highlight.svg │ ├── catppuccin-child.svg │ ├── catppuccin-grandchild.svg │ ├── catppuccin.svg │ ├── default-child-highlight.svg │ ├── default-child.svg │ ├── default-grandchild.svg │ ├── default.svg │ ├── numix-highlight.svg │ ├── numix.svg │ ├── orchis-child.svg │ ├── orchis-grandchild.svg │ ├── orchis.svg │ ├── yaru-highlight.svg │ └── yaru.svg ├── resources ├── README.md ├── credits │ ├── README.md │ ├── contributors.json │ └── translators.json ├── css │ └── flypie.css ├── img │ ├── achievements │ │ ├── README.md │ │ ├── award0.svg │ │ ├── award1.svg │ │ ├── award2.svg │ │ ├── award3.svg │ │ ├── award4.svg │ │ ├── bronze.png │ │ ├── cancel.svg │ │ ├── chaos.svg │ │ ├── click1.svg │ │ ├── click2.svg │ │ ├── click3.svg │ │ ├── copper.png │ │ ├── dots.svg │ │ ├── export.svg │ │ ├── eye.svg │ │ ├── fire.svg │ │ ├── gear.svg │ │ ├── gesture1.svg │ │ ├── gesture2.svg │ │ ├── gesture3.svg │ │ ├── gloss.png │ │ ├── gold.png │ │ ├── grumpie.svg │ │ ├── heart.svg │ │ ├── import.svg │ │ ├── nerd.svg │ │ ├── platinum.png │ │ ├── scholar.svg │ │ ├── silver.png │ │ ├── special1.png │ │ ├── special2.png │ │ ├── special3.png │ │ └── timer.svg │ ├── levels │ │ ├── level1.png │ │ ├── level10.png │ │ ├── level2.png │ │ ├── level3.png │ │ ├── level4.png │ │ ├── level5.png │ │ ├── level6.png │ │ ├── level7.png │ │ ├── level8.png │ │ └── level9.png │ ├── logo.svg │ ├── scalable │ │ └── actions │ │ │ ├── flypie-achievements-symbolic.svg │ │ │ ├── flypie-action-command-symbolic.svg │ │ │ ├── flypie-action-dbus-signal-symbolic.svg │ │ │ ├── flypie-action-file-symbolic.svg │ │ │ ├── flypie-action-insert-text-symbolic.svg │ │ │ ├── flypie-action-shortcut-symbolic.svg │ │ │ ├── flypie-action-uri-symbolic.svg │ │ │ ├── flypie-apple-symbolic.svg │ │ │ ├── flypie-arrow-up-symbolic.svg │ │ │ ├── flypie-cake-symbolic.svg │ │ │ ├── flypie-cherry-symbolic.svg │ │ │ ├── flypie-chocolate-symbolic.svg │ │ │ ├── flypie-cold-symbolic.svg │ │ │ ├── flypie-cookie-symbolic.svg │ │ │ ├── flypie-custom-menu-symbolic.svg │ │ │ ├── flypie-deadly-symbolic.svg │ │ │ ├── flypie-doughnut-symbolic.svg │ │ │ ├── flypie-edit-advanced-symbolic.svg │ │ │ ├── flypie-edit-center-symbolic.svg │ │ │ ├── flypie-edit-children-symbolic.svg │ │ │ ├── flypie-edit-grandchildren-symbolic.svg │ │ │ ├── flypie-edit-touch-buttons-symbolic.svg │ │ │ ├── flypie-edit-trace-symbolic.svg │ │ │ ├── flypie-edit-wedges-symbolic.svg │ │ │ ├── flypie-garlic-symbolic.svg │ │ │ ├── flypie-global-appearance-symbolic.svg │ │ │ ├── flypie-go-down-symbolic.svg │ │ │ ├── flypie-go-left-symbolic.svg │ │ │ ├── flypie-go-right-symbolic.svg │ │ │ ├── flypie-go-up-symbolic.svg │ │ │ ├── flypie-go-updown-symbolic.svg │ │ │ ├── flypie-hot-symbolic.svg │ │ │ ├── flypie-image-symbolic.svg │ │ │ ├── flypie-luminance-symbolic.svg │ │ │ ├── flypie-menu-bookmarks-symbolic.svg │ │ │ ├── flypie-menu-clipboard-symbolic.svg │ │ │ ├── flypie-menu-devices-symbolic.svg │ │ │ ├── flypie-menu-favorites-symbolic.svg │ │ │ ├── flypie-menu-frequently-used-symbolic.svg │ │ │ ├── flypie-menu-main-menu-symbolic.svg │ │ │ ├── flypie-menu-recent-files-symbolic.svg │ │ │ ├── flypie-menu-running-apps-symbolic.svg │ │ │ ├── flypie-menu-system-lock-symbolic.svg │ │ │ ├── flypie-menu-system-logout-symbolic.svg │ │ │ ├── flypie-menu-system-poweroff-symbolic.svg │ │ │ ├── flypie-menu-system-settings-symbolic.svg │ │ │ ├── flypie-menu-system-suspend-symbolic.svg │ │ │ ├── flypie-menu-system-switchuser-symbolic.svg │ │ │ ├── flypie-menu-system-symbolic.svg │ │ │ ├── flypie-move-down-symbolic.svg │ │ │ ├── flypie-move-up-symbolic.svg │ │ │ ├── flypie-move-updown-symbolic.svg │ │ │ ├── flypie-muffin-symbolic.svg │ │ │ ├── flypie-multimedia-mute-symbolic.svg │ │ │ ├── flypie-multimedia-next-symbolic.svg │ │ │ ├── flypie-multimedia-playpause-symbolic.svg │ │ │ ├── flypie-multimedia-previous-symbolic.svg │ │ │ ├── flypie-multimedia-symbolic.svg │ │ │ ├── flypie-opacity-symbolic.svg │ │ │ ├── flypie-overview-symbolic.svg │ │ │ ├── flypie-pepper-symbolic.svg │ │ │ ├── flypie-pie-symbolic.svg │ │ │ ├── flypie-saturation-symbolic.svg │ │ │ ├── flypie-smelly-symbolic.svg │ │ │ ├── flypie-symbolic.svg │ │ │ ├── flypie-tutorial-symbolic.svg │ │ │ ├── flypie-vegan-symbolic.svg │ │ │ ├── flypie-wet-symbolic.svg │ │ │ ├── flypie-window-close-symbolic.svg │ │ │ ├── flypie-window-maximize-symbolic.svg │ │ │ └── heart-filled-symbolic.svg │ ├── symbolic-icon-decor.svg │ └── tutorial │ │ ├── bronze.png │ │ ├── gold.png │ │ └── silver.png ├── ui │ ├── common │ │ └── menus.ui │ └── gtk4 │ │ ├── copyValueButton.ui │ │ ├── iconSelectDialog.ui │ │ ├── imageChooserButton.ui │ │ └── settings.ui └── video │ ├── video1.gif │ ├── video1.webm │ ├── video2.gif │ └── video2.webm ├── schemas └── org.gnome.shell.extensions.flypie.gschema.xml ├── scripts ├── clang-format.sh └── cloc.sh ├── src ├── common │ ├── Achievements.js │ ├── ConfigWidgetFactory.js │ ├── DBusInterface.js │ ├── ItemClass.js │ ├── ItemRegistry.js │ ├── Statistics.js │ ├── Timer.js │ ├── actions │ │ ├── Command.js │ │ ├── DBusSignal.js │ │ ├── File.js │ │ ├── InsertText.js │ │ ├── Shortcut.js │ │ └── Uri.js │ ├── menus │ │ ├── Bookmarks.js │ │ ├── Clipboard.js │ │ ├── CustomMenu.js │ │ ├── Devices.js │ │ ├── Favorites.js │ │ ├── FrequentlyUsed.js │ │ ├── MainMenu.js │ │ ├── RunningApps.js │ │ └── System.js │ └── utils.js ├── extension │ ├── Background.js │ ├── ClipboardManager.js │ ├── Daemon.js │ ├── DefaultMenu.js │ ├── InputManipulator.js │ ├── Menu.js │ ├── MenuItem.js │ ├── MouseHighlight.js │ ├── SelectionWedges.js │ ├── Shortcuts.js │ ├── TouchButtons.js │ └── keysyms.js └── prefs │ ├── AchievementsPage.js │ ├── AnimatedValue.js │ ├── CopyValueButton.js │ ├── ExampleMenu.js │ ├── IconSelectDialog.js │ ├── ImageChooserButton.js │ ├── MenuEditor.js │ ├── MenuEditorPage.js │ ├── Preset.js │ ├── SettingsPage.js │ └── TutorialPage.js └── tests ├── find-target.sh ├── references ├── default_menu.png └── preferences.png └── run-test.sh /.clang-format: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Simon Schneegans 2 | # SPDX-License-Identifier: CC0-1.0 3 | 4 | BasedOnStyle: Google 5 | AlignConsecutiveAssignments: true 6 | KeepEmptyLinesAtTheStartOfBlocks: true 7 | ColumnLimit: 90 -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Simon Schneegans 2 | # SPDX-License-Identifier: CC0-1.0 3 | 4 | # These are supported funding model platforms 5 | 6 | github: schneegans 7 | ko_fi: schneegans 8 | custom: 9 | [ 10 | "https://www.paypal.com/donate/?hosted_button_id=3F7UFL8KLVPXE", 11 | https://schneegans.cb.id, 12 | ] 13 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | # SPDX-FileCopyrightText: Simon Schneegans 3 | # SPDX-License-Identifier: CC-BY-4.0 4 | 5 | name: Bug Report 6 | about: Create a report to help us improve Fly-Pie! 7 | title: '' 8 | labels: bug 9 | assignees: '' 10 | --- 11 | 12 | 16 | 17 | ## Describe the Bug 18 | A clear and concise description of what the bug is. 19 | If applicable, add screenshots to help explain your problem. 20 | 21 | Steps to reproduce the behavior: 22 | 1. Go to '...' 23 | 2. Click on '....' 24 | 3. Scroll down to '....' 25 | 4. See error 26 | 27 | You may also check the output of GNOME Shell for any error messages related to Fly-Pie. 28 | This can be done with the following terminal command: 29 | 30 | journalctl -f -o cat | grep -E 'flypie|' 31 | ``` 32 | 33 | ## Expected Behavior 34 | A clear and concise description of what you expected to happen. 35 | 36 | ## System 37 | _Please complete the following information:_ 38 | - Linux distribution [e.g. Ubuntu 20.04] 39 | - Fly-Pie version [e.g. Fly-Pie 3, or commit SHA] 40 | - GNOME Shell version: [e.g. 3.36.2] -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | # SPDX-FileCopyrightText: Simon Schneegans 3 | # SPDX-License-Identifier: CC-BY-4.0 4 | 5 | name: Feature Request 6 | about: Suggest an idea for Fly-Pie. 7 | title: '' 8 | labels: enhancement 9 | assignees: '' 10 | --- 11 | 12 | 16 | 17 | ## The Motivation 18 | A clear and concise description of use-case. 19 | 20 | ## The Solution 21 | A clear and concise description of what you want to happen. 22 | 23 | ## The Alternatives 24 | A clear and concise description of any alternative solutions or features you've considered. 25 | -------------------------------------------------------------------------------- /.github/workflows/badges.yml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Simon Schneegans 2 | # SPDX-License-Identifier: CC0-1.0 3 | 4 | name: Badges 5 | 6 | on: 7 | push: 8 | branches: 9 | - main 10 | 11 | jobs: 12 | update-badges: 13 | name: Update Badges 14 | runs-on: ubuntu-latest 15 | steps: 16 | - name: Checkout Repository 17 | uses: actions/checkout@v4 18 | - name: Download cloc 19 | run: sudo apt-get update -y && sudo apt-get install -y cloc 20 | - name: Get the Numbers 21 | run: | 22 | echo "CODE_LINES=$(scripts/cloc.sh --loc)" >> $GITHUB_ENV 23 | echo "COMMENT_LINES=$(scripts/cloc.sh --percentage)" >> $GITHUB_ENV 24 | - name: Create Lines-of-Code-Badge 25 | uses: schneegans/dynamic-badges-action@v1.3.0 26 | with: 27 | auth: ${{ secrets.UPLOAD_BADGES }} 28 | gistID: 8f6459c2417de7534f64d98360dde865 29 | filename: loc.json 30 | label: Lines of Code 31 | message: ${{ env.CODE_LINES }} 32 | color: lightgrey 33 | labelColor: 303030 34 | - name: Create Comments-Badge 35 | uses: schneegans/dynamic-badges-action@v1.3.0 36 | with: 37 | auth: ${{ secrets.UPLOAD_BADGES }} 38 | gistID: 8f6459c2417de7534f64d98360dde865 39 | filename: comments.json 40 | label: Comments 41 | message: ${{ env.COMMENT_LINES }}% 42 | valColorRange: ${{ env.COMMENT_LINES }} 43 | maxColorRange: 50 44 | minColorRange: 0 45 | labelColor: 303030 46 | -------------------------------------------------------------------------------- /.github/workflows/deploy.yml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Simon Schneegans 2 | # SPDX-License-Identifier: CC0-1.0 3 | 4 | name: Deploy 5 | 6 | on: 7 | push: 8 | tags: 9 | - "**" 10 | 11 | jobs: 12 | source_code: 13 | name: Extension Bundle 14 | runs-on: ubuntu-latest 15 | steps: 16 | - name: Checkout Repository 17 | uses: actions/checkout@v4 18 | - name: Install Dependencies 19 | run: | 20 | sudo apt-get update -q 21 | sudo apt-get install gettext libglib2.0-dev 22 | - name: Create Release 23 | run: | 24 | make zip 25 | - name: Upload Release 26 | uses: svenstaro/upload-release-action@2.9.0 27 | with: 28 | repo_token: ${{ secrets.GITHUB_TOKEN }} 29 | file: flypie@schneegans.github.com.zip 30 | asset_name: flypie@schneegans.github.com.zip 31 | tag: ${{ github.ref }} 32 | overwrite: true 33 | prerelease: true 34 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Simon Schneegans 2 | # SPDX-License-Identifier: CC0-1.0 3 | 4 | /locale 5 | *~ 6 | *.zip 7 | *.blend1 8 | *.blend2 9 | *.blend3 10 | /resources/flypie.gresource 11 | /resources/flypie.gresource.xml 12 | /schemas/gschemas.compiled -------------------------------------------------------------------------------- /.reuse/dep5: -------------------------------------------------------------------------------- 1 | Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ 2 | 3 | Files: tests/references/* 4 | Copyright: Simon Schneegans 5 | License: CC0-1.0 6 | 7 | Files: resources/credits/* 8 | Copyright: Simon Schneegans 9 | License: CC0-1.0 10 | 11 | Files: resources/img/* 12 | Copyright: Simon Schneegans 13 | License: CC-BY-4.0 14 | 15 | Files: resources/video/* 16 | Copyright: Simon Schneegans 17 | License: CC-BY-4.0 18 | 19 | Files: presets/* 20 | Copyright: Simon Schneegans 21 | License: CC-BY-4.0 22 | 23 | Files: docs/pics/* 24 | Copyright: Simon Schneegans 25 | License: CC-BY-4.0 26 | 27 | Files: assets/* 28 | Copyright: Simon Schneegans 29 | License: CC-BY-4.0 30 | 31 | Files: po/* 32 | Copyright: Simon Schneegans 33 | License: MIT 34 | 35 | Files: metadata.json 36 | Copyright: Simon Schneegans 37 | License: MIT 38 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Simon Schneegans 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /LICENSES/MIT.txt: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 10 | -------------------------------------------------------------------------------- /assets/architecture.blend: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Schneegans/Fly-Pie/933d6b9dacc364c253dd5690445acb7b71e26a48/assets/architecture.blend -------------------------------------------------------------------------------- /assets/badges.blend: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Schneegans/Fly-Pie/933d6b9dacc364c253dd5690445acb7b71e26a48/assets/badges.blend -------------------------------------------------------------------------------- /assets/banner-mask.blend: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Schneegans/Fly-Pie/933d6b9dacc364c253dd5690445acb7b71e26a48/assets/banner-mask.blend -------------------------------------------------------------------------------- /assets/nav-icons.blend: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Schneegans/Fly-Pie/933d6b9dacc364c253dd5690445acb7b71e26a48/assets/nav-icons.blend -------------------------------------------------------------------------------- /docs/continuous-integration.md: -------------------------------------------------------------------------------- 1 | 5 | 6 |

7 | 8 |

9 | 10 | # Continuous Integration 11 | 12 | [Github Actions](https://github.com/Schneegans/Fly-Pie/actions) is used for continuous integration of Fly-Pie. 13 | There are three workflow files used: 14 | 15 | ## [`checks.yml`](../.github/workflows/checks.yml) 16 | This executes several checks whenever a commit is pushed or a pull request is opened. 17 | * **Clang-Format Check:** 18 | We enforce specific code formatting rules described in the file [`.clang-format`](../.clang-format). 19 | For each and **every push event**, a job is executed which checks whether the code base obeys these rules. 20 | Commits passing this check will be marked with a :heavy_check_mark:, when the style does not match the rules, the commit will receive a :x:. 21 | * **Comment Percentage Check:** 22 | For pull requests only, a job is run which analyses the amount of comments in the source tree. 23 | The percentage of source lines of code containing comments is calculated with the script [`cloc.sh`](../scripts/cloc.sh) and compared with the amount of comments in the base branch. 24 | This test will pass if the amount of comments did not decrease. 25 | * **ShellCheck:** At each push event, all shell scripts are checked with ShellCheck. 26 | * **Run Tests:** This checks whether the release archive can be created successfully. 27 | It also checks whether the resulting archive is not too large to be uploaded to extensions.gnome.org. Then, several containers are booted (using [gnome-shell-pod](https://github.com/Schneegans/gnome-shell-pod)) to test Fly-Pie on various GNOME Shell versions. 28 | 29 | ## [`deploy.yml`](../.github/workflows/deploy.yml) 30 | This runs `make zip` whenever a tag is pushed. 31 | The resulting `flypie@schneegans.github.com.zip` is uploaded to an automatically created release. 32 | 33 | ## [`badges.yml`](../.github/workflows/badges.yml) 34 | This uses the [Dynamic Badges Action](https://github.com/Schneegans/dynamic-badges-action) to update the Comment-Percentage-Badge and Lines-of-Code-Badge of the `README.md` automatically whenever a commit is pushed. 35 | 36 | 37 |

38 | 39 |

40 | 41 | Release Management 42 | 43 | Index 44 | 45 | 46 | 47 | 48 | 49 |

50 | -------------------------------------------------------------------------------- /docs/pics/achievements.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Schneegans/Fly-Pie/933d6b9dacc364c253dd5690445acb7b71e26a48/docs/pics/achievements.jpg -------------------------------------------------------------------------------- /docs/pics/achievements.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Schneegans/Fly-Pie/933d6b9dacc364c253dd5690445acb7b71e26a48/docs/pics/achievements.png -------------------------------------------------------------------------------- /docs/pics/architecture.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Schneegans/Fly-Pie/933d6b9dacc364c253dd5690445acb7b71e26a48/docs/pics/architecture.jpg -------------------------------------------------------------------------------- /docs/pics/banner-01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Schneegans/Fly-Pie/933d6b9dacc364c253dd5690445acb7b71e26a48/docs/pics/banner-01.jpg -------------------------------------------------------------------------------- /docs/pics/banner-02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Schneegans/Fly-Pie/933d6b9dacc364c253dd5690445acb7b71e26a48/docs/pics/banner-02.jpg -------------------------------------------------------------------------------- /docs/pics/banner-03.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Schneegans/Fly-Pie/933d6b9dacc364c253dd5690445acb7b71e26a48/docs/pics/banner-03.jpg -------------------------------------------------------------------------------- /docs/pics/banner-04.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Schneegans/Fly-Pie/933d6b9dacc364c253dd5690445acb7b71e26a48/docs/pics/banner-04.jpg -------------------------------------------------------------------------------- /docs/pics/banner-05.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Schneegans/Fly-Pie/933d6b9dacc364c253dd5690445acb7b71e26a48/docs/pics/banner-05.jpg -------------------------------------------------------------------------------- /docs/pics/banner-06.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Schneegans/Fly-Pie/933d6b9dacc364c253dd5690445acb7b71e26a48/docs/pics/banner-06.jpg -------------------------------------------------------------------------------- /docs/pics/banner-07.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Schneegans/Fly-Pie/933d6b9dacc364c253dd5690445acb7b71e26a48/docs/pics/banner-07.jpg -------------------------------------------------------------------------------- /docs/pics/banner-08.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Schneegans/Fly-Pie/933d6b9dacc364c253dd5690445acb7b71e26a48/docs/pics/banner-08.jpg -------------------------------------------------------------------------------- /docs/pics/home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Schneegans/Fly-Pie/933d6b9dacc364c253dd5690445acb7b71e26a48/docs/pics/home.png -------------------------------------------------------------------------------- /docs/pics/left-arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Schneegans/Fly-Pie/933d6b9dacc364c253dd5690445acb7b71e26a48/docs/pics/left-arrow.png -------------------------------------------------------------------------------- /docs/pics/logo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Schneegans/Fly-Pie/933d6b9dacc364c253dd5690445acb7b71e26a48/docs/pics/logo.gif -------------------------------------------------------------------------------- /docs/pics/menu-editor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Schneegans/Fly-Pie/933d6b9dacc364c253dd5690445acb7b71e26a48/docs/pics/menu-editor.png -------------------------------------------------------------------------------- /docs/pics/nav-space.svg: -------------------------------------------------------------------------------- 1 | 2 | 20 | 22 | 54 | 59 | 64 | 65 | 67 | 68 | 70 | image/svg+xml 71 | 73 | 74 | 75 | 76 | 77 | 82 | -------------------------------------------------------------------------------- /docs/pics/player1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Schneegans/Fly-Pie/933d6b9dacc364c253dd5690445acb7b71e26a48/docs/pics/player1.jpg -------------------------------------------------------------------------------- /docs/pics/player3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Schneegans/Fly-Pie/933d6b9dacc364c253dd5690445acb7b71e26a48/docs/pics/player3.jpg -------------------------------------------------------------------------------- /docs/pics/player4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Schneegans/Fly-Pie/933d6b9dacc364c253dd5690445acb7b71e26a48/docs/pics/player4.jpg -------------------------------------------------------------------------------- /docs/pics/player5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Schneegans/Fly-Pie/933d6b9dacc364c253dd5690445acb7b71e26a48/docs/pics/player5.jpg -------------------------------------------------------------------------------- /docs/pics/player6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Schneegans/Fly-Pie/933d6b9dacc364c253dd5690445acb7b71e26a48/docs/pics/player6.jpg -------------------------------------------------------------------------------- /docs/pics/right-arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Schneegans/Fly-Pie/933d6b9dacc364c253dd5690445acb7b71e26a48/docs/pics/right-arrow.png -------------------------------------------------------------------------------- /docs/pics/sequence-diagram.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Schneegans/Fly-Pie/933d6b9dacc364c253dd5690445acb7b71e26a48/docs/pics/sequence-diagram.jpg -------------------------------------------------------------------------------- /docs/pics/settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Schneegans/Fly-Pie/933d6b9dacc364c253dd5690445acb7b71e26a48/docs/pics/settings.png -------------------------------------------------------------------------------- /docs/pics/tutorial.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Schneegans/Fly-Pie/933d6b9dacc364c253dd5690445acb7b71e26a48/docs/pics/tutorial.png -------------------------------------------------------------------------------- /docs/release-management.md: -------------------------------------------------------------------------------- 1 | 5 | 6 |

7 | 8 |

9 | 10 | # Releases of Fly-Pie 11 | 12 | Releases are [published on Github](https://github.com/Schneegans/Fly-Pie/releases). 13 | They are automatically created via [Github Actions](https://github.com/Schneegans/Fly-Pie/actions) whenever a git tag is pushed. 14 | The progress of future releases is tracked with [Github Milestones](https://github.com/Schneegans/Fly-Pie/milestones). 15 | Submitted [issues](https://github.com/Schneegans/Fly-Pie/issues) will be assigned to a specific release (depending on their importance and complexity). 16 | 17 | ## Version Numbers 18 | 19 | GNOME Shell extensions [should use integer numbers for their versioning](https://wiki.gnome.org/Projects/GnomeShell/Extensions/Writing#metadata.json_.28Required.29). 20 | Therefore the version number of Fly-Pie will be increased by one whenever a new version is released. 21 | 22 | ## Creating Releases 23 | 24 | When a new version of Fly-Pie is released, the following steps are performed. 25 | 26 | 1. We base the following steps on the current `main` branch: 27 | ```bash 28 | git checkout main 29 | ``` 30 | 31 | 1. First, the release date in the [changelog.md](https://github.com/Schneegans/Fly-Pie/blob/main/docs/changelog.md) needs to be updated. 32 | When this is done, the file has to be committed: 33 | ```bash 34 | git add docs/changelog.md 35 | git commit -m ":tada: Set release date" 36 | ``` 37 | 38 | 1. Then, a tag is created and everything is pushed: 39 | ```bash 40 | git tag v 41 | git push origin v 42 | git push origin main 43 | ``` 44 | 45 | 1. Finally, the version number of the `metadata.json` needs to be increased for the next release. 46 | ```bash 47 | git add metadata.json 48 | git commit -m ":tada: Bump version number" 49 | ``` 50 | 51 | 1. Last but not least, the [automatically created release](https://github.com/Schneegans/Fly-Pie/releases) needs to be renamed and an interesting description needs to be added. 52 | 53 | 1. Ultimately, the created `flypie@schneegans.github.com.zip` file is uploaded to https://extensions.gnome.org/. It will take some time to get reviewed there. 54 | 55 |

56 | 57 |

58 | 59 | Changelog 60 | 61 | Index 62 | 63 | Continuous Integration 64 |

65 | -------------------------------------------------------------------------------- /docs/translating.md: -------------------------------------------------------------------------------- 1 | 5 | 6 | [![Translation status](https://hosted.weblate.org/widgets/fly-pie/-/horizontal-auto.svg)](https://hosted.weblate.org/engage/fly-pie/) 7 | 8 | # Translating Fly-Pie 9 | 10 | 11 | 12 | A great way to contribute to Fly-Pie is creating a translation to another language! 13 | 14 | Just head over to [Weblate](https://hosted.weblate.org/engage/fly-pie/) and start a new translation or update an existing one. 15 | If you are logged in, you can directly edit the translations. 16 | If you are not logged in, you can make suggestions for improving existing translations. 17 | 18 | An especially challenging part for translations are the **achievements**. 19 | Most achievements have five tiers. 20 | In these cases, you can use a `%i` or a `%s` in the achievement's name. 21 | In English, `%i` will be replaced by the corresponding roman tier number (I, II, III, ...) and `%s` will be replaced by one of the attributes ('Novice', 'Master', ...). 22 | Both of these can be translated as well, so you may get quite creative here! 23 | The image on the right illustrates this. 24 | 25 |

26 | 27 | 28 | ### Testing Your Translation 29 | 30 | If you started a translation from scratch or modified substantial parts of an existing translation, you should verify that everything looks as supposed. 31 | To do this, you should clone the [Weblate fork of Fly-Pie](https://github.com/weblate/Fly-Pie/tree/weblate-fly-pie-core) and install it: 32 | 33 | ```bash 34 | git clone https://github.com/weblate/Fly-Pie.git 35 | cd Fly-Pie 36 | make install 37 | ``` 38 | 39 | Then, restart GNOME Shell with Alt + F2, r + Enter. 40 | Or logout / login if you are on Wayland. 41 | If all strings you translated are looking good, you're done! 42 | A pull request including your changes will be created automatically. 43 | 44 | 45 |

46 | 47 |

48 | Software Architecture 49 | 50 | Index 51 | 52 | Creating New Action Types 53 |

54 | -------------------------------------------------------------------------------- /extension.js: -------------------------------------------------------------------------------- 1 | ////////////////////////////////////////////////////////////////////////////////////////// 2 | // ___ _ ___ // 3 | // | | \/ | ) | | // 4 | // O- |- | | - | | |- -O // 5 | // | |_ | | | |_ // 6 | // // 7 | ////////////////////////////////////////////////////////////////////////////////////////// 8 | 9 | // SPDX-FileCopyrightText: Simon Schneegans 10 | // SPDX-License-Identifier: MIT 11 | 12 | 'use strict'; 13 | 14 | import {Extension} from 'resource:///org/gnome/shell/extensions/extension.js'; 15 | 16 | import Daemon from './src/extension/Daemon.js'; 17 | 18 | ////////////////////////////////////////////////////////////////////////////////////////// 19 | // Once enabled, Fly-Pie creates an instance of the Daemon class. This daemon will // 20 | // show a pie menu when it receives a show-menu request on the D-Bus or when one of // 21 | // the configured shortcuts are pressed. // 22 | // // 23 | // This extension consists of three main source code directories: // 24 | // daemon/ This contains code which is only required by extension.js. // 25 | // settings/ This contains code which is only required by prefs.js. // 26 | // common/ This contains code which is required by extension.js and prefs.js. // 27 | ////////////////////////////////////////////////////////////////////////////////////////// 28 | 29 | export default class FlyPie extends Extension { 30 | 31 | // This function could be called after the extension is enabled, which could be done 32 | // from GNOME Tweaks, when you log in or when the screen is unlocked. We create an 33 | // instance of the Daemon class. 34 | enable() { 35 | this.daemon = new Daemon(this.metadata); 36 | } 37 | 38 | // This function could be called after the extension is uninstalled, disabled in GNOME 39 | // Tweaks, when you log out or when the screen locks. It deletes the previously created 40 | // damon. 41 | disable() { 42 | this.daemon.destroy(); 43 | this.daemon = null; 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "uuid": "flypie@schneegans.github.com", 3 | "description": "A marking menu which can be used to launch applications, simulate hotkeys, open URLs and much more. Once installed, press Ctrl+Space to open the default menu. Open the preferences dialog for an interactive tutorial and for creating custom menus!", 4 | "name": "Fly-Pie", 5 | "donations": { 6 | "kofi": "schneegans", 7 | "github": "schneegans", 8 | "paypal": "simonschneegans" 9 | }, 10 | "gettext-domain": "flypie", 11 | "settings-schema": "org.gnome.shell.extensions.flypie", 12 | "shell-version": ["45", "46", "47", "48"], 13 | "url": "https://github.com/Schneegans/Fly-Pie", 14 | "version": 28 15 | } 16 | -------------------------------------------------------------------------------- /presets/Adwaita Dark.json: -------------------------------------------------------------------------------- 1 | { 2 | "easing-duration": 0.25, 3 | "easing-mode": "ease-out", 4 | "background-color": "rgba(0, 0, 0, 0.26)", 5 | "text-color": "rgb(222,222,222)", 6 | "font": "Open Sans Bold 11", 7 | "label-font": "Open Sans 8", 8 | "wedge-width": 300, 9 | "wedge-inner-radius": 43, 10 | "wedge-color": "rgba(0,0,0,0.129992)", 11 | "wedge-color-hover": "rgba(0,0,0,0.0747331)", 12 | "wedge-separator-color": "rgba(255, 255, 255, 0.13)", 13 | "wedge-separator-width": 1, 14 | "center-color-mode": "fixed", 15 | "center-color-mode-hover": "fixed", 16 | "center-fixed-color": "rgba(255,255,255,0)", 17 | "center-fixed-color-hover": "rgba(255,255,255,0)", 18 | "center-auto-color-saturation": 0.75, 19 | "center-auto-color-saturation-hover": 0.75, 20 | "center-auto-color-luminance": 0.8, 21 | "center-auto-color-luminance-hover": 0.8, 22 | "center-auto-color-opacity": 0, 23 | "center-auto-color-opacity-hover": 0, 24 | "center-size": 110, 25 | "center-size-hover": 90, 26 | "center-icon-scale": 0.7, 27 | "center-icon-scale-hover": 0.7, 28 | "center-icon-opacity": 0.17, 29 | "center-icon-opacity-hover": 1, 30 | "center-icon-crop": 0.8, 31 | "center-icon-crop-hover": 0.8, 32 | "center-background-image": "assets/adwaita-dark.svg", 33 | "center-background-image-hover": "assets/adwaita-dark.svg", 34 | "child-color-mode": "fixed", 35 | "child-color-mode-hover": "fixed", 36 | "child-fixed-color": "rgba(255,255,255,0)", 37 | "child-fixed-color-hover": "rgba(255,255,255,0)", 38 | "child-auto-color-saturation": 0.9, 39 | "child-auto-color-saturation-hover": 1, 40 | "child-auto-color-luminance": 0.7, 41 | "child-auto-color-luminance-hover": 0.8802816901408451, 42 | "child-auto-color-opacity": 1, 43 | "child-auto-color-opacity-hover": 1, 44 | "child-size": 59, 45 | "child-size-hover": 77, 46 | "child-offset": 106, 47 | "child-offset-hover": 113, 48 | "child-icon-scale": 0.7, 49 | "child-icon-scale-hover": 0.7, 50 | "child-icon-opacity": 1, 51 | "child-icon-opacity-hover": 1, 52 | "child-icon-crop": 0.8, 53 | "child-icon-crop-hover": 0.8, 54 | "child-background-image": "assets/adwaita-dark.svg", 55 | "child-background-image-hover": "assets/adwaita-dark.svg", 56 | "child-draw-above": false, 57 | "grandchild-color-mode": "fixed", 58 | "grandchild-color-mode-hover": "fixed", 59 | "grandchild-fixed-color": "rgba(189,184,178,0)", 60 | "grandchild-fixed-color-hover": "rgba(189,184,178,0)", 61 | "grandchild-size": 17, 62 | "grandchild-size-hover": 27, 63 | "grandchild-offset": 25, 64 | "grandchild-offset-hover": 31, 65 | "grandchild-background-image": "assets/adwaita-dark.svg", 66 | "grandchild-background-image-hover": "assets/adwaita-dark.svg", 67 | "grandchild-draw-above": false, 68 | "trace-min-length": 200, 69 | "trace-thickness": 8, 70 | "trace-color": "rgba(0,0,0,0.462838)" 71 | } -------------------------------------------------------------------------------- /presets/Adwaita.json: -------------------------------------------------------------------------------- 1 | { 2 | "easing-duration": 0.25, 3 | "easing-mode": "ease-out", 4 | "background-color": "rgba(0, 0, 0, 0.26)", 5 | "text-color": "rgb(37, 37, 37)", 6 | "font": "Open Sans 11", 7 | "label-font": "Open Sans 8", 8 | "wedge-width": 300, 9 | "wedge-inner-radius": 43, 10 | "wedge-color": "rgba(0,0,0,0.129992)", 11 | "wedge-color-hover": "rgba(0,0,0,0.0747331)", 12 | "wedge-separator-color": "rgba(255, 255, 255, 0.13)", 13 | "wedge-separator-width": 1, 14 | "center-color-mode": "fixed", 15 | "center-color-mode-hover": "fixed", 16 | "center-fixed-color": "rgba(255,255,255,0)", 17 | "center-fixed-color-hover": "rgba(255,255,255,0)", 18 | "center-auto-color-saturation": 0.75, 19 | "center-auto-color-saturation-hover": 0.75, 20 | "center-auto-color-luminance": 0.8, 21 | "center-auto-color-luminance-hover": 0.8, 22 | "center-auto-color-opacity": 0, 23 | "center-auto-color-opacity-hover": 0, 24 | "center-size": 110, 25 | "center-size-hover": 90, 26 | "center-icon-scale": 0.7, 27 | "center-icon-scale-hover": 0.7, 28 | "center-icon-opacity": 0.17, 29 | "center-icon-opacity-hover": 1, 30 | "center-icon-crop": 0.8, 31 | "center-icon-crop-hover": 0.8, 32 | "center-background-image": "assets/adwaita.svg", 33 | "center-background-image-hover": "assets/adwaita.svg", 34 | "child-color-mode": "fixed", 35 | "child-color-mode-hover": "fixed", 36 | "child-fixed-color": "rgba(255,255,255,0)", 37 | "child-fixed-color-hover": "rgba(255,255,255,0)", 38 | "child-auto-color-saturation": 0.9, 39 | "child-auto-color-saturation-hover": 1, 40 | "child-auto-color-luminance": 0.7, 41 | "child-auto-color-luminance-hover": 0.8802816901408451, 42 | "child-auto-color-opacity": 1, 43 | "child-auto-color-opacity-hover": 1, 44 | "child-size": 59, 45 | "child-size-hover": 77, 46 | "child-offset": 106, 47 | "child-offset-hover": 113, 48 | "child-icon-scale": 0.7, 49 | "child-icon-scale-hover": 0.7, 50 | "child-icon-opacity": 1, 51 | "child-icon-opacity-hover": 1, 52 | "child-icon-crop": 0.8, 53 | "child-icon-crop-hover": 0.8, 54 | "child-background-image": "assets/adwaita.svg", 55 | "child-background-image-hover": "assets/adwaita.svg", 56 | "child-draw-above": false, 57 | "grandchild-color-mode": "fixed", 58 | "grandchild-color-mode-hover": "fixed", 59 | "grandchild-fixed-color": "rgba(189,184,178,0)", 60 | "grandchild-fixed-color-hover": "rgba(189,184,178,0)", 61 | "grandchild-size": 17, 62 | "grandchild-size-hover": 27, 63 | "grandchild-offset": 25, 64 | "grandchild-offset-hover": 31, 65 | "grandchild-background-image": "assets/adwaita.svg", 66 | "grandchild-background-image-hover": "assets/adwaita.svg", 67 | "grandchild-draw-above": false, 68 | "trace-min-length": 200, 69 | "trace-thickness": 8, 70 | "trace-color": "rgba(255,255,255,0.459075)" 71 | } -------------------------------------------------------------------------------- /presets/Arc Dark.json: -------------------------------------------------------------------------------- 1 | { 2 | "easing-duration": 0.25, 3 | "easing-mode": "ease-out", 4 | "background-color": "rgba(0, 0, 0, 0.26)", 5 | "text-color": "rgb(222,222,222)", 6 | "font": "Open Sans Bold 11", 7 | "label-font": "Open Sans 8", 8 | "wedge-width": 300, 9 | "wedge-inner-radius": 43, 10 | "wedge-color": "rgba(0,0,0,0.129992)", 11 | "wedge-color-hover": "rgba(0,0,0,0.0747331)", 12 | "wedge-separator-color": "rgba(36,40,50,0.412811)", 13 | "wedge-separator-width": 1, 14 | "center-color-mode": "fixed", 15 | "center-color-mode-hover": "fixed", 16 | "center-fixed-color": "rgba(255,255,255,0)", 17 | "center-fixed-color-hover": "rgba(255,255,255,0)", 18 | "center-auto-color-saturation": 0.75, 19 | "center-auto-color-saturation-hover": 0.75, 20 | "center-auto-color-luminance": 0.8, 21 | "center-auto-color-luminance-hover": 0.8, 22 | "center-auto-color-opacity": 0, 23 | "center-auto-color-opacity-hover": 0, 24 | "center-size": 110, 25 | "center-size-hover": 90, 26 | "center-icon-scale": 0.7, 27 | "center-icon-scale-hover": 0.7, 28 | "center-icon-opacity": 0.17, 29 | "center-icon-opacity-hover": 1, 30 | "center-icon-crop": 0.8, 31 | "center-icon-crop-hover": 0.8, 32 | "center-background-image": "assets/arc-dark.svg", 33 | "center-background-image-hover": "assets/arc-dark.svg", 34 | "child-color-mode": "fixed", 35 | "child-color-mode-hover": "fixed", 36 | "child-fixed-color": "rgba(255,255,255,0)", 37 | "child-fixed-color-hover": "rgba(255,255,255,0)", 38 | "child-auto-color-saturation": 0.9, 39 | "child-auto-color-saturation-hover": 1, 40 | "child-auto-color-luminance": 0.7, 41 | "child-auto-color-luminance-hover": 0.8802816901408451, 42 | "child-auto-color-opacity": 1, 43 | "child-auto-color-opacity-hover": 1, 44 | "child-size": 52, 45 | "child-size-hover": 68, 46 | "child-offset": 106, 47 | "child-offset-hover": 113, 48 | "child-icon-scale": 0.7, 49 | "child-icon-scale-hover": 0.7, 50 | "child-icon-opacity": 1, 51 | "child-icon-opacity-hover": 1, 52 | "child-icon-crop": 0.8, 53 | "child-icon-crop-hover": 0.8, 54 | "child-background-image": "assets/arc-dark.svg", 55 | "child-background-image-hover": "assets/arc-dark.svg", 56 | "child-draw-above": false, 57 | "grandchild-color-mode": "fixed", 58 | "grandchild-color-mode-hover": "fixed", 59 | "grandchild-fixed-color": "rgba(36,40,50,0.52669)", 60 | "grandchild-fixed-color-hover": "rgb(36,40,50)", 61 | "grandchild-size": 14, 62 | "grandchild-size-hover": 21, 63 | "grandchild-offset": 22, 64 | "grandchild-offset-hover": 31, 65 | "grandchild-background-image": "", 66 | "grandchild-background-image-hover": "", 67 | "grandchild-draw-above": false, 68 | "trace-min-length": 200, 69 | "trace-thickness": 4.4, 70 | "trace-color": "rgba(36,40,50,0.462838)" 71 | } -------------------------------------------------------------------------------- /presets/Arc.json: -------------------------------------------------------------------------------- 1 | { 2 | "easing-duration": 0.25, 3 | "easing-mode": "ease-out", 4 | "background-color": "rgba(0,0,0,0.177936)", 5 | "text-color": "rgb(37, 37, 37)", 6 | "font": "Open Sans 11", 7 | "label-font": "Open Sans 8", 8 | "wedge-width": 300, 9 | "wedge-inner-radius": 43, 10 | "wedge-color": "rgba(0,0,0,0.129992)", 11 | "wedge-color-hover": "rgba(0,0,0,0.0747331)", 12 | "wedge-separator-color": "rgba(210,211,216,0.412811)", 13 | "wedge-separator-width": 1, 14 | "center-color-mode": "fixed", 15 | "center-color-mode-hover": "fixed", 16 | "center-fixed-color": "rgba(255,255,255,0)", 17 | "center-fixed-color-hover": "rgba(255,255,255,0)", 18 | "center-auto-color-saturation": 0.75, 19 | "center-auto-color-saturation-hover": 0.75, 20 | "center-auto-color-luminance": 0.8, 21 | "center-auto-color-luminance-hover": 0.8, 22 | "center-auto-color-opacity": 0, 23 | "center-auto-color-opacity-hover": 0, 24 | "center-size": 110, 25 | "center-size-hover": 90, 26 | "center-icon-scale": 0.7, 27 | "center-icon-scale-hover": 0.7, 28 | "center-icon-opacity": 0.17, 29 | "center-icon-opacity-hover": 1, 30 | "center-icon-crop": 0.8, 31 | "center-icon-crop-hover": 0.8, 32 | "center-background-image": "assets/arc.svg", 33 | "center-background-image-hover": "assets/arc.svg", 34 | "child-color-mode": "fixed", 35 | "child-color-mode-hover": "fixed", 36 | "child-fixed-color": "rgba(255,255,255,0)", 37 | "child-fixed-color-hover": "rgba(255,255,255,0)", 38 | "child-auto-color-saturation": 0.9, 39 | "child-auto-color-saturation-hover": 1, 40 | "child-auto-color-luminance": 0.7, 41 | "child-auto-color-luminance-hover": 0.8802816901408451, 42 | "child-auto-color-opacity": 1, 43 | "child-auto-color-opacity-hover": 1, 44 | "child-size": 52, 45 | "child-size-hover": 68, 46 | "child-offset": 106, 47 | "child-offset-hover": 113, 48 | "child-icon-scale": 0.7, 49 | "child-icon-scale-hover": 0.7, 50 | "child-icon-opacity": 1, 51 | "child-icon-opacity-hover": 1, 52 | "child-icon-crop": 0.8, 53 | "child-icon-crop-hover": 0.8, 54 | "child-background-image": "assets/arc.svg", 55 | "child-background-image-hover": "assets/arc.svg", 56 | "child-draw-above": false, 57 | "grandchild-color-mode": "fixed", 58 | "grandchild-color-mode-hover": "fixed", 59 | "grandchild-fixed-color": "rgba(210,211,216,0.52669)", 60 | "grandchild-fixed-color-hover": "rgba(210,211,216,0.80427)", 61 | "grandchild-size": 14, 62 | "grandchild-size-hover": 21, 63 | "grandchild-offset": 22, 64 | "grandchild-offset-hover": 31, 65 | "grandchild-background-image": "", 66 | "grandchild-background-image-hover": "", 67 | "grandchild-draw-above": false, 68 | "trace-min-length": 200, 69 | "trace-thickness": 4.4, 70 | "trace-color": "rgba(210,211,216,0.462838)" 71 | } -------------------------------------------------------------------------------- /presets/Catppuccin.json: -------------------------------------------------------------------------------- 1 | { 2 | "easing-duration": 0.25, 3 | "easing-mode": "ease-out", 4 | "background-color": "rgba(0,0,0,0.13)", 5 | "text-color": "#BDC5E6", 6 | "font": "Cantarell Bold 10", 7 | "label-font": "Cantarell 8", 8 | "wedge-width": 300, 9 | "wedge-inner-radius": 51, 10 | "wedge-color": "rgba(0,0,0,0.129992)", 11 | "wedge-color-hover": "rgba(255,255,255,0.014)", 12 | "wedge-separator-color": "rgba(38,38,38,0.32)", 13 | "wedge-separator-width": 1, 14 | "center-color-mode": "fixed", 15 | "center-color-mode-hover": "fixed", 16 | "center-fixed-color": "rgba(255,255,255,0)", 17 | "center-fixed-color-hover": "rgba(255,255,255,0)", 18 | "center-auto-color-saturation": 0.75, 19 | "center-auto-color-saturation-hover": 0.75, 20 | "center-auto-color-luminance": 0.8, 21 | "center-auto-color-luminance-hover": 0.8, 22 | "center-auto-color-opacity": 0, 23 | "center-auto-color-opacity-hover": 0, 24 | "center-size": 109, 25 | "center-size-hover": 109, 26 | "center-icon-scale": 0.55, 27 | "center-icon-scale-hover": 0.78, 28 | "center-icon-opacity": 0, 29 | "center-icon-opacity-hover": 1, 30 | "center-icon-crop": 0.93, 31 | "center-icon-crop-hover": 0.75, 32 | "center-background-image": "assets/catppuccin.svg", 33 | "center-background-image-hover": "assets/catppuccin.svg", 34 | "child-color-mode": "fixed", 35 | "child-color-mode-hover": "fixed", 36 | "child-fixed-color": "rgba(255,255,255,0)", 37 | "child-fixed-color-hover": "rgba(255,255,255,0)", 38 | "child-auto-color-saturation": 0.26, 39 | "child-auto-color-saturation-hover": 0.9, 40 | "child-auto-color-luminance": 0.17, 41 | "child-auto-color-luminance-hover": 0.2, 42 | "child-auto-color-opacity": 1, 43 | "child-auto-color-opacity-hover": 1, 44 | "child-size": 63, 45 | "child-size-hover": 67, 46 | "child-offset": 103, 47 | "child-offset-hover": 113, 48 | "child-icon-scale": 0.73, 49 | "child-icon-scale-hover": 0.73, 50 | "child-icon-opacity": 1, 51 | "child-icon-opacity-hover": 1, 52 | "child-icon-crop": 0.8, 53 | "child-icon-crop-hover": 0.8, 54 | "child-background-image": "assets/catppuccin-child.svg", 55 | "child-background-image-hover": "assets/catppuccin-child-highlight.svg", 56 | "child-draw-above": false, 57 | "grandchild-color-mode": "fixed", 58 | "grandchild-color-mode-hover": "fixed", 59 | "grandchild-fixed-color": "rgba(255,255,255,0)", 60 | "grandchild-fixed-color-hover": "rgba(255,255,255,0)", 61 | "grandchild-size": 20, 62 | "grandchild-size-hover": 23, 63 | "grandchild-offset": 25, 64 | "grandchild-offset-hover": 26, 65 | "grandchild-background-image": "assets/catppuccin-grandchild.svg", 66 | "grandchild-background-image-hover": "assets/catppuccin-grandchild.svg", 67 | "grandchild-draw-above": false, 68 | "trace-min-length": 200, 69 | "trace-thickness": 8, 70 | "trace-color": "rgb(24,25,38)", 71 | "touch-buttons-opacity": 0.3 72 | } -------------------------------------------------------------------------------- /presets/Default.json: -------------------------------------------------------------------------------- 1 | { 2 | "easing-duration": 0.25, 3 | "easing-mode": "ease-out", 4 | "background-color": "rgba(0,0,0,0.13)", 5 | "text-color": "rgb(238,238,238)", 6 | "font": "Cantarell 11", 7 | "label-font": "Cantarell 8", 8 | "wedge-width": 300, 9 | "wedge-inner-radius": 51, 10 | "wedge-color": "rgba(0,0,0,0.129992)", 11 | "wedge-color-hover": "rgba(255,255,255,0.014)", 12 | "wedge-separator-color": "rgba(38,38,38,0.32)", 13 | "wedge-separator-width": 1, 14 | "center-color-mode": "fixed", 15 | "center-color-mode-hover": "fixed", 16 | "center-fixed-color": "rgba(255,255,255,0)", 17 | "center-fixed-color-hover": "rgba(255,255,255,0)", 18 | "center-auto-color-saturation": 0.75, 19 | "center-auto-color-saturation-hover": 0.75, 20 | "center-auto-color-luminance": 0.8, 21 | "center-auto-color-luminance-hover": 0.8, 22 | "center-auto-color-opacity": 0, 23 | "center-auto-color-opacity-hover": 0, 24 | "center-size": 109, 25 | "center-size-hover": 109, 26 | "center-icon-scale": 0.55, 27 | "center-icon-scale-hover": 0.78, 28 | "center-icon-opacity": 0, 29 | "center-icon-opacity-hover": 1, 30 | "center-icon-crop": 0.93, 31 | "center-icon-crop-hover": 0.75, 32 | "center-background-image": "assets/default.svg", 33 | "center-background-image-hover": "assets/default.svg", 34 | "child-color-mode": "fixed", 35 | "child-color-mode-hover": "auto", 36 | "child-fixed-color": "rgba(255,255,255,0)", 37 | "child-fixed-color-hover": "rgba(255,255,255,0)", 38 | "child-auto-color-saturation": 0.26, 39 | "child-auto-color-saturation-hover": 0.9, 40 | "child-auto-color-luminance": 0.17, 41 | "child-auto-color-luminance-hover": 0.2, 42 | "child-auto-color-opacity": 1, 43 | "child-auto-color-opacity-hover": 1, 44 | "child-size": 58, 45 | "child-size-hover": 66, 46 | "child-offset": 106, 47 | "child-offset-hover": 113, 48 | "child-icon-scale": 0.73, 49 | "child-icon-scale-hover": 0.73, 50 | "child-icon-opacity": 1, 51 | "child-icon-opacity-hover": 1, 52 | "child-icon-crop": 0.8, 53 | "child-icon-crop-hover": 0.8, 54 | "child-background-image": "assets/default-child.svg", 55 | "child-background-image-hover": "assets/default-child-highlight.svg", 56 | "child-draw-above": false, 57 | "grandchild-color-mode": "fixed", 58 | "grandchild-color-mode-hover": "fixed", 59 | "grandchild-fixed-color": "rgba(255,255,255,0)", 60 | "grandchild-fixed-color-hover": "rgba(255,255,255,0)", 61 | "grandchild-size": 20, 62 | "grandchild-size-hover": 23, 63 | "grandchild-offset": 24, 64 | "grandchild-offset-hover": 28, 65 | "grandchild-background-image": "assets/default-grandchild.svg", 66 | "grandchild-background-image-hover": "assets/default-grandchild.svg", 67 | "grandchild-draw-above": false, 68 | "trace-min-length": 200, 69 | "trace-thickness": 8, 70 | "trace-color": "rgb(38,38,38)" 71 | } -------------------------------------------------------------------------------- /presets/Numix.json: -------------------------------------------------------------------------------- 1 | { 2 | "easing-duration": 0.25, 3 | "easing-mode": "ease-out", 4 | "background-color": "rgba(0, 0, 0, 0.26)", 5 | "text-color": "rgb(210,210,210)", 6 | "font": "Open Sans Bold 11", 7 | "label-font": "Open Sans 8", 8 | "wedge-width": 300, 9 | "wedge-inner-radius": 43, 10 | "wedge-color": "rgba(0,0,0,0.129992)", 11 | "wedge-color-hover": "rgba(0,0,0,0.0747331)", 12 | "wedge-separator-color": "rgba(255, 255, 255, 0.13)", 13 | "wedge-separator-width": 1, 14 | "center-color-mode": "fixed", 15 | "center-color-mode-hover": "fixed", 16 | "center-fixed-color": "rgba(255,255,255,0)", 17 | "center-fixed-color-hover": "rgba(255,255,255,0)", 18 | "center-auto-color-saturation": 0.75, 19 | "center-auto-color-saturation-hover": 0.75, 20 | "center-auto-color-luminance": 0.8, 21 | "center-auto-color-luminance-hover": 0.8, 22 | "center-auto-color-opacity": 0, 23 | "center-auto-color-opacity-hover": 0, 24 | "center-size": 130, 25 | "center-size-hover": 120, 26 | "center-icon-scale": 0.85, 27 | "center-icon-scale-hover": 0.85, 28 | "center-icon-opacity": 0.17, 29 | "center-icon-opacity-hover": 1, 30 | "center-icon-crop": 0.65, 31 | "center-icon-crop-hover": 0.65, 32 | "center-background-image": "assets/numix.svg", 33 | "center-background-image-hover": "assets/numix.svg", 34 | "child-color-mode": "fixed", 35 | "child-color-mode-hover": "fixed", 36 | "child-fixed-color": "rgba(255,255,255,0)", 37 | "child-fixed-color-hover": "rgba(255,255,255,0)", 38 | "child-auto-color-saturation": 0.9, 39 | "child-auto-color-saturation-hover": 1, 40 | "child-auto-color-luminance": 0.7, 41 | "child-auto-color-luminance-hover": 0.8802816901408451, 42 | "child-auto-color-opacity": 1, 43 | "child-auto-color-opacity-hover": 1, 44 | "child-size": 59, 45 | "child-size-hover": 77, 46 | "child-offset": 106, 47 | "child-offset-hover": 113, 48 | "child-icon-scale": 0.85, 49 | "child-icon-scale-hover": 0.85, 50 | "child-icon-opacity": 1, 51 | "child-icon-opacity-hover": 1, 52 | "child-icon-crop": 0.65, 53 | "child-icon-crop-hover": 0.65, 54 | "child-background-image": "assets/numix.svg", 55 | "child-background-image-hover": "assets/numix-highlight.svg", 56 | "child-draw-above": false, 57 | "grandchild-color-mode": "fixed", 58 | "grandchild-color-mode-hover": "fixed", 59 | "grandchild-fixed-color": "rgb(66,66,66)", 60 | "grandchild-fixed-color-hover": "rgb(241,83,75)", 61 | "grandchild-size": 10, 62 | "grandchild-size-hover": 17, 63 | "grandchild-offset": 25, 64 | "grandchild-offset-hover": 49, 65 | "grandchild-background-image": "", 66 | "grandchild-background-image-hover": "", 67 | "grandchild-draw-above": true, 68 | "trace-min-length": 200, 69 | "trace-thickness": 8, 70 | "trace-color": "rgba(255,255,255,0.459075)" 71 | } -------------------------------------------------------------------------------- /presets/Orchis.json: -------------------------------------------------------------------------------- 1 | { 2 | "easing-duration": 0.25, 3 | "easing-mode": "ease-out", 4 | "background-color": "rgba(0,0,0,0.13)", 5 | "text-color": "rgb(37, 37, 37)", 6 | "font": "Open Sans Bold 11", 7 | "label-font": "Open Sans 8", 8 | "wedge-width": 300, 9 | "wedge-inner-radius": 43, 10 | "wedge-color": "rgba(0,0,0,0.129992)", 11 | "wedge-color-hover": "rgba(0,0,0,0.0747331)", 12 | "wedge-separator-color": "rgba(255,255,255,0.16443)", 13 | "wedge-separator-width": 1, 14 | "center-color-mode": "fixed", 15 | "center-color-mode-hover": "fixed", 16 | "center-fixed-color": "rgba(255,255,255,0)", 17 | "center-fixed-color-hover": "rgba(255,255,255,0)", 18 | "center-auto-color-saturation": 0.75, 19 | "center-auto-color-saturation-hover": 0.75, 20 | "center-auto-color-luminance": 0.8, 21 | "center-auto-color-luminance-hover": 0.8, 22 | "center-auto-color-opacity": 0, 23 | "center-auto-color-opacity-hover": 0, 24 | "center-size": 143, 25 | "center-size-hover": 133, 26 | "center-icon-scale": 0.93, 27 | "center-icon-scale-hover": 0.78, 28 | "center-icon-opacity": 0, 29 | "center-icon-opacity-hover": 1, 30 | "center-icon-crop": 0.63, 31 | "center-icon-crop-hover": 0.63, 32 | "center-background-image": "assets/orchis.svg", 33 | "center-background-image-hover": "assets/orchis.svg", 34 | "child-color-mode": "fixed", 35 | "child-color-mode-hover": "auto", 36 | "child-fixed-color": "rgba(255,255,255,0)", 37 | "child-fixed-color-hover": "rgba(255,255,255,0)", 38 | "child-auto-color-saturation": 0.9, 39 | "child-auto-color-saturation-hover": 0.9, 40 | "child-auto-color-luminance": 0.7, 41 | "child-auto-color-luminance-hover": 0.7, 42 | "child-auto-color-opacity": 1, 43 | "child-auto-color-opacity-hover": 1, 44 | "child-size": 71, 45 | "child-size-hover": 89, 46 | "child-offset": 106, 47 | "child-offset-hover": 113, 48 | "child-icon-scale": 0.73, 49 | "child-icon-scale-hover": 0.73, 50 | "child-icon-opacity": 1, 51 | "child-icon-opacity-hover": 1, 52 | "child-icon-crop": 0.65, 53 | "child-icon-crop-hover": 0.65, 54 | "child-background-image": "assets/orchis-child.svg", 55 | "child-background-image-hover": "assets/orchis-child.svg", 56 | "child-draw-above": false, 57 | "grandchild-color-mode": "fixed", 58 | "grandchild-color-mode-hover": "fixed", 59 | "grandchild-fixed-color": "rgba(255,255,255,0)", 60 | "grandchild-fixed-color-hover": "rgb(40,40,40)", 61 | "grandchild-size": 27, 62 | "grandchild-size-hover": 33, 63 | "grandchild-offset": 24, 64 | "grandchild-offset-hover": 33, 65 | "grandchild-background-image": "assets/orchis-grandchild.svg", 66 | "grandchild-background-image-hover": "assets/orchis-grandchild.svg", 67 | "grandchild-draw-above": false, 68 | "trace-min-length": 200, 69 | "trace-thickness": 8, 70 | "trace-color": "rgba(255,255,255,0.462838)" 71 | } -------------------------------------------------------------------------------- /presets/Simple Bright.json: -------------------------------------------------------------------------------- 1 | { 2 | "easing-duration": 0.25, 3 | "easing-mode": "ease-out", 4 | "background-color": "rgba(0, 0, 0, 0.26)", 5 | "text-color": "rgb(37, 37, 37)", 6 | "font": "Open Sans 11", 7 | "label-font": "Open Sans 8", 8 | "wedge-width": 300, 9 | "wedge-inner-radius": 58, 10 | "wedge-color": "rgba(0, 0, 0, 0.2)", 11 | "wedge-color-hover": "rgba(47, 47, 47, 0.2)", 12 | "wedge-separator-color": "rgba(255, 255, 255, 0.13)", 13 | "wedge-separator-width": 1, 14 | "center-color-mode": "auto", 15 | "center-color-mode-hover": "auto", 16 | "center-fixed-color": "rgb(215, 215, 215)", 17 | "center-fixed-color-hover": "rgb(215, 215, 215)", 18 | "center-auto-color-saturation": 0.75, 19 | "center-auto-color-saturation-hover": 0.75, 20 | "center-auto-color-luminance": 0.8, 21 | "center-auto-color-luminance-hover": 0.8, 22 | "center-auto-color-opacity": 1, 23 | "center-auto-color-opacity-hover": 1, 24 | "center-size": 110, 25 | "center-size-hover": 90, 26 | "center-icon-scale": 0.85, 27 | "center-icon-scale-hover": 0.85, 28 | "center-icon-opacity": 0.17, 29 | "center-icon-opacity-hover": 1, 30 | "center-icon-crop": 0.8, 31 | "center-icon-crop-hover": 0.8, 32 | "center-background-image": "", 33 | "center-background-image-hover": "", 34 | "child-color-mode": "auto", 35 | "child-color-mode-hover": "auto", 36 | "child-fixed-color": "rgb(255, 255, 255)", 37 | "child-fixed-color-hover": "rgb(255, 255, 255)", 38 | "child-auto-color-saturation": 0.9, 39 | "child-auto-color-saturation-hover": 1, 40 | "child-auto-color-luminance": 0.7, 41 | "child-auto-color-luminance-hover": 0.8802816901408451, 42 | "child-auto-color-opacity": 1, 43 | "child-auto-color-opacity-hover": 1, 44 | "child-size": 50, 45 | "child-size-hover": 64, 46 | "child-offset": 106, 47 | "child-offset-hover": 113, 48 | "child-icon-scale": 0.85, 49 | "child-icon-scale-hover": 0.85, 50 | "child-icon-opacity": 1, 51 | "child-icon-opacity-hover": 1, 52 | "child-icon-crop": 0.8, 53 | "child-icon-crop-hover": 0.8, 54 | "child-background-image": "", 55 | "child-background-image-hover": "", 56 | "child-draw-above": false, 57 | "grandchild-color-mode": "parent", 58 | "grandchild-color-mode-hover": "parent", 59 | "grandchild-fixed-color": "rgb(200, 200, 200)", 60 | "grandchild-fixed-color-hover": "rgb(200, 200, 200)", 61 | "grandchild-size": 12, 62 | "grandchild-size-hover": 15, 63 | "grandchild-offset": 22, 64 | "grandchild-offset-hover": 32, 65 | "grandchild-background-image": "", 66 | "grandchild-background-image-hover": "", 67 | "grandchild-draw-above": false, 68 | "trace-min-length": 200, 69 | "trace-thickness": 8, 70 | "trace-color": "rgb(200, 200, 200)" 71 | } -------------------------------------------------------------------------------- /presets/Simple Dark.json: -------------------------------------------------------------------------------- 1 | { 2 | "easing-duration": 0.25, 3 | "easing-mode": "ease-out", 4 | "background-color": "rgba(0,0,0,0.266892)", 5 | "text-color": "rgb(206,206,206)", 6 | "font": "Open Sans Semi-Bold 11", 7 | "label-font": "Open Sans 8", 8 | "wedge-width": 300, 9 | "wedge-inner-radius": 58, 10 | "wedge-color": "rgba(0,0,0,0.192568)", 11 | "wedge-color-hover": "rgba(47,47,47,0.192554)", 12 | "wedge-separator-color": "rgba(255,255,255,0.131757)", 13 | "wedge-separator-width": 1, 14 | "center-color-mode": "fixed", 15 | "center-color-mode-hover": "fixed", 16 | "center-fixed-color": "rgb(52,52,52)", 17 | "center-fixed-color-hover": "rgb(52,52,52)", 18 | "center-auto-color-saturation": 0.78, 19 | "center-auto-color-saturation-hover": 0.78, 20 | "center-auto-color-luminance": 0.7, 21 | "center-auto-color-luminance-hover": 0.7, 22 | "center-auto-color-opacity": 1, 23 | "center-auto-color-opacity-hover": 1, 24 | "center-size": 110, 25 | "center-size-hover": 90, 26 | "center-icon-scale": 0.8, 27 | "center-icon-scale-hover": 0.8, 28 | "center-icon-opacity": 0.17, 29 | "center-icon-opacity-hover": 1, 30 | "center-icon-crop": 0.8, 31 | "center-icon-crop-hover": 0.8, 32 | "center-background-image": "", 33 | "center-background-image-hover": "", 34 | "child-color-mode": "fixed", 35 | "child-color-mode-hover": "auto", 36 | "child-fixed-color": "rgb(52,52,52)", 37 | "child-fixed-color-hover": "rgb(200, 200, 200)", 38 | "child-auto-color-saturation": 0.88, 39 | "child-auto-color-saturation-hover": 0.3591549295774648, 40 | "child-auto-color-luminance": 0.58, 41 | "child-auto-color-luminance-hover": 0.14084507042253522, 42 | "child-auto-color-opacity": 1, 43 | "child-auto-color-opacity-hover": 1, 44 | "child-size": 50, 45 | "child-size-hover": 64, 46 | "child-offset": 106, 47 | "child-offset-hover": 113, 48 | "child-icon-scale": 0.9, 49 | "child-icon-scale-hover": 0.9, 50 | "child-icon-opacity": 1, 51 | "child-icon-opacity-hover": 1, 52 | "child-icon-crop": 0.8, 53 | "child-icon-crop-hover": 0.8, 54 | "child-background-image": "", 55 | "child-background-image-hover": "", 56 | "child-draw-above": false, 57 | "grandchild-color-mode": "parent", 58 | "grandchild-color-mode-hover": "parent", 59 | "grandchild-fixed-color": "rgb(200, 200, 200)", 60 | "grandchild-fixed-color-hover": "rgb(255,255,255)", 61 | "grandchild-size": 12, 62 | "grandchild-size-hover": 25, 63 | "grandchild-offset": 22, 64 | "grandchild-offset-hover": 32, 65 | "grandchild-background-image": "", 66 | "grandchild-background-image-hover": "", 67 | "grandchild-draw-above": false, 68 | "trace-min-length": 200, 69 | "trace-thickness": 8, 70 | "trace-color": "rgb(52,52,52)" 71 | } -------------------------------------------------------------------------------- /presets/Yaru.json: -------------------------------------------------------------------------------- 1 | { 2 | "easing-duration": 0.25, 3 | "easing-mode": "ease-out", 4 | "background-color": "rgba(0, 0, 0, 0.26)", 5 | "text-color": "rgb(222,222,222)", 6 | "font": "Open Sans Bold 11", 7 | "label-font": "Open Sans 8", 8 | "wedge-width": 300, 9 | "wedge-inner-radius": 43, 10 | "wedge-color": "rgba(0,0,0,0.129992)", 11 | "wedge-color-hover": "rgba(230,113,0,0.0747331)", 12 | "wedge-separator-color": "rgba(255, 255, 255, 0.13)", 13 | "wedge-separator-width": 1, 14 | "center-color-mode": "fixed", 15 | "center-color-mode-hover": "fixed", 16 | "center-fixed-color": "rgba(255,255,255,0)", 17 | "center-fixed-color-hover": "rgba(255,255,255,0)", 18 | "center-auto-color-saturation": 0.75, 19 | "center-auto-color-saturation-hover": 0.75, 20 | "center-auto-color-luminance": 0.8, 21 | "center-auto-color-luminance-hover": 0.8, 22 | "center-auto-color-opacity": 0, 23 | "center-auto-color-opacity-hover": 0, 24 | "center-size": 110, 25 | "center-size-hover": 90, 26 | "center-icon-scale": 0.7, 27 | "center-icon-scale-hover": 0.7, 28 | "center-icon-opacity": 0.17, 29 | "center-icon-opacity-hover": 1, 30 | "center-icon-crop": 0.8, 31 | "center-icon-crop-hover": 0.8, 32 | "center-background-image": "assets/yaru.svg", 33 | "center-background-image-hover": "assets/yaru-highlight.svg", 34 | "child-color-mode": "fixed", 35 | "child-color-mode-hover": "fixed", 36 | "child-fixed-color": "rgba(255,255,255,0)", 37 | "child-fixed-color-hover": "rgba(255,255,255,0)", 38 | "child-auto-color-saturation": 0.9, 39 | "child-auto-color-saturation-hover": 0.9, 40 | "child-auto-color-luminance": 0.7, 41 | "child-auto-color-luminance-hover": 0.7, 42 | "child-auto-color-opacity": 1, 43 | "child-auto-color-opacity-hover": 1, 44 | "child-size": 59, 45 | "child-size-hover": 77, 46 | "child-offset": 106, 47 | "child-offset-hover": 113, 48 | "child-icon-scale": 0.7, 49 | "child-icon-scale-hover": 0.7, 50 | "child-icon-opacity": 1, 51 | "child-icon-opacity-hover": 1, 52 | "child-icon-crop": 0.8, 53 | "child-icon-crop-hover": 0.8, 54 | "child-background-image": "assets/yaru.svg", 55 | "child-background-image-hover": "assets/yaru-highlight.svg", 56 | "child-draw-above": false, 57 | "grandchild-color-mode": "fixed", 58 | "grandchild-color-mode-hover": "fixed", 59 | "grandchild-fixed-color": "rgba(189,184,178,0)", 60 | "grandchild-fixed-color-hover": "rgba(189,184,178,0)", 61 | "grandchild-size": 17, 62 | "grandchild-size-hover": 27, 63 | "grandchild-offset": 25, 64 | "grandchild-offset-hover": 31, 65 | "grandchild-background-image": "assets/yaru.svg", 66 | "grandchild-background-image-hover": "assets/yaru.svg", 67 | "grandchild-draw-above": false, 68 | "trace-min-length": 200, 69 | "trace-thickness": 8, 70 | "trace-color": "rgba(0,0,0,0.462838)" 71 | } -------------------------------------------------------------------------------- /presets/assets/arc-dark.svg: -------------------------------------------------------------------------------- 1 | 2 | 17 | 19 | 27 | 31 | 32 | 33 | 55 | 57 | 58 | 60 | image/svg+xml 61 | 63 | 64 | 65 | 66 | 67 | 71 | 78 | 84 | 85 | 86 | -------------------------------------------------------------------------------- /presets/assets/arc.svg: -------------------------------------------------------------------------------- 1 | 2 | 17 | 19 | 27 | 31 | 32 | 33 | 55 | 57 | 58 | 60 | image/svg+xml 61 | 63 | 64 | 65 | 66 | 67 | 71 | 78 | 84 | 85 | 86 | -------------------------------------------------------------------------------- /presets/assets/catppuccin-child-highlight.svg: -------------------------------------------------------------------------------- 1 | 2 | 17 | 19 | 27 | 31 | 32 | 33 | 55 | 57 | 58 | 60 | image/svg+xml 61 | 63 | 64 | 65 | 66 | 70 | 77 | 83 | 84 | 85 | -------------------------------------------------------------------------------- /presets/assets/catppuccin-child.svg: -------------------------------------------------------------------------------- 1 | 2 | 17 | 19 | 27 | 31 | 32 | 33 | 55 | 57 | 58 | 60 | image/svg+xml 61 | 63 | 64 | 65 | 66 | 70 | 77 | 83 | 84 | 85 | -------------------------------------------------------------------------------- /presets/assets/catppuccin-grandchild.svg: -------------------------------------------------------------------------------- 1 | 2 | 17 | 19 | 27 | 31 | 32 | 33 | 55 | 57 | 58 | 60 | image/svg+xml 61 | 63 | 64 | 65 | 66 | 70 | 77 | 83 | 84 | 85 | -------------------------------------------------------------------------------- /presets/assets/catppuccin.svg: -------------------------------------------------------------------------------- 1 | 2 | 17 | 19 | 27 | 31 | 32 | 33 | 55 | 57 | 58 | 60 | image/svg+xml 61 | 63 | 64 | 65 | 66 | 67 | 71 | 78 | 84 | 85 | 86 | -------------------------------------------------------------------------------- /presets/assets/default-child-highlight.svg: -------------------------------------------------------------------------------- 1 | 2 | 17 | 19 | 27 | 31 | 32 | 33 | 55 | 57 | 58 | 60 | image/svg+xml 61 | 63 | 64 | 65 | 66 | 67 | 71 | 78 | 84 | 85 | 86 | -------------------------------------------------------------------------------- /presets/assets/default-child.svg: -------------------------------------------------------------------------------- 1 | 2 | 17 | 19 | 27 | 31 | 32 | 33 | 55 | 57 | 58 | 60 | image/svg+xml 61 | 63 | 64 | 65 | 66 | 67 | 71 | 78 | 84 | 85 | 86 | -------------------------------------------------------------------------------- /presets/assets/default.svg: -------------------------------------------------------------------------------- 1 | 2 | 17 | 19 | 27 | 31 | 32 | 33 | 55 | 57 | 58 | 60 | image/svg+xml 61 | 63 | 64 | 65 | 66 | 67 | 71 | 78 | 84 | 85 | 86 | -------------------------------------------------------------------------------- /presets/assets/numix-highlight.svg: -------------------------------------------------------------------------------- 1 | 2 | 17 | 19 | 27 | 31 | 32 | 33 | 55 | 57 | 58 | 60 | image/svg+xml 61 | 63 | 64 | 65 | 66 | 67 | 71 | 78 | 84 | 85 | 86 | -------------------------------------------------------------------------------- /presets/assets/numix.svg: -------------------------------------------------------------------------------- 1 | 2 | 17 | 19 | 27 | 31 | 32 | 33 | 55 | 57 | 58 | 60 | image/svg+xml 61 | 63 | 64 | 65 | 66 | 67 | 71 | 78 | 84 | 85 | 86 | -------------------------------------------------------------------------------- /presets/assets/orchis.svg: -------------------------------------------------------------------------------- 1 | 2 | 17 | 19 | 27 | 31 | 32 | 33 | 55 | 57 | 58 | 60 | image/svg+xml 61 | 63 | 64 | 65 | 66 | 67 | 71 | 78 | 84 | 85 | 86 | -------------------------------------------------------------------------------- /resources/README.md: -------------------------------------------------------------------------------- 1 | 5 | 6 | # Credits 7 | 8 | Many icons in `img/scalable` are based on the GNOME [icon development kit](https://gitlab.gnome.org/Teams/Design/icon-development-kit) (CC0). 9 | 10 | # A note on SVGs 11 | 12 | In order to reduce the size of the extensions, most SVGs in this directory have been optimized using [`svgo`](https://github.com/svg/svgo). -------------------------------------------------------------------------------- /resources/credits/README.md: -------------------------------------------------------------------------------- 1 | The `translators.json` file is directly exported from weblate. -------------------------------------------------------------------------------- /resources/credits/contributors.json: -------------------------------------------------------------------------------- 1 | { 2 | "code": [ 3 | "Simon Schneegans", 4 | "Philipp Kiemle", 5 | "@GestaltEngine" 6 | ], 7 | "artwork": [ 8 | "Simon Schneegans" 9 | ] 10 | } -------------------------------------------------------------------------------- /resources/css/flypie.css: -------------------------------------------------------------------------------- 1 | /* 2 | SPDX-FileCopyrightText: Simon Schneegans 3 | SPDX-License-Identifier: MIT 4 | */ 5 | 6 | /* This is used in the tutorial. */ 7 | .tutorial-video { 8 | box-shadow: 2px 2px 3px rgba(0, 0, 0, 0.3); 9 | } 10 | 11 | .pill-button { 12 | border-radius: 9999px; 13 | } 14 | 15 | .round-button { 16 | border-radius: 20px; 17 | } 18 | 19 | .small-popover>contents { 20 | padding: 0; 21 | } 22 | 23 | 24 | /* This is used for the unread-achievements counter. */ 25 | 26 | .counter-label { 27 | text-shadow: none; 28 | color: @theme_selected_fg_color; 29 | background-color: @theme_selected_bg_color; 30 | font-size: smaller; 31 | border-radius: 5px; 32 | padding: 0px 8px; 33 | } 34 | 35 | /* This is an entry at the top of the menu editor. */ 36 | 37 | .menu-editor-path-item { 38 | border-radius: 0; 39 | border-left: none; 40 | border-top: none; 41 | border-bottom: none; 42 | } 43 | 44 | .menu-editor-path-item:first-child { 45 | border-radius: 8px 0 0 8px; 46 | } 47 | 48 | menubutton.menu-editor-add-button button { 49 | border-radius: 0 8px 8px 0; 50 | border-right: none; 51 | border-top: none; 52 | border-bottom: none; 53 | } -------------------------------------------------------------------------------- /resources/img/achievements/README.md: -------------------------------------------------------------------------------- 1 | # Credits 2 | 3 | Some of these icons are based on [Google's Material Icons](https://fonts.google.com/icons): 4 | * award0.svg 5 | * award1.svg 6 | * award2.svg 7 | * award3.svg 8 | * award4.svg 9 | * cancel.svg 10 | * chaos.svg 11 | * dots.svg 12 | * export.svg 13 | * eye.svg 14 | * fire.svg 15 | * gear.svg 16 | * grumpie.svg 17 | * heart.svg 18 | * import.svg 19 | * nerd.svg 20 | * scholar.svg 21 | * timer.svg -------------------------------------------------------------------------------- /resources/img/achievements/award0.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/achievements/award1.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/achievements/award2.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/achievements/award3.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/achievements/bronze.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Schneegans/Fly-Pie/933d6b9dacc364c253dd5690445acb7b71e26a48/resources/img/achievements/bronze.png -------------------------------------------------------------------------------- /resources/img/achievements/cancel.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/achievements/chaos.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/achievements/click1.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/achievements/click2.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/achievements/click3.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/achievements/copper.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Schneegans/Fly-Pie/933d6b9dacc364c253dd5690445acb7b71e26a48/resources/img/achievements/copper.png -------------------------------------------------------------------------------- /resources/img/achievements/export.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/achievements/eye.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/achievements/fire.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/achievements/gear.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/achievements/gesture1.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/achievements/gesture2.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/achievements/gesture3.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/achievements/gloss.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Schneegans/Fly-Pie/933d6b9dacc364c253dd5690445acb7b71e26a48/resources/img/achievements/gloss.png -------------------------------------------------------------------------------- /resources/img/achievements/gold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Schneegans/Fly-Pie/933d6b9dacc364c253dd5690445acb7b71e26a48/resources/img/achievements/gold.png -------------------------------------------------------------------------------- /resources/img/achievements/grumpie.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/achievements/heart.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/achievements/import.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/achievements/nerd.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/achievements/platinum.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Schneegans/Fly-Pie/933d6b9dacc364c253dd5690445acb7b71e26a48/resources/img/achievements/platinum.png -------------------------------------------------------------------------------- /resources/img/achievements/scholar.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/achievements/silver.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Schneegans/Fly-Pie/933d6b9dacc364c253dd5690445acb7b71e26a48/resources/img/achievements/silver.png -------------------------------------------------------------------------------- /resources/img/achievements/special1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Schneegans/Fly-Pie/933d6b9dacc364c253dd5690445acb7b71e26a48/resources/img/achievements/special1.png -------------------------------------------------------------------------------- /resources/img/achievements/special2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Schneegans/Fly-Pie/933d6b9dacc364c253dd5690445acb7b71e26a48/resources/img/achievements/special2.png -------------------------------------------------------------------------------- /resources/img/achievements/special3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Schneegans/Fly-Pie/933d6b9dacc364c253dd5690445acb7b71e26a48/resources/img/achievements/special3.png -------------------------------------------------------------------------------- /resources/img/achievements/timer.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/levels/level1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Schneegans/Fly-Pie/933d6b9dacc364c253dd5690445acb7b71e26a48/resources/img/levels/level1.png -------------------------------------------------------------------------------- /resources/img/levels/level10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Schneegans/Fly-Pie/933d6b9dacc364c253dd5690445acb7b71e26a48/resources/img/levels/level10.png -------------------------------------------------------------------------------- /resources/img/levels/level2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Schneegans/Fly-Pie/933d6b9dacc364c253dd5690445acb7b71e26a48/resources/img/levels/level2.png -------------------------------------------------------------------------------- /resources/img/levels/level3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Schneegans/Fly-Pie/933d6b9dacc364c253dd5690445acb7b71e26a48/resources/img/levels/level3.png -------------------------------------------------------------------------------- /resources/img/levels/level4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Schneegans/Fly-Pie/933d6b9dacc364c253dd5690445acb7b71e26a48/resources/img/levels/level4.png -------------------------------------------------------------------------------- /resources/img/levels/level5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Schneegans/Fly-Pie/933d6b9dacc364c253dd5690445acb7b71e26a48/resources/img/levels/level5.png -------------------------------------------------------------------------------- /resources/img/levels/level6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Schneegans/Fly-Pie/933d6b9dacc364c253dd5690445acb7b71e26a48/resources/img/levels/level6.png -------------------------------------------------------------------------------- /resources/img/levels/level7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Schneegans/Fly-Pie/933d6b9dacc364c253dd5690445acb7b71e26a48/resources/img/levels/level7.png -------------------------------------------------------------------------------- /resources/img/levels/level8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Schneegans/Fly-Pie/933d6b9dacc364c253dd5690445acb7b71e26a48/resources/img/levels/level8.png -------------------------------------------------------------------------------- /resources/img/levels/level9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Schneegans/Fly-Pie/933d6b9dacc364c253dd5690445acb7b71e26a48/resources/img/levels/level9.png -------------------------------------------------------------------------------- /resources/img/scalable/actions/flypie-achievements-symbolic.svg: -------------------------------------------------------------------------------- 1 | 2 | 10 | 12 | 16 | 19 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /resources/img/scalable/actions/flypie-action-command-symbolic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/scalable/actions/flypie-action-dbus-signal-symbolic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/scalable/actions/flypie-action-file-symbolic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/scalable/actions/flypie-action-insert-text-symbolic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/scalable/actions/flypie-action-shortcut-symbolic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/scalable/actions/flypie-action-uri-symbolic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/scalable/actions/flypie-apple-symbolic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/scalable/actions/flypie-arrow-up-symbolic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/scalable/actions/flypie-cake-symbolic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/scalable/actions/flypie-cherry-symbolic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/scalable/actions/flypie-chocolate-symbolic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/scalable/actions/flypie-cold-symbolic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/scalable/actions/flypie-cookie-symbolic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/scalable/actions/flypie-custom-menu-symbolic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/scalable/actions/flypie-deadly-symbolic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/scalable/actions/flypie-doughnut-symbolic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/scalable/actions/flypie-edit-advanced-symbolic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/scalable/actions/flypie-edit-touch-buttons-symbolic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/scalable/actions/flypie-edit-wedges-symbolic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/scalable/actions/flypie-garlic-symbolic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/scalable/actions/flypie-global-appearance-symbolic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/scalable/actions/flypie-go-down-symbolic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/scalable/actions/flypie-go-left-symbolic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/scalable/actions/flypie-go-right-symbolic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/scalable/actions/flypie-go-up-symbolic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/scalable/actions/flypie-go-updown-symbolic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/scalable/actions/flypie-hot-symbolic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/scalable/actions/flypie-image-symbolic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/scalable/actions/flypie-luminance-symbolic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/scalable/actions/flypie-menu-bookmarks-symbolic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/scalable/actions/flypie-menu-devices-symbolic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/scalable/actions/flypie-menu-favorites-symbolic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/scalable/actions/flypie-menu-frequently-used-symbolic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/scalable/actions/flypie-menu-main-menu-symbolic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/scalable/actions/flypie-menu-recent-files-symbolic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/scalable/actions/flypie-menu-running-apps-symbolic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/scalable/actions/flypie-menu-system-lock-symbolic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/scalable/actions/flypie-menu-system-logout-symbolic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/scalable/actions/flypie-menu-system-poweroff-symbolic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/scalable/actions/flypie-menu-system-settings-symbolic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/scalable/actions/flypie-menu-system-suspend-symbolic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/scalable/actions/flypie-menu-system-switchuser-symbolic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/scalable/actions/flypie-menu-system-symbolic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/scalable/actions/flypie-move-down-symbolic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/scalable/actions/flypie-move-up-symbolic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/scalable/actions/flypie-move-updown-symbolic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/scalable/actions/flypie-muffin-symbolic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/scalable/actions/flypie-multimedia-mute-symbolic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/scalable/actions/flypie-multimedia-next-symbolic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/scalable/actions/flypie-multimedia-playpause-symbolic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/scalable/actions/flypie-multimedia-previous-symbolic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/scalable/actions/flypie-multimedia-symbolic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/scalable/actions/flypie-opacity-symbolic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/scalable/actions/flypie-overview-symbolic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/scalable/actions/flypie-pepper-symbolic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/scalable/actions/flypie-pie-symbolic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/scalable/actions/flypie-saturation-symbolic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/scalable/actions/flypie-smelly-symbolic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/scalable/actions/flypie-tutorial-symbolic.svg: -------------------------------------------------------------------------------- 1 | 2 | 10 | 12 | 16 | 17 | -------------------------------------------------------------------------------- /resources/img/scalable/actions/flypie-vegan-symbolic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/scalable/actions/flypie-wet-symbolic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/scalable/actions/flypie-window-close-symbolic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/scalable/actions/heart-filled-symbolic.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /resources/img/symbolic-icon-decor.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/img/tutorial/bronze.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Schneegans/Fly-Pie/933d6b9dacc364c253dd5690445acb7b71e26a48/resources/img/tutorial/bronze.png -------------------------------------------------------------------------------- /resources/img/tutorial/gold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Schneegans/Fly-Pie/933d6b9dacc364c253dd5690445acb7b71e26a48/resources/img/tutorial/gold.png -------------------------------------------------------------------------------- /resources/img/tutorial/silver.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Schneegans/Fly-Pie/933d6b9dacc364c253dd5690445acb7b71e26a48/resources/img/tutorial/silver.png -------------------------------------------------------------------------------- /resources/ui/common/menus.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | Visit Homepage 14 | prefs.homepage 15 | 16 | 17 | View Changelog 18 | prefs.changelog 19 | 20 | 21 | View Donors Hall-of-Fame 22 | prefs.show-sponsors 23 | 24 |
25 |
26 | 27 | Donate 28 | 29 | Ko-fi 30 | prefs.donate-kofi 31 | 32 | 33 | GitHub 34 | prefs.donate-github 35 | 36 | 37 | PayPal 38 | prefs.donate-paypal 39 | 40 | 41 | 42 | Report a Bug 43 | prefs.bugs 44 | 45 | 46 | Translate 47 | prefs.translate 48 | 49 |
50 |
51 | 52 | About Fly-Pie 53 | prefs.about 54 | 55 |
56 |
57 | 58 |
-------------------------------------------------------------------------------- /resources/ui/gtk4/copyValueButton.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | 10 | 11 | 23 | -------------------------------------------------------------------------------- /resources/ui/gtk4/imageChooserButton.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | 10 | 11 | 43 | -------------------------------------------------------------------------------- /resources/video/video1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Schneegans/Fly-Pie/933d6b9dacc364c253dd5690445acb7b71e26a48/resources/video/video1.gif -------------------------------------------------------------------------------- /resources/video/video1.webm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Schneegans/Fly-Pie/933d6b9dacc364c253dd5690445acb7b71e26a48/resources/video/video1.webm -------------------------------------------------------------------------------- /resources/video/video2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Schneegans/Fly-Pie/933d6b9dacc364c253dd5690445acb7b71e26a48/resources/video/video2.gif -------------------------------------------------------------------------------- /resources/video/video2.webm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Schneegans/Fly-Pie/933d6b9dacc364c253dd5690445acb7b71e26a48/resources/video/video2.webm -------------------------------------------------------------------------------- /scripts/clang-format.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # -------------------------------------------------------------------------------------- # 4 | # ___ _ ___ # 5 | # | | \/ | ) | | # 6 | # O- |- | | - | | |- -O # 7 | # | |_ | | | |_ # 8 | # # 9 | # -------------------------------------------------------------------------------------- # 10 | 11 | # SPDX-FileCopyrightText: Simon Schneegans 12 | # SPDX-License-Identifier: MIT 13 | 14 | # Exit the script when one command fails. 15 | set -e 16 | 17 | # Go to the repo root. 18 | cd "$( cd "$( dirname "$0" )" && pwd )/.." || \ 19 | { echo "ERROR: Could not find the repo root."; exit 1; } 20 | 21 | # Execute clang format for all *.js. 22 | find . -type f -name '*.js' -exec sh -c ' 23 | for file do 24 | echo "Formatting $file..." 25 | clang-format-15 -i "$file" 26 | done 27 | ' sh {} + 28 | -------------------------------------------------------------------------------- /src/common/ItemClass.js: -------------------------------------------------------------------------------- 1 | ////////////////////////////////////////////////////////////////////////////////////////// 2 | // ___ _ ___ // 3 | // | | \/ | ) | | // 4 | // O- |- | | - | | |- -O // 5 | // | |_ | | | |_ // 6 | // // 7 | ////////////////////////////////////////////////////////////////////////////////////////// 8 | 9 | // SPDX-FileCopyrightText: Simon Schneegans 10 | // SPDX-License-Identifier: MIT 11 | 12 | 'use strict'; 13 | 14 | ////////////////////////////////////////////////////////////////////////////////////////// 15 | // Menus of Fly-Pie are composed of individual menu items. A menu item can either be an // 16 | // Action - such an item performs something once activated - or a Menu. Menus do not // 17 | // perform anything but may contain a list of child items. // 18 | ////////////////////////////////////////////////////////////////////////////////////////// 19 | 20 | export const ItemClass = { 21 | MENU: 0, 22 | ACTION: 1 23 | }; 24 | -------------------------------------------------------------------------------- /src/common/Timer.js: -------------------------------------------------------------------------------- 1 | ////////////////////////////////////////////////////////////////////////////////////////// 2 | // ___ _ ___ // 3 | // | | \/ | ) | | // 4 | // O- |- | | - | | |- -O // 5 | // | |_ | | | |_ // 6 | // // 7 | ////////////////////////////////////////////////////////////////////////////////////////// 8 | 9 | // SPDX-FileCopyrightText: Simon Schneegans 10 | // SPDX-License-Identifier: MIT 11 | 12 | 'use strict'; 13 | 14 | import * as utils from './utils.js'; 15 | 16 | ////////////////////////////////////////////////////////////////////////////////////////// 17 | // This can be used for some basic profiling by measuring roughly the time some parts // 18 | // of the code take. // 19 | ////////////////////////////////////////////////////////////////////////////////////////// 20 | 21 | export default class Timer { 22 | 23 | // -------------------------------------------------------------------- public interface 24 | 25 | constructor() { 26 | this.reset(); 27 | } 28 | 29 | // Returns the time in milliseconds since the last time reset() was called. 30 | getElapsed() { 31 | return Date.now() - this._now; 32 | } 33 | 34 | // Stores the current date for future getElapsed() calls. 35 | reset() { 36 | this._now = Date.now(); 37 | } 38 | 39 | // Prints the given message together with the time since the last call to reset() or 40 | // printElapsedAndReset(). 41 | printElapsedAndReset(message) { 42 | utils.debug(message + ': ' + this.getElapsed() + ' ms'); 43 | this.reset(); 44 | } 45 | }; 46 | -------------------------------------------------------------------------------- /src/common/menus/CustomMenu.js: -------------------------------------------------------------------------------- 1 | ////////////////////////////////////////////////////////////////////////////////////////// 2 | // ___ _ ___ // 3 | // | | \/ | ) | | // 4 | // O- |- | | - | | |- -O // 5 | // | |_ | | | |_ // 6 | // // 7 | ////////////////////////////////////////////////////////////////////////////////////////// 8 | 9 | // SPDX-FileCopyrightText: Simon Schneegans 10 | // SPDX-License-Identifier: MIT 11 | 12 | 'use strict'; 13 | 14 | import * as utils from '../utils.js'; 15 | import {ItemClass} from '../ItemClass.js'; 16 | 17 | const _ = await utils.importGettext(); 18 | 19 | ////////////////////////////////////////////////////////////////////////////////////////// 20 | // A menu cannot be activated. It should always contain some children. // 21 | // See common/ItemRegistry.js for a description of the action's format. // 22 | ////////////////////////////////////////////////////////////////////////////////////////// 23 | 24 | export function getCustomMenu() { 25 | return { 26 | 27 | // There are two fundamental item types in Fly-Pie: Actions and Menus. Actions have an 28 | // onSelect() method which is called when the user selects the item, Menus can have 29 | // child Actions or Menus. 30 | class: ItemClass.MENU, 31 | 32 | // This will be shown in the add-new-item-popover of the settings dialog. 33 | name: _('Custom Menu'), 34 | 35 | // This is also used in the add-new-item-popover. 36 | icon: 'flypie-symbolic-#46a', 37 | 38 | // Translators: Please keep this short. 39 | // This is the (short) description shown in the add-new-item-popover. 40 | subtitle: _('This can contain custom actions and other menus.'), 41 | 42 | // This is the (long) description shown when an item of this type is selected. 43 | description: _( 44 | 'A Custom Menu can contain any number of actions and submenus. However, for precise item selection, a maximum number of twelve items is recommended.'), 45 | 46 | // This will be called whenever a menu is opened containing an item of this kind. 47 | createItem: (centered) => { 48 | return {centered: centered, children: []}; 49 | } 50 | }; 51 | } 52 | -------------------------------------------------------------------------------- /src/prefs/CopyValueButton.js: -------------------------------------------------------------------------------- 1 | ////////////////////////////////////////////////////////////////////////////////////////// 2 | // ___ _ ___ // 3 | // | | \/ | ) | | // 4 | // O- |- | | - | | |- -O // 5 | // | |_ | | | |_ // 6 | // // 7 | ////////////////////////////////////////////////////////////////////////////////////////// 8 | 9 | // SPDX-FileCopyrightText: Simon Schneegans 10 | // SPDX-License-Identifier: MIT 11 | 12 | 'use strict'; 13 | 14 | import GObject from 'gi://GObject'; 15 | import Gtk from 'gi://Gtk'; 16 | 17 | ////////////////////////////////////////////////////////////////////////////////////////// 18 | // The CopyValueButton is instantiated many times in Fly-Pie's settings dialog. It is // 19 | // a simple circular button with an arrow which is used to copy values from its left to // 20 | // its right side. // 21 | ////////////////////////////////////////////////////////////////////////////////////////// 22 | 23 | export function registerWidget() { 24 | if (GObject.type_from_name('FlyPieCopyValueButton') == null) { 25 | // clang-format off 26 | GObject.registerClass({ 27 | GTypeName: 'FlyPieCopyValueButton', 28 | Template: `resource:///ui/gtk4/copyValueButton.ui`, 29 | }, class FlyPieCopyValueButton extends Gtk.Button {}); 30 | // clang-format on 31 | } 32 | } -------------------------------------------------------------------------------- /tests/references/default_menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Schneegans/Fly-Pie/933d6b9dacc364c253dd5690445acb7b71e26a48/tests/references/default_menu.png -------------------------------------------------------------------------------- /tests/references/preferences.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Schneegans/Fly-Pie/933d6b9dacc364c253dd5690445acb7b71e26a48/tests/references/preferences.png --------------------------------------------------------------------------------