├── .github └── ISSUE_TEMPLATE │ ├── bug_report.yml │ ├── config.yml │ └── feature_suggestion.yml ├── LICENSE ├── README.md └── Workflow ├── 4C3CB545-F2F5-427E-AC6C-3981B0E664F7.png ├── icon.png ├── images └── about │ └── pauses.png └── info.plist /.github/ISSUE_TEMPLATE/bug_report.yml: -------------------------------------------------------------------------------- 1 | name: Bug Report 2 | description: File a bug report 3 | body: 4 | - type: input 5 | attributes: 6 | label: Workflow version 7 | description: Open the Workflow in Alfred Preferences and find it at the top, near the description 8 | validations: 9 | required: true 10 | - type: input 11 | attributes: 12 | label: Alfred version 13 | description: In the top left corner of Alfred Preferences → General 14 | validations: 15 | required: true 16 | - type: input 17 | attributes: 18 | label: macOS version 19 | description: Click  on the menubar → About This Mac 20 | validations: 21 | required: true 22 | - type: textarea 23 | attributes: 24 | label: Debugger output 25 | description: Perform the failing action with the [debugger](https://www.alfredapp.com/help/workflows/advanced/debugger/) open and click *Copy* on the top right. 26 | render: alfred_debugger 27 | validations: 28 | required: true 29 | - type: textarea 30 | attributes: 31 | label: More details 32 | description: Explain what you did, what happened, and what you expected to happen 33 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_suggestion.yml: -------------------------------------------------------------------------------- 1 | name: Feature Suggestion 2 | description: Suggest a new feature 3 | body: 4 | - type: textarea 5 | attributes: 6 | label: Feature details 7 | description: Explain the feature idea 8 | validations: 9 | required: true 10 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | BSD 3-Clause License 2 | 3 | Copyright (c) 2021, Running with Crayons Ltd 4 | All rights reserved. 5 | 6 | Redistribution and use in source and binary forms, with or without 7 | modification, are permitted provided that the following conditions are met: 8 | 9 | 1. Redistributions of source code must retain the above copyright notice, this 10 | list of conditions and the following disclaimer. 11 | 12 | 2. Redistributions in binary form must reproduce the above copyright notice, 13 | this list of conditions and the following disclaimer in the documentation 14 | and/or other materials provided with the distribution. 15 | 16 | 3. Neither the name of the copyright holder nor the names of its 17 | contributors may be used to endorse or promote products derived from 18 | this software without specific prior written permission. 19 | 20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 21 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 23 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 24 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 26 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 27 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 28 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 29 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # icon Pause Tabs Alfred Workflow 2 | 3 | Pause audio and video in web browser tabs 4 | 5 | [⤓ Install on the Alfred Gallery](https://alfred.app/workflows/alfredapp/pause-tabs) 6 | 7 | ## Setup 8 | 9 | Turn on `Allow JavaScript from Apple Events` in the browsers you want to control. Use the Help search in the menubar to find it. 10 | 11 | ## Usage 12 | 13 | Pause audio and video in tabs of all open web browsers via the `pause all` keyword. `pause others` does the same except for the current tab. ↩︎ makes it only pause tabs from the current browser. 14 | 15 | ![Alfred search for pause](Workflow/images/about/pauses.png) 16 | -------------------------------------------------------------------------------- /Workflow/4C3CB545-F2F5-427E-AC6C-3981B0E664F7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alfredapp/pause-tabs-workflow/28549904f6eede0d1b3c56270c2fb6978e4aa839/Workflow/4C3CB545-F2F5-427E-AC6C-3981B0E664F7.png -------------------------------------------------------------------------------- /Workflow/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alfredapp/pause-tabs-workflow/28549904f6eede0d1b3c56270c2fb6978e4aa839/Workflow/icon.png -------------------------------------------------------------------------------- /Workflow/images/about/pauses.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alfredapp/pause-tabs-workflow/28549904f6eede0d1b3c56270c2fb6978e4aa839/Workflow/images/about/pauses.png -------------------------------------------------------------------------------- /Workflow/info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | bundleid 6 | com.alfredapp.vitor.pausetabs 7 | connections 8 | 9 | 00AE9D16-4A4A-4371-9B6C-4A57F90B0FD8 10 | 11 | 12 | destinationuid 13 | 71E1A8E6-E19E-4CB5-A549-C3E381DB2DA9 14 | modifiers 15 | 0 16 | modifiersubtext 17 | 18 | vitoclose 19 | 20 | 21 | 22 | destinationuid 23 | 4E6BB00F-78D0-4401-B0D8-12DF635CB716 24 | modifiers 25 | 1048576 26 | modifiersubtext 27 | Only in current browser 28 | vitoclose 29 | 30 | 31 | 32 | 01CE4C90-7E05-45C5-BE77-6769A3E5FA86 33 | 34 | 35 | destinationuid 36 | 35178710-6E1E-4C86-8348-0528C06FA47C 37 | modifiers 38 | 0 39 | modifiersubtext 40 | 41 | vitoclose 42 | 43 | 44 | 45 | 0C0D75D3-4308-412A-88EB-70A25A0CAC0B 46 | 47 | 48 | destinationuid 49 | 1D78F34E-7704-4119-8370-27B728AAE507 50 | modifiers 51 | 0 52 | modifiersubtext 53 | 54 | vitoclose 55 | 56 | 57 | 58 | 0C7EFFD4-4267-4B4D-9C9A-1FEE01CF1079 59 | 60 | 61 | destinationuid 62 | 6E52B082-84A2-45E8-9A2C-D2231AE941D4 63 | modifiers 64 | 0 65 | modifiersubtext 66 | 67 | vitoclose 68 | 69 | 70 | 71 | 13397FC7-175F-4A5E-A5FB-B6F81FDF2229 72 | 73 | 74 | destinationuid 75 | 2E537D85-C9B0-43CB-8485-B136A1ABB446 76 | modifiers 77 | 0 78 | modifiersubtext 79 | 80 | vitoclose 81 | 82 | 83 | 84 | 1D78F34E-7704-4119-8370-27B728AAE507 85 | 86 | 87 | destinationuid 88 | E3552813-F045-4D3D-B373-63095EA7BF22 89 | modifiers 90 | 0 91 | modifiersubtext 92 | 93 | vitoclose 94 | 95 | 96 | 97 | 2E537D85-C9B0-43CB-8485-B136A1ABB446 98 | 99 | 100 | destinationuid 101 | 0C0D75D3-4308-412A-88EB-70A25A0CAC0B 102 | modifiers 103 | 0 104 | modifiersubtext 105 | 106 | vitoclose 107 | 108 | 109 | 110 | 35178710-6E1E-4C86-8348-0528C06FA47C 111 | 112 | 4C3CB545-F2F5-427E-AC6C-3981B0E664F7 113 | 114 | 115 | destinationuid 116 | 13397FC7-175F-4A5E-A5FB-B6F81FDF2229 117 | modifiers 118 | 0 119 | modifiersubtext 120 | 121 | vitoclose 122 | 123 | 124 | 125 | destinationuid 126 | 6E52B082-84A2-45E8-9A2C-D2231AE941D4 127 | modifiers 128 | 1048576 129 | modifiersubtext 130 | Only in current browser 131 | vitoclose 132 | 133 | 134 | 135 | 4E6BB00F-78D0-4401-B0D8-12DF635CB716 136 | 137 | 138 | destinationuid 139 | 2E537D85-C9B0-43CB-8485-B136A1ABB446 140 | modifiers 141 | 0 142 | modifiersubtext 143 | 144 | vitoclose 145 | 146 | 147 | 148 | 6E52B082-84A2-45E8-9A2C-D2231AE941D4 149 | 150 | 151 | destinationuid 152 | 2E537D85-C9B0-43CB-8485-B136A1ABB446 153 | modifiers 154 | 0 155 | modifiersubtext 156 | 157 | vitoclose 158 | 159 | 160 | 161 | 71E1A8E6-E19E-4CB5-A549-C3E381DB2DA9 162 | 163 | 164 | destinationuid 165 | 2E537D85-C9B0-43CB-8485-B136A1ABB446 166 | modifiers 167 | 0 168 | modifiersubtext 169 | 170 | vitoclose 171 | 172 | 173 | 174 | C4D04842-3C36-45CF-BC40-02CB7A575B2C 175 | 176 | 177 | destinationuid 178 | 13397FC7-175F-4A5E-A5FB-B6F81FDF2229 179 | modifiers 180 | 0 181 | modifiersubtext 182 | 183 | vitoclose 184 | 185 | 186 | 187 | E3552813-F045-4D3D-B373-63095EA7BF22 188 | 189 | 190 | destinationuid 191 | 01CE4C90-7E05-45C5-BE77-6769A3E5FA86 192 | modifiers 193 | 0 194 | modifiersubtext 195 | 196 | vitoclose 197 | 198 | 199 | 200 | E40D67BA-284C-4AB9-A184-D89EF55B0CBA 201 | 202 | 203 | destinationuid 204 | 71E1A8E6-E19E-4CB5-A549-C3E381DB2DA9 205 | modifiers 206 | 0 207 | modifiersubtext 208 | 209 | vitoclose 210 | 211 | 212 | 213 | E77C8C05-99B1-43FE-8519-AB0F86FC6A11 214 | 215 | 216 | destinationuid 217 | 4E6BB00F-78D0-4401-B0D8-12DF635CB716 218 | modifiers 219 | 0 220 | modifiersubtext 221 | 222 | vitoclose 223 | 224 | 225 | 226 | 227 | createdby 228 | Vítor Galvão 229 | description 230 | Pause audio and video in web browser tabs 231 | disabled 232 | 233 | name 234 | Pause Tabs 235 | objects 236 | 237 | 238 | config 239 | 240 | concurrently 241 | 242 | escaping 243 | 102 244 | script 245 | const chromiumVariants = ["Google Chrome", "Chromium", "Opera", "Vivaldi", "Brave Browser", "Microsoft Edge"] 246 | const webkitVariants = ["Safari", "Webkit", "Orion"] 247 | const browserVariants = chromiumVariants.concat(webkitVariants) 248 | 249 | Application("System Events") 250 | .applicationProcesses.where({ backgroundOnly: false })() 251 | .filter(app => { 252 | appName = app.name() 253 | if (appName.startsWith("firefox")) console.log("Firefox is not scriptable") 254 | return browserVariants.some(variant => appName.startsWith(variant)) 255 | }) 256 | .map(browser => browser.name()) 257 | .join(",") 258 | scriptargtype 259 | 1 260 | scriptfile 261 | 262 | type 263 | 7 264 | 265 | type 266 | alfred.workflow.action.script 267 | uid 268 | 1D78F34E-7704-4119-8370-27B728AAE507 269 | version 270 | 2 271 | 272 | 273 | config 274 | 275 | tasksettings 276 | 277 | taskuid 278 | com.alfredapp.automation.core/macOS/app.current 279 | 280 | type 281 | alfred.workflow.automation.task 282 | uid 283 | 2E537D85-C9B0-43CB-8485-B136A1ABB446 284 | version 285 | 1 286 | 287 | 288 | config 289 | 290 | argumenttype 291 | 2 292 | keyword 293 | {var:pause_all_keyword} 294 | skipuniversalaction 295 | 296 | subtext 297 | Pause video and audio in all browser tabs 298 | text 299 | Pause All 300 | withspace 301 | 302 | 303 | type 304 | alfred.workflow.input.keyword 305 | uid 306 | 00AE9D16-4A4A-4371-9B6C-4A57F90B0FD8 307 | version 308 | 1 309 | 310 | 311 | config 312 | 313 | concurrently 314 | 315 | escaping 316 | 102 317 | script 318 | // Grab environment variables 319 | function envVar(varName) { 320 | return $.NSProcessInfo 321 | .processInfo 322 | .environment 323 | .objectForKey(varName).js 324 | } 325 | 326 | const actOn = envVar("act_on") 327 | const skipActive = envVar("skip_active") === "1" 328 | const frontmostName = envVar("frontmost_name") 329 | const runningBrowsers = envVar("running_browsers") 330 | 331 | // Code to pause 332 | const pausePlayer = ` 333 | document.querySelectorAll("video, audio").forEach(e => e.pause()) 334 | 335 | // Pause embedded YouTube players 336 | document.querySelectorAll("iframe").forEach(e => { 337 | if (e.getAttribute("src").indexOf("youtube.com/embed") === -1) return 338 | 339 | e.contentWindow.postMessage(JSON.stringify({ 340 | "event": "command", 341 | "func": "pauseVideo" 342 | }), "*") 343 | }) 344 | ` 345 | 346 | // Set up 347 | const webkitVariants = ["Safari", "Webkit", "Orion"] 348 | const chromiumVariants = ["Google Chrome", "Chromium", "Opera", "Vivaldi", "Brave Browser", "Microsoft Edge"] 349 | 350 | targetBrowsers = (actOn === "all") ? runningBrowsers.split(",") : [frontmostName] 351 | 352 | // Pause tabs 353 | targetBrowsers.forEach(browserName => { 354 | browser = Application(browserName) 355 | 356 | // Webkit variants 357 | if (webkitVariants.some(variant => browserName.startsWith(variant))) { 358 | browser.windows()?.forEach(browserWindow => { 359 | browserWindow.tabs()?.forEach(browserTab => { 360 | // Skip current tab if conditions are met 361 | if (skipActive && frontmostName === browserName && browserWindow.id() === browser.windows()[0].id() && browserTab.index() === browserWindow.currentTab.index()) return 362 | // Pause tab 363 | browser.doJavaScript(pausePlayer, {in: browserTab}) 364 | }) 365 | }) 366 | // Chromium Variants 367 | } else if (chromiumVariants.some(variant => browserName.startsWith(variant))) { 368 | browser.windows()?.forEach(browserWindow => { 369 | browserWindow.tabs()?.forEach(browserTab => { 370 | // Skip current tab if conditions are met 371 | if (skipActive && frontmostName === browserName && browserWindow.id() === browser.windows()[0].id() && browserTab.id() === browserWindow.activeTab.id()) return 372 | // Pause tab 373 | browserTab.execute({javascript: pausePlayer}) 374 | }) 375 | }) 376 | } else { 377 | throw new Error(browserName + " is not a supported browser") 378 | } 379 | }) 380 | scriptargtype 381 | 1 382 | scriptfile 383 | 384 | type 385 | 7 386 | 387 | type 388 | alfred.workflow.action.script 389 | uid 390 | 35178710-6E1E-4C86-8348-0528C06FA47C 391 | version 392 | 2 393 | 394 | 395 | config 396 | 397 | argument 398 | 399 | passthroughargument 400 | 401 | variables 402 | 403 | frontmost_name 404 | {query} 405 | 406 | 407 | type 408 | alfred.workflow.utility.argument 409 | uid 410 | 0C0D75D3-4308-412A-88EB-70A25A0CAC0B 411 | version 412 | 1 413 | 414 | 415 | config 416 | 417 | type 418 | 0 419 | 420 | type 421 | alfred.workflow.utility.transform 422 | uid 423 | E3552813-F045-4D3D-B373-63095EA7BF22 424 | version 425 | 1 426 | 427 | 428 | config 429 | 430 | argument 431 | 432 | passthroughargument 433 | 434 | variables 435 | 436 | running_browsers 437 | {query} 438 | 439 | 440 | type 441 | alfred.workflow.utility.argument 442 | uid 443 | 01CE4C90-7E05-45C5-BE77-6769A3E5FA86 444 | version 445 | 1 446 | 447 | 448 | config 449 | 450 | argument 451 | 452 | passthroughargument 453 | 454 | variables 455 | 456 | act_on 457 | all 458 | skip_active 459 | 0 460 | 461 | 462 | type 463 | alfred.workflow.utility.argument 464 | uid 465 | 71E1A8E6-E19E-4CB5-A549-C3E381DB2DA9 466 | version 467 | 1 468 | 469 | 470 | config 471 | 472 | argument 473 | 474 | passthroughargument 475 | 476 | variables 477 | 478 | act_on 479 | frontmost 480 | skip_active 481 | 0 482 | 483 | 484 | type 485 | alfred.workflow.utility.argument 486 | uid 487 | 4E6BB00F-78D0-4401-B0D8-12DF635CB716 488 | version 489 | 1 490 | 491 | 492 | config 493 | 494 | action 495 | 0 496 | argument 497 | 0 498 | focusedappvariable 499 | 500 | focusedappvariablename 501 | 502 | hotkey 503 | 0 504 | hotmod 505 | 0 506 | leftcursor 507 | 508 | modsmode 509 | 0 510 | relatedAppsMode 511 | 0 512 | 513 | type 514 | alfred.workflow.trigger.hotkey 515 | uid 516 | E40D67BA-284C-4AB9-A184-D89EF55B0CBA 517 | version 518 | 2 519 | 520 | 521 | config 522 | 523 | action 524 | 0 525 | argument 526 | 0 527 | focusedappvariable 528 | 529 | focusedappvariablename 530 | 531 | hotkey 532 | 0 533 | hotmod 534 | 0 535 | leftcursor 536 | 537 | modsmode 538 | 0 539 | relatedAppsMode 540 | 0 541 | 542 | type 543 | alfred.workflow.trigger.hotkey 544 | uid 545 | E77C8C05-99B1-43FE-8519-AB0F86FC6A11 546 | version 547 | 2 548 | 549 | 550 | config 551 | 552 | argumenttype 553 | 2 554 | keyword 555 | {var:pause_others_keyword} 556 | skipuniversalaction 557 | 558 | subtext 559 | Pause video and audio in all browser tabs except current one 560 | text 561 | Pause Others 562 | withspace 563 | 564 | 565 | type 566 | alfred.workflow.input.keyword 567 | uid 568 | 4C3CB545-F2F5-427E-AC6C-3981B0E664F7 569 | version 570 | 1 571 | 572 | 573 | config 574 | 575 | argument 576 | 577 | passthroughargument 578 | 579 | variables 580 | 581 | act_on 582 | all 583 | skip_active 584 | 1 585 | 586 | 587 | type 588 | alfred.workflow.utility.argument 589 | uid 590 | 13397FC7-175F-4A5E-A5FB-B6F81FDF2229 591 | version 592 | 1 593 | 594 | 595 | config 596 | 597 | action 598 | 0 599 | argument 600 | 0 601 | focusedappvariable 602 | 603 | focusedappvariablename 604 | 605 | hotkey 606 | 0 607 | hotmod 608 | 0 609 | leftcursor 610 | 611 | modsmode 612 | 0 613 | relatedAppsMode 614 | 0 615 | 616 | type 617 | alfred.workflow.trigger.hotkey 618 | uid 619 | C4D04842-3C36-45CF-BC40-02CB7A575B2C 620 | version 621 | 2 622 | 623 | 624 | config 625 | 626 | argument 627 | 628 | passthroughargument 629 | 630 | variables 631 | 632 | act_on 633 | frontmost 634 | skip_active 635 | 1 636 | 637 | 638 | type 639 | alfred.workflow.utility.argument 640 | uid 641 | 6E52B082-84A2-45E8-9A2C-D2231AE941D4 642 | version 643 | 1 644 | 645 | 646 | config 647 | 648 | action 649 | 0 650 | argument 651 | 0 652 | focusedappvariable 653 | 654 | focusedappvariablename 655 | 656 | hotkey 657 | 0 658 | hotmod 659 | 0 660 | leftcursor 661 | 662 | modsmode 663 | 0 664 | relatedAppsMode 665 | 0 666 | 667 | type 668 | alfred.workflow.trigger.hotkey 669 | uid 670 | 0C7EFFD4-4267-4B4D-9C9A-1FEE01CF1079 671 | version 672 | 2 673 | 674 | 675 | readme 676 | ## Setup 677 | 678 | Turn on `Allow JavaScript from Apple Events` in the browsers you want to control. Use the Help search in the menubar to find it. 679 | 680 | ## Usage 681 | 682 | Pause audio and video in tabs of all open web browsers via the `pause all` keyword. `pause others` does the same except for the current tab. <kbd>⌘</kbd><kbd>↩</kbd> makes it only pause tabs from the current browser. 683 | 684 | ![Alfred search for pause](images/about/pauses.png) 685 | uidata 686 | 687 | 00AE9D16-4A4A-4371-9B6C-4A57F90B0FD8 688 | 689 | colorindex 690 | 9 691 | note 692 | Pause audio and video in all running browsers 693 | xpos 694 | 40 695 | ypos 696 | 35 697 | 698 | 01CE4C90-7E05-45C5-BE77-6769A3E5FA86 699 | 700 | xpos 701 | 900 702 | ypos 703 | 65 704 | 705 | 0C0D75D3-4308-412A-88EB-70A25A0CAC0B 706 | 707 | xpos 708 | 565 709 | ypos 710 | 65 711 | 712 | 0C7EFFD4-4267-4B4D-9C9A-1FEE01CF1079 713 | 714 | colorindex 715 | 7 716 | xpos 717 | 40 718 | ypos 719 | 745 720 | 721 | 13397FC7-175F-4A5E-A5FB-B6F81FDF2229 722 | 723 | note 724 | Act on all browsers 725 | Skip active tab 726 | xpos 727 | 265 728 | ypos 729 | 490 730 | 731 | 1D78F34E-7704-4119-8370-27B728AAE507 732 | 733 | note 734 | Grab all running web browsers 735 | xpos 736 | 650 737 | ypos 738 | 35 739 | 740 | 2E537D85-C9B0-43CB-8485-B136A1ABB446 741 | 742 | xpos 743 | 400 744 | ypos 745 | 35 746 | 747 | 35178710-6E1E-4C86-8348-0528C06FA47C 748 | 749 | note 750 | Pause tabs 751 | xpos 752 | 980 753 | ypos 754 | 35 755 | 756 | 4C3CB545-F2F5-427E-AC6C-3981B0E664F7 757 | 758 | colorindex 759 | 7 760 | note 761 | Pause audio and video in frontmost app 762 | xpos 763 | 40 764 | ypos 765 | 460 766 | 767 | 4E6BB00F-78D0-4401-B0D8-12DF635CB716 768 | 769 | note 770 | Act on frontmost app 771 | Do not skip active tab 772 | xpos 773 | 260 774 | ypos 775 | 195 776 | 777 | 6E52B082-84A2-45E8-9A2C-D2231AE941D4 778 | 779 | note 780 | Act on frontmost app 781 | Skip active tab 782 | xpos 783 | 265 784 | ypos 785 | 620 786 | 787 | 71E1A8E6-E19E-4CB5-A549-C3E381DB2DA9 788 | 789 | note 790 | Act on all browsers 791 | Do not skip active tab 792 | xpos 793 | 260 794 | ypos 795 | 65 796 | 797 | C4D04842-3C36-45CF-BC40-02CB7A575B2C 798 | 799 | colorindex 800 | 7 801 | xpos 802 | 40 803 | ypos 804 | 620 805 | 806 | E3552813-F045-4D3D-B373-63095EA7BF22 807 | 808 | xpos 809 | 815 810 | ypos 811 | 65 812 | 813 | E40D67BA-284C-4AB9-A184-D89EF55B0CBA 814 | 815 | colorindex 816 | 9 817 | xpos 818 | 40 819 | ypos 820 | 195 821 | 822 | E77C8C05-99B1-43FE-8519-AB0F86FC6A11 823 | 824 | colorindex 825 | 9 826 | xpos 827 | 40 828 | ypos 829 | 320 830 | 831 | 832 | userconfigurationconfig 833 | 834 | 835 | config 836 | 837 | default 838 | pause all 839 | placeholder 840 | 841 | required 842 | 843 | trim 844 | 845 | 846 | description 847 | 848 | label 849 | Pause All Keyword 850 | type 851 | textfield 852 | variable 853 | pause_all_keyword 854 | 855 | 856 | config 857 | 858 | default 859 | pause others 860 | placeholder 861 | 862 | required 863 | 864 | trim 865 | 866 | 867 | description 868 | 869 | label 870 | Pause Others Keyword 871 | type 872 | textfield 873 | variable 874 | pause_others_keyword 875 | 876 | 877 | version 878 | 2025.1 879 | webaddress 880 | https://github.com/alfredapp/pause-tabs-workflow/ 881 | 882 | 883 | --------------------------------------------------------------------------------