लांचर के स्थान को कैसे परिभाषित किया जाता है?
लॉन्चर के प्लेसमेंट को कुछ चीजों से परिभाषित किया गया है:
में निर्धारित मूल्य /org/compiz/profiles/unity/plugins/unityshell/num-launchers
। आप इसे कमांड द्वारा पढ़ सकते हैं:
dconf read /org/compiz/profiles/unity/plugins/unityshell/num-launchers
जो या तो 1
(एक स्क्रीन पर लांचर) या 0
(सभी स्क्रीन पर लांचर ) आउटपुट देगा ।
सभी स्क्रीन पर दिखाई देने वाले लांचर को सेट करने के लिए कमांड द्वारा किया जा सकता है:
dconf write /org/compiz/profiles/unity/plugins/unityshell/num-launchers 0
यदि मान है 1
(केवल एक स्क्रीन पर दिखाई दे रहा है), तो हम निर्धारित स्क्रीन को प्राथमिक स्क्रीन के रूप में , xrandr
कमांड के साथ किस स्क्रीन पर लॉन्च कर सकते हैं, सेट कर सकते हैं :
xrandr --output <screen_name> --primary
वे वास्तव में उपयोग (ओं) से नीचे स्क्रिप्ट (ओं) के आदेश हैं।
Script1; लांचर को केवल बाईं ओर या दोनों स्क्रीन पर (मुख्य शॉर्टकट के साथ) सेट करें
आपके द्वारा स्क्रिप्ट चलाने के तर्क के आधार पर, यह या तो लांचर को कमांड के साथ सभी स्क्रीन पर दिखाने के लिए सेट करता है:
dconf write /org/compiz/profiles/unity/plugins/unityshell/num-launchers 0
या केवल एक पर:
dconf write /org/compiz/profiles/unity/plugins/unityshell/num-launchers 1
बाद के मामले में, यह बाईं स्क्रीन को भी प्राथमिक के रूप में सेट करता है।
लिपी
#!/usr/bin/env python3
import subprocess
import sys
key = "dconf write /org/compiz/profiles/unity/plugins/unityshell/num-launchers "
arg = sys.argv[1]
if arg == "left":
# the launcher is set to show on all screens
subprocess.Popen(["/bin/bash", "-c", key+"1"])
elif arg == "all":
# the launcher is set to show only on the left screen
subprocess.Popen(["/bin/bash", "-c", key+"0"])
# make sure the left screen is the primary one
scr_data = subprocess.check_output(["xrandr"]).decode("utf-8").splitlines()
left = [l.split()[0] for l in scr_data if "+0+0" in l][0]
subprocess.Popen(["xrandr", "--output", left, "--primary"])
कैसे इस्तेमाल करे
- एक खाली फ़ाइल में स्क्रिप्ट की प्रतिलिपि बनाएँ, इसे सहेजें
launcher_pos.py
दोनों कमांड के साथ स्क्रिप्ट का परीक्षण करें (टर्मिनल विंडो से):
python3 /path/to/launcher_pos.py left
तथा
python3 /path/to/launcher_pos.py all
यदि सब ठीक काम करता है, तो दो शॉर्टकट कुंजी संयोजनों के लिए कमांड जोड़ें: चुनें: सिस्टम सेटिंग्स> "कीबोर्ड"> "शॉर्टकट"> "कस्टम शॉर्टकट"। "+" पर क्लिक करें और दोनों कमांड को उपलब्ध शॉर्टकट में जोड़ें।
लिपि 2; स्वचालित संस्करण
नीचे दी गई स्क्रिप्ट स्वचालित रूप से नज़र रखती है कि कौन सा वर्तमान कार्यक्षेत्र है (आपके पास कितने वर्कस्पेस हैं और कौन से कॉन्फ़िगरेशन में हैं)।
यह स्क्रिप्ट कार्यस्थानों के साथ चलाई जाती है, जहाँ आप तर्क के रूप में केवल बाईं ओर लॉन्चर चाहते हैं । एक उदाहरण:
यदि आप स्क्रिप्ट को कमांड से चलाते हैं:
python3 /path/to/launcher_pos.py 2 3
परिणाम है:
लिपी
import subprocess
import sys
import time
wspace = sys.argv[1:]
key = "dconf write /org/compiz/profiles/unity/plugins/unityshell/num-launchers "
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(",", "") )]
res = get_res()
def get_dt():
# 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)
def set_launcher(arg):
if arg == "left":
# the launcher is set to show on all screens
subprocess.Popen(["/bin/bash", "-c", key+"1"])
elif arg == "all":
# the launcher is set to show only on the left screen
subprocess.Popen(["/bin/bash", "-c", key+"0"])
# make sure the left screen is the primary one
scr_data = subprocess.check_output(["xrandr"]).decode("utf-8").splitlines()
left = [l.split()[0] for l in scr_data if "+0+0" in l][0]
subprocess.Popen(["xrandr", "--output", left, "--primary"])
curr_ws1 = get_dt()
while True:
time.sleep(1)
curr_ws2 = get_dt()
if curr_ws2 != curr_ws1:
if curr_ws2 in wspace:
arg = "left"
else:
arg = "all"
set_launcher(arg)
curr_ws1 = curr_ws2
कैसे इस्तेमाल करे
स्क्रिप्ट की जरूरत है wmctrl
sudo apt-get install wmctrl
एक खाली फ़ाइल में स्क्रिप्ट की प्रतिलिपि बनाएँ, इसे सहेजें launcher_pos.py
टेस्ट इसे कमांड द्वारा चलाएं:
python3 /path/to/launcher_pos.py 1 3
कार्यक्षेत्र 1 और 3 पर, लांचर अब केवल बाईं ओर दिखाई देना चाहिए
यदि सभी ठीक काम करते हैं, तो इसे अपने स्टार्टअप एप्लिकेशन में जोड़ें: डैश> स्टार्टअप एप्लिकेशन> जोड़ें। कमांड जोड़ें:
/bin/bash -c "sleep 15 && python3 /path/to/launcher_pos.py 1 3"
(यदि कार्यक्षेत्र 1 और 3 वे हैं जो आप केवल बाईं ओर लॉन्चर चाहते हैं)