क्या लांचर में वर्तमान कार्यक्षेत्र के खुले हुए अनुप्रयोग होना संभव है लेकिन अन्य कार्यक्षेत्रों से नहीं?
क्या लांचर में वर्तमान कार्यक्षेत्र के खुले हुए अनुप्रयोग होना संभव है लेकिन अन्य कार्यक्षेत्रों से नहीं?
जवाबों:
खैर, अन्य जवाब बहुत पुराने हैं, इसलिए मुझे लगता है कि यह अप-टू-डेट जवाब जोड़ने के लायक है। यह अभी संभव है और बहुत कठिन tbh (उबंटू 17.10 के साथ और यह सूक्ति के साथ) संभव है।
बस dconf- संपादक का उपयोग करें :
sudo apt install dconf-editor
Org> gnome> शेल> एक्सटेंशन> डैश-टू-डॉक पर नेविगेट करें और आइसोलेट-वर्कस्पेस को जांचें
का उपयोग करते हुए xdotool
की windowunmap
, यह पूरी तरह से एक खिड़की को छिपाने के लिए संभव है। विंडो, और न ही इसका अनुप्रयोग, लॉन्चर आइकन में और भी होता है, और इसके आउटपुट में भी सूचीबद्ध नहीं है wmctrl
।
सैद्धांतिक रूप से, इसे "कार्यक्षेत्र-इंजन" से जोड़ा जा सकता है, जिसका उपयोग इस और इस उत्तर में किया गया था । यह सबसे सुरुचिपूर्ण समाधान होता।
हालांकि, अन्य कार्यक्षेत्रों पर केवल खिड़कियों को छिपाने और वर्तमान कार्यक्षेत्र पर स्वचालित रूप से उठाने की प्रक्रिया बहुत चल रही पृष्ठभूमि स्क्रिप्ट (अब के लिए) में उपयोग करने की मांग कर रही है , और साथ ही "ठंड को पकड़ने के लिए" संभावना नहीं है। चूंकि विंडोज़ त्रुटियों के मामले में अच्छे के लिए खो जाती हैं, इसलिए मैंने प्रक्रिया को स्वचालित (पृष्ठभूमि) प्रक्रिया के रूप में पेश नहीं करने का फैसला किया।
यदि यह उत्तर आपके लिए अभी भी उपयोगी है या नहीं, स्थिति पर निर्भर करता है, और यही कारण है कि आप अन्य कार्यस्थानों पर चल रहे अनुप्रयोगों के आइकन छिपाना चाहते हैं; फैसला आपका है।
एक शॉर्टकट कुंजी के तहत उपलब्ध एक स्क्रिप्ट, प्रतीत होता है कि वर्तमान कार्यक्षेत्र (और इस प्रकार अनुप्रयोग) पर सभी विंडो पूरी तरह से गायब हो जाती हैं। इसका मतलब है कि एकता लांचर में एप्लिकेशन का आइकन एप्लिकेशन की कोई गतिविधि नहीं दिखाता है:
फिर से schortcut कुंजी संयोजन को दबाते हुए, विंडोज़ और उनके अनुप्रयोग फिर से दिखाई देंगे।
#!/usr/bin/env python3
import subprocess
import os
import time
datadir = os.environ["HOME"]+"/.config/maptoggle"
if not os.path.exists(datadir):
os.makedirs(datadir)
workspace_data = datadir+"/wspacedata_"
def get_wlist(res):
res = get_res()
try:
wlist = [l.split() for l in subprocess.check_output(["wmctrl", "-lG"]).decode("utf-8").splitlines()]
return [w for w in wlist if all([
0 < int(w[2]) < res[0],
0 < int(w[3]) < res[1],
"_NET_WM_WINDOW_TYPE_NORMAL" in subprocess.check_output(["xprop", "-id", w[0]]).decode("utf-8"),
])]
except subprocess.CalledProcessError:
pass
def get_res():
# get resolution
xr = subprocess.check_output(["xrandr"]).decode("utf-8").split()
pos = xr.index("current")
return [int(xr[pos+1]), int(xr[pos+3].replace(",", "") )]
def current(res):
# get the current viewport
vp_data = subprocess.check_output(
["wmctrl", "-d"]
).decode("utf-8").split()
dt = [int(n) for n in vp_data[3].split("x")]
cols = int(dt[0]/res[0])
curr_vpdata = [int(n) for n in vp_data[5].split(",")]
curr_col = int(curr_vpdata[0]/res[0])+1
curr_row = int(curr_vpdata[1]/res[1])
return str(curr_col+curr_row*cols)
res = get_res()
try:
f = workspace_data+current(res)
wlist = eval(open(f).read().strip())
for w in wlist:
subprocess.Popen(["xdotool", "windowmap", w[0]])
os.remove(f)
except FileNotFoundError:
current_windows = get_wlist(res)
open(f, "wt").write(str(current_windows))
for w in current_windows:
subprocess.Popen(["xdotool", "windowunmap", w[0]])
स्क्रिप्ट को दोनों की जरूरत है wmctrl
और xdotool
:
sudo apt-get install wmctrl xdotool
toggle_visibility.py
टेस्ट- स्क्रिप्ट चलाएँ: टर्मिनल विंडो में, कमांड चलाएँ:
python3 /path/to/toggle_visibility.py
अब एक नई टर्मिनल विंडो खोलें (चूंकि पहली बार पृथ्वी के चेहरे से गायब प्रतीत होता है) और उसी कमांड को फिर से चलाएं। सभी विंडो फिर से दिखाई देनी चाहिए।
नायब : सुनिश्चित करें कि आपके पास परीक्षण करते समय "मूल्यवान" खिड़कियां नहीं हैं
यदि सभी ठीक काम करते हैं, तो कमांड को शॉर्टकट कुंजी संयोजन में जोड़ें: चुनें: सिस्टम सेटिंग्स> "कीबोर्ड"> "शॉर्टकट"> "कस्टम शॉर्टकट"। "+" पर क्लिक करें और कमांड जोड़ें:
python3 /path/to/toggle_visibility.py
के रूप में कहा, स्क्रिप्ट का उपयोग करता है xdotool
के windowunmap
, (पूरी तरह से) छिपाने खिड़कियों को और अनुप्रयोगों वे के हैं। लिपी:
अगले भाग पर, स्क्रिप्ट:
इस प्रकार वर्तमान कार्यक्षेत्र पर खिड़कियों और अनुप्रयोगों की दृश्यता टॉगल की जाती है।
ctrl
+ shift
+arrow key
दुर्भाग्य से यह असंभव है।
एकता हमेशा हर जगह से सभी एप्लिकेशन दिखाती है और इसे बदलने का कोई तरीका नहीं है। एक बग रिपोर्ट है - https://bugs.launchpad.net/ayatana-design/+bug/683170 लेकिन लगता है कि डेवलपर्स कुछ भी नहीं करने जा रहे हैं। संभवतः यदि आप पृष्ठ के शीर्ष पर चिह्नित करते हैं कि यह बग आपको प्रभावित करता है तो यह डेवलपर्स को ऐसे विकल्प के महत्व को समझने में मदद करेगा।