الوصول إلى أيقونة قفص الاتهام بزر الماوس الأيمن فوق عناصر القائمة مع Applescript

StackOverflow https://stackoverflow.com/questions/2819807

سؤال

هل هناك أي طريقة للحصول على Applescript للوصول إلى عناصر القائمة التي تظهر عند النقر بزر الماوس الأيمن على أيقونة قفص الاتهام؟

على وجه التحديد ، إليك ما أريد القيام به:

يمكنني استخدام Google Chrome كمتصفح الويب الخاص بي على MacOS X Snow Leopard. أنا مدمن لاختصار لوحة المفاتيح ، وأستخدم QuickSilver لإنشاء اختصارات لوحة المفاتيح لأي شيء يمكنني. واحدة من أكثر الأشياء شيوعًا التي أقوم بها هي فتح نافذة متصفح ويب جديدة. لكنني أستخدم المساحات بشكل متكرر لتقسيم المهام التي أعمل عليها حاليًا ، وعندما أفتح متصفح ويب أو صفحة ويب مع مشغل Quicksilver ، تتحول المسافات إلى المساحة الأخيرة التي استخدمتها Chrome وتفتح علامة تبويب جديدة ، والتي غالبًا ما يصرفني لساعات لأنه يقودني إلى مساحة مختلفة وبالتالي مهمة مختلفة. يمكنني إصلاح ذلك بالنقر بزر الماوس الأيمن على أيقونة Google Chrome والنقر فوق خيار "النافذة الجديدة" ، والذي يفتح نافذة جديدة على المساحة الحالية. ولكن في Applescript ، لفعل أي شيء مع Google Chrome ، فإن أول شيء يجب علي فعله هو تنشيطه ، مما يعيدني إلى المشكلة الأصلية! هل يمكن لأي شخص أن يفكر في حل لهذه المشكلة أو Applescript أو غير ذلك؟ لقد أصبحت مشكلة خطيرة. مرة أخرى عندما استخدمت Firefox ، قمت بحل المشكلة عن طريق تغيير عنصر التفضيل الذي يقول "دائمًا فتح الروابط المنبثقة في نافذة جديدة" أو شيء من هذا القبيل ، والذي كان نوعًا من نهج مطرقة التزلج ، لكنه نجح. يمكنني دائمًا العودة إلى Firefox ، لكنني اعتقدت أنني سأطرح سؤالي هنا أولاً. أي شخص لديه أي أفكار؟

هل كانت مفيدة؟

المحلول 2

لأي شخص مهتم ، أعتقد أن لدي حلًا معقولًا لهذه المشكلة ، لكنه لا ينطوي على النقر بزر الماوس الأيمن على أيقونات قفص الاتهام.

أولاً ، يجب عليك إلغاء تحديد "عند التبديل إلى تطبيق ما ، قم بالتبديل إلى مساحة مع Windows Open للتطبيق" في جزء تفضيلات SPACES لتفضيلات النظام. ثم كتبت Applescript التالية:

tell application "Google Chrome" to activate

tell application "System Events"
    tell process "Google Chrome"
        try
            set var to get name of window 1
        on error
            set var to "no window exists!!!"
        end try
    end tell
end tell

if var is "no window exists!!!" then
    tell application "System Events"
        tell process "Google Chrome"
            click menu item "New Window" of menu "File" of menu bar 1
        end tell
    end tell
else
    tell application "System Events"
        tell process "Google Chrome"
            click menu item "New Tab" of menu "File" of menu bar 1
        end tell
    end tell
end if

أقوم بتشغيل هذا التفاح باستخدام شرارة, ، مما يسمح لي بتعيين مفتاح اختصار له.

إنه بطيء بعض الشيء ، لا سيما عندما يكون النظام تحت الحمل ، ولكن عادة لا يستغرق وقتًا أطول من ثانية أو نحو ذلك. كما أنه يتجنب المشكلة التي كنت أواجهها مع Firefox ، حيث سأنتهي مع العشرات من النوافذ مفتوحة في نهاية اليوم.

نصائح أخرى

لست متأكدًا مما إذا كنت لا تزال مهتمًا ولكن ...

 tell application "Dock"
    activate
end tell
tell application "System Events"
    tell process "Dock"
        set frontmost to true
        activate
        tell list 1
            perform action "AXShowMenu" of UI element "Google Chrome"
            delay 1
            repeat 4 times -- count number of items to the one you want
                key code 126 -- up arrow
                -- key code 125 -- down arrow
            end repeat
            delay 1
            repeat 2 times
                key code 36 -- return key
            end repeat
        end tell
    end tell
end tell

تحتوي التصميمات الليلية للكروم الآن على دعم Applescript ، وهذا يجب أن يجعله في Chrome قبل وقت طويل. هذا يعني أنه يمكنك الآن القيام به:

tell application "Chromium"
    make new window
    activate
end tell

بدلاً من ذلك ، يمكنك أيضًا استدعاء هذا الخيار الخفي:

defaults write com.apple.dock workspaces-auto-swoosh -bool NO
killall Dock

كما أن له تأثير إيجابي بالنسبة لي على أنه لم يعد يتم إلقاؤك على أجهزة الكمبيوتر المكتبية عند تبديل التطبيقات. ببساطة قم بـ CMD+N مع Chrome كتطبيق نشط.

راجع للشغل يمكنك الانتقال إلى المساحات مباشرة مع FN+1 و FN+2 وما إلى ذلك. إذا قمت بإعداده بدلاً من ⌃1 ، ⌃2 ، .

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top