सभी खुले टर्मिनलों को सामने लाने के लिए शॉर्टकट


17

जब मैं वेबपेज या संपादक पर नेविगेट करता हूं, तो क्या सभी ओपन टर्मिनलों को उनके मूल पदों पर वापस लाने का कोई तरीका है? यह टर्मिनल आइकन पर क्लिक करने और फिर हर एक को अलग-अलग लाने का दर्द है।

धन्यवाद!

उदाहरण:

  • पूर्व शॉर्टकट:

पूर्व छवि शॉर्टकट


  • पोस्ट-शॉर्टकट:

पोस्ट-छवि शॉर्टकट


1
+1 बहुत ही दिलचस्प सवाल, आपको यह उत्तर किसी असंबंधित प्रश्न के लिए उपयोगी लग सकता है - यदि कोई मौजूदा GUI उपकरण नहीं है, तो इस समस्या के लिए devilspie प्रोग्राम प्रासंगिक हो सकता है।
evilsoup

संग्रह के लिए: gist.github.com/psi-4ward/18c3a596d28a3cfa772101af755545df एक स्क्रिप्ट जो हाल ही में उपयोग किए गए अनुप्रयोगों का सम्मान करती है
Psi

जवाबों:


9

आप भी दबा सकते हैं Alt+ Tabखिड़कियों और के बीच आगे स्विच करने के लिए Alt+ Shift+ Tabविंडो के बीच वापस स्विच। यह शॉर्टकट लगभग सभी ग्राफिकल ऑपरेटिंग सिस्टम में काम करने के लिए बनाया गया है। Yow एक ही उद्देश्य के लिए Super+ Wऔर तीर कुंजियों का उपयोग भी कर सकता है ।

आप, प्रेस सामने एक टर्मिनल विंडो लाने के बाद Alt+ ~एक करके सामने एक में अन्य सभी टर्मिनल खिड़कियों लाने के लिए:

खिड़कियों पर स्विच करें


स्वचालित रूप से सामने के सभी खुले टर्मिनलों को लाने के लिए (जैसा कि मैंने पहले बताया था एक-एक करके नहीं) आपको निम्न स्क्रिप्ट के लिए एक कीबोर्ड शॉर्टकट जोड़ना होगा (स्क्रिप्ट का Adobe के उत्तर से लिया गया और स्क्रिप्ट के उस संस्करण पर विचार करके सुधार नहीं हुआ है। मेरे लिए):

#!/bin/bash

if [ $# -ne 1 ];then
  echo -e "Usage: `basename $0` PROGRAM_NAME\n
           For example:\n\t
           '`basename $0` gnome-terminal' for Terminal\n\t
           '`basename $0` firefox' for Firefox\n\t
           '`basename $0` chromium-browser' for Chromium\n\t..."
  exit 1
fi

pids=" $(pidof $@) "

if [ "$pids" = "  " ]; then # the string "  " contain two spaces
    echo "There is no program named '$@' opened at the moment."
    exit 1
fi

wmctrl -lp | while read identity desktop_number PID window_title; do 
    if [ "${pids/ $PID }" != "$pids" ]; then
        wmctrl -ia $identity
    fi
done

स्क्रिप्ट को निष्पादन योग्य बनाना न भूलें:

chmod +x /path/to/script/script_name

टर्मिनल में स्क्रिप्ट का परीक्षण करने के बाद, आपको यह देखना होगा:


3
धन्यवाद, लेकिन यह अनिवार्य रूप से टर्मिनल आइकन पर क्लिक करने और सामने लाने के लिए प्रत्येक को चुनने के समान है। मेरा मतलब शॉर्ट कट है जो सभी ओपन टर्मिनलों को सामने लाएगा। एक उदाहरण मैं gedit में कोड लिख सकता हूं, दूसरे टर्मिनल में लॉग के आउटपुट को देखते हुए इसे एक टर्मिनल में संकलित करना चाहता हूं।
टॉमसेलेक

"स्क्रीनशॉट 1 सेकंड में लिया जाएगा" ... हम्म किसी ने यहां झूठ बोला ...
कार्लोस कैंपडरो

1
@Tomcelic मेरे नए संपादन देखें। यह कहना चाहता हूं कि मैं इस तरह की स्क्रिप्ट पर काम कर रहा था, जबकि Adobe ने अपने How to Answer (जो मेरे लिए काम नहीं किया है) पोस्ट किया है, इसलिए कृपया इसे गलत तरीके से न लें।
रादु राईडेनू

8

यहां एक छोटी सी बैश लिपि है, जो सभी खिड़कियों को लाती है, जिसका शीर्षक ARG से सामने की ओर है:

bring-all-windows.bash ARG

लिपी:

#!/bin/bash

Program=$@

wmctrl -l | while read Window; do
    if [[ "$Window" == *"$Program"* ]]; then
        echo "DEBUG: I bring $Window"
        code=`echo "$Window" | cut -f 1 -d " "`
        wmctrl -i -a $code
    fi
done

आप बांध सकते हैं

bring-all-windows.bash Terminal

एक हॉटकी के लिए (स्क्रिप्ट को लॉगिन शेल पेटीएच में डालना न भूलें, या इसके लिए पूरा रास्ता लिखें)।

स्क्रिप्ट को wmctrlस्थापित करने की आवश्यकता है।

संपादित करें :

टर्मिनल से कुछ चलाने के लिए, उस निर्देशिका पर जाएँ, जहाँ आप स्क्रिप्ट डालते हैं, फिर

chmod +x bring-all-windows.bash
./bring-all-windows.bash Terminal

जब आप सुनिश्चित करें कि यह टर्मिनल से काम करता है, तो इसे एक हॉटकी से बांधने की कोशिश करें, जिससे पूरा रास्ता मिल जाए। जब आप सुनिश्चित करें कि यह एक हॉटकी और स्क्रिप्ट के लिए पूर्ण पथ के साथ काम करता है, तो इसे जोड़ने की कोशिश करें कि यह लॉगिन शेल पेट में है, और देखें कि यह उस तरह से काम करता है या नहीं।


यह अच्छा लगता है! मैं इसे शीघ्र ही आजमाऊंगा और आपके पास वापस आऊंगा। मैं अभी भी थोड़ा स्तब्ध हूं क्योंकि इसके लिए कोई देशी तरीका नहीं है, ऐसा लगता है कि यह स्वाभाविक होना चाहिए।
टॉमसेलेक

@Tomcelic: वहाँ एक है wmctrlऔर bash: कि स्वाभाविक है।
एडोब

यह सच है लेकिन यह मूल नहीं है: P
टॉमसेलेक

क्या कोई मौका है कि आप इस स्क्रिप्ट का उपयोग करने के बारे में सोचेंगे? मैंने स्क्रिप्ट बनाई है और इसे अपने होम फ़ोल्डर में सहेजा है और इसे / etc / गोले में जोड़ा है। मैंने कीबोर्ड सेटिंग में शॉर्टकट के साथ एक नाम भी जोड़ा है जैसे कि name_terminals_forward और कमांड है bash /home/michael/Scripts/bring-all-windows.bash Terminal
TomSelleck

एक रनिंग टर्मिनल से सीधे स्क्रिप्ट चलाने पर भी काम नहीं लगता ... यह gedit जैसे प्रोग्राम के लिए काम करता है, लेकिन टर्मिनल के लिए नहीं
TomSelleck

0

एक और तरीका उपयोग कर रहा है xdotool। आपको इसे पहले स्थापित करना चाहिए ताकि sudo apt-get install xdotoolयह अनिवार्य हो।

xdotool search --class "terminal" windowactivate %@
xdotool search --name "braiam@bt" windowactivate %@

किसी भी बाइनरी नामक पहली नज़र के लिए *terminal*, दूसरा किसी भी खिड़की के लिए दिखता है जिसका शीर्षक है *braiam@bt*। यदि आप इसे एक बैश स्क्रिप्ट में रखते हैं:

#!/bin/bash

set -e
program=$@

xdotool search --class '$program' windowactivate %@
xdotool search --name '$program' windowactivate %@

आप xdotoolमैनुअल में इसके बारे में अधिक जान सकते हैं ।


0

मेरे उबंटू डेस्कटॉप में ग्राफिक रूप से, मेरे पास मेरे आइकॉन मेरे डेस्कटॉप के बायीं ओर वर्टिकल हैं। यदि आप टर्मिनल आइकन पर क्लिक करते हैं, तो आप सभी टर्मिनल विंडो देखेंगे। तब आप इनमें से किसी एक को चुन सकते हैं। यदि आप टर्मिनल आइकन पर राइट क्लिक करते हैं, तो आपको शीर्ष पर "न्यू टर्मिनल" के साथ मेनू की एक सूची दिखाई देगी, और सूची के निचले हिस्से में आपके सभी खुले टर्मिनल। आप अपने सक्रिय टर्मिनल होने के लिए जो भी चुन सकते हैं।

यह वही विधि किसी अन्य एप्लिकेशन जैसे आपके ब्राउज़र के लिए काम करना चाहिए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.