सभी व्यूपोर्ट में एप्लिकेशन की विंडो के बीच स्विच करने के लिए कुंजी संयोजन


11

Alt- `एकता में वर्तमान व्यूपोर्ट में किसी एप्लिकेशन की विंडो के बीच स्विच करने के लिए उपयोग किया जाता है।

क्या सभी व्यूपोर्ट में किसी एप्लिकेशन की विंडो के बीच स्विच करने के लिए एक और महत्वपूर्ण संयोजन है?

मैं Alt- के डिफ़ॉल्ट व्यवहार को बदलना नहीं चाहता हूं `, जो कि वर्तमान व्यूपोर्ट में किसी एप्लिकेशन की विंडो के बीच स्विच कर रहा है।

मैं Ubuntu 14.04 और यूनिटी का उपयोग कर रहा हूं।


कार्यस्थल से क्या आपका मतलब है?
टिम

जवाबों:


7

रखें: पिनाओ के जवाब से प्रेरित होकर, मैं एक गंदा चाल यह किया जाना पाया Alt+ `एक व्यूपोर्ट में आवेदन खिड़कियों के बीच स्विच करने के लिए, और (उदाहरण के लिए) Alt+ 1सभी व्यूपोर्ट पर आवेदन विंडो के बीच स्विच करने के लिए।

मामूली कॉस्मेटिक नकारात्मक पक्ष यह है कि जवाबदेही थोड़ी कम सटीक होती है, क्योंकि सेटिंग्स को बदलने के लिए एक दूसरे के कुछ अंश की आवश्यकता होती है। हालांकि अभ्यास में, आप शायद ही ध्यान देंगे।

  1. स्थापित करें xdotool:

    sudo apt-get install xdotool
    
  2. एक खाली फ़ाइल में निम्नलिखित स्कैप्ट की प्रतिलिपि बनाएँ और इसे इस रूप में सहेजें switch.sh

    #!/bin/bash
    
    dconf write /org/compiz/profiles/unity/plugins/unityshell/alt-tab-bias-viewport false
    sleep 0.2
    xdotool keydown alt key 0x60
    dconf write /org/compiz/profiles/unity/plugins/unityshell/alt-tab-bias-viewport true
    sleep 1
    
  3. स्क्रिप्ट चलाने के लिए एक महत्वपूर्ण संयोजन सेट करें System Preferences > Keyboard > Shortcuts > Custom Shortcuts:। मैं Alt+ चुनता हूं 1, क्योंकि यह दूसरे के करीब है।

    अब आप सभी का उपयोग कर सकते हैं Alt+ 1(उदाहरण के लिए) gedit की सभी विंडो के बीच स्विच करने के लिए:

    यहाँ छवि विवरण दर्ज करें

    या Alt+ `केवल क्यूट वर्कस्पेस के गेडिट विंडो के बीच स्विच करने के लिए:

    यहाँ छवि विवरण दर्ज करें

ध्यान दें:

  1. स्क्रिप्ट में, ऊपर की कुंजी Tabसेट है key 0x60। यह अन्य लाउटआउट पर अलग हो सकता है। यदि यह काम नहीं करेगा xev, तो टर्मिनल में दौड़ें , फिर दबाएँ Return, फिर टैब के ऊपर की। आउटपुट में, स्ट्रिंग की तरह देखें (keysym 0x60, grave)। Keyymym value वह मान है जो आपको (स्क्रिप्ट-) लाइन में चाहिए:

    xdotool keydown alt key 0x60
    
  2. मेरे सिस्टम पर स्क्रिप्ट के मान sleep 0.2और sleep 1कार्य ठीक हैं, लेकिन वे तेज सिस्टम (कम) के लिए अनुकूलन के अधीन हो सकते हैं।

अधिक विकल्प

इसी तरह, आप स्क्रिप्ट के सभी व्यूपोर्ट पर सभी एप्लिकेशन विंडो के बीच स्विच करने के लिए एक महत्वपूर्ण संयोजन सेट कर सकते हैं:

#!/bin/bash

dconf write /org/compiz/profiles/unity/plugins/unityshell/alt-tab-bias-viewport false
sleep 0.2
xdotool keydown alt key 0xff09
dconf write /org/compiz/profiles/unity/plugins/unityshell/alt-tab-bias-viewport true
sleep 1

यदि आप इसके लिए उदाहरण Alt+ के Qलिए सेट करते हैं , तो आपके पास सभी विकल्पों का अच्छा सेट है:

Alt+ वर्तमान व्यूपोर्ट पर वर्तमान एप्लिकेशन की विंडो के ` बीच स्विच करें

Alt+ सभी व्यूपोर्ट पर वर्तमान एप्लिकेशन की विंडो के 1 बीच स्विच करें

Alt+ वर्तमान व्यूपोर्ट पर सभी एप्लिकेशन विंडो के Tab बीच स्विच करें

Alt+ सभी व्यूपोर्ट पर सभी एप्लिकेशन विंडो के Q बीच स्विच करें

यहाँ छवि विवरण दर्ज करें

Alt+ Tab: वर्तमान व्यूपोर्ट पर सभी एप्लिकेशन विंडो के बीच स्विच करें

यहाँ छवि विवरण दर्ज करें

Alt+ Q: सभी व्यूपोर्ट पर सभी एप्लिकेशन विंडो के बीच स्विच करें


5

सामान्य समाधान का उपयोग करना wmctrl


अवलोकन

निम्न स्क्रिप्ट सभी EWMH- अनुरूप विंडो प्रबंधकों (जैसे xfwm4, Openbox, kwin, compiz ...) के साथ संगत होनी चाहिए । यह उपयोग करता है wmctrlऔर xprop, जिसे इसके साथ स्थापित किया जा सकता है:

sudo apt-get install x11-utils wmctrl

स्थापना

निम्न मार्ग को कॉपी और सेव करें simple-window-switcher:

#!/bin/bash

# based on a script by Robert Steiniger
# (http://lars.st0ne.at/blog/switch%20between%20windows%20within%20the%20same%20application)

Usage="
  Title:        simple-window-switcher 0.1
  Description:  switch between all windows of active application
  Author:       Copyright Glutanimate 2014 (https://github.com/Glutanimate)
  License:      GNU GPLv3
  Usage:        $(basename "$0") [-g|-l|-h]
                -g: global window switching (across all workspaces)
                -l: local window switching (current workspace)
                -h: display this help message

                If no argument is provided window switching will be set to global.
"

while getopts "lgh" OPTIONS; do
  case $OPTIONS in
    l ) Fields="3-4"
        ;;
    g ) Fields="4"
        ;;
    h ) echo "$Usage"
        exit 0
        ;;
   \? ) echo "$Usage"
        exit 1
        ;;
  esac
done

ActiveWinID="$(xprop -root | sed -n 's/_NET_ACTIVE_WINDOW(WINDOW): window id # 0x//p')"
# fields 3-4: <desktop number> <window class>
ActiveWinClass="$(wmctrl -xl | grep "$ActiveWinID" | cut -d" " -f${Fields})"
WindowList="$(wmctrl -xl | grep "$ActiveWinClass" | cut -d" " -f1)"
NextWindow="$(echo "$WindowList" | grep -A1 "$ActiveWinID" | sed -n 2p)"

if [[ -z "$NextWindow" ]]; then
  NextWindow="$(echo $WindowList | head -n 1)"
fi

wmctrl -i -a "$NextWindow"

स्क्रिप्ट को निष्पादन योग्य के रूप में चिह्नित करें और इसे कृपया कहीं भी सहेजें (अधिमानतः अपने पैट, जैसे /usr/local/binया ~/bin)।

प्रयोग

simple-window-switcherअपनी पसंद के हॉटकी को असाइन करने के लिए वे आपके विंडो मैनेजर के कीबोर्ड शॉर्टकट मेनू का उपयोग करें । स्क्रिप्ट कैसे व्यवहार करती है, इसे नियंत्रित करने के लिए आप निम्न मापदंडों का उपयोग कर सकते हैं:

  • -g: वैश्विक विंडो स्विचिंग (सभी कार्यक्षेत्रों में)
  • -l: स्थानीय विंडो स्विचिंग (वर्तमान कार्यक्षेत्र); एकता / कम्पिज़ के साथ काम नहीं कर सकते (अधिक जानकारी के लिए टिप्पणी अनुभाग देखें)

प्रिय @Glutanimate, के बाद -lभी अन्य कार्यस्थानों पर खिड़कियों पर स्विच करता है।
कादिर

@ कादिर अजीब है। यह मेरे सिस्टम पर नहीं है। यदि आपके पास कुछ समय है, तो क्या आप pastebin.comwmctrl -xl जैसी साइट के आउटपुट को पोस्ट करने और इसे यहां लिंक करने के लिए तैयार होंगे ?
Glutanimate

प्रिय @Gutanimate, यहाँ यह है: pastebin.com/iJBAZ5a7
कादिर

@ कादिर धन्यवाद! ऐसा लगता है कि एकता / Compiz कार्यक्षेत्र की जानकारी को ठीक से उजागर नहीं कर रहा है इसलिए wmctrl को इसे चुनने में परेशानी होती है (इसीलिए आप केवल दूसरे कॉलम में शून्य देखते हैं, वे कार्यक्षेत्र नंबर होने चाहिए)। कोई विचार नहीं है कि यह एक बग है या अगर यह इस तरह से डिजाइन किया गया था। मुझे यह ध्यान नहीं आया क्योंकि मैं LXDE का उपयोग कर रहा था। मैं उत्तर के लिए एक नोट जोड़ूंगा।
Glutanimate

4

एक टर्मिनल खोलें और निम्न कमांड टाइप करें:

dconf write /org/compiz/profiles/unity/plugins/unityshell/alt-tab-bias-viewport false

वैकल्पिक रूप से आप यूनिटी ट्वीक टूल इंस्टॉल कर सकते हैं:

sudo apt-get install unity-tweak-tool
unity-tweak-tool

फिर स्विचर टैब में सभी कार्यस्थानों पर विंडो के बीच स्विच सक्षम करें :

यहाँ छवि विवरण दर्ज करें


मैं Alt-`की संपत्ति को संरक्षित करना चाहता हूं, जो कि वर्तमान व्यूपोर्ट में एक एप्लिकेशन की खिड़कियों के बीच स्विच कर रहा है। मुझे Ctrl-Alt-`जैसे एक और शॉर्टकट की आवश्यकता है, जो सभी व्यूपोर्ट में एप्लिकेशन की विंडो के बीच स्विच करेगा।
कादिर

1
@ कादिर दुर्भाग्य से, dconf संपत्ति दोनों कोक्सिस्ट को कॉन्फ़िगर करने की अनुमति नहीं देगी। यह एक व्यवहार या अन्य है।
सिल्वेन पिनेउ
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.