डिस्प्ले स्विच करने के लिए शॉर्टकट


12

मेरे पीसी पर 2 डिस्प्ले हैं - एक आईडीई एक डिस्प्ले में फुलस्क्रीन है और फायरफॉक्स दूसरे डिस्प्ले में फुलस्क्रीन है।

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

क्या कोई शॉर्टकट है जो मैं फ़ोकस 2 पर "सबसे बड़ी विंडो" पर स्विच करने के लिए उपयोग कर सकता हूं यदि फोकस कहीं डिस्प्ले 1 में है और इसके विपरीत?

जवाबों:


11

आज मुझे इस सवाल का सामना करना पड़ा, इसलिए मैं अपना समाधान पोस्ट कर रहा हूं मैं एक साल से अधिक समय का उपयोग कर रहा हूं और मैं काफी खुश हूं।

चरण 1: बैश स्क्रिप्ट बनाएं (जैसे इसे लिखें ~/swap.shऔर इसे निष्पादन योग्य बनाएं) अन्य विंडो के फोकस को सेट करने के लिए जो अन्य डिस्प्ले के बीच में है:

#!/bin/bash

getwindowat() {
    # move mouse to coordinates provided, get window id beneath it, move mouse back
    eval `xdotool mousemove $1 $2 getmouselocation --shell mousemove restore`
    echo $WINDOW
}

# get active app
active=`xdotool getactivewindow`
# get coordinates of an active app
eval `xdotool getwindowgeometry --shell $active`

# if left border of an app is less than display width
# (e.g. one display is 1920px wide, app has x = 200 - means it's 200px to the right from the left border of left monitor
# if it has x = 1920 or more, it's on the right window), it's on screen 0, and we need to focus to screen 1, otherwise to screen 0
(( $X >= $WIDTH )) && focustoscreen=0 || focustoscreen=1;

# get coordinates of the middle of the screen we want to switch
searchx=$[ ($WIDTH / 2) + $focustoscreen * $WIDTH ]
searchy=$[ $HEIGHT / 2 ]

# get window in that position
window=`getwindowat $searchx $searchy`
# activate it
xdotool windowactivate $window

चरण 2: इस स्क्रिप्ट को कॉल करने के लिए एक कीबोर्ड शॉर्टकट जोड़ें, मैं इसे डाल देता हूं Super-Tab

चरण 3: डिस्प्ले को बॉस की तरह स्विच करने के लिए शॉर्टकट का उपयोग करें


यह बहुत मदद करता है, हालांकि माउस को दूसरी स्क्रीन पर नहीं ले जाया जाता है जो कि, अगर यह करता है तो यह बहुत अच्छा होगा।
समर्थ

2
@samarth आप इसे निष्कासन से हटाकर हासिल कर सकते हैं mousemove restore, ताकि यह "eval` xdotool mousemove $ 1 $ 2 getmouselocation --shell` "
शराबी

मैंने चरण 1 की कोशिश की है, फिर चल रहा है sh swap.sh, मुझे त्रुटि संदेश मिलता है: swap.sh: 17: swap.sh: 288: नहीं मिला swap.sh: 20: swap.sh: सिंटैक्स त्रुटि: "(" अप्रत्याशित , एक पाठ बना रहा है) फ़ाइल के साथ = शीर्षक के रूप में और कुछ भी नहीं पता? धन्यवाद!
Matifou

@ मतिफौ कोशिशbash swap.sh
शराबी

यह सहायक है; क्या पता लगाने के लिए कोई तरीका है जब कोई डिस्प्ले घुमाया जाता है? मेरे पास मेरा बायाँ मॉनिटर घुमा हुआ (साथ xrandr --rotate) है लेकिन xdotool रोटेशन का उपयोग नहीं करता है और मुझे नहीं पता कि कैसे पता लगाया जाए। यदि ध्यान घुमाए गए प्रदर्शन में है, तो मुझे एक बार के बजाय दो बार कीस्ट्रोके का उपयोग करने की आवश्यकता है।
जीटीके

0

आप AltTabविंडोज़ के बीच स्विच करने के लिए उपयोग कर सकते हैं ।

AltTabयह भी याद रखें कि आपने पिछली बार किन दो विंडो को स्विच किया था। यदि आप एक विंडो पर जाते हैं (तीर कुंजी के साथ नेविगेट करें), तो वापस स्विच करें, बस दबाने AltTabसे आप उनके बीच कूद सकते हैं, बिना किसी और नेविगेशन के।


2
मैं डिस्प्ले को डुअल-मॉनिटर सेटअप में बदलना चाहता हूं, न कि विंडोज़ पर। मेरे पास कई एप्लिकेशन खुले हैं, और जब तक मैं दूसरे डिस्प्ले पर नहीं पहुंचता, तब तक मैं कई बार alt-tab प्रेस नहीं करना चाहता।
शराबी

0

यह भंडार आपकी मदद कर सकता है

https://github.com/Eitol/screen_focus_changer

आप focus_changer.py स्क्रिप्ट को एक निश्चित स्थान (/ उदाहरण के लिए चुनते हैं) पर रखें और फिर अपनी सेटिंग में कीबाइंडिंग / शॉर्टकट / हॉटकी जोड़ें

python3 /opt/focus_changer.py # बाएँ से फ़ोकस करें

python3 /opt/focus_changer.py दाईं # दाईं ओर फ़ोकस करें

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